diff --git a/code-generation/language-c/pom.xml b/code-generation/language-c/pom.xml index c9cd0412002..fd86a7a9873 100644 --- a/code-generation/language-c/pom.xml +++ b/code-generation/language-c/pom.xml @@ -62,7 +62,6 @@ org.apache.plc4x.plugins:plc4x-maven-plugin:${plc4x-code-generation.version} org.apache.plc4x.plugins:plc4x-code-generation-protocol-base:${plc4x-code-generation.version} org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version} - org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version} */pom.xml diff --git a/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh b/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh index f3235a1ea73..e9203670466 100644 --- a/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh +++ b/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh @@ -179,7 +179,11 @@ plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4x_spi_context ctx, return new PlcStruct(${field.name}); <#break--> <#case "STRING"> + <#if (parserArguments?filter(parserArgument->parserArgument.name=="stringLength"))?has_content> *data_item = plc4c_data_create_string_data(stringLength, ${manualField.name}); + <#else> + *data_item = plc4c_data_create_string_data(strlen(value), ${manualField.name}); + <#break> <#default> *data_item = plc4c_data_create_${case.name?lower_case}_data(${manualField.name}); diff --git a/code-generation/language-go/pom.xml b/code-generation/language-go/pom.xml index a452077012a..cc2f201576c 100644 --- a/code-generation/language-go/pom.xml +++ b/code-generation/language-go/pom.xml @@ -62,7 +62,6 @@ org.apache.plc4x.plugins:plc4x-maven-plugin:${plc4x-code-generation.version} org.apache.plc4x.plugins:plc4x-code-generation-protocol-base:${plc4x-code-generation.version} org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version} - org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version} */pom.xml diff --git a/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h b/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h index 4a6d28aadae..1e6cdc2bc65 100644 --- a/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h +++ b/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h @@ -36,6 +36,8 @@ extern "C" { uint8_t plc4c_spi_evaluation_helper_str_len(char* str); +char* plc4c_plc4x_read_write_parse_string(plc4c_spi_read_buffer* io, char* encoding); + #ifdef __cplusplus } #endif diff --git a/plc4c/drivers/plc4x/src/driver_plc4x_static.c b/plc4c/drivers/plc4x/src/driver_plc4x_static.c index 9eff0971454..fda73bf88bd 100644 --- a/plc4c/drivers/plc4x/src/driver_plc4x_static.c +++ b/plc4c/drivers/plc4x/src/driver_plc4x_static.c @@ -30,3 +30,31 @@ uint8_t plc4c_spi_evaluation_helper_str_len(char* str) { return strlen(str); } +char* plc4c_plc4x_read_write_parse_string(plc4c_spi_read_buffer* io, char* encoding) { + if (strcmp(encoding, "UTF-8") == 0) { + // Read the max length (which is not interesting for us. + uint8_t length; + plc4c_return_code res = plc4c_spi_read_unsigned_byte(io, 8, &length); + if (res != OK) { + return NULL; + } + char* result = malloc(sizeof(char) * (length + 1)); + if (result == NULL) { + return NULL; + } + char* curPos = result; + for(int i = 0; i < length; i++) { + uint8_t val; + plc4c_return_code res = plc4c_spi_read_unsigned_byte(io, 8, &val); + if (res != OK) { + return NULL; + } + *curPos = (char) val; + curPos++; + } + *curPos = '\0'; + return result; + } else if (strcmp(encoding, "UTF-16") == 0) { + } + return ""; +} diff --git a/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h b/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h index 28da28458b2..b771f5bed90 100644 --- a/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h +++ b/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h @@ -27,6 +27,12 @@ extern "C" { #include "plc4c/driver_s7.h" #include "s7_var_request_parameter_item.h" +struct plc4c_s7_read_write_s7_var_request_parameter_item_field { + plc4c_s7_read_write_s7_var_request_parameter_item* parameter_item; + char* s7_address_any_encoding_of_string; +}; +typedef struct plc4c_s7_read_write_s7_var_request_parameter_item_field plc4c_s7_read_write_s7_var_request_parameter_item_field; + uint16_t plc4c_driver_s7_encode_tsap_id( plc4c_driver_s7_device_group device_group, uint8_t rack, uint8_t slot); diff --git a/plc4c/drivers/s7/include/plc4c/driver_s7_static.h b/plc4c/drivers/s7/include/plc4c/driver_s7_static.h index 2b52cec337e..05ba1d9cc88 100644 --- a/plc4c/drivers/s7/include/plc4c/driver_s7_static.h +++ b/plc4c/drivers/s7/include/plc4c/driver_s7_static.h @@ -48,9 +48,9 @@ uint16_t plc4c_s7_read_write_s7msec_to_int(plc4c_spi_read_buffer* io); plc4c_return_code plc4c_s7_read_write_int_to_s7msec(plc4c_spi_write_buffer* writeBuffer, uint16_t value); -char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io, int32_t stringLength, char* encoding); +char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io, int32_t stringLength, char* encoding, char* stringEncoding); -char* plc4c_s7_read_write_parse_s7_char(plc4c_spi_read_buffer* io, char* encoding); +char* plc4c_s7_read_write_parse_s7_char(plc4c_spi_read_buffer* io, char* encoding, char* stringEncoding); time_t plc4c_s7_read_write_parse_tia_time(plc4c_spi_read_buffer* io); diff --git a/plc4c/drivers/s7/src/driver_s7_encode_decode.c b/plc4c/drivers/s7/src/driver_s7_encode_decode.c index af2bf2765eb..ffce43616a9 100644 --- a/plc4c/drivers/s7/src/driver_s7_encode_decode.c +++ b/plc4c/drivers/s7/src/driver_s7_encode_decode.c @@ -23,6 +23,7 @@ #include #include #include +#include "plc4c/driver_s7_encode_decode.h" uint16_t plc4c_driver_s7_encode_tsap_id( plc4c_driver_s7_device_group device_group, uint8_t rack, uint8_t slot) { @@ -114,6 +115,7 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) { // Parser logic char* cur_pos = address; char* last_pos = address; + char* string_encoding = NULL; // - Does it start with "%"? if (*cur_pos == '%') { cur_pos++; @@ -247,6 +249,19 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) { *(num_elements + len) = '\0'; } + if (*cur_pos == '|') { + // Next comes the num_elements + cur_pos++; + last_pos = cur_pos; + while (*cur_pos != '\0') { + cur_pos++; + } + len = cur_pos - last_pos; + string_encoding = malloc(sizeof(char) * (len + 1)); + strncpy(string_encoding, last_pos, len); + *(string_encoding + len) = '\0'; + } + //////////////////////////////////////////////////////////////////////////// // Now parse the contents. //////////////////////////////////////////////////////////////////////////// @@ -261,6 +276,7 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) { free(data_type); free(string_length); free(num_elements); + free(string_encoding); free(s7_item); return NO_MEMORY; } @@ -283,6 +299,7 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) { free(data_type); free(string_length); free(num_elements); + free(string_encoding); free(any_address); free(s7_item); return INVALID_ADDRESS; @@ -320,15 +337,50 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) { // TODO: THis should be moved to "driver_s7_packets.c->plc4c_return_code plc4c_driver_s7_create_s7_read_request" if (any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_TIME || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_LINT || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_ULINT || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_LWORD || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_LREAL || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_REAL || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_LTIME || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_DATE || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_TIME_OF_DAY || + any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_DATE_AND_TIME) { + any_address->s7_address_any_transport_size = plc4c_s7_read_write_transport_size_BYTE; + any_address->s7_address_any_number_of_elements = + plc4c_s7_read_write_transport_size_length_in_bytes(plc4x_spi_context_background(), &(any_address->s7_address_any_transport_size)) * + any_address->s7_address_any_number_of_elements; + } else if (any_address->s7_address_any_transport_size == plc4c_s7_read_write_transport_size_STRING) { + any_address->s7_address_any_transport_size = plc4c_s7_read_write_transport_size_BYTE; if (string_length != NULL) { any_address->s7_address_any_number_of_elements = - strtol(string_length, 0, 10) * + (strtol(string_length, 0, 10) +2) * any_address->s7_address_any_number_of_elements; - } else if (any_address->s7_address_any_transport_size == - plc4c_s7_read_write_transport_size_STRING) { + } else { + any_address->s7_address_any_number_of_elements = + 256 * any_address->s7_address_any_number_of_elements; + } + } else if (any_address->s7_address_any_transport_size == + plc4c_s7_read_write_transport_size_WSTRING) { + any_address->s7_address_any_transport_size = plc4c_s7_read_write_transport_size_BYTE; + if (string_length != NULL) { + any_address->s7_address_any_number_of_elements = + (strtol(string_length, 0, 10) +2) * 2 * + any_address->s7_address_any_number_of_elements; + } else { any_address->s7_address_any_number_of_elements = - 254 * any_address->s7_address_any_number_of_elements; + 512 * any_address->s7_address_any_number_of_elements; } } else if (any_address->s7_address_any_transport_size == plc4c_s7_read_write_transport_size_TOD) { @@ -396,8 +448,12 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) { free(read_buffer); free(raw_data); } + plc4c_s7_read_write_s7_var_request_parameter_item_field* s7_item_field; - *item = s7_item; + s7_item_field = malloc(sizeof(plc4c_s7_read_write_s7_var_request_parameter_item_field)); + s7_item_field->parameter_item = s7_item; + s7_item_field->s7_address_any_encoding_of_string = string_encoding; + *item = s7_item_field; return OK; } diff --git a/plc4c/drivers/s7/src/driver_s7_packets.c b/plc4c/drivers/s7/src/driver_s7_packets.c index 31a72434e1c..553a987d3e3 100644 --- a/plc4c/drivers/s7/src/driver_s7_packets.c +++ b/plc4c/drivers/s7/src/driver_s7_packets.c @@ -713,9 +713,9 @@ plc4c_return_code plc4c_driver_s7_create_s7_read_request( plc4c_s7_read_write_s7_var_request_parameter_item* updated_item_address; item = cur_item->value; - + plc4c_s7_read_write_s7_var_request_parameter_item_field* field = item->address; // Get the item address from the API request. - parsed_item_address = item->address; + parsed_item_address = field->parameter_item; // Create a copy of the request item... updated_item_address = malloc(sizeof(plc4c_s7_read_write_s7_var_request_parameter_item)); @@ -723,14 +723,14 @@ plc4c_return_code plc4c_driver_s7_create_s7_read_request( return NO_MEMORY; } updated_item_address->_type = parsed_item_address->_type; - updated_item_address->s7_var_request_parameter_item_address_address = + updated_item_address->s7_var_request_parameter_item_address_address = malloc(sizeof(plc4c_s7_read_write_s7_address)); if (updated_item_address->s7_var_request_parameter_item_address_address == NULL) { return NO_MEMORY; } // Memcpy inplace of fields assignment, as all fields where assigned memcpy(updated_item_address->s7_var_request_parameter_item_address_address, - parsed_item_address->s7_var_request_parameter_item_address_address, + parsed_item_address->s7_var_request_parameter_item_address_address, sizeof(plc4c_s7_read_write_s7_address)); // In case of TIME values, we read 4 bytes for each value instead. @@ -855,7 +855,10 @@ plc4c_return_code plc4c_driver_s7_create_s7_write_request( // Get the item address from the API request. item = list_item->value; parsed_item = item->item; - parsed_param = parsed_item->address; + + plc4c_s7_read_write_s7_var_request_parameter_item_field* field = parsed_item->address; + + parsed_param = field->parameter_item; parsed_value = item->value; // Make a copy of the param diff --git a/plc4c/drivers/s7/src/driver_s7_sm_read.c b/plc4c/drivers/s7/src/driver_s7_sm_read.c index abc8d59f648..6aa23f8b8ee 100644 --- a/plc4c/drivers/s7/src/driver_s7_sm_read.c +++ b/plc4c/drivers/s7/src/driver_s7_sm_read.c @@ -203,6 +203,7 @@ plc4c_return_code plc4c_driver_s7_parse_read_response( plc4c_data* data_item; plc4c_response_value_item* response_value_item; char* data_protocol_id; + char* string_encoding; uint16_t num_elements; int32_t string_length; uint8_t* byte_array; @@ -225,11 +226,13 @@ plc4c_return_code plc4c_driver_s7_parse_read_response( // Get the protocol id for the current item from the corresponding // request item. Also get the number of elements, if it's an array. - request_address = request_item->address; + plc4c_s7_read_write_s7_var_request_parameter_item_field* field = request_item->address; + request_address = field->parameter_item; transport_size = request_address->s7_var_request_parameter_item_address_address->s7_address_any_transport_size; num_elements = request_address->s7_var_request_parameter_item_address_address->s7_address_any_number_of_elements; data_protocol_id = plc4c_s7_read_write_transport_size_get_data_protocol_id(transport_size); - + string_encoding = field->s7_address_any_encoding_of_string; + if (transport_size == plc4c_s7_read_write_transport_size_STRING) { // TODO: This needs to be changed to read arrays of strings. string_length = num_elements; @@ -257,12 +260,12 @@ plc4c_return_code plc4c_driver_s7_parse_read_response( all_data_item = plc4c_data_create_list_data(all_list); free(all_list); for (idx = 0; idx < num_elements ; idx++) { - plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length, &data_item); - plc4c_utils_list_insert_head_value(all_data_item->data.list_value, (void*)data_item); + plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length, string_encoding, &data_item); + plc4c_utils_list_insert_head_value(&all_data_item->data.list_value, (void*)data_item); } data_item = all_data_item; } else { - plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length, &data_item); + plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length,string_encoding, &data_item); } // Create a new response value-item diff --git a/plc4c/drivers/s7/src/driver_s7_static.c b/plc4c/drivers/s7/src/driver_s7_static.c index 42dc91f2edf..dff33e5bb6b 100644 --- a/plc4c/drivers/s7/src/driver_s7_static.c +++ b/plc4c/drivers/s7/src/driver_s7_static.c @@ -53,7 +53,7 @@ uint16_t plc4c_s7_read_write_s7msec_to_int(plc4c_spi_read_buffer* io) { char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io, int32_t stringLength, - char* encoding) { + char* encoding, char* stringEncoding) { if (strcmp(encoding, "UTF-8") == 0) { // Read the max length (which is not interesting for us. uint8_t maxLen; @@ -89,7 +89,7 @@ char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io, } char* plc4c_s7_read_write_parse_s7_char(plc4c_spi_read_buffer* io, - char* encoding) { + char* encoding, char* stringEncoding) { if (strcmp(encoding, "UTF-8") == 0) { char* result = malloc(sizeof(char) * 2); if (result == NULL) { diff --git a/plc4c/generated-sources/plc4x/src/plc4x_value.c b/plc4c/generated-sources/plc4x/src/plc4x_value.c index f2ca4e097c8..a1a15c69939 100644 --- a/plc4c/generated-sources/plc4x/src/plc4x_value.c +++ b/plc4c/generated-sources/plc4x/src/plc4x_value.c @@ -235,6 +235,20 @@ plc4c_return_code plc4c_plc4x_read_write_plc4x_value_parse(plc4x_spi_context ctx *data_item = plc4c_data_create_string_data(16, value); + } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_STRING) { /* STRING */ + + // Manual Field (value) + char* value = (char*) (plc4c_plc4x_read_write_parse_string(readBuffer, "UTF-8")); + + *data_item = plc4c_data_create_string_data(strlen(value), value); + + } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_WSTRING) { /* STRING */ + + // Manual Field (value) + char* value = (char*) (plc4c_plc4x_read_write_parse_string(readBuffer, "UTF-16")); + + *data_item = plc4c_data_create_string_data(strlen(value), value); + } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_TIME) { /* TIME */ // Simple Field (milliseconds) @@ -452,6 +466,12 @@ plc4c_return_code plc4c_plc4x_read_write_plc4x_value_serialize(plc4x_spi_context if(_res != OK) { return _res; } + } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_STRING) { /* STRING */ + + // Manual Field (value) + } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_WSTRING) { /* STRING */ + + // Manual Field (value) } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_TIME) { /* TIME */ // Simple field (milliseconds) @@ -590,6 +610,20 @@ uint16_t plc4c_plc4x_read_write_plc4x_value_length_in_bits(plc4x_spi_context ctx // Simple field (value) lengthInBits += 16; + } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_STRING) { /* STRING */ + + // Manual Field (value) + { + char* _value = data_item->data.string_value; + lengthInBits += (((plc4c_spi_evaluation_helper_str_len(_value)) + (1))) * (8); + } + } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_WSTRING) { /* STRING */ + + // Manual Field (value) + { + char* _value = data_item->data.string_value; + lengthInBits += (((plc4c_spi_evaluation_helper_str_len(_value)) + (1))) * (16); + } } else if(valueType == plc4c_plc4x_read_write_plc4x_value_type_TIME) { /* TIME */ // Simple field (milliseconds) diff --git a/plc4c/generated-sources/s7/include/data_item.h b/plc4c/generated-sources/s7/include/data_item.h index 32893bb96b7..26527f78bf9 100644 --- a/plc4c/generated-sources/s7/include/data_item.h +++ b/plc4c/generated-sources/s7/include/data_item.h @@ -28,12 +28,12 @@ // Code generated by code-generation. DO NOT EDIT. -plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item); +plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item); -plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item); +plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item); -uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength); +uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding); -uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength); +uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding); #endif // PLC4C_S7_READ_WRITE_DATA_ITEM_H_ diff --git a/plc4c/generated-sources/s7/src/data_item.c b/plc4c/generated-sources/s7/src/data_item.c index c0e09c4108a..25a7d3fd49a 100644 --- a/plc4c/generated-sources/s7/src/data_item.c +++ b/plc4c/generated-sources/s7/src/data_item.c @@ -31,7 +31,7 @@ // Code generated by code-generation. DO NOT EDIT. // Parse function. -plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) { +plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) { uint16_t startPos = plc4c_spi_read_get_pos(readBuffer); uint16_t curPos; plc4c_return_code _res = OK; @@ -215,37 +215,29 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc } else if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */ - // Simple Field (value) - char* value = ""; - _res = plc4c_spi_read_string(readBuffer, 8, "UTF-8", (char**) &value); - if(_res != OK) { - return _res; - } + // Manual Field (value) + char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "UTF-8", stringEncoding)); *data_item = plc4c_data_create_char_data(value); } else if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */ - // Simple Field (value) - char* value = ""; - _res = plc4c_spi_read_string(readBuffer, 16, "UTF-16", (char**) &value); - if(_res != OK) { - return _res; - } + // Manual Field (value) + char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "UTF-16", stringEncoding)); *data_item = plc4c_data_create_char_data(value); } else if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */ // Manual Field (value) - char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-8")); + char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-8", stringEncoding)); *data_item = plc4c_data_create_string_data(stringLength, value); } else if(strcmp(dataProtocolId, "IEC61131_WSTRING") == 0) { /* STRING */ // Manual Field (value) - char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-16")); + char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-16", stringEncoding)); *data_item = plc4c_data_create_string_data(stringLength, value); @@ -390,7 +382,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc return OK; } -plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) { +plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) { plc4c_return_code _res = OK; if(strcmp(dataProtocolId, "IEC61131_BOOL") == 0) { /* BOOL */ @@ -501,18 +493,10 @@ plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, } } else if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */ - // Simple field (value) - _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (*data_item)->data.char_value); - if(_res != OK) { - return _res; - } + // Manual Field (value) } else if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */ - // Simple field (value) - _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (*data_item)->data.char_value); - if(_res != OK) { - return _res; - } + // Manual Field (value) } else if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */ // Manual Field (value) @@ -607,11 +591,11 @@ plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, return OK; } -uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* data_protocol_id, int32_t string_length) { - return plc4c_s7_read_write_data_item_length_in_bits(ctx, data_item, data_protocol_id, string_length) / 8; +uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* data_protocol_id, int32_t string_length, char* string_encoding) { + return plc4c_s7_read_write_data_item_length_in_bits(ctx, data_item, data_protocol_id, string_length, string_encoding) / 8; } -uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength) { +uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding) { uint16_t lengthInBits = 0; if(strcmp(dataProtocolId, "IEC61131_BOOL") == 0) { /* BOOL */ @@ -678,26 +662,20 @@ uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc lengthInBits += 64; } else if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */ - // Simple field (value) + // Manual Field (value) lengthInBits += 8; } else if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */ - // Simple field (value) + // Manual Field (value) lengthInBits += 16; } else if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */ // Manual Field (value) - { - char* _value = data_item->data.string_value; - lengthInBits += (plc4c_spi_evaluation_helper_str_len(_value)) + (2); - } + lengthInBits += (((stringLength) + (2))) * (8); } else if(strcmp(dataProtocolId, "IEC61131_WSTRING") == 0) { /* STRING */ // Manual Field (value) - { - char* _value = data_item->data.string_value; - lengthInBits += (((plc4c_spi_evaluation_helper_str_len(_value)) * (2))) + (2); - } + lengthInBits += (((stringLength) + (2))) * (16); } else if(strcmp(dataProtocolId, "IEC61131_TIME") == 0) { /* TIME */ // Simple field (milliseconds) diff --git a/plc4c/generated-sources/s7/src/transport_size.c b/plc4c/generated-sources/s7/src/transport_size.c index b681e48047f..50978d3c977 100644 --- a/plc4c/generated-sources/s7/src/transport_size.c +++ b/plc4c/generated-sources/s7/src/transport_size.c @@ -1093,28 +1093,28 @@ plc4c_s7_read_write_data_transport_size plc4c_s7_read_write_transport_size_get_d return plc4c_s7_read_write_data_transport_size_INTEGER; } case plc4c_s7_read_write_transport_size_LINT: { /* '0x0C' */ - return -1; + return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_ULINT: { /* '0x0D' */ - return -1; + return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_REAL: { /* '0x0E' */ - return plc4c_s7_read_write_data_transport_size_REAL; + return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_LREAL: { /* '0x0F' */ - return -1; + return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_CHAR: { /* '0x10' */ return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_WCHAR: { /* '0x11' */ - return -1; + return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_STRING: { /* '0x12' */ return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_WSTRING: { /* '0x13' */ - return -1; + return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD; } case plc4c_s7_read_write_transport_size_TIME: { /* '0x14' */ return -1; @@ -1154,9 +1154,6 @@ plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_first_ case plc4c_s7_read_write_transport_size_INT: /* '0x06' */{ return plc4c_s7_read_write_transport_size_INT; } - case plc4c_s7_read_write_transport_size_REAL: /* '0x0E' */{ - return plc4c_s7_read_write_transport_size_REAL; - } case plc4c_s7_read_write_transport_size_LWORD: /* '0x05' */{ return plc4c_s7_read_write_transport_size_LWORD; } @@ -1363,10 +1360,10 @@ plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_base_t return plc4c_s7_read_write_transport_size_INT; } case plc4c_s7_read_write_transport_size_LINT: { /* '0x0C' */ - return plc4c_s7_read_write_transport_size_INT; + return -1; } case plc4c_s7_read_write_transport_size_ULINT: { /* '0x0D' */ - return plc4c_s7_read_write_transport_size_INT; + return -1; } case plc4c_s7_read_write_transport_size_REAL: { /* '0x0E' */ return -1; diff --git a/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml b/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml index 8d76a5ce141..97aab67eb6d 100644 --- a/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml +++ b/plc4go/assets/testing/protocols/s7/DriverTestsuite.xml @@ -441,7 +441,7 @@ 240 true - 10 + 2 @@ -450,7 +450,7 @@ 50 1 0 - 10 + 2 14 0 @@ -508,7 +508,7 @@ 240 true - 0 + 2 @@ -517,7 +517,7 @@ 50 3 0 - 10 + 2 2 6 @@ -613,7 +613,7 @@ 240 true - 10 + 2 @@ -622,7 +622,7 @@ 50 1 0 - 10 + 2 14 0 @@ -680,7 +680,7 @@ 240 true - 0 + 2 @@ -689,7 +689,7 @@ 50 2 0 - 10 + 2 0 0 diff --git a/plc4go/internal/s7/Reader.go b/plc4go/internal/s7/Reader.go index a0c3aca9455..15b5fd76fd1 100644 --- a/plc4go/internal/s7/Reader.go +++ b/plc4go/internal/s7/Reader.go @@ -210,13 +210,16 @@ func (m *Reader) ToPlc4xReadResponse(response readWriteModel.S7Message, readRequ for i, tagName := range readRequest.GetTagNames() { tag := readRequest.GetTag(tagName).(PlcTag) payloadItem := payloadItems[i] - + stringLength := uint16(254) + if s7StringTag, ok := tag.(PlcStringTag); ok { + stringLength = s7StringTag.stringLength + } responseCode := decodeResponseCode(payloadItem.GetReturnCode()) // Decode the data according to the information from the request log.Trace().Msg("decode data") responseCodes[tagName] = responseCode if responseCode == model.PlcResponseCode_OK { - plcValue, err := readWriteModel.DataItemParse(context.Background(), payloadItem.GetData(), tag.GetDataType().DataProtocolId(), int32(tag.GetNumElements())) + plcValue, err := readWriteModel.DataItemParse(context.Background(), payloadItem.GetData(), tag.GetDataType().DataProtocolId(), int32(stringLength), tag.GetStringEncoding()) if err != nil { return nil, errors.Wrap(err, "Error parsing data item") } diff --git a/plc4go/internal/s7/Tag.go b/plc4go/internal/s7/Tag.go index 9dac0237543..bb0edd83838 100644 --- a/plc4go/internal/s7/Tag.go +++ b/plc4go/internal/s7/Tag.go @@ -39,27 +39,30 @@ type PlcTag interface { GetMemoryArea() readWriteModel.MemoryArea GetByteOffset() uint16 GetBitOffset() uint8 + GetStringEncoding() string } type plcTag struct { - TagType TagType - MemoryArea readWriteModel.MemoryArea - BlockNumber uint16 - ByteOffset uint16 - BitOffset uint8 - NumElements uint16 - Datatype readWriteModel.TransportSize + TagType TagType + MemoryArea readWriteModel.MemoryArea + BlockNumber uint16 + ByteOffset uint16 + BitOffset uint8 + NumElements uint16 + Datatype readWriteModel.TransportSize + StringEncoding string } -func NewTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, datatype readWriteModel.TransportSize) PlcTag { +func NewTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, datatype readWriteModel.TransportSize, stringEncoding string) PlcTag { return plcTag{ - TagType: S7Tag, - MemoryArea: memoryArea, - BlockNumber: blockNumber, - ByteOffset: byteOffset, - BitOffset: bitOffset, - NumElements: numElements, - Datatype: datatype, + TagType: S7Tag, + MemoryArea: memoryArea, + BlockNumber: blockNumber, + ByteOffset: byteOffset, + BitOffset: bitOffset, + NumElements: numElements, + Datatype: datatype, + StringEncoding: stringEncoding, } } @@ -68,16 +71,17 @@ type PlcStringTag struct { stringLength uint16 } -func NewStringTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, stringLength uint16, datatype readWriteModel.TransportSize) PlcStringTag { +func NewStringTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, stringLength uint16, datatype readWriteModel.TransportSize, stringEncoding string) PlcStringTag { return PlcStringTag{ plcTag: plcTag{ - TagType: S7StringTag, - MemoryArea: memoryArea, - BlockNumber: blockNumber, - ByteOffset: byteOffset, - BitOffset: bitOffset, - NumElements: numElements, - Datatype: datatype, + TagType: S7StringTag, + MemoryArea: memoryArea, + BlockNumber: blockNumber, + ByteOffset: byteOffset, + BitOffset: bitOffset, + NumElements: numElements, + Datatype: datatype, + StringEncoding: stringEncoding, }, stringLength: stringLength, } @@ -142,6 +146,10 @@ func (m plcTag) Serialize() ([]byte, error) { return wb.GetBytes(), nil } +func (m plcTag) GetStringEncoding() string { + return m.StringEncoding +} + func (m plcTag) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error { if err := writeBuffer.PushContext(m.TagType.GetName()); err != nil { return err diff --git a/plc4go/internal/s7/TagHandler.go b/plc4go/internal/s7/TagHandler.go index 6c2bc99cb06..d7f21cce66b 100644 --- a/plc4go/internal/s7/TagHandler.go +++ b/plc4go/internal/s7/TagHandler.go @@ -57,11 +57,11 @@ func NewTagHandler() TagHandler { return TagHandler{ addressPattern: regexp.MustCompile(`^%(?P.)(?P[XBWD]?)(?P\d{1,7})(.(?P[0-7]))?:(?P[a-zA-Z_]+)(\[(?P\d+)])?`), //blockNumber usually has its max hat around 64000 --> 5digits - dataBlockAddressPattern: regexp.MustCompile(`^%DB(?P\d{1,5}).DB(?P[XBWD]?)(?P\d{1,7})(.(?P[0-7]))?:(?P[a-zA-Z_]+)(\[(?P\d+)])?`), - dataBlockShortPattern: regexp.MustCompile(`^%DB(?P\d{1,5}):(?P\d{1,7})(.(?P[0-7]))?:(?P[a-zA-Z_]+)(\[(?P\d+)])?`), - dataBlockStringAddressPattern: regexp.MustCompile(`^%DB(?P\d{1,5}).DB(?P[XBWD]?)(?P\d{1,7})(.(?P[0-7]))?:(?PSTRING|WSTRING)\((?P\d{1,3})\)(\[(?P\d+)])?`), - dataBlockStringShortPattern: regexp.MustCompile(`^%DB(?P\d{1,5}):(?P\d{1,7})(.(?P[0-7]))?:(?PSTRING|WSTRING)\((?P\d{1,3})\)(\[(?P\d+)])?`), - plcProxyAddressPattern: regexp.MustCompile(`[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}`), + dataBlockAddressPattern: regexp.MustCompile(`^%DB(?P\d{1,5}).DB(?P[XBWD]?)(?P\d{1,7})(.(?P[0-7]))?:(?P[a-zA-Z_]+)(\[(?P\d+)])?(\|(?P[a-z0-9A-Z_-]+))?`), + dataBlockShortPattern: regexp.MustCompile(`^%DB(?P\d{1,5}):(?P\d{1,7})(.(?P[0-7]))?:(?P[a-zA-Z_]+)(\[(?P\d+)])?(\|(?P[a-z0-9A-Z_-]+))?`), + dataBlockStringAddressPattern: regexp.MustCompile(`^%DB(?P\d{1,5}).DB(?P[XBWD]?)(?P\d{1,7})(.(?P[0-7]))?:(?PSTRING|WSTRING)\((?P\d{1,3})\)(\[(?P\d+)])?(\|(?P[a-z0-9A-Z_-]+))?`), + dataBlockStringShortPattern: regexp.MustCompile(`^%DB(?P\d{1,5}):(?P\d{1,7})(.(?P[0-7]))?:(?PSTRING|WSTRING)\((?P\d{1,3})\)(\[(?P\d+)])?(\|(?P[a-z0-9A-Z_-]+))?`), + plcProxyAddressPattern: regexp.MustCompile(`[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}(\|(?P[a-z0-9A-Z_-]+))?`), } } @@ -119,8 +119,15 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) { if (transferSizeCode != 0) && (dataType.ShortName() != transferSizeCode) { return nil, errors.Errorf("Transfer size code '%d' doesn't match specified data type '%s'", transferSizeCode, dataType) } + stringEncoding := match["stringEncoding"] + if stringEncoding == "" { + stringEncoding = "UTF-8" + if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR { + stringEncoding = "UTF-16" + } + } - return NewStringTag(memoryArea, 0, byteOffset, bitOffset, numElements, stringLength, dataType), nil + return NewStringTag(memoryArea, 0, byteOffset, bitOffset, numElements, stringLength, dataType, stringEncoding), nil } else if match := utils.GetSubgroupMatches(m.dataBlockStringShortPattern, tagAddress); match != nil { dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE]) if !ok { @@ -157,8 +164,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) { } numElements = uint16(parsedNumElements) } - - return NewStringTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength, dataType), nil + stringEncoding := match["stringEncoding"] + if stringEncoding == "" { + stringEncoding = "UTF-8" + if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR { + stringEncoding = "UTF-16" + } + } + return NewStringTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength, dataType, stringEncoding), nil } else if match := utils.GetSubgroupMatches(m.dataBlockAddressPattern, tagAddress); match != nil { dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE]) if !ok { @@ -204,8 +217,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) { if (transferSizeCode != 0) && (dataType.ShortName() != transferSizeCode) { return nil, errors.Errorf("Transfer size code '%d' doesn't match specified data type '%s'", transferSizeCode, dataType) } - - return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType), nil + stringEncoding := match["stringEncoding"] + if stringEncoding == "" { + stringEncoding = "UTF-8" + if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR { + stringEncoding = "UTF-16" + } + } + return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType, stringEncoding), nil } else if match := utils.GetSubgroupMatches(m.dataBlockShortPattern, tagAddress); match != nil { dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE]) if !ok { @@ -246,8 +265,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) { } numElements = uint16(parsedNumElements) } - - return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType), nil + stringEncoding := match["stringEncoding"] + if stringEncoding == "" { + stringEncoding = "UTF-8" + if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR { + stringEncoding = "UTF-16" + } + } + return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType, stringEncoding), nil } else if match := utils.GetSubgroupMatches(m.plcProxyAddressPattern, tagAddress); match != nil { addressData, err := hex.DecodeString(strings.ReplaceAll(tagAddress, "[-]", "")) if err != nil { @@ -261,7 +286,13 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) { if (s7AddressAny.GetTransportSize() != readWriteModel.TransportSize_BOOL) && s7AddressAny.GetBitAddress() != 0 { return nil, errors.New("A bit offset other than 0 is only supported for type BOOL") } - + stringEncoding := match["stringEncoding"] + if stringEncoding == "" { + stringEncoding = "UTF-8" + if s7AddressAny.GetTransportSize() == readWriteModel.TransportSize_WSTRING || s7AddressAny.GetTransportSize() == readWriteModel.TransportSize_WCHAR { + stringEncoding = "UTF-16" + } + } return NewTag( s7AddressAny.GetArea(), s7AddressAny.GetDbNumber(), @@ -269,6 +300,7 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) { s7AddressAny.GetBitAddress(), s7AddressAny.GetNumberOfElements(), s7AddressAny.GetTransportSize(), + stringEncoding, ), nil } else if match := utils.GetSubgroupMatches(m.addressPattern, tagAddress); match != nil { dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE]) @@ -313,8 +345,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) { if (dataType != readWriteModel.TransportSize_BOOL) && bitOffset != 0 { return nil, errors.New("A bit offset other than 0 is only supported for type BOOL") } - - return NewTag(memoryArea, 0, byteOffset, bitOffset, numElements, dataType), nil + stringEncoding := match["stringEncoding"] + if stringEncoding == "" { + stringEncoding = "UTF-8" + if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR { + stringEncoding = "UTF-16" + } + } + return NewTag(memoryArea, 0, byteOffset, bitOffset, numElements, dataType, stringEncoding), nil } return nil, errors.Errorf("Unable to parse %s", tagAddress) } diff --git a/plc4go/internal/s7/Writer.go b/plc4go/internal/s7/Writer.go index cd33c379e7e..85bef3fa253 100644 --- a/plc4go/internal/s7/Writer.go +++ b/plc4go/internal/s7/Writer.go @@ -231,7 +231,7 @@ func serializePlcValue(tag model.PlcTag, plcValue values.PlcValue) (readWriteMod if s7StringTag, ok := tag.(*PlcStringTag); ok { stringLength = s7StringTag.stringLength } - data, err := readWriteModel.DataItemSerialize(plcValue, s7Tag.GetDataType().DataProtocolId(), int32(stringLength)) + data, err := readWriteModel.DataItemSerialize(plcValue, s7Tag.GetDataType().DataProtocolId(), int32(stringLength), s7Tag.GetStringEncoding()) if err != nil { return nil, errors.Wrapf(err, "Error serializing tag item of type: '%v'", s7Tag.GetDataType()) } diff --git a/plc4go/internal/simulated/Reader_test.go b/plc4go/internal/simulated/Reader_test.go index 41e9bace88b..59007c53891 100644 --- a/plc4go/internal/simulated/Reader_test.go +++ b/plc4go/internal/simulated/Reader_test.go @@ -145,7 +145,7 @@ func TestReader_Read(t *testing.T) { }, args: args{ fields: map[string]model.PlcTag{ - "test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL), + "test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL, "UTF-8"), }, fieldNames: []string{"test"}, }, diff --git a/plc4go/internal/simulated/Writer_test.go b/plc4go/internal/simulated/Writer_test.go index 9f0b10e97bf..64af673d4f5 100644 --- a/plc4go/internal/simulated/Writer_test.go +++ b/plc4go/internal/simulated/Writer_test.go @@ -154,7 +154,7 @@ func TestWriter_Write(t *testing.T) { }, args: args{ fields: map[string]model.PlcTag{ - "test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL), + "test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL, "UTF-8"), }, values: map[string]values.PlcValue{ "test": values2.NewPlcBOOL(false), diff --git a/plc4go/protocols/s7/readwrite/ParserHelper.go b/plc4go/protocols/s7/readwrite/ParserHelper.go index 86cb61bb774..fc717c57f92 100644 --- a/plc4go/protocols/s7/readwrite/ParserHelper.go +++ b/plc4go/protocols/s7/readwrite/ParserHelper.go @@ -43,7 +43,11 @@ func (m S7ParserHelper) Parse(typeName string, arguments []string, io utils.Read if err != nil { return nil, errors.Wrap(err, "Error parsing") } - return model.DataItemParseWithBuffer(context.Background(), io, dataProtocolId, stringLength) + stringEncoding, err := utils.StrToString(arguments[2]) + if err != nil { + return nil, errors.Wrap(err, "Error parsing") + } + return model.DataItemParseWithBuffer(context.Background(), io, dataProtocolId, stringLength, stringEncoding) case "SzlId": return model.SzlIdParseWithBuffer(context.Background(), io) case "AlarmMessageObjectAckType": diff --git a/plc4go/protocols/s7/readwrite/XmlParserHelper.go b/plc4go/protocols/s7/readwrite/XmlParserHelper.go index a8374bea380..9d1a8e858be 100644 --- a/plc4go/protocols/s7/readwrite/XmlParserHelper.go +++ b/plc4go/protocols/s7/readwrite/XmlParserHelper.go @@ -52,7 +52,9 @@ func (m S7XmlParserHelper) Parse(typeName string, xmlString string, parserArgume return nil, err } stringLength := int32(parsedInt1) - return model.DataItemParseWithBuffer(context.Background(), utils.NewXmlReadBuffer(strings.NewReader(xmlString)), dataProtocolId, stringLength) + // TODO: find a way to parse the sub types + var stringEncoding string + return model.DataItemParseWithBuffer(context.Background(), utils.NewXmlReadBuffer(strings.NewReader(xmlString)), dataProtocolId, stringLength, stringEncoding) case "SzlId": return model.SzlIdParseWithBuffer(context.Background(), utils.NewXmlReadBuffer(strings.NewReader(xmlString))) case "AlarmMessageObjectAckType": diff --git a/plc4go/protocols/s7/readwrite/model/DataItem.go b/plc4go/protocols/s7/readwrite/model/DataItem.go index a7879462c14..5aec9ab96c6 100644 --- a/plc4go/protocols/s7/readwrite/model/DataItem.go +++ b/plc4go/protocols/s7/readwrite/model/DataItem.go @@ -29,11 +29,11 @@ import ( // Code generated by code-generation. DO NOT EDIT. -func DataItemParse(ctx context.Context, theBytes []byte, dataProtocolId string, stringLength int32) (api.PlcValue, error) { - return DataItemParseWithBuffer(ctx, utils.NewReadBufferByteBased(theBytes), dataProtocolId, stringLength) +func DataItemParse(ctx context.Context, theBytes []byte, dataProtocolId string, stringLength int32, stringEncoding string) (api.PlcValue, error) { + return DataItemParseWithBuffer(ctx, utils.NewReadBufferByteBased(theBytes), dataProtocolId, stringLength, stringEncoding) } -func DataItemParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, dataProtocolId string, stringLength int32) (api.PlcValue, error) { +func DataItemParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, dataProtocolId string, stringLength int32, stringEncoding string) (api.PlcValue, error) { readBuffer.PullContext("DataItem") switch { case dataProtocolId == "IEC61131_BOOL": // BOOL @@ -162,16 +162,16 @@ func DataItemParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, d readBuffer.CloseContext("DataItem") return values.NewPlcLREAL(value), nil case dataProtocolId == "IEC61131_CHAR": // CHAR - // Simple Field (value) - value, _valueErr := readBuffer.ReadString("value", uint32(8), "UTF-8") + // Manual Field (value) + value, _valueErr := ParseS7Char(readBuffer, "UTF-8", stringEncoding) if _valueErr != nil { return nil, errors.Wrap(_valueErr, "Error parsing 'value' field") } readBuffer.CloseContext("DataItem") return values.NewPlcCHAR(value), nil case dataProtocolId == "IEC61131_WCHAR": // CHAR - // Simple Field (value) - value, _valueErr := readBuffer.ReadString("value", uint32(16), "UTF-16") + // Manual Field (value) + value, _valueErr := ParseS7Char(readBuffer, "UTF-16", stringEncoding) if _valueErr != nil { return nil, errors.Wrap(_valueErr, "Error parsing 'value' field") } @@ -179,7 +179,7 @@ func DataItemParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, d return values.NewPlcCHAR(value), nil case dataProtocolId == "IEC61131_STRING": // STRING // Manual Field (value) - value, _valueErr := ParseS7String(readBuffer, stringLength, "UTF-8") + value, _valueErr := ParseS7String(readBuffer, stringLength, "UTF-8", stringEncoding) if _valueErr != nil { return nil, errors.Wrap(_valueErr, "Error parsing 'value' field") } @@ -187,7 +187,7 @@ func DataItemParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, d return values.NewPlcSTRING(value), nil case dataProtocolId == "IEC61131_WSTRING": // STRING // Manual Field (value) - value, _valueErr := ParseS7String(readBuffer, stringLength, "UTF-16") + value, _valueErr := ParseS7String(readBuffer, stringLength, "UTF-16", stringEncoding) if _valueErr != nil { return nil, errors.Wrap(_valueErr, "Error parsing 'value' field") } @@ -288,21 +288,23 @@ func DataItemParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, d return nil, errors.New("unsupported type") } -func DataItemSerialize(value api.PlcValue, dataProtocolId string, stringLength int32) ([]byte, error) { +func DataItemSerialize(value api.PlcValue, dataProtocolId string, stringLength int32, stringEncoding string) ([]byte, error) { wb := utils.NewWriteBufferByteBased() - if err := DataItemSerializeWithWriteBuffer(context.Background(), wb, value, dataProtocolId, stringLength); err != nil { + if err := DataItemSerializeWithWriteBuffer(context.Background(), wb, value, dataProtocolId, stringLength, stringEncoding); err != nil { return nil, err } return wb.GetBytes(), nil } -func DataItemSerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer, value api.PlcValue, dataProtocolId string, stringLength int32) error { +func DataItemSerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer, value api.PlcValue, dataProtocolId string, stringLength int32, stringEncoding string) error { m := struct { DataProtocolId string StringLength int32 + StringEncoding string }{ DataProtocolId: dataProtocolId, StringLength: stringLength, + StringEncoding: stringEncoding, } _ = m writeBuffer.PushContext("DataItem") @@ -388,24 +390,26 @@ func DataItemSerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.Wri return errors.Wrap(_err, "Error serializing 'value' field") } case dataProtocolId == "IEC61131_CHAR": // CHAR - // Simple Field (value) - if _err := writeBuffer.WriteString("value", uint32(8), "UTF-8", value.GetString()); _err != nil { - return errors.Wrap(_err, "Error serializing 'value' field") + // Manual Field (value) + _valueErr := SerializeS7Char(writeBuffer, value, "UTF-8", m.StringEncoding) + if _valueErr != nil { + return errors.Wrap(_valueErr, "Error serializing 'value' field") } case dataProtocolId == "IEC61131_WCHAR": // CHAR - // Simple Field (value) - if _err := writeBuffer.WriteString("value", uint32(16), "UTF-16", value.GetString()); _err != nil { - return errors.Wrap(_err, "Error serializing 'value' field") + // Manual Field (value) + _valueErr := SerializeS7Char(writeBuffer, value, "UTF-16", m.StringEncoding) + if _valueErr != nil { + return errors.Wrap(_valueErr, "Error serializing 'value' field") } case dataProtocolId == "IEC61131_STRING": // STRING // Manual Field (value) - _valueErr := SerializeS7String(writeBuffer, value, stringLength, "UTF-8") + _valueErr := SerializeS7String(writeBuffer, value, stringLength, "UTF-8", m.StringEncoding) if _valueErr != nil { return errors.Wrap(_valueErr, "Error serializing 'value' field") } case dataProtocolId == "IEC61131_WSTRING": // STRING // Manual Field (value) - _valueErr := SerializeS7String(writeBuffer, value, stringLength, "UTF-16") + _valueErr := SerializeS7String(writeBuffer, value, stringLength, "UTF-16", m.StringEncoding) if _valueErr != nil { return errors.Wrap(_valueErr, "Error serializing 'value' field") } diff --git a/plc4go/protocols/s7/readwrite/model/StaticHelper.go b/plc4go/protocols/s7/readwrite/model/StaticHelper.go index 0b588648e04..90110b20095 100644 --- a/plc4go/protocols/s7/readwrite/model/StaticHelper.go +++ b/plc4go/protocols/s7/readwrite/model/StaticHelper.go @@ -20,9 +20,10 @@ package model import ( + "time" + "github.com/apache/plc4x/plc4go/pkg/api/values" "github.com/apache/plc4x/plc4go/spi/utils" - "time" ) func ParseTiaTime(io utils.ReadBuffer) (uint32, error) { @@ -122,33 +123,46 @@ func SerializeTiaDateTime(io utils.WriteBuffer, value values.PlcValue) error { return nil } -func ParseS7String(io utils.ReadBuffer, stringLength int32, encoding string) (string, error) { +func ParseS7String(io utils.ReadBuffer, stringLength int32, defaultEncoding string, encoding string) (string, error) { + usedEncoding := defaultEncoding + if len(encoding) > 0 { + usedEncoding = encoding + } var multiplier int32 - switch encoding { + switch usedEncoding { case "UTF-8": multiplier = 8 case "UTF-16": multiplier = 16 } - return io.ReadString("", uint32(stringLength*multiplier), encoding) + return io.ReadString("", uint32(stringLength*multiplier), usedEncoding) } -func SerializeS7String(io utils.WriteBuffer, value values.PlcValue, stringLength int32, encoding string) error { +func SerializeS7String(io utils.WriteBuffer, value values.PlcValue, stringLength int32, defaultEncoding string, encoding string) error { + usedEncoding := defaultEncoding + if len(encoding) > 0 { + usedEncoding = encoding + } var multiplier int32 - switch encoding { + switch usedEncoding { case "UTF-8": multiplier = 8 case "UTF-16": multiplier = 16 } - return io.WriteString("", uint32(stringLength*multiplier), encoding, value.GetString()) + return io.WriteString("", uint32(stringLength*multiplier), usedEncoding, value.GetString()) } -func ParseS7Char(io utils.ReadBuffer, encoding string) (uint8, error) { - return io.ReadUint8("", 8) +func ParseS7Char(io utils.ReadBuffer, defaultEncoding string, encoding string) (string, error) { + usedEncoding := defaultEncoding + if len(encoding) > 0 { + usedEncoding = encoding + } + return io.ReadString("value", uint32(8), usedEncoding) } -func SerializeS7Char(io utils.WriteBuffer, value values.PlcValue, encoding string) error { +func SerializeS7Char(io utils.WriteBuffer, value values.PlcValue, defaultEncoding string, encoding string) error { + // TODO: This sort of looks wrong. return io.WriteUint8("", 8, value.GetUint8()) } diff --git a/plc4go/protocols/s7/readwrite/model/TransportSize.go b/plc4go/protocols/s7/readwrite/model/TransportSize.go index 1d336711ac7..a89861aa229 100644 --- a/plc4go/protocols/s7/readwrite/model/TransportSize.go +++ b/plc4go/protocols/s7/readwrite/model/TransportSize.go @@ -1132,19 +1132,19 @@ func (e TransportSize) DataTransportSize() DataTransportSize { } case 0x0C: { /* '0x0C' */ - return 0 + return DataTransportSize_BYTE_WORD_DWORD } case 0x0D: { /* '0x0D' */ - return 0 + return DataTransportSize_BYTE_WORD_DWORD } case 0x0E: { /* '0x0E' */ - return DataTransportSize_REAL + return DataTransportSize_BYTE_WORD_DWORD } case 0x0F: { /* '0x0F' */ - return 0 + return DataTransportSize_BYTE_WORD_DWORD } case 0x10: { /* '0x10' */ @@ -1152,7 +1152,7 @@ func (e TransportSize) DataTransportSize() DataTransportSize { } case 0x11: { /* '0x11' */ - return 0 + return DataTransportSize_BYTE_WORD_DWORD } case 0x12: { /* '0x12' */ @@ -1160,7 +1160,7 @@ func (e TransportSize) DataTransportSize() DataTransportSize { } case 0x13: { /* '0x13' */ - return 0 + return DataTransportSize_BYTE_WORD_DWORD } case 0x14: { /* '0x14' */ @@ -1376,11 +1376,11 @@ func (e TransportSize) BaseType() TransportSize { } case 0x0C: { /* '0x0C' */ - return TransportSize_INT + return 0 } case 0x0D: { /* '0x0D' */ - return TransportSize_INT + return 0 } case 0x0E: { /* '0x0E' */ diff --git a/plc4j/api/pom.xml b/plc4j/api/pom.xml index f4efa24820a..28dd1d940f2 100644 --- a/plc4j/api/pom.xml +++ b/plc4j/api/pom.xml @@ -42,6 +42,9 @@ com.fasterxml.jackson.annotation;resolution:=optional, * + + * + diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java b/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java index fc5a3c8274d..e39c6a7f9be 100644 --- a/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java @@ -71,16 +71,21 @@ public DefaultPlcDriverManager(ClassLoader classLoader) { * @throws PlcConnectionException an exception if the connection attempt failed. */ public PlcConnection getConnection(String url) throws PlcConnectionException { - ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); - Thread.currentThread().setContextClassLoader(this.classLoader); PlcConnection connection; - try { + if (this.classLoader == null) { PlcDriver driver = getDriverForUrl(url); connection = driver.getConnection(url); - connection.connect(); - } finally { - Thread.currentThread().setContextClassLoader(originalClassLoader); + } else { + final ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); + Thread.currentThread().setContextClassLoader(classLoader); + try { + PlcDriver driver = getDriverForUrl(url); + connection = driver.getConnection(url); + } finally { + Thread.currentThread().setContextClassLoader(originalClassLoader); + } } + connection.connect(); return connection; } @@ -93,19 +98,29 @@ public PlcConnection getConnection(String url) throws PlcConnectionException { * @throws PlcConnectionException an exception if the connection attempt failed. */ public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException { - ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); - Thread.currentThread().setContextClassLoader(this.classLoader); PlcConnection connection; - try { + if (this.classLoader == null) { PlcDriver driver = getDriverForUrl(url); - connection = driver.getConnection(url, authentication); - connection.connect(); - } finally { - Thread.currentThread().setContextClassLoader(originalClassLoader); + connection = driver.getConnection(url); + } else { + final ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); + Thread.currentThread().setContextClassLoader(classLoader); + try { + PlcDriver driver = getDriverForUrl(url); + connection = driver.getConnection(url, authentication); + } finally { + Thread.currentThread().setContextClassLoader(originalClassLoader); + } } + connection.connect(); return connection; } + @Override + public PlcDriverManager getDriverManager() { + return this; + } + /** * Returns the codes of all of the drivers which are currently registered at the PlcDriverManager * @return Set of driver codes for all drivers registered diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java index 98511ad75a8..e8515ef5a5d 100644 --- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java @@ -41,5 +41,6 @@ public interface PlcConnectionManager { * @throws PlcConnectionException an exception if the connection attempt failed. */ PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException; + PlcDriverManager getDriverManager(); } diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java index 5cdbd794a6a..a0cf8e959d3 100644 --- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java @@ -47,6 +47,15 @@ public interface PlcTag { */ String getAddressString(); + /** + * Returns the number of elements, that this tag would be parsed from. + * + * @return the number of elements representing this Tag + */ + default int getNumberOfElements(){ + return 1; + } + /** * Returns the "datatype" of the response one can expect from this tag. * I.e. The mapping between this string and the PlcValue datatype is handled in the ValueHandler class. @@ -63,6 +72,10 @@ default PlcValueType getPlcValueType() { return PlcValueType.NULL; } + @JsonIgnore + default void setPlcValueType(PlcValueType plcValueType){ + } + /** * Returns the number of elements to expect of the response one can expect from this field. * diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java index 9ece366ea51..bacceba34ba 100644 --- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java +++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java @@ -115,6 +115,7 @@ public String getPlcDataType() { return adsDataTypeName; } + @Override public int getNumberOfElements() { return numberOfElements; } diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java index 3336e548d16..25991d8f0b4 100644 --- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java +++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java @@ -44,7 +44,7 @@ public SDODownloadConversation(CANConversation delegate, int nodeId, int answerN try { WriteBufferByteBased writeBuffer = new WriteBufferByteBased(DataItem.getLengthInBytes(value, type, null), ByteOrder.LITTLE_ENDIAN); DataItem.staticSerialize(writeBuffer, value, type, null, ByteOrder.LITTLE_ENDIAN); - data = writeBuffer.getData(); + data = writeBuffer.getBytes(); } catch (SerializationException e) { throw new PlcRuntimeException("Could not serialize data", e); } diff --git a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java index 48f7cf4f0b6..1728abe3176 100644 --- a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java +++ b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java @@ -57,6 +57,7 @@ public int getAddress() { return address; } + @Override public int getNumberOfElements() { return quantity; } diff --git a/plc4j/drivers/knxnetip/pom.xml b/plc4j/drivers/knxnetip/pom.xml index dda734fe8e4..a45c69463da 100644 --- a/plc4j/drivers/knxnetip/pom.xml +++ b/plc4j/drivers/knxnetip/pom.xml @@ -161,7 +161,7 @@ org.bouncycastle - bcprov-jdk15on + bcprov-jdk18on diff --git a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java index c3eaafba966..ba6688b099c 100644 --- a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java +++ b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java @@ -286,7 +286,7 @@ public CompletableFuture write(PlcWriteRequest writeRequest) { try { final WriteBufferByteBased writeBuffer = new WriteBufferByteBased(KnxDatapoint.getLengthInBytes(value, groupAddress.getType())); KnxDatapoint.staticSerialize(writeBuffer, value, groupAddress.getType()); - final byte[] serialized = writeBuffer.getData(); + final byte[] serialized = writeBuffer.getBytes(); dataFirstByte = serialized[0]; data = new byte[serialized.length - 1]; System.arraycopy(serialized, 1, data, 0, serialized.length - 1); diff --git a/plc4j/drivers/opcua/pom.xml b/plc4j/drivers/opcua/pom.xml index 23ac7aa6cb3..cb57d776c26 100644 --- a/plc4j/drivers/opcua/pom.xml +++ b/plc4j/drivers/opcua/pom.xml @@ -161,11 +161,11 @@ org.bouncycastle - bcpkix-jdk15on + bcpkix-jdk18on org.bouncycastle - bcprov-jdk15on + bcprov-jdk18on @@ -193,6 +193,16 @@ org.eclipse.milo server-examples + + + org.bouncycastle + bcprov-jdk15on + + + org.bouncycastle + bcpkix-jdk15on + + test diff --git a/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java b/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java index 197af70fe5a..51b95b69a7d 100644 --- a/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java +++ b/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java @@ -28,6 +28,14 @@ public enum OpcuaNodeIdServices { AccessLevelType((int) 15031L), AccessRestrictionType((int) 95L), AcknowledgeableConditionType((int) 2881L), + ActivateSessionRequest((int) 465L), + ActivateSessionRequest_Encoding_DefaultBinary((int) 467L), + ActivateSessionRequest_Encoding_DefaultJson((int) 15145L), + ActivateSessionRequest_Encoding_DefaultXml((int) 466L), + ActivateSessionResponse((int) 468L), + ActivateSessionResponse_Encoding_DefaultBinary((int) 470L), + ActivateSessionResponse_Encoding_DefaultJson((int) 15146L), + ActivateSessionResponse_Encoding_DefaultXml((int) 469L), AdditionalParametersType((int) 16313L), AdditionalParametersType_Encoding_DefaultBinary((int) 17537L), AdditionalParametersType_Encoding_DefaultJson((int) 17547L), @@ -36,16 +44,44 @@ public enum OpcuaNodeIdServices { AddNodesItem_Encoding_DefaultBinary((int) 378L), AddNodesItem_Encoding_DefaultJson((int) 15165L), AddNodesItem_Encoding_DefaultXml((int) 377L), + AddNodesRequest((int) 486L), + AddNodesRequest_Encoding_DefaultBinary((int) 488L), + AddNodesRequest_Encoding_DefaultJson((int) 15167L), + AddNodesRequest_Encoding_DefaultXml((int) 487L), + AddNodesResponse((int) 489L), + AddNodesResponse_Encoding_DefaultBinary((int) 491L), + AddNodesResponse_Encoding_DefaultJson((int) 15168L), + AddNodesResponse_Encoding_DefaultXml((int) 490L), + AddNodesResult((int) 483L), + AddNodesResult_Encoding_DefaultBinary((int) 485L), + AddNodesResult_Encoding_DefaultJson((int) 15166L), + AddNodesResult_Encoding_DefaultXml((int) 484L), AddReferencesItem((int) 379L), AddReferencesItem_Encoding_DefaultBinary((int) 381L), AddReferencesItem_Encoding_DefaultJson((int) 15169L), AddReferencesItem_Encoding_DefaultXml((int) 380L), + AddReferencesRequest((int) 492L), + AddReferencesRequest_Encoding_DefaultBinary((int) 494L), + AddReferencesRequest_Encoding_DefaultJson((int) 15170L), + AddReferencesRequest_Encoding_DefaultXml((int) 493L), + AddReferencesResponse((int) 495L), + AddReferencesResponse_Encoding_DefaultBinary((int) 497L), + AddReferencesResponse_Encoding_DefaultJson((int) 15171L), + AddReferencesResponse_Encoding_DefaultXml((int) 496L), AddressSpaceFileType((int) 11595L), AggregateConfiguration((int) 948L), AggregateConfiguration_Encoding_DefaultBinary((int) 950L), AggregateConfiguration_Encoding_DefaultJson((int) 15304L), AggregateConfiguration_Encoding_DefaultXml((int) 949L), AggregateConfigurationType((int) 11187L), + AggregateFilter((int) 728L), + AggregateFilter_Encoding_DefaultBinary((int) 730L), + AggregateFilter_Encoding_DefaultJson((int) 15312L), + AggregateFilter_Encoding_DefaultXml((int) 729L), + AggregateFilterResult((int) 737L), + AggregateFilterResult_Encoding_DefaultBinary((int) 739L), + AggregateFilterResult_Encoding_DefaultJson((int) 15315L), + AggregateFilterResult_Encoding_DefaultXml((int) 738L), AggregateFunction_AnnotationCount((int) 2351L), AggregateFunction_Average((int) 2342L), AggregateFunction_Count((int) 2352L), @@ -216,6 +252,44 @@ public enum OpcuaNodeIdServices { BrokerWriterGroupTransportDataType_Encoding_DefaultJson((int) 16524L), BrokerWriterGroupTransportDataType_Encoding_DefaultXml((int) 16021L), BrokerWriterGroupTransportType((int) 21136L), + BrowseDescription((int) 514L), + BrowseDescription_Encoding_DefaultBinary((int) 516L), + BrowseDescription_Encoding_DefaultJson((int) 15180L), + BrowseDescription_Encoding_DefaultXml((int) 515L), + BrowseDirection((int) 510L), + BrowseNextRequest((int) 531L), + BrowseNextRequest_Encoding_DefaultBinary((int) 533L), + BrowseNextRequest_Encoding_DefaultJson((int) 15186L), + BrowseNextRequest_Encoding_DefaultXml((int) 532L), + BrowseNextResponse((int) 534L), + BrowseNextResponse_Encoding_DefaultBinary((int) 536L), + BrowseNextResponse_Encoding_DefaultJson((int) 15187L), + BrowseNextResponse_Encoding_DefaultXml((int) 535L), + BrowsePath((int) 543L), + BrowsePath_Encoding_DefaultBinary((int) 545L), + BrowsePath_Encoding_DefaultJson((int) 15190L), + BrowsePath_Encoding_DefaultXml((int) 544L), + BrowsePathResult((int) 549L), + BrowsePathResult_Encoding_DefaultBinary((int) 551L), + BrowsePathResult_Encoding_DefaultJson((int) 15192L), + BrowsePathResult_Encoding_DefaultXml((int) 550L), + BrowsePathTarget((int) 546L), + BrowsePathTarget_Encoding_DefaultBinary((int) 548L), + BrowsePathTarget_Encoding_DefaultJson((int) 15191L), + BrowsePathTarget_Encoding_DefaultXml((int) 547L), + BrowseRequest((int) 525L), + BrowseRequest_Encoding_DefaultBinary((int) 527L), + BrowseRequest_Encoding_DefaultJson((int) 15184L), + BrowseRequest_Encoding_DefaultXml((int) 526L), + BrowseResponse((int) 528L), + BrowseResponse_Encoding_DefaultBinary((int) 530L), + BrowseResponse_Encoding_DefaultJson((int) 15185L), + BrowseResponse_Encoding_DefaultXml((int) 529L), + BrowseResult((int) 522L), + BrowseResult_Encoding_DefaultBinary((int) 524L), + BrowseResult_Encoding_DefaultJson((int) 15183L), + BrowseResult_Encoding_DefaultXml((int) 523L), + BrowseResultMask((int) 517L), BuildInfo((int) 338L), BuildInfo_Encoding_DefaultBinary((int) 340L), BuildInfo_Encoding_DefaultJson((int) 15361L), @@ -223,6 +297,30 @@ public enum OpcuaNodeIdServices { BuildInfoType((int) 3051L), Byte((int) 3L), ByteString((int) 15L), + CallMethodRequest((int) 704L), + CallMethodRequest_Encoding_DefaultBinary((int) 706L), + CallMethodRequest_Encoding_DefaultJson((int) 15289L), + CallMethodRequest_Encoding_DefaultXml((int) 705L), + CallMethodResult((int) 707L), + CallMethodResult_Encoding_DefaultBinary((int) 709L), + CallMethodResult_Encoding_DefaultJson((int) 15290L), + CallMethodResult_Encoding_DefaultXml((int) 708L), + CallRequest((int) 710L), + CallRequest_Encoding_DefaultBinary((int) 712L), + CallRequest_Encoding_DefaultJson((int) 15291L), + CallRequest_Encoding_DefaultXml((int) 711L), + CallResponse((int) 713L), + CallResponse_Encoding_DefaultBinary((int) 715L), + CallResponse_Encoding_DefaultJson((int) 15292L), + CallResponse_Encoding_DefaultXml((int) 714L), + CancelRequest((int) 477L), + CancelRequest_Encoding_DefaultBinary((int) 479L), + CancelRequest_Encoding_DefaultJson((int) 15149L), + CancelRequest_Encoding_DefaultXml((int) 478L), + CancelResponse((int) 480L), + CancelResponse_Encoding_DefaultBinary((int) 482L), + CancelResponse_Encoding_DefaultJson((int) 15150L), + CancelResponse_Encoding_DefaultXml((int) 481L), CartesianCoordinates((int) 18809L), CartesianCoordinates_Encoding_DefaultBinary((int) 18818L), CartesianCoordinates_Encoding_DefaultJson((int) 19067L), @@ -233,7 +331,27 @@ public enum OpcuaNodeIdServices { CertificateGroupType((int) 12555L), CertificateType((int) 12556L), CertificateUpdatedAuditEventType((int) 12620L), + ChannelSecurityToken((int) 441L), + ChannelSecurityToken_Encoding_DefaultBinary((int) 443L), + ChannelSecurityToken_Encoding_DefaultJson((int) 15131L), + ChannelSecurityToken_Encoding_DefaultXml((int) 442L), ChoiceStateType((int) 15109L), + CloseSecureChannelRequest((int) 450L), + CloseSecureChannelRequest_Encoding_DefaultBinary((int) 452L), + CloseSecureChannelRequest_Encoding_DefaultJson((int) 15134L), + CloseSecureChannelRequest_Encoding_DefaultXml((int) 451L), + CloseSecureChannelResponse((int) 453L), + CloseSecureChannelResponse_Encoding_DefaultBinary((int) 455L), + CloseSecureChannelResponse_Encoding_DefaultJson((int) 15135L), + CloseSecureChannelResponse_Encoding_DefaultXml((int) 454L), + CloseSessionRequest((int) 471L), + CloseSessionRequest_Encoding_DefaultBinary((int) 473L), + CloseSessionRequest_Encoding_DefaultJson((int) 15147L), + CloseSessionRequest_Encoding_DefaultXml((int) 472L), + CloseSessionResponse((int) 474L), + CloseSessionResponse_Encoding_DefaultBinary((int) 476L), + CloseSessionResponse_Encoding_DefaultJson((int) 15148L), + CloseSessionResponse_Encoding_DefaultXml((int) 475L), Communication((int) 24227L), ComplexNumberType((int) 12171L), ComplexNumberType_Encoding_DefaultBinary((int) 12181L), @@ -258,14 +376,55 @@ public enum OpcuaNodeIdServices { ContentFilterElement_Encoding_DefaultBinary((int) 585L), ContentFilterElement_Encoding_DefaultJson((int) 15204L), ContentFilterElement_Encoding_DefaultXml((int) 584L), + ContentFilterElementResult((int) 604L), + ContentFilterElementResult_Encoding_DefaultBinary((int) 606L), + ContentFilterElementResult_Encoding_DefaultJson((int) 15211L), + ContentFilterElementResult_Encoding_DefaultXml((int) 605L), + ContentFilterResult((int) 607L), + ContentFilterResult_Encoding_DefaultBinary((int) 609L), + ContentFilterResult_Encoding_DefaultJson((int) 15228L), + ContentFilterResult_Encoding_DefaultXml((int) 608L), ContinuationPoint((int) 521L), Counter((int) 289L), + CreateMonitoredItemsRequest((int) 749L), + CreateMonitoredItemsRequest_Encoding_DefaultBinary((int) 751L), + CreateMonitoredItemsRequest_Encoding_DefaultJson((int) 15323L), + CreateMonitoredItemsRequest_Encoding_DefaultXml((int) 750L), + CreateMonitoredItemsResponse((int) 752L), + CreateMonitoredItemsResponse_Encoding_DefaultBinary((int) 754L), + CreateMonitoredItemsResponse_Encoding_DefaultJson((int) 15324L), + CreateMonitoredItemsResponse_Encoding_DefaultXml((int) 753L), + CreateSessionRequest((int) 459L), + CreateSessionRequest_Encoding_DefaultBinary((int) 461L), + CreateSessionRequest_Encoding_DefaultJson((int) 15138L), + CreateSessionRequest_Encoding_DefaultXml((int) 460L), + CreateSessionResponse((int) 462L), + CreateSessionResponse_Encoding_DefaultBinary((int) 464L), + CreateSessionResponse_Encoding_DefaultJson((int) 15139L), + CreateSessionResponse_Encoding_DefaultXml((int) 463L), + CreateSubscriptionRequest((int) 785L), + CreateSubscriptionRequest_Encoding_DefaultBinary((int) 787L), + CreateSubscriptionRequest_Encoding_DefaultJson((int) 15337L), + CreateSubscriptionRequest_Encoding_DefaultXml((int) 786L), + CreateSubscriptionResponse((int) 788L), + CreateSubscriptionResponse_Encoding_DefaultBinary((int) 790L), + CreateSubscriptionResponse_Encoding_DefaultJson((int) 15338L), + CreateSubscriptionResponse_Encoding_DefaultXml((int) 789L), CubeItemType((int) 12057L), CurrencyUnit((int) 23501L), CurrencyUnitType((int) 23498L), CurrencyUnitType_Encoding_DefaultBinary((int) 23507L), CurrencyUnitType_Encoding_DefaultJson((int) 23528L), CurrencyUnitType_Encoding_DefaultXml((int) 23520L), + DataChangeFilter((int) 722L), + DataChangeFilter_Encoding_DefaultBinary((int) 724L), + DataChangeFilter_Encoding_DefaultJson((int) 15294L), + DataChangeFilter_Encoding_DefaultXml((int) 723L), + DataChangeNotification((int) 809L), + DataChangeNotification_Encoding_DefaultBinary((int) 811L), + DataChangeNotification_Encoding_DefaultJson((int) 15345L), + DataChangeNotification_Encoding_DefaultXml((int) 810L), + DataChangeTrigger((int) 717L), DatagramConnectionTransportDataType((int) 17467L), DatagramConnectionTransportDataType_Encoding_DefaultBinary((int) 17468L), DatagramConnectionTransportDataType_Encoding_DefaultJson((int) 17476L), @@ -316,6 +475,10 @@ public enum OpcuaNodeIdServices { DataSetWriterTransportDataType_Encoding_DefaultXml((int) 15956L), DataSetWriterTransportType((int) 15305L), DataSetWriterType((int) 15298L), + DataTypeAttributes((int) 370L), + DataTypeAttributes_Encoding_DefaultBinary((int) 372L), + DataTypeAttributes_Encoding_DefaultJson((int) 15161L), + DataTypeAttributes_Encoding_DefaultXml((int) 371L), DataTypeDefinition((int) 97L), DataTypeDefinition_Encoding_DefaultBinary((int) 121L), DataTypeDefinition_Encoding_DefaultJson((int) 15063L), @@ -327,6 +490,10 @@ public enum OpcuaNodeIdServices { DataTypeDescriptionType((int) 69L), DataTypeDictionaryType((int) 72L), DataTypeEncodingType((int) 76L), + DataTypeNode((int) 282L), + DataTypeNode_Encoding_DefaultBinary((int) 284L), + DataTypeNode_Encoding_DefaultJson((int) 15079L), + DataTypeNode_Encoding_DefaultXml((int) 283L), DataTypeSchemaHeader((int) 15534L), DataTypeSchemaHeader_Encoding_DefaultBinary((int) 15676L), DataTypeSchemaHeader_Encoding_DefaultJson((int) 16151L), @@ -337,19 +504,68 @@ public enum OpcuaNodeIdServices { Date((int) 293L), DateString((int) 12881L), DateTime((int) 13L), + DeadbandType((int) 718L), Decimal((int) 50L), + DecimalDataType((int) 17861L), + DecimalDataType_Encoding_DefaultBinary((int) 17863L), + DecimalDataType_Encoding_DefaultJson((int) 15045L), + DecimalDataType_Encoding_DefaultXml((int) 17862L), DecimalString((int) 12878L), DefaultBinary((int) 3062L), DefaultInstanceBrowseName((int) 17605L), DefaultXml((int) 3063L), + DeleteAtTimeDetails((int) 689L), + DeleteAtTimeDetails_Encoding_DefaultBinary((int) 691L), + DeleteAtTimeDetails_Encoding_DefaultJson((int) 15284L), + DeleteAtTimeDetails_Encoding_DefaultXml((int) 690L), + DeleteEventDetails((int) 692L), + DeleteEventDetails_Encoding_DefaultBinary((int) 694L), + DeleteEventDetails_Encoding_DefaultJson((int) 15285L), + DeleteEventDetails_Encoding_DefaultXml((int) 693L), + DeleteMonitoredItemsRequest((int) 779L), + DeleteMonitoredItemsRequest_Encoding_DefaultBinary((int) 781L), + DeleteMonitoredItemsRequest_Encoding_DefaultJson((int) 15335L), + DeleteMonitoredItemsRequest_Encoding_DefaultXml((int) 780L), + DeleteMonitoredItemsResponse((int) 782L), + DeleteMonitoredItemsResponse_Encoding_DefaultBinary((int) 784L), + DeleteMonitoredItemsResponse_Encoding_DefaultJson((int) 15336L), + DeleteMonitoredItemsResponse_Encoding_DefaultXml((int) 783L), DeleteNodesItem((int) 382L), DeleteNodesItem_Encoding_DefaultBinary((int) 384L), DeleteNodesItem_Encoding_DefaultJson((int) 15172L), DeleteNodesItem_Encoding_DefaultXml((int) 383L), + DeleteNodesRequest((int) 498L), + DeleteNodesRequest_Encoding_DefaultBinary((int) 500L), + DeleteNodesRequest_Encoding_DefaultJson((int) 15173L), + DeleteNodesRequest_Encoding_DefaultXml((int) 499L), + DeleteNodesResponse((int) 501L), + DeleteNodesResponse_Encoding_DefaultBinary((int) 503L), + DeleteNodesResponse_Encoding_DefaultJson((int) 15174L), + DeleteNodesResponse_Encoding_DefaultXml((int) 502L), + DeleteRawModifiedDetails((int) 686L), + DeleteRawModifiedDetails_Encoding_DefaultBinary((int) 688L), + DeleteRawModifiedDetails_Encoding_DefaultJson((int) 15283L), + DeleteRawModifiedDetails_Encoding_DefaultXml((int) 687L), DeleteReferencesItem((int) 385L), DeleteReferencesItem_Encoding_DefaultBinary((int) 387L), DeleteReferencesItem_Encoding_DefaultJson((int) 15175L), DeleteReferencesItem_Encoding_DefaultXml((int) 386L), + DeleteReferencesRequest((int) 504L), + DeleteReferencesRequest_Encoding_DefaultBinary((int) 506L), + DeleteReferencesRequest_Encoding_DefaultJson((int) 15176L), + DeleteReferencesRequest_Encoding_DefaultXml((int) 505L), + DeleteReferencesResponse((int) 507L), + DeleteReferencesResponse_Encoding_DefaultBinary((int) 509L), + DeleteReferencesResponse_Encoding_DefaultJson((int) 15177L), + DeleteReferencesResponse_Encoding_DefaultXml((int) 508L), + DeleteSubscriptionsRequest((int) 845L), + DeleteSubscriptionsRequest_Encoding_DefaultBinary((int) 847L), + DeleteSubscriptionsRequest_Encoding_DefaultJson((int) 15359L), + DeleteSubscriptionsRequest_Encoding_DefaultXml((int) 846L), + DeleteSubscriptionsResponse((int) 848L), + DeleteSubscriptionsResponse_Encoding_DefaultBinary((int) 850L), + DeleteSubscriptionsResponse_Encoding_DefaultJson((int) 15360L), + DeleteSubscriptionsResponse_Encoding_DefaultXml((int) 849L), DeviceFailureEventType((int) 2131L), DiagnosticInfo((int) 25L), DiagnosticsLevel((int) 19723L), @@ -377,6 +593,7 @@ public enum OpcuaNodeIdServices { EccBrainpoolP384r1ApplicationCertificateType((int) 23541L), EccCurve25519ApplicationCertificateType((int) 23542L), EccCurve448ApplicationCertificateType((int) 23543L), + EccEncryptedSecret((int) 17546L), EccNistP256ApplicationCertificateType((int) 23538L), EccNistP384ApplicationCertificateType((int) 23539L), ElementOperand((int) 592L), @@ -428,10 +645,22 @@ public enum OpcuaNodeIdServices { EUInformation_Encoding_DefaultBinary((int) 889L), EUInformation_Encoding_DefaultJson((int) 15376L), EUInformation_Encoding_DefaultXml((int) 888L), + EventFieldList((int) 917L), + EventFieldList_Encoding_DefaultBinary((int) 919L), + EventFieldList_Encoding_DefaultJson((int) 15348L), + EventFieldList_Encoding_DefaultXml((int) 918L), EventFilter((int) 725L), EventFilter_Encoding_DefaultBinary((int) 727L), EventFilter_Encoding_DefaultJson((int) 15295L), EventFilter_Encoding_DefaultXml((int) 726L), + EventFilterResult((int) 734L), + EventFilterResult_Encoding_DefaultBinary((int) 736L), + EventFilterResult_Encoding_DefaultJson((int) 15314L), + EventFilterResult_Encoding_DefaultXml((int) 735L), + EventNotificationList((int) 914L), + EventNotificationList_Encoding_DefaultBinary((int) 916L), + EventNotificationList_Encoding_DefaultJson((int) 15347L), + EventNotificationList_Encoding_DefaultXml((int) 915L), EventNotifierType((int) 15033L), EventQueueOverflowEventType((int) 3035L), EventTypesFolder((int) 3048L), @@ -461,6 +690,22 @@ public enum OpcuaNodeIdServices { FilterOperand_Encoding_DefaultJson((int) 15206L), FilterOperand_Encoding_DefaultXml((int) 590L), FilterOperator((int) 576L), + FindServersOnNetworkRequest((int) 12190L), + FindServersOnNetworkRequest_Encoding_DefaultBinary((int) 12208L), + FindServersOnNetworkRequest_Encoding_DefaultJson((int) 15096L), + FindServersOnNetworkRequest_Encoding_DefaultXml((int) 12196L), + FindServersOnNetworkResponse((int) 12191L), + FindServersOnNetworkResponse_Encoding_DefaultBinary((int) 12209L), + FindServersOnNetworkResponse_Encoding_DefaultJson((int) 15097L), + FindServersOnNetworkResponse_Encoding_DefaultXml((int) 12197L), + FindServersRequest((int) 420L), + FindServersRequest_Encoding_DefaultBinary((int) 422L), + FindServersRequest_Encoding_DefaultJson((int) 15093L), + FindServersRequest_Encoding_DefaultXml((int) 421L), + FindServersResponse((int) 423L), + FindServersResponse_Encoding_DefaultBinary((int) 425L), + FindServersResponse_Encoding_DefaultJson((int) 15094L), + FindServersResponse_Encoding_DefaultXml((int) 424L), FiniteStateMachineType((int) 2771L), FiniteStateVariableType((int) 2760L), FiniteTransitionVariableType((int) 2767L), @@ -474,6 +719,22 @@ public enum OpcuaNodeIdServices { FromState((int) 51L), GeneralModelChangeEventType((int) 2133L), GeneratesEvent((int) 41L), + GenericAttributes((int) 17607L), + GenericAttributes_Encoding_DefaultBinary((int) 17611L), + GenericAttributes_Encoding_DefaultJson((int) 15164L), + GenericAttributes_Encoding_DefaultXml((int) 17609L), + GenericAttributeValue((int) 17606L), + GenericAttributeValue_Encoding_DefaultBinary((int) 17610L), + GenericAttributeValue_Encoding_DefaultJson((int) 15163L), + GenericAttributeValue_Encoding_DefaultXml((int) 17608L), + GetEndpointsRequest((int) 426L), + GetEndpointsRequest_Encoding_DefaultBinary((int) 428L), + GetEndpointsRequest_Encoding_DefaultJson((int) 15100L), + GetEndpointsRequest_Encoding_DefaultXml((int) 427L), + GetEndpointsResponse((int) 429L), + GetEndpointsResponse_Encoding_DefaultBinary((int) 431L), + GetEndpointsResponse_Encoding_DefaultJson((int) 15101L), + GetEndpointsResponse_Encoding_DefaultXml((int) 430L), GuardVariableType((int) 15113L), Guid((int) 14L), HAConfiguration((int) 11202L), @@ -515,6 +776,10 @@ public enum OpcuaNodeIdServices { HighlyManagedAlarmConditionClassType((int) 17219L), HistoricalDataConfigurationType((int) 2318L), HistoricalEventFilter((int) 11215L), + HistoryData((int) 656L), + HistoryData_Encoding_DefaultBinary((int) 658L), + HistoryData_Encoding_DefaultJson((int) 15270L), + HistoryData_Encoding_DefaultXml((int) 657L), HistoryEvent((int) 659L), HistoryEvent_Encoding_DefaultBinary((int) 661L), HistoryEvent_Encoding_DefaultJson((int) 15273L), @@ -523,8 +788,48 @@ public enum OpcuaNodeIdServices { HistoryEventFieldList_Encoding_DefaultBinary((int) 922L), HistoryEventFieldList_Encoding_DefaultJson((int) 15349L), HistoryEventFieldList_Encoding_DefaultXml((int) 921L), + HistoryModifiedData((int) 11217L), + HistoryModifiedData_Encoding_DefaultBinary((int) 11227L), + HistoryModifiedData_Encoding_DefaultJson((int) 15272L), + HistoryModifiedData_Encoding_DefaultXml((int) 11219L), + HistoryReadDetails((int) 641L), + HistoryReadDetails_Encoding_DefaultBinary((int) 643L), + HistoryReadDetails_Encoding_DefaultJson((int) 15261L), + HistoryReadDetails_Encoding_DefaultXml((int) 642L), + HistoryReadRequest((int) 662L), + HistoryReadRequest_Encoding_DefaultBinary((int) 664L), + HistoryReadRequest_Encoding_DefaultJson((int) 15274L), + HistoryReadRequest_Encoding_DefaultXml((int) 663L), + HistoryReadResponse((int) 665L), + HistoryReadResponse_Encoding_DefaultBinary((int) 667L), + HistoryReadResponse_Encoding_DefaultJson((int) 15275L), + HistoryReadResponse_Encoding_DefaultXml((int) 666L), + HistoryReadResult((int) 638L), + HistoryReadResult_Encoding_DefaultBinary((int) 640L), + HistoryReadResult_Encoding_DefaultJson((int) 15260L), + HistoryReadResult_Encoding_DefaultXml((int) 639L), + HistoryReadValueId((int) 635L), + HistoryReadValueId_Encoding_DefaultBinary((int) 637L), + HistoryReadValueId_Encoding_DefaultJson((int) 15259L), + HistoryReadValueId_Encoding_DefaultXml((int) 636L), HistoryServerCapabilities((int) 11192L), HistoryServerCapabilitiesType((int) 2330L), + HistoryUpdateDetails((int) 677L), + HistoryUpdateDetails_Encoding_DefaultBinary((int) 679L), + HistoryUpdateDetails_Encoding_DefaultJson((int) 15279L), + HistoryUpdateDetails_Encoding_DefaultXml((int) 678L), + HistoryUpdateRequest((int) 698L), + HistoryUpdateRequest_Encoding_DefaultBinary((int) 700L), + HistoryUpdateRequest_Encoding_DefaultJson((int) 15287L), + HistoryUpdateRequest_Encoding_DefaultXml((int) 699L), + HistoryUpdateResponse((int) 701L), + HistoryUpdateResponse_Encoding_DefaultBinary((int) 703L), + HistoryUpdateResponse_Encoding_DefaultJson((int) 15288L), + HistoryUpdateResponse_Encoding_DefaultXml((int) 702L), + HistoryUpdateResult((int) 695L), + HistoryUpdateResult_Encoding_DefaultBinary((int) 697L), + HistoryUpdateResult_Encoding_DefaultJson((int) 15286L), + HistoryUpdateResult_Encoding_DefaultXml((int) 696L), HistoryUpdateType((int) 11234L), HttpsCertificateType((int) 12558L), IBaseEthernetCapabilitiesType((int) 24167L), @@ -555,6 +860,10 @@ public enum OpcuaNodeIdServices { Index((int) 17588L), InitialStateType((int) 2309L), InputArguments((int) 3072L), + InstanceNode((int) 11879L), + InstanceNode_Encoding_DefaultBinary((int) 11889L), + InstanceNode_Encoding_DefaultJson((int) 15069L), + InstanceNode_Encoding_DefaultXml((int) 11887L), InstrumentDiagnosticAlarmType((int) 18347L), Int16((int) 4L), Int32((int) 6L), @@ -619,20 +928,78 @@ public enum OpcuaNodeIdServices { MdnsDiscoveryConfiguration_Encoding_DefaultJson((int) 15106L), MdnsDiscoveryConfiguration_Encoding_DefaultXml((int) 12893L), MessageSecurityMode((int) 302L), + MethodAttributes((int) 358L), + MethodAttributes_Encoding_DefaultBinary((int) 360L), + MethodAttributes_Encoding_DefaultJson((int) 15157L), + MethodAttributes_Encoding_DefaultXml((int) 359L), + MethodNode((int) 276L), + MethodNode_Encoding_DefaultBinary((int) 278L), + MethodNode_Encoding_DefaultJson((int) 15077L), + MethodNode_Encoding_DefaultXml((int) 277L), ModelChangeStructureDataType((int) 877L), ModelChangeStructureDataType_Encoding_DefaultBinary((int) 879L), ModelChangeStructureDataType_Encoding_DefaultJson((int) 15373L), ModelChangeStructureDataType_Encoding_DefaultXml((int) 878L), + ModelChangeStructureVerbMask((int) 11941L), ModellingRule_ExposesItsArray((int) 83L), ModellingRule_Mandatory((int) 78L), ModellingRule_MandatoryPlaceholder((int) 11510L), ModellingRule_Optional((int) 80L), ModellingRule_OptionalPlaceholder((int) 11508L), ModellingRuleType((int) 77L), + ModificationInfo((int) 11216L), + ModificationInfo_Encoding_DefaultBinary((int) 11226L), + ModificationInfo_Encoding_DefaultJson((int) 15271L), + ModificationInfo_Encoding_DefaultXml((int) 11218L), + ModifyMonitoredItemsRequest((int) 761L), + ModifyMonitoredItemsRequest_Encoding_DefaultBinary((int) 763L), + ModifyMonitoredItemsRequest_Encoding_DefaultJson((int) 15327L), + ModifyMonitoredItemsRequest_Encoding_DefaultXml((int) 762L), + ModifyMonitoredItemsResponse((int) 764L), + ModifyMonitoredItemsResponse_Encoding_DefaultBinary((int) 766L), + ModifyMonitoredItemsResponse_Encoding_DefaultJson((int) 15328L), + ModifyMonitoredItemsResponse_Encoding_DefaultXml((int) 765L), + ModifySubscriptionRequest((int) 791L), + ModifySubscriptionRequest_Encoding_DefaultBinary((int) 793L), + ModifySubscriptionRequest_Encoding_DefaultJson((int) 15339L), + ModifySubscriptionRequest_Encoding_DefaultXml((int) 792L), + ModifySubscriptionResponse((int) 794L), + ModifySubscriptionResponse_Encoding_DefaultBinary((int) 796L), + ModifySubscriptionResponse_Encoding_DefaultJson((int) 15340L), + ModifySubscriptionResponse_Encoding_DefaultXml((int) 795L), + MonitoredItemCreateRequest((int) 743L), + MonitoredItemCreateRequest_Encoding_DefaultBinary((int) 745L), + MonitoredItemCreateRequest_Encoding_DefaultJson((int) 15321L), + MonitoredItemCreateRequest_Encoding_DefaultXml((int) 744L), + MonitoredItemCreateResult((int) 746L), + MonitoredItemCreateResult_Encoding_DefaultBinary((int) 748L), + MonitoredItemCreateResult_Encoding_DefaultJson((int) 15322L), + MonitoredItemCreateResult_Encoding_DefaultXml((int) 747L), + MonitoredItemModifyRequest((int) 755L), + MonitoredItemModifyRequest_Encoding_DefaultBinary((int) 757L), + MonitoredItemModifyRequest_Encoding_DefaultJson((int) 15325L), + MonitoredItemModifyRequest_Encoding_DefaultXml((int) 756L), + MonitoredItemModifyResult((int) 758L), + MonitoredItemModifyResult_Encoding_DefaultBinary((int) 760L), + MonitoredItemModifyResult_Encoding_DefaultJson((int) 15326L), + MonitoredItemModifyResult_Encoding_DefaultXml((int) 759L), + MonitoredItemNotification((int) 806L), + MonitoredItemNotification_Encoding_DefaultBinary((int) 808L), + MonitoredItemNotification_Encoding_DefaultJson((int) 15346L), + MonitoredItemNotification_Encoding_DefaultXml((int) 807L), MonitoringFilter((int) 719L), MonitoringFilter_Encoding_DefaultBinary((int) 721L), MonitoringFilter_Encoding_DefaultJson((int) 15293L), MonitoringFilter_Encoding_DefaultXml((int) 720L), + MonitoringFilterResult((int) 731L), + MonitoringFilterResult_Encoding_DefaultBinary((int) 733L), + MonitoringFilterResult_Encoding_DefaultJson((int) 15313L), + MonitoringFilterResult_Encoding_DefaultXml((int) 732L), + MonitoringMode((int) 716L), + MonitoringParameters((int) 740L), + MonitoringParameters_Encoding_DefaultBinary((int) 742L), + MonitoringParameters_Encoding_DefaultJson((int) 15320L), + MonitoringParameters_Encoding_DefaultXml((int) 741L), MultiStateDictionaryEntryDiscreteBaseType((int) 19077L), MultiStateDictionaryEntryDiscreteType((int) 19084L), MultiStateDiscreteType((int) 2376L), @@ -657,9 +1024,25 @@ public enum OpcuaNodeIdServices { NetworkGroupDataType_Encoding_DefaultJson((int) 15364L), NetworkGroupDataType_Encoding_DefaultXml((int) 11950L), NetworkInterfaces((int) 24229L), + Node((int) 258L), + Node_Encoding_DefaultBinary((int) 260L), + Node_Encoding_DefaultJson((int) 15068L), + Node_Encoding_DefaultXml((int) 259L), + NodeAttributes((int) 349L), + NodeAttributes_Encoding_DefaultBinary((int) 351L), + NodeAttributes_Encoding_DefaultJson((int) 15151L), + NodeAttributes_Encoding_DefaultXml((int) 350L), NodeAttributesMask((int) 348L), NodeClass((int) 257L), NodeId((int) 17L), + NodeReference((int) 580L), + NodeReference_Encoding_DefaultBinary((int) 582L), + NodeReference_Encoding_DefaultJson((int) 15203L), + NodeReference_Encoding_DefaultXml((int) 581L), + NodeTypeDescription((int) 573L), + NodeTypeDescription_Encoding_DefaultBinary((int) 575L), + NodeTypeDescription_Encoding_DefaultJson((int) 15201L), + NodeTypeDescription_Encoding_DefaultXml((int) 574L), NodeVersion((int) 3068L), NonExclusiveDeviationAlarmType((int) 10368L), NonExclusiveLevelAlarmType((int) 10060L), @@ -669,9 +1052,33 @@ public enum OpcuaNodeIdServices { NonTransparentNetworkRedundancyType((int) 11945L), NonTransparentRedundancyType((int) 2039L), NormalizedString((int) 12877L), + NotificationData((int) 945L), + NotificationData_Encoding_DefaultBinary((int) 947L), + NotificationData_Encoding_DefaultJson((int) 15344L), + NotificationData_Encoding_DefaultXml((int) 946L), + NotificationMessage((int) 803L), + NotificationMessage_Encoding_DefaultBinary((int) 805L), + NotificationMessage_Encoding_DefaultJson((int) 15343L), + NotificationMessage_Encoding_DefaultXml((int) 804L), Number((int) 26L), NumericRange((int) 291L), + ObjectAttributes((int) 352L), + ObjectAttributes_Encoding_DefaultBinary((int) 354L), + ObjectAttributes_Encoding_DefaultJson((int) 15152L), + ObjectAttributes_Encoding_DefaultXml((int) 353L), + ObjectNode((int) 261L), + ObjectNode_Encoding_DefaultBinary((int) 263L), + ObjectNode_Encoding_DefaultJson((int) 15071L), + ObjectNode_Encoding_DefaultXml((int) 262L), ObjectsFolder((int) 85L), + ObjectTypeAttributes((int) 361L), + ObjectTypeAttributes_Encoding_DefaultBinary((int) 363L), + ObjectTypeAttributes_Encoding_DefaultJson((int) 15158L), + ObjectTypeAttributes_Encoding_DefaultXml((int) 362L), + ObjectTypeNode((int) 264L), + ObjectTypeNode_Encoding_DefaultBinary((int) 266L), + ObjectTypeNode_Encoding_DefaultJson((int) 15073L), + ObjectTypeNode_Encoding_DefaultXml((int) 265L), ObjectTypesFolder((int) 88L), OffNormalAlarmType((int) 10637L), OPCBinarySchema_TypeSystem((int) 93L), @@ -679,6 +1086,14 @@ public enum OpcuaNodeIdServices { OpcUa_XmlSchema((int) 8252L), OPCUANamespaceMetadata((int) 15957L), OpenFileMode((int) 11939L), + OpenSecureChannelRequest((int) 444L), + OpenSecureChannelRequest_Encoding_DefaultBinary((int) 446L), + OpenSecureChannelRequest_Encoding_DefaultJson((int) 15132L), + OpenSecureChannelRequest_Encoding_DefaultXml((int) 445L), + OpenSecureChannelResponse((int) 447L), + OpenSecureChannelResponse_Encoding_DefaultBinary((int) 449L), + OpenSecureChannelResponse_Encoding_DefaultJson((int) 15133L), + OpenSecureChannelResponse_Encoding_DefaultXml((int) 448L), OperationLimitsType((int) 11564L), OptionSet((int) 12755L), OptionSet_Encoding_DefaultBinary((int) 12765L), @@ -695,6 +1110,10 @@ public enum OpcuaNodeIdServices { OrientationType((int) 18779L), OutputArguments((int) 3073L), OverrideValueHandling((int) 15874L), + ParsingResult((int) 610L), + ParsingResult_Encoding_DefaultBinary((int) 612L), + ParsingResult_Encoding_DefaultJson((int) 15236L), + ParsingResult_Encoding_DefaultXml((int) 611L), PerformUpdateType((int) 11293L), PermissionType((int) 94L), ProcessConditionClassType((int) 11164L), @@ -736,6 +1155,14 @@ public enum OpcuaNodeIdServices { PublishedVariableDataType_Encoding_DefaultBinary((int) 14323L), PublishedVariableDataType_Encoding_DefaultJson((int) 15060L), PublishedVariableDataType_Encoding_DefaultXml((int) 14319L), + PublishRequest((int) 824L), + PublishRequest_Encoding_DefaultBinary((int) 826L), + PublishRequest_Encoding_DefaultJson((int) 15352L), + PublishRequest_Encoding_DefaultXml((int) 825L), + PublishResponse((int) 827L), + PublishResponse_Encoding_DefaultBinary((int) 829L), + PublishResponse_Encoding_DefaultJson((int) 15353L), + PublishResponse_Encoding_DefaultXml((int) 828L), PublishSubscribe((int) 14443L), PublishSubscribeType((int) 14416L), PubSubCommunicationFailureEventType((int) 15563L), @@ -768,6 +1195,30 @@ public enum OpcuaNodeIdServices { PubSubStatusType((int) 14643L), PubSubTransportLimitsExceedEventType((int) 15548L), QualifiedName((int) 20L), + QueryDataDescription((int) 570L), + QueryDataDescription_Encoding_DefaultBinary((int) 572L), + QueryDataDescription_Encoding_DefaultJson((int) 15200L), + QueryDataDescription_Encoding_DefaultXml((int) 571L), + QueryDataSet((int) 577L), + QueryDataSet_Encoding_DefaultBinary((int) 579L), + QueryDataSet_Encoding_DefaultJson((int) 15202L), + QueryDataSet_Encoding_DefaultXml((int) 578L), + QueryFirstRequest((int) 613L), + QueryFirstRequest_Encoding_DefaultBinary((int) 615L), + QueryFirstRequest_Encoding_DefaultJson((int) 15244L), + QueryFirstRequest_Encoding_DefaultXml((int) 614L), + QueryFirstResponse((int) 616L), + QueryFirstResponse_Encoding_DefaultBinary((int) 618L), + QueryFirstResponse_Encoding_DefaultJson((int) 15252L), + QueryFirstResponse_Encoding_DefaultXml((int) 617L), + QueryNextRequest((int) 619L), + QueryNextRequest_Encoding_DefaultBinary((int) 621L), + QueryNextRequest_Encoding_DefaultJson((int) 15254L), + QueryNextRequest_Encoding_DefaultXml((int) 620L), + QueryNextResponse((int) 622L), + QueryNextResponse_Encoding_DefaultBinary((int) 624L), + QueryNextResponse_Encoding_DefaultJson((int) 15255L), + QueryNextResponse_Encoding_DefaultXml((int) 623L), Range((int) 884L), Range_Encoding_DefaultBinary((int) 886L), Range_Encoding_DefaultJson((int) 15375L), @@ -777,6 +1228,14 @@ public enum OpcuaNodeIdServices { RationalNumber_Encoding_DefaultJson((int) 19064L), RationalNumber_Encoding_DefaultXml((int) 18851L), RationalNumberType((int) 17709L), + ReadAnnotationDataDetails((int) 23497L), + ReadAnnotationDataDetails_Encoding_DefaultBinary((int) 23500L), + ReadAnnotationDataDetails_Encoding_DefaultJson((int) 23512L), + ReadAnnotationDataDetails_Encoding_DefaultXml((int) 23506L), + ReadAtTimeDetails((int) 653L), + ReadAtTimeDetails_Encoding_DefaultBinary((int) 655L), + ReadAtTimeDetails_Encoding_DefaultJson((int) 15269L), + ReadAtTimeDetails_Encoding_DefaultXml((int) 654L), ReaderGroupDataType((int) 15520L), ReaderGroupDataType_Encoding_DefaultBinary((int) 21153L), ReaderGroupDataType_Encoding_DefaultJson((int) 21201L), @@ -792,12 +1251,52 @@ public enum OpcuaNodeIdServices { ReaderGroupTransportDataType_Encoding_DefaultXml((int) 15995L), ReaderGroupTransportType((int) 21090L), ReaderGroupType((int) 17999L), + ReadEventDetails((int) 644L), + ReadEventDetails_Encoding_DefaultBinary((int) 646L), + ReadEventDetails_Encoding_DefaultJson((int) 15262L), + ReadEventDetails_Encoding_DefaultXml((int) 645L), + ReadProcessedDetails((int) 650L), + ReadProcessedDetails_Encoding_DefaultBinary((int) 652L), + ReadProcessedDetails_Encoding_DefaultJson((int) 15264L), + ReadProcessedDetails_Encoding_DefaultXml((int) 651L), + ReadRawModifiedDetails((int) 647L), + ReadRawModifiedDetails_Encoding_DefaultBinary((int) 649L), + ReadRawModifiedDetails_Encoding_DefaultJson((int) 15263L), + ReadRawModifiedDetails_Encoding_DefaultXml((int) 648L), + ReadRequest((int) 629L), + ReadRequest_Encoding_DefaultBinary((int) 631L), + ReadRequest_Encoding_DefaultJson((int) 15257L), + ReadRequest_Encoding_DefaultXml((int) 630L), + ReadResponse((int) 632L), + ReadResponse_Encoding_DefaultBinary((int) 634L), + ReadResponse_Encoding_DefaultJson((int) 15258L), + ReadResponse_Encoding_DefaultXml((int) 633L), + ReadValueId((int) 626L), + ReadValueId_Encoding_DefaultBinary((int) 628L), + ReadValueId_Encoding_DefaultJson((int) 15256L), + ReadValueId_Encoding_DefaultXml((int) 627L), RedundancySupport((int) 851L), RedundantServerDataType((int) 853L), RedundantServerDataType_Encoding_DefaultBinary((int) 855L), RedundantServerDataType_Encoding_DefaultJson((int) 15362L), RedundantServerDataType_Encoding_DefaultXml((int) 854L), + ReferenceDescription((int) 518L), + ReferenceDescription_Encoding_DefaultBinary((int) 520L), + ReferenceDescription_Encoding_DefaultJson((int) 15182L), + ReferenceDescription_Encoding_DefaultXml((int) 519L), + ReferenceNode((int) 285L), + ReferenceNode_Encoding_DefaultBinary((int) 287L), + ReferenceNode_Encoding_DefaultJson((int) 15080L), + ReferenceNode_Encoding_DefaultXml((int) 286L), References((int) 31L), + ReferenceTypeAttributes((int) 367L), + ReferenceTypeAttributes_Encoding_DefaultBinary((int) 369L), + ReferenceTypeAttributes_Encoding_DefaultJson((int) 15160L), + ReferenceTypeAttributes_Encoding_DefaultXml((int) 368L), + ReferenceTypeNode((int) 273L), + ReferenceTypeNode_Encoding_DefaultBinary((int) 275L), + ReferenceTypeNode_Encoding_DefaultJson((int) 15076L), + ReferenceTypeNode_Encoding_DefaultXml((int) 274L), ReferenceTypesFolder((int) 91L), RefreshEndEventType((int) 2788L), RefreshRequiredEventType((int) 2789L), @@ -806,6 +1305,30 @@ public enum OpcuaNodeIdServices { RegisteredServer_Encoding_DefaultBinary((int) 434L), RegisteredServer_Encoding_DefaultJson((int) 15102L), RegisteredServer_Encoding_DefaultXml((int) 433L), + RegisterNodesRequest((int) 558L), + RegisterNodesRequest_Encoding_DefaultBinary((int) 560L), + RegisterNodesRequest_Encoding_DefaultJson((int) 15195L), + RegisterNodesRequest_Encoding_DefaultXml((int) 559L), + RegisterNodesResponse((int) 561L), + RegisterNodesResponse_Encoding_DefaultBinary((int) 563L), + RegisterNodesResponse_Encoding_DefaultJson((int) 15196L), + RegisterNodesResponse_Encoding_DefaultXml((int) 562L), + RegisterServer2Request((int) 12193L), + RegisterServer2Request_Encoding_DefaultBinary((int) 12211L), + RegisterServer2Request_Encoding_DefaultJson((int) 15107L), + RegisterServer2Request_Encoding_DefaultXml((int) 12199L), + RegisterServer2Response((int) 12194L), + RegisterServer2Response_Encoding_DefaultBinary((int) 12212L), + RegisterServer2Response_Encoding_DefaultJson((int) 15130L), + RegisterServer2Response_Encoding_DefaultXml((int) 12200L), + RegisterServerRequest((int) 435L), + RegisterServerRequest_Encoding_DefaultBinary((int) 437L), + RegisterServerRequest_Encoding_DefaultJson((int) 15103L), + RegisterServerRequest_Encoding_DefaultXml((int) 436L), + RegisterServerResponse((int) 438L), + RegisterServerResponse_Encoding_DefaultBinary((int) 440L), + RegisterServerResponse_Encoding_DefaultJson((int) 15104L), + RegisterServerResponse_Encoding_DefaultXml((int) 439L), RelativePath((int) 540L), RelativePath_Encoding_DefaultBinary((int) 542L), RelativePath_Encoding_DefaultJson((int) 15189L), @@ -814,7 +1337,23 @@ public enum OpcuaNodeIdServices { RelativePathElement_Encoding_DefaultBinary((int) 539L), RelativePathElement_Encoding_DefaultJson((int) 15188L), RelativePathElement_Encoding_DefaultXml((int) 538L), + RepublishRequest((int) 830L), + RepublishRequest_Encoding_DefaultBinary((int) 832L), + RepublishRequest_Encoding_DefaultJson((int) 15354L), + RepublishRequest_Encoding_DefaultXml((int) 831L), + RepublishResponse((int) 833L), + RepublishResponse_Encoding_DefaultBinary((int) 835L), + RepublishResponse_Encoding_DefaultJson((int) 15355L), + RepublishResponse_Encoding_DefaultXml((int) 834L), + RequestHeader((int) 389L), + RequestHeader_Encoding_DefaultBinary((int) 391L), + RequestHeader_Encoding_DefaultJson((int) 15088L), + RequestHeader_Encoding_DefaultXml((int) 390L), Resources((int) 24226L), + ResponseHeader((int) 392L), + ResponseHeader_Encoding_DefaultBinary((int) 394L), + ResponseHeader_Encoding_DefaultJson((int) 15089L), + ResponseHeader_Encoding_DefaultXml((int) 393L), RoleMappingRuleChangedAuditEventType((int) 17641L), RolePermissionType((int) 96L), RolePermissionType_Encoding_DefaultBinary((int) 128L), @@ -823,6 +1362,7 @@ public enum OpcuaNodeIdServices { RoleSetType((int) 15607L), RoleType((int) 15620L), RootFolder((int) 84L), + RsaEncryptedSecret((int) 17545L), RsaMinApplicationCertificateType((int) 12559L), RsaSha256ApplicationCertificateType((int) 12560L), SafetyConditionClassType((int) 17218L), @@ -873,6 +1413,10 @@ public enum OpcuaNodeIdServices { ServiceCounterDataType_Encoding_DefaultBinary((int) 873L), ServiceCounterDataType_Encoding_DefaultJson((int) 15370L), ServiceCounterDataType_Encoding_DefaultXml((int) 872L), + ServiceFault((int) 395L), + ServiceFault_Encoding_DefaultBinary((int) 397L), + ServiceFault_Encoding_DefaultJson((int) 15090L), + ServiceFault_Encoding_DefaultXml((int) 396L), SessionAuthenticationToken((int) 388L), SessionDiagnosticsArrayType((int) 2196L), SessionDiagnosticsDataType((int) 865L), @@ -881,6 +1425,14 @@ public enum OpcuaNodeIdServices { SessionDiagnosticsDataType_Encoding_DefaultXml((int) 866L), SessionDiagnosticsObjectType((int) 2029L), SessionDiagnosticsVariableType((int) 2197L), + SessionlessInvokeRequestType((int) 15901L), + SessionlessInvokeRequestType_Encoding_DefaultBinary((int) 15903L), + SessionlessInvokeRequestType_Encoding_DefaultJson((int) 15091L), + SessionlessInvokeRequestType_Encoding_DefaultXml((int) 15902L), + SessionlessInvokeResponseType((int) 20999L), + SessionlessInvokeResponseType_Encoding_DefaultBinary((int) 21001L), + SessionlessInvokeResponseType_Encoding_DefaultJson((int) 15092L), + SessionlessInvokeResponseType_Encoding_DefaultXml((int) 21000L), SessionsDiagnosticsSummaryType((int) 2026L), SessionSecurityDiagnosticsArrayType((int) 2243L), SessionSecurityDiagnosticsDataType((int) 868L), @@ -888,7 +1440,35 @@ public enum OpcuaNodeIdServices { SessionSecurityDiagnosticsDataType_Encoding_DefaultJson((int) 15369L), SessionSecurityDiagnosticsDataType_Encoding_DefaultXml((int) 869L), SessionSecurityDiagnosticsType((int) 2244L), + SetMonitoringModeRequest((int) 767L), + SetMonitoringModeRequest_Encoding_DefaultBinary((int) 769L), + SetMonitoringModeRequest_Encoding_DefaultJson((int) 15329L), + SetMonitoringModeRequest_Encoding_DefaultXml((int) 768L), + SetMonitoringModeResponse((int) 770L), + SetMonitoringModeResponse_Encoding_DefaultBinary((int) 772L), + SetMonitoringModeResponse_Encoding_DefaultJson((int) 15331L), + SetMonitoringModeResponse_Encoding_DefaultXml((int) 771L), + SetPublishingModeRequest((int) 797L), + SetPublishingModeRequest_Encoding_DefaultBinary((int) 799L), + SetPublishingModeRequest_Encoding_DefaultJson((int) 15341L), + SetPublishingModeRequest_Encoding_DefaultXml((int) 798L), + SetPublishingModeResponse((int) 800L), + SetPublishingModeResponse_Encoding_DefaultBinary((int) 802L), + SetPublishingModeResponse_Encoding_DefaultJson((int) 15342L), + SetPublishingModeResponse_Encoding_DefaultXml((int) 801L), + SetTriggeringRequest((int) 773L), + SetTriggeringRequest_Encoding_DefaultBinary((int) 775L), + SetTriggeringRequest_Encoding_DefaultJson((int) 15332L), + SetTriggeringRequest_Encoding_DefaultXml((int) 774L), + SetTriggeringResponse((int) 776L), + SetTriggeringResponse_Encoding_DefaultBinary((int) 778L), + SetTriggeringResponse_Encoding_DefaultJson((int) 15333L), + SetTriggeringResponse_Encoding_DefaultXml((int) 777L), ShelvedStateMachineType((int) 2929L), + SignatureData((int) 456L), + SignatureData_Encoding_DefaultBinary((int) 458L), + SignatureData_Encoding_DefaultJson((int) 15137L), + SignatureData_Encoding_DefaultXml((int) 457L), SignedSoftwareCertificate((int) 344L), SignedSoftwareCertificate_Encoding_DefaultBinary((int) 346L), SignedSoftwareCertificate_Encoding_DefaultJson((int) 15136L), @@ -905,6 +1485,10 @@ public enum OpcuaNodeIdServices { StateType((int) 2307L), StateVariableType((int) 2755L), StatisticalConditionClassType((int) 18665L), + StatusChangeNotification((int) 818L), + StatusChangeNotification_Encoding_DefaultBinary((int) 820L), + StatusChangeNotification_Encoding_DefaultJson((int) 15350L), + StatusChangeNotification_Encoding_DefaultXml((int) 819L), StatusCode((int) 19L), StatusResult((int) 299L), StatusResult_Encoding_DefaultBinary((int) 301L), @@ -936,6 +1520,10 @@ public enum OpcuaNodeIdServices { SubscribedDataSetMirrorDataType_Encoding_DefaultXml((int) 16012L), SubscribedDataSetMirrorType((int) 15127L), SubscribedDataSetType((int) 15108L), + SubscriptionAcknowledgement((int) 821L), + SubscriptionAcknowledgement_Encoding_DefaultBinary((int) 823L), + SubscriptionAcknowledgement_Encoding_DefaultJson((int) 15351L), + SubscriptionAcknowledgement_Encoding_DefaultXml((int) 822L), SubscriptionDiagnosticsArrayType((int) 2171L), SubscriptionDiagnosticsDataType((int) 874L), SubscriptionDiagnosticsDataType_Encoding_DefaultBinary((int) 876L), @@ -977,6 +1565,7 @@ public enum OpcuaNodeIdServices { ThreeDVector_Encoding_DefaultXml((int) 18853L), ThreeDVectorType((int) 17716L), Time((int) 292L), + TimestampsToReturn((int) 625L), TimeString((int) 12880L), TimeZoneDataType((int) 8912L), TimeZoneDataType_Encoding_DefaultBinary((int) 8917L), @@ -985,9 +1574,29 @@ public enum OpcuaNodeIdServices { Topics((int) 23488L), ToState((int) 52L), TrainingConditionClassType((int) 17220L), + TransferResult((int) 836L), + TransferResult_Encoding_DefaultBinary((int) 838L), + TransferResult_Encoding_DefaultJson((int) 15356L), + TransferResult_Encoding_DefaultXml((int) 837L), + TransferSubscriptionsRequest((int) 839L), + TransferSubscriptionsRequest_Encoding_DefaultBinary((int) 841L), + TransferSubscriptionsRequest_Encoding_DefaultJson((int) 15357L), + TransferSubscriptionsRequest_Encoding_DefaultXml((int) 840L), + TransferSubscriptionsResponse((int) 842L), + TransferSubscriptionsResponse_Encoding_DefaultBinary((int) 844L), + TransferSubscriptionsResponse_Encoding_DefaultJson((int) 15358L), + TransferSubscriptionsResponse_Encoding_DefaultXml((int) 843L), TransitionEventType((int) 2311L), TransitionType((int) 2310L), TransitionVariableType((int) 2762L), + TranslateBrowsePathsToNodeIdsRequest((int) 552L), + TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary((int) 554L), + TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultJson((int) 15193L), + TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultXml((int) 553L), + TranslateBrowsePathsToNodeIdsResponse((int) 555L), + TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary((int) 557L), + TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultJson((int) 15194L), + TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultXml((int) 556L), TransparentRedundancyType((int) 2036L), TripAlarmType((int) 10751L), TrustListDataType((int) 12554L), @@ -1004,6 +1613,10 @@ public enum OpcuaNodeIdServices { TsnTalkerStatus((int) 24222L), TwoStateDiscreteType((int) 2373L), TwoStateVariableType((int) 8995L), + TypeNode((int) 11880L), + TypeNode_Encoding_DefaultBinary((int) 11890L), + TypeNode_Encoding_DefaultJson((int) 15070L), + TypeNode_Encoding_DefaultXml((int) 11888L), TypesFolder((int) 86L), UABinaryFileDataType((int) 15006L), UABinaryFileDataType_Encoding_DefaultBinary((int) 15422L), @@ -1034,10 +1647,30 @@ public enum OpcuaNodeIdServices { Union_Encoding_DefaultBinary((int) 12766L), Union_Encoding_DefaultJson((int) 15085L), Union_Encoding_DefaultXml((int) 12758L), + UnregisterNodesRequest((int) 564L), + UnregisterNodesRequest_Encoding_DefaultBinary((int) 566L), + UnregisterNodesRequest_Encoding_DefaultJson((int) 15197L), + UnregisterNodesRequest_Encoding_DefaultXml((int) 565L), + UnregisterNodesResponse((int) 567L), + UnregisterNodesResponse_Encoding_DefaultBinary((int) 569L), + UnregisterNodesResponse_Encoding_DefaultJson((int) 15198L), + UnregisterNodesResponse_Encoding_DefaultXml((int) 568L), UnsignedRationalNumber((int) 24107L), UnsignedRationalNumber_Encoding_DefaultBinary((int) 24110L), UnsignedRationalNumber_Encoding_DefaultJson((int) 24134L), UnsignedRationalNumber_Encoding_DefaultXml((int) 24122L), + UpdateDataDetails((int) 680L), + UpdateDataDetails_Encoding_DefaultBinary((int) 682L), + UpdateDataDetails_Encoding_DefaultJson((int) 15280L), + UpdateDataDetails_Encoding_DefaultXml((int) 681L), + UpdateEventDetails((int) 683L), + UpdateEventDetails_Encoding_DefaultBinary((int) 685L), + UpdateEventDetails_Encoding_DefaultJson((int) 15282L), + UpdateEventDetails_Encoding_DefaultXml((int) 684L), + UpdateStructureDataDetails((int) 11295L), + UpdateStructureDataDetails_Encoding_DefaultBinary((int) 11300L), + UpdateStructureDataDetails_Encoding_DefaultJson((int) 15281L), + UpdateStructureDataDetails_Encoding_DefaultXml((int) 11296L), UriDictionaryEntryType((int) 17600L), UserCredentialCertificateType((int) 15181L), UserIdentityToken((int) 316L), @@ -1055,6 +1688,22 @@ public enum OpcuaNodeIdServices { UserTokenType((int) 303L), UtcTime((int) 294L), ValueAsText((int) 11433L), + VariableAttributes((int) 355L), + VariableAttributes_Encoding_DefaultBinary((int) 357L), + VariableAttributes_Encoding_DefaultJson((int) 15153L), + VariableAttributes_Encoding_DefaultXml((int) 356L), + VariableNode((int) 267L), + VariableNode_Encoding_DefaultBinary((int) 269L), + VariableNode_Encoding_DefaultJson((int) 15074L), + VariableNode_Encoding_DefaultXml((int) 268L), + VariableTypeAttributes((int) 364L), + VariableTypeAttributes_Encoding_DefaultBinary((int) 366L), + VariableTypeAttributes_Encoding_DefaultJson((int) 15159L), + VariableTypeAttributes_Encoding_DefaultXml((int) 365L), + VariableTypeNode((int) 270L), + VariableTypeNode_Encoding_DefaultBinary((int) 272L), + VariableTypeNode_Encoding_DefaultJson((int) 15075L), + VariableTypeNode_Encoding_DefaultXml((int) 271L), VariableTypesFolder((int) 89L), Vector((int) 18807L), Vector_Encoding_DefaultBinary((int) 18816L), @@ -1063,6 +1712,18 @@ public enum OpcuaNodeIdServices { VectorType((int) 17714L), VendorServerInfoType((int) 2033L), VersionTime((int) 20998L), + ViewAttributes((int) 373L), + ViewAttributes_Encoding_DefaultBinary((int) 375L), + ViewAttributes_Encoding_DefaultJson((int) 15162L), + ViewAttributes_Encoding_DefaultXml((int) 374L), + ViewDescription((int) 511L), + ViewDescription_Encoding_DefaultBinary((int) 513L), + ViewDescription_Encoding_DefaultJson((int) 15179L), + ViewDescription_Encoding_DefaultXml((int) 512L), + ViewNode((int) 279L), + ViewNode_Encoding_DefaultBinary((int) 281L), + ViewNode_Encoding_DefaultJson((int) 15078L), + ViewNode_Encoding_DefaultXml((int) 280L), ViewsFolder((int) 87L), ViewVersion((int) 12170L), WellKnownRole_Anonymous((int) 15644L), @@ -1073,6 +1734,14 @@ public enum OpcuaNodeIdServices { WellKnownRole_Operator((int) 15680L), WellKnownRole_SecurityAdmin((int) 15704L), WellKnownRole_Supervisor((int) 15692L), + WriteRequest((int) 671L), + WriteRequest_Encoding_DefaultBinary((int) 673L), + WriteRequest_Encoding_DefaultJson((int) 15277L), + WriteRequest_Encoding_DefaultXml((int) 672L), + WriteResponse((int) 674L), + WriteResponse_Encoding_DefaultBinary((int) 676L), + WriteResponse_Encoding_DefaultJson((int) 15278L), + WriteResponse_Encoding_DefaultXml((int) 675L), WriterGroupDataType((int) 15480L), WriterGroupDataType_Encoding_DefaultBinary((int) 21150L), WriterGroupDataType_Encoding_DefaultJson((int) 21198L), @@ -1088,6 +1757,10 @@ public enum OpcuaNodeIdServices { WriterGroupTransportDataType_Encoding_DefaultXml((int) 15990L), WriterGroupTransportType((int) 17997L), WriterGroupType((int) 17725L), + WriteValue((int) 668L), + WriteValue_Encoding_DefaultBinary((int) 670L), + WriteValue_Encoding_DefaultJson((int) 15276L), + WriteValue_Encoding_DefaultXml((int) 669L), X509IdentityToken((int) 325L), X509IdentityToken_Encoding_DefaultBinary((int) 327L), X509IdentityToken_Encoding_DefaultJson((int) 15143L), diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java index 10cbe9dec14..bb12ee521a1 100644 --- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java +++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java @@ -121,6 +121,7 @@ protected org.apache.plc4x.java.api.value.PlcValueHandler getValueHandler() { return new PlcValueHandler(); } + @Override protected boolean awaitDisconnectComplete() { return true; } diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java index 32bcf40694a..e1f6ca47180 100644 --- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java +++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java @@ -85,7 +85,7 @@ public class SecureChannel { "(?[\\w.-]+)(:" + "(?\\d*))?"); - public static final Pattern URI_PATTERN = Pattern.compile("^(?opc)" + + public static final Pattern URI_PATTERN = Pattern.compile("^(?opc|https)" + INET_ADDRESS_PATTERN + "(?[\\w/=]*)[\\?]?" ); @@ -580,7 +580,7 @@ private void onConnectActivateSessionRequest(ConversationContext conte } public void onDisconnect(ConversationContext context) { - LOGGER.info("Disconnecting"); + LOGGER.debug("Disconnecting"); int requestHandle = getRequestHandle(); if (keepAlive != null) { @@ -879,7 +879,7 @@ public void onDiscoverGetEndpointsRequest(ConversationContext context, for (ExtensionObjectDefinition endpoint : endpoints) { EndpointDescription endpointDescription = (EndpointDescription) endpoint; if (endpointDescription.getEndpointUrl().getStringValue().equals(this.endpoint.getStringValue()) && endpointDescription.getSecurityPolicyUri().getStringValue().equals(this.securityPolicy)) { - LOGGER.info("Found OPC UA endpoint {}", this.endpoint.getStringValue()); + LOGGER.debug("Found OPC UA endpoint {}", this.endpoint.getStringValue()); this.configuration.setSenderCertificate(endpointDescription.getServerCertificate().getStringValue()); } } diff --git a/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java b/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java index 6d856ea4487..07c90775b62 100644 --- a/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java +++ b/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java @@ -158,6 +158,24 @@ public static PlcValue staticParse(ReadBuffer readBuffer, Plc4xValueType valueTy String value = /*TODO: migrate me*/ /*TODO: migrate me*/ readBuffer.readString("", 16, WithOption.WithEncoding("UTF-16")); + return new PlcSTRING(value); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING + + // Manual Field (value) + String value = + (String) + (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString( + readBuffer, "UTF-8")); + + return new PlcSTRING(value); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING + + // Manual Field (value) + String value = + (String) + (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString( + readBuffer, "UTF-16")); + return new PlcSTRING(value); } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME @@ -325,6 +343,14 @@ public static void staticSerialize( /*TODO: migrate me*/ /*TODO: migrate me*/ writeBuffer.writeString( "", 16, (String) (value), WithOption.WithEncoding("UTF-16")); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING + // Manual Field (value) + org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString( + writeBuffer, _value, "UTF-8"); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING + // Manual Field (value) + org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString( + writeBuffer, _value, "UTF-16"); } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME // Simple Field (milliseconds) long milliseconds = (long) _value.getLong(); @@ -436,6 +462,12 @@ public static int getLengthInBits(PlcValue _value, Plc4xValueType valueType) { } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WCHAR)) { // STRING // Simple Field (value) sizeInBits += 16; + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING + // Manual Field (value) + sizeInBits += (((STR_LEN(_value)) + (1))) * (8); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING + // Manual Field (value) + sizeInBits += (((STR_LEN(_value)) + (1))) * (16); } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME // Simple Field (milliseconds) sizeInBits += 32; diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java index 4d8cf54c98f..77f5edee4fe 100644 --- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java +++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java @@ -20,6 +20,7 @@ import org.apache.plc4x.java.api.messages.*; import org.apache.plc4x.java.api.types.PlcResponseCode; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.api.value.PlcValue; import org.apache.plc4x.java.plc4x.config.Plc4xConfiguration; import org.apache.plc4x.java.plc4x.tag.Plc4xTag; @@ -96,7 +97,7 @@ public CompletableFuture read(PlcReadRequest apiReadRequest) { final Plc4xTag plc4xTag = (Plc4xTag) apiReadRequest.getTag(tagName); Plc4xTagRequest plc4XTagRequest = new Plc4xTagRequest( - new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString() + ":" + plc4xTag.getPlcValueType().name())); + new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString())); plc4xTags.add(plc4XTagRequest); } final int requestId = txIdGenerator.getAndIncrement(); @@ -104,7 +105,7 @@ public CompletableFuture read(PlcReadRequest apiReadRequest) { // Send the request and await a response. RequestTransactionManager.RequestTransaction transaction = tm.startRequest(); - context.sendRequest(plc4xReadRequest) + transaction.submit(() -> context.sendRequest(plc4xReadRequest) .expectResponse(Plc4xMessage.class, requestTimeout) .onTimeout(future::completeExceptionally) .check(plc4xMessage -> plc4xMessage.getRequestId() == requestId) @@ -125,7 +126,7 @@ public CompletableFuture read(PlcReadRequest apiReadRequest) { // Finish the request-transaction. transaction.endRequest(); - }); + })); return future; } @@ -140,7 +141,7 @@ public CompletableFuture write(PlcWriteRequest writeRequest) { final Plc4xValueType plc4xValueType = Plc4xValueType.valueOf(plc4xTag.getPlcValueType().name()); final PlcValue plcValue = writeRequest.getPlcValue(tagName); Plc4xTagValueRequest tagRequest = new Plc4xTagValueRequest( - new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString() + ":" + plc4xTag.getPlcValueType().name()), plc4xValueType, plcValue); + new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString() ), plc4xValueType, plcValue); tags.add(tagRequest); } final int requestId = txIdGenerator.getAndIncrement(); @@ -148,7 +149,7 @@ public CompletableFuture write(PlcWriteRequest writeRequest) { // Send the request and await a response. RequestTransactionManager.RequestTransaction transaction = tm.startRequest(); - context.sendRequest(write) + transaction.submit(() ->context.sendRequest(write) .expectResponse(Plc4xMessage.class, requestTimeout) .onTimeout(future::completeExceptionally) .check(p -> p.getRequestId() == requestId) @@ -168,7 +169,7 @@ public CompletableFuture write(PlcWriteRequest writeRequest) { // Finish the request-transaction. transaction.endRequest(); - }); + })); return future; } diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java new file mode 100644 index 00000000000..69be217621d --- /dev/null +++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java @@ -0,0 +1,94 @@ +/* + * 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 + * + * https://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 org.apache.plc4x.java.plc4x.readwrite.utils; + +import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.value.PlcValue; +import org.apache.plc4x.java.spi.generation.ParseException; +import org.apache.plc4x.java.spi.generation.ReadBuffer; +import org.apache.plc4x.java.spi.generation.SerializationException; +import org.apache.plc4x.java.spi.generation.WriteBuffer; + +import java.nio.charset.StandardCharsets; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class StaticHelper { + + public static String parseString(ReadBuffer io, String encoding) { + try { + if ("UTF-8".equalsIgnoreCase(encoding)) { + // This is the maximum number of bytes a string can be long. + short stringLength = io.readUnsignedShort(8); + // This is the total length of the string on the PLC (Not necessarily the number of characters read) + final byte[] byteArray = new byte[stringLength]; + for (int i = 0; (i < stringLength) && io.hasMore(8); i++) { + final byte curByte = io.readByte(); + byteArray[i] = curByte; + } + return new String(byteArray, StandardCharsets.UTF_8); + } else if ("UTF-16".equalsIgnoreCase(encoding)) { + // This is the maximum number of bytes a string can be long. + int stringLength = io.readUnsignedInt(16); + final byte[] byteArray = new byte[stringLength * 2]; + for (int i = 0; (i < stringLength) && io.hasMore(16); i++) { + final short curShort = io.readShort(16); + byteArray[i * 2] = (byte) (curShort >>> 8); + byteArray[(i * 2) + 1] = (byte) (curShort & 0xFF); + } + return new String(byteArray, StandardCharsets.UTF_16); + } else { + throw new PlcRuntimeException("Unsupported string encoding " + encoding); + } + } catch (ParseException e) { + throw new PlcRuntimeException("Error parsing string", e); + } + } + public static void serializeString(WriteBuffer io, PlcValue value, String encoding) { + String valueString = value.getString(); + valueString = valueString == null ? "" : valueString; + + if ("UTF-8".equalsIgnoreCase(encoding)) { + final byte[] raw = valueString.getBytes(StandardCharsets.UTF_8); + try { + io.writeByte((byte) raw.length); + for (byte b : raw) { + io.writeByte(b); + } + } + catch (SerializationException ex) { + Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex); + } + } else if ("UTF-16".equalsIgnoreCase(encoding)) { + final byte[] raw = valueString.getBytes(StandardCharsets.UTF_16); + try { + io.writeUnsignedInt(16, raw.length); + for (int i = 0; i < raw.length; i++) { + io.writeByte( raw[i]); + } + } + catch (SerializationException ex) { + Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex); + } + } else { + throw new PlcRuntimeException("Unsupported string encoding " + encoding); + } + + } +} diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java index 83ac0fe9fbb..fabb55fc134 100644 --- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java +++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java @@ -28,12 +28,7 @@ public class Plc4XTagHandler implements PlcTagHandler { @Override public PlcTag parseTag(String tagAddress) { - if(!tagAddress.contains(":")) { - throw new PlcInvalidTagException(tagAddress); - } - String address = tagAddress.substring(0, tagAddress.lastIndexOf(":")); - String dataType = tagAddress.substring(tagAddress.lastIndexOf(":") + 1); - return new Plc4xTag(address, PlcValueType.valueOf(dataType)); + return new Plc4xTag(tagAddress); } @Override diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java index c3d5aa7fdd5..a85e2fd0d6f 100644 --- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java +++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java @@ -32,11 +32,10 @@ public class Plc4xTag implements PlcTag, Serializable { private final String address; - private final PlcValueType valueType; + private PlcValueType valueType = PlcValueType.NULL; - public Plc4xTag(String address, PlcValueType valueType) { + public Plc4xTag(String address) { this.address = address; - this.valueType = valueType; } @Override @@ -48,7 +47,13 @@ public String getAddressString() { public PlcValueType getPlcValueType() { return valueType; } - + @Override + public void setPlcValueType(PlcValueType plcValueType) { + this.valueType = plcValueType; + } + public void setValueType(PlcValueType valueType) { + this.valueType = valueType; + } @Override public List getArrayInfo() { return PlcTag.super.getArrayInfo(); diff --git a/plc4j/drivers/pom.xml b/plc4j/drivers/pom.xml index c0b47ba33a8..995ee913d0f 100644 --- a/plc4j/drivers/pom.xml +++ b/plc4j/drivers/pom.xml @@ -53,4 +53,19 @@ simulated + + + + org.apache.felix + maven-bundle-plugin + + + + * + + + + + + diff --git a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Block_DevicePropertiesNameOfStation.java b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Block_DevicePropertiesNameOfStation.java index cbd068d825f..91f9c99e385 100644 --- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Block_DevicePropertiesNameOfStation.java +++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Block_DevicePropertiesNameOfStation.java @@ -51,8 +51,6 @@ public Short getSuboption() { // Arguments. protected final Integer blockLength; - // Reserved Fields - private Integer reservedField0; public PnDcp_Block_DevicePropertiesNameOfStation(byte[] nameOfStation, Integer blockLength) { super(); @@ -71,12 +69,6 @@ protected void serializePnDcp_BlockChild(WriteBuffer writeBuffer) throws Seriali int startPos = positionAware.getPos(); writeBuffer.pushContext("PnDcp_Block_DevicePropertiesNameOfStation"); - // Reserved Field (reserved) - writeReservedField( - "reserved", - reservedField0 != null ? reservedField0 : (int) 0x0000, - writeUnsignedInt(writeBuffer, 16)); - // Array Field (nameOfStation) writeByteArrayField("nameOfStation", nameOfStation, writeByteArray(writeBuffer, 8)); @@ -104,9 +96,6 @@ public int getLengthInBits() { PnDcp_Block_DevicePropertiesNameOfStation _value = this; boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - // Reserved Field (reserved) - lengthInBits += 16; - // Array field if (nameOfStation != null) { lengthInBits += 8 * nameOfStation.length; @@ -133,9 +122,6 @@ public static PnDcp_BlockBuilder staticParsePnDcp_BlockBuilder( int curPos; boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - Integer reservedField0 = - readReservedField("reserved", readUnsignedInt(readBuffer, 16), (int) 0x0000); - byte[] nameOfStation = readBuffer.readByteArray("nameOfStation", Math.toIntExact((blockLength) - (2))); @@ -148,27 +134,23 @@ public static PnDcp_BlockBuilder staticParsePnDcp_BlockBuilder( readBuffer.closeContext("PnDcp_Block_DevicePropertiesNameOfStation"); // Create the instance - return new PnDcp_Block_DevicePropertiesNameOfStationBuilderImpl( - nameOfStation, blockLength, reservedField0); + return new PnDcp_Block_DevicePropertiesNameOfStationBuilderImpl(nameOfStation, blockLength); } public static class PnDcp_Block_DevicePropertiesNameOfStationBuilderImpl implements PnDcp_Block.PnDcp_BlockBuilder { private final byte[] nameOfStation; private final Integer blockLength; - private final Integer reservedField0; public PnDcp_Block_DevicePropertiesNameOfStationBuilderImpl( - byte[] nameOfStation, Integer blockLength, Integer reservedField0) { + byte[] nameOfStation, Integer blockLength) { this.nameOfStation = nameOfStation; this.blockLength = blockLength; - this.reservedField0 = reservedField0; } public PnDcp_Block_DevicePropertiesNameOfStation build() { PnDcp_Block_DevicePropertiesNameOfStation pnDcp_Block_DevicePropertiesNameOfStation = new PnDcp_Block_DevicePropertiesNameOfStation(nameOfStation, blockLength); - pnDcp_Block_DevicePropertiesNameOfStation.reservedField0 = reservedField0; return pnDcp_Block_DevicePropertiesNameOfStation; } } diff --git a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java index 7c5fb803efa..2db355b2dbd 100644 --- a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java +++ b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java @@ -24,7 +24,6 @@ import java.time.*; import java.util.*; import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.WithOption; import org.apache.plc4x.java.spi.generation.ByteOrder; import org.apache.plc4x.java.spi.generation.EvaluationHelper; import org.apache.plc4x.java.spi.generation.ParseException; @@ -42,7 +41,8 @@ public class DataItem { private static final Logger LOGGER = LoggerFactory.getLogger(DataItem.class); public static PlcValue staticParse( - ReadBuffer readBuffer, String dataProtocolId, Integer stringLength) throws ParseException { + ReadBuffer readBuffer, String dataProtocolId, Integer stringLength, String stringEncoding) + throws ParseException { if (EvaluationHelper.equals(dataProtocolId, "IEC61131_BOOL")) { // BOOL // Reserved Field (Compartmentalized so the "reserved" variable can't leak) @@ -147,16 +147,20 @@ public static PlcValue staticParse( return new PlcLREAL(value); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_CHAR")) { // CHAR - // Simple Field (value) - String value = /*TODO: migrate me*/ /*TODO: migrate me*/ - readBuffer.readString("", 8, WithOption.WithEncoding("UTF-8")); + // Manual Field (value) + String value = + (String) + (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7Char( + readBuffer, "UTF-8", stringEncoding)); return new PlcCHAR(value); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WCHAR")) { // CHAR - // Simple Field (value) - String value = /*TODO: migrate me*/ /*TODO: migrate me*/ - readBuffer.readString("", 16, WithOption.WithEncoding("UTF-16")); + // Manual Field (value) + String value = + (String) + (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7Char( + readBuffer, "UTF-16", stringEncoding)); return new PlcCHAR(value); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_STRING")) { // STRING @@ -165,7 +169,7 @@ public static PlcValue staticParse( String value = (String) (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7String( - readBuffer, stringLength, "UTF-8")); + readBuffer, stringLength, "UTF-8", stringEncoding)); return new PlcSTRING(value); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WSTRING")) { // STRING @@ -174,7 +178,7 @@ public static PlcValue staticParse( String value = (String) (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7String( - readBuffer, stringLength, "UTF-16")); + readBuffer, stringLength, "UTF-16", stringEncoding)); return new PlcSTRING(value); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_TIME")) { // TIME @@ -253,9 +257,14 @@ public static PlcValue staticParse( } public static void staticSerialize( - WriteBuffer writeBuffer, PlcValue _value, String dataProtocolId, Integer stringLength) + WriteBuffer writeBuffer, + PlcValue _value, + String dataProtocolId, + Integer stringLength, + String stringEncoding) throws SerializationException { - staticSerialize(writeBuffer, _value, dataProtocolId, stringLength, ByteOrder.BIG_ENDIAN); + staticSerialize( + writeBuffer, _value, dataProtocolId, stringLength, stringEncoding, ByteOrder.BIG_ENDIAN); } public static void staticSerialize( @@ -263,6 +272,7 @@ public static void staticSerialize( PlcValue _value, String dataProtocolId, Integer stringLength, + String stringEncoding, ByteOrder byteOrder) throws SerializationException { if (EvaluationHelper.equals(dataProtocolId, "IEC61131_BOOL")) { // BOOL @@ -345,25 +355,21 @@ public static void staticSerialize( /*TODO: migrate me*/ /*TODO: migrate me*/ writeBuffer.writeDouble("", 64, (value)); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_CHAR")) { // CHAR - // Simple Field (value) - String value = (String) _value.getString(); - /*TODO: migrate me*/ - /*TODO: migrate me*/ writeBuffer.writeString( - "", 8, (String) (value), WithOption.WithEncoding("UTF-8")); + // Manual Field (value) + org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7Char( + writeBuffer, _value, "UTF-8", stringEncoding); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WCHAR")) { // CHAR - // Simple Field (value) - String value = (String) _value.getString(); - /*TODO: migrate me*/ - /*TODO: migrate me*/ writeBuffer.writeString( - "", 16, (String) (value), WithOption.WithEncoding("UTF-16")); + // Manual Field (value) + org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7Char( + writeBuffer, _value, "UTF-16", stringEncoding); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_STRING")) { // STRING // Manual Field (value) org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7String( - writeBuffer, _value, stringLength, "UTF-8"); + writeBuffer, _value, stringLength, "UTF-8", stringEncoding); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WSTRING")) { // STRING // Manual Field (value) org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7String( - writeBuffer, _value, stringLength, "UTF-16"); + writeBuffer, _value, stringLength, "UTF-16", stringEncoding); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_TIME")) { // TIME // Simple Field (milliseconds) long milliseconds = (long) _value.getLong(); @@ -431,11 +437,15 @@ public static void staticSerialize( } } - public static int getLengthInBytes(PlcValue _value, String dataProtocolId, Integer stringLength) { - return (int) Math.ceil((float) getLengthInBits(_value, dataProtocolId, stringLength) / 8.0); + public static int getLengthInBytes( + PlcValue _value, String dataProtocolId, Integer stringLength, String stringEncoding) { + return (int) + Math.ceil( + (float) getLengthInBits(_value, dataProtocolId, stringLength, stringEncoding) / 8.0); } - public static int getLengthInBits(PlcValue _value, String dataProtocolId, Integer stringLength) { + public static int getLengthInBits( + PlcValue _value, String dataProtocolId, Integer stringLength, String stringEncoding) { int sizeInBits = 0; if (EvaluationHelper.equals(dataProtocolId, "IEC61131_BOOL")) { // BOOL // Reserved Field @@ -485,17 +495,17 @@ public static int getLengthInBits(PlcValue _value, String dataProtocolId, Intege // Simple Field (value) sizeInBits += 64; } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_CHAR")) { // CHAR - // Simple Field (value) + // Manual Field (value) sizeInBits += 8; } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WCHAR")) { // CHAR - // Simple Field (value) + // Manual Field (value) sizeInBits += 16; } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_STRING")) { // STRING // Manual Field (value) - sizeInBits += (STR_LEN(_value)) + (2); + sizeInBits += (((stringLength) + (2))) * (8); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WSTRING")) { // STRING // Manual Field (value) - sizeInBits += (((STR_LEN(_value)) * (2))) + (2); + sizeInBits += (((stringLength) + (2))) * (16); } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_TIME")) { // TIME // Simple Field (milliseconds) sizeInBits += 32; diff --git a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java index 4b70936705e..a6ea4032f0a 100644 --- a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java +++ b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java @@ -179,9 +179,9 @@ public enum TransportSize { (boolean) false, (short) 'X', (boolean) true, - null, + DataTransportSize.BYTE_WORD_DWORD, (String) "IEC61131_LINT", - TransportSize.INT), + null), ULINT( (short) 0x0D, (boolean) false, @@ -192,9 +192,9 @@ public enum TransportSize { (boolean) false, (short) 'X', (boolean) true, - null, + DataTransportSize.BYTE_WORD_DWORD, (String) "IEC61131_ULINT", - TransportSize.INT), + null), REAL( (short) 0x0E, (boolean) true, @@ -205,7 +205,7 @@ public enum TransportSize { (boolean) true, (short) 'D', (boolean) true, - DataTransportSize.REAL, + DataTransportSize.BYTE_WORD_DWORD, (String) "IEC61131_REAL", null), LREAL( @@ -218,7 +218,7 @@ public enum TransportSize { (boolean) true, (short) 'X', (boolean) true, - null, + DataTransportSize.BYTE_WORD_DWORD, (String) "IEC61131_LREAL", TransportSize.REAL), CHAR( @@ -244,7 +244,7 @@ public enum TransportSize { (boolean) true, (short) 'X', (boolean) true, - null, + DataTransportSize.BYTE_WORD_DWORD, (String) "IEC61131_WCHAR", null), STRING( @@ -270,7 +270,7 @@ public enum TransportSize { (boolean) true, (short) 'X', (boolean) true, - null, + DataTransportSize.BYTE_WORD_DWORD, (String) "IEC61131_WSTRING", null), TIME( diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java index 55c50bd0d69..ae7553812bb 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java @@ -25,19 +25,25 @@ import org.apache.plc4x.java.transport.tcp.TcpTransportConfiguration; public class S7Configuration implements Configuration, TcpTransportConfiguration { + @ConfigurationParameter("local-group") + @IntDefaultValue(3) + public int localGroup = 3; @ConfigurationParameter("local-rack") @IntDefaultValue(1) public int localRack = 1; - @ConfigurationParameter("local-slot") - @IntDefaultValue(1) - public int localSlot = 1; - @ConfigurationParameter("local-tsap") @IntDefaultValue(0) public int localTsap = 0; + @ConfigurationParameter("local-slot") + @IntDefaultValue(1) + public int localSlot = 1; + + @ConfigurationParameter("remote-group") + @IntDefaultValue(1) + public int remoteGroup = 1; @ConfigurationParameter("remote-rack") @IntDefaultValue(0) public int remoteRack = 0; @@ -65,6 +71,31 @@ public class S7Configuration implements Configuration, TcpTransportConfiguration @ConfigurationParameter("controller-type") public String controllerType; + @ConfigurationParameter("timeout-request") + @IntDefaultValue(4000) + protected int timeoutRequest; + public int getLocalGroup() { + return localGroup; + } + + public void setLocalGroup(int localGroup) { + this.localGroup = localGroup; + } + public int getLocalTsap() { + return localTsap; + } + + public void setLocalTsap(int localTsap) { + this.localTsap = localTsap; + } + public int getRemoteGroup() { + return remoteGroup; + } + + public void setRemoteGroup(int remoteGroup) { + this.remoteGroup = remoteGroup; + } + public int getLocalRack() { return localRack; } @@ -81,14 +112,6 @@ public void setLocalSlot(int localSlot) { this.localSlot = localSlot; } - public int getLocalTsap() { - return localTsap; - } - - public void setLocalTsap(int localTsap) { - this.localTsap = localTsap; - } - public int getRemoteRack() { return remoteRack; } @@ -104,7 +127,6 @@ public int getRemoteSlot() { public void setRemoteSlot(int remoteSlot) { this.remoteSlot = remoteSlot; } - public int getRemoteTsap() { return remoteTsap; } @@ -112,7 +134,6 @@ public int getRemoteTsap() { public void setRemoteTsap(int remoteTsap) { this.remoteTsap = remoteTsap; } - public int getPduSize() { return pduSize; } @@ -145,6 +166,12 @@ public void setControllerType(String controllerType) { this.controllerType = controllerType; } + public int getTimeoutRequest() { + return timeoutRequest; + } + public void setTimeoutRequest(int timeoutRequest) { + this.timeoutRequest = timeoutRequest; + } /** * Per default port for the S7 protocol is 102. * @return 102 @@ -158,15 +185,18 @@ public int getDefaultPort() { public String toString() { return "Configuration{" + "local-rack=" + localRack + + ", local-group=" + localGroup + ", local-slot=" + localSlot + ", local-tsap=" + localTsap + + ", remote-group=" + remoteGroup + ", remote-rack=" + remoteRack + ", remote-slot=" + remoteSlot + ", remote-tsap=" + remoteTsap + ", pduSize=" + pduSize + ", maxAmqCaller=" + maxAmqCaller + ", maxAmqCallee=" + maxAmqCallee + - ", controllerType='" + controllerType + '\'' + + ", controllerType='" + controllerType + + ", timeoutRequest='" + timeoutRequest + '\'' + '}'; } diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java index 7b40d9b3d18..25edebf8115 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java @@ -39,9 +39,9 @@ public class S7DriverContext implements DriverContext, HasConfiguration 0) { diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java index 120c96ee698..13035eaa8b6 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java @@ -24,6 +24,7 @@ import org.apache.plc4x.java.api.value.PlcValue; import org.apache.plc4x.java.s7.readwrite.*; import org.apache.plc4x.java.s7.readwrite.context.S7DriverContext; +import org.apache.plc4x.java.s7.readwrite.tag.S7StringTag; import org.apache.plc4x.java.s7.readwrite.tag.S7Tag; import org.apache.plc4x.java.s7.readwrite.MemoryArea; import org.apache.plc4x.java.s7.readwrite.TransportSize; @@ -65,7 +66,12 @@ protected List processReadRequest(PlcReadRequest readRequest, Driver S7Tag tag = (S7Tag) readRequest.getTag(tagName); int readRequestItemSize = S7_ADDRESS_ANY_SIZE; - int readResponseItemSize = 4 + (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes()); + int length = 1; + if(tag instanceof S7StringTag) + { + length = (((S7StringTag)tag).getStringLength() +2) * 8; + } + int readResponseItemSize = 4 + (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes() * length); // If it's an odd number of bytes, add one to make it even if (readResponseItemSize % 2 == 1) { readResponseItemSize++; @@ -83,8 +89,10 @@ protected List processReadRequest(PlcReadRequest readRequest, Driver // If they would exceed, start a new request. else { // Create a new PlcReadRequest containing the current tag item. - processedRequests.add(new DefaultPlcReadRequest( - ((DefaultPlcReadRequest) readRequest).getReader(), curTags)); + if(!curTags.isEmpty()) { + processedRequests.add(new DefaultPlcReadRequest( + ((DefaultPlcReadRequest) readRequest).getReader(), curTags)); + } // Reset the size and item lists. curRequestSize = EMPTY_READ_REQUEST_SIZE + readRequestItemSize; @@ -130,7 +138,12 @@ protected List processWriteRequest(PlcWriteRequest writeRequest, Dri if (tag.getDataType() == TransportSize.BOOL) { writeRequestItemSize += Math.ceil((double) tag.getNumberOfElements() / 8); } else { - writeRequestItemSize += (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes()); + int length = 1; + if(tag instanceof S7StringTag) + { + length = (((S7StringTag)tag).getStringLength() + 2) * 8; + } + writeRequestItemSize += (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes() * length); } // If it's an odd number of bytes, add one to make it even if (writeRequestItemSize % 2 == 1) { @@ -150,8 +163,10 @@ protected List processWriteRequest(PlcWriteRequest writeRequest, Dri // If adding them would exceed, start a new request. else { // Create a new PlcWriteRequest containing the current tag item. - processedRequests.add(new DefaultPlcWriteRequest( - ((DefaultPlcWriteRequest) writeRequest).getWriter(), curTags)); + if(!curTags.isEmpty()) { + processedRequests.add(new DefaultPlcWriteRequest( + ((DefaultPlcWriteRequest) writeRequest).getWriter(), curTags)); + } // Reset the size and item lists. curRequestSize = EMPTY_WRITE_REQUEST_SIZE + writeRequestItemSize; diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java index a46b496bdba..04828519a30 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java @@ -73,7 +73,7 @@ public S7ProtocolEventLogic(BlockingQueue eventqueue) { public void start() { processor.start(); - dispacher.start(); + dispacher.start(); } public void stop(){ @@ -154,7 +154,7 @@ public void run() { Logger.getLogger(S7ProtocolEventLogic.class.getName()).log(Level.SEVERE, null, ex); } } - System.out.println("ObjectProcessor Bye!"); + logger.debug("ObjectProcessor Bye!"); } public void doShutdown(){ @@ -203,7 +203,7 @@ public void run() { Logger.getLogger(S7ProtocolEventLogic.class.getName()).log(Level.SEVERE, null, ex); } } - System.out.println("EventDispacher Bye!"); + logger.debug("EventDispacher Bye!"); } public void doShutdown(){ diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java index eb3ed7afedd..4c41a61cd19 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java @@ -19,6 +19,7 @@ package org.apache.plc4x.java.s7.readwrite.protocol; import org.apache.plc4x.java.api.model.PlcTag; +import org.apache.plc4x.java.s7.readwrite.configuration.S7Configuration; import org.apache.plc4x.java.s7.readwrite.utils.S7PlcSubscriptionHandle; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; @@ -30,6 +31,7 @@ import org.apache.plc4x.java.api.messages.PlcWriteRequest; import org.apache.plc4x.java.api.messages.PlcWriteResponse; import org.apache.plc4x.java.api.types.PlcResponseCode; +import org.apache.plc4x.java.spi.configuration.HasConfiguration; import org.apache.plc4x.java.spi.generation.*; import org.apache.plc4x.java.spi.model.DefaultPlcSubscriptionTag; import org.apache.plc4x.java.spi.values.PlcNull; @@ -58,15 +60,11 @@ import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.stream.IntStream; -import org.apache.commons.lang3.concurrent.BasicThreadFactory; -import org.apache.commons.lang3.tuple.MutablePair; import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest; import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse; @@ -83,22 +81,12 @@ * So we need to limit those. * Thus, each request goes to a Work Queue and this Queue ensures, that only 3 are open at the same time. */ -public class S7ProtocolLogic extends Plc4xProtocolBase { - - public static final Duration REQUEST_TIMEOUT = Duration.ofMillis(10000); +public class S7ProtocolLogic extends Plc4xProtocolBase implements HasConfiguration { private final Logger logger = LoggerFactory.getLogger(S7ProtocolLogic.class); - private final AtomicInteger tpduGenerator = new AtomicInteger(10); - - /* - * Task group for managing connection redundancy. - */ - private ExecutorService clientExecutorService = Executors.newFixedThreadPool(4, new BasicThreadFactory.Builder() - .namingPattern("plc4x-app-thread-%d") - .daemon(true) - .priority(Thread.MAX_PRIORITY) - .build()); - + private final AtomicInteger tpduGenerator = new AtomicInteger(0); + + private S7Configuration configuration; /* * Take into account that the size of this buffer depends on the final device. * S7-300 goes from 20 to 300 and for S7-400 it goes from 300 to 10000. @@ -114,17 +102,6 @@ public class S7ProtocolLogic extends Plc4xProtocolBase { private final S7PlcSubscriptionHandle usrHandle = new S7PlcSubscriptionHandle(EventType.USR, EventLogic); private final S7PlcSubscriptionHandle almHandle = new S7PlcSubscriptionHandle(EventType.ALM, EventLogic); - /* - * For the reconnection functionality by a "TimeOut" of the connection, - * you must keep track of open transactions. In general, an S7 device - * supports a couple of simultaneous requests. - * The rhythm of execution must be determined by the TransactionManager. - * So far it is the way to indicate to the user that he must redo - * his request. - */ - private HashMap> active_requests = new HashMap<>(); - - private S7DriverContext s7DriverContext; private RequestTransactionManager tm; @@ -141,7 +118,10 @@ public void setDriverContext(DriverContext driverContext) { this.tm = new RequestTransactionManager(1); EventLogic.start(); } - + @Override + public void setConfiguration(S7Configuration configuration) { + this.configuration = configuration; + } @Override public void onConnect(ConversationContext context) { if (context.isPassive()) { @@ -164,7 +144,7 @@ public void onConnect(ConversationContext context) { logger.warn("Timeout during Connection establishing, closing channel..."); context.getChannel().close(); }) - .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT) + .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest())) .check(p -> p.getPayload() instanceof COTPPacketConnectionResponse) .unwrap(p -> (COTPPacketConnectionResponse) p.getPayload()) .handle(cotpPacketConnectionResponse -> { @@ -175,7 +155,7 @@ public void onConnect(ConversationContext context) { logger.warn("Timeout during Connection establishing, closing channel..."); context.getChannel().close(); }) - .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT) + .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest())) .unwrap(TPKTPacket::getPayload) .only(COTPPacketData.class) .unwrap(COTPPacket::getPayload) @@ -212,7 +192,7 @@ public void onConnect(ConversationContext context) { logger.warn("Timeout during Connection establishing, closing channel..."); context.getChannel().close(); }) - .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT) + .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest())) .check(p -> p.getPayload() instanceof COTPPacketData) .unwrap(p -> ((COTPPacketData) p.getPayload())) .check(p -> p.getPayload() instanceof S7MessageUserData) @@ -227,27 +207,21 @@ public void onConnect(ConversationContext context) { }); } - + /* - * It performs the sequential and safe shutdown of the driver. + * It performs the sequential and safe shutdown of the driver. * Completion of pending requests, executors and associated tasks. - */ + */ @Override public void onDisconnect(ConversationContext context) { - //1. Clear all pending requests and their associated transaction - cleanFutures(); - //2. Here we shutdown the local task executor. - clientExecutorService.shutdown(); - //3. Performs the shutdown of the transaction executor. tm.shutdown(); - //4. Finish the execution of the tasks for the handling of Events. + //4. Finish the execution of the tasks for the handling of Events. EventLogic.stop(); - //5. Executes the closing of the main channel. - context.getChannel().close(); - //6. Here is the stop of any task or state machine that is added. + context.fireDisconnected(); + //6. Here is the stop of any task or state machine that is added. } - + @Override public CompletableFuture read(PlcReadRequest readRequest) { DefaultPlcReadRequest request = (DefaultPlcReadRequest) readRequest; @@ -289,11 +263,7 @@ private CompletableFuture toPlcReadResponse(PlcReadRequest read */ private CompletableFuture readInternal(S7MessageRequest request) { CompletableFuture future = new CompletableFuture<>(); - int tpduId = tpduGenerator.getAndIncrement(); - // If we've reached the max value for a 16 bit transaction identifier, reset back to 1 - if (tpduGenerator.get() == 0xFFFF) { - tpduGenerator.set(1); - } + int tpduId = getTpduId(); // Create a new Request with correct tpuId (is not known before) S7MessageRequest s7MessageRequest = new S7MessageRequest(tpduId, request.getParameter(), request.getPayload()); @@ -304,7 +274,7 @@ private CompletableFuture readInternal(S7MessageRequest request) { transaction.submit(() -> context.sendRequest(tpktPacket) .onTimeout(new TransactionErrorCallback<>(future, transaction)) .onError(new TransactionErrorCallback<>(future, transaction)) - .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT) + .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest())) .check(p -> p.getPayload() instanceof COTPPacketData) .unwrap(p -> (COTPPacketData) p.getPayload()) .check(p -> p.getPayload() != null) @@ -326,17 +296,17 @@ public CompletableFuture write(PlcWriteRequest writeRequest) { List payloadItems = new ArrayList<>(request.getNumberOfTags()); Iterator iter = request.getTagNames().iterator(); - + String tagName = null; while(iter.hasNext()) { tagName = iter.next(); final S7Tag tag = (S7Tag) request.getTag(tagName); final PlcValue plcValue = request.getPlcValue(tagName); parameterItems.add(new S7VarRequestParameterItemAddress(encodeS7Address(tag))); - payloadItems.add(serializePlcValue(tag, plcValue, iter.hasNext())); + payloadItems.add(serializePlcValue(tag, plcValue, iter.hasNext())); } - - + + // for (String tagName : request.getTagNames()) { // final S7Tag tag = (S7Tag) request.getTag(tagName); // final PlcValue plcValue = request.getPlcValue(tagName); @@ -344,14 +314,8 @@ public CompletableFuture write(PlcWriteRequest writeRequest) { // payloadItems.add(serializePlcValue(tag, plcValue)); // // } - - - - final int tpduId = tpduGenerator.getAndIncrement(); - // If we've reached the max value for a 16 bit transaction identifier, reset back to 1 - if (tpduGenerator.get() == 0xFFFF) { - tpduGenerator.set(1); - } + + int tpduId = getTpduId(); TPKTPacket tpktPacket = new TPKTPacket( new COTPPacketData( @@ -364,13 +328,13 @@ public CompletableFuture write(PlcWriteRequest writeRequest) { (short) tpduId ) ); - + // Start a new request-transaction (Is ended in the response-handler) RequestTransactionManager.RequestTransaction transaction = tm.startRequest(); transaction.submit(() -> context.sendRequest(tpktPacket) .onTimeout(new TransactionErrorCallback<>(future, transaction)) .onError(new TransactionErrorCallback<>(future, transaction)) - .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT) + .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest())) .check(p -> p.getPayload() instanceof COTPPacketData) .unwrap(p -> ((COTPPacketData) p.getPayload())) .unwrap(COTPPacket::getPayload) @@ -425,11 +389,8 @@ public CompletableFuture subscribe(PlcSubscriptionReque //parameterItems.add(new S7VarRequestParameterItemAddress(encodeS7Address(tag))); //payloadItems.add(serializePlcValue(tag, plcValue)); } - final int tpduId = tpduGenerator.getAndIncrement(); - // If we've reached the max value for a 16 bit transaction identifier, reset back to 1 - if (tpduGenerator.get() == 0xFFFF) { - tpduGenerator.set(1); - } + + int tpduId = getTpduId(); TPKTPacket tpktPacket = new TPKTPacket(new COTPPacketData(null, new S7MessageUserData(tpduId, @@ -442,7 +403,7 @@ public CompletableFuture subscribe(PlcSubscriptionReque transaction.submit(() -> context.sendRequest(tpktPacket) .onTimeout(new TransactionErrorCallback<>(future, transaction)) .onError(new TransactionErrorCallback<>(future, transaction)) - .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT) + .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest())) .check(p -> p.getPayload() instanceof COTPPacketData) .unwrap(p -> ((COTPPacketData) p.getPayload())) .unwrap(COTPPacket::getPayload) @@ -730,7 +691,7 @@ private void extractControllerTypeAndFireConnected(ConversationContext { try { return DataItem.staticParse(readBuffer, tag.getDataType().getDataProtocolId(), - stringLength); + stringLength, tag.getStringEncoding()); } catch (ParseException e) { logger.warn("Error parsing tag item of type: '{}' (at position {}})", tag.getDataType().name(), i, e); } @@ -1035,17 +996,34 @@ protected S7Address encodeS7Address(PlcTag tag) { // For these date-types we have to convert the requests to simple byte-array requests // As otherwise the S7 will deny them with "Data type not supported" replies. if ((transportSize == TransportSize.TIME) /*|| (transportSize == TransportSize.S7_S5TIME)*/ || - (transportSize == TransportSize.LTIME) || (transportSize == TransportSize.DATE) || - (transportSize == TransportSize.TIME_OF_DAY) || (transportSize == TransportSize.DATE_AND_TIME)) { + (transportSize == TransportSize.LINT) || + (transportSize == TransportSize.ULINT) || + (transportSize == TransportSize.LWORD) || + (transportSize == TransportSize.LREAL) || + (transportSize == TransportSize.REAL) || + (transportSize == TransportSize.LTIME) || + (transportSize == TransportSize.DATE) || + (transportSize == TransportSize.TIME_OF_DAY) || + (transportSize == TransportSize.DATE_AND_TIME) + ) { + numElements = numElements * transportSize.getSizeInBytes(); + //((S7Field) field).setDataType(transportSize); + transportSize = TransportSize.BYTE; + } + if (transportSize == TransportSize.CHAR) { + transportSize = TransportSize.BYTE; numElements = numElements * transportSize.getSizeInBytes(); + } + if (transportSize == TransportSize.WCHAR) { transportSize = TransportSize.BYTE; + numElements = numElements * transportSize.getSizeInBytes() * 2; } if (transportSize == TransportSize.STRING) { - transportSize = TransportSize.CHAR; + transportSize = TransportSize.BYTE; int stringLength = (s7Tag instanceof S7StringTag) ? ((S7StringTag) s7Tag).getStringLength() : 254; numElements = numElements * (stringLength + 2); } else if (transportSize == TransportSize.WSTRING) { - transportSize = TransportSize.CHAR; + transportSize = TransportSize.BYTE; int stringLength = (s7Tag instanceof S7StringTag) ? ((S7StringTag) s7Tag).getStringLength() : 254; numElements = numElements * (stringLength + 2) * 2; } @@ -1078,27 +1056,18 @@ public void accept(TPKTPacket tpktPacket, E e) { future.completeExceptionally(e); } } - - private void cleanFutures(){ - //TODO: Debe ser ejecutado si la conexion esta levanta. - active_requests.forEach((f,p)->{ - CompletableFuture cf = (CompletableFuture) f; - try { - if (!cf.isDone()) { - logger.info("CF"); - cf.cancel(true); - logger.info("ClientCF"); - ((CompletableFuture) p.getRight()).completeExceptionally(new PlcRuntimeException("Disconnected")); - logger.info("TM"); - p.getLeft().endRequest(); - }; - } catch (Exception ex){ - logger.info(ex.toString()); - } - }); - active_requests.clear(); - } - + protected int getTpduId() { + int tpduId = 0; + // It seems an S7 200 doesn't like any TPDU-Id that's not 0 + if (this.s7DriverContext.getControllerType() != S7ControllerType.S7_200) { + tpduId = tpduGenerator.getAndIncrement(); + } + // If we've reached the max value for a 16 bit transaction identifier, reset back to 1 + if(tpduGenerator.get() == 0xFFFF) { + tpduGenerator.set(0); + } + return tpduId; + } } diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java index 2435717c44c..b4285ba0fb1 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java @@ -36,8 +36,9 @@ public class S7StringTag extends S7Tag { protected S7StringTag(@JsonProperty("dataType") TransportSize dataType, @JsonProperty("memoryArea") MemoryArea memoryArea, @JsonProperty("blockNumber") int blockNumber, @JsonProperty("byteOffset") int byteOffset, @JsonProperty("bitOffset") byte bitOffset, @JsonProperty("numElements") int numElements, - @JsonProperty("stringLength") int stringLength) { - super(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements); + @JsonProperty("stringLength") int stringLength, + @JsonProperty("stringEncoding") String stringEncoding) { + super(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements,stringEncoding); this.stringLength = stringLength; } diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java index 2a78a33da6e..5a92175fb1f 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java @@ -47,24 +47,23 @@ public class S7Tag implements PlcTag, Serializable { //byteOffset theoretically can reach up to 2097151 ... see checkByteOffset() below --> 7digits private static final Pattern ADDRESS_PATTERN = - Pattern.compile("^%(?.)(?[XBWD]?)(?\\d{1,7})(.(?[0-7]))?:(?[a-zA-Z_]+)(\\[(?\\d+)])?"); + Pattern.compile("^%(?.)(?[XBWD]?)(?\\d{1,7})(.(?[0-7]))?:(?[a-zA-Z_]+)(\\[(?\\d+)])?(\\|(?[a-z0-9A-Z_-]+))?"); //blockNumber usually has its max hat around 64000 --> 5digits private static final Pattern DATA_BLOCK_ADDRESS_PATTERN = - Pattern.compile("^%DB(?\\d{1,5}).DB(?[XBWD]?)(?\\d{1,7})(.(?[0-7]))?:(?[a-zA-Z_]+)(\\[(?\\d+)])?"); + Pattern.compile("^%DB(?\\d{1,5}).DB(?[XBWD]?)(?\\d{1,7})(.(?[0-7]))?:(?[a-zA-Z_]+)(\\[(?\\d+)])?(\\|(?[a-z0-9A-Z_-]+))?"); private static final Pattern DATA_BLOCK_SHORT_PATTERN = - Pattern.compile("^%DB(?\\d{1,5}):(?\\d{1,7})(.(?[0-7]))?:(?[a-zA-Z_]+)(\\[(?\\d+)])?"); + Pattern.compile("^%DB(?\\d{1,5}):(?\\d{1,7})(.(?[0-7]))?:(?[a-zA-Z_]+)(\\[(?\\d+)])?(\\|(?[a-z0-9A-Z_-]+))?"); private static final Pattern DATA_BLOCK_STRING_ADDRESS_PATTERN = - Pattern.compile("^%DB(?\\d{1,5}).DB(?[XBWD]?)(?\\d{1,7})(.(?[0-7]))?:(?STRING|WSTRING)\\((?\\d{1,3})\\)(\\[(?\\d+)])?"); + Pattern.compile("^%DB(?\\d{1,5}).DB(?[XBWD]?)(?\\d{1,7})(.(?[0-7]))?:(?STRING|WSTRING)\\((?\\d{1,3})\\)(\\[(?\\d+)])?(\\|(?[a-z0-9A-Z_-]+))?"); private static final Pattern DATA_BLOCK_STRING_SHORT_PATTERN = - Pattern.compile("^%DB(?\\d{1,5}):(?\\d{1,7})(.(?[0-7]))?:(?STRING|WSTRING)\\((?\\d{1,3})\\)(\\[(?\\d+)])?"); + Pattern.compile("^%DB(?\\d{1,5}):(?\\d{1,7})(.(?[0-7]))?:(?STRING|WSTRING)\\((?\\d{1,3})\\)(\\[(?\\d+)])?(\\|(?[a-z0-9A-Z_-]+))?"); private static final Pattern PLC_PROXY_ADDRESS_PATTERN = - Pattern.compile("[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}"); - + Pattern.compile("[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}(\\|(?[a-z0-9A-Z_-]+))?"); private static final String DATA_TYPE = "dataType"; private static final String STRING_LENGTH = "stringLength"; private static final String TRANSFER_SIZE_CODE = "transferSizeCode"; @@ -73,6 +72,7 @@ public class S7Tag implements PlcTag, Serializable { private static final String BIT_OFFSET = "bitOffset"; private static final String NUM_ELEMENTS = "numElements"; private static final String MEMORY_AREA = "memoryArea"; + private static final String STRING_ENCODING = "stringEncoding"; private final TransportSize dataType; private final MemoryArea memoryArea; @@ -81,16 +81,20 @@ public class S7Tag implements PlcTag, Serializable { private final byte bitOffset; private final int numElements; + private final String stringEncoding; + @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) protected S7Tag(@JsonProperty("dataType") TransportSize dataType, @JsonProperty("memoryArea") MemoryArea memoryArea, @JsonProperty("blockNumber") int blockNumber, @JsonProperty("byteOffset") int byteOffset, - @JsonProperty("bitOffset") byte bitOffset, @JsonProperty("numElements") int numElements) { + @JsonProperty("bitOffset") byte bitOffset, @JsonProperty("numElements") int numElements, + @JsonProperty("stringEncoding") String stringEncoding) { this.dataType = dataType; this.memoryArea = memoryArea; this.blockNumber = blockNumber; this.byteOffset = byteOffset; this.bitOffset = bitOffset; this.numElements = numElements; + this.stringEncoding = stringEncoding; } @Override @@ -135,6 +139,10 @@ public byte getBitOffset() { return bitOffset; } + public String getStringEncoding() { + return stringEncoding; + } + @Override public int getNumberOfElements() { return numElements; } @@ -162,7 +170,7 @@ public static S7Tag of(String tagString) { if (matcher.group(BIT_OFFSET) != null) { bitOffset = Byte.parseByte(matcher.group(BIT_OFFSET)); } else if (dataType == TransportSize.BOOL) { - throw new PlcInvalidTagException("Expected bit offset for BOOL parameters."); + //throw new PlcInvalidTagException("Expected bit offset for BOOL parameters."); } int numElements = 1; if (matcher.group(NUM_ELEMENTS) != null) { @@ -173,8 +181,16 @@ public static S7Tag of(String tagString) { throw new PlcInvalidTagException("Transfer size code '" + transferSizeCode + "' doesn't match specified data type '" + dataType.name() + "'"); } - - return new S7StringTag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength); + String stringEncoding = matcher.group(STRING_ENCODING); + if (stringEncoding==null || "".equals(stringEncoding)) + { + stringEncoding = "UTF-8"; + if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR) + { + stringEncoding = "UTF-16"; + } + } + return new S7StringTag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength, stringEncoding); } else if ((matcher = DATA_BLOCK_STRING_SHORT_PATTERN.matcher(tagString)).matches()) { TransportSize dataType = TransportSize.valueOf(matcher.group(DATA_TYPE)); int stringLength = Integer.parseInt(matcher.group(STRING_LENGTH)); @@ -186,9 +202,17 @@ public static S7Tag of(String tagString) { if (matcher.group(NUM_ELEMENTS) != null) { numElements = Integer.parseInt(matcher.group(NUM_ELEMENTS)); } - + String stringEncoding = matcher.group(STRING_ENCODING); + if (stringEncoding==null || "".equals(stringEncoding)) + { + stringEncoding = "UTF-8"; + if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR) + { + stringEncoding = "UTF-16"; + } + } return new S7StringTag(dataType, memoryArea, blockNumber, - byteOffset, bitOffset, numElements, stringLength); + byteOffset, bitOffset, numElements, stringLength, stringEncoding); } else if ((matcher = DATA_BLOCK_ADDRESS_PATTERN.matcher(tagString)).matches()) { TransportSize dataType = TransportSize.valueOf(matcher.group(DATA_TYPE)); MemoryArea memoryArea = MemoryArea.DATA_BLOCKS; @@ -210,8 +234,16 @@ public static S7Tag of(String tagString) { throw new PlcInvalidTagException("Transfer size code '" + transferSizeCode + "' doesn't match specified data type '" + dataType.name() + "'"); } - - return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements); + String stringEncoding = matcher.group(STRING_ENCODING); + if (stringEncoding==null || "".equals(stringEncoding)) + { + stringEncoding = "UTF-8"; + if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR) + { + stringEncoding = "UTF-16"; + } + } + return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringEncoding); } else if ((matcher = DATA_BLOCK_SHORT_PATTERN.matcher(tagString)).matches()) { TransportSize dataType = TransportSize.valueOf(matcher.group(DATA_TYPE)); MemoryArea memoryArea = MemoryArea.DATA_BLOCKS; @@ -221,15 +253,23 @@ public static S7Tag of(String tagString) { if (matcher.group(BIT_OFFSET) != null) { bitOffset = Byte.parseByte(matcher.group(BIT_OFFSET)); } else if (dataType == TransportSize.BOOL) { - throw new PlcInvalidTagException("Expected bit offset for BOOL parameters."); + //throw new PlcInvalidTagException("Expected bit offset for BOOL parameters."); } int numElements = 1; if (matcher.group(NUM_ELEMENTS) != null) { numElements = Integer.parseInt(matcher.group(NUM_ELEMENTS)); } - - return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements); - } else if (PLC_PROXY_ADDRESS_PATTERN.matcher(tagString).matches()) { + String stringEncoding = matcher.group(STRING_ENCODING); + if (stringEncoding==null || "".equals(stringEncoding)) + { + stringEncoding = "UTF-8"; + if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR) + { + stringEncoding = "UTF-16"; + } + } + return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringEncoding); + } else if ((matcher = PLC_PROXY_ADDRESS_PATTERN.matcher(tagString)).matches()) { try { byte[] addressData = Hex.decodeHex(tagString.replaceAll("[-]", "")); ReadBuffer rb = new ReadBufferByteBased(addressData); @@ -240,10 +280,18 @@ public static S7Tag of(String tagString) { if ((s7AddressAny.getTransportSize() != TransportSize.BOOL) && s7AddressAny.getBitAddress() != 0) { throw new PlcInvalidTagException("A bit offset other than 0 is only supported for type BOOL"); } - + String stringEncoding = matcher.group(STRING_ENCODING); + if (stringEncoding==null || "".equals(stringEncoding)) + { + stringEncoding = "UTF-8"; + if (s7AddressAny.getTransportSize() == TransportSize.WSTRING || s7AddressAny.getTransportSize() == TransportSize.WCHAR) + { + stringEncoding = "UTF-16"; + } + } return new S7Tag(s7AddressAny.getTransportSize(), s7AddressAny.getArea(), s7AddressAny.getDbNumber(), s7AddressAny.getByteAddress(), - s7AddressAny.getBitAddress(), s7AddressAny.getNumberOfElements()); + s7AddressAny.getBitAddress(), s7AddressAny.getNumberOfElements(), stringEncoding); } else { throw new PlcInvalidTagException("Unsupported address type."); } @@ -259,7 +307,7 @@ public static S7Tag of(String tagString) { if (matcher.group(BIT_OFFSET) != null) { bitOffset = Byte.parseByte(matcher.group(BIT_OFFSET)); } else if (dataType == TransportSize.BOOL) { - throw new PlcInvalidTagException("Expected bit offset for BOOL parameters."); + //throw new PlcInvalidTagException("Expected bit offset for BOOL parameters."); } int numElements = 1; if (matcher.group(NUM_ELEMENTS) != null) { @@ -273,8 +321,17 @@ public static S7Tag of(String tagString) { if ((dataType != TransportSize.BOOL) && bitOffset != 0) { throw new PlcInvalidTagException("A bit offset other than 0 is only supported for type BOOL"); } + String stringEncoding = matcher.group(STRING_ENCODING); + if (stringEncoding==null || "".equals(stringEncoding)) + { + stringEncoding = "UTF-8"; + if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR) + { + stringEncoding = "UTF-16"; + } + } - return new S7Tag(dataType, memoryArea, (short) 0, byteOffset, bitOffset, numElements); + return new S7Tag(dataType, memoryArea, (short) 0, byteOffset, bitOffset, numElements, stringEncoding); } throw new PlcInvalidTagException("Unable to parse address: " + tagString); } diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java index 3fda942897e..f1ab55296d7 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java @@ -36,14 +36,22 @@ import org.apache.plc4x.java.spi.generation.ReadBuffer; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; +import org.apache.plc4x.java.spi.values.PlcList; +import org.apache.plc4x.java.spi.values.PlcWCHAR; +import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; +import java.nio.ByteBuffer; +import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; import java.nio.charset.StandardCharsets; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.ChronoUnit; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; @@ -127,6 +135,87 @@ */ public class StaticHelper { + private static final String[] DEFAULTCHARSETS = {"ASCII", "UTF-8", "GBK", "GB2312", "BIG5", "GB18030"}; + + public static Charset detectCharset(String firstMaTch, byte[] bytes) { + + Charset charset = null; + if (firstMaTch!=null && !"".equals(firstMaTch)) + { + try { + charset = Charset.forName(firstMaTch.replaceAll("[^a-zA-Z0-9]", "")); + }catch (Exception ignored) { + } + return charset; + } + for (String charsetName : DEFAULTCHARSETS) { + charset = detectCharset(bytes, Charset.forName(charsetName), bytes.length); + if (charset != null) { + break; + } + } + + return charset; + } + + private static Charset detectCharset(byte[] bytes, Charset charset, int length) { + try { + BufferedInputStream input = new BufferedInputStream(new ByteArrayInputStream(bytes, 0, length)); + + CharsetDecoder decoder = charset.newDecoder(); + decoder.reset(); + + byte[] buffer = new byte[512]; + boolean identified = false; + while (input.read(buffer) != -1 && !identified) { + identified = identify(buffer, decoder); + } + + input.close(); + + if (identified) { + return charset; + } else { + return null; + } + + } catch (Exception e) { + return null; + } + } + + private static boolean identify(byte[] bytes, CharsetDecoder decoder) { + try { + decoder.decode(ByteBuffer.wrap(bytes)); + } catch (CharacterCodingException e) { + return false; + } + return true; + } + public static Charset getEncoding(String firstMaTch, String str) { + if (str == null || str.trim().length() < 1) { + return null; + } + Charset charset = null; + if (firstMaTch!=null && !"".equals(firstMaTch)) + { + try { + charset = Charset.forName(firstMaTch.replaceAll("[^a-zA-Z0-9]", "")); + }catch (Exception ignored) { + } + return charset; + } + for (String encode : DEFAULTCHARSETS) { + try { + Charset charset1 = Charset.forName(encode); + if (str.equals(new String(str.getBytes(charset1), charset1))) { + return charset1; + } + } catch (Exception er) { + } + } + return null; + } public enum OB { FREE_CYC(0X0000, "OB1 Free cycle"), @@ -1931,7 +2020,7 @@ public static void serializeTiaDateTime(WriteBuffer io, PlcValue value) { throw new NotImplementedException("Serializing DATE_AND_TIME not implemented"); } - public static String parseS7Char(ReadBuffer io, String encoding) throws ParseException { + public static String parseS7Char(ReadBuffer io, String encoding, String stringEncoding) throws ParseException{ if ("UTF-8".equalsIgnoreCase(encoding)) { return io.readString(8, WithOption.WithEncoding(encoding)); } else if ("UTF-16".equalsIgnoreCase(encoding)) { @@ -1941,14 +2030,14 @@ public static String parseS7Char(ReadBuffer io, String encoding) throws ParseExc } } - public static String parseS7String(ReadBuffer io, int stringLength, String encoding) { + public static String parseS7String(ReadBuffer io, int stringLength, String encoding, String stringEncoding) { try { if ("UTF-8".equalsIgnoreCase(encoding)) { // This is the maximum number of bytes a string can be long. short maxLength = io.readUnsignedShort(8); // This is the total length of the string on the PLC (Not necessarily the number of characters read) short totalStringLength = io.readUnsignedShort(8); - + totalStringLength = (short) Math.min(maxLength, totalStringLength); final byte[] byteArray = new byte[totalStringLength]; for (int i = 0; (i < stringLength) && io.hasMore(8); i++) { final byte curByte = io.readByte(); @@ -1963,13 +2052,25 @@ public static String parseS7String(ReadBuffer io, int stringLength, String encod break; } } - return new String(byteArray, StandardCharsets.UTF_8); + Charset charset = detectCharset(null,byteArray); + if (charset == null) { + try { + charset = Charset.forName(stringEncoding.replaceAll("[^a-zA-Z0-9]", "")); + }catch (Exception ignored) { + } + if (charset == null) { + charset = StandardCharsets.UTF_8; + } + } + String substr = new String(byteArray, charset); + substr = substr.replaceAll("[^\u0020-\u9FA5]", ""); + return substr; } else if ("UTF-16".equalsIgnoreCase(encoding)) { // This is the maximum number of bytes a string can be long. int maxLength = io.readUnsignedInt(16); // This is the total length of the string on the PLC (Not necessarily the number of characters read) int totalStringLength = io.readUnsignedInt(16); - + totalStringLength = Math.min(maxLength, totalStringLength); final byte[] byteArray = new byte[totalStringLength * 2]; for (int i = 0; (i < stringLength) && io.hasMore(16); i++) { final short curShort = io.readShort(16); @@ -1985,7 +2086,17 @@ public static String parseS7String(ReadBuffer io, int stringLength, String encod break; } } - return new String(byteArray, StandardCharsets.UTF_16); + Charset charset = detectCharset(stringEncoding,byteArray); + if (charset == null) { + try { + charset = Charset.forName(stringEncoding.replaceAll("[^a-zA-Z0-9]", "")); + }catch (Exception ignored) { + } + if (charset == null) { + charset = StandardCharsets.UTF_16; + } + } + return new String(byteArray, charset); } else { throw new PlcRuntimeException("Unsupported string encoding " + encoding); } @@ -1997,12 +2108,29 @@ public static String parseS7String(ReadBuffer io, int stringLength, String encod /* * A variable of data type CHAR (character) occupies one byte. */ - public static void serializeS7Char(WriteBuffer io, PlcValue value, String encoding) { - // TODO: Need to implement the serialization or we can't write strings + public static void serializeS7Char(WriteBuffer io, PlcValue value, String encoding, String stringEncoding) { + if (value instanceof PlcList) { + PlcList list = (PlcList) value; + list.getList().forEach(v -> writeChar(io, v, encoding,stringEncoding)); + } else { + writeChar(io, value, encoding,stringEncoding); + } + } + private static void writeChar(WriteBuffer io, PlcValue value, String encoding, String stringEncoding) { if ("UTF-8".equalsIgnoreCase(encoding)) { - //return io.readString(8, encoding); + try { + byte valueByte = value.getByte(); + io.writeByte(valueByte); + } catch (SerializationException e) { + throw new PlcRuntimeException("writeChar error"); + } } else if ("UTF-16".equalsIgnoreCase(encoding)) { - //return io.readString(16, encoding); + try { + byte[] bytes = ((PlcWCHAR) value).getBytes(); + io.writeByteArray(bytes); + } catch (SerializationException e) { + throw new PlcRuntimeException("writeWChar error"); + } } else { throw new PlcRuntimeException("Unsupported encoding"); } @@ -2032,23 +2160,57 @@ public static void serializeS7Char(WriteBuffer io, PlcValue value, String encodi * If your application does not handle S7string, you can handle * the String as char arrays from your application. */ - public static void serializeS7String(WriteBuffer io, PlcValue value, int stringLength, String encoding) { - int k = 0xFF & ((stringLength > 250) ? 250 : stringLength); - int m = 0xFF & value.getString().length(); - m = (m > k) ? k : m; - byte[] chars = new byte[m]; - for (int i = 0; i < m; ++i) { - char c = value.getString().charAt(i); - chars[i] = (byte) c; + public static void serializeS7String(WriteBuffer io, PlcValue value, int stringLength, String encoding, String stringEncoding) { + stringLength = Math.min(stringLength, 254); + String valueString = (String) value.getObject(); + valueString = valueString == null ? "" : valueString; + if ("AUTO".equalsIgnoreCase(stringEncoding)) + { + stringEncoding = null; + } + Charset charsetTemp = getEncoding(stringEncoding,valueString); + if ("UTF-8".equalsIgnoreCase(encoding)) { + if (charsetTemp == null) { + charsetTemp = StandardCharsets.UTF_8; + } + final byte[] raw = valueString.getBytes(charsetTemp); + try { + io.writeByte((byte) stringLength); + io.writeByte((byte) raw.length); + for (int i = 0; i < stringLength; i++) { + if (i >= raw.length) { + io.writeByte((byte) 0x00); + } else { + io.writeByte( raw[i]); + } + } + } + catch (SerializationException ex) { + Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex); + } + } else if ("UTF-16".equalsIgnoreCase(encoding)) { + if (charsetTemp == null) { + charsetTemp = StandardCharsets.UTF_16; + } + final byte[] raw = valueString.getBytes(charsetTemp); + try { + io.writeUnsignedInt(16, stringLength); + io.writeUnsignedInt(16, raw.length / 2); + for (int i = 0; i < stringLength * 2; i++) { + if (i >= raw.length) { + io.writeByte((byte) 0x00); + } else { + io.writeByte( raw[i]); + } + } + } + catch (SerializationException ex) { + Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex); + } + } else { + throw new PlcRuntimeException("Unsupported string encoding " + encoding); } - try { - io.writeByte((byte)(k & 0xFF)); - io.writeByte((byte)(m & 0xFF)); - io.writeByteArray(chars); - } catch (SerializationException ex) { - Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex); - } } } diff --git a/plc4j/drivers/s7/src/test/resources/logback-test.xml b/plc4j/drivers/s7/src/test/resources/logback-test.xml index 33ae65561c2..30209163626 100644 --- a/plc4j/drivers/s7/src/test/resources/logback-test.xml +++ b/plc4j/drivers/s7/src/test/resources/logback-test.xml @@ -27,7 +27,7 @@ - + diff --git a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java index 515d3e1eb16..b533477fd3f 100644 --- a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java +++ b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java @@ -18,31 +18,16 @@ */ package org.apache.plc4x.java.simulated.connection; -import org.apache.plc4x.java.api.messages.PlcReadRequest; -import org.apache.plc4x.java.api.messages.PlcReadResponse; -import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent; -import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest; -import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse; -import org.apache.plc4x.java.api.messages.PlcUnsubscriptionRequest; -import org.apache.plc4x.java.api.messages.PlcUnsubscriptionResponse; -import org.apache.plc4x.java.api.messages.PlcWriteRequest; -import org.apache.plc4x.java.api.messages.PlcWriteResponse; +import org.apache.plc4x.java.api.messages.*; import org.apache.plc4x.java.api.model.PlcConsumerRegistration; -import org.apache.plc4x.java.api.model.PlcSubscriptionTag; import org.apache.plc4x.java.api.model.PlcSubscriptionHandle; +import org.apache.plc4x.java.api.model.PlcSubscriptionTag; import org.apache.plc4x.java.api.types.PlcResponseCode; import org.apache.plc4x.java.api.value.PlcValue; import org.apache.plc4x.java.simulated.tag.SimulatedTag; import org.apache.plc4x.java.simulated.tag.SimulatedTagHandler; import org.apache.plc4x.java.spi.connection.AbstractPlcConnection; -import org.apache.plc4x.java.spi.messages.DefaultPlcReadResponse; -import org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionEvent; -import org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionResponse; -import org.apache.plc4x.java.spi.messages.DefaultPlcUnsubscriptionResponse; -import org.apache.plc4x.java.spi.messages.DefaultPlcWriteResponse; -import org.apache.plc4x.java.spi.messages.PlcReader; -import org.apache.plc4x.java.spi.messages.PlcSubscriber; -import org.apache.plc4x.java.spi.messages.PlcWriter; +import org.apache.plc4x.java.spi.messages.*; import org.apache.plc4x.java.spi.messages.utils.ResponseItem; import org.apache.plc4x.java.spi.model.DefaultPlcConsumerRegistration; import org.apache.plc4x.java.spi.model.DefaultPlcSubscriptionHandle; @@ -51,12 +36,7 @@ import org.slf4j.LoggerFactory; import java.time.Instant; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Consumer; @@ -65,7 +45,7 @@ * Connection to a test device. * This class is not thread-safe. */ -public class SimulatedConnection extends AbstractPlcConnection implements PlcReader, PlcWriter, PlcSubscriber { +public class SimulatedConnection extends AbstractPlcConnection { private static final Logger LOGGER = LoggerFactory.getLogger(SimulatedConnection.class); diff --git a/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java b/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java index 54c2b203c42..09d036d93cd 100644 --- a/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java +++ b/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java @@ -24,10 +24,10 @@ import com.google.gson.JsonObject; import com.hivemq.client.mqtt.MqttClient; import com.hivemq.client.mqtt.datatypes.MqttQos; -import com.hivemq.client.mqtt.mqtt3.Mqtt3RxClient; -import com.hivemq.client.mqtt.mqtt3.message.connect.connack.Mqtt3ConnAck; -import com.hivemq.client.mqtt.mqtt3.message.publish.Mqtt3Publish; -import com.hivemq.client.mqtt.mqtt3.message.publish.Mqtt3PublishResult; +import com.hivemq.client.mqtt.mqtt5.Mqtt5RxClient; +import com.hivemq.client.mqtt.mqtt5.message.connect.connack.Mqtt5ConnAck; +import com.hivemq.client.mqtt.mqtt5.message.publish.Mqtt5Publish; +import com.hivemq.client.mqtt.mqtt5.message.publish.Mqtt5PublishResult; import io.reactivex.Flowable; import io.reactivex.Single; import org.apache.commons.lang3.StringUtils; @@ -43,6 +43,7 @@ import java.io.File; import java.io.IOException; +import java.net.URL; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -53,14 +54,18 @@ public class MqttConnector { private Configuration config; private MqttConnector(String propsPath) { - if(StringUtils.isEmpty(propsPath)) { + if (StringUtils.isEmpty(propsPath)) { logger.error("Empty configuration file parameter"); throw new IllegalArgumentException("Empty configuration file parameter"); } File propsFile = new File(propsPath); - if(!(propsFile.exists() && propsFile.isFile())) { - logger.error("Invalid configuration file {}", propsFile.getPath()); - throw new IllegalArgumentException("Invalid configuration file " + propsFile.getPath()); + if (!(propsFile.exists() && propsFile.isFile())) { + URL url = getClass().getClassLoader().getResource(propsPath); + if (url == null) { + logger.error("Invalid configuration file {}", propsFile.getPath()); + throw new IllegalArgumentException("Invalid configuration file " + propsFile.getPath()); + } + propsFile = new File(url.getFile()); } ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); try { @@ -72,15 +77,15 @@ private MqttConnector(String propsPath) { private void run() throws PlcException { // Create a new MQTT client. - final Mqtt3RxClient client = MqttClient.builder() + final Mqtt5RxClient client = MqttClient.builder() .identifier(UUID.randomUUID().toString()) .serverHost(config.getMqttConfig().getServerHost()) .serverPort(config.getMqttConfig().getServerPort()) - .useMqttVersion3() + .useMqttVersion5() .buildRx(); // Connect to the MQTT broker. - final Single connAckSingle = client.connect().timeout(10, TimeUnit.SECONDS); + final Single connAckSingle = client.connect().timeout(10, TimeUnit.SECONDS); // Connect to the PLC. try (PlcConnection plcConnection = PlcDriverManager.getDefault().getConnectionManager().getConnection(config.getPlcConfig().getConnection())) { @@ -99,30 +104,36 @@ private void run() throws PlcException { PlcReadRequest readRequest = builder.build(); // Send a message containing the PLC read response. - Flowable messagesToPublish = Flowable.generate(emitter -> { - PlcReadResponse response = readRequest.execute().get(); - String jsonPayload = getPayload(response); - final Mqtt3Publish publishMessage = Mqtt3Publish.builder() - .topic(config.getMqttConfig().getTopicName()) - .qos(MqttQos.AT_LEAST_ONCE) - .payload(jsonPayload.getBytes()) - .build(); - emitter.onNext(publishMessage); + Flowable messagesToPublish = Flowable.generate(emitter -> { + readRequest.execute().whenComplete((response, err) -> { + String jsonPayload = new JsonObject().toString(); + if (err == null) { + jsonPayload = getPayload(response); + } + + final Mqtt5Publish publishMessage = Mqtt5Publish.builder() + .topic(config.getMqttConfig().getTopicName()) + .qos(MqttQos.AT_LEAST_ONCE) + .payload(jsonPayload.getBytes()) + .build(); + emitter.onNext(publishMessage); + }); + }); // Emit 1 message only every 100 milliseconds. messagesToPublish = messagesToPublish.zipWith(Flowable.interval( config.getPollingInterval(), TimeUnit.MILLISECONDS), (publish, aLong) -> publish); - final Single connectScenario = connAckSingle - .doOnSuccess(connAck -> System.out.println("Connected with return code " + connAck.getReturnCode())) + final Single connectScenario = connAckSingle + .doOnSuccess(connAck -> System.out.println("Connected with return code " + connAck.getReasonCode())) .doOnError(throwable -> System.out.println("Connection failed, " + throwable.getMessage())); - final Flowable publishScenario = client.publish(messagesToPublish) + final Flowable publishScenario = client.publish(messagesToPublish) .doOnNext(publishResult -> System.out.println( "Publish acknowledged: " + new String(publishResult.getPublish().getPayloadAsBytes()))); - connectScenario.toCompletable().andThen(publishScenario).blockingSubscribe(); + connectScenario.ignoreElement().andThen(publishScenario).blockingSubscribe(); } catch (Exception e) { throw new PlcException("Error creating connection to " + config.getPlcConfig().getConnection(), e); } @@ -143,10 +154,11 @@ private String getPayload(PlcReadResponse response) { } public static void main(String[] args) throws Exception { - if(args.length != 1) { - System.out.println("Usage: MqttConnector {path-to-mqtt-connector.yml}"); + String fileName = "mqtt-connector.yml"; + if (args.length >= 1) { + fileName = args[0]; } - MqttConnector mqttConnector = new MqttConnector(args[0]); + MqttConnector mqttConnector = new MqttConnector(fileName); mqttConnector.run(); } diff --git a/plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml b/plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml new file mode 100644 index 00000000000..1bccd427a91 --- /dev/null +++ b/plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml @@ -0,0 +1,35 @@ +# ---------------------------------------------------------------------------- +# 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 +# +# https://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. +# ---------------------------------------------------------------------------- +--- +mqtt: + topic-name: plc4x/test-topic + server-host: test.mosquitto.org + server-port: 1883 +plc: + connection: simulated://127.0.0.1 + addresses: + - name: intParam + address: RANDOM/foo:INT + size: 1 + type: java.lang.Integer + - name: intParam2 + address: RANDOM/bar:INT + size: 1 + type: java.lang.Integer +polling-interval: 2000 diff --git a/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java b/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java index d89e4d35ea0..1cd49b5e1b7 100644 --- a/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java +++ b/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java @@ -61,7 +61,7 @@ public HelloInflux(File configFile) { public void run() { InfluxDBClient dbConnection = connectToDb(); - WriteApi writeApi = dbConnection.getWriteApi(); + WriteApi writeApi = dbConnection.makeWriteApi(); try { PlcConnection plcConnection = connectToPlc(); diff --git a/plc4j/examples/hello-world-kotlin/pom.xml b/plc4j/examples/hello-world-kotlin/pom.xml index 6931049aa04..771e2e82bfc 100644 --- a/plc4j/examples/hello-world-kotlin/pom.xml +++ b/plc4j/examples/hello-world-kotlin/pom.xml @@ -54,7 +54,7 @@ diff --git a/plc4j/integrations/apache-kafka/pom.xml b/plc4j/integrations/apache-kafka/pom.xml index 6f6fcebc120..75fd02e15f5 100644 --- a/plc4j/integrations/apache-kafka/pom.xml +++ b/plc4j/integrations/apache-kafka/pom.xml @@ -32,7 +32,7 @@ Integration module for integrating PLC4X into Apache Kafka (Kafka-Connect-Plugin) - 3.2.0 + 3.2.3 0.12.0 diff --git a/plc4j/integrations/opcua-server/pom.xml b/plc4j/integrations/opcua-server/pom.xml index ee1a38db544..084a708fa18 100644 --- a/plc4j/integrations/opcua-server/pom.xml +++ b/plc4j/integrations/opcua-server/pom.xml @@ -168,18 +168,18 @@ runtime - + org.bouncycastle - bcmail-jdk15on + bcmail-jdk18on org.bouncycastle - bcpkix-jdk15on + bcpkix-jdk18on org.bouncycastle - bcprov-jdk15on + bcprov-jdk18on @@ -253,7 +253,7 @@ org.slf4j:slf4j-simple - org.bouncycastle:bcmail-jdk15on + org.bouncycastle:bcmail-jdk18on org.apache.plc4x:plc4j-driver-ab-eth org.apache.plc4x:plc4j-driver-ads org.apache.plc4x:plc4j-driver-canopen diff --git a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java index e2ff4651073..e7c5a81dc3a 100644 --- a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java +++ b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java @@ -18,7 +18,9 @@ */ package org.apache.plc4x.java.opcuaserver.backend; +import org.apache.plc4x.java.DefaultPlcDriverManager; import org.apache.plc4x.java.api.PlcConnection; +import org.apache.plc4x.java.api.PlcConnectionManager; import org.apache.plc4x.java.api.PlcDriverManager; import org.apache.plc4x.java.api.exceptions.PlcConnectionException; import org.apache.plc4x.java.api.messages.PlcReadRequest; @@ -53,9 +55,7 @@ public class Plc4xCommunication extends AbstractLifecycle { - - private PlcDriverManager driverManager; - private CachedPlcConnectionManager cachedPlcConnectionManager; + private PlcConnectionManager plcConnectionManager; private final Logger logger = LoggerFactory.getLogger(getClass()); private final Integer DEFAULT_TIMEOUT = 1000000; private final Integer DEFAULT_RETRY_BACKOFF = 5000; @@ -71,7 +71,7 @@ public Plc4xCommunication() { @Override protected void onStartup() { - setDriverManager(PlcDriverManager.getDefault()); + setConnectionManager(CachedPlcConnectionManager.getBuilder(new DefaultPlcDriverManager()).build()); } @Override @@ -79,17 +79,16 @@ protected void onShutdown() { //Do Nothing } - public PlcDriverManager getDriverManager() { - return driverManager; + public PlcConnectionManager getConnectionManager() { + return plcConnectionManager; } - public void setDriverManager(PlcDriverManager driverManager) { - this.driverManager = driverManager; - this.cachedPlcConnectionManager = CachedPlcConnectionManager.getBuilder(driverManager.getConnectionManager()).build(); + public void setConnectionManager(PlcConnectionManager connectionManager) { + this.plcConnectionManager = connectionManager; } public PlcTag getTag(String tag, String connectionString) throws PlcConnectionException { - return driverManager.getDriverForUrl(connectionString).prepareTag(tag); + return plcConnectionManager.getDriverManager().getDriverForUrl(connectionString).prepareTag(tag); } public void addTag(DataItem item) { @@ -156,7 +155,7 @@ public DataValue getValue(AttributeFilterContext.GetAttributeContext ctx, String //Try to connect to PLC try { - connection = cachedPlcConnectionManager.getConnection(connectionString); + connection = plcConnectionManager.getConnection(connectionString); logger.debug(connectionString + " Connected"); } catch (PlcConnectionException e) { logger.error("Failed to connect to device, error raised - " + e); @@ -248,7 +247,7 @@ public DataValue getValue(AttributeFilterContext.GetAttributeContext ctx, String } public void setValue(String tag, String value, String connectionString) { - try (PlcConnection connection = cachedPlcConnectionManager.getConnection(connectionString)) { + try (PlcConnection connection = plcConnectionManager.getConnection(connectionString)) { if (!connection.getMetadata().canWrite()) { logger.error("This connection doesn't support writing."); return; diff --git a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java index fd4d6e91884..87f2fe60478 100644 --- a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java +++ b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java @@ -23,6 +23,7 @@ import org.apache.plc4x.java.opcuaserver.configuration.Configuration; import org.apache.plc4x.java.opcuaserver.configuration.DeviceConfiguration; import org.apache.plc4x.java.opcuaserver.configuration.Tag; +import org.apache.plc4x.java.utils.cache.CachedPlcConnectionManager; import org.eclipse.milo.opcua.sdk.core.AccessLevel; import org.eclipse.milo.opcua.sdk.core.Reference; import org.eclipse.milo.opcua.sdk.core.ValueRank; @@ -184,9 +185,9 @@ public void onDataItemsCreated(List dataItems) { for (DataItem item : dataItems) { plc4xServer.addTag(item); - if (plc4xServer.getDriverManager() == null) { + if (plc4xServer.getConnectionManager() == null) { plc4xServer.removeTag(item); - plc4xServer.setDriverManager(new DefaultPlcDriverManager()); + plc4xServer.setConnectionManager(CachedPlcConnectionManager.getBuilder(new DefaultPlcDriverManager()).build()); } } diff --git a/plc4j/pom.xml b/plc4j/pom.xml index 192b24edba8..732394adb1a 100644 --- a/plc4j/pom.xml +++ b/plc4j/pom.xml @@ -126,6 +126,9 @@ check + + **/Identifiers + false @@ -221,7 +224,7 @@ We have to slightly increase the heap-size or some tests will fail. Notice the @ instead of the $ as prefix? That's late evaluation. --> - -Xmx256m @{failsafeArgLine} + -Xmx256m **/*IT.java diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java index 33ef3166734..e6007b9a50b 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java @@ -22,6 +22,9 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.MessageToMessageCodec; +import io.netty.util.HashedWheelTimer; +import io.netty.util.Timeout; +import io.netty.util.Timer; import io.vavr.control.Either; import org.apache.plc4x.java.api.authentication.PlcAuthentication; import org.apache.plc4x.java.spi.configuration.Configuration; @@ -39,6 +42,7 @@ import java.util.List; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.function.Consumer; import java.util.function.Function; @@ -53,13 +57,12 @@ public class Plc4xNettyWrapper extends MessageToMessageCodec { private final PlcAuthentication authentication; private final Queue registeredHandlers; - private final ChannelPipeline pipeline; + private Timer timer = null; private final boolean passive; public Plc4xNettyWrapper(ChannelPipeline pipeline, boolean passive, Plc4xProtocolBase protocol, PlcAuthentication authentication, Class clazz) { super(clazz, Object.class); - this.pipeline = pipeline; this.passive = passive; this.registeredHandlers = new ConcurrentLinkedQueue<>(); this.protocolBase = protocol; @@ -105,6 +108,7 @@ public void fireDiscovered(Configuration c) { public SendRequestContext sendRequest(T packet) { return new DefaultSendRequestContext<>(handler -> { logger.trace("Adding Response Handler ..."); + handler.setTimeoutHandle(createTimeout(handler)); registeredHandlers.add(handler); }, packet, this); } @@ -113,13 +117,33 @@ public SendRequestContext sendRequest(T packet) { public ExpectRequestContext expectRequest(Class clazz, Duration timeout) { return new DefaultExpectRequestContext<>(handler -> { logger.trace("Adding Request Handler ..."); + handler.setTimeoutHandle(createTimeout(handler)); registeredHandlers.add(handler); }, clazz, timeout, this); } }); } - + private Timeout createTimeout(HandlerRegistration handler) + { + Timer createdTimer = this.protocolBase.timer; + if(createdTimer==null) { + if(this.timer == null) { + this.timer = new HashedWheelTimer(); + } + createdTimer = this.timer; + } + return createdTimer.newTimeout(tt -> { + if (tt.isCancelled()) { + return; + } + if( registeredHandlers.remove(handler)) + { + handler.cancel(); + handler.getOnTimeoutConsumer().accept(new TimeoutException()); + } + }, handler.getTimeout().toMillis(), TimeUnit.MILLISECONDS); + } @Override protected void encode(ChannelHandlerContext channelHandlerContext, Object msg, List list) throws Exception { // logger.trace("Encoding {}", plcRequestContainer); @@ -145,21 +169,15 @@ protected void decode(ChannelHandlerContext channelHandlerContext, T t, List(ctx, authentication, passive)); } else if (evt instanceof CloseConnectionEvent) { this.protocolBase.close(new DefaultConversationContext<>(ctx, authentication, passive)); + if(this.timer!=null) { + this.timer.stop(); + this.timer = null; + } } else { super.userEventTriggered(ctx, evt); } @@ -268,6 +290,7 @@ public void fireDiscovered(Configuration c) { public SendRequestContext sendRequest(T1 packet) { return new DefaultSendRequestContext<>(handler -> { logger.trace("Adding Response Handler ..."); + handler.setTimeoutHandle(createTimeout(handler)); registeredHandlers.add(handler); }, packet, this); } @@ -276,6 +299,7 @@ public SendRequestContext sendRequest(T1 packet) { public ExpectRequestContext expectRequest(Class clazz, Duration timeout) { return new DefaultExpectRequestContext<>(handler -> { logger.trace("Adding Request Handler ..."); + handler.setTimeoutHandle(createTimeout(handler)); registeredHandlers.add(handler); }, clazz, timeout, this); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java index dbbabb51e80..cf7bf458113 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java @@ -18,6 +18,7 @@ */ package org.apache.plc4x.java.spi; +import io.netty.util.Timer; import org.apache.commons.lang3.NotImplementedException; import org.apache.plc4x.java.api.messages.*; import org.apache.plc4x.java.spi.context.DriverContext; @@ -28,6 +29,8 @@ public abstract class Plc4xProtocolBase { protected ConversationContext context; + protected Timer timer; + protected DriverContext driverContext; public void setDriverContext(DriverContext driverContext) { @@ -42,6 +45,10 @@ public void setContext(ConversationContext context) { this.context = context; } + public void setTimer(Timer timer) { + this.timer = timer; + } + public void onConnect(ConversationContext context) { // Intentionally do nothing here } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java index cd034bda35d..69801c3908f 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java @@ -21,10 +21,11 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelPipeline; +import io.netty.util.Timer; import org.apache.plc4x.java.api.exceptions.PlcConnectionException; public interface ChannelFactory { - + Timer getTimer(); Channel createChannel(ChannelHandler channelHandler) throws PlcConnectionException; boolean isPassive(); diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java index 7e301043182..e2221492d0b 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java @@ -28,6 +28,7 @@ import org.apache.plc4x.java.api.listener.ConnectionStateListener; import org.apache.plc4x.java.api.listener.EventListener; import org.apache.plc4x.java.api.value.PlcValueHandler; +import org.apache.plc4x.java.spi.Plc4xProtocolBase; import org.apache.plc4x.java.spi.configuration.Configuration; import org.apache.plc4x.java.spi.configuration.ConfigurationFactory; import org.apache.plc4x.java.spi.events.*; @@ -123,6 +124,7 @@ public void connect() throws PlcConnectionException { channel = channelFactory.createChannel(getChannelHandler(sessionSetupCompleteFuture, sessionDisconnectCompleteFuture, sessionDiscoveredCompleteFuture)); channel.closeFuture().addListener(future -> { if (!sessionSetupCompleteFuture.isDone()) { + channel.pipeline().fireUserEventTriggered(new CloseConnectionEvent()); sessionSetupCompleteFuture.completeExceptionally( new PlcIoException("Connection terminated by remote")); } @@ -152,6 +154,11 @@ public void connect() throws PlcConnectionException { */ @Override public void close() throws PlcConnectionException { + if(channel == null) + { + connected = false; + return; + } logger.debug("Closing connection to PLC, await for disconnect = {}", awaitSessionDisconnectComplete); channel.pipeline().fireUserEventTriggered(new DisconnectEvent()); try { @@ -212,22 +219,45 @@ public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exc } else if (evt instanceof DisconnectedEvent) { sessionDisconnectCompleteFuture.complete(null); eventListeners.forEach(ConnectionStateListener::disconnected); + super.userEventTriggered(ctx, evt); } else if (evt instanceof DiscoveredEvent) { sessionDiscoverCompleteFuture.complete(((DiscoveredEvent) evt).getConfiguration()); + } else if (evt instanceof ConnectEvent) { + if (!sessionSetupCompleteFuture.isCompletedExceptionally()) { + if (awaitSessionSetupComplete) { + setProtocol(stackConfigurer.configurePipeline(configuration, pipeline, getAuthentication(), + channelFactory.isPassive())); + } + super.userEventTriggered(ctx, evt); + } } else { super.userEventTriggered(ctx, evt); } } }); + pipeline.addLast(new ChannelInboundHandlerAdapter() { + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws PlcConnectionException { + logger.error("unknown error, close the connection", cause); + close(); + } + } + ); // Initialize via Transport Layer channelFactory.initializePipeline(pipeline); // Initialize Protocol Layer - setProtocol(stackConfigurer.configurePipeline(configuration, pipeline, getAuthentication(), - channelFactory.isPassive())); + if (!awaitSessionSetupComplete) { + setProtocol(stackConfigurer.configurePipeline(configuration, pipeline, getAuthentication(), + channelFactory.isPassive())); + } } }; } - + @Override + public void setProtocol(Plc4xProtocolBase protocol) { + super.setProtocol(protocol); + protocol.setTimer(channelFactory.getTimer()); + } protected void sendChannelCreatedEvent() { logger.trace("Channel was created, firing ChannelCreated Event"); // Send an event to the pipeline telling the Protocol filters what's going on. diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java index 8c9d6f91289..8220ae60d18 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java @@ -24,6 +24,8 @@ import io.netty.channel.ChannelHandler; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.util.HashedWheelTimer; +import io.netty.util.Timer; import org.apache.plc4x.java.api.exceptions.PlcConnectionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,6 +44,14 @@ public abstract class NettyChannelFactory implements ChannelFactory { private static final Logger logger = LoggerFactory.getLogger(NettyChannelFactory.class); + protected static HashedWheelTimer timer = new HashedWheelTimer(); + @Override + public Timer getTimer(){ + if(timer==null){ + timer = new HashedWheelTimer(); + } + return timer; + } private final Map eventLoops = new ConcurrentHashMap<>(); /** @@ -151,6 +161,8 @@ public void closeEventLoopForChannel(Channel channel) { EventLoopGroup eventExecutors = eventLoops.get(channel); eventLoops.remove(channel); eventExecutors.shutdownGracefully().awaitUninterruptibly(); + timer.stop(); + timer = null; logger.info("Worker Group was closed successfully!"); } else { logger.warn("Trying to remove EventLoop for Channel {} but have none stored", channel); diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java index 9f918cdc81b..2c28e8608bb 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java @@ -45,10 +45,12 @@ public WriteBufferByteBased(int size, ByteOrder byteOrder) { this.byteOrder = byteOrder; } + @Override public ByteOrder getByteOrder() { return byteOrder; } + @Override public void setByteOrder(ByteOrder byteOrder) { this.byteOrder = byteOrder; } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java index 7dc9216d8b5..bef8bc6f07e 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java @@ -18,13 +18,12 @@ */ package org.apache.plc4x.java.spi.internal; +import io.netty.util.Timeout; import io.vavr.control.Either; import java.time.Duration; -import java.time.Instant; import java.util.Deque; import java.util.concurrent.TimeoutException; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; @@ -46,7 +45,7 @@ public class HandlerRegistration { private final BiConsumer errorConsumer; private final Duration timeout; - private final Instant timeoutAt; + private Timeout timeoutHandle; private volatile boolean cancelled = false; private volatile boolean handled = false; @@ -58,7 +57,6 @@ public HandlerRegistration(Deque, Predicate>> commands, this.onTimeoutConsumer = onTimeoutConsumer; this.errorConsumer = errorConsumer; this.timeout = timeout; - this.timeoutAt = Instant.now().plus(timeout); } public Deque, Predicate>> getCommands() { @@ -85,8 +83,12 @@ public Duration getTimeout() { return timeout; } - public Instant getTimeoutAt() { - return timeoutAt; + public void setTimeoutHandle(Timeout timeoutHandle) { + this.timeoutHandle = timeoutHandle; + } + + public Timeout getTimeoutHandle() { + return timeoutHandle; } public void cancel() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java index 2a5b2953e47..91f2605b672 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java @@ -27,6 +27,7 @@ import org.apache.plc4x.java.api.messages.PlcWriteRequest; import org.apache.plc4x.java.api.messages.PlcWriteResponse; import org.apache.plc4x.java.api.model.PlcTag; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.codegen.WithOption; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -93,6 +94,7 @@ public List getTags() { return tags.values().stream().map(TagValueItem::getTag).collect(Collectors.toCollection(LinkedList::new)); } + @Override @JsonIgnore public PlcValue getPlcValue(String name) { return tags.get(name).getValue(); @@ -194,6 +196,9 @@ public PlcWriteRequest build() { PlcTag tag = tagValues.getLeft().get(); Object[] value = tagValues.getRight(); PlcValue plcValue = valueHandler.newPlcValue(tag, value); + if(tag.getPlcValueType()== PlcValueType.NULL){ + tag.setPlcValueType(plcValue.getPlcValueType()); + } parsedTags.put(name, new TagValueItem(tag, plcValue)); }); return new DefaultPlcWriteRequest(writer, parsedTags); diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java index 8d4f3d41f5f..9fb29c02469 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java @@ -59,7 +59,7 @@ public PlcValueType getPlcValueType() { public List getArrayInfo() { return plcTag.getArrayInfo(); } - + @Override public PlcSubscriptionType getPlcSubscriptionType() { return plcSubscriptionType; } @@ -67,7 +67,7 @@ public PlcSubscriptionType getPlcSubscriptionType() { public PlcTag getTag() { return plcTag; } - + @Override public Optional getDuration() { return Optional.ofNullable(duration); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java index 3592ff2e552..4fba0210757 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java @@ -18,21 +18,16 @@ */ package org.apache.plc4x.java.spi.transaction; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.slf4j.MDC; import java.util.Objects; import java.util.Queue; import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; +import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; -import org.apache.commons.lang3.concurrent.BasicThreadFactory; /** * This is a limited Queue of Requests, a Protocol can use. @@ -49,25 +44,23 @@ public class RequestTransactionManager { private static final Logger logger = LoggerFactory.getLogger(RequestTransactionManager.class); /** Executor that performs all operations */ - //static final ExecutorService executor = Executors.newScheduledThreadPool(4); - - final ExecutorService executor = Executors.newFixedThreadPool(4, new BasicThreadFactory.Builder() - .namingPattern("plc4x-tm-thread-%d") - .daemon(true) - .priority(Thread.MAX_PRIORITY) - .build()); - + private final ExecutorService executor; private final Set runningRequests; /** How many Transactions are allowed to run at the same time? */ private int numberOfConcurrentRequests; /** Assigns each request a Unique Transaction Id, especially important for failure handling */ - private AtomicInteger transactionId = new AtomicInteger(0); + private final AtomicInteger transactionId = new AtomicInteger(0); /** Important, this is a FIFO Queue for Fairness! */ - private Queue workLog = new ConcurrentLinkedQueue<>(); + private final Queue workLog = new ConcurrentLinkedQueue<>(); public RequestTransactionManager(int numberOfConcurrentRequests) { this.numberOfConcurrentRequests = numberOfConcurrentRequests; // Immutable Map + executor = new ThreadPoolExecutor(0, numberOfConcurrentRequests, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue<>(1024), + new BasicThreadFactory.Builder().namingPattern("RequestTransactionManager-pool-%d").daemon(true).build(), + new ThreadPoolExecutor.AbortPolicy());; runningRequests = ConcurrentHashMap.newKeySet(); } @@ -91,13 +84,13 @@ public void setNumberOfConcurrentRequests(int numberOfConcurrentRequests) { // As we might have increased the number, try to send some more requests. processWorklog(); } - + /* * It allows the sequential shutdown of the associated driver. */ public void shutdown(){ executor.shutdown(); - } + } public void submit(Consumer context) { RequestTransaction transaction = startRequest(); @@ -114,7 +107,7 @@ void submit(RequestTransaction handle) { processWorklog(); } - private void processWorklog() { + private synchronized void processWorklog() { while (runningRequests.size() < getNumberOfConcurrentRequests() && !workLog.isEmpty()) { RequestTransaction next = workLog.poll(); if (next != null) { @@ -219,11 +212,11 @@ public TransactionOperation(int transactionId, Runnable delegate) { this.delegate = delegate; } - //TODO: Check MDC used. Created exception in Hop application + //TODO: Check MDC used. Created exception in Hop application @Override public void run() { //try (final MDC.MDCCloseable closeable = MDC.putCloseable("plc4x.transactionId", Integer.toString(transactionId))) { - try{ + try{ logger.trace("Start execution of transaction {}", transactionId); delegate.run(); logger.trace("Completed execution of transaction {}", transactionId); diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java index ed8e9b4b7fd..6ebac628224 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java @@ -56,6 +56,8 @@ public static PlcBOOL of(Object value) { return new PlcBOOL((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcBOOL((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcBOOL(((Number) value).intValue()); } else { return new PlcBOOL((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java index c950f4cc76a..0f5b0ddff02 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java @@ -57,6 +57,8 @@ public static PlcBYTE of(Object value) { return new PlcBYTE((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcBYTE((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcBYTE(((Number) value).intValue()); } else { return new PlcBYTE((String) value); } @@ -69,9 +71,9 @@ public PlcBYTE(Boolean value) { } public PlcBYTE(Byte value) { - if ((value < minValue) || (value > maxValue)) { - throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); - } + //if ((value < minValue) || (value > maxValue)) { + // throw new PlcInvalidFieldException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); + //} this.value = value.shortValue(); this.isNullable = false; } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java index 54da8290b86..317633c8f5f 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java @@ -58,6 +58,8 @@ public static PlcCHAR of(Object value) { return new PlcCHAR((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcCHAR((BigDecimal) value); + } else if (value instanceof Character) { + return new PlcCHAR((Character) value); } else { return new PlcCHAR((String) value); } @@ -72,92 +74,128 @@ public PlcCHAR(Boolean value) { public PlcCHAR(Character value) { super(); Integer val = (int) value; + this.value = val.shortValue(); + this.isNullable = false; + /* if ((val >= minValue) && (val <= maxValue)) { this.value = val.shortValue(); this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(Byte value) { super(); + this.value = value.shortValue(); + this.isNullable = false; + /* if ((value >= minValue) && (value <= maxValue)) { this.value = value.shortValue(); this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(Short value) { super(); + this.value = value; + this.isNullable = false; + /* if ((value >= minValue) && (value <= maxValue)) { this.value = value; this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(Integer value) { super(); + this.value = value.shortValue(); + this.isNullable = false; + /* if ((value >= minValue) && (value <= maxValue)) { this.value = value.shortValue(); this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(Long value) { super(); + this.value = value.shortValue(); + this.isNullable = false; + /* if ((value >= minValue) && (value <= maxValue)) { this.value = value.shortValue(); this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(Float value) { super(); + this.value = value.shortValue(); + this.isNullable = false; + /* if ((value >= minValue) && (value <= maxValue) && (value % 1 == 0)) { this.value = value.shortValue(); this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(Double value) { super(); + this.value = value.shortValue(); + this.isNullable = false; + /* if ((value >= minValue) && (value <= maxValue) && (value % 1 == 0)) { this.value = value.shortValue(); this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(BigInteger value) { super(); + this.value = value.shortValue(); + this.isNullable = true; + /* if ((value.compareTo(BigInteger.valueOf(minValue)) >= 0) && (value.compareTo(BigInteger.valueOf(maxValue)) <= 0)) { this.value = value.shortValue(); this.isNullable = true; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(BigDecimal value) { super(); + this.value = value.shortValue(); + this.isNullable = true; + /* if ((value.compareTo(BigDecimal.valueOf(minValue)) >= 0) && (value.compareTo(BigDecimal.valueOf(maxValue)) <= 0) && (value.scale() <= 0)) { this.value = value.shortValue(); this.isNullable = true; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } public PlcCHAR(String value) { @@ -169,12 +207,15 @@ public PlcCHAR(String value) { s = " "; } short val = (short) s.charAt(0); + this.isNullable = false; + /* if ((val >= minValue) && (val <= maxValue)) { this.value = val; this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } catch (Exception e) { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } @@ -183,12 +224,16 @@ public PlcCHAR(String value) { @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) public PlcCHAR(@JsonProperty("value") short value) { super(); + this.value = value; + this.isNullable = false; + /* if ((value >= minValue) && (value <= maxValue)) { this.value = value; this.isNullable = false; } else { throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName())); } + */ } @Override diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java index 03863dd3b07..3498ee73fe8 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java @@ -30,6 +30,8 @@ import java.nio.charset.StandardCharsets; import java.time.*; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") public class PlcDATE_AND_TIME extends PlcSimpleValue { @@ -41,6 +43,37 @@ public static PlcDATE_AND_TIME of(Object value) { return new PlcDATE_AND_TIME(LocalDateTime.ofInstant( Instant.ofEpochSecond((long) value), ZoneId.systemDefault())); } + if (value instanceof Instant) { + return new PlcDATE_AND_TIME(((Instant) value).toEpochMilli()); + } + if (value instanceof LocalDate) { + return new PlcDATE_AND_TIME(((LocalDate) value).atStartOfDay(ZoneId.of("UTC")).toLocalDateTime()); + } else if (value instanceof String) { + String strValue = (String) value; + LocalDateTime date; + try { + date = LocalDateTime.parse(strValue); + } catch (DateTimeParseException e) { + try { + date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } catch (DateTimeParseException e1) { + try { + date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss")); + } catch (DateTimeParseException e2) { + try { + date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } catch (DateTimeParseException e3) { + try { + date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + } catch (DateTimeParseException e4) { + date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyyMMdd")); + } + } + } + } + } + return new PlcDATE_AND_TIME(date); + } throw new PlcRuntimeException("Invalid value type"); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java index 5bedf773f18..8f689d9731e 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java @@ -56,6 +56,8 @@ public static PlcDINT of(Object value) { return new PlcDINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcDINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcDINT(((Number) value).intValue()); } else { return new PlcDINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java index b3649f686c9..94b973d37a0 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java @@ -57,6 +57,8 @@ public static PlcDWORD of(Object value) { return new PlcDWORD((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcDWORD((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcDWORD(((Number) value).longValue()); } else { return new PlcDWORD((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java index eafd49ba482..1286f40c0dc 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java @@ -56,6 +56,8 @@ public static PlcINT of(Object value) { return new PlcINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcINT(((Number) value).intValue()); } else { return new PlcINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java index dcdea8c6de6..1f787b7fe8d 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java @@ -56,6 +56,8 @@ public static PlcLINT of(Object value) { return new PlcLINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcLINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcLINT(((Number) value).intValue()); } else { return new PlcLINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java index 23d6cc8f75c..2938b02939a 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java @@ -56,6 +56,8 @@ public static PlcLREAL of(Object value) { return new PlcLREAL((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcLREAL((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcLREAL(((Number) value).doubleValue()); } else { return new PlcLREAL((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java index 60502992cea..2cecf53ac08 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java @@ -28,9 +28,12 @@ import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; +import java.math.BigDecimal; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.time.Duration; +import java.time.Period; +import java.time.format.DateTimeParseException; import java.time.temporal.ChronoUnit; @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") @@ -46,6 +49,19 @@ public static PlcLTIME of(Object value) { } else if(value instanceof BigInteger) { // TODO: Not 100% correct, we're loosing precision here return new PlcLTIME(Duration.of(((BigInteger) value).longValue(), ChronoUnit.NANOS)); + } else if (value instanceof Number) { + return new PlcLTIME(((Number) value).longValue()); + } else if (value instanceof String) { + try { + return new PlcLTIME(Duration.parse((String) value)); + } catch (DateTimeParseException e) { + try { + return new PlcLTIME(Period.parse((String) value).get(ChronoUnit.NANOS)); + }catch (DateTimeParseException e1) + { + return new PlcLTIME(new BigDecimal((String) value).longValue()); + } + } } throw new PlcRuntimeException("Invalid value type"); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java index e4959ec3c91..c5c941853a2 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java @@ -55,6 +55,8 @@ public static PlcLWORD of(Object value) { return new PlcLWORD((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcLWORD((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcLWORD(((Number) value).longValue()); } else { return new PlcLWORD((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java index 96c067d467b..99842a9ae59 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java @@ -56,6 +56,8 @@ public static PlcSINT of(Object value) { return new PlcSINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcSINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcSINT(((Number) value).longValue()); } else { return new PlcSINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java index 23fb48004ee..90482c3b9ae 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java @@ -28,8 +28,11 @@ import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; +import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.time.Duration; +import java.time.Period; +import java.time.format.DateTimeParseException; import java.time.temporal.ChronoUnit; @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") @@ -42,6 +45,19 @@ public static PlcTIME of(Object value) { return new PlcTIME(Duration.of((long) value, ChronoUnit.MILLIS)); } else if (value instanceof Long) { return new PlcTIME(Duration.of((long) value, ChronoUnit.MILLIS)); + } else if (value instanceof Number) { + return new PlcTIME(((Number) value).longValue()); + } else if (value instanceof String) { + try { + return new PlcTIME(Duration.parse((String) value)); + } catch (DateTimeParseException e) { + try { + return new PlcTIME(Period.parse((String) value).get(ChronoUnit.MILLIS)); + }catch (DateTimeParseException e1) + { + return new PlcTIME(new BigDecimal((String) value).longValue()); + } + } } throw new PlcRuntimeException("Invalid value type"); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java index 17aae62d540..551d511b661 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java @@ -29,7 +29,9 @@ import org.apache.plc4x.java.spi.generation.WriteBuffer; import java.nio.charset.StandardCharsets; +import java.time.Instant; import java.time.LocalTime; +import java.time.ZoneId; @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") public class PlcTIME_OF_DAY extends PlcSimpleValue { @@ -39,6 +41,8 @@ public static PlcTIME_OF_DAY of(Object value) { return new PlcTIME_OF_DAY((LocalTime) value); } else if(value instanceof Long) { return new PlcTIME_OF_DAY((Long) value); + } else if (value instanceof Number) { + return new PlcTIME_OF_DAY(((Number) value).longValue()); } throw new PlcRuntimeException("Invalid value type"); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java index e93a1cc45ff..2eb2ec45da3 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java @@ -56,6 +56,8 @@ public static PlcUDINT of(Object value) { return new PlcUDINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcUDINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcUDINT(((Number) value).longValue()); } else { return new PlcUDINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java index e1561e004f7..6e43ca5732d 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java @@ -56,6 +56,8 @@ public static PlcUINT of(Object value) { return new PlcUINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcUINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcUINT(((Number) value).longValue()); } else { return new PlcUINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java index 8a951fb7749..f24daba8752 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java @@ -54,6 +54,8 @@ public static PlcULINT of(Object value) { return new PlcULINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcULINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcULINT(((Number) value).longValue()); } else { return new PlcULINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java index 6a5a076e2ad..ab4cf79e9d7 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java @@ -56,6 +56,8 @@ public static PlcUSINT of(Object value) { return new PlcUSINT((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcUSINT((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcUSINT(((Number) value).intValue()); } else { return new PlcUSINT((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java index d1691f051bf..1d22cc43526 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java @@ -18,17 +18,23 @@ */ package org.apache.plc4x.java.spi.values; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.plc4x.java.api.exceptions.PlcInvalidTagException; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; import org.apache.plc4x.java.api.exceptions.PlcUnsupportedDataTypeException; import org.apache.plc4x.java.api.model.PlcTag; import org.apache.plc4x.java.api.value.PlcValue; +import java.math.BigDecimal; import java.math.BigInteger; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.util.Arrays; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValueHandler { @@ -58,6 +64,15 @@ public static PlcValue of(List value) { public static PlcValue of(Object[] values) { if (values.length != 1) { + Object vo = ((Object[]) values)[0]; + if (vo instanceof PlcCHAR) { + String v = Arrays.stream(values).map(Objects::toString).collect(Collectors.joining()); + return PlcSTRING.of(v); + } + if (vo instanceof PlcWCHAR) { + String v = Arrays.stream(values).map(Objects::toString).collect(Collectors.joining()); + return PlcSTRING.of(v); + } PlcList list = new PlcList(); for (Object value : values) { list.add(of(new Object[]{value})); @@ -83,6 +98,16 @@ public static PlcValue of(Object[] values) { if (value instanceof Long) { return PlcLINT.of(value); } + if (value instanceof BigInteger) { + try { + return new PlcLINT((BigInteger) value); + }catch (PlcInvalidTagException e) { + return new PlcULINT((BigInteger) value); + } + } + if (value instanceof BigDecimal) { + return new PlcLINT((BigDecimal) value); + } if (value instanceof Float) { return PlcREAL.of(value); } @@ -116,13 +141,12 @@ public static PlcValue of(PlcTag tag, Object value) { return of(tag, new Object[]{value}); } - public static PlcValue of(PlcTag tag, Object[] values) { if (values.length == 1) { Object value = values[0]; - if(tag.getPlcValueType() == null) { + if (tag.getPlcValueType() == null) { // TODO: This is a hacky shortcut .. - if(value instanceof PlcValue) { + if (value instanceof PlcValue) { return (PlcValue) value; } return new PlcNull(); @@ -131,16 +155,14 @@ public static PlcValue of(PlcTag tag, Object[] values) { case BOOL: return PlcBOOL.of(value); case BYTE: - if(value instanceof Short) { - return new PlcBYTE((short) value); - } else if(value instanceof Integer) { - return new PlcBYTE(((Integer) value).shortValue()); - } else if(value instanceof Long) { - return new PlcBYTE(((Long) value).shortValue()); - } else if(value instanceof BigInteger) { - return new PlcBYTE(((BigInteger) value).shortValue()); + if (tag.getNumberOfElements() > 1) { + if (value instanceof byte[]) { + return of(tag, ArrayUtils.toObject((byte[]) value)); + } else if (value instanceof String && ((String) value).contains(",")) { + return of(tag, stringToByteArray((String) value)); + } } - throw new PlcRuntimeException("BYTE requires short"); + return PlcBYTE.of(value); case SINT: return PlcSINT.of(value); case USINT: @@ -150,13 +172,13 @@ public static PlcValue of(PlcTag tag, Object[] values) { case UINT: return PlcUINT.of(value); case WORD: - if(value instanceof Short) { + if (value instanceof Short) { return new PlcWORD((int) value); - } else if(value instanceof Integer) { + } else if (value instanceof Integer) { return new PlcWORD((int) value); - } else if(value instanceof Long) { + } else if (value instanceof Long) { return new PlcWORD(((Long) value).intValue()); - } else if(value instanceof BigInteger) { + } else if (value instanceof BigInteger) { return new PlcWORD(((BigInteger) value).intValue()); } throw new PlcRuntimeException("WORD requires int"); @@ -165,13 +187,13 @@ public static PlcValue of(PlcTag tag, Object[] values) { case UDINT: return PlcUDINT.of(value); case DWORD: - if(value instanceof Short) { + if (value instanceof Short) { return new PlcDWORD((long) value); - } else if(value instanceof Integer) { + } else if (value instanceof Integer) { return new PlcDWORD((long) value); - } else if(value instanceof Long) { + } else if (value instanceof Long) { return new PlcDWORD((long) value); - } else if(value instanceof BigInteger) { + } else if (value instanceof BigInteger) { return new PlcDWORD(((BigInteger) value).longValue()); } throw new PlcRuntimeException("DWORD requires long"); @@ -180,13 +202,13 @@ public static PlcValue of(PlcTag tag, Object[] values) { case ULINT: return PlcULINT.of(value); case LWORD: - if(value instanceof Short) { + if (value instanceof Short) { return new PlcLWORD(BigInteger.valueOf((long) value)); - } else if(value instanceof Integer) { + } else if (value instanceof Integer) { return new PlcLWORD(BigInteger.valueOf((long) value)); - } else if(value instanceof Long) { + } else if (value instanceof Long) { return new PlcLWORD(BigInteger.valueOf((long) value)); - } else if(value instanceof BigInteger) { + } else if (value instanceof BigInteger) { return new PlcLWORD((BigInteger) value); } throw new PlcRuntimeException("LWORD requires BigInteger"); @@ -225,4 +247,15 @@ public static PlcValue of(PlcTag tag, Object[] values) { public static PlcValue customDataType(Object[] values) { return of(values); } + + private static byte[] stringToByteArray(String stringBytes) { + String[] byteValues = stringBytes.substring(1, stringBytes.length() - 1).split(","); + byte[] bytes = new byte[byteValues.length]; + + for (int i = 0, len = bytes.length; i < len; i++) { + int intvalue = Integer.parseInt(byteValues[i].trim()); + bytes[i] = (byte) (intvalue & 0xff); + } + return bytes; + } } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java index 927cc2b3482..9bfabd9e90c 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java @@ -58,6 +58,8 @@ public static PlcWCHAR of(Object value) { return new PlcWCHAR((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcWCHAR((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcWCHAR(((Number) value).intValue()); } else { return new PlcWCHAR((String) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java index dcebcb8e8da..b4ace8ebc0f 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java @@ -57,6 +57,8 @@ public static PlcWORD of(Object value) { return new PlcWORD((BigInteger) value); } else if (value instanceof BigDecimal) { return new PlcWORD((BigDecimal) value); + } else if (value instanceof Number) { + return new PlcWORD(((Number) value).longValue()); } else { return new PlcWORD((String) value); } diff --git a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java index 3b360c3b918..4ac51ce8e9a 100644 --- a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java +++ b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java @@ -90,8 +90,8 @@ void conversationTimeoutTest() throws Exception { Thread.sleep(750); - verify(false, false, false); - wrapper.decode(channelHandlerContext, new Date(), new ArrayList<>()); + //verify(false, false, false); + //wrapper.decode(channelHandlerContext, new Date(), new ArrayList<>()); verify(true, false, false); } diff --git a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java index 186b358ce03..a8aabcc76d0 100644 --- a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java +++ b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java @@ -27,7 +27,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.assertTrue; public class RequestTransactionManagerTest { @@ -124,11 +124,10 @@ public void version2() throws ExecutionException, InterruptedException { } @Test - @Disabled("This test is randomly failing on Jenkins") + //@Disabled("This test is randomly failing on Jenkins") public void abortTransactionFromExternally() throws ExecutionException, InterruptedException { CompletableFuture sendRequest = new CompletableFuture<>(); CompletableFuture receiveResponse = new CompletableFuture<>(); - CompletableFuture transactionIsFinished = new CompletableFuture<>(); RequestTransactionManager tm = new RequestTransactionManager(); RequestTransactionManager.RequestTransaction handle = tm.startRequest(); @@ -136,10 +135,16 @@ public void abortTransactionFromExternally() throws ExecutionException, Interrup // ... sendRequest.complete(null); // Receive - receiveResponse.thenAccept((n) -> { - handle.endRequest(); - transactionIsFinished.complete(null); + receiveResponse.whenComplete((n,e) -> { + // never execute + fail(); }); + //Wait that the fail is handled internally surely and then interrupt this block execute + try { + receiveResponse.get(); + } catch (Exception e) { + assertInstanceOf(InterruptedException.class,e); + } }); // Assert that there is a request going on @@ -149,13 +154,14 @@ public void abortTransactionFromExternally() throws ExecutionException, Interrup handle.failRequest(new RuntimeException()); // Wait that the fail is handled internally surely - Thread.sleep(100); + //Thread.sleep(100); // Assert that no requests are active assertEquals(0, tm.getNumberOfActiveRequests()); // Assert that its cancelled assertTrue(handle.getCompletionFuture().isCancelled()); + assertFalse(receiveResponse.isDone()); } private void sendRequest(RequestTransactionManager tm, CompletableFuture sendRequest, CompletableFuture endRequest, CompletableFuture requestIsEnded) { diff --git a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java index 650d976c854..ae30a14d4ca 100644 --- a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java +++ b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java @@ -21,6 +21,7 @@ import org.apache.plc4x.java.DefaultPlcDriverManager; import org.apache.plc4x.java.api.PlcConnection; import org.apache.plc4x.java.api.PlcConnectionManager; +import org.apache.plc4x.java.api.PlcDriverManager; import org.apache.plc4x.java.api.authentication.PlcAuthentication; import org.apache.plc4x.java.api.exceptions.PlcConnectionException; import org.slf4j.Logger; @@ -58,17 +59,26 @@ public CachedPlcConnectionManager(PlcConnectionManager connectionManager, Durati this.connectionContainers = new HashMap<>(); } + @Override public PlcConnection getConnection(String url) throws PlcConnectionException { + return getConnection(url,null); + } + + @Override + public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException { ConnectionContainer connectionContainer; synchronized (connectionContainers) { connectionContainer = connectionContainers.get(url); - if (connectionContainers.get(url) == null) { + if (connectionContainer == null) { LOG.debug("Creating new connection"); // Establish the real connection to the plc - PlcConnection connection = connectionManager.getConnection(url); - - // Crate a connection container to manage handling this connection + PlcConnection connection; + if(authentication!=null) { + connection = connectionManager.getConnection(url,authentication); + } else{ + connection = connectionManager.getConnection(url); + } connectionContainer = new ConnectionContainer(connection, maxLeaseTime); connectionContainers.put(url, connectionContainer); } else { @@ -85,8 +95,9 @@ public PlcConnection getConnection(String url) throws PlcConnectionException { } } - public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException { - throw new PlcConnectionException("the cached driver manager currently doesn't support authentication"); + @Override + public PlcDriverManager getDriverManager() { + return connectionManager.getDriverManager(); } public static class Builder { diff --git a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java index 662dd294c46..7dcbd42d64c 100644 --- a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java +++ b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java @@ -34,13 +34,13 @@ public class LeasedPlcConnection implements PlcConnection { - private final ConnectionContainer connectionContainer; + private ConnectionContainer connectionContainer; private PlcConnection connection; - + private Timer usageTimer; public LeasedPlcConnection(ConnectionContainer connectionContainer, PlcConnection connection, Duration maxUseTime) { this.connectionContainer = connectionContainer; this.connection = connection; - Timer usageTimer = new Timer(); + usageTimer = new Timer(); usageTimer.schedule(new TimerTask() { @Override public void run() { @@ -51,11 +51,18 @@ public void run() { @Override public synchronized void close() { - // Make the connection unusable. - connection = null; - + if(usageTimer != null){ + usageTimer.cancel(); + usageTimer = null; + } + if(connectionContainer == null) { + return; + } // Tell the connection container that the connection is free to be reused. connectionContainer.returnConnection(this); + // Make the connection unusable. + connection = null; + connectionContainer = null; } @Override diff --git a/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java b/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java index 6d856ea4487..07c90775b62 100644 --- a/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java +++ b/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java @@ -158,6 +158,24 @@ public static PlcValue staticParse(ReadBuffer readBuffer, Plc4xValueType valueTy String value = /*TODO: migrate me*/ /*TODO: migrate me*/ readBuffer.readString("", 16, WithOption.WithEncoding("UTF-16")); + return new PlcSTRING(value); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING + + // Manual Field (value) + String value = + (String) + (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString( + readBuffer, "UTF-8")); + + return new PlcSTRING(value); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING + + // Manual Field (value) + String value = + (String) + (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString( + readBuffer, "UTF-16")); + return new PlcSTRING(value); } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME @@ -325,6 +343,14 @@ public static void staticSerialize( /*TODO: migrate me*/ /*TODO: migrate me*/ writeBuffer.writeString( "", 16, (String) (value), WithOption.WithEncoding("UTF-16")); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING + // Manual Field (value) + org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString( + writeBuffer, _value, "UTF-8"); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING + // Manual Field (value) + org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString( + writeBuffer, _value, "UTF-16"); } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME // Simple Field (milliseconds) long milliseconds = (long) _value.getLong(); @@ -436,6 +462,12 @@ public static int getLengthInBits(PlcValue _value, Plc4xValueType valueType) { } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WCHAR)) { // STRING // Simple Field (value) sizeInBits += 16; + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING + // Manual Field (value) + sizeInBits += (((STR_LEN(_value)) + (1))) * (8); + } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING + // Manual Field (value) + sizeInBits += (((STR_LEN(_value)) + (1))) * (16); } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME // Simple Field (milliseconds) sizeInBits += 32; diff --git a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java new file mode 100644 index 00000000000..6ef16fd01cb --- /dev/null +++ b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java @@ -0,0 +1,94 @@ +/* + * 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 + * + * https://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 org.apache.plc4x.java.plc4x.readwrite.utils; + +import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.value.PlcValue; +import org.apache.plc4x.java.spi.generation.ParseException; +import org.apache.plc4x.java.spi.generation.ReadBuffer; +import org.apache.plc4x.java.spi.generation.SerializationException; +import org.apache.plc4x.java.spi.generation.WriteBuffer; + +import java.nio.charset.StandardCharsets; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class StaticHelper { + + public static String parseString(ReadBuffer io, String encoding) { + try { + if ("UTF-8".equalsIgnoreCase(encoding)) { + // This is the maximum number of bytes a string can be long. + short stringLength = io.readUnsignedShort(8); + // This is the total length of the string on the PLC (Not necessarily the number of characters read) + final byte[] byteArray = new byte[stringLength]; + for (int i = 0; (i < stringLength) && io.hasMore(8); i++) { + final byte curByte = io.readByte(); + byteArray[i] = curByte; + } + return new String(byteArray, StandardCharsets.UTF_8); + } else if ("UTF-16".equalsIgnoreCase(encoding)) { + // This is the maximum number of bytes a string can be long. + int stringLength = io.readUnsignedInt(16); + final byte[] byteArray = new byte[stringLength * 2]; + for (int i = 0; (i < stringLength) && io.hasMore(16); i++) { + final short curShort = io.readShort(16); + byteArray[i * 2] = (byte) (curShort >>> 8); + byteArray[(i * 2) + 1] = (byte) (curShort & 0xFF); + } + return new String(byteArray, StandardCharsets.UTF_16); + } else { + throw new PlcRuntimeException("Unsupported string encoding " + encoding); + } + } catch (ParseException e) { + throw new PlcRuntimeException("Error parsing string", e); + } + } + public static void serializeString(WriteBuffer io, PlcValue value, String encoding) { + String valueString = value.getString(); + valueString = valueString == null ? "" : valueString; + + if ("UTF-8".equalsIgnoreCase(encoding)) { + final byte[] raw = valueString.getBytes(StandardCharsets.UTF_8); + try { + io.writeByte((byte) raw.length); + for (byte b : raw) { + io.writeByte(b); + } + } + catch (SerializationException ex) { + Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex); + } + } else if ("UTF-16".equalsIgnoreCase(encoding)) { + final byte[] raw = valueString.getBytes(StandardCharsets.UTF_16); + try { + io.writeUnsignedInt(16, raw.length); + for (int i = 0; i < raw.length; i++) { + io.writeByte( raw[i]); + } + } + catch (SerializationException ex) { + Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex); + } + } else { + throw new PlcRuntimeException("Unsupported string encoding " + encoding); + } + + } +} \ No newline at end of file diff --git a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java index 7194b24ffce..f410a2f9c90 100644 --- a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java +++ b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java @@ -57,7 +57,8 @@ public Plc4xServerAdapter() { public void channelRead(ChannelHandlerContext ctx, Object msg) { if (msg instanceof Plc4xMessage) { final Plc4xMessage plc4xMessage = (Plc4xMessage) msg; - switch (plc4xMessage.getRequestType()) { + Plc4xRequestType plc4xRequestType = plc4xMessage.getRequestType(); + switch (plc4xRequestType) { case CONNECT_REQUEST: { Plc4xConnectRequest request = (Plc4xConnectRequest) plc4xMessage; try (final PlcConnection ignored = connectionManager.getConnection(request.getConnectionString())) { @@ -169,6 +170,8 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) { ctx.writeAndFlush(response); } break; + default: + logger.error("Error executing plc4xRequestType: {}", plc4xRequestType); } } } diff --git a/plc4j/transports/pom.xml b/plc4j/transports/pom.xml index 04a8ddfb949..60fe78f266b 100644 --- a/plc4j/transports/pom.xml +++ b/plc4j/transports/pom.xml @@ -45,5 +45,19 @@ virtualcan test - + + + + org.apache.felix + maven-bundle-plugin + + + + * + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index cb1e1778632..55477ffa750 100644 --- a/pom.xml +++ b/pom.xml @@ -107,7 +107,7 @@ 4.2.0 1.4.3 - 1.70 + 1.71 1.12.22 3.22.1 @@ -475,17 +475,17 @@ org.bouncycastle - bcmail-jdk15on + bcmail-jdk18on ${bouncycastle.version} org.bouncycastle - bcpkix-jdk15on + bcpkix-jdk18on ${bouncycastle.version} org.bouncycastle - bcprov-jdk15on + bcprov-jdk18on ${bouncycastle.version} @@ -509,6 +509,16 @@ org.eclipse.milo stack-core ${milo.version} + + + org.bouncycastle + bcprov-jdk15on + + + org.bouncycastle + bcpkix-jdk15on + + org.eclipse.milo diff --git a/protocols/opcua/downloads/Opc.Ua.NodeIds.Services.csv b/protocols/opcua/downloads/Opc.Ua.NodeIds.Services.csv new file mode 100644 index 00000000000..c98a20b0834 --- /dev/null +++ b/protocols/opcua/downloads/Opc.Ua.NodeIds.Services.csv @@ -0,0 +1,1749 @@ +AccessLevelExType,15406,DataType +AccessLevelType,15031,DataType +AccessRestrictionType,95,DataType +AcknowledgeableConditionType,2881,ObjectType +ActivateSessionRequest,465,DataType +ActivateSessionRequest_Encoding_DefaultBinary,467,Object +ActivateSessionRequest_Encoding_DefaultJson,15145,Object +ActivateSessionRequest_Encoding_DefaultXml,466,Object +ActivateSessionResponse,468,DataType +ActivateSessionResponse_Encoding_DefaultBinary,470,Object +ActivateSessionResponse_Encoding_DefaultJson,15146,Object +ActivateSessionResponse_Encoding_DefaultXml,469,Object +AdditionalParametersType,16313,DataType +AdditionalParametersType_Encoding_DefaultBinary,17537,Object +AdditionalParametersType_Encoding_DefaultJson,17547,Object +AdditionalParametersType_Encoding_DefaultXml,17541,Object +AddNodesItem,376,DataType +AddNodesItem_Encoding_DefaultBinary,378,Object +AddNodesItem_Encoding_DefaultJson,15165,Object +AddNodesItem_Encoding_DefaultXml,377,Object +AddNodesRequest,486,DataType +AddNodesRequest_Encoding_DefaultBinary,488,Object +AddNodesRequest_Encoding_DefaultJson,15167,Object +AddNodesRequest_Encoding_DefaultXml,487,Object +AddNodesResponse,489,DataType +AddNodesResponse_Encoding_DefaultBinary,491,Object +AddNodesResponse_Encoding_DefaultJson,15168,Object +AddNodesResponse_Encoding_DefaultXml,490,Object +AddNodesResult,483,DataType +AddNodesResult_Encoding_DefaultBinary,485,Object +AddNodesResult_Encoding_DefaultJson,15166,Object +AddNodesResult_Encoding_DefaultXml,484,Object +AddReferencesItem,379,DataType +AddReferencesItem_Encoding_DefaultBinary,381,Object +AddReferencesItem_Encoding_DefaultJson,15169,Object +AddReferencesItem_Encoding_DefaultXml,380,Object +AddReferencesRequest,492,DataType +AddReferencesRequest_Encoding_DefaultBinary,494,Object +AddReferencesRequest_Encoding_DefaultJson,15170,Object +AddReferencesRequest_Encoding_DefaultXml,493,Object +AddReferencesResponse,495,DataType +AddReferencesResponse_Encoding_DefaultBinary,497,Object +AddReferencesResponse_Encoding_DefaultJson,15171,Object +AddReferencesResponse_Encoding_DefaultXml,496,Object +AddressSpaceFileType,11595,ObjectType +AggregateConfiguration,948,DataType +AggregateConfiguration_Encoding_DefaultBinary,950,Object +AggregateConfiguration_Encoding_DefaultJson,15304,Object +AggregateConfiguration_Encoding_DefaultXml,949,Object +AggregateConfigurationType,11187,ObjectType +AggregateFilter,728,DataType +AggregateFilter_Encoding_DefaultBinary,730,Object +AggregateFilter_Encoding_DefaultJson,15312,Object +AggregateFilter_Encoding_DefaultXml,729,Object +AggregateFilterResult,737,DataType +AggregateFilterResult_Encoding_DefaultBinary,739,Object +AggregateFilterResult_Encoding_DefaultJson,15315,Object +AggregateFilterResult_Encoding_DefaultXml,738,Object +AggregateFunction_AnnotationCount,2351,Object +AggregateFunction_Average,2342,Object +AggregateFunction_Count,2352,Object +AggregateFunction_Delta,2359,Object +AggregateFunction_DeltaBounds,11507,Object +AggregateFunction_DurationBad,2361,Object +AggregateFunction_DurationGood,2360,Object +AggregateFunction_DurationInStateNonZero,11308,Object +AggregateFunction_DurationInStateZero,11307,Object +AggregateFunction_End,2358,Object +AggregateFunction_EndBound,11506,Object +AggregateFunction_Interpolative,2341,Object +AggregateFunction_Maximum,2347,Object +AggregateFunction_Maximum2,11287,Object +AggregateFunction_MaximumActualTime,2349,Object +AggregateFunction_MaximumActualTime2,11306,Object +AggregateFunction_Minimum,2346,Object +AggregateFunction_Minimum2,11286,Object +AggregateFunction_MinimumActualTime,2348,Object +AggregateFunction_MinimumActualTime2,11305,Object +AggregateFunction_NumberOfTransitions,2355,Object +AggregateFunction_PercentBad,2363,Object +AggregateFunction_PercentGood,2362,Object +AggregateFunction_Range,2350,Object +AggregateFunction_Range2,11288,Object +AggregateFunction_StandardDeviationPopulation,11427,Object +AggregateFunction_StandardDeviationSample,11426,Object +AggregateFunction_Start,2357,Object +AggregateFunction_StartBound,11505,Object +AggregateFunction_TimeAverage,2343,Object +AggregateFunction_TimeAverage2,11285,Object +AggregateFunction_Total,2344,Object +AggregateFunction_Total2,11304,Object +AggregateFunction_VariancePopulation,11429,Object +AggregateFunction_VarianceSample,11428,Object +AggregateFunction_WorstQuality,2364,Object +AggregateFunction_WorstQuality2,11292,Object +AggregateFunctionType,2340,ObjectType +Aggregates,44,ReferenceType +AlarmConditionType,2915,ObjectType +AlarmGroupMember,16362,ReferenceType +AlarmGroupType,16405,ObjectType +AlarmMetricsType,17279,ObjectType +AlarmRateVariableType,17277,VariableType +Aliases,23470,Object +AliasFor,23469,ReferenceType +AliasNameCategoryType,23456,ObjectType +AliasNameDataType,23468,DataType +AliasNameDataType_Encoding_DefaultBinary,23499,Object +AliasNameDataType_Encoding_DefaultJson,23511,Object +AliasNameDataType_Encoding_DefaultXml,23505,Object +AliasNameType,23455,ObjectType +AllowNulls,3070,Variable +AlwaysGeneratesEvent,3065,ReferenceType +AnalogItemType,2368,VariableType +AnalogUnitRangeType,17570,VariableType +AnalogUnitType,17497,VariableType +Annotation,891,DataType +Annotation_Encoding_DefaultBinary,893,Object +Annotation_Encoding_DefaultJson,15382,Object +Annotation_Encoding_DefaultXml,892,Object +Annotations,11214,Variable +AnonymousIdentityToken,319,DataType +AnonymousIdentityToken_Encoding_DefaultBinary,321,Object +AnonymousIdentityToken_Encoding_DefaultJson,15141,Object +AnonymousIdentityToken_Encoding_DefaultXml,320,Object +ApplicationCertificateType,12557,ObjectType +ApplicationDescription,308,DataType +ApplicationDescription_Encoding_DefaultBinary,310,Object +ApplicationDescription_Encoding_DefaultJson,15087,Object +ApplicationDescription_Encoding_DefaultXml,309,Object +ApplicationInstanceCertificate,311,DataType +ApplicationType,307,DataType +Argument,296,DataType +Argument_Encoding_DefaultBinary,298,Object +Argument_Encoding_DefaultJson,15081,Object +Argument_Encoding_DefaultXml,297,Object +ArrayItemType,12021,VariableType +AttributeOperand,598,DataType +AttributeOperand_Encoding_DefaultBinary,600,Object +AttributeOperand_Encoding_DefaultJson,15209,Object +AttributeOperand_Encoding_DefaultXml,599,Object +AttributeWriteMask,347,DataType +AudioDataType,16307,DataType +AudioVariableType,17986,VariableType +AuditActivateSessionEventType,2075,ObjectType +AuditAddNodesEventType,2091,ObjectType +AuditAddReferencesEventType,2095,ObjectType +AuditCancelEventType,2078,ObjectType +AuditCertificateDataMismatchEventType,2082,ObjectType +AuditCertificateEventType,2080,ObjectType +AuditCertificateExpiredEventType,2085,ObjectType +AuditCertificateInvalidEventType,2086,ObjectType +AuditCertificateMismatchEventType,2089,ObjectType +AuditCertificateRevokedEventType,2088,ObjectType +AuditCertificateUntrustedEventType,2087,ObjectType +AuditChannelEventType,2059,ObjectType +AuditConditionAcknowledgeEventType,8944,ObjectType +AuditConditionCommentEventType,2829,ObjectType +AuditConditionConfirmEventType,8961,ObjectType +AuditConditionEnableEventType,2803,ObjectType +AuditConditionEventType,2790,ObjectType +AuditConditionOutOfServiceEventType,17259,ObjectType +AuditConditionResetEventType,15013,ObjectType +AuditConditionRespondEventType,8927,ObjectType +AuditConditionShelvingEventType,11093,ObjectType +AuditConditionSilenceEventType,17242,ObjectType +AuditConditionSuppressionEventType,17225,ObjectType +AuditCreateSessionEventType,2071,ObjectType +AuditDeleteNodesEventType,2093,ObjectType +AuditDeleteReferencesEventType,2097,ObjectType +AuditEventType,2052,ObjectType +AuditHistoryAnnotationUpdateEventType,19095,ObjectType +AuditHistoryAtTimeDeleteEventType,3019,ObjectType +AuditHistoryDeleteEventType,3012,ObjectType +AuditHistoryEventDeleteEventType,3022,ObjectType +AuditHistoryEventUpdateEventType,2999,ObjectType +AuditHistoryRawModifyDeleteEventType,3014,ObjectType +AuditHistoryUpdateEventType,2104,ObjectType +AuditHistoryValueUpdateEventType,3006,ObjectType +AuditNodeManagementEventType,2090,ObjectType +AuditOpenSecureChannelEventType,2060,ObjectType +AuditProgramTransitionEventType,11856,ObjectType +AuditSecurityEventType,2058,ObjectType +AuditSessionEventType,2069,ObjectType +AuditUpdateEventType,2099,ObjectType +AuditUpdateMethodEventType,2127,ObjectType +AuditUpdateStateEventType,2315,ObjectType +AuditUrlMismatchEventType,2748,ObjectType +AuditWriteUpdateEventType,2100,ObjectType +AuthorizationServiceConfigurationType,17852,ObjectType +AuthorizationServices,17732,Object +AuthorizationServicesConfigurationFolderType,23556,ObjectType +AxisInformation,12079,DataType +AxisInformation_Encoding_DefaultBinary,12089,Object +AxisInformation_Encoding_DefaultJson,15379,Object +AxisInformation_Encoding_DefaultXml,12081,Object +AxisScaleEnumeration,12077,DataType +BaseAnalogType,15318,VariableType +BaseConditionClassType,11163,ObjectType +BaseDataType,24,DataType +BaseDataVariableType,63,VariableType +BaseEventType,2041,ObjectType +BaseInterfaceType,17602,ObjectType +BaseModelChangeEventType,2132,ObjectType +BaseObjectType,58,ObjectType +BaseVariableType,62,VariableType +BitFieldMaskDataType,11737,DataType +Boolean,1,DataType +BrokerConnectionTransportDataType,15007,DataType +BrokerConnectionTransportDataType_Encoding_DefaultBinary,15479,Object +BrokerConnectionTransportDataType_Encoding_DefaultJson,15726,Object +BrokerConnectionTransportDataType_Encoding_DefaultXml,15579,Object +BrokerConnectionTransportType,15155,ObjectType +BrokerDataSetReaderTransportDataType,15670,DataType +BrokerDataSetReaderTransportDataType_Encoding_DefaultBinary,15733,Object +BrokerDataSetReaderTransportDataType_Encoding_DefaultJson,16526,Object +BrokerDataSetReaderTransportDataType_Encoding_DefaultXml,16023,Object +BrokerDataSetReaderTransportType,21142,ObjectType +BrokerDataSetWriterTransportDataType,15669,DataType +BrokerDataSetWriterTransportDataType_Encoding_DefaultBinary,15729,Object +BrokerDataSetWriterTransportDataType_Encoding_DefaultJson,16525,Object +BrokerDataSetWriterTransportDataType_Encoding_DefaultXml,16022,Object +BrokerDataSetWriterTransportType,21138,ObjectType +BrokerTransportQualityOfService,15008,DataType +BrokerWriterGroupTransportDataType,15667,DataType +BrokerWriterGroupTransportDataType_Encoding_DefaultBinary,15727,Object +BrokerWriterGroupTransportDataType_Encoding_DefaultJson,16524,Object +BrokerWriterGroupTransportDataType_Encoding_DefaultXml,16021,Object +BrokerWriterGroupTransportType,21136,ObjectType +BrowseDescription,514,DataType +BrowseDescription_Encoding_DefaultBinary,516,Object +BrowseDescription_Encoding_DefaultJson,15180,Object +BrowseDescription_Encoding_DefaultXml,515,Object +BrowseDirection,510,DataType +BrowseNextRequest,531,DataType +BrowseNextRequest_Encoding_DefaultBinary,533,Object +BrowseNextRequest_Encoding_DefaultJson,15186,Object +BrowseNextRequest_Encoding_DefaultXml,532,Object +BrowseNextResponse,534,DataType +BrowseNextResponse_Encoding_DefaultBinary,536,Object +BrowseNextResponse_Encoding_DefaultJson,15187,Object +BrowseNextResponse_Encoding_DefaultXml,535,Object +BrowsePath,543,DataType +BrowsePath_Encoding_DefaultBinary,545,Object +BrowsePath_Encoding_DefaultJson,15190,Object +BrowsePath_Encoding_DefaultXml,544,Object +BrowsePathResult,549,DataType +BrowsePathResult_Encoding_DefaultBinary,551,Object +BrowsePathResult_Encoding_DefaultJson,15192,Object +BrowsePathResult_Encoding_DefaultXml,550,Object +BrowsePathTarget,546,DataType +BrowsePathTarget_Encoding_DefaultBinary,548,Object +BrowsePathTarget_Encoding_DefaultJson,15191,Object +BrowsePathTarget_Encoding_DefaultXml,547,Object +BrowseRequest,525,DataType +BrowseRequest_Encoding_DefaultBinary,527,Object +BrowseRequest_Encoding_DefaultJson,15184,Object +BrowseRequest_Encoding_DefaultXml,526,Object +BrowseResponse,528,DataType +BrowseResponse_Encoding_DefaultBinary,530,Object +BrowseResponse_Encoding_DefaultJson,15185,Object +BrowseResponse_Encoding_DefaultXml,529,Object +BrowseResult,522,DataType +BrowseResult_Encoding_DefaultBinary,524,Object +BrowseResult_Encoding_DefaultJson,15183,Object +BrowseResult_Encoding_DefaultXml,523,Object +BrowseResultMask,517,DataType +BuildInfo,338,DataType +BuildInfo_Encoding_DefaultBinary,340,Object +BuildInfo_Encoding_DefaultJson,15361,Object +BuildInfo_Encoding_DefaultXml,339,Object +BuildInfoType,3051,VariableType +Byte,3,DataType +ByteString,15,DataType +CallMethodRequest,704,DataType +CallMethodRequest_Encoding_DefaultBinary,706,Object +CallMethodRequest_Encoding_DefaultJson,15289,Object +CallMethodRequest_Encoding_DefaultXml,705,Object +CallMethodResult,707,DataType +CallMethodResult_Encoding_DefaultBinary,709,Object +CallMethodResult_Encoding_DefaultJson,15290,Object +CallMethodResult_Encoding_DefaultXml,708,Object +CallRequest,710,DataType +CallRequest_Encoding_DefaultBinary,712,Object +CallRequest_Encoding_DefaultJson,15291,Object +CallRequest_Encoding_DefaultXml,711,Object +CallResponse,713,DataType +CallResponse_Encoding_DefaultBinary,715,Object +CallResponse_Encoding_DefaultJson,15292,Object +CallResponse_Encoding_DefaultXml,714,Object +CancelRequest,477,DataType +CancelRequest_Encoding_DefaultBinary,479,Object +CancelRequest_Encoding_DefaultJson,15149,Object +CancelRequest_Encoding_DefaultXml,478,Object +CancelResponse,480,DataType +CancelResponse_Encoding_DefaultBinary,482,Object +CancelResponse_Encoding_DefaultJson,15150,Object +CancelResponse_Encoding_DefaultXml,481,Object +CartesianCoordinates,18809,DataType +CartesianCoordinates_Encoding_DefaultBinary,18818,Object +CartesianCoordinates_Encoding_DefaultJson,19067,Object +CartesianCoordinates_Encoding_DefaultXml,18854,Object +CartesianCoordinatesType,18772,VariableType +CertificateExpirationAlarmType,13225,ObjectType +CertificateGroupFolderType,13813,ObjectType +CertificateGroupType,12555,ObjectType +CertificateType,12556,ObjectType +CertificateUpdatedAuditEventType,12620,ObjectType +ChannelSecurityToken,441,DataType +ChannelSecurityToken_Encoding_DefaultBinary,443,Object +ChannelSecurityToken_Encoding_DefaultJson,15131,Object +ChannelSecurityToken_Encoding_DefaultXml,442,Object +ChoiceStateType,15109,ObjectType +CloseSecureChannelRequest,450,DataType +CloseSecureChannelRequest_Encoding_DefaultBinary,452,Object +CloseSecureChannelRequest_Encoding_DefaultJson,15134,Object +CloseSecureChannelRequest_Encoding_DefaultXml,451,Object +CloseSecureChannelResponse,453,DataType +CloseSecureChannelResponse_Encoding_DefaultBinary,455,Object +CloseSecureChannelResponse_Encoding_DefaultJson,15135,Object +CloseSecureChannelResponse_Encoding_DefaultXml,454,Object +CloseSessionRequest,471,DataType +CloseSessionRequest_Encoding_DefaultBinary,473,Object +CloseSessionRequest_Encoding_DefaultJson,15147,Object +CloseSessionRequest_Encoding_DefaultXml,472,Object +CloseSessionResponse,474,DataType +CloseSessionResponse_Encoding_DefaultBinary,476,Object +CloseSessionResponse_Encoding_DefaultJson,15148,Object +CloseSessionResponse_Encoding_DefaultXml,475,Object +Communication,24227,Object +ComplexNumberType,12171,DataType +ComplexNumberType_Encoding_DefaultBinary,12181,Object +ComplexNumberType_Encoding_DefaultJson,15377,Object +ComplexNumberType_Encoding_DefaultXml,12173,Object +ConditionType,2782,ObjectType +ConditionVariableType,9002,VariableType +ConfigurationVersionDataType,14593,DataType +ConfigurationVersionDataType_Encoding_DefaultBinary,14847,Object +ConfigurationVersionDataType_Encoding_DefaultJson,15049,Object +ConfigurationVersionDataType_Encoding_DefaultXml,14803,Object +ConnectionTransportDataType,15618,DataType +ConnectionTransportDataType_Encoding_DefaultBinary,15695,Object +ConnectionTransportDataType_Encoding_DefaultJson,16282,Object +ConnectionTransportDataType_Encoding_DefaultXml,15993,Object +ConnectionTransportType,17721,ObjectType +ContentFilter,586,DataType +ContentFilter_Encoding_DefaultBinary,588,Object +ContentFilter_Encoding_DefaultJson,15205,Object +ContentFilter_Encoding_DefaultXml,587,Object +ContentFilterElement,583,DataType +ContentFilterElement_Encoding_DefaultBinary,585,Object +ContentFilterElement_Encoding_DefaultJson,15204,Object +ContentFilterElement_Encoding_DefaultXml,584,Object +ContentFilterElementResult,604,DataType +ContentFilterElementResult_Encoding_DefaultBinary,606,Object +ContentFilterElementResult_Encoding_DefaultJson,15211,Object +ContentFilterElementResult_Encoding_DefaultXml,605,Object +ContentFilterResult,607,DataType +ContentFilterResult_Encoding_DefaultBinary,609,Object +ContentFilterResult_Encoding_DefaultJson,15228,Object +ContentFilterResult_Encoding_DefaultXml,608,Object +ContinuationPoint,521,DataType +Counter,289,DataType +CreateMonitoredItemsRequest,749,DataType +CreateMonitoredItemsRequest_Encoding_DefaultBinary,751,Object +CreateMonitoredItemsRequest_Encoding_DefaultJson,15323,Object +CreateMonitoredItemsRequest_Encoding_DefaultXml,750,Object +CreateMonitoredItemsResponse,752,DataType +CreateMonitoredItemsResponse_Encoding_DefaultBinary,754,Object +CreateMonitoredItemsResponse_Encoding_DefaultJson,15324,Object +CreateMonitoredItemsResponse_Encoding_DefaultXml,753,Object +CreateSessionRequest,459,DataType +CreateSessionRequest_Encoding_DefaultBinary,461,Object +CreateSessionRequest_Encoding_DefaultJson,15138,Object +CreateSessionRequest_Encoding_DefaultXml,460,Object +CreateSessionResponse,462,DataType +CreateSessionResponse_Encoding_DefaultBinary,464,Object +CreateSessionResponse_Encoding_DefaultJson,15139,Object +CreateSessionResponse_Encoding_DefaultXml,463,Object +CreateSubscriptionRequest,785,DataType +CreateSubscriptionRequest_Encoding_DefaultBinary,787,Object +CreateSubscriptionRequest_Encoding_DefaultJson,15337,Object +CreateSubscriptionRequest_Encoding_DefaultXml,786,Object +CreateSubscriptionResponse,788,DataType +CreateSubscriptionResponse_Encoding_DefaultBinary,790,Object +CreateSubscriptionResponse_Encoding_DefaultJson,15338,Object +CreateSubscriptionResponse_Encoding_DefaultXml,789,Object +CubeItemType,12057,VariableType +CurrencyUnit,23501,Variable +CurrencyUnitType,23498,DataType +CurrencyUnitType_Encoding_DefaultBinary,23507,Object +CurrencyUnitType_Encoding_DefaultJson,23528,Object +CurrencyUnitType_Encoding_DefaultXml,23520,Object +DataChangeFilter,722,DataType +DataChangeFilter_Encoding_DefaultBinary,724,Object +DataChangeFilter_Encoding_DefaultJson,15294,Object +DataChangeFilter_Encoding_DefaultXml,723,Object +DataChangeNotification,809,DataType +DataChangeNotification_Encoding_DefaultBinary,811,Object +DataChangeNotification_Encoding_DefaultJson,15345,Object +DataChangeNotification_Encoding_DefaultXml,810,Object +DataChangeTrigger,717,DataType +DatagramConnectionTransportDataType,17467,DataType +DatagramConnectionTransportDataType_Encoding_DefaultBinary,17468,Object +DatagramConnectionTransportDataType_Encoding_DefaultJson,17476,Object +DatagramConnectionTransportDataType_Encoding_DefaultXml,17472,Object +DatagramConnectionTransportType,15064,ObjectType +DatagramWriterGroupTransportDataType,15532,DataType +DatagramWriterGroupTransportDataType_Encoding_DefaultBinary,21155,Object +DatagramWriterGroupTransportDataType_Encoding_DefaultJson,21203,Object +DatagramWriterGroupTransportDataType_Encoding_DefaultXml,21179,Object +DatagramWriterGroupTransportType,21133,ObjectType +DataItemType,2365,VariableType +DataSetFieldContentMask,15583,DataType +DataSetFieldFlags,15904,DataType +DataSetFolderType,14477,ObjectType +DataSetMetaDataType,14523,DataType +DataSetMetaDataType_Encoding_DefaultBinary,124,Object +DataSetMetaDataType_Encoding_DefaultJson,15050,Object +DataSetMetaDataType_Encoding_DefaultXml,14794,Object +DataSetOrderingType,20408,DataType +DataSetReaderDataType,15623,DataType +DataSetReaderDataType_Encoding_DefaultBinary,15703,Object +DataSetReaderDataType_Encoding_DefaultJson,16286,Object +DataSetReaderDataType_Encoding_DefaultXml,16007,Object +DataSetReaderMessageDataType,15629,DataType +DataSetReaderMessageDataType_Encoding_DefaultBinary,15706,Object +DataSetReaderMessageDataType_Encoding_DefaultJson,16288,Object +DataSetReaderMessageDataType_Encoding_DefaultXml,16009,Object +DataSetReaderMessageType,21104,ObjectType +DataSetReaderTransportDataType,15628,DataType +DataSetReaderTransportDataType_Encoding_DefaultBinary,15705,Object +DataSetReaderTransportDataType_Encoding_DefaultJson,16287,Object +DataSetReaderTransportDataType_Encoding_DefaultXml,16008,Object +DataSetReaderTransportType,15319,ObjectType +DataSetReaderType,15306,ObjectType +DataSetToWriter,14936,ReferenceType +DataSetWriterDataType,15597,DataType +DataSetWriterDataType_Encoding_DefaultBinary,15682,Object +DataSetWriterDataType_Encoding_DefaultJson,16156,Object +DataSetWriterDataType_Encoding_DefaultXml,15955,Object +DataSetWriterMessageDataType,15605,DataType +DataSetWriterMessageDataType_Encoding_DefaultBinary,15688,Object +DataSetWriterMessageDataType_Encoding_DefaultJson,16158,Object +DataSetWriterMessageDataType_Encoding_DefaultXml,15987,Object +DataSetWriterMessageType,21096,ObjectType +DataSetWriterTransportDataType,15598,DataType +DataSetWriterTransportDataType_Encoding_DefaultBinary,15683,Object +DataSetWriterTransportDataType_Encoding_DefaultJson,16157,Object +DataSetWriterTransportDataType_Encoding_DefaultXml,15956,Object +DataSetWriterTransportType,15305,ObjectType +DataSetWriterType,15298,ObjectType +DataTypeAttributes,370,DataType +DataTypeAttributes_Encoding_DefaultBinary,372,Object +DataTypeAttributes_Encoding_DefaultJson,15161,Object +DataTypeAttributes_Encoding_DefaultXml,371,Object +DataTypeDefinition,97,DataType +DataTypeDefinition_Encoding_DefaultBinary,121,Object +DataTypeDefinition_Encoding_DefaultJson,15063,Object +DataTypeDefinition_Encoding_DefaultXml,14797,Object +DataTypeDescription,14525,DataType +DataTypeDescription_Encoding_DefaultBinary,125,Object +DataTypeDescription_Encoding_DefaultJson,15057,Object +DataTypeDescription_Encoding_DefaultXml,14796,Object +DataTypeDescriptionType,69,VariableType +DataTypeDictionaryType,72,VariableType +DataTypeEncodingType,76,ObjectType +DataTypeNode,282,DataType +DataTypeNode_Encoding_DefaultBinary,284,Object +DataTypeNode_Encoding_DefaultJson,15079,Object +DataTypeNode_Encoding_DefaultXml,283,Object +DataTypeSchemaHeader,15534,DataType +DataTypeSchemaHeader_Encoding_DefaultBinary,15676,Object +DataTypeSchemaHeader_Encoding_DefaultJson,16151,Object +DataTypeSchemaHeader_Encoding_DefaultXml,15950,Object +DataTypesFolder,90,Object +DataTypeSystemType,75,ObjectType +DataValue,23,DataType +Date,293,DataType +DateString,12881,DataType +DateTime,13,DataType +DeadbandType,718,DataType +Decimal,50,DataType +DecimalDataType,17861,DataType +DecimalDataType_Encoding_DefaultBinary,17863,Object +DecimalDataType_Encoding_DefaultJson,15045,Object +DecimalDataType_Encoding_DefaultXml,17862,Object +DecimalString,12878,DataType +DefaultBinary,3062,Object +DefaultInstanceBrowseName,17605,Variable +DefaultXml,3063,Object +DeleteAtTimeDetails,689,DataType +DeleteAtTimeDetails_Encoding_DefaultBinary,691,Object +DeleteAtTimeDetails_Encoding_DefaultJson,15284,Object +DeleteAtTimeDetails_Encoding_DefaultXml,690,Object +DeleteEventDetails,692,DataType +DeleteEventDetails_Encoding_DefaultBinary,694,Object +DeleteEventDetails_Encoding_DefaultJson,15285,Object +DeleteEventDetails_Encoding_DefaultXml,693,Object +DeleteMonitoredItemsRequest,779,DataType +DeleteMonitoredItemsRequest_Encoding_DefaultBinary,781,Object +DeleteMonitoredItemsRequest_Encoding_DefaultJson,15335,Object +DeleteMonitoredItemsRequest_Encoding_DefaultXml,780,Object +DeleteMonitoredItemsResponse,782,DataType +DeleteMonitoredItemsResponse_Encoding_DefaultBinary,784,Object +DeleteMonitoredItemsResponse_Encoding_DefaultJson,15336,Object +DeleteMonitoredItemsResponse_Encoding_DefaultXml,783,Object +DeleteNodesItem,382,DataType +DeleteNodesItem_Encoding_DefaultBinary,384,Object +DeleteNodesItem_Encoding_DefaultJson,15172,Object +DeleteNodesItem_Encoding_DefaultXml,383,Object +DeleteNodesRequest,498,DataType +DeleteNodesRequest_Encoding_DefaultBinary,500,Object +DeleteNodesRequest_Encoding_DefaultJson,15173,Object +DeleteNodesRequest_Encoding_DefaultXml,499,Object +DeleteNodesResponse,501,DataType +DeleteNodesResponse_Encoding_DefaultBinary,503,Object +DeleteNodesResponse_Encoding_DefaultJson,15174,Object +DeleteNodesResponse_Encoding_DefaultXml,502,Object +DeleteRawModifiedDetails,686,DataType +DeleteRawModifiedDetails_Encoding_DefaultBinary,688,Object +DeleteRawModifiedDetails_Encoding_DefaultJson,15283,Object +DeleteRawModifiedDetails_Encoding_DefaultXml,687,Object +DeleteReferencesItem,385,DataType +DeleteReferencesItem_Encoding_DefaultBinary,387,Object +DeleteReferencesItem_Encoding_DefaultJson,15175,Object +DeleteReferencesItem_Encoding_DefaultXml,386,Object +DeleteReferencesRequest,504,DataType +DeleteReferencesRequest_Encoding_DefaultBinary,506,Object +DeleteReferencesRequest_Encoding_DefaultJson,15176,Object +DeleteReferencesRequest_Encoding_DefaultXml,505,Object +DeleteReferencesResponse,507,DataType +DeleteReferencesResponse_Encoding_DefaultBinary,509,Object +DeleteReferencesResponse_Encoding_DefaultJson,15177,Object +DeleteReferencesResponse_Encoding_DefaultXml,508,Object +DeleteSubscriptionsRequest,845,DataType +DeleteSubscriptionsRequest_Encoding_DefaultBinary,847,Object +DeleteSubscriptionsRequest_Encoding_DefaultJson,15359,Object +DeleteSubscriptionsRequest_Encoding_DefaultXml,846,Object +DeleteSubscriptionsResponse,848,DataType +DeleteSubscriptionsResponse_Encoding_DefaultBinary,850,Object +DeleteSubscriptionsResponse_Encoding_DefaultJson,15360,Object +DeleteSubscriptionsResponse_Encoding_DefaultXml,849,Object +DeviceFailureEventType,2131,ObjectType +DiagnosticInfo,25,DataType +DiagnosticsLevel,19723,DataType +DialogConditionType,2830,ObjectType +Dictionaries,17594,Object +DictionaryEntryType,17589,ObjectType +DictionaryFolderType,17591,ObjectType +DiscoveryConfiguration,12890,DataType +DiscoveryConfiguration_Encoding_DefaultBinary,12900,Object +DiscoveryConfiguration_Encoding_DefaultJson,15105,Object +DiscoveryConfiguration_Encoding_DefaultXml,12892,Object +DiscrepancyAlarmType,17080,ObjectType +DiscreteAlarmType,10523,ObjectType +DiscreteItemType,2372,VariableType +Double,11,DataType +DoubleComplexNumberType,12172,DataType +DoubleComplexNumberType_Encoding_DefaultBinary,12182,Object +DoubleComplexNumberType_Encoding_DefaultJson,15378,Object +DoubleComplexNumberType_Encoding_DefaultXml,12174,Object +Duplex,24210,DataType +Duration,290,DataType +DurationString,12879,DataType +EccApplicationCertificateType,23537,ObjectType +EccBrainpoolP256r1ApplicationCertificateType,23540,ObjectType +EccBrainpoolP384r1ApplicationCertificateType,23541,ObjectType +EccCurve25519ApplicationCertificateType,23542,ObjectType +EccCurve448ApplicationCertificateType,23543,ObjectType +EccEncryptedSecret,17546,DataType +EccNistP256ApplicationCertificateType,23538,ObjectType +EccNistP384ApplicationCertificateType,23539,ObjectType +ElementOperand,592,DataType +ElementOperand_Encoding_DefaultBinary,594,Object +ElementOperand_Encoding_DefaultJson,15207,Object +ElementOperand_Encoding_DefaultXml,593,Object +ElseGuardVariableType,15317,VariableType +EndpointConfiguration,331,DataType +EndpointConfiguration_Encoding_DefaultBinary,333,Object +EndpointConfiguration_Encoding_DefaultJson,15199,Object +EndpointConfiguration_Encoding_DefaultXml,332,Object +EndpointDescription,312,DataType +EndpointDescription_Encoding_DefaultBinary,314,Object +EndpointDescription_Encoding_DefaultJson,15099,Object +EndpointDescription_Encoding_DefaultXml,313,Object +EndpointType,15528,DataType +EndpointType_Encoding_DefaultBinary,15671,Object +EndpointType_Encoding_DefaultJson,16150,Object +EndpointType_Encoding_DefaultXml,15949,Object +EndpointUrlListDataType,11943,DataType +EndpointUrlListDataType_Encoding_DefaultBinary,11957,Object +EndpointUrlListDataType_Encoding_DefaultJson,15363,Object +EndpointUrlListDataType_Encoding_DefaultXml,11949,Object +EngineeringUnits,11513,Variable +EnumDefinition,100,DataType +EnumDefinition_Encoding_DefaultBinary,123,Object +EnumDefinition_Encoding_DefaultJson,15067,Object +EnumDefinition_Encoding_DefaultXml,14799,Object +EnumDescription,15488,DataType +EnumDescription_Encoding_DefaultBinary,127,Object +EnumDescription_Encoding_DefaultJson,15059,Object +EnumDescription_Encoding_DefaultXml,15590,Object +Enumeration,29,DataType +EnumField,102,DataType +EnumField_Encoding_DefaultBinary,14845,Object +EnumField_Encoding_DefaultJson,15083,Object +EnumField_Encoding_DefaultXml,14801,Object +EnumStrings,11432,Variable +EnumValues,3071,Variable +EnumValueType,7594,DataType +EnumValueType_Encoding_DefaultBinary,8251,Object +EnumValueType_Encoding_DefaultJson,15082,Object +EnumValueType_Encoding_DefaultXml,7616,Object +EphemeralKeyType,17548,DataType +EphemeralKeyType_Encoding_DefaultBinary,17549,Object +EphemeralKeyType_Encoding_DefaultJson,17557,Object +EphemeralKeyType_Encoding_DefaultXml,17553,Object +EUInformation,887,DataType +EUInformation_Encoding_DefaultBinary,889,Object +EUInformation_Encoding_DefaultJson,15376,Object +EUInformation_Encoding_DefaultXml,888,Object +EventFieldList,917,DataType +EventFieldList_Encoding_DefaultBinary,919,Object +EventFieldList_Encoding_DefaultJson,15348,Object +EventFieldList_Encoding_DefaultXml,918,Object +EventFilter,725,DataType +EventFilter_Encoding_DefaultBinary,727,Object +EventFilter_Encoding_DefaultJson,15295,Object +EventFilter_Encoding_DefaultXml,726,Object +EventFilterResult,734,DataType +EventFilterResult_Encoding_DefaultBinary,736,Object +EventFilterResult_Encoding_DefaultJson,15314,Object +EventFilterResult_Encoding_DefaultXml,735,Object +EventNotificationList,914,DataType +EventNotificationList_Encoding_DefaultBinary,916,Object +EventNotificationList_Encoding_DefaultJson,15347,Object +EventNotificationList_Encoding_DefaultXml,915,Object +EventNotifierType,15033,DataType +EventQueueOverflowEventType,3035,ObjectType +EventTypesFolder,3048,Object +ExceptionDeviationFormat,890,DataType +ExclusiveDeviationAlarmType,9764,ObjectType +ExclusiveLevelAlarmType,9482,ObjectType +ExclusiveLimitAlarmType,9341,ObjectType +ExclusiveLimitStateMachineType,9318,ObjectType +ExclusiveRateOfChangeAlarmType,9623,ObjectType +ExpandedNodeId,18,DataType +ExpressionGuardVariableType,15128,VariableType +ExtensionFieldsType,15489,ObjectType +FieldMetaData,14524,DataType +FieldMetaData_Encoding_DefaultBinary,14839,Object +FieldMetaData_Encoding_DefaultJson,15051,Object +FieldMetaData_Encoding_DefaultXml,14795,Object +FieldTargetDataType,14744,DataType +FieldTargetDataType_Encoding_DefaultBinary,14848,Object +FieldTargetDataType_Encoding_DefaultJson,15061,Object +FieldTargetDataType_Encoding_DefaultXml,14804,Object +FileDirectoryType,13353,ObjectType +FileSystem,16314,Object +FileTransferStateMachineType,15803,ObjectType +FileType,11575,ObjectType +FilterOperand,589,DataType +FilterOperand_Encoding_DefaultBinary,591,Object +FilterOperand_Encoding_DefaultJson,15206,Object +FilterOperand_Encoding_DefaultXml,590,Object +FilterOperator,576,DataType +FindServersOnNetworkRequest,12190,DataType +FindServersOnNetworkRequest_Encoding_DefaultBinary,12208,Object +FindServersOnNetworkRequest_Encoding_DefaultJson,15096,Object +FindServersOnNetworkRequest_Encoding_DefaultXml,12196,Object +FindServersOnNetworkResponse,12191,DataType +FindServersOnNetworkResponse_Encoding_DefaultBinary,12209,Object +FindServersOnNetworkResponse_Encoding_DefaultJson,15097,Object +FindServersOnNetworkResponse_Encoding_DefaultXml,12197,Object +FindServersRequest,420,DataType +FindServersRequest_Encoding_DefaultBinary,422,Object +FindServersRequest_Encoding_DefaultJson,15093,Object +FindServersRequest_Encoding_DefaultXml,421,Object +FindServersResponse,423,DataType +FindServersResponse_Encoding_DefaultBinary,425,Object +FindServersResponse_Encoding_DefaultJson,15094,Object +FindServersResponse_Encoding_DefaultXml,424,Object +FiniteStateMachineType,2771,ObjectType +FiniteStateVariableType,2760,VariableType +FiniteTransitionVariableType,2767,VariableType +Float,10,DataType +FolderType,61,ObjectType +Frame,18813,DataType +Frame_Encoding_DefaultBinary,18822,Object +Frame_Encoding_DefaultJson,19071,Object +Frame_Encoding_DefaultXml,18858,Object +FrameType,18786,VariableType +FromState,51,ReferenceType +GeneralModelChangeEventType,2133,ObjectType +GeneratesEvent,41,ReferenceType +GenericAttributes,17607,DataType +GenericAttributes_Encoding_DefaultBinary,17611,Object +GenericAttributes_Encoding_DefaultJson,15164,Object +GenericAttributes_Encoding_DefaultXml,17609,Object +GenericAttributeValue,17606,DataType +GenericAttributeValue_Encoding_DefaultBinary,17610,Object +GenericAttributeValue_Encoding_DefaultJson,15163,Object +GenericAttributeValue_Encoding_DefaultXml,17608,Object +GetEndpointsRequest,426,DataType +GetEndpointsRequest_Encoding_DefaultBinary,428,Object +GetEndpointsRequest_Encoding_DefaultJson,15100,Object +GetEndpointsRequest_Encoding_DefaultXml,427,Object +GetEndpointsResponse,429,DataType +GetEndpointsResponse_Encoding_DefaultBinary,431,Object +GetEndpointsResponse_Encoding_DefaultJson,15101,Object +GetEndpointsResponse_Encoding_DefaultXml,430,Object +GuardVariableType,15113,VariableType +Guid,14,DataType +HAConfiguration,11202,Object +HasAddIn,17604,ReferenceType +HasAlarmSuppressionGroup,16361,ReferenceType +HasArgumentDescription,129,ReferenceType +HasCause,53,ReferenceType +HasChild,34,ReferenceType +HasComponent,47,ReferenceType +HasCondition,9006,ReferenceType +HasDataSetReader,15297,ReferenceType +HasDataSetWriter,15296,ReferenceType +HasDescription,39,ReferenceType +HasDictionaryEntry,17597,ReferenceType +HasEffect,54,ReferenceType +HasEffectDisable,17276,ReferenceType +HasEffectEnable,17983,ReferenceType +HasEffectSuppressed,17984,ReferenceType +HasEffectUnsuppressed,17985,ReferenceType +HasEncoding,38,ReferenceType +HasEventSource,36,ReferenceType +HasFalseSubState,9005,ReferenceType +HasGuard,15112,ReferenceType +HasHistoricalConfiguration,56,ReferenceType +HasInterface,17603,ReferenceType +HasModellingRule,37,ReferenceType +HasNotifier,48,ReferenceType +HasOptionalInputArgumentDescription,131,ReferenceType +HasOrderedComponent,49,ReferenceType +HasProperty,46,ReferenceType +HasPubSubConnection,14476,ReferenceType +HasReaderGroup,18805,ReferenceType +HasSubStateMachine,117,ReferenceType +HasSubtype,45,ReferenceType +HasTrueSubState,9004,ReferenceType +HasTypeDefinition,40,ReferenceType +HasWriterGroup,18804,ReferenceType +HierarchicalReferences,33,ReferenceType +HighlyManagedAlarmConditionClassType,17219,ObjectType +HistoricalDataConfigurationType,2318,ObjectType +HistoricalEventFilter,11215,Variable +HistoryData,656,DataType +HistoryData_Encoding_DefaultBinary,658,Object +HistoryData_Encoding_DefaultJson,15270,Object +HistoryData_Encoding_DefaultXml,657,Object +HistoryEvent,659,DataType +HistoryEvent_Encoding_DefaultBinary,661,Object +HistoryEvent_Encoding_DefaultJson,15273,Object +HistoryEvent_Encoding_DefaultXml,660,Object +HistoryEventFieldList,920,DataType +HistoryEventFieldList_Encoding_DefaultBinary,922,Object +HistoryEventFieldList_Encoding_DefaultJson,15349,Object +HistoryEventFieldList_Encoding_DefaultXml,921,Object +HistoryModifiedData,11217,DataType +HistoryModifiedData_Encoding_DefaultBinary,11227,Object +HistoryModifiedData_Encoding_DefaultJson,15272,Object +HistoryModifiedData_Encoding_DefaultXml,11219,Object +HistoryReadDetails,641,DataType +HistoryReadDetails_Encoding_DefaultBinary,643,Object +HistoryReadDetails_Encoding_DefaultJson,15261,Object +HistoryReadDetails_Encoding_DefaultXml,642,Object +HistoryReadRequest,662,DataType +HistoryReadRequest_Encoding_DefaultBinary,664,Object +HistoryReadRequest_Encoding_DefaultJson,15274,Object +HistoryReadRequest_Encoding_DefaultXml,663,Object +HistoryReadResponse,665,DataType +HistoryReadResponse_Encoding_DefaultBinary,667,Object +HistoryReadResponse_Encoding_DefaultJson,15275,Object +HistoryReadResponse_Encoding_DefaultXml,666,Object +HistoryReadResult,638,DataType +HistoryReadResult_Encoding_DefaultBinary,640,Object +HistoryReadResult_Encoding_DefaultJson,15260,Object +HistoryReadResult_Encoding_DefaultXml,639,Object +HistoryReadValueId,635,DataType +HistoryReadValueId_Encoding_DefaultBinary,637,Object +HistoryReadValueId_Encoding_DefaultJson,15259,Object +HistoryReadValueId_Encoding_DefaultXml,636,Object +HistoryServerCapabilities,11192,Object +HistoryServerCapabilitiesType,2330,ObjectType +HistoryUpdateDetails,677,DataType +HistoryUpdateDetails_Encoding_DefaultBinary,679,Object +HistoryUpdateDetails_Encoding_DefaultJson,15279,Object +HistoryUpdateDetails_Encoding_DefaultXml,678,Object +HistoryUpdateRequest,698,DataType +HistoryUpdateRequest_Encoding_DefaultBinary,700,Object +HistoryUpdateRequest_Encoding_DefaultJson,15287,Object +HistoryUpdateRequest_Encoding_DefaultXml,699,Object +HistoryUpdateResponse,701,DataType +HistoryUpdateResponse_Encoding_DefaultBinary,703,Object +HistoryUpdateResponse_Encoding_DefaultJson,15288,Object +HistoryUpdateResponse_Encoding_DefaultXml,702,Object +HistoryUpdateResult,695,DataType +HistoryUpdateResult_Encoding_DefaultBinary,697,Object +HistoryUpdateResult_Encoding_DefaultJson,15286,Object +HistoryUpdateResult_Encoding_DefaultXml,696,Object +HistoryUpdateType,11234,DataType +HttpsCertificateType,12558,ObjectType +IBaseEthernetCapabilitiesType,24167,ObjectType +Icon,3067,Variable +IdentityCriteriaType,15632,DataType +IdentityMappingRuleType,15634,DataType +IdentityMappingRuleType_Encoding_DefaultBinary,15736,Object +IdentityMappingRuleType_Encoding_DefaultJson,15042,Object +IdentityMappingRuleType_Encoding_DefaultXml,15728,Object +IdType,256,DataType +IIeeeAutoNegotiationStatusType,24233,ObjectType +IIeeeBaseEthernetPortType,24158,ObjectType +IIeeeBaseTsnStatusStreamType,24183,ObjectType +IIeeeBaseTsnStreamType,24173,ObjectType +IIeeeBaseTsnTrafficSpecificationType,24179,ObjectType +IIeeeTsnInterfaceConfigurationListenerType,24195,ObjectType +IIeeeTsnInterfaceConfigurationTalkerType,24191,ObjectType +IIeeeTsnInterfaceConfigurationType,24188,ObjectType +IIeeeTsnMacAddressType,24199,ObjectType +IIeeeTsnVlanTagType,24202,ObjectType +IIetfBaseNetworkInterfaceType,24148,ObjectType +Image,30,DataType +ImageBMP,2000,DataType +ImageGIF,2001,DataType +ImageItemType,12047,VariableType +ImageJPG,2002,DataType +ImagePNG,2003,DataType +Index,17588,DataType +InitialStateType,2309,ObjectType +InputArguments,3072,Variable +InstanceNode,11879,DataType +InstanceNode_Encoding_DefaultBinary,11889,Object +InstanceNode_Encoding_DefaultJson,15069,Object +InstanceNode_Encoding_DefaultXml,11887,Object +InstrumentDiagnosticAlarmType,18347,ObjectType +Int16,4,DataType +Int32,6,DataType +Int64,8,DataType +Integer,27,DataType +IntegerId,288,DataType +InterfaceAdminStatus,24212,DataType +InterfaceOperStatus,24214,DataType +InterfaceTypes,17708,Object +IOrderedObjectType,23513,ObjectType +IPriorityMappingEntryType,24205,ObjectType +IrdiDictionaryEntryType,17598,ObjectType +ISrClassType,24169,ObjectType +IssuedIdentityToken,938,DataType +IssuedIdentityToken_Encoding_DefaultBinary,940,Object +IssuedIdentityToken_Encoding_DefaultJson,15144,Object +IssuedIdentityToken_Encoding_DefaultXml,939,Object +JsonDataSetMessageContentMask,15658,DataType +JsonDataSetReaderMessageDataType,15665,DataType +JsonDataSetReaderMessageDataType_Encoding_DefaultBinary,15725,Object +JsonDataSetReaderMessageDataType_Encoding_DefaultJson,16404,Object +JsonDataSetReaderMessageDataType_Encoding_DefaultXml,16019,Object +JsonDataSetReaderMessageType,21130,ObjectType +JsonDataSetWriterMessageDataType,15664,DataType +JsonDataSetWriterMessageDataType_Encoding_DefaultBinary,15724,Object +JsonDataSetWriterMessageDataType_Encoding_DefaultJson,16394,Object +JsonDataSetWriterMessageDataType_Encoding_DefaultXml,16018,Object +JsonDataSetWriterMessageType,21128,ObjectType +JsonNetworkMessageContentMask,15654,DataType +JsonWriterGroupMessageDataType,15657,DataType +JsonWriterGroupMessageDataType_Encoding_DefaultBinary,15719,Object +JsonWriterGroupMessageDataType_Encoding_DefaultJson,16393,Object +JsonWriterGroupMessageDataType_Encoding_DefaultXml,16017,Object +JsonWriterGroupMessageType,21126,ObjectType +KeyCredentialAuditEventType,18011,ObjectType +KeyCredentialConfiguration,18155,Object +KeyCredentialConfigurationFolderType,17496,ObjectType +KeyCredentialConfigurationType,18001,ObjectType +KeyCredentialDeletedAuditEventType,18047,ObjectType +KeyCredentialUpdatedAuditEventType,18029,ObjectType +KeyValuePair,14533,DataType +KeyValuePair_Encoding_DefaultBinary,14846,Object +KeyValuePair_Encoding_DefaultJson,15041,Object +KeyValuePair_Encoding_DefaultXml,14802,Object +LimitAlarmType,2955,ObjectType +ListenerStreams,24232,Object +LiteralOperand,595,DataType +LiteralOperand_Encoding_DefaultBinary,597,Object +LiteralOperand_Encoding_DefaultJson,15208,Object +LiteralOperand_Encoding_DefaultXml,596,Object +LocaleId,295,DataType +LocalizedText,21,DataType +LocalTime,3069,Variable +MaintenanceConditionClassType,11165,ObjectType +MappingTables,24228,Object +MaxArrayLength,11512,Variable +MaxByteStringLength,12908,Variable +MaxCharacters,15002,Variable +MaxStringLength,11498,Variable +MdnsDiscoveryConfiguration,12891,DataType +MdnsDiscoveryConfiguration_Encoding_DefaultBinary,12901,Object +MdnsDiscoveryConfiguration_Encoding_DefaultJson,15106,Object +MdnsDiscoveryConfiguration_Encoding_DefaultXml,12893,Object +MessageSecurityMode,302,DataType +MethodAttributes,358,DataType +MethodAttributes_Encoding_DefaultBinary,360,Object +MethodAttributes_Encoding_DefaultJson,15157,Object +MethodAttributes_Encoding_DefaultXml,359,Object +MethodNode,276,DataType +MethodNode_Encoding_DefaultBinary,278,Object +MethodNode_Encoding_DefaultJson,15077,Object +MethodNode_Encoding_DefaultXml,277,Object +ModelChangeStructureDataType,877,DataType +ModelChangeStructureDataType_Encoding_DefaultBinary,879,Object +ModelChangeStructureDataType_Encoding_DefaultJson,15373,Object +ModelChangeStructureDataType_Encoding_DefaultXml,878,Object +ModelChangeStructureVerbMask,11941,DataType +ModellingRule_ExposesItsArray,83,Object +ModellingRule_Mandatory,78,Object +ModellingRule_MandatoryPlaceholder,11510,Object +ModellingRule_Optional,80,Object +ModellingRule_OptionalPlaceholder,11508,Object +ModellingRuleType,77,ObjectType +ModificationInfo,11216,DataType +ModificationInfo_Encoding_DefaultBinary,11226,Object +ModificationInfo_Encoding_DefaultJson,15271,Object +ModificationInfo_Encoding_DefaultXml,11218,Object +ModifyMonitoredItemsRequest,761,DataType +ModifyMonitoredItemsRequest_Encoding_DefaultBinary,763,Object +ModifyMonitoredItemsRequest_Encoding_DefaultJson,15327,Object +ModifyMonitoredItemsRequest_Encoding_DefaultXml,762,Object +ModifyMonitoredItemsResponse,764,DataType +ModifyMonitoredItemsResponse_Encoding_DefaultBinary,766,Object +ModifyMonitoredItemsResponse_Encoding_DefaultJson,15328,Object +ModifyMonitoredItemsResponse_Encoding_DefaultXml,765,Object +ModifySubscriptionRequest,791,DataType +ModifySubscriptionRequest_Encoding_DefaultBinary,793,Object +ModifySubscriptionRequest_Encoding_DefaultJson,15339,Object +ModifySubscriptionRequest_Encoding_DefaultXml,792,Object +ModifySubscriptionResponse,794,DataType +ModifySubscriptionResponse_Encoding_DefaultBinary,796,Object +ModifySubscriptionResponse_Encoding_DefaultJson,15340,Object +ModifySubscriptionResponse_Encoding_DefaultXml,795,Object +MonitoredItemCreateRequest,743,DataType +MonitoredItemCreateRequest_Encoding_DefaultBinary,745,Object +MonitoredItemCreateRequest_Encoding_DefaultJson,15321,Object +MonitoredItemCreateRequest_Encoding_DefaultXml,744,Object +MonitoredItemCreateResult,746,DataType +MonitoredItemCreateResult_Encoding_DefaultBinary,748,Object +MonitoredItemCreateResult_Encoding_DefaultJson,15322,Object +MonitoredItemCreateResult_Encoding_DefaultXml,747,Object +MonitoredItemModifyRequest,755,DataType +MonitoredItemModifyRequest_Encoding_DefaultBinary,757,Object +MonitoredItemModifyRequest_Encoding_DefaultJson,15325,Object +MonitoredItemModifyRequest_Encoding_DefaultXml,756,Object +MonitoredItemModifyResult,758,DataType +MonitoredItemModifyResult_Encoding_DefaultBinary,760,Object +MonitoredItemModifyResult_Encoding_DefaultJson,15326,Object +MonitoredItemModifyResult_Encoding_DefaultXml,759,Object +MonitoredItemNotification,806,DataType +MonitoredItemNotification_Encoding_DefaultBinary,808,Object +MonitoredItemNotification_Encoding_DefaultJson,15346,Object +MonitoredItemNotification_Encoding_DefaultXml,807,Object +MonitoringFilter,719,DataType +MonitoringFilter_Encoding_DefaultBinary,721,Object +MonitoringFilter_Encoding_DefaultJson,15293,Object +MonitoringFilter_Encoding_DefaultXml,720,Object +MonitoringFilterResult,731,DataType +MonitoringFilterResult_Encoding_DefaultBinary,733,Object +MonitoringFilterResult_Encoding_DefaultJson,15313,Object +MonitoringFilterResult_Encoding_DefaultXml,732,Object +MonitoringMode,716,DataType +MonitoringParameters,740,DataType +MonitoringParameters_Encoding_DefaultBinary,742,Object +MonitoringParameters_Encoding_DefaultJson,15320,Object +MonitoringParameters_Encoding_DefaultXml,741,Object +MultiStateDictionaryEntryDiscreteBaseType,19077,VariableType +MultiStateDictionaryEntryDiscreteType,19084,VariableType +MultiStateDiscreteType,2376,VariableType +MultiStateValueDiscreteType,11238,VariableType +NamespaceMetadataType,11616,ObjectType +NamespacesType,11645,ObjectType +NamingRuleType,120,DataType +NDimensionArrayItemType,12068,VariableType +NegotiationStatus,24216,DataType +NetworkAddressDataType,15502,DataType +NetworkAddressDataType_Encoding_DefaultBinary,21151,Object +NetworkAddressDataType_Encoding_DefaultJson,21199,Object +NetworkAddressDataType_Encoding_DefaultXml,21175,Object +NetworkAddressType,21145,ObjectType +NetworkAddressUrlDataType,15510,DataType +NetworkAddressUrlDataType_Encoding_DefaultBinary,21152,Object +NetworkAddressUrlDataType_Encoding_DefaultJson,21200,Object +NetworkAddressUrlDataType_Encoding_DefaultXml,21176,Object +NetworkAddressUrlType,21147,ObjectType +NetworkGroupDataType,11944,DataType +NetworkGroupDataType_Encoding_DefaultBinary,11958,Object +NetworkGroupDataType_Encoding_DefaultJson,15364,Object +NetworkGroupDataType_Encoding_DefaultXml,11950,Object +NetworkInterfaces,24229,Object +Node,258,DataType +Node_Encoding_DefaultBinary,260,Object +Node_Encoding_DefaultJson,15068,Object +Node_Encoding_DefaultXml,259,Object +NodeAttributes,349,DataType +NodeAttributes_Encoding_DefaultBinary,351,Object +NodeAttributes_Encoding_DefaultJson,15151,Object +NodeAttributes_Encoding_DefaultXml,350,Object +NodeAttributesMask,348,DataType +NodeClass,257,DataType +NodeId,17,DataType +NodeReference,580,DataType +NodeReference_Encoding_DefaultBinary,582,Object +NodeReference_Encoding_DefaultJson,15203,Object +NodeReference_Encoding_DefaultXml,581,Object +NodeTypeDescription,573,DataType +NodeTypeDescription_Encoding_DefaultBinary,575,Object +NodeTypeDescription_Encoding_DefaultJson,15201,Object +NodeTypeDescription_Encoding_DefaultXml,574,Object +NodeVersion,3068,Variable +NonExclusiveDeviationAlarmType,10368,ObjectType +NonExclusiveLevelAlarmType,10060,ObjectType +NonExclusiveLimitAlarmType,9906,ObjectType +NonExclusiveRateOfChangeAlarmType,10214,ObjectType +NonHierarchicalReferences,32,ReferenceType +NonTransparentNetworkRedundancyType,11945,ObjectType +NonTransparentRedundancyType,2039,ObjectType +NormalizedString,12877,DataType +NotificationData,945,DataType +NotificationData_Encoding_DefaultBinary,947,Object +NotificationData_Encoding_DefaultJson,15344,Object +NotificationData_Encoding_DefaultXml,946,Object +NotificationMessage,803,DataType +NotificationMessage_Encoding_DefaultBinary,805,Object +NotificationMessage_Encoding_DefaultJson,15343,Object +NotificationMessage_Encoding_DefaultXml,804,Object +Number,26,DataType +NumericRange,291,DataType +ObjectAttributes,352,DataType +ObjectAttributes_Encoding_DefaultBinary,354,Object +ObjectAttributes_Encoding_DefaultJson,15152,Object +ObjectAttributes_Encoding_DefaultXml,353,Object +ObjectNode,261,DataType +ObjectNode_Encoding_DefaultBinary,263,Object +ObjectNode_Encoding_DefaultJson,15071,Object +ObjectNode_Encoding_DefaultXml,262,Object +ObjectsFolder,85,Object +ObjectTypeAttributes,361,DataType +ObjectTypeAttributes_Encoding_DefaultBinary,363,Object +ObjectTypeAttributes_Encoding_DefaultJson,15158,Object +ObjectTypeAttributes_Encoding_DefaultXml,362,Object +ObjectTypeNode,264,DataType +ObjectTypeNode_Encoding_DefaultBinary,266,Object +ObjectTypeNode_Encoding_DefaultJson,15073,Object +ObjectTypeNode_Encoding_DefaultXml,265,Object +ObjectTypesFolder,88,Object +OffNormalAlarmType,10637,ObjectType +OPCBinarySchema_TypeSystem,93,Object +OpcUa_BinarySchema,7617,Variable +OpcUa_XmlSchema,8252,Variable +OPCUANamespaceMetadata,15957,Object +OpenFileMode,11939,DataType +OpenSecureChannelRequest,444,DataType +OpenSecureChannelRequest_Encoding_DefaultBinary,446,Object +OpenSecureChannelRequest_Encoding_DefaultJson,15132,Object +OpenSecureChannelRequest_Encoding_DefaultXml,445,Object +OpenSecureChannelResponse,447,DataType +OpenSecureChannelResponse_Encoding_DefaultBinary,449,Object +OpenSecureChannelResponse_Encoding_DefaultJson,15133,Object +OpenSecureChannelResponse_Encoding_DefaultXml,448,Object +OperationLimitsType,11564,ObjectType +OptionSet,12755,DataType +OptionSet_Encoding_DefaultBinary,12765,Object +OptionSet_Encoding_DefaultJson,15084,Object +OptionSet_Encoding_DefaultXml,12757,Object +OptionSetType,11487,VariableType +OptionSetValues,12745,Variable +OrderedListType,23518,ObjectType +Organizes,35,ReferenceType +Orientation,18811,DataType +Orientation_Encoding_DefaultBinary,18820,Object +Orientation_Encoding_DefaultJson,19069,Object +Orientation_Encoding_DefaultXml,18856,Object +OrientationType,18779,VariableType +OutputArguments,3073,Variable +OverrideValueHandling,15874,DataType +ParsingResult,610,DataType +ParsingResult_Encoding_DefaultBinary,612,Object +ParsingResult_Encoding_DefaultJson,15236,Object +ParsingResult_Encoding_DefaultXml,611,Object +PerformUpdateType,11293,DataType +PermissionType,94,DataType +ProcessConditionClassType,11164,ObjectType +ProgramDiagnostic2DataType,24033,DataType +ProgramDiagnostic2DataType_Encoding_DefaultBinary,24034,Object +ProgramDiagnostic2DataType_Encoding_DefaultJson,24042,Object +ProgramDiagnostic2DataType_Encoding_DefaultXml,24038,Object +ProgramDiagnostic2Type,15383,VariableType +ProgramDiagnosticDataType,894,DataType +ProgramDiagnosticDataType_Encoding_DefaultBinary,896,Object +ProgramDiagnosticDataType_Encoding_DefaultJson,15381,Object +ProgramDiagnosticDataType_Encoding_DefaultXml,895,Object +ProgramDiagnosticType,2380,VariableType +ProgramStateMachineType,2391,ObjectType +ProgramTransitionAuditEventType,3806,ObjectType +ProgramTransitionEventType,2378,ObjectType +ProgressEventType,11436,ObjectType +PropertyType,68,VariableType +PublishedDataItemsDataType,15581,DataType +PublishedDataItemsDataType_Encoding_DefaultBinary,15679,Object +PublishedDataItemsDataType_Encoding_DefaultJson,16154,Object +PublishedDataItemsDataType_Encoding_DefaultXml,15953,Object +PublishedDataItemsType,14534,ObjectType +PublishedDataSetDataType,15578,DataType +PublishedDataSetDataType_Encoding_DefaultBinary,15677,Object +PublishedDataSetDataType_Encoding_DefaultJson,16152,Object +PublishedDataSetDataType_Encoding_DefaultXml,15951,Object +PublishedDataSetSourceDataType,15580,DataType +PublishedDataSetSourceDataType_Encoding_DefaultBinary,15678,Object +PublishedDataSetSourceDataType_Encoding_DefaultJson,16153,Object +PublishedDataSetSourceDataType_Encoding_DefaultXml,15952,Object +PublishedDataSetType,14509,ObjectType +PublishedEventsDataType,15582,DataType +PublishedEventsDataType_Encoding_DefaultBinary,15681,Object +PublishedEventsDataType_Encoding_DefaultJson,16155,Object +PublishedEventsDataType_Encoding_DefaultXml,15954,Object +PublishedEventsType,14572,ObjectType +PublishedVariableDataType,14273,DataType +PublishedVariableDataType_Encoding_DefaultBinary,14323,Object +PublishedVariableDataType_Encoding_DefaultJson,15060,Object +PublishedVariableDataType_Encoding_DefaultXml,14319,Object +PublishRequest,824,DataType +PublishRequest_Encoding_DefaultBinary,826,Object +PublishRequest_Encoding_DefaultJson,15352,Object +PublishRequest_Encoding_DefaultXml,825,Object +PublishResponse,827,DataType +PublishResponse_Encoding_DefaultBinary,829,Object +PublishResponse_Encoding_DefaultJson,15353,Object +PublishResponse_Encoding_DefaultXml,828,Object +PublishSubscribe,14443,Object +PublishSubscribeType,14416,ObjectType +PubSubCommunicationFailureEventType,15563,ObjectType +PubSubConfigurationDataType,15530,DataType +PubSubConfigurationDataType_Encoding_DefaultBinary,21154,Object +PubSubConfigurationDataType_Encoding_DefaultJson,21202,Object +PubSubConfigurationDataType_Encoding_DefaultXml,21178,Object +PubSubConnectionDataType,15617,DataType +PubSubConnectionDataType_Encoding_DefaultBinary,15694,Object +PubSubConnectionDataType_Encoding_DefaultJson,16281,Object +PubSubConnectionDataType_Encoding_DefaultXml,15992,Object +PubSubConnectionType,14209,ObjectType +PubSubDiagnosticsConnectionType,19786,ObjectType +PubSubDiagnosticsCounterClassification,19730,DataType +PubSubDiagnosticsCounterType,19725,VariableType +PubSubDiagnosticsDataSetReaderType,20027,ObjectType +PubSubDiagnosticsDataSetWriterType,19968,ObjectType +PubSubDiagnosticsReaderGroupType,19903,ObjectType +PubSubDiagnosticsRootType,19732,ObjectType +PubSubDiagnosticsType,19677,ObjectType +PubSubDiagnosticsWriterGroupType,19834,ObjectType +PubSubGroupDataType,15609,DataType +PubSubGroupDataType_Encoding_DefaultBinary,15689,Object +PubSubGroupDataType_Encoding_DefaultJson,16159,Object +PubSubGroupDataType_Encoding_DefaultXml,15988,Object +PubSubGroupType,14232,ObjectType +PubSubKeyServiceType,15906,ObjectType +PubSubState,14647,DataType +PubSubStatusEventType,15535,ObjectType +PubSubStatusType,14643,ObjectType +PubSubTransportLimitsExceedEventType,15548,ObjectType +QualifiedName,20,DataType +QueryDataDescription,570,DataType +QueryDataDescription_Encoding_DefaultBinary,572,Object +QueryDataDescription_Encoding_DefaultJson,15200,Object +QueryDataDescription_Encoding_DefaultXml,571,Object +QueryDataSet,577,DataType +QueryDataSet_Encoding_DefaultBinary,579,Object +QueryDataSet_Encoding_DefaultJson,15202,Object +QueryDataSet_Encoding_DefaultXml,578,Object +QueryFirstRequest,613,DataType +QueryFirstRequest_Encoding_DefaultBinary,615,Object +QueryFirstRequest_Encoding_DefaultJson,15244,Object +QueryFirstRequest_Encoding_DefaultXml,614,Object +QueryFirstResponse,616,DataType +QueryFirstResponse_Encoding_DefaultBinary,618,Object +QueryFirstResponse_Encoding_DefaultJson,15252,Object +QueryFirstResponse_Encoding_DefaultXml,617,Object +QueryNextRequest,619,DataType +QueryNextRequest_Encoding_DefaultBinary,621,Object +QueryNextRequest_Encoding_DefaultJson,15254,Object +QueryNextRequest_Encoding_DefaultXml,620,Object +QueryNextResponse,622,DataType +QueryNextResponse_Encoding_DefaultBinary,624,Object +QueryNextResponse_Encoding_DefaultJson,15255,Object +QueryNextResponse_Encoding_DefaultXml,623,Object +Range,884,DataType +Range_Encoding_DefaultBinary,886,Object +Range_Encoding_DefaultJson,15375,Object +Range_Encoding_DefaultXml,885,Object +RationalNumber,18806,DataType +RationalNumber_Encoding_DefaultBinary,18815,Object +RationalNumber_Encoding_DefaultJson,19064,Object +RationalNumber_Encoding_DefaultXml,18851,Object +RationalNumberType,17709,VariableType +ReadAnnotationDataDetails,23497,DataType +ReadAnnotationDataDetails_Encoding_DefaultBinary,23500,Object +ReadAnnotationDataDetails_Encoding_DefaultJson,23512,Object +ReadAnnotationDataDetails_Encoding_DefaultXml,23506,Object +ReadAtTimeDetails,653,DataType +ReadAtTimeDetails_Encoding_DefaultBinary,655,Object +ReadAtTimeDetails_Encoding_DefaultJson,15269,Object +ReadAtTimeDetails_Encoding_DefaultXml,654,Object +ReaderGroupDataType,15520,DataType +ReaderGroupDataType_Encoding_DefaultBinary,21153,Object +ReaderGroupDataType_Encoding_DefaultJson,21201,Object +ReaderGroupDataType_Encoding_DefaultXml,21177,Object +ReaderGroupMessageDataType,15622,DataType +ReaderGroupMessageDataType_Encoding_DefaultBinary,15702,Object +ReaderGroupMessageDataType_Encoding_DefaultJson,16285,Object +ReaderGroupMessageDataType_Encoding_DefaultXml,15996,Object +ReaderGroupMessageType,21091,ObjectType +ReaderGroupTransportDataType,15621,DataType +ReaderGroupTransportDataType_Encoding_DefaultBinary,15701,Object +ReaderGroupTransportDataType_Encoding_DefaultJson,16284,Object +ReaderGroupTransportDataType_Encoding_DefaultXml,15995,Object +ReaderGroupTransportType,21090,ObjectType +ReaderGroupType,17999,ObjectType +ReadEventDetails,644,DataType +ReadEventDetails_Encoding_DefaultBinary,646,Object +ReadEventDetails_Encoding_DefaultJson,15262,Object +ReadEventDetails_Encoding_DefaultXml,645,Object +ReadProcessedDetails,650,DataType +ReadProcessedDetails_Encoding_DefaultBinary,652,Object +ReadProcessedDetails_Encoding_DefaultJson,15264,Object +ReadProcessedDetails_Encoding_DefaultXml,651,Object +ReadRawModifiedDetails,647,DataType +ReadRawModifiedDetails_Encoding_DefaultBinary,649,Object +ReadRawModifiedDetails_Encoding_DefaultJson,15263,Object +ReadRawModifiedDetails_Encoding_DefaultXml,648,Object +ReadRequest,629,DataType +ReadRequest_Encoding_DefaultBinary,631,Object +ReadRequest_Encoding_DefaultJson,15257,Object +ReadRequest_Encoding_DefaultXml,630,Object +ReadResponse,632,DataType +ReadResponse_Encoding_DefaultBinary,634,Object +ReadResponse_Encoding_DefaultJson,15258,Object +ReadResponse_Encoding_DefaultXml,633,Object +ReadValueId,626,DataType +ReadValueId_Encoding_DefaultBinary,628,Object +ReadValueId_Encoding_DefaultJson,15256,Object +ReadValueId_Encoding_DefaultXml,627,Object +RedundancySupport,851,DataType +RedundantServerDataType,853,DataType +RedundantServerDataType_Encoding_DefaultBinary,855,Object +RedundantServerDataType_Encoding_DefaultJson,15362,Object +RedundantServerDataType_Encoding_DefaultXml,854,Object +ReferenceDescription,518,DataType +ReferenceDescription_Encoding_DefaultBinary,520,Object +ReferenceDescription_Encoding_DefaultJson,15182,Object +ReferenceDescription_Encoding_DefaultXml,519,Object +ReferenceNode,285,DataType +ReferenceNode_Encoding_DefaultBinary,287,Object +ReferenceNode_Encoding_DefaultJson,15080,Object +ReferenceNode_Encoding_DefaultXml,286,Object +References,31,ReferenceType +ReferenceTypeAttributes,367,DataType +ReferenceTypeAttributes_Encoding_DefaultBinary,369,Object +ReferenceTypeAttributes_Encoding_DefaultJson,15160,Object +ReferenceTypeAttributes_Encoding_DefaultXml,368,Object +ReferenceTypeNode,273,DataType +ReferenceTypeNode_Encoding_DefaultBinary,275,Object +ReferenceTypeNode_Encoding_DefaultJson,15076,Object +ReferenceTypeNode_Encoding_DefaultXml,274,Object +ReferenceTypesFolder,91,Object +RefreshEndEventType,2788,ObjectType +RefreshRequiredEventType,2789,ObjectType +RefreshStartEventType,2787,ObjectType +RegisteredServer,432,DataType +RegisteredServer_Encoding_DefaultBinary,434,Object +RegisteredServer_Encoding_DefaultJson,15102,Object +RegisteredServer_Encoding_DefaultXml,433,Object +RegisterNodesRequest,558,DataType +RegisterNodesRequest_Encoding_DefaultBinary,560,Object +RegisterNodesRequest_Encoding_DefaultJson,15195,Object +RegisterNodesRequest_Encoding_DefaultXml,559,Object +RegisterNodesResponse,561,DataType +RegisterNodesResponse_Encoding_DefaultBinary,563,Object +RegisterNodesResponse_Encoding_DefaultJson,15196,Object +RegisterNodesResponse_Encoding_DefaultXml,562,Object +RegisterServer2Request,12193,DataType +RegisterServer2Request_Encoding_DefaultBinary,12211,Object +RegisterServer2Request_Encoding_DefaultJson,15107,Object +RegisterServer2Request_Encoding_DefaultXml,12199,Object +RegisterServer2Response,12194,DataType +RegisterServer2Response_Encoding_DefaultBinary,12212,Object +RegisterServer2Response_Encoding_DefaultJson,15130,Object +RegisterServer2Response_Encoding_DefaultXml,12200,Object +RegisterServerRequest,435,DataType +RegisterServerRequest_Encoding_DefaultBinary,437,Object +RegisterServerRequest_Encoding_DefaultJson,15103,Object +RegisterServerRequest_Encoding_DefaultXml,436,Object +RegisterServerResponse,438,DataType +RegisterServerResponse_Encoding_DefaultBinary,440,Object +RegisterServerResponse_Encoding_DefaultJson,15104,Object +RegisterServerResponse_Encoding_DefaultXml,439,Object +RelativePath,540,DataType +RelativePath_Encoding_DefaultBinary,542,Object +RelativePath_Encoding_DefaultJson,15189,Object +RelativePath_Encoding_DefaultXml,541,Object +RelativePathElement,537,DataType +RelativePathElement_Encoding_DefaultBinary,539,Object +RelativePathElement_Encoding_DefaultJson,15188,Object +RelativePathElement_Encoding_DefaultXml,538,Object +RepublishRequest,830,DataType +RepublishRequest_Encoding_DefaultBinary,832,Object +RepublishRequest_Encoding_DefaultJson,15354,Object +RepublishRequest_Encoding_DefaultXml,831,Object +RepublishResponse,833,DataType +RepublishResponse_Encoding_DefaultBinary,835,Object +RepublishResponse_Encoding_DefaultJson,15355,Object +RepublishResponse_Encoding_DefaultXml,834,Object +RequestHeader,389,DataType +RequestHeader_Encoding_DefaultBinary,391,Object +RequestHeader_Encoding_DefaultJson,15088,Object +RequestHeader_Encoding_DefaultXml,390,Object +Resources,24226,Object +ResponseHeader,392,DataType +ResponseHeader_Encoding_DefaultBinary,394,Object +ResponseHeader_Encoding_DefaultJson,15089,Object +ResponseHeader_Encoding_DefaultXml,393,Object +RoleMappingRuleChangedAuditEventType,17641,ObjectType +RolePermissionType,96,DataType +RolePermissionType_Encoding_DefaultBinary,128,Object +RolePermissionType_Encoding_DefaultJson,15062,Object +RolePermissionType_Encoding_DefaultXml,16126,Object +RoleSetType,15607,ObjectType +RoleType,15620,ObjectType +RootFolder,84,Object +RsaEncryptedSecret,17545,DataType +RsaMinApplicationCertificateType,12559,ObjectType +RsaSha256ApplicationCertificateType,12560,ObjectType +SafetyConditionClassType,17218,ObjectType +SamplingIntervalDiagnosticsArrayType,2164,VariableType +SamplingIntervalDiagnosticsDataType,856,DataType +SamplingIntervalDiagnosticsDataType_Encoding_DefaultBinary,858,Object +SamplingIntervalDiagnosticsDataType_Encoding_DefaultJson,15365,Object +SamplingIntervalDiagnosticsDataType_Encoding_DefaultXml,857,Object +SamplingIntervalDiagnosticsType,2165,VariableType +SByte,2,DataType +SecurityGroupFolderType,15452,ObjectType +SecurityGroupType,15471,ObjectType +SecurityTokenRequestType,315,DataType +SelectionListType,16309,VariableType +SemanticChangeEventType,2738,ObjectType +SemanticChangeStructureDataType,897,DataType +SemanticChangeStructureDataType_Encoding_DefaultBinary,899,Object +SemanticChangeStructureDataType_Encoding_DefaultJson,15374,Object +SemanticChangeStructureDataType_Encoding_DefaultXml,898,Object +Server,2253,Object +Server_ServerRedundancy_CurrentServerId,11312,Variable +Server_ServerRedundancy_RedundantServerArray,11313,Variable +Server_ServerRedundancy_ServerNetworkGroups,14415,Variable +Server_ServerRedundancy_ServerUriArray,11314,Variable +ServerCapabilitiesType,2013,ObjectType +ServerConfiguration,12637,Object +ServerConfigurationType,12581,ObjectType +ServerDiagnosticsSummaryDataType,859,DataType +ServerDiagnosticsSummaryDataType_Encoding_DefaultBinary,861,Object +ServerDiagnosticsSummaryDataType_Encoding_DefaultJson,15366,Object +ServerDiagnosticsSummaryDataType_Encoding_DefaultXml,860,Object +ServerDiagnosticsSummaryType,2150,VariableType +ServerDiagnosticsType,2020,ObjectType +ServerOnNetwork,12189,DataType +ServerOnNetwork_Encoding_DefaultBinary,12207,Object +ServerOnNetwork_Encoding_DefaultJson,15095,Object +ServerOnNetwork_Encoding_DefaultXml,12195,Object +ServerRedundancyType,2034,ObjectType +ServerState,852,DataType +ServerStatusDataType,862,DataType +ServerStatusDataType_Encoding_DefaultBinary,864,Object +ServerStatusDataType_Encoding_DefaultJson,15367,Object +ServerStatusDataType_Encoding_DefaultXml,863,Object +ServerStatusType,2138,VariableType +ServerType,2004,ObjectType +ServerVendorCapabilityType,2137,VariableType +ServiceCounterDataType,871,DataType +ServiceCounterDataType_Encoding_DefaultBinary,873,Object +ServiceCounterDataType_Encoding_DefaultJson,15370,Object +ServiceCounterDataType_Encoding_DefaultXml,872,Object +ServiceFault,395,DataType +ServiceFault_Encoding_DefaultBinary,397,Object +ServiceFault_Encoding_DefaultJson,15090,Object +ServiceFault_Encoding_DefaultXml,396,Object +SessionAuthenticationToken,388,DataType +SessionDiagnosticsArrayType,2196,VariableType +SessionDiagnosticsDataType,865,DataType +SessionDiagnosticsDataType_Encoding_DefaultBinary,867,Object +SessionDiagnosticsDataType_Encoding_DefaultJson,15368,Object +SessionDiagnosticsDataType_Encoding_DefaultXml,866,Object +SessionDiagnosticsObjectType,2029,ObjectType +SessionDiagnosticsVariableType,2197,VariableType +SessionlessInvokeRequestType,15901,DataType +SessionlessInvokeRequestType_Encoding_DefaultBinary,15903,Object +SessionlessInvokeRequestType_Encoding_DefaultJson,15091,Object +SessionlessInvokeRequestType_Encoding_DefaultXml,15902,Object +SessionlessInvokeResponseType,20999,DataType +SessionlessInvokeResponseType_Encoding_DefaultBinary,21001,Object +SessionlessInvokeResponseType_Encoding_DefaultJson,15092,Object +SessionlessInvokeResponseType_Encoding_DefaultXml,21000,Object +SessionsDiagnosticsSummaryType,2026,ObjectType +SessionSecurityDiagnosticsArrayType,2243,VariableType +SessionSecurityDiagnosticsDataType,868,DataType +SessionSecurityDiagnosticsDataType_Encoding_DefaultBinary,870,Object +SessionSecurityDiagnosticsDataType_Encoding_DefaultJson,15369,Object +SessionSecurityDiagnosticsDataType_Encoding_DefaultXml,869,Object +SessionSecurityDiagnosticsType,2244,VariableType +SetMonitoringModeRequest,767,DataType +SetMonitoringModeRequest_Encoding_DefaultBinary,769,Object +SetMonitoringModeRequest_Encoding_DefaultJson,15329,Object +SetMonitoringModeRequest_Encoding_DefaultXml,768,Object +SetMonitoringModeResponse,770,DataType +SetMonitoringModeResponse_Encoding_DefaultBinary,772,Object +SetMonitoringModeResponse_Encoding_DefaultJson,15331,Object +SetMonitoringModeResponse_Encoding_DefaultXml,771,Object +SetPublishingModeRequest,797,DataType +SetPublishingModeRequest_Encoding_DefaultBinary,799,Object +SetPublishingModeRequest_Encoding_DefaultJson,15341,Object +SetPublishingModeRequest_Encoding_DefaultXml,798,Object +SetPublishingModeResponse,800,DataType +SetPublishingModeResponse_Encoding_DefaultBinary,802,Object +SetPublishingModeResponse_Encoding_DefaultJson,15342,Object +SetPublishingModeResponse_Encoding_DefaultXml,801,Object +SetTriggeringRequest,773,DataType +SetTriggeringRequest_Encoding_DefaultBinary,775,Object +SetTriggeringRequest_Encoding_DefaultJson,15332,Object +SetTriggeringRequest_Encoding_DefaultXml,774,Object +SetTriggeringResponse,776,DataType +SetTriggeringResponse_Encoding_DefaultBinary,778,Object +SetTriggeringResponse_Encoding_DefaultJson,15333,Object +SetTriggeringResponse_Encoding_DefaultXml,777,Object +ShelvedStateMachineType,2929,ObjectType +SignatureData,456,DataType +SignatureData_Encoding_DefaultBinary,458,Object +SignatureData_Encoding_DefaultJson,15137,Object +SignatureData_Encoding_DefaultXml,457,Object +SignedSoftwareCertificate,344,DataType +SignedSoftwareCertificate_Encoding_DefaultBinary,346,Object +SignedSoftwareCertificate_Encoding_DefaultJson,15136,Object +SignedSoftwareCertificate_Encoding_DefaultXml,345,Object +SimpleAttributeOperand,601,DataType +SimpleAttributeOperand_Encoding_DefaultBinary,603,Object +SimpleAttributeOperand_Encoding_DefaultJson,15210,Object +SimpleAttributeOperand_Encoding_DefaultXml,602,Object +SimpleTypeDescription,15005,DataType +SimpleTypeDescription_Encoding_DefaultBinary,15421,Object +SimpleTypeDescription_Encoding_DefaultJson,15700,Object +SimpleTypeDescription_Encoding_DefaultXml,15529,Object +StateMachineType,2299,ObjectType +StateType,2307,ObjectType +StateVariableType,2755,VariableType +StatisticalConditionClassType,18665,ObjectType +StatusChangeNotification,818,DataType +StatusChangeNotification_Encoding_DefaultBinary,820,Object +StatusChangeNotification_Encoding_DefaultJson,15350,Object +StatusChangeNotification_Encoding_DefaultXml,819,Object +StatusCode,19,DataType +StatusResult,299,DataType +StatusResult_Encoding_DefaultBinary,301,Object +StatusResult_Encoding_DefaultJson,15371,Object +StatusResult_Encoding_DefaultXml,300,Object +Streams,24230,Object +String,12,DataType +Structure,22,DataType +StructureDefinition,99,DataType +StructureDefinition_Encoding_DefaultBinary,122,Object +StructureDefinition_Encoding_DefaultJson,15066,Object +StructureDefinition_Encoding_DefaultXml,14798,Object +StructureDescription,15487,DataType +StructureDescription_Encoding_DefaultBinary,126,Object +StructureDescription_Encoding_DefaultJson,15058,Object +StructureDescription_Encoding_DefaultXml,15589,Object +StructureField,101,DataType +StructureField_Encoding_DefaultBinary,14844,Object +StructureField_Encoding_DefaultJson,15065,Object +StructureField_Encoding_DefaultXml,14800,Object +StructureType,98,DataType +SubscribedDataSetDataType,15630,DataType +SubscribedDataSetDataType_Encoding_DefaultBinary,15707,Object +SubscribedDataSetDataType_Encoding_DefaultJson,16308,Object +SubscribedDataSetDataType_Encoding_DefaultXml,16010,Object +SubscribedDataSetMirrorDataType,15635,DataType +SubscribedDataSetMirrorDataType_Encoding_DefaultBinary,15713,Object +SubscribedDataSetMirrorDataType_Encoding_DefaultJson,16311,Object +SubscribedDataSetMirrorDataType_Encoding_DefaultXml,16012,Object +SubscribedDataSetMirrorType,15127,ObjectType +SubscribedDataSetType,15108,ObjectType +SubscriptionAcknowledgement,821,DataType +SubscriptionAcknowledgement_Encoding_DefaultBinary,823,Object +SubscriptionAcknowledgement_Encoding_DefaultJson,15351,Object +SubscriptionAcknowledgement_Encoding_DefaultXml,822,Object +SubscriptionDiagnosticsArrayType,2171,VariableType +SubscriptionDiagnosticsDataType,874,DataType +SubscriptionDiagnosticsDataType_Encoding_DefaultBinary,876,Object +SubscriptionDiagnosticsDataType_Encoding_DefaultJson,15372,Object +SubscriptionDiagnosticsDataType_Encoding_DefaultXml,875,Object +SubscriptionDiagnosticsType,2172,VariableType +SystemConditionClassType,11166,ObjectType +SystemDiagnosticAlarmType,18496,ObjectType +SystemEventType,2130,ObjectType +SystemOffNormalAlarmType,11753,ObjectType +SystemStatusChangeEventType,11446,ObjectType +TagVariables,23479,Object +TalkerStreams,24231,Object +TargetVariablesDataType,15631,DataType +TargetVariablesDataType_Encoding_DefaultBinary,15712,Object +TargetVariablesDataType_Encoding_DefaultJson,16310,Object +TargetVariablesDataType_Encoding_DefaultXml,16011,Object +TargetVariablesType,15111,ObjectType +TemporaryFileTransferType,15744,ObjectType +TestingConditionSubClassType,17221,ObjectType +ThreeDCartesianCoordinates,18810,DataType +ThreeDCartesianCoordinates_Encoding_DefaultBinary,18819,Object +ThreeDCartesianCoordinates_Encoding_DefaultJson,19068,Object +ThreeDCartesianCoordinates_Encoding_DefaultXml,18855,Object +ThreeDCartesianCoordinatesType,18774,VariableType +ThreeDFrame,18814,DataType +ThreeDFrame_Encoding_DefaultBinary,18823,Object +ThreeDFrame_Encoding_DefaultJson,19072,Object +ThreeDFrame_Encoding_DefaultXml,18859,Object +ThreeDFrameType,18791,VariableType +ThreeDOrientation,18812,DataType +ThreeDOrientation_Encoding_DefaultBinary,18821,Object +ThreeDOrientation_Encoding_DefaultJson,19070,Object +ThreeDOrientation_Encoding_DefaultXml,18857,Object +ThreeDOrientationType,18781,VariableType +ThreeDVector,18808,DataType +ThreeDVector_Encoding_DefaultBinary,18817,Object +ThreeDVector_Encoding_DefaultJson,19066,Object +ThreeDVector_Encoding_DefaultXml,18853,Object +ThreeDVectorType,17716,VariableType +Time,292,DataType +TimestampsToReturn,625,DataType +TimeString,12880,DataType +TimeZoneDataType,8912,DataType +TimeZoneDataType_Encoding_DefaultBinary,8917,Object +TimeZoneDataType_Encoding_DefaultJson,15086,Object +TimeZoneDataType_Encoding_DefaultXml,8913,Object +Topics,23488,Object +ToState,52,ReferenceType +TrainingConditionClassType,17220,ObjectType +TransferResult,836,DataType +TransferResult_Encoding_DefaultBinary,838,Object +TransferResult_Encoding_DefaultJson,15356,Object +TransferResult_Encoding_DefaultXml,837,Object +TransferSubscriptionsRequest,839,DataType +TransferSubscriptionsRequest_Encoding_DefaultBinary,841,Object +TransferSubscriptionsRequest_Encoding_DefaultJson,15357,Object +TransferSubscriptionsRequest_Encoding_DefaultXml,840,Object +TransferSubscriptionsResponse,842,DataType +TransferSubscriptionsResponse_Encoding_DefaultBinary,844,Object +TransferSubscriptionsResponse_Encoding_DefaultJson,15358,Object +TransferSubscriptionsResponse_Encoding_DefaultXml,843,Object +TransitionEventType,2311,ObjectType +TransitionType,2310,ObjectType +TransitionVariableType,2762,VariableType +TranslateBrowsePathsToNodeIdsRequest,552,DataType +TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary,554,Object +TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultJson,15193,Object +TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultXml,553,Object +TranslateBrowsePathsToNodeIdsResponse,555,DataType +TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary,557,Object +TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultJson,15194,Object +TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultXml,556,Object +TransparentRedundancyType,2036,ObjectType +TripAlarmType,10751,ObjectType +TrustListDataType,12554,DataType +TrustListDataType_Encoding_DefaultBinary,12680,Object +TrustListDataType_Encoding_DefaultJson,15044,Object +TrustListDataType_Encoding_DefaultXml,12676,Object +TrustListMasks,12552,DataType +TrustListOutOfDateAlarmType,19297,ObjectType +TrustListType,12522,ObjectType +TrustListUpdatedAuditEventType,12561,ObjectType +TsnFailureCode,24218,DataType +TsnListenerStatus,24224,DataType +TsnStreamState,24220,DataType +TsnTalkerStatus,24222,DataType +TwoStateDiscreteType,2373,VariableType +TwoStateVariableType,8995,VariableType +TypeNode,11880,DataType +TypeNode_Encoding_DefaultBinary,11890,Object +TypeNode_Encoding_DefaultJson,15070,Object +TypeNode_Encoding_DefaultXml,11888,Object +TypesFolder,86,Object +UABinaryFileDataType,15006,DataType +UABinaryFileDataType_Encoding_DefaultBinary,15422,Object +UABinaryFileDataType_Encoding_DefaultJson,15714,Object +UABinaryFileDataType_Encoding_DefaultXml,15531,Object +UadpDataSetMessageContentMask,15646,DataType +UadpDataSetReaderMessageDataType,15653,DataType +UadpDataSetReaderMessageDataType_Encoding_DefaultBinary,15718,Object +UadpDataSetReaderMessageDataType_Encoding_DefaultJson,16392,Object +UadpDataSetReaderMessageDataType_Encoding_DefaultXml,16016,Object +UadpDataSetReaderMessageType,21116,ObjectType +UadpDataSetWriterMessageDataType,15652,DataType +UadpDataSetWriterMessageDataType_Encoding_DefaultBinary,15717,Object +UadpDataSetWriterMessageDataType_Encoding_DefaultJson,16391,Object +UadpDataSetWriterMessageDataType_Encoding_DefaultXml,16015,Object +UadpDataSetWriterMessageType,21111,ObjectType +UadpNetworkMessageContentMask,15642,DataType +UadpWriterGroupMessageDataType,15645,DataType +UadpWriterGroupMessageDataType_Encoding_DefaultBinary,15715,Object +UadpWriterGroupMessageDataType_Encoding_DefaultJson,16323,Object +UadpWriterGroupMessageDataType_Encoding_DefaultXml,16014,Object +UadpWriterGroupMessageType,21105,ObjectType +UInt16,5,DataType +UInt32,7,DataType +UInt64,9,DataType +UInteger,28,DataType +Union,12756,DataType +Union_Encoding_DefaultBinary,12766,Object +Union_Encoding_DefaultJson,15085,Object +Union_Encoding_DefaultXml,12758,Object +UnregisterNodesRequest,564,DataType +UnregisterNodesRequest_Encoding_DefaultBinary,566,Object +UnregisterNodesRequest_Encoding_DefaultJson,15197,Object +UnregisterNodesRequest_Encoding_DefaultXml,565,Object +UnregisterNodesResponse,567,DataType +UnregisterNodesResponse_Encoding_DefaultBinary,569,Object +UnregisterNodesResponse_Encoding_DefaultJson,15198,Object +UnregisterNodesResponse_Encoding_DefaultXml,568,Object +UnsignedRationalNumber,24107,DataType +UnsignedRationalNumber_Encoding_DefaultBinary,24110,Object +UnsignedRationalNumber_Encoding_DefaultJson,24134,Object +UnsignedRationalNumber_Encoding_DefaultXml,24122,Object +UpdateDataDetails,680,DataType +UpdateDataDetails_Encoding_DefaultBinary,682,Object +UpdateDataDetails_Encoding_DefaultJson,15280,Object +UpdateDataDetails_Encoding_DefaultXml,681,Object +UpdateEventDetails,683,DataType +UpdateEventDetails_Encoding_DefaultBinary,685,Object +UpdateEventDetails_Encoding_DefaultJson,15282,Object +UpdateEventDetails_Encoding_DefaultXml,684,Object +UpdateStructureDataDetails,11295,DataType +UpdateStructureDataDetails_Encoding_DefaultBinary,11300,Object +UpdateStructureDataDetails_Encoding_DefaultJson,15281,Object +UpdateStructureDataDetails_Encoding_DefaultXml,11296,Object +UriDictionaryEntryType,17600,ObjectType +UserCredentialCertificateType,15181,ObjectType +UserIdentityToken,316,DataType +UserIdentityToken_Encoding_DefaultBinary,318,Object +UserIdentityToken_Encoding_DefaultJson,15140,Object +UserIdentityToken_Encoding_DefaultXml,317,Object +UserNameIdentityToken,322,DataType +UserNameIdentityToken_Encoding_DefaultBinary,324,Object +UserNameIdentityToken_Encoding_DefaultJson,15142,Object +UserNameIdentityToken_Encoding_DefaultXml,323,Object +UserTokenPolicy,304,DataType +UserTokenPolicy_Encoding_DefaultBinary,306,Object +UserTokenPolicy_Encoding_DefaultJson,15098,Object +UserTokenPolicy_Encoding_DefaultXml,305,Object +UserTokenType,303,DataType +UtcTime,294,DataType +ValueAsText,11433,Variable +VariableAttributes,355,DataType +VariableAttributes_Encoding_DefaultBinary,357,Object +VariableAttributes_Encoding_DefaultJson,15153,Object +VariableAttributes_Encoding_DefaultXml,356,Object +VariableNode,267,DataType +VariableNode_Encoding_DefaultBinary,269,Object +VariableNode_Encoding_DefaultJson,15074,Object +VariableNode_Encoding_DefaultXml,268,Object +VariableTypeAttributes,364,DataType +VariableTypeAttributes_Encoding_DefaultBinary,366,Object +VariableTypeAttributes_Encoding_DefaultJson,15159,Object +VariableTypeAttributes_Encoding_DefaultXml,365,Object +VariableTypeNode,270,DataType +VariableTypeNode_Encoding_DefaultBinary,272,Object +VariableTypeNode_Encoding_DefaultJson,15075,Object +VariableTypeNode_Encoding_DefaultXml,271,Object +VariableTypesFolder,89,Object +Vector,18807,DataType +Vector_Encoding_DefaultBinary,18816,Object +Vector_Encoding_DefaultJson,19065,Object +Vector_Encoding_DefaultXml,18852,Object +VectorType,17714,VariableType +VendorServerInfoType,2033,ObjectType +VersionTime,20998,DataType +ViewAttributes,373,DataType +ViewAttributes_Encoding_DefaultBinary,375,Object +ViewAttributes_Encoding_DefaultJson,15162,Object +ViewAttributes_Encoding_DefaultXml,374,Object +ViewDescription,511,DataType +ViewDescription_Encoding_DefaultBinary,513,Object +ViewDescription_Encoding_DefaultJson,15179,Object +ViewDescription_Encoding_DefaultXml,512,Object +ViewNode,279,DataType +ViewNode_Encoding_DefaultBinary,281,Object +ViewNode_Encoding_DefaultJson,15078,Object +ViewNode_Encoding_DefaultXml,280,Object +ViewsFolder,87,Object +ViewVersion,12170,Variable +WellKnownRole_Anonymous,15644,Object +WellKnownRole_AuthenticatedUser,15656,Object +WellKnownRole_ConfigureAdmin,15716,Object +WellKnownRole_Engineer,16036,Object +WellKnownRole_Observer,15668,Object +WellKnownRole_Operator,15680,Object +WellKnownRole_SecurityAdmin,15704,Object +WellKnownRole_Supervisor,15692,Object +WriteRequest,671,DataType +WriteRequest_Encoding_DefaultBinary,673,Object +WriteRequest_Encoding_DefaultJson,15277,Object +WriteRequest_Encoding_DefaultXml,672,Object +WriteResponse,674,DataType +WriteResponse_Encoding_DefaultBinary,676,Object +WriteResponse_Encoding_DefaultJson,15278,Object +WriteResponse_Encoding_DefaultXml,675,Object +WriterGroupDataType,15480,DataType +WriterGroupDataType_Encoding_DefaultBinary,21150,Object +WriterGroupDataType_Encoding_DefaultJson,21198,Object +WriterGroupDataType_Encoding_DefaultXml,21174,Object +WriterGroupMessageDataType,15616,DataType +WriterGroupMessageDataType_Encoding_DefaultBinary,15693,Object +WriterGroupMessageDataType_Encoding_DefaultJson,16280,Object +WriterGroupMessageDataType_Encoding_DefaultXml,15991,Object +WriterGroupMessageType,17998,ObjectType +WriterGroupTransportDataType,15611,DataType +WriterGroupTransportDataType_Encoding_DefaultBinary,15691,Object +WriterGroupTransportDataType_Encoding_DefaultJson,16161,Object +WriterGroupTransportDataType_Encoding_DefaultXml,15990,Object +WriterGroupTransportType,17997,ObjectType +WriterGroupType,17725,ObjectType +WriteValue,668,DataType +WriteValue_Encoding_DefaultBinary,670,Object +WriteValue_Encoding_DefaultJson,15276,Object +WriteValue_Encoding_DefaultXml,669,Object +X509IdentityToken,325,DataType +X509IdentityToken_Encoding_DefaultBinary,327,Object +X509IdentityToken_Encoding_DefaultJson,15143,Object +X509IdentityToken_Encoding_DefaultXml,326,Object +XmlElement,16,DataType +XmlSchema_TypeSystem,92,Object +XVType,12080,DataType +XVType_Encoding_DefaultBinary,12090,Object +XVType_Encoding_DefaultJson,15380,Object +XVType_Encoding_DefaultXml,12082,Object +XYArrayItemType,12038,VariableType +YArrayItemType,12029,VariableType diff --git a/protocols/opcua/downloads/Opc.Ua.NodeSet2.Services.xml b/protocols/opcua/downloads/Opc.Ua.NodeSet2.Services.xml new file mode 100644 index 00000000000..d37964bb2fa --- /dev/null +++ b/protocols/opcua/downloads/Opc.Ua.NodeSet2.Services.xml @@ -0,0 +1,63477 @@ + + + + + + + + + i=1 + i=2 + i=3 + i=4 + i=5 + i=6 + i=7 + i=8 + i=9 + i=10 + i=11 + i=13 + i=12 + i=15 + i=14 + i=16 + i=17 + i=18 + i=20 + i=21 + i=19 + i=22 + i=26 + i=27 + i=28 + i=47 + i=46 + i=35 + i=36 + i=48 + i=45 + i=40 + i=37 + i=38 + i=39 + i=53 + i=52 + i=51 + i=54 + i=9004 + i=9005 + i=17597 + i=9006 + i=15112 + i=17604 + i=17603 + + + Default Binary + + i=58 + + + + Default XML + + i=58 + + + + BaseDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + + + Number + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=24 + + + + Integer + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=26 + + + + UInteger + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=26 + + + + Enumeration + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1 + + i=24 + + + + + Boolean + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.8 + + i=24 + + + + SByte + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.17 + + i=27 + + + + Byte + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.9 + + i=28 + + + + Int16 + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.25 + + i=27 + + + + UInt16 + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.35 + + i=28 + + + + Int32 + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.26 + + i=27 + + + + UInt32 + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.36 + + i=28 + + + + Int64 + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.27 + + i=27 + + + + UInt64 + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=28 + + + + Float + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.15 + + i=26 + + + + Double + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=26 + + + + String + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=24 + + + + DateTime + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=24 + + + + Guid + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.16 + + i=24 + + + + ByteString + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=24 + + + + XmlElement + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.39 + + i=24 + + + + NodeId + https://reference.opcfoundation.org/v104/Core/docs/Part3/5.2.2 + + i=24 + + + + ExpandedNodeId + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.11 + + i=24 + + + + StatusCode + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.34.1 + + i=24 + + + + QualifiedName + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.3 + + i=24 + + + + LocalizedText + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.5 + + i=24 + + + + Structure + https://reference.opcfoundation.org/v104/Part22/docs/5.3.2 + + i=24 + + + + DataValue + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.7.1 + + i=24 + + + + DiagnosticInfo + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.8 + + i=24 + + + + Image + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=15 + + + + Decimal + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.54 + + i=26 + + + + References + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.1 + + + + NonHierarchicalReferences + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.3 + + i=31 + + + + HierarchicalReferences + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.2 + + i=31 + + HierarchicalReferences + + + HasChild + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.4 + + i=33 + + ChildOf + + + Organizes + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.6 + + i=33 + + OrganizedBy + + + HasEventSource + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.14 + + i=33 + + EventSourceOf + + + HasModellingRule + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.11 + + i=32 + + ModellingRuleOf + + + HasEncoding + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.13 + + i=32 + + EncodingOf + + + HasDescription + https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.1 + + i=32 + + DescriptionOf + + + HasTypeDefinition + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.12 + + i=32 + + TypeDefinitionOf + + + GeneratesEvent + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.16 + + i=32 + + GeneratedBy + + + AlwaysGeneratesEvent + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.17 + + i=41 + + AlwaysGeneratedBy + + + Aggregates + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.5 + + i=34 + + AggregatedBy + + + HasSubtype + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.10 + + i=34 + + SubtypeOf + + + HasProperty + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.9 + + i=44 + + PropertyOf + + + HasComponent + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.7 + + i=44 + + ComponentOf + + + HasNotifier + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.15 + + i=36 + + NotifierOf + + + HasOrderedComponent + https://reference.opcfoundation.org/v104/Core/docs/Part5/11.8 + + i=47 + + OrderedComponentOf + + + FromState + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.11 + + i=32 + + ToTransition + + + ToState + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.12 + + i=32 + + FromTransition + + + HasCause + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.13 + + i=32 + + MayBeCausedBy + + + HasEffect + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.14 + + i=32 + + MayBeEffectedBy + + + HasSubStateMachine + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.15 + + i=32 + + SubStateMachineOf + + + HasHistoricalConfiguration + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.2.3 + + i=44 + + HistoricalConfigurationOf + + + BaseObjectType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.2 + + + + FolderType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.6 + + i=58 + + + + BaseVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.2 + + + + BaseDataVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.4 + + i=62 + + + + PropertyType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.3 + + i=62 + + + + DataTypeDescriptionType + https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.3 + + i=104 + i=105 + i=63 + + + + DataTypeVersion + + i=68 + i=80 + i=69 + + + + DictionaryFragment + + i=68 + i=80 + i=69 + + + + DataTypeDictionaryType + https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.2 + + i=106 + i=107 + i=15001 + i=63 + + + + DataTypeVersion + + i=68 + i=80 + i=72 + + + + NamespaceUri + + i=68 + i=80 + i=72 + + + + Deprecated + + i=68 + i=80 + i=72 + + + + DataTypeSystemType + https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.4 + + i=58 + + + + DataTypeEncodingType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.7 + + i=58 + + + + NamingRuleType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.29 + + i=12169 + i=29 + + + + The BrowseName must appear in all instances of the type. + + + The BrowseName may appear in an instance of the type. + + + The modelling rule defines a constraint and the BrowseName is not used in an instance of the type. + + + + + EnumValues + + i=68 + i=120 + + + + + + i=7616 + + + + 1 + + Mandatory + + + The BrowseName must appear in all instances of the type. + + + + + + + i=7616 + + + + 2 + + Optional + + + The BrowseName may appear in an instance of the type. + + + + + + + i=7616 + + + + 3 + + Constraint + + + The modelling rule defines a constraint and the BrowseName is not used in an instance of the type. + + + + + + + + + ModellingRuleType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.5 + + i=111 + i=58 + + + + NamingRule + + i=68 + i=78 + i=77 + + + 1 + + + + Mandatory + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.2 + + i=112 + i=77 + + + + NamingRule + + i=68 + i=78 + + + 1 + + + + Optional + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.3 + + i=113 + i=77 + + + + NamingRule + + i=68 + i=80 + + + 2 + + + + ExposesItsArray + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.1 + + i=114 + i=77 + + + + NamingRule + + i=68 + i=83 + + + 3 + + + + OptionalPlaceholder + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.4 + + i=11509 + i=77 + + + + NamingRule + + i=68 + i=11508 + + + 2 + + + + MandatoryPlaceholder + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.5 + + i=11511 + i=77 + + + + NamingRule + + i=68 + i=11510 + + + 1 + + + + Root + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.2 + + i=61 + + + + Objects + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.4 + + i=84 + i=61 + + + + Types + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.5 + + i=84 + i=61 + + + + Views + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.3 + + i=84 + i=61 + + + + ObjectTypes + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.6 + + i=86 + i=58 + i=61 + + + + VariableTypes + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.7 + + i=86 + i=62 + i=61 + + + + DataTypes + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.9 + + i=86 + i=24 + i=61 + + + + ReferenceTypes + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.8 + + i=86 + i=31 + i=61 + + + + XML Schema + https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.6 + + i=90 + i=75 + + + + OPC Binary + https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.5 + + i=90 + i=75 + + + + HasArgumentDescription + https://reference.opcfoundation.org/v104/Core/docs/Amendment3/11.18 + + i=47 + + ArgumentDescriptionOf + + + HasOptionalInputArgumentDescription + https://reference.opcfoundation.org/v104/Core/docs/Amendment3/11.19 + + i=129 + + OptionalInputArgumentDescriptionOf + + + http://opcfoundation.org/UA/ + + i=15958 + i=15959 + i=15960 + i=15961 + i=15962 + i=15963 + i=15964 + i=16134 + i=16135 + i=16136 + i=11715 + i=11616 + + + + NamespaceUri + + i=68 + i=15957 + + + http://opcfoundation.org/UA/ + + + + NamespaceVersion + + i=68 + i=15957 + + + 1.04.10 + + + + NamespacePublicationDate + + i=68 + i=15957 + + + 2021-09-15T00:00:00Z + + + + IsNamespaceSubset + + i=68 + i=15957 + + + false + + + + StaticNodeIdTypes + + i=68 + i=15957 + + + + 0 + + + + + StaticNumericNodeIdRange + + i=68 + i=15957 + + + + 1:2252 + 2270 + 2273 + 2280 + 2283 + 2291:2293 + 2297:2734 + 2738:2991 + 2995 + 2998:3703 + 3710:11191 + 11194:11195 + 11202:11241 + 11243:11272 + 11276:11280 + 11284:11311 + 11315:11491 + 11495:11501 + 11503:11701 + 11706 + 11708 + 11716:12164 + 12169:12748 + 12752:12872 + 12875:12884 + 12888:12910 + 12912:14414 + 14416:15003 + 15005:15605 + 15607:16300 + 16306:17633 + 17635:19090 + 19092:2147483647 + + + + + StaticStringNodeIdPattern + + i=68 + i=15957 + + + + + + + DefaultRolePermissions + + i=68 + i=15957 + + + + DefaultUserRolePermissions + + i=68 + i=15957 + + + + DefaultAccessRestrictions + + i=68 + i=15957 + + + + NodeVersion + + i=68 + + + + ViewVersion + + i=68 + + + + Icon + + i=68 + + + + LocalTime + + i=68 + + + + AllowNulls + + i=68 + + + + ValueAsText + + i=68 + + + + MaxStringLength + + i=68 + + + + MaxCharacters + + i=68 + + + + MaxByteStringLength + + i=68 + + + + MaxArrayLength + + i=68 + + + + EngineeringUnits + + i=68 + + + + EnumStrings + + i=68 + + + + EnumValues + + i=68 + + + + OptionSetValues + + i=68 + + + + InputArguments + + i=68 + + + + OutputArguments + + i=68 + + + + DefaultInstanceBrowseName + + i=68 + + + + ImageBMP + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.20 + + i=30 + + + + ImageGIF + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.21 + + i=30 + + + + ImageJPG + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.22 + + i=30 + + + + ImagePNG + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.23 + + i=30 + + + + AudioDataType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.53 + + i=15 + + + + Union + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.42 + + i=22 + + + + + ServerType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.1 + + i=2005 + i=2006 + i=15003 + i=2007 + i=2008 + i=2742 + i=12882 + i=17612 + i=2009 + i=2010 + i=2011 + i=2012 + i=11527 + i=11489 + i=12871 + i=12746 + i=12883 + i=58 + + + + ServerArray + + i=68 + i=78 + i=2004 + + + + NamespaceArray + + i=68 + i=78 + i=2004 + + + + UrisVersion + + i=68 + i=80 + i=2004 + + + + ServerStatus + + i=3074 + i=3075 + i=3076 + i=3077 + i=3084 + i=3085 + i=2138 + i=78 + i=2004 + + + + StartTime + + i=63 + i=78 + i=2007 + + + + CurrentTime + + i=63 + i=78 + i=2007 + + + + State + + i=63 + i=78 + i=2007 + + + + BuildInfo + + i=3078 + i=3079 + i=3080 + i=3081 + i=3082 + i=3083 + i=3051 + i=78 + i=2007 + + + + ProductUri + + i=63 + i=78 + i=3077 + + + + ManufacturerName + + i=63 + i=78 + i=3077 + + + + ProductName + + i=63 + i=78 + i=3077 + + + + SoftwareVersion + + i=63 + i=78 + i=3077 + + + + BuildNumber + + i=63 + i=78 + i=3077 + + + + BuildDate + + i=63 + i=78 + i=3077 + + + + SecondsTillShutdown + + i=63 + i=78 + i=2007 + + + + ShutdownReason + + i=63 + i=78 + i=2007 + + + + ServiceLevel + + i=68 + i=78 + i=2004 + + + + Auditing + + i=68 + i=78 + i=2004 + + + + EstimatedReturnTime + + i=68 + i=80 + i=2004 + + + + LocalTime + + i=68 + i=80 + i=2004 + + + + ServerCapabilities + + i=3086 + i=3087 + i=3088 + i=3089 + i=3090 + i=3091 + i=3092 + i=3093 + i=3094 + i=2013 + i=78 + i=2004 + + + + ServerProfileArray + + i=68 + i=78 + i=2009 + + + + LocaleIdArray + + i=68 + i=78 + i=2009 + + + + MinSupportedSampleRate + + i=68 + i=78 + i=2009 + + + + MaxBrowseContinuationPoints + + i=68 + i=78 + i=2009 + + + + MaxQueryContinuationPoints + + i=68 + i=78 + i=2009 + + + + MaxHistoryContinuationPoints + + i=68 + i=78 + i=2009 + + + + SoftwareCertificates + + i=68 + i=78 + i=2009 + + + + ModellingRules + + i=61 + i=78 + i=2009 + + + + AggregateFunctions + + i=61 + i=78 + i=2009 + + + + ServerDiagnostics + + i=3095 + i=3110 + i=3111 + i=3114 + i=2020 + i=78 + i=2004 + + + + ServerDiagnosticsSummary + + i=3096 + i=3097 + i=3098 + i=3099 + i=3100 + i=3101 + i=3102 + i=3104 + i=3105 + i=3106 + i=3107 + i=3108 + i=2150 + i=78 + i=2010 + + + + ServerViewCount + + i=63 + i=78 + i=3095 + + + + CurrentSessionCount + + i=63 + i=78 + i=3095 + + + + CumulatedSessionCount + + i=63 + i=78 + i=3095 + + + + SecurityRejectedSessionCount + + i=63 + i=78 + i=3095 + + + + RejectedSessionCount + + i=63 + i=78 + i=3095 + + + + SessionTimeoutCount + + i=63 + i=78 + i=3095 + + + + SessionAbortCount + + i=63 + i=78 + i=3095 + + + + PublishingIntervalCount + + i=63 + i=78 + i=3095 + + + + CurrentSubscriptionCount + + i=63 + i=78 + i=3095 + + + + CumulatedSubscriptionCount + + i=63 + i=78 + i=3095 + + + + SecurityRejectedRequestsCount + + i=63 + i=78 + i=3095 + + + + RejectedRequestsCount + + i=63 + i=78 + i=3095 + + + + SubscriptionDiagnosticsArray + + i=2171 + i=78 + i=2010 + + + + SessionsDiagnosticsSummary + + i=3112 + i=3113 + i=2026 + i=78 + i=2010 + + + + SessionDiagnosticsArray + + i=2196 + i=78 + i=3111 + + + + SessionSecurityDiagnosticsArray + + i=2243 + i=78 + i=3111 + + + + EnabledFlag + + i=68 + i=78 + i=2010 + + + + VendorServerInfo + + i=2033 + i=78 + i=2004 + + + + ServerRedundancy + + i=3115 + i=2034 + i=78 + i=2004 + + + + RedundancySupport + + i=68 + i=78 + i=2012 + + + + Namespaces + + i=11645 + i=80 + i=2004 + + + + GetMonitoredItems + + i=11490 + i=11491 + i=80 + i=2004 + + + + InputArguments + + i=68 + i=78 + i=11489 + + + + + + i=297 + + + + SubscriptionId + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=11489 + + + + + + i=297 + + + + ServerHandles + + i=7 + + 1 + + 0 + + + + + + + i=297 + + + + ClientHandles + + i=7 + + 1 + + 0 + + + + + + + + + ResendData + + i=12872 + i=80 + i=2004 + + + + InputArguments + + i=68 + i=78 + i=12871 + + + + + + i=297 + + + + SubscriptionId + + i=7 + + -1 + + + + + + + + + SetSubscriptionDurable + + i=12747 + i=12748 + i=80 + i=2004 + + + + InputArguments + + i=68 + i=78 + i=12746 + + + + + + i=297 + + + + SubscriptionId + + i=7 + + -1 + + + + + + + i=297 + + + + LifetimeInHours + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=12746 + + + + + + i=297 + + + + RevisedLifetimeInHours + + i=7 + + -1 + + + + + + + + + RequestServerStateChange + + i=12884 + i=80 + i=2004 + + + + InputArguments + + i=68 + i=78 + i=12883 + + + + + + i=297 + + + + State + + i=852 + + -1 + + + + + + + i=297 + + + + EstimatedReturnTime + + i=13 + + -1 + + + + + + + i=297 + + + + SecondsTillShutdown + + i=7 + + -1 + + + + + + + i=297 + + + + Reason + + i=21 + + -1 + + + + + + + i=297 + + + + Restart + + i=1 + + -1 + + + + + + + + + ServerCapabilitiesType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.2 + + i=2014 + i=2016 + i=2017 + i=2732 + i=2733 + i=2734 + i=3049 + i=11549 + i=11550 + i=12910 + i=11551 + i=2019 + i=2754 + i=11562 + i=16295 + i=58 + + + + ServerProfileArray + + i=68 + i=78 + i=2013 + + + + LocaleIdArray + + i=68 + i=78 + i=2013 + + + + MinSupportedSampleRate + + i=68 + i=78 + i=2013 + + + + MaxBrowseContinuationPoints + + i=68 + i=78 + i=2013 + + + + MaxQueryContinuationPoints + + i=68 + i=78 + i=2013 + + + + MaxHistoryContinuationPoints + + i=68 + i=78 + i=2013 + + + + SoftwareCertificates + + i=68 + i=78 + i=2013 + + + + MaxArrayLength + + i=68 + i=80 + i=2013 + + + + MaxStringLength + + i=68 + i=80 + i=2013 + + + + MaxByteStringLength + + i=68 + i=80 + i=2013 + + + + OperationLimits + + i=11564 + i=80 + i=2013 + + + + ModellingRules + + i=61 + i=78 + i=2013 + + + + AggregateFunctions + + i=61 + i=78 + i=2013 + + + + <VendorCapability> + + i=2137 + i=11508 + i=2013 + + + + RoleSet + + i=16296 + i=16299 + i=15607 + i=80 + i=2013 + + + + AddRole + + i=16297 + i=16298 + i=78 + i=16295 + + + + InputArguments + + i=68 + i=78 + i=16296 + + + + + + i=297 + + + + RoleName + + i=12 + + -1 + + + + + + + i=297 + + + + NamespaceUri + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16296 + + + + + + i=297 + + + + RoleNodeId + + i=17 + + -1 + + + + + + + + + RemoveRole + + i=16300 + i=78 + i=16295 + + + + InputArguments + + i=68 + i=78 + i=16299 + + + + + + i=297 + + + + RoleNodeId + + i=17 + + -1 + + + + + + + + + ServerDiagnosticsType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.3 + + i=2021 + i=2022 + i=2023 + i=2744 + i=2025 + i=58 + + + + ServerDiagnosticsSummary + + i=3116 + i=3117 + i=3118 + i=3119 + i=3120 + i=3121 + i=3122 + i=3124 + i=3125 + i=3126 + i=3127 + i=3128 + i=2150 + i=78 + i=2020 + + + + ServerViewCount + + i=63 + i=78 + i=2021 + + + + CurrentSessionCount + + i=63 + i=78 + i=2021 + + + + CumulatedSessionCount + + i=63 + i=78 + i=2021 + + + + SecurityRejectedSessionCount + + i=63 + i=78 + i=2021 + + + + RejectedSessionCount + + i=63 + i=78 + i=2021 + + + + SessionTimeoutCount + + i=63 + i=78 + i=2021 + + + + SessionAbortCount + + i=63 + i=78 + i=2021 + + + + PublishingIntervalCount + + i=63 + i=78 + i=2021 + + + + CurrentSubscriptionCount + + i=63 + i=78 + i=2021 + + + + CumulatedSubscriptionCount + + i=63 + i=78 + i=2021 + + + + SecurityRejectedRequestsCount + + i=63 + i=78 + i=2021 + + + + RejectedRequestsCount + + i=63 + i=78 + i=2021 + + + + SamplingIntervalDiagnosticsArray + + i=2164 + i=80 + i=2020 + + + + SubscriptionDiagnosticsArray + + i=2171 + i=78 + i=2020 + + + + SessionsDiagnosticsSummary + + i=3129 + i=3130 + i=2026 + i=78 + i=2020 + + + + SessionDiagnosticsArray + + i=2196 + i=78 + i=2744 + + + + SessionSecurityDiagnosticsArray + + i=2243 + i=78 + i=2744 + + + + EnabledFlag + + i=68 + i=78 + i=2020 + + + + SessionsDiagnosticsSummaryType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.4 + + i=2027 + i=2028 + i=12097 + i=58 + + + + SessionDiagnosticsArray + + i=2196 + i=78 + i=2026 + + + + SessionSecurityDiagnosticsArray + + i=2243 + i=78 + i=2026 + + + + <ClientName> + + i=12098 + i=12142 + i=12152 + i=2029 + i=11508 + i=2026 + + + + SessionDiagnostics + + i=12099 + i=12100 + i=12101 + i=12102 + i=12103 + i=12104 + i=12105 + i=12106 + i=12107 + i=12108 + i=12109 + i=12110 + i=12111 + i=12112 + i=12113 + i=12114 + i=12115 + i=12116 + i=12117 + i=12118 + i=12119 + i=12120 + i=12121 + i=12122 + i=12123 + i=12124 + i=12125 + i=12126 + i=12127 + i=12128 + i=12129 + i=12130 + i=12131 + i=12132 + i=12133 + i=12134 + i=12135 + i=12136 + i=12137 + i=12138 + i=12139 + i=12140 + i=12141 + i=2197 + i=78 + i=12097 + + + + SessionId + + i=63 + i=78 + i=12098 + + + + SessionName + + i=63 + i=78 + i=12098 + + + + ClientDescription + + i=63 + i=78 + i=12098 + + + + ServerUri + + i=63 + i=78 + i=12098 + + + + EndpointUrl + + i=63 + i=78 + i=12098 + + + + LocaleIds + + i=63 + i=78 + i=12098 + + + + ActualSessionTimeout + + i=63 + i=78 + i=12098 + + + + MaxResponseMessageSize + + i=63 + i=78 + i=12098 + + + + ClientConnectionTime + + i=63 + i=78 + i=12098 + + + + ClientLastContactTime + + i=63 + i=78 + i=12098 + + + + CurrentSubscriptionsCount + + i=63 + i=78 + i=12098 + + + + CurrentMonitoredItemsCount + + i=63 + i=78 + i=12098 + + + + CurrentPublishRequestsInQueue + + i=63 + i=78 + i=12098 + + + + TotalRequestCount + + i=63 + i=78 + i=12098 + + + + UnauthorizedRequestCount + + i=63 + i=78 + i=12098 + + + + ReadCount + + i=63 + i=78 + i=12098 + + + + HistoryReadCount + + i=63 + i=78 + i=12098 + + + + WriteCount + + i=63 + i=78 + i=12098 + + + + HistoryUpdateCount + + i=63 + i=78 + i=12098 + + + + CallCount + + i=63 + i=78 + i=12098 + + + + CreateMonitoredItemsCount + + i=63 + i=78 + i=12098 + + + + ModifyMonitoredItemsCount + + i=63 + i=78 + i=12098 + + + + SetMonitoringModeCount + + i=63 + i=78 + i=12098 + + + + SetTriggeringCount + + i=63 + i=78 + i=12098 + + + + DeleteMonitoredItemsCount + + i=63 + i=78 + i=12098 + + + + CreateSubscriptionCount + + i=63 + i=78 + i=12098 + + + + ModifySubscriptionCount + + i=63 + i=78 + i=12098 + + + + SetPublishingModeCount + + i=63 + i=78 + i=12098 + + + + PublishCount + + i=63 + i=78 + i=12098 + + + + RepublishCount + + i=63 + i=78 + i=12098 + + + + TransferSubscriptionsCount + + i=63 + i=78 + i=12098 + + + + DeleteSubscriptionsCount + + i=63 + i=78 + i=12098 + + + + AddNodesCount + + i=63 + i=78 + i=12098 + + + + AddReferencesCount + + i=63 + i=78 + i=12098 + + + + DeleteNodesCount + + i=63 + i=78 + i=12098 + + + + DeleteReferencesCount + + i=63 + i=78 + i=12098 + + + + BrowseCount + + i=63 + i=78 + i=12098 + + + + BrowseNextCount + + i=63 + i=78 + i=12098 + + + + TranslateBrowsePathsToNodeIdsCount + + i=63 + i=78 + i=12098 + + + + QueryFirstCount + + i=63 + i=78 + i=12098 + + + + QueryNextCount + + i=63 + i=78 + i=12098 + + + + RegisterNodesCount + + i=63 + i=78 + i=12098 + + + + UnregisterNodesCount + + i=63 + i=78 + i=12098 + + + + SessionSecurityDiagnostics + + i=12143 + i=12144 + i=12145 + i=12146 + i=12147 + i=12148 + i=12149 + i=12150 + i=12151 + i=2244 + i=78 + i=12097 + + + + SessionId + + i=63 + i=78 + i=12142 + + + + ClientUserIdOfSession + + i=63 + i=78 + i=12142 + + + + ClientUserIdHistory + + i=63 + i=78 + i=12142 + + + + AuthenticationMechanism + + i=63 + i=78 + i=12142 + + + + Encoding + + i=63 + i=78 + i=12142 + + + + TransportProtocol + + i=63 + i=78 + i=12142 + + + + SecurityMode + + i=63 + i=78 + i=12142 + + + + SecurityPolicyUri + + i=63 + i=78 + i=12142 + + + + ClientCertificate + + i=63 + i=78 + i=12142 + + + + SubscriptionDiagnosticsArray + + i=2171 + i=78 + i=12097 + + + + SessionDiagnosticsObjectType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.5 + + i=2030 + i=2031 + i=2032 + i=58 + + + + SessionDiagnostics + + i=3131 + i=3132 + i=3133 + i=3134 + i=3135 + i=3136 + i=3137 + i=3138 + i=3139 + i=3140 + i=3141 + i=3142 + i=3143 + i=8898 + i=11891 + i=3151 + i=3152 + i=3153 + i=3154 + i=3155 + i=3156 + i=3157 + i=3158 + i=3159 + i=3160 + i=3161 + i=3162 + i=3163 + i=3164 + i=3165 + i=3166 + i=3167 + i=3168 + i=3169 + i=3170 + i=3171 + i=3172 + i=3173 + i=3174 + i=3175 + i=3176 + i=3177 + i=3178 + i=2197 + i=78 + i=2029 + + + + SessionId + + i=63 + i=78 + i=2030 + + + + SessionName + + i=63 + i=78 + i=2030 + + + + ClientDescription + + i=63 + i=78 + i=2030 + + + + ServerUri + + i=63 + i=78 + i=2030 + + + + EndpointUrl + + i=63 + i=78 + i=2030 + + + + LocaleIds + + i=63 + i=78 + i=2030 + + + + ActualSessionTimeout + + i=63 + i=78 + i=2030 + + + + MaxResponseMessageSize + + i=63 + i=78 + i=2030 + + + + ClientConnectionTime + + i=63 + i=78 + i=2030 + + + + ClientLastContactTime + + i=63 + i=78 + i=2030 + + + + CurrentSubscriptionsCount + + i=63 + i=78 + i=2030 + + + + CurrentMonitoredItemsCount + + i=63 + i=78 + i=2030 + + + + CurrentPublishRequestsInQueue + + i=63 + i=78 + i=2030 + + + + TotalRequestCount + + i=63 + i=78 + i=2030 + + + + UnauthorizedRequestCount + + i=63 + i=78 + i=2030 + + + + ReadCount + + i=63 + i=78 + i=2030 + + + + HistoryReadCount + + i=63 + i=78 + i=2030 + + + + WriteCount + + i=63 + i=78 + i=2030 + + + + HistoryUpdateCount + + i=63 + i=78 + i=2030 + + + + CallCount + + i=63 + i=78 + i=2030 + + + + CreateMonitoredItemsCount + + i=63 + i=78 + i=2030 + + + + ModifyMonitoredItemsCount + + i=63 + i=78 + i=2030 + + + + SetMonitoringModeCount + + i=63 + i=78 + i=2030 + + + + SetTriggeringCount + + i=63 + i=78 + i=2030 + + + + DeleteMonitoredItemsCount + + i=63 + i=78 + i=2030 + + + + CreateSubscriptionCount + + i=63 + i=78 + i=2030 + + + + ModifySubscriptionCount + + i=63 + i=78 + i=2030 + + + + SetPublishingModeCount + + i=63 + i=78 + i=2030 + + + + PublishCount + + i=63 + i=78 + i=2030 + + + + RepublishCount + + i=63 + i=78 + i=2030 + + + + TransferSubscriptionsCount + + i=63 + i=78 + i=2030 + + + + DeleteSubscriptionsCount + + i=63 + i=78 + i=2030 + + + + AddNodesCount + + i=63 + i=78 + i=2030 + + + + AddReferencesCount + + i=63 + i=78 + i=2030 + + + + DeleteNodesCount + + i=63 + i=78 + i=2030 + + + + DeleteReferencesCount + + i=63 + i=78 + i=2030 + + + + BrowseCount + + i=63 + i=78 + i=2030 + + + + BrowseNextCount + + i=63 + i=78 + i=2030 + + + + TranslateBrowsePathsToNodeIdsCount + + i=63 + i=78 + i=2030 + + + + QueryFirstCount + + i=63 + i=78 + i=2030 + + + + QueryNextCount + + i=63 + i=78 + i=2030 + + + + RegisterNodesCount + + i=63 + i=78 + i=2030 + + + + UnregisterNodesCount + + i=63 + i=78 + i=2030 + + + + SessionSecurityDiagnostics + + i=3179 + i=3180 + i=3181 + i=3182 + i=3183 + i=3184 + i=3185 + i=3186 + i=3187 + i=2244 + i=78 + i=2029 + + + + SessionId + + i=63 + i=78 + i=2031 + + + + ClientUserIdOfSession + + i=63 + i=78 + i=2031 + + + + ClientUserIdHistory + + i=63 + i=78 + i=2031 + + + + AuthenticationMechanism + + i=63 + i=78 + i=2031 + + + + Encoding + + i=63 + i=78 + i=2031 + + + + TransportProtocol + + i=63 + i=78 + i=2031 + + + + SecurityMode + + i=63 + i=78 + i=2031 + + + + SecurityPolicyUri + + i=63 + i=78 + i=2031 + + + + ClientCertificate + + i=63 + i=78 + i=2031 + + + + SubscriptionDiagnosticsArray + + i=2171 + i=78 + i=2029 + + + + VendorServerInfoType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.6 + + i=58 + + + + ServerRedundancyType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.7 + + i=2035 + i=58 + + + + RedundancySupport + + i=68 + i=78 + i=2034 + + + + TransparentRedundancyType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.8 + + i=2037 + i=2038 + i=2034 + + + + CurrentServerId + + i=68 + i=78 + i=2036 + + + + RedundantServerArray + + i=68 + i=78 + i=2036 + + + + NonTransparentRedundancyType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.9 + + i=2040 + i=2034 + + + + ServerUriArray + + i=68 + i=78 + i=2039 + + + + NonTransparentNetworkRedundancyType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.10 + + i=11948 + i=2039 + + + + ServerNetworkGroups + + i=68 + i=78 + i=11945 + + + + OperationLimitsType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.11 + + i=11565 + i=12161 + i=12162 + i=11567 + i=12163 + i=12164 + i=11569 + i=11570 + i=11571 + i=11572 + i=11573 + i=11574 + i=61 + + + + MaxNodesPerRead + + i=68 + i=80 + i=11564 + + + + MaxNodesPerHistoryReadData + + i=68 + i=80 + i=11564 + + + + MaxNodesPerHistoryReadEvents + + i=68 + i=80 + i=11564 + + + + MaxNodesPerWrite + + i=68 + i=80 + i=11564 + + + + MaxNodesPerHistoryUpdateData + + i=68 + i=80 + i=11564 + + + + MaxNodesPerHistoryUpdateEvents + + i=68 + i=80 + i=11564 + + + + MaxNodesPerMethodCall + + i=68 + i=80 + i=11564 + + + + MaxNodesPerBrowse + + i=68 + i=80 + i=11564 + + + + MaxNodesPerRegisterNodes + + i=68 + i=80 + i=11564 + + + + MaxNodesPerTranslateBrowsePathsToNodeIds + + i=68 + i=80 + i=11564 + + + + MaxNodesPerNodeManagement + + i=68 + i=80 + i=11564 + + + + MaxMonitoredItemsPerCall + + i=68 + i=80 + i=11564 + + + + FileType + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.2.1 + + i=11576 + i=12686 + i=12687 + i=11579 + i=13341 + i=24244 + i=11580 + i=11583 + i=11585 + i=11588 + i=11590 + i=11593 + i=58 + + + + Size + + i=68 + i=78 + i=11575 + + + + Writable + + i=68 + i=78 + i=11575 + + + + UserWritable + + i=68 + i=78 + i=11575 + + + + OpenCount + + i=68 + i=78 + i=11575 + + + + MimeType + + i=68 + i=80 + i=11575 + + + + MaxByteStringLength + + i=68 + i=80 + i=11575 + + + + Open + + i=11581 + i=11582 + i=78 + i=11575 + + + + InputArguments + + i=68 + i=78 + i=11580 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=11580 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=11584 + i=78 + i=11575 + + + + InputArguments + + i=68 + i=78 + i=11583 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=11586 + i=11587 + i=78 + i=11575 + + + + InputArguments + + i=68 + i=78 + i=11585 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=11585 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=11589 + i=78 + i=11575 + + + + InputArguments + + i=68 + i=78 + i=11588 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=11591 + i=11592 + i=78 + i=11575 + + + + InputArguments + + i=68 + i=78 + i=11590 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=11590 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=11594 + i=78 + i=11575 + + + + InputArguments + + i=68 + i=78 + i=11593 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + AddressSpaceFileType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.12 + + i=11615 + i=11575 + + + + ExportNamespace + + i=80 + i=11595 + + + + NamespaceMetadataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.13 + + i=11617 + i=11618 + i=11619 + i=11620 + i=11621 + i=11622 + i=11623 + i=11624 + i=16137 + i=16138 + i=16139 + i=58 + + + + NamespaceUri + + i=68 + i=78 + i=11616 + + + + NamespaceVersion + + i=68 + i=78 + i=11616 + + + + NamespacePublicationDate + + i=68 + i=78 + i=11616 + + + + IsNamespaceSubset + + i=68 + i=78 + i=11616 + + + + StaticNodeIdTypes + + i=68 + i=78 + i=11616 + + + + StaticNumericNodeIdRange + + i=68 + i=78 + i=11616 + + + + StaticStringNodeIdPattern + + i=68 + i=78 + i=11616 + + + + NamespaceFile + + i=11625 + i=12690 + i=12691 + i=11628 + i=11629 + i=11632 + i=11634 + i=11637 + i=11639 + i=11642 + i=11595 + i=80 + i=11616 + + + + Size + + i=68 + i=78 + i=11624 + + + + Writable + + i=68 + i=78 + i=11624 + + + + UserWritable + + i=68 + i=78 + i=11624 + + + + OpenCount + + i=68 + i=78 + i=11624 + + + + Open + + i=11630 + i=11631 + i=78 + i=11624 + + + + InputArguments + + i=68 + i=78 + i=11629 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=11629 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=11633 + i=78 + i=11624 + + + + InputArguments + + i=68 + i=78 + i=11632 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=11635 + i=11636 + i=78 + i=11624 + + + + InputArguments + + i=68 + i=78 + i=11634 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=11634 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=11638 + i=78 + i=11624 + + + + InputArguments + + i=68 + i=78 + i=11637 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=11640 + i=11641 + i=78 + i=11624 + + + + InputArguments + + i=68 + i=78 + i=11639 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=11639 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=11643 + i=78 + i=11624 + + + + InputArguments + + i=68 + i=78 + i=11642 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + DefaultRolePermissions + + i=68 + i=80 + i=11616 + + + + DefaultUserRolePermissions + + i=68 + i=80 + i=11616 + + + + DefaultAccessRestrictions + + i=68 + i=80 + i=11616 + + + + NamespacesType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.14 + + i=11646 + i=58 + + + + <NamespaceIdentifier> + + i=11647 + i=11648 + i=11649 + i=11650 + i=11651 + i=11652 + i=11653 + i=11616 + i=11508 + i=11645 + + + + NamespaceUri + + i=68 + i=78 + i=11646 + + + + NamespaceVersion + + i=68 + i=78 + i=11646 + + + + NamespacePublicationDate + + i=68 + i=78 + i=11646 + + + + IsNamespaceSubset + + i=68 + i=78 + i=11646 + + + + StaticNodeIdTypes + + i=68 + i=78 + i=11646 + + + + StaticNumericNodeIdRange + + i=68 + i=78 + i=11646 + + + + StaticStringNodeIdPattern + + i=68 + i=78 + i=11646 + + + + BaseEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.2 + + i=2042 + i=2043 + i=2044 + i=2045 + i=2046 + i=2047 + i=3190 + i=2050 + i=2051 + i=58 + + + + EventId + + i=68 + i=78 + i=2041 + + + + EventType + + i=68 + i=78 + i=2041 + + + + SourceNode + + i=68 + i=78 + i=2041 + + + + SourceName + + i=68 + i=78 + i=2041 + + + + Time + + i=68 + i=78 + i=2041 + + + + ReceiveTime + + i=68 + i=78 + i=2041 + + + + LocalTime + + i=68 + i=80 + i=2041 + + + + Message + + i=68 + i=78 + i=2041 + + + + Severity + + i=68 + i=78 + i=2041 + + + + AuditEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.3 + + i=2053 + i=2054 + i=2055 + i=2056 + i=2057 + i=2041 + + + + ActionTimeStamp + + i=68 + i=78 + i=2052 + + + + Status + + i=68 + i=78 + i=2052 + + + + ServerId + + i=68 + i=78 + i=2052 + + + + ClientAuditEntryId + + i=68 + i=78 + i=2052 + + + + ClientUserId + + i=68 + i=78 + i=2052 + + + + AuditSecurityEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.4 + + i=17615 + i=2052 + + + + StatusCodeId + + i=68 + i=80 + i=2058 + + + + AuditChannelEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.5 + + i=2745 + i=2058 + + + + SecureChannelId + + i=68 + i=78 + i=2059 + + + + AuditOpenSecureChannelEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.6 + + i=2061 + i=2746 + i=2062 + i=2063 + i=2065 + i=2066 + i=2059 + + + + ClientCertificate + + i=68 + i=78 + i=2060 + + + + ClientCertificateThumbprint + + i=68 + i=78 + i=2060 + + + + RequestType + + i=68 + i=78 + i=2060 + + + + SecurityPolicyUri + + i=68 + i=78 + i=2060 + + + + SecurityMode + + i=68 + i=78 + i=2060 + + + + RequestedLifetime + + i=68 + i=78 + i=2060 + + + + AuditSessionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.7 + + i=2070 + i=2058 + + + + SessionId + + i=68 + i=78 + i=2069 + + + + AuditCreateSessionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.8 + + i=2072 + i=2073 + i=2747 + i=2074 + i=2069 + + + + SecureChannelId + + i=68 + i=78 + i=2071 + + + + ClientCertificate + + i=68 + i=78 + i=2071 + + + + ClientCertificateThumbprint + + i=68 + i=78 + i=2071 + + + + RevisedSessionTimeout + + i=68 + i=78 + i=2071 + + + + AuditUrlMismatchEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.9 + + i=2749 + i=2071 + + + + EndpointUrl + + i=68 + i=78 + i=2748 + + + + AuditActivateSessionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.10 + + i=2076 + i=2077 + i=11485 + i=2069 + + + + ClientSoftwareCertificates + + i=68 + i=78 + i=2075 + + + + UserIdentityToken + + i=68 + i=78 + i=2075 + + + + SecureChannelId + + i=68 + i=78 + i=2075 + + + + AuditCancelEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.11 + + i=2079 + i=2069 + + + + RequestHandle + + i=68 + i=78 + i=2078 + + + + AuditCertificateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.12 + + i=2081 + i=2058 + + + + Certificate + + i=68 + i=78 + i=2080 + + + + AuditCertificateDataMismatchEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.13 + + i=2083 + i=2084 + i=2080 + + + + InvalidHostname + + i=68 + i=78 + i=2082 + + + + InvalidUri + + i=68 + i=78 + i=2082 + + + + AuditCertificateExpiredEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.14 + + i=2080 + + + + AuditCertificateInvalidEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.15 + + i=2080 + + + + AuditCertificateUntrustedEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.16 + + i=2080 + + + + AuditCertificateRevokedEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.17 + + i=2080 + + + + AuditCertificateMismatchEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.18 + + i=2080 + + + + AuditNodeManagementEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.19 + + i=2052 + + + + AuditAddNodesEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.20 + + i=2092 + i=2090 + + + + NodesToAdd + + i=68 + i=78 + i=2091 + + + + AuditDeleteNodesEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.21 + + i=2094 + i=2090 + + + + NodesToDelete + + i=68 + i=78 + i=2093 + + + + AuditAddReferencesEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.22 + + i=2096 + i=2090 + + + + ReferencesToAdd + + i=68 + i=78 + i=2095 + + + + AuditDeleteReferencesEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.23 + + i=2098 + i=2090 + + + + ReferencesToDelete + + i=68 + i=78 + i=2097 + + + + AuditUpdateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.24 + + i=2052 + + + + AuditWriteUpdateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.25 + + i=2750 + i=2101 + i=2102 + i=2103 + i=2099 + + + + AttributeId + + i=68 + i=78 + i=2100 + + + + IndexRange + + i=68 + i=78 + i=2100 + + + + OldValue + + i=68 + i=78 + i=2100 + + + + NewValue + + i=68 + i=78 + i=2100 + + + + AuditHistoryUpdateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.26 + + i=2751 + i=2099 + + + + ParameterDataTypeId + + i=68 + i=78 + i=2104 + + + + AuditUpdateMethodEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.27 + + i=2128 + i=2129 + i=2052 + + + + MethodId + + i=68 + i=78 + i=2127 + + + + InputArguments + + i=68 + i=78 + i=2127 + + + + SystemEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.28 + + i=2041 + + + + DeviceFailureEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.29 + + i=2130 + + + + SystemStatusChangeEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.30 + + i=11696 + i=2130 + + + + SystemState + + i=68 + i=78 + i=11446 + + + + BaseModelChangeEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.31 + + i=2041 + + + + GeneralModelChangeEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.32 + + i=2134 + i=2132 + + + + Changes + + i=68 + i=78 + i=2133 + + + + SemanticChangeEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.33 + + i=2739 + i=2041 + + + + Changes + + i=68 + i=78 + i=2738 + + + + EventQueueOverflowEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.34 + + i=2041 + + + + ProgressEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.4.35 + + i=12502 + i=12503 + i=2041 + + + + Context + + i=68 + i=78 + i=11436 + + + + Progress + + i=68 + i=78 + i=11436 + + + + AggregateFunctionType + https://reference.opcfoundation.org/v104/Core/docs/Part5/6.8 + + i=58 + + + + ServerVendorCapabilityType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.5 + + i=63 + + + + ServerStatusType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.6 + + i=2139 + i=2140 + i=2141 + i=2142 + i=2752 + i=2753 + i=63 + + + + StartTime + + i=63 + i=78 + i=2138 + + + + CurrentTime + + i=63 + i=78 + i=2138 + + + + State + + i=63 + i=78 + i=2138 + + + + BuildInfo + + i=3698 + i=3699 + i=3700 + i=3701 + i=3702 + i=3703 + i=3051 + i=78 + i=2138 + + + + ProductUri + + i=63 + i=78 + i=2142 + + + + ManufacturerName + + i=63 + i=78 + i=2142 + + + + ProductName + + i=63 + i=78 + i=2142 + + + + SoftwareVersion + + i=63 + i=78 + i=2142 + + + + BuildNumber + + i=63 + i=78 + i=2142 + + + + BuildDate + + i=63 + i=78 + i=2142 + + + + SecondsTillShutdown + + i=63 + i=78 + i=2138 + + + + ShutdownReason + + i=63 + i=78 + i=2138 + + + + BuildInfoType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.7 + + i=3052 + i=3053 + i=3054 + i=3055 + i=3056 + i=3057 + i=63 + + + + ProductUri + + i=63 + i=78 + i=3051 + + + + ManufacturerName + + i=63 + i=78 + i=3051 + + + + ProductName + + i=63 + i=78 + i=3051 + + + + SoftwareVersion + + i=63 + i=78 + i=3051 + + + + BuildNumber + + i=63 + i=78 + i=3051 + + + + BuildDate + + i=63 + i=78 + i=3051 + + + + ServerDiagnosticsSummaryType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.8 + + i=2151 + i=2152 + i=2153 + i=2154 + i=2155 + i=2156 + i=2157 + i=2159 + i=2160 + i=2161 + i=2162 + i=2163 + i=63 + + + + ServerViewCount + + i=63 + i=78 + i=2150 + + + + CurrentSessionCount + + i=63 + i=78 + i=2150 + + + + CumulatedSessionCount + + i=63 + i=78 + i=2150 + + + + SecurityRejectedSessionCount + + i=63 + i=78 + i=2150 + + + + RejectedSessionCount + + i=63 + i=78 + i=2150 + + + + SessionTimeoutCount + + i=63 + i=78 + i=2150 + + + + SessionAbortCount + + i=63 + i=78 + i=2150 + + + + PublishingIntervalCount + + i=63 + i=78 + i=2150 + + + + CurrentSubscriptionCount + + i=63 + i=78 + i=2150 + + + + CumulatedSubscriptionCount + + i=63 + i=78 + i=2150 + + + + SecurityRejectedRequestsCount + + i=63 + i=78 + i=2150 + + + + RejectedRequestsCount + + i=63 + i=78 + i=2150 + + + + SamplingIntervalDiagnosticsArrayType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.9 + + i=12779 + i=63 + + + + SamplingIntervalDiagnostics + + i=12780 + i=12781 + i=12782 + i=12783 + i=2165 + i=83 + i=2164 + + + + SamplingInterval + + i=63 + i=78 + i=12779 + + + + SampledMonitoredItemsCount + + i=63 + i=78 + i=12779 + + + + MaxSampledMonitoredItemsCount + + i=63 + i=78 + i=12779 + + + + DisabledMonitoredItemsSamplingCount + + i=63 + i=78 + i=12779 + + + + SamplingIntervalDiagnosticsType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.10 + + i=2166 + i=11697 + i=11698 + i=11699 + i=63 + + + + SamplingInterval + + i=63 + i=78 + i=2165 + + + + SampledMonitoredItemsCount + + i=63 + i=78 + i=2165 + + + + MaxSampledMonitoredItemsCount + + i=63 + i=78 + i=2165 + + + + DisabledMonitoredItemsSamplingCount + + i=63 + i=78 + i=2165 + + + + SubscriptionDiagnosticsArrayType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.11 + + i=12784 + i=63 + + + + SubscriptionDiagnostics + + i=12785 + i=12786 + i=12787 + i=12788 + i=12789 + i=12790 + i=12791 + i=12792 + i=12793 + i=12794 + i=12795 + i=12796 + i=12797 + i=12798 + i=12799 + i=12800 + i=12801 + i=12802 + i=12803 + i=12804 + i=12805 + i=12806 + i=12807 + i=12808 + i=12809 + i=12810 + i=12811 + i=12812 + i=12813 + i=12814 + i=12815 + i=2172 + i=83 + i=2171 + + + + SessionId + + i=63 + i=78 + i=12784 + + + + SubscriptionId + + i=63 + i=78 + i=12784 + + + + Priority + + i=63 + i=78 + i=12784 + + + + PublishingInterval + + i=63 + i=78 + i=12784 + + + + MaxKeepAliveCount + + i=63 + i=78 + i=12784 + + + + MaxLifetimeCount + + i=63 + i=78 + i=12784 + + + + MaxNotificationsPerPublish + + i=63 + i=78 + i=12784 + + + + PublishingEnabled + + i=63 + i=78 + i=12784 + + + + ModifyCount + + i=63 + i=78 + i=12784 + + + + EnableCount + + i=63 + i=78 + i=12784 + + + + DisableCount + + i=63 + i=78 + i=12784 + + + + RepublishRequestCount + + i=63 + i=78 + i=12784 + + + + RepublishMessageRequestCount + + i=63 + i=78 + i=12784 + + + + RepublishMessageCount + + i=63 + i=78 + i=12784 + + + + TransferRequestCount + + i=63 + i=78 + i=12784 + + + + TransferredToAltClientCount + + i=63 + i=78 + i=12784 + + + + TransferredToSameClientCount + + i=63 + i=78 + i=12784 + + + + PublishRequestCount + + i=63 + i=78 + i=12784 + + + + DataChangeNotificationsCount + + i=63 + i=78 + i=12784 + + + + EventNotificationsCount + + i=63 + i=78 + i=12784 + + + + NotificationsCount + + i=63 + i=78 + i=12784 + + + + LatePublishRequestCount + + i=63 + i=78 + i=12784 + + + + CurrentKeepAliveCount + + i=63 + i=78 + i=12784 + + + + CurrentLifetimeCount + + i=63 + i=78 + i=12784 + + + + UnacknowledgedMessageCount + + i=63 + i=78 + i=12784 + + + + DiscardedMessageCount + + i=63 + i=78 + i=12784 + + + + MonitoredItemCount + + i=63 + i=78 + i=12784 + + + + DisabledMonitoredItemCount + + i=63 + i=78 + i=12784 + + + + MonitoringQueueOverflowCount + + i=63 + i=78 + i=12784 + + + + NextSequenceNumber + + i=63 + i=78 + i=12784 + + + + EventQueueOverflowCount + + i=63 + i=78 + i=12784 + + + + SubscriptionDiagnosticsType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.12 + + i=2173 + i=2174 + i=2175 + i=2176 + i=2177 + i=8888 + i=2179 + i=2180 + i=2181 + i=2182 + i=2183 + i=2184 + i=2185 + i=2186 + i=2187 + i=2188 + i=2189 + i=2190 + i=2191 + i=2998 + i=2193 + i=8889 + i=8890 + i=8891 + i=8892 + i=8893 + i=8894 + i=8895 + i=8896 + i=8897 + i=8902 + i=63 + + + + SessionId + + i=63 + i=78 + i=2172 + + + + SubscriptionId + + i=63 + i=78 + i=2172 + + + + Priority + + i=63 + i=78 + i=2172 + + + + PublishingInterval + + i=63 + i=78 + i=2172 + + + + MaxKeepAliveCount + + i=63 + i=78 + i=2172 + + + + MaxLifetimeCount + + i=63 + i=78 + i=2172 + + + + MaxNotificationsPerPublish + + i=63 + i=78 + i=2172 + + + + PublishingEnabled + + i=63 + i=78 + i=2172 + + + + ModifyCount + + i=63 + i=78 + i=2172 + + + + EnableCount + + i=63 + i=78 + i=2172 + + + + DisableCount + + i=63 + i=78 + i=2172 + + + + RepublishRequestCount + + i=63 + i=78 + i=2172 + + + + RepublishMessageRequestCount + + i=63 + i=78 + i=2172 + + + + RepublishMessageCount + + i=63 + i=78 + i=2172 + + + + TransferRequestCount + + i=63 + i=78 + i=2172 + + + + TransferredToAltClientCount + + i=63 + i=78 + i=2172 + + + + TransferredToSameClientCount + + i=63 + i=78 + i=2172 + + + + PublishRequestCount + + i=63 + i=78 + i=2172 + + + + DataChangeNotificationsCount + + i=63 + i=78 + i=2172 + + + + EventNotificationsCount + + i=63 + i=78 + i=2172 + + + + NotificationsCount + + i=63 + i=78 + i=2172 + + + + LatePublishRequestCount + + i=63 + i=78 + i=2172 + + + + CurrentKeepAliveCount + + i=63 + i=78 + i=2172 + + + + CurrentLifetimeCount + + i=63 + i=78 + i=2172 + + + + UnacknowledgedMessageCount + + i=63 + i=78 + i=2172 + + + + DiscardedMessageCount + + i=63 + i=78 + i=2172 + + + + MonitoredItemCount + + i=63 + i=78 + i=2172 + + + + DisabledMonitoredItemCount + + i=63 + i=78 + i=2172 + + + + MonitoringQueueOverflowCount + + i=63 + i=78 + i=2172 + + + + NextSequenceNumber + + i=63 + i=78 + i=2172 + + + + EventQueueOverflowCount + + i=63 + i=78 + i=2172 + + + + SessionDiagnosticsArrayType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.13 + + i=12816 + i=63 + + + + SessionDiagnostics + + i=12817 + i=12818 + i=12819 + i=12820 + i=12821 + i=12822 + i=12823 + i=12824 + i=12825 + i=12826 + i=12827 + i=12828 + i=12829 + i=12830 + i=12831 + i=12832 + i=12833 + i=12834 + i=12835 + i=12836 + i=12837 + i=12838 + i=12839 + i=12840 + i=12841 + i=12842 + i=12843 + i=12844 + i=12845 + i=12846 + i=12847 + i=12848 + i=12849 + i=12850 + i=12851 + i=12852 + i=12853 + i=12854 + i=12855 + i=12856 + i=12857 + i=12858 + i=12859 + i=2197 + i=83 + i=2196 + + + + SessionId + + i=63 + i=78 + i=12816 + + + + SessionName + + i=63 + i=78 + i=12816 + + + + ClientDescription + + i=63 + i=78 + i=12816 + + + + ServerUri + + i=63 + i=78 + i=12816 + + + + EndpointUrl + + i=63 + i=78 + i=12816 + + + + LocaleIds + + i=63 + i=78 + i=12816 + + + + ActualSessionTimeout + + i=63 + i=78 + i=12816 + + + + MaxResponseMessageSize + + i=63 + i=78 + i=12816 + + + + ClientConnectionTime + + i=63 + i=78 + i=12816 + + + + ClientLastContactTime + + i=63 + i=78 + i=12816 + + + + CurrentSubscriptionsCount + + i=63 + i=78 + i=12816 + + + + CurrentMonitoredItemsCount + + i=63 + i=78 + i=12816 + + + + CurrentPublishRequestsInQueue + + i=63 + i=78 + i=12816 + + + + TotalRequestCount + + i=63 + i=78 + i=12816 + + + + UnauthorizedRequestCount + + i=63 + i=78 + i=12816 + + + + ReadCount + + i=63 + i=78 + i=12816 + + + + HistoryReadCount + + i=63 + i=78 + i=12816 + + + + WriteCount + + i=63 + i=78 + i=12816 + + + + HistoryUpdateCount + + i=63 + i=78 + i=12816 + + + + CallCount + + i=63 + i=78 + i=12816 + + + + CreateMonitoredItemsCount + + i=63 + i=78 + i=12816 + + + + ModifyMonitoredItemsCount + + i=63 + i=78 + i=12816 + + + + SetMonitoringModeCount + + i=63 + i=78 + i=12816 + + + + SetTriggeringCount + + i=63 + i=78 + i=12816 + + + + DeleteMonitoredItemsCount + + i=63 + i=78 + i=12816 + + + + CreateSubscriptionCount + + i=63 + i=78 + i=12816 + + + + ModifySubscriptionCount + + i=63 + i=78 + i=12816 + + + + SetPublishingModeCount + + i=63 + i=78 + i=12816 + + + + PublishCount + + i=63 + i=78 + i=12816 + + + + RepublishCount + + i=63 + i=78 + i=12816 + + + + TransferSubscriptionsCount + + i=63 + i=78 + i=12816 + + + + DeleteSubscriptionsCount + + i=63 + i=78 + i=12816 + + + + AddNodesCount + + i=63 + i=78 + i=12816 + + + + AddReferencesCount + + i=63 + i=78 + i=12816 + + + + DeleteNodesCount + + i=63 + i=78 + i=12816 + + + + DeleteReferencesCount + + i=63 + i=78 + i=12816 + + + + BrowseCount + + i=63 + i=78 + i=12816 + + + + BrowseNextCount + + i=63 + i=78 + i=12816 + + + + TranslateBrowsePathsToNodeIdsCount + + i=63 + i=78 + i=12816 + + + + QueryFirstCount + + i=63 + i=78 + i=12816 + + + + QueryNextCount + + i=63 + i=78 + i=12816 + + + + RegisterNodesCount + + i=63 + i=78 + i=12816 + + + + UnregisterNodesCount + + i=63 + i=78 + i=12816 + + + + SessionDiagnosticsVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.14 + + i=2198 + i=2199 + i=2200 + i=2201 + i=2202 + i=2203 + i=2204 + i=3050 + i=2205 + i=2206 + i=2207 + i=2208 + i=2209 + i=8900 + i=11892 + i=2217 + i=2218 + i=2219 + i=2220 + i=2221 + i=2222 + i=2223 + i=2224 + i=2225 + i=2226 + i=2227 + i=2228 + i=2229 + i=2230 + i=2231 + i=2232 + i=2233 + i=2234 + i=2235 + i=2236 + i=2237 + i=2238 + i=2239 + i=2240 + i=2241 + i=2242 + i=2730 + i=2731 + i=63 + + + + SessionId + + i=63 + i=78 + i=2197 + + + + SessionName + + i=63 + i=78 + i=2197 + + + + ClientDescription + + i=63 + i=78 + i=2197 + + + + ServerUri + + i=63 + i=78 + i=2197 + + + + EndpointUrl + + i=63 + i=78 + i=2197 + + + + LocaleIds + + i=63 + i=78 + i=2197 + + + + ActualSessionTimeout + + i=63 + i=78 + i=2197 + + + + MaxResponseMessageSize + + i=63 + i=78 + i=2197 + + + + ClientConnectionTime + + i=63 + i=78 + i=2197 + + + + ClientLastContactTime + + i=63 + i=78 + i=2197 + + + + CurrentSubscriptionsCount + + i=63 + i=78 + i=2197 + + + + CurrentMonitoredItemsCount + + i=63 + i=78 + i=2197 + + + + CurrentPublishRequestsInQueue + + i=63 + i=78 + i=2197 + + + + TotalRequestCount + + i=63 + i=78 + i=2197 + + + + UnauthorizedRequestCount + + i=63 + i=78 + i=2197 + + + + ReadCount + + i=63 + i=78 + i=2197 + + + + HistoryReadCount + + i=63 + i=78 + i=2197 + + + + WriteCount + + i=63 + i=78 + i=2197 + + + + HistoryUpdateCount + + i=63 + i=78 + i=2197 + + + + CallCount + + i=63 + i=78 + i=2197 + + + + CreateMonitoredItemsCount + + i=63 + i=78 + i=2197 + + + + ModifyMonitoredItemsCount + + i=63 + i=78 + i=2197 + + + + SetMonitoringModeCount + + i=63 + i=78 + i=2197 + + + + SetTriggeringCount + + i=63 + i=78 + i=2197 + + + + DeleteMonitoredItemsCount + + i=63 + i=78 + i=2197 + + + + CreateSubscriptionCount + + i=63 + i=78 + i=2197 + + + + ModifySubscriptionCount + + i=63 + i=78 + i=2197 + + + + SetPublishingModeCount + + i=63 + i=78 + i=2197 + + + + PublishCount + + i=63 + i=78 + i=2197 + + + + RepublishCount + + i=63 + i=78 + i=2197 + + + + TransferSubscriptionsCount + + i=63 + i=78 + i=2197 + + + + DeleteSubscriptionsCount + + i=63 + i=78 + i=2197 + + + + AddNodesCount + + i=63 + i=78 + i=2197 + + + + AddReferencesCount + + i=63 + i=78 + i=2197 + + + + DeleteNodesCount + + i=63 + i=78 + i=2197 + + + + DeleteReferencesCount + + i=63 + i=78 + i=2197 + + + + BrowseCount + + i=63 + i=78 + i=2197 + + + + BrowseNextCount + + i=63 + i=78 + i=2197 + + + + TranslateBrowsePathsToNodeIdsCount + + i=63 + i=78 + i=2197 + + + + QueryFirstCount + + i=63 + i=78 + i=2197 + + + + QueryNextCount + + i=63 + i=78 + i=2197 + + + + RegisterNodesCount + + i=63 + i=78 + i=2197 + + + + UnregisterNodesCount + + i=63 + i=78 + i=2197 + + + + SessionSecurityDiagnosticsArrayType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.15 + + i=12860 + i=63 + + + + SessionSecurityDiagnostics + + i=12861 + i=12862 + i=12863 + i=12864 + i=12865 + i=12866 + i=12867 + i=12868 + i=12869 + i=2244 + i=83 + i=2243 + + + + SessionId + + i=63 + i=78 + i=12860 + + + + ClientUserIdOfSession + + i=63 + i=78 + i=12860 + + + + ClientUserIdHistory + + i=63 + i=78 + i=12860 + + + + AuthenticationMechanism + + i=63 + i=78 + i=12860 + + + + Encoding + + i=63 + i=78 + i=12860 + + + + TransportProtocol + + i=63 + i=78 + i=12860 + + + + SecurityMode + + i=63 + i=78 + i=12860 + + + + SecurityPolicyUri + + i=63 + i=78 + i=12860 + + + + ClientCertificate + + i=63 + i=78 + i=12860 + + + + SessionSecurityDiagnosticsType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.16 + + i=2245 + i=2246 + i=2247 + i=2248 + i=2249 + i=2250 + i=2251 + i=2252 + i=3058 + i=63 + + + + SessionId + + i=63 + i=78 + i=2244 + + + + ClientUserIdOfSession + + i=63 + i=78 + i=2244 + + + + ClientUserIdHistory + + i=63 + i=78 + i=2244 + + + + AuthenticationMechanism + + i=63 + i=78 + i=2244 + + + + Encoding + + i=63 + i=78 + i=2244 + + + + TransportProtocol + + i=63 + i=78 + i=2244 + + + + SecurityMode + + i=63 + i=78 + i=2244 + + + + SecurityPolicyUri + + i=63 + i=78 + i=2244 + + + + ClientCertificate + + i=63 + i=78 + i=2244 + + + + OptionSetType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.17 + + i=11488 + i=11701 + i=63 + + + + OptionSetValues + + i=68 + i=78 + i=11487 + + + + BitMask + + i=68 + i=80 + i=11487 + + + + SelectionListType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.18 + + i=17632 + i=17633 + i=16312 + i=63 + + + + Selections + + i=68 + i=78 + i=16309 + + + + SelectionDescriptions + + i=68 + i=80 + i=16309 + + + + RestrictToList + + i=68 + i=80 + i=16309 + + + + AudioVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/7.19 + + i=17988 + i=17989 + i=17990 + i=63 + + + + ListId + + i=68 + i=80 + i=17986 + + + + AgencyId + + i=68 + i=80 + i=17986 + + + + VersionId + + i=68 + i=80 + i=17986 + + + + EventTypes + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.10 + + i=86 + i=2041 + i=61 + + + + Server + https://reference.opcfoundation.org/v104/Core/docs/Part5/8.3.2 + + i=2254 + i=2255 + i=2256 + i=2267 + i=2994 + i=12885 + i=17634 + i=2268 + i=2274 + i=2295 + i=2296 + i=11715 + i=11492 + i=12873 + i=12749 + i=12886 + i=85 + i=2004 + + + + ServerArray + + i=68 + i=2253 + + + + NamespaceArray + + i=68 + i=2253 + + + + ServerStatus + + i=2257 + i=2258 + i=2259 + i=2260 + i=2992 + i=2993 + i=2138 + i=2253 + + + + StartTime + + i=63 + i=2256 + + + + CurrentTime + + i=63 + i=2256 + + + + State + + i=63 + i=2256 + + + + BuildInfo + + i=2262 + i=2263 + i=2261 + i=2264 + i=2265 + i=2266 + i=3051 + i=2256 + + + + ProductUri + + i=63 + i=2260 + + + + ManufacturerName + + i=63 + i=2260 + + + + ProductName + + i=63 + i=2260 + + + + SoftwareVersion + + i=63 + i=2260 + + + + BuildNumber + + i=63 + i=2260 + + + + BuildDate + + i=63 + i=2260 + + + + SecondsTillShutdown + + i=63 + i=2256 + + + + ShutdownReason + + i=63 + i=2256 + + + + ServiceLevel + + i=68 + i=2253 + + + + Auditing + + i=68 + i=2253 + + + + EstimatedReturnTime + + i=68 + i=2253 + + + + LocalTime + + i=68 + i=2253 + + + + ServerCapabilities + + i=2269 + i=2271 + i=2272 + i=2735 + i=2736 + i=2737 + i=3704 + i=11702 + i=11703 + i=12911 + i=11704 + i=2996 + i=2997 + i=15606 + i=2013 + i=2253 + + + + ServerProfileArray + + i=68 + i=2268 + + + + LocaleIdArray + + i=68 + i=2268 + + + + MinSupportedSampleRate + + i=68 + i=2268 + + + + MaxBrowseContinuationPoints + + i=68 + i=2268 + + + + MaxQueryContinuationPoints + + i=68 + i=2268 + + + + MaxHistoryContinuationPoints + + i=68 + i=2268 + + + + SoftwareCertificates + + i=68 + i=2268 + + + + MaxArrayLength + + i=68 + i=2268 + + + + MaxStringLength + + i=68 + i=2268 + + + + MaxByteStringLength + + i=68 + i=2268 + + + + OperationLimits + + i=11705 + i=12165 + i=12166 + i=11707 + i=12167 + i=12168 + i=11709 + i=11710 + i=11711 + i=11712 + i=11713 + i=11714 + i=11564 + i=2268 + + + + MaxNodesPerRead + + i=68 + i=11704 + + + + MaxNodesPerHistoryReadData + + i=68 + i=11704 + + + + MaxNodesPerHistoryReadEvents + + i=68 + i=11704 + + + + MaxNodesPerWrite + + i=68 + i=11704 + + + + MaxNodesPerHistoryUpdateData + + i=68 + i=11704 + + + + MaxNodesPerHistoryUpdateEvents + + i=68 + i=11704 + + + + MaxNodesPerMethodCall + + i=68 + i=11704 + + + + MaxNodesPerBrowse + + i=68 + i=11704 + + + + MaxNodesPerRegisterNodes + + i=68 + i=11704 + + + + MaxNodesPerTranslateBrowsePathsToNodeIds + + i=68 + i=11704 + + + + MaxNodesPerNodeManagement + + i=68 + i=11704 + + + + MaxMonitoredItemsPerCall + + i=68 + i=11704 + + + + ModellingRules + + i=61 + i=2268 + + + + AggregateFunctions + + i=61 + i=2268 + + + + RoleSet + + i=16301 + i=16304 + i=15607 + i=2268 + + + + AddRole + + i=16302 + i=16303 + i=15606 + + + + InputArguments + + i=68 + i=16301 + + + + + + i=297 + + + + RoleName + + i=12 + + -1 + + + + + + + i=297 + + + + NamespaceUri + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=16301 + + + + + + i=297 + + + + RoleNodeId + + i=17 + + -1 + + + + + + + + + RemoveRole + + i=16305 + i=15606 + + + + InputArguments + + i=68 + i=16304 + + + + + + i=297 + + + + RoleNodeId + + i=17 + + -1 + + + + + + + + + ServerDiagnostics + + i=2275 + i=2289 + i=2290 + i=3706 + i=2294 + i=2020 + i=2253 + + + + ServerDiagnosticsSummary + + i=2276 + i=2277 + i=2278 + i=2279 + i=3705 + i=2281 + i=2282 + i=2284 + i=2285 + i=2286 + i=2287 + i=2288 + i=2150 + i=2274 + + + + ServerViewCount + + i=63 + i=2275 + + + + CurrentSessionCount + + i=63 + i=2275 + + + + CumulatedSessionCount + + i=63 + i=2275 + + + + SecurityRejectedSessionCount + + i=63 + i=2275 + + + + RejectedSessionCount + + i=63 + i=2275 + + + + SessionTimeoutCount + + i=63 + i=2275 + + + + SessionAbortCount + + i=63 + i=2275 + + + + PublishingIntervalCount + + i=63 + i=2275 + + + + CurrentSubscriptionCount + + i=63 + i=2275 + + + + CumulatedSubscriptionCount + + i=63 + i=2275 + + + + SecurityRejectedRequestsCount + + i=63 + i=2275 + + + + RejectedRequestsCount + + i=63 + i=2275 + + + + SamplingIntervalDiagnosticsArray + + i=2164 + i=2274 + + + + SubscriptionDiagnosticsArray + + i=2171 + i=2274 + + + + SessionsDiagnosticsSummary + + i=3707 + i=3708 + i=2026 + i=2274 + + + + SessionDiagnosticsArray + + i=2196 + i=3706 + + + + SessionSecurityDiagnosticsArray + + i=2243 + i=3706 + + + + EnabledFlag + + i=68 + i=2274 + + + + VendorServerInfo + + i=2033 + i=2253 + + + + ServerRedundancy + + i=3709 + i=2034 + i=2253 + + + + RedundancySupport + + i=68 + i=2296 + + + + Namespaces + + i=11645 + i=2253 + + + + GetMonitoredItems + https://reference.opcfoundation.org/v104/Core/docs/Part5/9.1 + + i=11493 + i=11494 + i=2253 + + + + InputArguments + + i=68 + i=11492 + + + + + + i=297 + + + + SubscriptionId + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=11492 + + + + + + i=297 + + + + ServerHandles + + i=7 + + 1 + + 0 + + + + + + + i=297 + + + + ClientHandles + + i=7 + + 1 + + 0 + + + + + + + + + ResendData + https://reference.opcfoundation.org/v104/Core/docs/Part5/9.2 + + i=12874 + i=2253 + + + + InputArguments + + i=68 + i=12873 + + + + + + i=297 + + + + SubscriptionId + + i=7 + + -1 + + + + + + + + + SetSubscriptionDurable + https://reference.opcfoundation.org/v104/Core/docs/Part5/9.3 + + i=12750 + i=12751 + i=2253 + + + + InputArguments + + i=68 + i=12749 + + + + + + i=297 + + + + SubscriptionId + + i=7 + + -1 + + + + + + + i=297 + + + + LifetimeInHours + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=12749 + + + + + + i=297 + + + + RevisedLifetimeInHours + + i=7 + + -1 + + + + + + + + + RequestServerStateChange + https://reference.opcfoundation.org/v104/Core/docs/Part5/9.4 + + i=12887 + i=2253 + + + + InputArguments + + i=68 + i=12886 + + + + + + i=297 + + + + State + + i=852 + + -1 + + + + + + + i=297 + + + + EstimatedReturnTime + + i=13 + + -1 + + + + + + + i=297 + + + + SecondsTillShutdown + + i=7 + + -1 + + + + + + + i=297 + + + + Reason + + i=21 + + -1 + + + + + + + i=297 + + + + Restart + + i=1 + + -1 + + + + + + + + + CurrentServerId + + i=68 + + + + RedundantServerArray + + i=68 + + + + ServerUriArray + + i=68 + + + + ServerNetworkGroups + + i=68 + + + + HistoryServerCapabilities + + i=11193 + i=11242 + i=11273 + i=11274 + i=11196 + i=11197 + i=11198 + i=11199 + i=11200 + i=11281 + i=11282 + i=11283 + i=11502 + i=11275 + i=11201 + i=19091 + i=2268 + i=2330 + + + + AccessHistoryDataCapability + + i=68 + i=11192 + + + + AccessHistoryEventsCapability + + i=68 + i=11192 + + + + MaxReturnDataValues + + i=68 + i=11192 + + + + MaxReturnEventValues + + i=68 + i=11192 + + + + InsertDataCapability + + i=68 + i=11192 + + + + ReplaceDataCapability + + i=68 + i=11192 + + + + UpdateDataCapability + + i=68 + i=11192 + + + + DeleteRawCapability + + i=68 + i=11192 + + + + DeleteAtTimeCapability + + i=68 + i=11192 + + + + InsertEventCapability + + i=68 + i=11192 + + + + ReplaceEventCapability + + i=68 + i=11192 + + + + UpdateEventCapability + + i=68 + i=11192 + + + + DeleteEventCapability + + i=68 + i=11192 + + + + InsertAnnotationCapability + + i=68 + i=11192 + + + + AggregateFunctions + + i=61 + i=11192 + + + + ServerTimestampSupported + + i=68 + i=11192 + + + + BitFieldMaskDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.18 + + i=9 + + + + KeyValuePair + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.21 + + i=22 + + + + + + + + AdditionalParametersType + + i=22 + + + + + + + EphemeralKeyType + + i=22 + + + + + + + + EndpointType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.22 + + i=22 + + + + + + + + + + StateMachineType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.2 + + i=2769 + i=2770 + i=58 + + + + CurrentState + + i=3720 + i=2755 + i=78 + i=2299 + + + + Id + + i=68 + i=78 + i=2769 + + + + LastTransition + + i=3724 + i=2762 + i=80 + i=2299 + + + + Id + + i=68 + i=78 + i=2770 + + + + StateVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.3 + + i=2756 + i=2757 + i=2758 + i=2759 + i=63 + + + + Id + + i=68 + i=78 + i=2755 + + + + Name + + i=68 + i=80 + i=2755 + + + + Number + + i=68 + i=80 + i=2755 + + + + EffectiveDisplayName + + i=68 + i=80 + i=2755 + + + + TransitionVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.4 + + i=2763 + i=2764 + i=2765 + i=2766 + i=11456 + i=63 + + + + Id + + i=68 + i=78 + i=2762 + + + + Name + + i=68 + i=80 + i=2762 + + + + Number + + i=68 + i=80 + i=2762 + + + + TransitionTime + + i=68 + i=80 + i=2762 + + + + EffectiveTransitionTime + + i=68 + i=80 + i=2762 + + + + FiniteStateMachineType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.5 + + i=2772 + i=2773 + i=17635 + i=17636 + i=2299 + + + + CurrentState + + i=3728 + i=2760 + i=78 + i=2771 + + + + Id + + i=68 + i=78 + i=2772 + + + + LastTransition + + i=3732 + i=2767 + i=80 + i=2771 + + + + Id + + i=68 + i=78 + i=2773 + + + + AvailableStates + + i=63 + i=80 + i=2771 + + + + AvailableTransitions + + i=63 + i=80 + i=2771 + + + + FiniteStateVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.6 + + i=2761 + i=2755 + + + + Id + + i=68 + i=78 + i=2760 + + + + FiniteTransitionVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.7 + + i=2768 + i=2762 + + + + Id + + i=68 + i=78 + i=2767 + + + + StateType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.8 + + i=2308 + i=58 + + + + StateNumber + + i=68 + i=78 + i=2307 + + + + InitialStateType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.9 + + i=2307 + + + + TransitionType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.10 + + i=2312 + i=58 + + + + TransitionNumber + + i=68 + i=78 + i=2310 + + + + ChoiceStateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment2/B.6.2 + + i=2307 + + + + HasGuard + https://reference.opcfoundation.org/v104/Core/docs/Amendment2/B.6.3 + + i=47 + + GuardOf + + + GuardVariableType + https://reference.opcfoundation.org/v104/Core/docs/Amendment2/B.6.4 + + i=63 + + + + ExpressionGuardVariableType + https://reference.opcfoundation.org/v104/Core/docs/Amendment2/B.6.5 + + i=15129 + i=15113 + + + + Expression + + i=68 + i=78 + i=15128 + + + + ElseGuardVariableType + https://reference.opcfoundation.org/v104/Core/docs/Amendment2/B.6.6 + + i=15113 + + + + RationalNumberType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.20 + + i=17712 + i=17713 + i=63 + + + + Numerator + + i=63 + i=78 + i=17709 + + + + Denominator + + i=63 + i=78 + i=17709 + + + + VectorType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.21 + + i=17715 + i=63 + + + + VectorUnit + + i=68 + i=80 + i=17714 + + + + 3DVectorType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.22 + + i=18769 + i=18770 + i=18771 + i=17714 + + + + X + + i=63 + i=78 + i=17716 + + + + Y + + i=63 + i=78 + i=17716 + + + + Z + + i=63 + i=78 + i=17716 + + + + CartesianCoordinatesType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.23 + + i=18773 + i=63 + + + + LengthUnit + + i=68 + i=80 + i=18772 + + + + 3DCartesianCoordinatesType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.24 + + i=18776 + i=18777 + i=18778 + i=18772 + + + + X + + i=63 + i=78 + i=18774 + + + + Y + + i=63 + i=78 + i=18774 + + + + Z + + i=63 + i=78 + i=18774 + + + + OrientationType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.25 + + i=18780 + i=63 + + + + AngleUnit + + i=68 + i=80 + i=18779 + + + + 3DOrientationType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.26 + + i=18783 + i=18784 + i=18785 + i=18779 + + + + A + + i=63 + i=78 + i=18781 + + + + B + + i=63 + i=78 + i=18781 + + + + C + + i=63 + i=78 + i=18781 + + + + FrameType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.27 + + i=18801 + i=18787 + i=18788 + i=18789 + i=18790 + i=63 + + + + CartesianCoordinates + + i=18772 + i=78 + i=18786 + + + + Orientation + + i=18779 + i=78 + i=18786 + + + + Constant + + i=68 + i=80 + i=18786 + + + + BaseFrame + + i=63 + i=80 + i=18786 + + + + FixedBase + + i=68 + i=80 + i=18786 + + + + 3DFrameType + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/7.28 + + i=18796 + i=18792 + i=18786 + + + + CartesianCoordinates + + i=18798 + i=18799 + i=18800 + i=18774 + i=78 + i=18791 + + + + X + + i=63 + i=78 + i=18796 + + + + Y + + i=63 + i=78 + i=18796 + + + + Z + + i=63 + i=78 + i=18796 + + + + Orientation + + i=19074 + i=19075 + i=19076 + i=18781 + i=78 + i=18791 + + + + A + + i=63 + i=78 + i=18792 + + + + B + + i=63 + i=78 + i=18792 + + + + C + + i=63 + i=78 + i=18792 + + + + RationalNumber + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.23 + + i=22 + + + + + + + + Vector + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.24 + + i=22 + + + + + 3DVector + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.25 + + i=18807 + + + + + + + + + CartesianCoordinates + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.26 + + i=22 + + + + + 3DCartesianCoordinates + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.27 + + i=18809 + + + + + + + + + Orientation + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.28 + + i=22 + + + + + 3DOrientation + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.29 + + i=18811 + + + + + + + + + Frame + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.30 + + i=22 + + + + + 3DFrame + https://reference.opcfoundation.org/v104/Core/docs/Amendment11/12.31 + + i=18813 + + + + + + + + TransitionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.16 + + i=2774 + i=2775 + i=2776 + i=2041 + + + + Transition + + i=3754 + i=2762 + i=78 + i=2311 + + + + Id + + i=68 + i=78 + i=2774 + + + + FromState + + i=3746 + i=2755 + i=78 + i=2311 + + + + Id + + i=68 + i=78 + i=2775 + + + + ToState + + i=3750 + i=2755 + i=78 + i=2311 + + + + Id + + i=68 + i=78 + i=2776 + + + + AuditUpdateStateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.17 + + i=2777 + i=2778 + i=2127 + + + + OldStateId + + i=68 + i=78 + i=2315 + + + + NewStateId + + i=68 + i=78 + i=2315 + + + + OpenFileMode + + i=11940 + i=29 + + + + + + + + + + EnumValues + + i=68 + i=11939 + + + + + + i=7616 + + + + 1 + + Read + + + + + + + i=7616 + + + + 2 + + Write + + + + + + + i=7616 + + + + 4 + + EraseExisting + + + + + + + i=7616 + + + + 8 + + Append + + + + + + + + + FileDirectoryType + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.3.1 + + i=13354 + i=13366 + i=13387 + i=13390 + i=13393 + i=13395 + i=61 + + + + <FileDirectoryName> + + i=13355 + i=13358 + i=17718 + i=13363 + i=13353 + i=11508 + i=13353 + + + + CreateDirectory + + i=13356 + i=13357 + i=78 + i=13354 + + + + InputArguments + + i=68 + i=78 + i=13355 + + + + + + i=297 + + + + DirectoryName + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13355 + + + + + + i=297 + + + + DirectoryNodeId + + i=17 + + -1 + + + + + + + + + CreateFile + + i=13359 + i=13360 + i=78 + i=13354 + + + + InputArguments + + i=68 + i=78 + i=13358 + + + + + + i=297 + + + + FileName + + i=12 + + -1 + + + + + + + i=297 + + + + RequestFileOpen + + i=1 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13358 + + + + + + i=297 + + + + FileNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Delete + + i=17719 + i=78 + i=13354 + + + + InputArguments + + i=68 + i=78 + i=17718 + + + + + + i=297 + + + + ObjectToDelete + + i=17 + + -1 + + + + + + + + + MoveOrCopy + + i=13364 + i=13365 + i=78 + i=13354 + + + + InputArguments + + i=68 + i=78 + i=13363 + + + + + + i=297 + + + + ObjectToMoveOrCopy + + i=17 + + -1 + + + + + + + i=297 + + + + TargetDirectory + + i=17 + + -1 + + + + + + + i=297 + + + + CreateCopy + + i=1 + + -1 + + + + + + + i=297 + + + + NewName + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13363 + + + + + + i=297 + + + + NewNodeId + + i=17 + + -1 + + + + + + + + + <FileName> + + i=13367 + i=13368 + i=13369 + i=13370 + i=13372 + i=13375 + i=13377 + i=13380 + i=13382 + i=13385 + i=11575 + i=11508 + i=13353 + + + + Size + + i=68 + i=78 + i=13366 + + + + Writable + + i=68 + i=78 + i=13366 + + + + UserWritable + + i=68 + i=78 + i=13366 + + + + OpenCount + + i=68 + i=78 + i=13366 + + + + Open + + i=13373 + i=13374 + i=78 + i=13366 + + + + InputArguments + + i=68 + i=78 + i=13372 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13372 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=13376 + i=78 + i=13366 + + + + InputArguments + + i=68 + i=78 + i=13375 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=13378 + i=13379 + i=78 + i=13366 + + + + InputArguments + + i=68 + i=78 + i=13377 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13377 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=13381 + i=78 + i=13366 + + + + InputArguments + + i=68 + i=78 + i=13380 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=13383 + i=13384 + i=78 + i=13366 + + + + InputArguments + + i=68 + i=78 + i=13382 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13382 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=13386 + i=78 + i=13366 + + + + InputArguments + + i=68 + i=78 + i=13385 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + CreateDirectory + + i=13388 + i=13389 + i=78 + i=13353 + + + + InputArguments + + i=68 + i=78 + i=13387 + + + + + + i=297 + + + + DirectoryName + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13387 + + + + + + i=297 + + + + DirectoryNodeId + + i=17 + + -1 + + + + + + + + + CreateFile + + i=13391 + i=13392 + i=78 + i=13353 + + + + InputArguments + + i=68 + i=78 + i=13390 + + + + + + i=297 + + + + FileName + + i=12 + + -1 + + + + + + + i=297 + + + + RequestFileOpen + + i=1 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13390 + + + + + + i=297 + + + + FileNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Delete + + i=13394 + i=78 + i=13353 + + + + InputArguments + + i=68 + i=78 + i=13393 + + + + + + i=297 + + + + ObjectToDelete + + i=17 + + -1 + + + + + + + + + MoveOrCopy + + i=13396 + i=13397 + i=78 + i=13353 + + + + InputArguments + + i=68 + i=78 + i=13395 + + + + + + i=297 + + + + ObjectToMoveOrCopy + + i=17 + + -1 + + + + + + + i=297 + + + + TargetDirectory + + i=17 + + -1 + + + + + + + i=297 + + + + CreateCopy + + i=1 + + -1 + + + + + + + i=297 + + + + NewName + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13395 + + + + + + i=297 + + + + NewNodeId + + i=17 + + -1 + + + + + + + + + FileSystem + + i=16348 + i=16351 + i=16354 + i=16356 + i=13353 + + + + CreateDirectory + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.3.3 + + i=16349 + i=16350 + i=16314 + + + + InputArguments + + i=68 + i=16348 + + + + + + i=297 + + + + DirectoryName + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=16348 + + + + + + i=297 + + + + DirectoryNodeId + + i=17 + + -1 + + + + + + + + + CreateFile + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.3.4 + + i=16352 + i=16353 + i=16314 + + + + InputArguments + + i=68 + i=16351 + + + + + + i=297 + + + + FileName + + i=12 + + -1 + + + + + + + i=297 + + + + RequestFileOpen + + i=1 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=16351 + + + + + + i=297 + + + + FileNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Delete + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.3.5 + + i=16355 + i=16314 + + + + InputArguments + + i=68 + i=16354 + + + + + + i=297 + + + + ObjectToDelete + + i=17 + + -1 + + + + + + + + + MoveOrCopy + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.3.6 + + i=16357 + i=16358 + i=16314 + + + + InputArguments + + i=68 + i=16356 + + + + + + i=297 + + + + ObjectToMoveOrCopy + + i=17 + + -1 + + + + + + + i=297 + + + + TargetDirectory + + i=17 + + -1 + + + + + + + i=297 + + + + CreateCopy + + i=1 + + -1 + + + + + + + i=297 + + + + NewName + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=16356 + + + + + + i=297 + + + + NewNodeId + + i=17 + + -1 + + + + + + + + + TemporaryFileTransferType + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.4.1 + + i=15745 + i=15746 + i=15749 + i=15751 + i=15754 + i=58 + + + + ClientProcessingTimeout + + i=68 + i=78 + i=15744 + + + + GenerateFileForRead + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.4.3 + + i=15747 + i=15748 + i=78 + i=15744 + + + + InputArguments + + i=68 + i=78 + i=15746 + + + + + + i=297 + + + + GenerateOptions + + i=24 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15746 + + + + + + i=297 + + + + FileNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + CompletionStateMachine + + i=17 + + -1 + + + + + + + + + GenerateFileForWrite + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.4.4 + + i=16359 + i=15750 + i=78 + i=15744 + + + + InputArguments + + i=68 + i=78 + i=15749 + + + + + + i=297 + + + + GenerateOptions + + i=24 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15749 + + + + + + i=297 + + + + FileNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CloseAndCommit + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.4.5 + + i=15752 + i=15753 + i=78 + i=15744 + + + + InputArguments + + i=68 + i=78 + i=15751 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15751 + + + + + + i=297 + + + + CompletionStateMachine + + i=17 + + -1 + + + + + + + + + <TransferState> + + i=15755 + i=15794 + i=15803 + i=11508 + i=15744 + + + + CurrentState + + i=15756 + i=2760 + i=78 + i=15754 + + + + Id + + i=68 + i=78 + i=15755 + + + + Reset + + i=78 + i=15754 + + + + FileTransferStateMachineType + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.4.6 + + i=15815 + i=15817 + i=15819 + i=15821 + i=15823 + i=15825 + i=15827 + i=15829 + i=15831 + i=15833 + i=15835 + i=15837 + i=15839 + i=15841 + i=15843 + i=2771 + + + + Idle + + i=15816 + i=15825 + i=15829 + i=15831 + i=15833 + i=15841 + i=2309 + i=15803 + + + + StateNumber + + i=68 + i=78 + i=15815 + + + 1 + + + + ReadPrepare + + i=15818 + i=15825 + i=15827 + i=15835 + i=2307 + i=15803 + + + + StateNumber + + i=68 + i=78 + i=15817 + + + 2 + + + + ReadTransfer + + i=15820 + i=15827 + i=15829 + i=15837 + i=2307 + i=15803 + + + + StateNumber + + i=68 + i=78 + i=15819 + + + 3 + + + + ApplyWrite + + i=15822 + i=15831 + i=15833 + i=15839 + i=2307 + i=15803 + + + + StateNumber + + i=68 + i=78 + i=15821 + + + 4 + + + + Error + + i=15824 + i=15835 + i=15837 + i=15839 + i=15841 + i=2307 + i=15803 + + + + StateNumber + + i=68 + i=78 + i=15823 + + + 5 + + + + IdleToReadPrepare + + i=15826 + i=15815 + i=15817 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15825 + + + 12 + + + + ReadPrepareToReadTransfer + + i=15828 + i=15817 + i=15819 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15827 + + + 23 + + + + ReadTransferToIdle + + i=15830 + i=15819 + i=15815 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15829 + + + 31 + + + + IdleToApplyWrite + + i=15832 + i=15815 + i=15821 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15831 + + + 14 + + + + ApplyWriteToIdle + + i=15834 + i=15821 + i=15815 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15833 + + + 41 + + + + ReadPrepareToError + + i=15836 + i=15817 + i=15823 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15835 + + + 25 + + + + ReadTransferToError + + i=15838 + i=15819 + i=15823 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15837 + + + 35 + + + + ApplyWriteToError + + i=15840 + i=15821 + i=15823 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15839 + + + 45 + + + + ErrorToIdle + + i=15842 + i=15823 + i=15815 + i=2311 + i=2310 + i=15803 + + + + TransitionNumber + + i=68 + i=78 + i=15841 + + + 51 + + + + Reset + + i=78 + i=15803 + + + + RoleSetType + https://reference.opcfoundation.org/v104/Core/docs/Part5/F.2.1 + + i=15608 + i=15997 + i=16000 + i=58 + + + + <RoleName> + + i=16162 + i=15620 + i=11508 + i=15607 + + + + Identities + + i=68 + i=78 + i=15608 + + + + AddRole + + i=15998 + i=15999 + i=78 + i=15607 + + + + InputArguments + + i=68 + i=78 + i=15997 + + + + + + i=297 + + + + RoleName + + i=12 + + -1 + + + + + + + i=297 + + + + NamespaceUri + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15997 + + + + + + i=297 + + + + RoleNodeId + + i=17 + + -1 + + + + + + + + + RemoveRole + + i=16001 + i=78 + i=15607 + + + + InputArguments + + i=68 + i=78 + i=16000 + + + + + + i=297 + + + + RoleNodeId + + i=17 + + -1 + + + + + + + + + RoleType + https://reference.opcfoundation.org/v104/Core/docs/Part5/F.3.1 + + i=16173 + i=16174 + i=15410 + i=16175 + i=15411 + i=15624 + i=15626 + i=16176 + i=16178 + i=16180 + i=16182 + i=58 + + + + Identities + + i=68 + i=78 + i=15620 + + + + Applications + + i=68 + i=80 + i=15620 + + + + ApplicationsExclude + + i=68 + i=80 + i=15620 + + + + Endpoints + + i=68 + i=80 + i=15620 + + + + EndpointsExclude + + i=68 + i=80 + i=15620 + + + + AddIdentity + + i=15625 + i=80 + i=15620 + + + + InputArguments + + i=68 + i=78 + i=15624 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15627 + i=80 + i=15620 + + + + InputArguments + + i=68 + i=78 + i=15626 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16177 + i=80 + i=15620 + + + + InputArguments + + i=68 + i=78 + i=16176 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16179 + i=80 + i=15620 + + + + InputArguments + + i=68 + i=78 + i=16178 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16181 + i=80 + i=15620 + + + + InputArguments + + i=68 + i=78 + i=16180 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16183 + i=80 + i=15620 + + + + InputArguments + + i=68 + i=78 + i=16182 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + IdentityCriteriaType + https://reference.opcfoundation.org/v104/Core/docs/Part5/F.3.2 + + i=15633 + i=29 + + + + + + + + + + + + + EnumValues + + i=68 + i=15632 + + + + + + i=7616 + + + + 1 + + UserName + + + + + + + i=7616 + + + + 2 + + Thumbprint + + + + + + + i=7616 + + + + 3 + + Role + + + + + + + i=7616 + + + + 4 + + GroupId + + + + + + + i=7616 + + + + 5 + + Anonymous + + + + + + + i=7616 + + + + 6 + + AuthenticatedUser + + + + + + + i=7616 + + + + 7 + + Application + + + + + + + + + IdentityMappingRuleType + https://reference.opcfoundation.org/v104/Core/docs/Part5/F.3.2 + + i=22 + + + + + + + + RoleMappingRuleChangedAuditEventType + https://reference.opcfoundation.org/v104/Core/docs/Part5/1 + + i=2127 + + + + Anonymous + + i=16192 + i=16193 + i=15412 + i=16194 + i=15413 + i=15648 + i=15650 + i=16195 + i=16197 + i=16199 + i=16201 + i=15606 + i=15620 + + + + Identities + + i=68 + i=15644 + + + + Applications + + i=68 + i=15644 + + + + ApplicationsExclude + + i=68 + i=15644 + + + + Endpoints + + i=68 + i=15644 + + + + EndpointsExclude + + i=68 + i=15644 + + + + AddIdentity + + i=15649 + i=15644 + + + + InputArguments + + i=68 + i=15648 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15651 + i=15644 + + + + InputArguments + + i=68 + i=15650 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16196 + i=15644 + + + + InputArguments + + i=68 + i=16195 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16198 + i=15644 + + + + InputArguments + + i=68 + i=16197 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16200 + i=15644 + + + + InputArguments + + i=68 + i=16199 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16202 + i=15644 + + + + InputArguments + + i=68 + i=16201 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + AuthenticatedUser + + i=16203 + i=16204 + i=15414 + i=16205 + i=15415 + i=15660 + i=15662 + i=16206 + i=16208 + i=16210 + i=16212 + i=15606 + i=15620 + + + + Identities + + i=68 + i=15656 + + + + Applications + + i=68 + i=15656 + + + + ApplicationsExclude + + i=68 + i=15656 + + + + Endpoints + + i=68 + i=15656 + + + + EndpointsExclude + + i=68 + i=15656 + + + + AddIdentity + + i=15661 + i=15656 + + + + InputArguments + + i=68 + i=15660 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15663 + i=15656 + + + + InputArguments + + i=68 + i=15662 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16207 + i=15656 + + + + InputArguments + + i=68 + i=16206 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16209 + i=15656 + + + + InputArguments + + i=68 + i=16208 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16211 + i=15656 + + + + InputArguments + + i=68 + i=16210 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16213 + i=15656 + + + + InputArguments + + i=68 + i=16212 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + Observer + + i=16214 + i=16215 + i=15416 + i=16216 + i=15417 + i=15672 + i=15674 + i=16217 + i=16219 + i=16221 + i=16223 + i=15606 + i=15620 + + + + Identities + + i=68 + i=15668 + + + + Applications + + i=68 + i=15668 + + + + ApplicationsExclude + + i=68 + i=15668 + + + + Endpoints + + i=68 + i=15668 + + + + EndpointsExclude + + i=68 + i=15668 + + + + AddIdentity + + i=15673 + i=15668 + + + + InputArguments + + i=68 + i=15672 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15675 + i=15668 + + + + InputArguments + + i=68 + i=15674 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16218 + i=15668 + + + + InputArguments + + i=68 + i=16217 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16220 + i=15668 + + + + InputArguments + + i=68 + i=16219 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16222 + i=15668 + + + + InputArguments + + i=68 + i=16221 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16224 + i=15668 + + + + InputArguments + + i=68 + i=16223 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + Operator + + i=16225 + i=16226 + i=15418 + i=16227 + i=15423 + i=15684 + i=15686 + i=16228 + i=16230 + i=16232 + i=16234 + i=15606 + i=15620 + + + + Identities + + i=68 + i=15680 + + + + Applications + + i=68 + i=15680 + + + + ApplicationsExclude + + i=68 + i=15680 + + + + Endpoints + + i=68 + i=15680 + + + + EndpointsExclude + + i=68 + i=15680 + + + + AddIdentity + + i=15685 + i=15680 + + + + InputArguments + + i=68 + i=15684 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15687 + i=15680 + + + + InputArguments + + i=68 + i=15686 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16229 + i=15680 + + + + InputArguments + + i=68 + i=16228 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16231 + i=15680 + + + + InputArguments + + i=68 + i=16230 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16233 + i=15680 + + + + InputArguments + + i=68 + i=16232 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16235 + i=15680 + + + + InputArguments + + i=68 + i=16234 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + Engineer + + i=16236 + i=16237 + i=15424 + i=16238 + i=15425 + i=16041 + i=16043 + i=16239 + i=16241 + i=16243 + i=16245 + i=15606 + i=15620 + + + + Identities + + i=68 + i=16036 + + + + Applications + + i=68 + i=16036 + + + + ApplicationsExclude + + i=68 + i=16036 + + + + Endpoints + + i=68 + i=16036 + + + + EndpointsExclude + + i=68 + i=16036 + + + + AddIdentity + + i=16042 + i=16036 + + + + InputArguments + + i=68 + i=16041 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=16044 + i=16036 + + + + InputArguments + + i=68 + i=16043 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16240 + i=16036 + + + + InputArguments + + i=68 + i=16239 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16242 + i=16036 + + + + InputArguments + + i=68 + i=16241 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16244 + i=16036 + + + + InputArguments + + i=68 + i=16243 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16246 + i=16036 + + + + InputArguments + + i=68 + i=16245 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + Supervisor + + i=16247 + i=16248 + i=15426 + i=16249 + i=15427 + i=15696 + i=15698 + i=16250 + i=16252 + i=16254 + i=16256 + i=15606 + i=15620 + + + + Identities + + i=68 + i=15692 + + + + Applications + + i=68 + i=15692 + + + + ApplicationsExclude + + i=68 + i=15692 + + + + Endpoints + + i=68 + i=15692 + + + + EndpointsExclude + + i=68 + i=15692 + + + + AddIdentity + + i=15697 + i=15692 + + + + InputArguments + + i=68 + i=15696 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15699 + i=15692 + + + + InputArguments + + i=68 + i=15698 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16251 + i=15692 + + + + InputArguments + + i=68 + i=16250 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16253 + i=15692 + + + + InputArguments + + i=68 + i=16252 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16255 + i=15692 + + + + InputArguments + + i=68 + i=16254 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16257 + i=15692 + + + + InputArguments + + i=68 + i=16256 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + ConfigureAdmin + + i=16269 + i=16270 + i=15428 + i=16271 + i=15429 + i=15720 + i=15722 + i=16272 + i=16274 + i=16276 + i=16278 + i=15606 + i=15620 + + + + Identities + + i=68 + i=15716 + + + + Applications + + i=68 + i=15716 + + + + ApplicationsExclude + + i=68 + i=15716 + + + + Endpoints + + i=68 + i=15716 + + + + EndpointsExclude + + i=68 + i=15716 + + + + AddIdentity + + i=15721 + i=15716 + + + + InputArguments + + i=68 + i=15720 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15723 + i=15716 + + + + InputArguments + + i=68 + i=15722 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16273 + i=15716 + + + + InputArguments + + i=68 + i=16272 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16275 + i=15716 + + + + InputArguments + + i=68 + i=16274 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16277 + i=15716 + + + + InputArguments + + i=68 + i=16276 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16279 + i=15716 + + + + InputArguments + + i=68 + i=16278 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + SecurityAdmin + + i=16258 + i=16259 + i=15430 + i=16260 + i=15527 + i=15708 + i=15710 + i=16261 + i=16263 + i=16265 + i=16267 + i=15606 + i=15620 + + + + Identities + + i=68 + i=15704 + + + + Applications + + i=68 + i=15704 + + + + ApplicationsExclude + + i=68 + i=15704 + + + + Endpoints + + i=68 + i=15704 + + + + EndpointsExclude + + i=68 + i=15704 + + + + AddIdentity + + i=15709 + i=15704 + + + + InputArguments + + i=68 + i=15708 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + RemoveIdentity + + i=15711 + i=15704 + + + + InputArguments + + i=68 + i=15710 + + + + + + i=297 + + + + Rule + + i=15634 + + -1 + + + + + + + + + AddApplication + + i=16262 + i=15704 + + + + InputArguments + + i=68 + i=16261 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + RemoveApplication + + i=16264 + i=15704 + + + + InputArguments + + i=68 + i=16263 + + + + + + i=297 + + + + ApplicationUri + + i=12 + + -1 + + + + + + + + + AddEndpoint + + i=16266 + i=15704 + + + + InputArguments + + i=68 + i=16265 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + RemoveEndpoint + + i=16268 + i=15704 + + + + InputArguments + + i=68 + i=16267 + + + + + + i=297 + + + + Endpoint + + i=15528 + + -1 + + + + + + + + + DictionaryEntryType + https://reference.opcfoundation.org/v104/Core/docs/Amendment5/G.2.3 + + i=17590 + i=58 + + + + <DictionaryEntryName> + + i=17589 + i=11508 + i=17589 + + + + DictionaryFolderType + https://reference.opcfoundation.org/v104/Core/docs/Amendment5/G.2.4 + + i=17592 + i=17593 + i=61 + + + + <DictionaryFolderName> + + i=17591 + i=11508 + i=17591 + + + + <DictionaryEntryName> + + i=17589 + i=11508 + i=17591 + + + + Dictionaries + https://reference.opcfoundation.org/v104/Core/docs/Amendment5/G.2.2 + + i=2253 + i=17591 + + + + HasDictionaryEntry + https://reference.opcfoundation.org/v104/Core/docs/Part19/6.1 + + i=32 + + DictionaryEntryOf + + + IrdiDictionaryEntryType + https://reference.opcfoundation.org/v104/Core/docs/Amendment5/G.3 + + i=17589 + + + + UriDictionaryEntryType + https://reference.opcfoundation.org/v104/Core/docs/Amendment5/G.4 + + i=17589 + + + + BaseInterfaceType + https://reference.opcfoundation.org/v104/Core/docs/Amendment7/6.9 + + i=58 + + + + InterfaceTypes + https://reference.opcfoundation.org/v104/Core/docs/Amendment7/8.2.11 + + i=17602 + i=86 + i=61 + + + + HasInterface + https://reference.opcfoundation.org/v104/Core/docs/Amendment7/11.20 + + i=32 + + InterfaceOf + + + HasAddIn + https://reference.opcfoundation.org/v104/Core/docs/Amendment7/11.21 + + i=47 + + AddInOf + + + CurrencyUnitType + https://reference.opcfoundation.org/v104/Core/docs/Amendment10/8.61 + + i=22 + + + + + + + + + + CurrencyUnit + + i=68 + + + + IOrderedObjectType + https://reference.opcfoundation.org/v104/Core/docs/Amendment13/6.10 + + i=23517 + i=17602 + + + + NumberInList + + i=68 + i=78 + i=23513 + + + + OrderedListType + https://reference.opcfoundation.org/v104/Core/docs/Amendment13/6.10 + + i=23519 + i=23525 + i=2133 + i=58 + + + + <OrderedObject> + + i=23521 + i=23513 + i=58 + i=11508 + i=23518 + + + + NumberInList + + i=68 + i=78 + i=23519 + + + + NodeVersion + + i=68 + i=80 + i=23518 + + + + DataItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.1 + + i=2366 + i=2367 + i=63 + + + + Definition + + i=68 + i=80 + i=2365 + + + + ValuePrecision + + i=68 + i=80 + i=2365 + + + + BaseAnalogType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.2/#5.3.2.2 + + i=17567 + i=17568 + i=17569 + i=2365 + + + + InstrumentRange + + i=68 + i=80 + i=15318 + + + + EURange + + i=68 + i=80 + i=15318 + + + + EngineeringUnits + + i=68 + i=80 + i=15318 + + + + AnalogItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.2/#5.3.2.3 + + i=2369 + i=15318 + + + + EURange + + i=68 + i=78 + i=2368 + + + + AnalogUnitType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.2/#5.3.2.4 + + i=17502 + i=15318 + + + + EngineeringUnits + + i=68 + i=78 + i=17497 + + + + AnalogUnitRangeType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.2/#5.3.2.5 + + i=17575 + i=2368 + + + + EngineeringUnits + + i=68 + i=78 + i=17570 + + + + DiscreteItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.3/#5.3.3.1 + + i=2365 + + + + TwoStateDiscreteType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.3/#5.3.3.2 + + i=2374 + i=2375 + i=2372 + + + + FalseState + + i=68 + i=78 + i=2373 + + + + TrueState + + i=68 + i=78 + i=2373 + + + + MultiStateDiscreteType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.3/#5.3.3.3 + + i=2377 + i=2372 + + + + EnumStrings + + i=68 + i=78 + i=2376 + + + + MultiStateValueDiscreteType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.3/#5.3.3.4 + + i=11241 + i=11461 + i=2372 + + + + EnumValues + + i=68 + i=78 + i=11238 + + + + ValueAsText + + i=68 + i=78 + i=11238 + + + + ArrayItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.4/#5.3.4.1 + + i=12024 + i=12025 + i=12026 + i=12027 + i=12028 + i=2365 + + + + InstrumentRange + + i=68 + i=80 + i=12021 + + + + EURange + + i=68 + i=78 + i=12021 + + + + EngineeringUnits + + i=68 + i=78 + i=12021 + + + + Title + + i=68 + i=78 + i=12021 + + + + AxisScaleType + + i=68 + i=78 + i=12021 + + + + YArrayItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.4/#5.3.4.2 + + i=12037 + i=12021 + + + + XAxisDefinition + + i=68 + i=78 + i=12029 + + + + XYArrayItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.4/#5.3.4.3 + + i=12046 + i=12021 + + + + XAxisDefinition + + i=68 + i=78 + i=12038 + + + + ImageItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.4/#5.3.4.4 + + i=12055 + i=12056 + i=12021 + + + + XAxisDefinition + + i=68 + i=78 + i=12047 + + + + YAxisDefinition + + i=68 + i=78 + i=12047 + + + + CubeItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.4/#5.3.4.5 + + i=12065 + i=12066 + i=12067 + i=12021 + + + + XAxisDefinition + + i=68 + i=78 + i=12057 + + + + YAxisDefinition + + i=68 + i=78 + i=12057 + + + + ZAxisDefinition + + i=68 + i=78 + i=12057 + + + + NDimensionArrayItemType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.3.4/#5.3.4.6 + + i=12076 + i=12021 + + + + AxisDefinition + + i=68 + i=78 + i=12068 + + + + TwoStateVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.2 + + i=8996 + i=9000 + i=9001 + i=11110 + i=11111 + i=2755 + + + + Id + + i=68 + i=78 + i=8995 + + + + TransitionTime + + i=68 + i=80 + i=8995 + + + + EffectiveTransitionTime + + i=68 + i=80 + i=8995 + + + + TrueState + + i=68 + i=80 + i=8995 + + + + FalseState + + i=68 + i=80 + i=8995 + + + + ConditionVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.3 + + i=9003 + i=63 + + + + SourceTimestamp + + i=68 + i=78 + i=9002 + + + + HasTrueSubState + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.4.2 + + i=32 + + IsTrueSubStateOf + + + HasFalseSubState + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.4.3 + + i=32 + + IsFalseSubStateOf + + + HasAlarmSuppressionGroup + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.4.4 + + i=47 + + IsAlarmSuppressionGroupOf + + + AlarmGroupMember + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.4.5 + + i=35 + + MemberOfAlarmGroup + + + ConditionType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.5.2 + + i=11112 + i=11113 + i=16363 + i=16364 + i=9009 + i=9010 + i=3874 + i=9011 + i=9020 + i=9022 + i=9024 + i=9026 + i=9028 + i=9027 + i=9029 + i=3875 + i=12912 + i=2041 + + + + ConditionClassId + + i=68 + i=78 + i=2782 + + + + ConditionClassName + + i=68 + i=78 + i=2782 + + + + ConditionSubClassId + + i=68 + i=80 + i=2782 + + + + ConditionSubClassName + + i=68 + i=80 + i=2782 + + + + ConditionName + + i=68 + i=78 + i=2782 + + + + BranchId + + i=68 + i=78 + i=2782 + + + + Retain + + i=68 + i=78 + i=2782 + + + + EnabledState + + i=9012 + i=9015 + i=9016 + i=9017 + i=9018 + i=9019 + i=8995 + i=78 + i=2782 + + + + Id + + i=68 + i=78 + i=9011 + + + + EffectiveDisplayName + + i=68 + i=80 + i=9011 + + + + TransitionTime + + i=68 + i=80 + i=9011 + + + + EffectiveTransitionTime + + i=68 + i=80 + i=9011 + + + + TrueState + + i=68 + i=80 + i=9011 + + + + en + Enabled + + + + + FalseState + + i=68 + i=80 + i=9011 + + + + en + Disabled + + + + + Quality + + i=9021 + i=9002 + i=78 + i=2782 + + + + SourceTimestamp + + i=68 + i=78 + i=9020 + + + + LastSeverity + + i=9023 + i=9002 + i=78 + i=2782 + + + + SourceTimestamp + + i=68 + i=78 + i=9022 + + + + Comment + + i=9025 + i=9002 + i=78 + i=2782 + + + + SourceTimestamp + + i=68 + i=78 + i=9024 + + + + ClientUserId + + i=68 + i=78 + i=2782 + + + + Disable + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.5.4 + + i=2803 + i=78 + i=2782 + + + + Enable + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.5.5 + + i=2803 + i=78 + i=2782 + + + + AddComment + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.5.6 + + i=9030 + i=2829 + i=78 + i=2782 + + + + InputArguments + + i=68 + i=78 + i=9029 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + ConditionRefresh + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.5.7 + + i=3876 + i=2787 + i=2788 + i=2782 + + + + InputArguments + + i=68 + i=78 + i=3875 + + + + + + i=297 + + + + SubscriptionId + + i=288 + + -1 + + + The identifier for the subscription to refresh. + + + + + + + + + ConditionRefresh2 + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.5.8 + + i=12913 + i=2787 + i=2788 + i=2782 + + + + InputArguments + + i=68 + i=78 + i=12912 + + + + + + i=297 + + + + SubscriptionId + + i=288 + + -1 + + + The identifier for the subscription to refresh. + + + + + + + i=297 + + + + MonitoredItemId + + i=288 + + -1 + + + The identifier for the monitored item to refresh. + + + + + + + + + DialogConditionType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.6.2 + + i=9035 + i=9055 + i=2831 + i=9064 + i=9065 + i=9066 + i=9067 + i=9068 + i=9069 + i=2782 + + + + EnabledState + + i=9036 + i=9055 + i=8995 + i=78 + i=2830 + + + + Id + + i=68 + i=78 + i=9035 + + + + DialogState + + i=9056 + i=9060 + i=9062 + i=9063 + i=9035 + i=8995 + i=78 + i=2830 + + + + Id + + i=68 + i=78 + i=9055 + + + + TransitionTime + + i=68 + i=80 + i=9055 + + + + TrueState + + i=68 + i=80 + i=9055 + + + + en + Active + + + + + FalseState + + i=68 + i=80 + i=9055 + + + + en + Inactive + + + + + Prompt + + i=68 + i=78 + i=2830 + + + + ResponseOptionSet + + i=68 + i=78 + i=2830 + + + + DefaultResponse + + i=68 + i=78 + i=2830 + + + + OkResponse + + i=68 + i=78 + i=2830 + + + + CancelResponse + + i=68 + i=78 + i=2830 + + + + LastResponse + + i=68 + i=78 + i=2830 + + + + Respond + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.6.3 + + i=9070 + i=8927 + i=78 + i=2830 + + + + InputArguments + + i=68 + i=78 + i=9069 + + + + + + i=297 + + + + SelectedResponse + + i=6 + + -1 + + + The response to the dialog condition. + + + + + + + + + AcknowledgeableConditionType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.7.2 + + i=9073 + i=9093 + i=9102 + i=9111 + i=9113 + i=2782 + + + + EnabledState + + i=9074 + i=9093 + i=9102 + i=8995 + i=78 + i=2881 + + + + Id + + i=68 + i=78 + i=9073 + + + + AckedState + + i=9094 + i=9098 + i=9100 + i=9101 + i=9073 + i=8995 + i=78 + i=2881 + + + + Id + + i=68 + i=78 + i=9093 + + + + TransitionTime + + i=68 + i=80 + i=9093 + + + + TrueState + + i=68 + i=80 + i=9093 + + + + en + Acknowledged + + + + + FalseState + + i=68 + i=80 + i=9093 + + + + en + Unacknowledged + + + + + ConfirmedState + + i=9103 + i=9107 + i=9109 + i=9110 + i=9073 + i=8995 + i=80 + i=2881 + + + + Id + + i=68 + i=78 + i=9102 + + + + TransitionTime + + i=68 + i=80 + i=9102 + + + + TrueState + + i=68 + i=80 + i=9102 + + + + en + Confirmed + + + + + FalseState + + i=68 + i=80 + i=9102 + + + + en + Unconfirmed + + + + + Acknowledge + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.7.3 + + i=9112 + i=8944 + i=78 + i=2881 + + + + InputArguments + + i=68 + i=78 + i=9111 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + Confirm + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.7.4 + + i=9114 + i=8961 + i=80 + i=2881 + + + + InputArguments + + i=68 + i=78 + i=9113 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + AlarmConditionType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.2 + + i=9118 + i=9160 + i=11120 + i=9169 + i=16371 + i=9178 + i=9215 + i=9216 + i=16389 + i=16390 + i=16380 + i=16395 + i=16396 + i=16397 + i=16398 + i=18190 + i=16399 + i=16400 + i=16401 + i=16402 + i=16403 + i=17868 + i=17869 + i=17870 + i=18199 + i=2881 + + + + EnabledState + + i=9119 + i=9160 + i=9169 + i=9178 + i=8995 + i=78 + i=2915 + + + + Id + + i=68 + i=78 + i=9118 + + + + ActiveState + + i=9161 + i=9164 + i=9165 + i=9166 + i=9167 + i=9168 + i=9118 + i=8995 + i=78 + i=2915 + + + + Id + + i=68 + i=78 + i=9160 + + + + EffectiveDisplayName + + i=68 + i=80 + i=9160 + + + + TransitionTime + + i=68 + i=80 + i=9160 + + + + EffectiveTransitionTime + + i=68 + i=80 + i=9160 + + + + TrueState + + i=68 + i=80 + i=9160 + + + + en + Active + + + + + FalseState + + i=68 + i=80 + i=9160 + + + + en + Inactive + + + + + InputNode + + i=68 + i=78 + i=2915 + + + + SuppressedState + + i=9170 + i=9174 + i=9176 + i=9177 + i=9118 + i=8995 + i=80 + i=2915 + + + + Id + + i=68 + i=78 + i=9169 + + + + TransitionTime + + i=68 + i=80 + i=9169 + + + + TrueState + + i=68 + i=80 + i=9169 + + + + en + Suppressed + + + + + FalseState + + i=68 + i=80 + i=9169 + + + + en + Unsuppressed + + + + + OutOfServiceState + + i=16372 + i=16376 + i=16378 + i=16379 + i=8995 + i=80 + i=2915 + + + + Id + + i=68 + i=78 + i=16371 + + + + TransitionTime + + i=68 + i=80 + i=16371 + + + + TrueState + + i=68 + i=80 + i=16371 + + + + en + Out of Service + + + + + FalseState + + i=68 + i=80 + i=16371 + + + + en + In Service + + + + + ShelvingState + + i=9179 + i=9184 + i=9189 + i=9213 + i=9211 + i=9212 + i=9118 + i=2929 + i=80 + i=2915 + + + + CurrentState + + i=9180 + i=2760 + i=78 + i=9178 + + + + Id + + i=68 + i=78 + i=9179 + + + + LastTransition + + i=9185 + i=9188 + i=2767 + i=80 + i=9178 + + + + Id + + i=68 + i=78 + i=9184 + + + + TransitionTime + + i=68 + i=80 + i=9184 + + + + UnshelveTime + + i=68 + i=78 + i=9178 + + + + TimedShelve + + i=9214 + i=11093 + i=78 + i=9178 + + + + InputArguments + + i=68 + i=78 + i=9213 + + + + + + i=297 + + + + ShelvingTime + + i=290 + + -1 + + + If not 0, this parameter specifies a fixed time for which the Alarm is to be shelved. + + + + + + + + + Unshelve + + i=11093 + i=78 + i=9178 + + + + OneShotShelve + + i=11093 + i=78 + i=9178 + + + + SuppressedOrShelved + + i=68 + i=78 + i=2915 + + + + MaxTimeShelved + + i=68 + i=80 + i=2915 + + + + AudibleEnabled + + i=68 + i=80 + i=2915 + + + + AudibleSound + + i=17986 + i=80 + i=2915 + + + + SilenceState + + i=16381 + i=16385 + i=16387 + i=16388 + i=8995 + i=80 + i=2915 + + + + Id + + i=68 + i=78 + i=16380 + + + + TransitionTime + + i=68 + i=80 + i=16380 + + + + TrueState + + i=68 + i=80 + i=16380 + + + + en + Silenced + + + + + FalseState + + i=68 + i=80 + i=16380 + + + + en + Not Silenced + + + + + OnDelay + + i=68 + i=80 + i=2915 + + + + OffDelay + + i=68 + i=80 + i=2915 + + + + FirstInGroupFlag + + i=63 + i=80 + i=2915 + + + + FirstInGroup + + i=16405 + i=80 + i=2915 + + + + LatchedState + + i=18191 + i=18195 + i=18197 + i=18198 + i=8995 + i=80 + i=2915 + + + + Id + + i=68 + i=78 + i=18190 + + + + TransitionTime + + i=68 + i=80 + i=18190 + + + + TrueState + + i=68 + i=80 + i=18190 + + + + en + Latched + + + + + FalseState + + i=68 + i=80 + i=18190 + + + + en + Unlatched + + + + + <AlarmGroup> + + i=16405 + i=11508 + i=2915 + + + + ReAlarmTime + + i=68 + i=80 + i=2915 + + + + ReAlarmRepeatCount + + i=63 + i=80 + i=2915 + + + + Silence + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.5 + + i=17242 + i=80 + i=2915 + + + + Suppress + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.6 + + i=17225 + i=80 + i=2915 + + + + Unsuppress + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.7 + + i=17225 + i=80 + i=2915 + + + + RemoveFromService + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.8 + + i=17259 + i=80 + i=2915 + + + + PlaceInService + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.9 + + i=17259 + i=80 + i=2915 + + + + Reset + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.4 + + i=15013 + i=80 + i=2915 + + + + AlarmGroupType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.3 + + i=16406 + i=61 + + + + <AlarmConditionInstance> + + i=16407 + i=16408 + i=16409 + i=16410 + i=16411 + i=16412 + i=16414 + i=16415 + i=16416 + i=16417 + i=16420 + i=16421 + i=16422 + i=16423 + i=16432 + i=16434 + i=16436 + i=16438 + i=16439 + i=16440 + i=16441 + i=16443 + i=16461 + i=16465 + i=16474 + i=16519 + i=2915 + i=11508 + i=16405 + + + + EventId + + i=68 + i=78 + i=16406 + + + + EventType + + i=68 + i=78 + i=16406 + + + + SourceNode + + i=68 + i=78 + i=16406 + + + + SourceName + + i=68 + i=78 + i=16406 + + + + Time + + i=68 + i=78 + i=16406 + + + + ReceiveTime + + i=68 + i=78 + i=16406 + + + + Message + + i=68 + i=78 + i=16406 + + + + Severity + + i=68 + i=78 + i=16406 + + + + ConditionClassId + + i=68 + i=78 + i=16406 + + + + ConditionClassName + + i=68 + i=78 + i=16406 + + + + ConditionName + + i=68 + i=78 + i=16406 + + + + BranchId + + i=68 + i=78 + i=16406 + + + + Retain + + i=68 + i=78 + i=16406 + + + + EnabledState + + i=16424 + i=8995 + i=78 + i=16406 + + + + Id + + i=68 + i=78 + i=16423 + + + + Quality + + i=16433 + i=9002 + i=78 + i=16406 + + + + SourceTimestamp + + i=68 + i=78 + i=16432 + + + + LastSeverity + + i=16435 + i=9002 + i=78 + i=16406 + + + + SourceTimestamp + + i=68 + i=78 + i=16434 + + + + Comment + + i=16437 + i=9002 + i=78 + i=16406 + + + + SourceTimestamp + + i=68 + i=78 + i=16436 + + + + ClientUserId + + i=68 + i=78 + i=16406 + + + + Disable + + i=2803 + i=78 + i=16406 + + + + Enable + + i=2803 + i=78 + i=16406 + + + + AddComment + + i=16442 + i=2829 + i=78 + i=16406 + + + + InputArguments + + i=68 + i=78 + i=16441 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + AckedState + + i=16444 + i=8995 + i=78 + i=16406 + + + + Id + + i=68 + i=78 + i=16443 + + + + Acknowledge + + i=16462 + i=8944 + i=78 + i=16406 + + + + InputArguments + + i=68 + i=78 + i=16461 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + ActiveState + + i=16466 + i=8995 + i=78 + i=16406 + + + + Id + + i=68 + i=78 + i=16465 + + + + InputNode + + i=68 + i=78 + i=16406 + + + + SuppressedOrShelved + + i=68 + i=78 + i=16406 + + + + ShelvedStateMachineType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.10/#5.8.10.1 + + i=9115 + i=2930 + i=2932 + i=2933 + i=2935 + i=2936 + i=2940 + i=2942 + i=2943 + i=2945 + i=2949 + i=2947 + i=2948 + i=2771 + + + + UnshelveTime + + i=68 + i=78 + i=2929 + + + + Unshelved + + i=6098 + i=2935 + i=2936 + i=2940 + i=2943 + i=2307 + i=2929 + + + + StateNumber + + i=68 + i=78 + i=2930 + + + 1 + + + + TimedShelved + + i=6100 + i=2935 + i=2940 + i=2942 + i=2945 + i=2307 + i=2929 + + + + StateNumber + + i=68 + i=78 + i=2932 + + + 2 + + + + OneShotShelved + + i=6101 + i=2936 + i=2942 + i=2943 + i=2945 + i=2307 + i=2929 + + + + StateNumber + + i=68 + i=78 + i=2933 + + + 3 + + + + UnshelvedToTimedShelved + + i=11322 + i=2930 + i=2932 + i=2915 + i=2949 + i=2310 + i=2929 + + + + TransitionNumber + + i=68 + i=78 + i=2935 + + + 12 + + + + UnshelvedToOneShotShelved + + i=11323 + i=2930 + i=2933 + i=2915 + i=2948 + i=2310 + i=2929 + + + + TransitionNumber + + i=68 + i=78 + i=2936 + + + 13 + + + + TimedShelvedToUnshelved + + i=11324 + i=2932 + i=2930 + i=2915 + i=2947 + i=2310 + i=2929 + + + + TransitionNumber + + i=68 + i=78 + i=2940 + + + 21 + + + + TimedShelvedToOneShotShelved + + i=11325 + i=2932 + i=2933 + i=2915 + i=2948 + i=2310 + i=2929 + + + + TransitionNumber + + i=68 + i=78 + i=2942 + + + 23 + + + + OneShotShelvedToUnshelved + + i=11326 + i=2933 + i=2930 + i=2915 + i=2947 + i=2310 + i=2929 + + + + TransitionNumber + + i=68 + i=78 + i=2943 + + + 31 + + + + OneShotShelvedToTimedShelved + + i=11327 + i=2933 + i=2932 + i=2915 + i=2949 + i=2310 + i=2929 + + + + TransitionNumber + + i=68 + i=78 + i=2945 + + + 32 + + + + TimedShelve + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.10/#5.8.10.3 + + i=2991 + i=2935 + i=2945 + i=11093 + i=78 + i=2929 + + + + InputArguments + + i=68 + i=78 + i=2949 + + + + + + i=297 + + + + ShelvingTime + + i=290 + + -1 + + + If not 0, this parameter specifies a fixed time for which the Alarm is to be shelved. + + + + + + + + + Unshelve + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.10/#5.8.10.2 + + i=2940 + i=2943 + i=11093 + i=78 + i=2929 + + + + OneShotShelve + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.10/#5.8.10.4 + + i=2936 + i=2942 + i=11093 + i=78 + i=2929 + + + + LimitAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.11 + + i=11124 + i=11125 + i=11126 + i=11127 + i=16572 + i=16573 + i=16574 + i=16575 + i=2915 + + + + HighHighLimit + + i=68 + i=80 + i=2955 + + + + HighLimit + + i=68 + i=80 + i=2955 + + + + LowLimit + + i=68 + i=80 + i=2955 + + + + LowLowLimit + + i=68 + i=80 + i=2955 + + + + BaseHighHighLimit + + i=68 + i=80 + i=2955 + + + + BaseHighLimit + + i=68 + i=80 + i=2955 + + + + BaseLowLimit + + i=68 + i=80 + i=2955 + + + + BaseLowLowLimit + + i=68 + i=80 + i=2955 + + + + ExclusiveLimitStateMachineType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.12/#5.8.12.2 + + i=9329 + i=9331 + i=9333 + i=9335 + i=9337 + i=9338 + i=9339 + i=9340 + i=2771 + + + + HighHigh + + i=9330 + i=9339 + i=9340 + i=2307 + i=9318 + + + + StateNumber + + i=68 + i=78 + i=9329 + + + 1 + + + + High + + i=9332 + i=9339 + i=9340 + i=2307 + i=9318 + + + + StateNumber + + i=68 + i=78 + i=9331 + + + 2 + + + + Low + + i=9334 + i=9337 + i=9338 + i=2307 + i=9318 + + + + StateNumber + + i=68 + i=78 + i=9333 + + + 3 + + + + LowLow + + i=9336 + i=9337 + i=9338 + i=2307 + i=9318 + + + + StateNumber + + i=68 + i=78 + i=9335 + + + 4 + + + + LowLowToLow + + i=11340 + i=9335 + i=9333 + i=2310 + i=9318 + + + + TransitionNumber + + i=68 + i=78 + i=9337 + + + 43 + + + + LowToLowLow + + i=11341 + i=9333 + i=9335 + i=2310 + i=9318 + + + + TransitionNumber + + i=68 + i=78 + i=9338 + + + 34 + + + + HighHighToHigh + + i=11342 + i=9329 + i=9331 + i=2310 + i=9318 + + + + TransitionNumber + + i=68 + i=78 + i=9339 + + + 12 + + + + HighToHighHigh + + i=11343 + i=9331 + i=9329 + i=2310 + i=9318 + + + + TransitionNumber + + i=68 + i=78 + i=9340 + + + 21 + + + + ExclusiveLimitAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.12/#5.8.12.3 + + i=9398 + i=9455 + i=2955 + + + + ActiveState + + i=9399 + i=9455 + i=8995 + i=78 + i=9341 + + + + Id + + i=68 + i=78 + i=9398 + + + + LimitState + + i=9456 + i=9461 + i=9398 + i=9318 + i=78 + i=9341 + + + + CurrentState + + i=9457 + i=2760 + i=78 + i=9455 + + + + Id + + i=68 + i=78 + i=9456 + + + + LastTransition + + i=9462 + i=9465 + i=2767 + i=80 + i=9455 + + + + Id + + i=68 + i=78 + i=9461 + + + + TransitionTime + + i=68 + i=80 + i=9461 + + + + NonExclusiveLimitAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.13 + + i=9963 + i=10020 + i=10029 + i=10038 + i=10047 + i=2955 + + + + ActiveState + + i=9964 + i=10020 + i=10029 + i=10038 + i=10047 + i=8995 + i=78 + i=9906 + + + + Id + + i=68 + i=78 + i=9963 + + + + HighHighState + + i=10021 + i=10025 + i=10027 + i=10028 + i=9963 + i=8995 + i=80 + i=9906 + + + + Id + + i=68 + i=78 + i=10020 + + + + TransitionTime + + i=68 + i=80 + i=10020 + + + + TrueState + + i=68 + i=80 + i=10020 + + + + en + HighHigh active + + + + + FalseState + + i=68 + i=80 + i=10020 + + + + en + HighHigh inactive + + + + + HighState + + i=10030 + i=10034 + i=10036 + i=10037 + i=9963 + i=8995 + i=80 + i=9906 + + + + Id + + i=68 + i=78 + i=10029 + + + + TransitionTime + + i=68 + i=80 + i=10029 + + + + TrueState + + i=68 + i=80 + i=10029 + + + + en + High active + + + + + FalseState + + i=68 + i=80 + i=10029 + + + + en + High inactive + + + + + LowState + + i=10039 + i=10043 + i=10045 + i=10046 + i=9963 + i=8995 + i=80 + i=9906 + + + + Id + + i=68 + i=78 + i=10038 + + + + TransitionTime + + i=68 + i=80 + i=10038 + + + + TrueState + + i=68 + i=80 + i=10038 + + + + en + Low active + + + + + FalseState + + i=68 + i=80 + i=10038 + + + + en + Low inactive + + + + + LowLowState + + i=10048 + i=10052 + i=10054 + i=10055 + i=9963 + i=8995 + i=80 + i=9906 + + + + Id + + i=68 + i=78 + i=10047 + + + + TransitionTime + + i=68 + i=80 + i=10047 + + + + TrueState + + i=68 + i=80 + i=10047 + + + + en + LowLow active + + + + + FalseState + + i=68 + i=80 + i=10047 + + + + en + LowLow inactive + + + + + NonExclusiveLevelAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.14/#5.8.14.2 + + i=9906 + + + + ExclusiveLevelAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.14/#5.8.14.3 + + i=9341 + + + + NonExclusiveDeviationAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.15/#5.8.15.2 + + i=10522 + i=16776 + i=9906 + + + + SetpointNode + + i=68 + i=78 + i=10368 + + + + BaseSetpointNode + + i=68 + i=80 + i=10368 + + + + NonExclusiveRateOfChangeAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.16/#5.8.16.2 + + i=16858 + i=9906 + + + + EngineeringUnits + + i=68 + i=80 + i=10214 + + + + ExclusiveDeviationAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.15/#5.8.15.3 + + i=9905 + i=16817 + i=9341 + + + + SetpointNode + + i=68 + i=78 + i=9764 + + + + BaseSetpointNode + + i=68 + i=80 + i=9764 + + + + ExclusiveRateOfChangeAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.16/#5.8.16.3 + + i=16899 + i=9341 + + + + EngineeringUnits + + i=68 + i=80 + i=9623 + + + + DiscreteAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.17/#5.8.17.1 + + i=2915 + + + + OffNormalAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.17/#5.8.17.2 + + i=11158 + i=10523 + + + + NormalState + + i=68 + i=78 + i=10637 + + + + SystemOffNormalAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.17/#5.8.17.3 + + i=10637 + + + + TripAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.17/#5.8.17.4 + + i=10637 + + + + InstrumentDiagnosticAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.17/#5.8.17.5 + + i=10637 + + + + SystemDiagnosticAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.17/#5.8.17.6 + + i=10637 + + + + CertificateExpirationAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.17/#5.8.17.7 + + i=13325 + i=14900 + i=13326 + i=13327 + i=11753 + + + + ExpirationDate + + i=68 + i=78 + i=13225 + + + + ExpirationLimit + + i=68 + i=80 + i=13225 + + + + CertificateType + + i=68 + i=78 + i=13225 + + + + Certificate + + i=68 + i=78 + i=13225 + + + + DiscrepancyAlarmType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.8.18 + + i=17215 + i=17216 + i=17217 + i=2915 + + + + TargetValueNode + + i=68 + i=78 + i=17080 + + + + ExpectedTime + + i=68 + i=78 + i=17080 + + + + Tolerance + + i=68 + i=80 + i=17080 + + + + BaseConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.2 + + i=58 + + + + ProcessConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.3 + + i=11163 + + + + MaintenanceConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.4 + + i=11163 + + + + SystemConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.5 + + i=11163 + + + + SafetyConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.6 + + i=11163 + + + + HighlyManagedAlarmConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.7 + + i=11163 + + + + TrainingConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.8 + + i=11163 + + + + StatisticalConditionClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.9 + + i=11163 + + + + TestingConditionSubClassType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.9.10 + + i=11163 + + + + AuditConditionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.2 + + i=2127 + + + + AuditConditionEnableEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.3 + + i=2790 + + + + AuditConditionCommentEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.4 + + i=17222 + i=11851 + i=2790 + + + + ConditionEventId + + i=68 + i=78 + i=2829 + + + + Comment + + i=68 + i=78 + i=2829 + + + + AuditConditionRespondEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.5 + + i=11852 + i=2790 + + + + SelectedResponse + + i=68 + i=78 + i=8927 + + + + AuditConditionAcknowledgeEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.6 + + i=17223 + i=11853 + i=2790 + + + + ConditionEventId + + i=68 + i=78 + i=8944 + + + + Comment + + i=68 + i=78 + i=8944 + + + + AuditConditionConfirmEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.7 + + i=17224 + i=11854 + i=2790 + + + + ConditionEventId + + i=68 + i=78 + i=8961 + + + + Comment + + i=68 + i=78 + i=8961 + + + + AuditConditionShelvingEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.8 + + i=11855 + i=2790 + + + + ShelvingTime + + i=68 + i=80 + i=11093 + + + + AuditConditionSuppressionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.9 + + i=2790 + + + + AuditConditionSilenceEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.10 + + i=2790 + + + + AuditConditionResetEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.11 + + i=2790 + + + + AuditConditionOutOfServiceEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.10.12 + + i=2790 + + + + RefreshStartEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.11.2 + + i=2130 + + + + RefreshEndEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.11.3 + + i=2130 + + + + RefreshRequiredEventType + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.11.4 + + i=2130 + + + + HasCondition + https://reference.opcfoundation.org/v104/Core/docs/Part9/5.12 + + i=32 + + IsConditionOf + + + HasEffectDisable + https://reference.opcfoundation.org/v104/Core/docs/Part9/7.2 + + i=54 + + MayBeDisabledBy + + + HasEffectEnable + https://reference.opcfoundation.org/v104/Core/docs/Part9/7.3 + + i=54 + + MayBeEnabledBy + + + HasEffectSuppressed + https://reference.opcfoundation.org/v104/Core/docs/Part9/7.4 + + i=54 + + MayBeSuppressedBy + + + HasEffectUnsuppressed + https://reference.opcfoundation.org/v104/Core/docs/Part9/7.5 + + i=54 + + MayBeUnsuppressedBy + + + AlarmMetricsType + https://reference.opcfoundation.org/v104/Core/docs/Part9/8.2 + + i=17280 + i=17991 + i=17281 + i=17282 + i=17284 + i=17286 + i=17283 + i=17288 + i=18666 + i=58 + + + + AlarmCount + + i=63 + i=78 + i=17279 + + + + StartTime + + i=63 + i=78 + i=17279 + + + + MaximumActiveState + + i=63 + i=78 + i=17279 + + + + MaximumUnAck + + i=63 + i=78 + i=17279 + + + + CurrentAlarmRate + + i=17285 + i=17277 + i=78 + i=17279 + + + + Rate + + i=68 + i=78 + i=17284 + + + + MaximumAlarmRate + + i=17287 + i=17277 + i=78 + i=17279 + + + + Rate + + i=68 + i=78 + i=17286 + + + + MaximumReAlarmCount + + i=63 + i=78 + i=17279 + + + + AverageAlarmRate + + i=17289 + i=17277 + i=78 + i=17279 + + + + Rate + + i=68 + i=78 + i=17288 + + + + Reset + https://reference.opcfoundation.org/v104/Core/docs/Part9/8.4 + + i=2127 + i=78 + i=17279 + + + + AlarmRateVariableType + https://reference.opcfoundation.org/v104/Core/docs/Part9/8.3 + + i=17278 + i=63 + + + + Rate + + i=68 + i=78 + i=17277 + + + + ProgramStateMachineType + https://reference.opcfoundation.org/v104/Core/docs/Part10/5.2.1 + + i=3830 + i=3835 + i=2392 + i=2393 + i=2394 + i=2395 + i=2396 + i=2397 + i=2398 + i=2399 + i=3850 + i=2406 + i=2400 + i=2402 + i=2404 + i=2408 + i=2410 + i=2412 + i=2414 + i=2416 + i=2418 + i=2420 + i=2422 + i=2424 + i=2426 + i=2427 + i=2428 + i=2429 + i=2430 + i=2771 + + + + CurrentState + + i=3831 + i=3833 + i=2760 + i=78 + i=2391 + + + + Id + + i=68 + i=78 + i=3830 + + + + Number + + i=68 + i=78 + i=3830 + + + + LastTransition + + i=3836 + i=3838 + i=3839 + i=2767 + i=78 + i=2391 + + + + Id + + i=68 + i=78 + i=3835 + + + + Number + + i=68 + i=78 + i=3835 + + + + TransitionTime + + i=68 + i=78 + i=3835 + + + + Creatable + + i=68 + i=2391 + + + + Deletable + + i=68 + i=78 + i=2391 + + + + AutoDelete + + i=68 + i=78 + i=2391 + + + + RecycleCount + + i=68 + i=78 + i=2391 + + + + InstanceCount + + i=68 + i=2391 + + + + MaxInstanceCount + + i=68 + i=2391 + + + + MaxRecycleCount + + i=68 + i=2391 + + + + ProgramDiagnostic + + i=3840 + i=3841 + i=3842 + i=3843 + i=3844 + i=3845 + i=3846 + i=3847 + i=15038 + i=15040 + i=3848 + i=3849 + i=15383 + i=80 + i=2391 + + + + CreateSessionId + + i=63 + i=78 + i=2399 + + + + CreateClientName + + i=63 + i=78 + i=2399 + + + + InvocationCreationTime + + i=63 + i=78 + i=2399 + + + + LastTransitionTime + + i=68 + i=78 + i=2399 + + + + LastMethodCall + + i=63 + i=78 + i=2399 + + + + LastMethodSessionId + + i=63 + i=78 + i=2399 + + + + LastMethodInputArguments + + i=63 + i=78 + i=2399 + + + + LastMethodOutputArguments + + i=63 + i=78 + i=2399 + + + + LastMethodInputValues + + i=63 + i=78 + i=2399 + + + + LastMethodOutputValues + + i=63 + i=78 + i=2399 + + + + LastMethodCallTime + + i=63 + i=78 + i=2399 + + + + LastMethodReturnStatus + + i=63 + i=78 + i=2399 + + + + FinalResultData + + i=58 + i=80 + i=2391 + + + + Halted + + i=2407 + i=2408 + i=2412 + i=2420 + i=2424 + i=2307 + i=2391 + + + + StateNumber + + i=68 + i=78 + i=2406 + + + 11 + + + + Ready + + i=2401 + i=2408 + i=2410 + i=2414 + i=2422 + i=2424 + i=2307 + i=2391 + + + + StateNumber + + i=68 + i=78 + i=2400 + + + 12 + + + + Running + + i=2403 + i=2410 + i=2412 + i=2414 + i=2416 + i=2418 + i=2307 + i=2391 + + + + StateNumber + + i=68 + i=78 + i=2402 + + + 13 + + + + Suspended + + i=2405 + i=2416 + i=2418 + i=2420 + i=2422 + i=2307 + i=2391 + + + + StateNumber + + i=68 + i=78 + i=2404 + + + 14 + + + + HaltedToReady + + i=2409 + i=2406 + i=2400 + i=2430 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2408 + + + 1 + + + + ReadyToRunning + + i=2411 + i=2400 + i=2402 + i=2426 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2410 + + + 2 + + + + RunningToHalted + + i=2413 + i=2402 + i=2406 + i=2429 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2412 + + + 3 + + + + RunningToReady + + i=2415 + i=2402 + i=2400 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2414 + + + 4 + + + + RunningToSuspended + + i=2417 + i=2402 + i=2404 + i=2427 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2416 + + + 5 + + + + SuspendedToRunning + + i=2419 + i=2404 + i=2402 + i=2428 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2418 + + + 6 + + + + SuspendedToHalted + + i=2421 + i=2404 + i=2406 + i=2429 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2420 + + + 7 + + + + SuspendedToReady + + i=2423 + i=2404 + i=2400 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2422 + + + 8 + + + + ReadyToHalted + + i=2425 + i=2400 + i=2406 + i=2429 + i=2378 + i=2310 + i=2391 + + + + TransitionNumber + + i=68 + i=78 + i=2424 + + + 9 + + + + Start + + i=2410 + i=11508 + i=2391 + + + + Suspend + + i=2416 + i=11508 + i=2391 + + + + Resume + + i=2418 + i=11508 + i=2391 + + + + Halt + + i=2412 + i=2420 + i=2424 + i=11508 + i=2391 + + + + Reset + + i=2408 + i=11508 + i=2391 + + + + ProgramTransitionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part10/5.2.5/#5.2.5.2 + + i=2379 + i=2311 + + + + IntermediateResult + + i=63 + i=78 + i=2378 + + + + AuditProgramTransitionEventType + https://reference.opcfoundation.org/v104/Core/docs/Part10/5.2.6 + + i=11875 + i=2315 + + + + TransitionNumber + + i=68 + i=78 + i=11856 + + + + ProgramTransitionAuditEventType + + i=3825 + i=2315 + + + + Transition + + i=3826 + i=2767 + i=78 + i=3806 + + + + Id + + i=68 + i=78 + i=3825 + + + + ProgramDiagnosticType + + i=2381 + i=2382 + i=2383 + i=2384 + i=2385 + i=2386 + i=2387 + i=2388 + i=2389 + i=2390 + i=63 + + + + CreateSessionId + + i=68 + i=78 + i=2380 + + + + CreateClientName + + i=68 + i=78 + i=2380 + + + + InvocationCreationTime + + i=68 + i=78 + i=2380 + + + + LastTransitionTime + + i=68 + i=78 + i=2380 + + + + LastMethodCall + + i=68 + i=78 + i=2380 + + + + LastMethodSessionId + + i=68 + i=78 + i=2380 + + + + LastMethodInputArguments + + i=68 + i=78 + i=2380 + + + + LastMethodOutputArguments + + i=68 + i=78 + i=2380 + + + + LastMethodCallTime + + i=68 + i=78 + i=2380 + + + + LastMethodReturnStatus + + i=68 + i=78 + i=2380 + + + + ProgramDiagnostic2Type + https://reference.opcfoundation.org/v104/Core/docs/Part10/5.2.9 + + i=15384 + i=15385 + i=15386 + i=15387 + i=15388 + i=15389 + i=15390 + i=15391 + i=15392 + i=15393 + i=15394 + i=15395 + i=63 + + + + CreateSessionId + + i=63 + i=78 + i=15383 + + + + CreateClientName + + i=63 + i=78 + i=15383 + + + + InvocationCreationTime + + i=63 + i=78 + i=15383 + + + + LastTransitionTime + + i=68 + i=78 + i=15383 + + + + LastMethodCall + + i=63 + i=78 + i=15383 + + + + LastMethodSessionId + + i=63 + i=78 + i=15383 + + + + LastMethodInputArguments + + i=63 + i=78 + i=15383 + + + + LastMethodOutputArguments + + i=63 + i=78 + i=15383 + + + + LastMethodInputValues + + i=63 + i=78 + i=15383 + + + + LastMethodOutputValues + + i=63 + i=78 + i=15383 + + + + LastMethodCallTime + + i=63 + i=78 + i=15383 + + + + LastMethodReturnStatus + + i=63 + i=78 + i=15383 + + + + Annotations + + i=68 + + + + HistoricalDataConfigurationType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.2.2 + + i=3059 + i=11876 + i=2323 + i=2324 + i=2325 + i=2326 + i=2327 + i=2328 + i=11499 + i=11500 + i=19092 + i=58 + + + + AggregateConfiguration + + i=11168 + i=11169 + i=11170 + i=11171 + i=11187 + i=78 + i=2318 + + + + TreatUncertainAsBad + + i=68 + i=78 + i=3059 + + + + PercentDataBad + + i=68 + i=78 + i=3059 + + + + PercentDataGood + + i=68 + i=78 + i=3059 + + + + UseSlopedExtrapolation + + i=68 + i=78 + i=3059 + + + + AggregateFunctions + + i=61 + i=80 + i=2318 + + + + Stepped + + i=68 + i=78 + i=2318 + + + + Definition + + i=68 + i=80 + i=2318 + + + + MaxTimeInterval + + i=68 + i=80 + i=2318 + + + + MinTimeInterval + + i=68 + i=80 + i=2318 + + + + ExceptionDeviation + + i=68 + i=80 + i=2318 + + + + ExceptionDeviationFormat + + i=68 + i=80 + i=2318 + + + + StartOfArchive + + i=68 + i=80 + i=2318 + + + + StartOfOnlineArchive + + i=68 + i=80 + i=2318 + + + + ServerTimestampSupported + + i=68 + i=80 + i=2318 + + + + HA Configuration + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.2.4 + + i=11203 + i=11208 + i=2318 + + + + AggregateConfiguration + + i=11204 + i=11205 + i=11206 + i=11207 + i=11187 + i=11202 + + + + TreatUncertainAsBad + + i=68 + i=11203 + + + + PercentDataBad + + i=68 + i=11203 + + + + PercentDataGood + + i=68 + i=11203 + + + + UseSlopedExtrapolation + + i=68 + i=11203 + + + + Stepped + + i=68 + i=11202 + + + + HistoricalEventFilter + + i=68 + + + + HistoryServerCapabilitiesType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.4.2 + + i=2331 + i=2332 + i=11268 + i=11269 + i=2334 + i=2335 + i=2336 + i=2337 + i=2338 + i=11278 + i=11279 + i=11280 + i=11501 + i=11270 + i=11172 + i=19094 + i=58 + + + + AccessHistoryDataCapability + + i=68 + i=78 + i=2330 + + + + AccessHistoryEventsCapability + + i=68 + i=78 + i=2330 + + + + MaxReturnDataValues + + i=68 + i=78 + i=2330 + + + + MaxReturnEventValues + + i=68 + i=78 + i=2330 + + + + InsertDataCapability + + i=68 + i=78 + i=2330 + + + + ReplaceDataCapability + + i=68 + i=78 + i=2330 + + + + UpdateDataCapability + + i=68 + i=78 + i=2330 + + + + DeleteRawCapability + + i=68 + i=78 + i=2330 + + + + DeleteAtTimeCapability + + i=68 + i=78 + i=2330 + + + + InsertEventCapability + + i=68 + i=78 + i=2330 + + + + ReplaceEventCapability + + i=68 + i=78 + i=2330 + + + + UpdateEventCapability + + i=68 + i=78 + i=2330 + + + + DeleteEventCapability + + i=68 + i=78 + i=2330 + + + + InsertAnnotationCapability + + i=68 + i=78 + i=2330 + + + + AggregateFunctions + + i=61 + i=78 + i=2330 + + + + ServerTimestampSupported + + i=68 + i=78 + i=2330 + + + + AuditHistoryEventUpdateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.6.2 + + i=3025 + i=3028 + i=3003 + i=3029 + i=3030 + i=2104 + + + + UpdatedNode + + i=68 + i=78 + i=2999 + + + + PerformInsertReplace + + i=68 + i=78 + i=2999 + + + + Filter + + i=68 + i=78 + i=2999 + + + + NewValues + + i=68 + i=78 + i=2999 + + + + OldValues + + i=68 + i=78 + i=2999 + + + + AuditHistoryValueUpdateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.6.3 + + i=3026 + i=3031 + i=3032 + i=3033 + i=2104 + + + + UpdatedNode + + i=68 + i=78 + i=3006 + + + + PerformInsertReplace + + i=68 + i=78 + i=3006 + + + + NewValues + + i=68 + i=78 + i=3006 + + + + OldValues + + i=68 + i=78 + i=3006 + + + + AuditHistoryAnnotationUpdateEventType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.6.4 + + i=19293 + i=19294 + i=19295 + i=2104 + + + + PerformInsertReplace + + i=68 + i=78 + i=19095 + + + + NewValues + + i=68 + i=78 + i=19095 + + + + OldValues + + i=68 + i=78 + i=19095 + + + + AuditHistoryDeleteEventType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.6.5 + + i=3027 + i=2104 + + + + UpdatedNode + + i=68 + i=78 + i=3012 + + + + AuditHistoryRawModifyDeleteEventType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.6.6 + + i=3015 + i=3016 + i=3017 + i=3034 + i=3012 + + + + IsDeleteModified + + i=68 + i=78 + i=3014 + + + + StartTime + + i=68 + i=78 + i=3014 + + + + EndTime + + i=68 + i=78 + i=3014 + + + + OldValues + + i=68 + i=78 + i=3014 + + + + AuditHistoryAtTimeDeleteEventType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.6.7 + + i=3020 + i=3021 + i=3012 + + + + ReqTimes + + i=68 + i=78 + i=3019 + + + + OldValues + + i=68 + i=78 + i=3019 + + + + AuditHistoryEventDeleteEventType + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.6.8 + + i=3023 + i=3024 + i=3012 + + + + EventIds + + i=68 + i=78 + i=3022 + + + + OldValues + + i=68 + i=78 + i=3022 + + + + TrustListType + + i=12542 + i=19296 + i=12543 + i=12546 + i=12548 + i=12550 + i=11575 + + + + LastUpdateTime + + i=68 + i=78 + i=12522 + + + + UpdateFrequency + + i=68 + i=80 + i=12522 + + + + OpenWithMasks + + i=12544 + i=12545 + i=78 + i=12522 + + + + InputArguments + + i=68 + i=78 + i=12543 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=12543 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CloseAndUpdate + + i=12705 + i=12547 + i=80 + i=12522 + + + + InputArguments + + i=68 + i=78 + i=12546 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=12546 + + + + + + i=297 + + + + ApplyChangesRequired + + i=1 + + -1 + + + + + + + + + AddCertificate + + i=12549 + i=80 + i=12522 + + + + InputArguments + + i=68 + i=78 + i=12548 + + + + + + i=297 + + + + Certificate + + i=15 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + RemoveCertificate + + i=12551 + i=80 + i=12522 + + + + InputArguments + + i=68 + i=78 + i=12550 + + + + + + i=297 + + + + Thumbprint + + i=12 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + TrustListMasks + + i=12553 + i=29 + + + + + + + + + + + + EnumValues + + i=68 + i=12552 + + + + + + i=7616 + + + + 0 + + None + + + + + + + i=7616 + + + + 1 + + TrustedCertificates + + + + + + + i=7616 + + + + 2 + + TrustedCrls + + + + + + + i=7616 + + + + 4 + + IssuerCertificates + + + + + + + i=7616 + + + + 8 + + IssuerCrls + + + + + + + i=7616 + + + + 15 + + All + + + + + + + + + TrustListDataType + + i=22 + + + + + + + + + + + TrustListOutOfDateAlarmType + + i=19446 + i=19447 + i=19448 + i=11753 + + + + TrustListId + + i=68 + i=78 + i=19297 + + + + LastUpdateTime + + i=68 + i=78 + i=19297 + + + + UpdateFrequency + + i=68 + i=78 + i=19297 + + + + CertificateGroupType + + i=13599 + i=13631 + i=19450 + i=20143 + i=23526 + i=58 + + + + TrustList + + i=13600 + i=13601 + i=13602 + i=13603 + i=13605 + i=13608 + i=13610 + i=13613 + i=13615 + i=13618 + i=13620 + i=13621 + i=12522 + i=78 + i=12555 + + + + Size + + i=68 + i=78 + i=13599 + + + + Writable + + i=68 + i=78 + i=13599 + + + + UserWritable + + i=68 + i=78 + i=13599 + + + + OpenCount + + i=68 + i=78 + i=13599 + + + + Open + + i=13606 + i=13607 + i=78 + i=13599 + + + + InputArguments + + i=68 + i=78 + i=13605 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13605 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=13609 + i=78 + i=13599 + + + + InputArguments + + i=68 + i=78 + i=13608 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=13611 + i=13612 + i=78 + i=13599 + + + + InputArguments + + i=68 + i=78 + i=13610 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13610 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=13614 + i=78 + i=13599 + + + + InputArguments + + i=68 + i=78 + i=13613 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=13616 + i=13617 + i=78 + i=13599 + + + + InputArguments + + i=68 + i=78 + i=13615 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13615 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=13619 + i=78 + i=13599 + + + + InputArguments + + i=68 + i=78 + i=13618 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=78 + i=13599 + + + + OpenWithMasks + + i=13622 + i=13623 + i=78 + i=13599 + + + + InputArguments + + i=68 + i=78 + i=13621 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13621 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=78 + i=12555 + + + + CertificateExpired + + i=19451 + i=19452 + i=19453 + i=19454 + i=19455 + i=19456 + i=19458 + i=19459 + i=19460 + i=19461 + i=19464 + i=19465 + i=19466 + i=19467 + i=19476 + i=19478 + i=19480 + i=19482 + i=19483 + i=19484 + i=19485 + i=19487 + i=19505 + i=19509 + i=19518 + i=20101 + i=20138 + i=20139 + i=20141 + i=20142 + i=13225 + i=80 + i=12555 + + + + EventId + + i=68 + i=78 + i=19450 + + + + EventType + + i=68 + i=78 + i=19450 + + + + SourceNode + + i=68 + i=78 + i=19450 + + + + SourceName + + i=68 + i=78 + i=19450 + + + + Time + + i=68 + i=78 + i=19450 + + + + ReceiveTime + + i=68 + i=78 + i=19450 + + + + Message + + i=68 + i=78 + i=19450 + + + + Severity + + i=68 + i=78 + i=19450 + + + + ConditionClassId + + i=68 + i=78 + i=19450 + + + + ConditionClassName + + i=68 + i=78 + i=19450 + + + + ConditionName + + i=68 + i=78 + i=19450 + + + + BranchId + + i=68 + i=78 + i=19450 + + + + Retain + + i=68 + i=78 + i=19450 + + + + EnabledState + + i=19468 + i=8995 + i=78 + i=19450 + + + + Id + + i=68 + i=78 + i=19467 + + + + Quality + + i=19477 + i=9002 + i=78 + i=19450 + + + + SourceTimestamp + + i=68 + i=78 + i=19476 + + + + LastSeverity + + i=19479 + i=9002 + i=78 + i=19450 + + + + SourceTimestamp + + i=68 + i=78 + i=19478 + + + + Comment + + i=19481 + i=9002 + i=78 + i=19450 + + + + SourceTimestamp + + i=68 + i=78 + i=19480 + + + + ClientUserId + + i=68 + i=78 + i=19450 + + + + Disable + + i=2803 + i=78 + i=19450 + + + + Enable + + i=2803 + i=78 + i=19450 + + + + AddComment + + i=19486 + i=2829 + i=78 + i=19450 + + + + InputArguments + + i=68 + i=78 + i=19485 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + AckedState + + i=19488 + i=8995 + i=78 + i=19450 + + + + Id + + i=68 + i=78 + i=19487 + + + + Acknowledge + + i=19506 + i=8944 + i=78 + i=19450 + + + + InputArguments + + i=68 + i=78 + i=19505 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + ActiveState + + i=19510 + i=8995 + i=78 + i=19450 + + + + Id + + i=68 + i=78 + i=19509 + + + + InputNode + + i=68 + i=78 + i=19450 + + + + SuppressedOrShelved + + i=68 + i=78 + i=19450 + + + + NormalState + + i=68 + i=78 + i=19450 + + + + ExpirationDate + + i=68 + i=78 + i=19450 + + + + CertificateType + + i=68 + i=78 + i=19450 + + + + Certificate + + i=68 + i=78 + i=19450 + + + + TrustListOutOfDate + + i=20144 + i=20145 + i=20146 + i=20147 + i=20148 + i=20149 + i=20151 + i=20152 + i=20153 + i=20154 + i=20157 + i=20158 + i=20159 + i=20160 + i=20169 + i=20171 + i=20173 + i=20175 + i=20176 + i=20177 + i=20178 + i=20180 + i=20198 + i=20202 + i=20211 + i=20249 + i=20286 + i=20287 + i=20288 + i=20289 + i=19297 + i=80 + i=12555 + + + + EventId + + i=68 + i=78 + i=20143 + + + + EventType + + i=68 + i=78 + i=20143 + + + + SourceNode + + i=68 + i=78 + i=20143 + + + + SourceName + + i=68 + i=78 + i=20143 + + + + Time + + i=68 + i=78 + i=20143 + + + + ReceiveTime + + i=68 + i=78 + i=20143 + + + + Message + + i=68 + i=78 + i=20143 + + + + Severity + + i=68 + i=78 + i=20143 + + + + ConditionClassId + + i=68 + i=78 + i=20143 + + + + ConditionClassName + + i=68 + i=78 + i=20143 + + + + ConditionName + + i=68 + i=78 + i=20143 + + + + BranchId + + i=68 + i=78 + i=20143 + + + + Retain + + i=68 + i=78 + i=20143 + + + + EnabledState + + i=20161 + i=8995 + i=78 + i=20143 + + + + Id + + i=68 + i=78 + i=20160 + + + + Quality + + i=20170 + i=9002 + i=78 + i=20143 + + + + SourceTimestamp + + i=68 + i=78 + i=20169 + + + + LastSeverity + + i=20172 + i=9002 + i=78 + i=20143 + + + + SourceTimestamp + + i=68 + i=78 + i=20171 + + + + Comment + + i=20174 + i=9002 + i=78 + i=20143 + + + + SourceTimestamp + + i=68 + i=78 + i=20173 + + + + ClientUserId + + i=68 + i=78 + i=20143 + + + + Disable + + i=2803 + i=78 + i=20143 + + + + Enable + + i=2803 + i=78 + i=20143 + + + + AddComment + + i=20179 + i=2829 + i=78 + i=20143 + + + + InputArguments + + i=68 + i=78 + i=20178 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + AckedState + + i=20181 + i=8995 + i=78 + i=20143 + + + + Id + + i=68 + i=78 + i=20180 + + + + Acknowledge + + i=20199 + i=8944 + i=78 + i=20143 + + + + InputArguments + + i=68 + i=78 + i=20198 + + + + + + i=297 + + + + EventId + + i=15 + + -1 + + + The identifier for the event to comment. + + + + + + + i=297 + + + + Comment + + i=21 + + -1 + + + The comment to add to the condition. + + + + + + + + + ActiveState + + i=20203 + i=8995 + i=78 + i=20143 + + + + Id + + i=68 + i=78 + i=20202 + + + + InputNode + + i=68 + i=78 + i=20143 + + + + SuppressedOrShelved + + i=68 + i=78 + i=20143 + + + + NormalState + + i=68 + i=78 + i=20143 + + + + TrustListId + + i=68 + i=78 + i=20143 + + + + LastUpdateTime + + i=68 + i=78 + i=20143 + + + + UpdateFrequency + + i=68 + i=78 + i=20143 + + + + GetRejectedList + + i=23527 + i=80 + i=12555 + + + + OutputArguments + + i=68 + i=78 + i=23526 + + + + + + i=297 + + + + Certificates + + i=15 + + 1 + + 0 + + + + + + + + + CertificateGroupFolderType + + i=13814 + i=13848 + i=13882 + i=13916 + i=61 + + + + DefaultApplicationGroup + + i=13815 + i=13847 + i=12555 + i=78 + i=13813 + + + + TrustList + + i=13816 + i=13817 + i=13818 + i=13819 + i=13821 + i=13824 + i=13826 + i=13829 + i=13831 + i=13834 + i=13836 + i=13837 + i=12522 + i=78 + i=13814 + + + + Size + + i=68 + i=78 + i=13815 + + + + Writable + + i=68 + i=78 + i=13815 + + + + UserWritable + + i=68 + i=78 + i=13815 + + + + OpenCount + + i=68 + i=78 + i=13815 + + + + Open + + i=13822 + i=13823 + i=78 + i=13815 + + + + InputArguments + + i=68 + i=78 + i=13821 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13821 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=13825 + i=78 + i=13815 + + + + InputArguments + + i=68 + i=78 + i=13824 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=13827 + i=13828 + i=78 + i=13815 + + + + InputArguments + + i=68 + i=78 + i=13826 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13826 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=13830 + i=78 + i=13815 + + + + InputArguments + + i=68 + i=78 + i=13829 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=13832 + i=13833 + i=78 + i=13815 + + + + InputArguments + + i=68 + i=78 + i=13831 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13831 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=13835 + i=78 + i=13815 + + + + InputArguments + + i=68 + i=78 + i=13834 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=78 + i=13815 + + + + OpenWithMasks + + i=13838 + i=13839 + i=78 + i=13815 + + + + InputArguments + + i=68 + i=78 + i=13837 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13837 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=78 + i=13814 + + + + DefaultHttpsGroup + + i=13849 + i=13881 + i=12555 + i=80 + i=13813 + + + + TrustList + + i=13850 + i=13851 + i=13852 + i=13853 + i=13855 + i=13858 + i=13860 + i=13863 + i=13865 + i=13868 + i=13870 + i=13871 + i=12522 + i=78 + i=13848 + + + + Size + + i=68 + i=78 + i=13849 + + + + Writable + + i=68 + i=78 + i=13849 + + + + UserWritable + + i=68 + i=78 + i=13849 + + + + OpenCount + + i=68 + i=78 + i=13849 + + + + Open + + i=13856 + i=13857 + i=78 + i=13849 + + + + InputArguments + + i=68 + i=78 + i=13855 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13855 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=13859 + i=78 + i=13849 + + + + InputArguments + + i=68 + i=78 + i=13858 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=13861 + i=13862 + i=78 + i=13849 + + + + InputArguments + + i=68 + i=78 + i=13860 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13860 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=13864 + i=78 + i=13849 + + + + InputArguments + + i=68 + i=78 + i=13863 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=13866 + i=13867 + i=78 + i=13849 + + + + InputArguments + + i=68 + i=78 + i=13865 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13865 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=13869 + i=78 + i=13849 + + + + InputArguments + + i=68 + i=78 + i=13868 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=78 + i=13849 + + + + OpenWithMasks + + i=13872 + i=13873 + i=78 + i=13849 + + + + InputArguments + + i=68 + i=78 + i=13871 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13871 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=78 + i=13848 + + + + DefaultUserTokenGroup + + i=13883 + i=13915 + i=12555 + i=80 + i=13813 + + + + TrustList + + i=13884 + i=13885 + i=13886 + i=13887 + i=13889 + i=13892 + i=13894 + i=13897 + i=13899 + i=13902 + i=13904 + i=13905 + i=12522 + i=78 + i=13882 + + + + Size + + i=68 + i=78 + i=13883 + + + + Writable + + i=68 + i=78 + i=13883 + + + + UserWritable + + i=68 + i=78 + i=13883 + + + + OpenCount + + i=68 + i=78 + i=13883 + + + + Open + + i=13890 + i=13891 + i=78 + i=13883 + + + + InputArguments + + i=68 + i=78 + i=13889 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13889 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=13893 + i=78 + i=13883 + + + + InputArguments + + i=68 + i=78 + i=13892 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=13895 + i=13896 + i=78 + i=13883 + + + + InputArguments + + i=68 + i=78 + i=13894 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13894 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=13898 + i=78 + i=13883 + + + + InputArguments + + i=68 + i=78 + i=13897 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=13900 + i=13901 + i=78 + i=13883 + + + + InputArguments + + i=68 + i=78 + i=13899 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13899 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=13903 + i=78 + i=13883 + + + + InputArguments + + i=68 + i=78 + i=13902 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=78 + i=13883 + + + + OpenWithMasks + + i=13906 + i=13907 + i=78 + i=13883 + + + + InputArguments + + i=68 + i=78 + i=13905 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13905 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=78 + i=13882 + + + + <AdditionalGroup> + + i=13917 + i=13949 + i=12555 + i=11508 + i=13813 + + + + TrustList + + i=13918 + i=13919 + i=13920 + i=13921 + i=13923 + i=13926 + i=13928 + i=13931 + i=13933 + i=13936 + i=13938 + i=13939 + i=12522 + i=78 + i=13916 + + + + Size + + i=68 + i=78 + i=13917 + + + + Writable + + i=68 + i=78 + i=13917 + + + + UserWritable + + i=68 + i=78 + i=13917 + + + + OpenCount + + i=68 + i=78 + i=13917 + + + + Open + + i=13924 + i=13925 + i=78 + i=13917 + + + + InputArguments + + i=68 + i=78 + i=13923 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13923 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=13927 + i=78 + i=13917 + + + + InputArguments + + i=68 + i=78 + i=13926 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=13929 + i=13930 + i=78 + i=13917 + + + + InputArguments + + i=68 + i=78 + i=13928 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13928 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=13932 + i=78 + i=13917 + + + + InputArguments + + i=68 + i=78 + i=13931 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=13934 + i=13935 + i=78 + i=13917 + + + + InputArguments + + i=68 + i=78 + i=13933 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13933 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=13937 + i=78 + i=13917 + + + + InputArguments + + i=68 + i=78 + i=13936 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=78 + i=13917 + + + + OpenWithMasks + + i=13940 + i=13941 + i=78 + i=13917 + + + + InputArguments + + i=68 + i=78 + i=13939 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13939 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=78 + i=13916 + + + + CertificateType + + i=58 + + + + ApplicationCertificateType + + i=12556 + + + + HttpsCertificateType + + i=12556 + + + + UserCredentialCertificateType + + i=12556 + + + + RsaMinApplicationCertificateType + + i=12557 + + + + RsaSha256ApplicationCertificateType + + i=12557 + + + + EccApplicationCertificateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=12557 + + + + EccNistP256ApplicationCertificateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=23537 + + + + EccNistP384ApplicationCertificateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=23537 + + + + EccBrainpoolP256r1ApplicationCertificateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=23537 + + + + EccBrainpoolP384r1ApplicationCertificateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=23537 + + + + EccCurve25519ApplicationCertificateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=23537 + + + + EccCurve448ApplicationCertificateType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=23537 + + + + TrustListUpdatedAuditEventType + + i=2127 + + + + ServerConfigurationType + + i=13950 + i=12708 + i=12583 + i=12584 + i=12585 + i=12616 + i=12734 + i=12731 + i=12775 + i=58 + + + + CertificateGroups + + i=13951 + i=13813 + i=78 + i=12581 + + + + DefaultApplicationGroup + + i=13952 + i=13984 + i=12555 + i=78 + i=13950 + + + + TrustList + + i=13953 + i=13954 + i=13955 + i=13956 + i=13958 + i=13961 + i=13963 + i=13966 + i=13968 + i=13971 + i=13973 + i=13974 + i=12522 + i=78 + i=13951 + + + + Size + + i=68 + i=78 + i=13952 + + + + Writable + + i=68 + i=78 + i=13952 + + + + UserWritable + + i=68 + i=78 + i=13952 + + + + OpenCount + + i=68 + i=78 + i=13952 + + + + Open + + i=13959 + i=13960 + i=78 + i=13952 + + + + InputArguments + + i=68 + i=78 + i=13958 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13958 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=13962 + i=78 + i=13952 + + + + InputArguments + + i=68 + i=78 + i=13961 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=13964 + i=13965 + i=78 + i=13952 + + + + InputArguments + + i=68 + i=78 + i=13963 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13963 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=13967 + i=78 + i=13952 + + + + InputArguments + + i=68 + i=78 + i=13966 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=13969 + i=13970 + i=78 + i=13952 + + + + InputArguments + + i=68 + i=78 + i=13968 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13968 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=13972 + i=78 + i=13952 + + + + InputArguments + + i=68 + i=78 + i=13971 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=78 + i=13952 + + + + OpenWithMasks + + i=13975 + i=13976 + i=78 + i=13952 + + + + InputArguments + + i=68 + i=78 + i=13974 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=13974 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=78 + i=13951 + + + + ServerCapabilities + + i=68 + i=78 + i=12581 + + + + SupportedPrivateKeyFormats + + i=68 + i=78 + i=12581 + + + + MaxTrustListSize + + i=68 + i=78 + i=12581 + + + + MulticastDnsEnabled + + i=68 + i=78 + i=12581 + + + + UpdateCertificate + + i=12617 + i=12618 + i=78 + i=12581 + + + + InputArguments + + i=68 + i=78 + i=12616 + + + + + + i=297 + + + + CertificateGroupId + + i=17 + + -1 + + + + + + + i=297 + + + + CertificateTypeId + + i=17 + + -1 + + + + + + + i=297 + + + + Certificate + + i=15 + + -1 + + + + + + + i=297 + + + + IssuerCertificates + + i=15 + + 1 + + 0 + + + + + + + i=297 + + + + PrivateKeyFormat + + i=12 + + -1 + + + + + + + i=297 + + + + PrivateKey + + i=15 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=12616 + + + + + + i=297 + + + + ApplyChangesRequired + + i=1 + + -1 + + + + + + + + + ApplyChanges + + i=78 + i=12581 + + + + CreateSigningRequest + + i=12732 + i=12733 + i=78 + i=12581 + + + + InputArguments + + i=68 + i=78 + i=12731 + + + + + + i=297 + + + + CertificateGroupId + + i=17 + + -1 + + + + + + + i=297 + + + + CertificateTypeId + + i=17 + + -1 + + + + + + + i=297 + + + + SubjectName + + i=12 + + -1 + + + + + + + i=297 + + + + RegeneratePrivateKey + + i=1 + + -1 + + + + + + + i=297 + + + + Nonce + + i=15 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=12731 + + + + + + i=297 + + + + CertificateRequest + + i=15 + + -1 + + + + + + + + + GetRejectedList + + i=12776 + i=78 + i=12581 + + + + OutputArguments + + i=68 + i=78 + i=12775 + + + + + + i=297 + + + + Certificates + + i=15 + + 1 + + 0 + + + + + + + + + CertificateUpdatedAuditEventType + + i=13735 + i=13736 + i=2127 + + + + CertificateGroup + + i=68 + i=78 + i=12620 + + + + CertificateType + + i=68 + i=78 + i=12620 + + + + ServerConfiguration + + i=14053 + i=12710 + i=12639 + i=12640 + i=12641 + i=13737 + i=12740 + i=12737 + i=12777 + i=2253 + i=12581 + + + + CertificateGroups + + i=14156 + i=14088 + i=14122 + i=13813 + i=12637 + + + + DefaultApplicationGroup + + i=12642 + i=14161 + i=12555 + i=14053 + + + + TrustList + + i=12643 + i=14157 + i=14158 + i=12646 + i=12647 + i=12650 + i=12652 + i=12655 + i=12657 + i=12660 + i=12662 + i=12663 + i=12666 + i=12668 + i=12670 + i=12522 + i=14156 + + + + Size + + i=68 + i=12642 + + + + Writable + + i=68 + i=12642 + + + + UserWritable + + i=68 + i=12642 + + + + OpenCount + + i=68 + i=12642 + + + + Open + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.2.1 + + i=12648 + i=12649 + i=12642 + + + + InputArguments + + i=68 + i=12647 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=12647 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.2.2 + + i=12651 + i=12642 + + + + InputArguments + + i=68 + i=12650 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.2.3 + + i=12653 + i=12654 + i=12642 + + + + InputArguments + + i=68 + i=12652 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=12652 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.2.4 + + i=12656 + i=12642 + + + + InputArguments + + i=68 + i=12655 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.2.5 + + i=12658 + i=12659 + i=12642 + + + + InputArguments + + i=68 + i=12657 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=12657 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + https://reference.opcfoundation.org/v104/Core/docs/Part5/C.2.6 + + i=12661 + i=12642 + + + + InputArguments + + i=68 + i=12660 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=12642 + + + + OpenWithMasks + + i=12664 + i=12665 + i=12642 + + + + InputArguments + + i=68 + i=12663 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=12663 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CloseAndUpdate + + i=14160 + i=12667 + i=12642 + + + + InputArguments + + i=68 + i=12666 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=12666 + + + + + + i=297 + + + + ApplyChangesRequired + + i=1 + + -1 + + + + + + + + + AddCertificate + + i=12669 + i=12642 + + + + InputArguments + + i=68 + i=12668 + + + + + + i=297 + + + + Certificate + + i=15 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + RemoveCertificate + + i=12671 + i=12642 + + + + InputArguments + + i=68 + i=12670 + + + + + + i=297 + + + + Thumbprint + + i=12 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=14156 + + + + DefaultHttpsGroup + + i=14089 + i=14121 + i=12555 + i=14053 + + + + TrustList + + i=14090 + i=14091 + i=14092 + i=14093 + i=14095 + i=14098 + i=14100 + i=14103 + i=14105 + i=14108 + i=14110 + i=14111 + i=14114 + i=14117 + i=14119 + i=12522 + i=14088 + + + + Size + + i=68 + i=14089 + + + + Writable + + i=68 + i=14089 + + + + UserWritable + + i=68 + i=14089 + + + + OpenCount + + i=68 + i=14089 + + + + Open + + i=14096 + i=14097 + i=14089 + + + + InputArguments + + i=68 + i=14095 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14095 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=14099 + i=14089 + + + + InputArguments + + i=68 + i=14098 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=14101 + i=14102 + i=14089 + + + + InputArguments + + i=68 + i=14100 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14100 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=14104 + i=14089 + + + + InputArguments + + i=68 + i=14103 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=14106 + i=14107 + i=14089 + + + + InputArguments + + i=68 + i=14105 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14105 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=14109 + i=14089 + + + + InputArguments + + i=68 + i=14108 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=14089 + + + + OpenWithMasks + + i=14112 + i=14113 + i=14089 + + + + InputArguments + + i=68 + i=14111 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14111 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CloseAndUpdate + + i=14115 + i=14116 + i=14089 + + + + InputArguments + + i=68 + i=14114 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14114 + + + + + + i=297 + + + + ApplyChangesRequired + + i=1 + + -1 + + + + + + + + + AddCertificate + + i=14118 + i=14089 + + + + InputArguments + + i=68 + i=14117 + + + + + + i=297 + + + + Certificate + + i=15 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + RemoveCertificate + + i=14120 + i=14089 + + + + InputArguments + + i=68 + i=14119 + + + + + + i=297 + + + + Thumbprint + + i=12 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=14088 + + + + DefaultUserTokenGroup + + i=14123 + i=14155 + i=12555 + i=14053 + + + + TrustList + + i=14124 + i=14125 + i=14126 + i=14127 + i=14129 + i=14132 + i=14134 + i=14137 + i=14139 + i=14142 + i=14144 + i=14145 + i=14148 + i=14151 + i=14153 + i=12522 + i=14122 + + + + Size + + i=68 + i=14123 + + + + Writable + + i=68 + i=14123 + + + + UserWritable + + i=68 + i=14123 + + + + OpenCount + + i=68 + i=14123 + + + + Open + + i=14130 + i=14131 + i=14123 + + + + InputArguments + + i=68 + i=14129 + + + + + + i=297 + + + + Mode + + i=3 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14129 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Close + + i=14133 + i=14123 + + + + InputArguments + + i=68 + i=14132 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + Read + + i=14135 + i=14136 + i=14123 + + + + InputArguments + + i=68 + i=14134 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Length + + i=6 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14134 + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + Write + + i=14138 + i=14123 + + + + InputArguments + + i=68 + i=14137 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Data + + i=15 + + -1 + + + + + + + + + GetPosition + + i=14140 + i=14141 + i=14123 + + + + InputArguments + + i=68 + i=14139 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14139 + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + SetPosition + + i=14143 + i=14123 + + + + InputArguments + + i=68 + i=14142 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + i=297 + + + + Position + + i=9 + + -1 + + + + + + + + + LastUpdateTime + + i=68 + i=14123 + + + + OpenWithMasks + + i=14146 + i=14147 + i=14123 + + + + InputArguments + + i=68 + i=14145 + + + + + + i=297 + + + + Masks + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14145 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + CloseAndUpdate + + i=14149 + i=14150 + i=14123 + + + + InputArguments + + i=68 + i=14148 + + + + + + i=297 + + + + FileHandle + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=14148 + + + + + + i=297 + + + + ApplyChangesRequired + + i=1 + + -1 + + + + + + + + + AddCertificate + + i=14152 + i=14123 + + + + InputArguments + + i=68 + i=14151 + + + + + + i=297 + + + + Certificate + + i=15 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + RemoveCertificate + + i=14154 + i=14123 + + + + InputArguments + + i=68 + i=14153 + + + + + + i=297 + + + + Thumbprint + + i=12 + + -1 + + + + + + + i=297 + + + + IsTrustedCertificate + + i=1 + + -1 + + + + + + + + + CertificateTypes + + i=68 + i=14122 + + + + ServerCapabilities + + i=68 + i=12637 + + + + SupportedPrivateKeyFormats + + i=68 + i=12637 + + + + MaxTrustListSize + + i=68 + i=12637 + + + + MulticastDnsEnabled + + i=68 + i=12637 + + + + UpdateCertificate + + i=13738 + i=13739 + i=12637 + + + + InputArguments + + i=68 + i=13737 + + + + + + i=297 + + + + CertificateGroupId + + i=17 + + -1 + + + + + + + i=297 + + + + CertificateTypeId + + i=17 + + -1 + + + + + + + i=297 + + + + Certificate + + i=15 + + -1 + + + + + + + i=297 + + + + IssuerCertificates + + i=15 + + 1 + + 0 + + + + + + + i=297 + + + + PrivateKeyFormat + + i=12 + + -1 + + + + + + + i=297 + + + + PrivateKey + + i=15 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=13737 + + + + + + i=297 + + + + ApplyChangesRequired + + i=1 + + -1 + + + + + + + + + ApplyChanges + + i=12637 + + + + CreateSigningRequest + + i=12738 + i=12739 + i=12637 + + + + InputArguments + + i=68 + i=12737 + + + + + + i=297 + + + + CertificateGroupId + + i=17 + + -1 + + + + + + + i=297 + + + + CertificateTypeId + + i=17 + + -1 + + + + + + + i=297 + + + + SubjectName + + i=12 + + -1 + + + + + + + i=297 + + + + RegeneratePrivateKey + + i=1 + + -1 + + + + + + + i=297 + + + + Nonce + + i=15 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=12737 + + + + + + i=297 + + + + CertificateRequest + + i=15 + + -1 + + + + + + + + + GetRejectedList + + i=12778 + i=12637 + + + + OutputArguments + + i=68 + i=12777 + + + + + + i=297 + + + + Certificates + + i=15 + + 1 + + 0 + + + + + + + + + KeyCredentialConfigurationFolderType + + i=17511 + i=17522 + i=61 + + + + <ServiceName> + + i=17512 + i=17513 + i=18001 + i=11508 + i=17496 + + + + ResourceUri + + i=68 + i=78 + i=17511 + + + + ProfileUri + + i=68 + i=78 + i=17511 + + + + CreateCredential + + i=17523 + i=17524 + i=80 + i=17496 + + + + InputArguments + + i=68 + i=78 + i=17522 + + + + + + i=297 + + + + ResourceUri + + i=12 + + -1 + + + + + + + i=297 + + + + ProfileUri + + i=12 + + -1 + + + + + + + i=297 + + + + EndpointUrls + + i=12 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=17522 + + + + + + i=297 + + + + CredentialNodeId + + i=17 + + -1 + + + + + + + + + KeyCredentialConfiguration + + i=12637 + i=17496 + + + + KeyCredentialConfigurationType + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.7 + + i=18069 + i=18165 + i=18004 + i=18005 + i=17534 + i=18006 + i=18008 + i=58 + + + + ResourceUri + + i=68 + i=78 + i=18001 + + + + ProfileUri + + i=68 + i=78 + i=18001 + + + + EndpointUrls + + i=68 + i=80 + i=18001 + + + + ServiceStatus + + i=68 + i=80 + i=18001 + + + + GetEncryptingKey + https://reference.opcfoundation.org/v104/Core/docs/Amendment4/8.5.8 + + i=17535 + i=17536 + i=80 + i=18001 + + + + InputArguments + + i=68 + i=78 + i=17534 + + + + + + i=297 + + + + CredentialId + + i=12 + + -1 + + + + + + + i=297 + + + + RequestedSecurityPolicyUri + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=17534 + + + + + + i=297 + + + + PublicKey + + i=15 + + -1 + + + + + + + i=297 + + + + RevisedSecurityPolicyUri + + i=17 + + -1 + + + + + + + + + UpdateCredential + https://reference.opcfoundation.org/v104/Core/docs/Amendment4//#6.7.2.5 + + i=18007 + i=80 + i=18001 + + + + InputArguments + + i=68 + i=78 + i=18006 + + + + + + i=297 + + + + CredentialId + + i=12 + + -1 + + + + + + + i=297 + + + + CredentialSecret + + i=15 + + -1 + + + + + + + i=297 + + + + CertificateThumbprint + + i=12 + + -1 + + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + + + DeleteCredential + + i=80 + i=18001 + + + + KeyCredentialAuditEventType + + i=18028 + i=2127 + + + + ResourceUri + + i=68 + i=78 + i=18011 + + + + KeyCredentialUpdatedAuditEventType + + i=18011 + + + + KeyCredentialDeletedAuditEventType + + i=18011 + + + + AuthorizationServicesConfigurationFolderType + + i=23557 + i=61 + + + + <ServiceName> + + i=23558 + i=23559 + i=23560 + i=17852 + i=11508 + i=23556 + + + + ServiceUri + + i=68 + i=78 + i=23557 + + + + ServiceCertificate + + i=68 + i=78 + i=23557 + + + + IssuerEndpointUrl + + i=68 + i=78 + i=23557 + + + + AuthorizationServices + + i=12637 + i=61 + + + + AuthorizationServiceConfigurationType + + i=18072 + i=17860 + i=18073 + i=58 + + + + ServiceUri + + i=68 + i=78 + i=17852 + + + + ServiceCertificate + + i=68 + i=78 + i=17852 + + + + IssuerEndpointUrl + + i=68 + i=78 + i=17852 + + + + AggregateConfigurationType + + i=11188 + i=11189 + i=11190 + i=11191 + i=58 + + + + TreatUncertainAsBad + + i=68 + i=78 + i=11187 + + + + PercentDataBad + + i=68 + i=78 + i=11187 + + + + PercentDataGood + + i=68 + i=78 + i=11187 + + + + UseSlopedExtrapolation + + i=68 + i=78 + i=11187 + + + + Interpolative + + i=2340 + + + + Average + + i=2340 + + + + TimeAverage + + i=2340 + + + + TimeAverage2 + + i=2340 + + + + Total + + i=2340 + + + + Total2 + + i=2340 + + + + Minimum + + i=2340 + + + + Maximum + + i=2340 + + + + MinimumActualTime + + i=2340 + + + + MaximumActualTime + + i=2340 + + + + Range + + i=2340 + + + + Minimum2 + + i=2340 + + + + Maximum2 + + i=2340 + + + + MinimumActualTime2 + + i=2340 + + + + MaximumActualTime2 + + i=2340 + + + + Range2 + + i=2340 + + + + AnnotationCount + + i=2340 + + + + Count + + i=2340 + + + + DurationInStateZero + + i=2340 + + + + DurationInStateNonZero + + i=2340 + + + + NumberOfTransitions + + i=2340 + + + + Start + + i=2340 + + + + End + + i=2340 + + + + Delta + + i=2340 + + + + StartBound + + i=2340 + + + + EndBound + + i=2340 + + + + DeltaBounds + + i=2340 + + + + DurationGood + + i=2340 + + + + DurationBad + + i=2340 + + + + PercentGood + + i=2340 + + + + PercentBad + + i=2340 + + + + WorstQuality + + i=2340 + + + + WorstQuality2 + + i=2340 + + + + StandardDeviationSample + + i=2340 + + + + StandardDeviationPopulation + + i=2340 + + + + VarianceSample + + i=2340 + + + + VariancePopulation + + i=2340 + + + + DecimalDataType + + i=22 + + + + + + + + DataTypeSchemaHeader + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.1.1 + + i=22 + + + + + + + + + + DataTypeDescription + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.1.2 + + i=22 + + + + + + + + StructureDescription + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.1.3 + + i=14525 + + + + + + + EnumDescription + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.1.4 + + i=14525 + + + + + + + + SimpleTypeDescription + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.1.5 + + i=14525 + + + + + + + + UABinaryFileDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.2 + + i=15534 + + + + + + + + + PubSubState + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.1 + + i=14648 + i=29 + + + + + + + + + + + EnumStrings + + i=68 + i=14647 + + + + + Disabled + + + Paused + + + Operational + + + Error + + + PreOperational + + + + + + DataSetMetaDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.1.2 + + i=15534 + + + + + + + + + + + FieldMetaData + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.1.3 + + i=22 + + + + + + + + + + + + + + + + DataSetFieldFlags + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.1.4 + + i=15577 + i=5 + + + + + + + OptionSetValues + + i=68 + i=15904 + + + + + PromotedField + + + + + + ConfigurationVersionDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.1.5 + + i=22 + + + + + + + + PublishedDataSetDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.4 + + i=22 + + + + + + + + + + + PublishedDataSetSourceDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.5 + + i=22 + + + + + PublishedVariableDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.6.1 + + i=22 + + + + + + + + + + + + + + PublishedDataItemsDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.6.2 + + i=15580 + + + + + + + PublishedEventsDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.2/#6.2.2.7.4 + + i=15580 + + + + + + + + + DataSetFieldContentMask + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.3/#6.2.3.2 + + i=15584 + i=7 + + + + + + + + + + + + OptionSetValues + + i=68 + i=15583 + + + + + StatusCode + + + SourceTimestamp + + + ServerTimestamp + + + SourcePicoSeconds + + + ServerPicoSeconds + + + RawData + + + + + + DataSetWriterDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.3/#6.2.3.5.1 + + i=22 + + + + + + + + + + + + + + + DataSetWriterTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.3/#6.2.3.5.2 + + i=22 + + + + + DataSetWriterMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.3/#6.2.3.5.3 + + i=22 + + + + + PubSubGroupDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.4/#6.2.4.7 + + i=22 + + + + + + + + + + + + + WriterGroupDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.5/#6.2.5.6.1 + + i=15609 + + + + + + + + + + + + + + + WriterGroupTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.5/#6.2.5.6.2 + + i=22 + + + + + WriterGroupMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.5/#6.2.5.6.3 + + i=22 + + + + + PubSubConnectionDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.6/#6.2.6.5.1 + + i=22 + + + + + + + + + + + + + + + ConnectionTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.6/#6.2.6.5.2 + + i=22 + + + + + NetworkAddressDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.6/#6.2.6.5.3 + + i=22 + + + + + + + NetworkAddressUrlDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.6/#6.2.6.5.4 + + i=15502 + + + + + + + ReaderGroupDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.7/#6.2.7.2.1 + + i=15609 + + + + + + + + + ReaderGroupTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.7/#6.2.7.2.2 + + i=22 + + + + + ReaderGroupMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.7/#6.2.7.2.3 + + i=22 + + + + + DataSetReaderDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.8/#6.2.8.11.1 + + i=22 + + + + + + + + + + + + + + + + + + + + + + + DataSetReaderTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.8/#6.2.8.11.2 + + i=22 + + + + + DataSetReaderMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.8/#6.2.8.11.3 + + i=22 + + + + + SubscribedDataSetDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.9/#6.2.9.1 + + i=22 + + + + + TargetVariablesDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.9/#6.2.9.2.2 + + i=15630 + + + + + + + FieldTargetDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.9/#6.2.9.2.3 + + i=22 + + + + + + + + + + + + + OverrideValueHandling + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.9/#6.2.9.2.4 + + i=15875 + i=29 + + + + + + + + + EnumStrings + + i=68 + i=15874 + + + + + Disabled + + + LastUsableValue + + + OverrideValue + + + + + + SubscribedDataSetMirrorDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.9/#6.2.9.3.3 + + i=15630 + + + + + + + + PubSubConfigurationDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.2.11 + + i=22 + + + + + + + + + DataSetOrderingType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.1/#6.3.1.1.3 + + i=15641 + i=29 + + + + + + + + + EnumStrings + + i=68 + i=20408 + + + + + Undefined + + + AscendingWriterId + + + AscendingWriterIdSingle + + + + + + UadpNetworkMessageContentMask + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.1/#6.3.1.1.4 + + i=15643 + i=7 + + + + + + + + + + + + + + + + + OptionSetValues + + i=68 + i=15642 + + + + + PublisherId + + + GroupHeader + + + WriterGroupId + + + GroupVersion + + + NetworkMessageNumber + + + SequenceNumber + + + PayloadHeader + + + Timestamp + + + PicoSeconds + + + DataSetClassId + + + PromotedFields + + + + + + UadpWriterGroupMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.1/#6.3.1.1.7 + + i=15616 + + + + + + + + + + + UadpDataSetMessageContentMask + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.1/#6.3.1.2.2 + + i=15647 + i=7 + + + + + + + + + + + + OptionSetValues + + i=68 + i=15646 + + + + + Timestamp + + + PicoSeconds + + + Status + + + MajorVersion + + + MinorVersion + + + SequenceNumber + + + + + + UadpDataSetWriterMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.1/#6.3.1.2.6 + + i=15605 + + + + + + + + + + UadpDataSetReaderMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.1/#6.3.1.3.10 + + i=15629 + + + + + + + + + + + + + + + JsonNetworkMessageContentMask + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.2/#6.3.2.1.1 + + i=15655 + i=7 + + + + + + + + + + + + OptionSetValues + + i=68 + i=15654 + + + + + NetworkMessageHeader + + + DataSetMessageHeader + + + SingleDataSetMessage + + + PublisherId + + + DataSetClassId + + + ReplyTo + + + + + + JsonWriterGroupMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.2/#6.3.2.1.2 + + i=15616 + + + + + + + JsonDataSetMessageContentMask + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.2/#6.3.2.2.1 + + i=15659 + i=7 + + + + + + + + + + + + OptionSetValues + + i=68 + i=15658 + + + + + DataSetWriterId + + + MetaDataVersion + + + SequenceNumber + + + Timestamp + + + Status + + + MessageType + + + + + + JsonDataSetWriterMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.2/#6.3.2.2.2 + + i=15605 + + + + + + + JsonDataSetReaderMessageDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.3.2/#6.3.2.3.3 + + i=15629 + + + + + + + + DatagramConnectionTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.4.1/#6.4.1.1.2 + + i=15618 + + + + + + + DatagramWriterGroupTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.4.1/#6.4.1.2.3 + + i=15611 + + + + + + + + BrokerConnectionTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.4.2/#6.4.2.1.3 + + i=15618 + + + + + + + + BrokerTransportQualityOfService + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.4.2/#6.4.2.2.5 + + i=15009 + i=29 + + + + + + + + + + + EnumStrings + + i=68 + i=15008 + + + + + NotSpecified + + + BestEffort + + + AtLeastOnce + + + AtMostOnce + + + ExactlyOnce + + + + + + BrokerWriterGroupTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.4.2/#6.4.2.2.6 + + i=15611 + + + + + + + + + + BrokerDataSetWriterTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.4.2/#6.4.2.3.7 + + i=15598 + + + + + + + + + + + + BrokerDataSetReaderTransportDataType + https://reference.opcfoundation.org/v104/Core/docs/Part14/6.4.2/#6.4.2.4.6 + + i=15628 + + + + + + + + + + + PubSubKeyServiceType + https://reference.opcfoundation.org/v104/Core/docs/Part14/8.3 + + i=15907 + i=15910 + i=15913 + i=58 + + + + GetSecurityKeys + + i=15908 + i=15909 + i=80 + i=15906 + + + + InputArguments + + i=68 + i=78 + i=15907 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + i=297 + + + + StartingTokenId + + i=288 + + -1 + + + + + + + i=297 + + + + RequestedKeyCount + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15907 + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + i=297 + + + + FirstTokenId + + i=288 + + -1 + + + + + + + i=297 + + + + Keys + + i=15 + + 1 + + 0 + + + + + + + i=297 + + + + TimeToNextKey + + i=290 + + -1 + + + + + + + i=297 + + + + KeyLifetime + + i=290 + + -1 + + + + + + + + + GetSecurityGroup + + i=15911 + i=15912 + i=80 + i=15906 + + + + InputArguments + + i=68 + i=78 + i=15910 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15910 + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + SecurityGroups + + i=15914 + i=15917 + i=15452 + i=80 + i=15906 + + + + AddSecurityGroup + + i=15915 + i=15916 + i=78 + i=15913 + + + + InputArguments + + i=68 + i=78 + i=15914 + + + + + + i=297 + + + + SecurityGroupName + + i=12 + + -1 + + + + + + + i=297 + + + + KeyLifetime + + i=290 + + -1 + + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + i=297 + + + + MaxFutureKeyCount + + i=7 + + -1 + + + + + + + i=297 + + + + MaxPastKeyCount + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15914 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + RemoveSecurityGroup + + i=15918 + i=78 + i=15913 + + + + InputArguments + + i=68 + i=78 + i=15917 + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + SecurityGroupFolderType + https://reference.opcfoundation.org/v104/Core/docs/Part14/8.7 + + i=15453 + i=15459 + i=15461 + i=15464 + i=61 + + + + <SecurityGroupFolderName> + + i=15454 + i=15457 + i=15452 + i=11508 + i=15452 + + + + AddSecurityGroup + + i=15455 + i=15456 + i=78 + i=15453 + + + + InputArguments + + i=68 + i=78 + i=15454 + + + + + + i=297 + + + + SecurityGroupName + + i=12 + + -1 + + + + + + + i=297 + + + + KeyLifetime + + i=290 + + -1 + + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + i=297 + + + + MaxFutureKeyCount + + i=7 + + -1 + + + + + + + i=297 + + + + MaxPastKeyCount + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15454 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + RemoveSecurityGroup + + i=15458 + i=78 + i=15453 + + + + InputArguments + + i=68 + i=78 + i=15457 + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + <SecurityGroupName> + + i=15460 + i=15010 + i=15011 + i=15012 + i=15043 + i=15471 + i=11508 + i=15452 + + + + SecurityGroupId + + i=68 + i=78 + i=15459 + + + + KeyLifetime + + i=68 + i=78 + i=15459 + + + + SecurityPolicyUri + + i=68 + i=78 + i=15459 + + + + MaxFutureKeyCount + + i=68 + i=78 + i=15459 + + + + MaxPastKeyCount + + i=68 + i=78 + i=15459 + + + + AddSecurityGroup + + i=15462 + i=15463 + i=78 + i=15452 + + + + InputArguments + + i=68 + i=78 + i=15461 + + + + + + i=297 + + + + SecurityGroupName + + i=12 + + -1 + + + + + + + i=297 + + + + KeyLifetime + + i=290 + + -1 + + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + i=297 + + + + MaxFutureKeyCount + + i=7 + + -1 + + + + + + + i=297 + + + + MaxPastKeyCount + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15461 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + RemoveSecurityGroup + + i=15465 + i=78 + i=15452 + + + + InputArguments + + i=68 + i=78 + i=15464 + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + SecurityGroupType + https://reference.opcfoundation.org/v104/Core/docs/Part14/8.6 + + i=15472 + i=15046 + i=15047 + i=15048 + i=15056 + i=58 + + + + SecurityGroupId + + i=68 + i=78 + i=15471 + + + + KeyLifetime + + i=68 + i=78 + i=15471 + + + + SecurityPolicyUri + + i=68 + i=78 + i=15471 + + + + MaxFutureKeyCount + + i=68 + i=78 + i=15471 + + + + MaxPastKeyCount + + i=68 + i=78 + i=15471 + + + + PublishSubscribeType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.3/#9.1.3.2 + + i=14417 + i=17296 + i=16598 + i=14432 + i=14434 + i=15844 + i=18715 + i=17479 + i=15906 + + + + <ConnectionName> + + i=14418 + i=17292 + i=17478 + i=14423 + i=14419 + i=14209 + i=11508 + i=14416 + + + + PublisherId + + i=68 + i=78 + i=14417 + + + + TransportProfileUri + + i=17706 + i=16309 + i=78 + i=14417 + + + + Selections + + i=68 + i=78 + i=17292 + + + + ConnectionProperties + + i=68 + i=78 + i=14417 + + + + Address + + i=15533 + i=21145 + i=78 + i=14417 + + + + NetworkInterface + + i=17503 + i=16309 + i=78 + i=14423 + + + + Selections + + i=68 + i=78 + i=15533 + + + + Status + + i=14420 + i=14643 + i=78 + i=14417 + + + + State + + i=63 + i=78 + i=14419 + + + + SetSecurityKeys + + i=17297 + i=80 + i=14416 + + + + InputArguments + + i=68 + i=78 + i=17296 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + i=297 + + + + CurrentTokenId + + i=288 + + -1 + + + + + + + i=297 + + + + CurrentKey + + i=15 + + -1 + + + + + + + i=297 + + + + FutureKeys + + i=15 + + 1 + + 0 + + + + + + + i=297 + + + + TimeToNextKey + + i=290 + + -1 + + + + + + + i=297 + + + + KeyLifetime + + i=290 + + -1 + + + + + + + + + AddConnection + + i=16599 + i=16600 + i=80 + i=14416 + + + + InputArguments + + i=68 + i=78 + i=16598 + + + + + + i=297 + + + + Configuration + + i=15617 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16598 + + + + + + i=297 + + + + ConnectionId + + i=17 + + -1 + + + + + + + + + RemoveConnection + + i=14433 + i=80 + i=14416 + + + + InputArguments + + i=68 + i=78 + i=14432 + + + + + + i=297 + + + + ConnectionId + + i=17 + + -1 + + + + + + + + + PublishedDataSets + + i=14477 + i=78 + i=14416 + + + + Status + + i=15845 + i=14643 + i=78 + i=14416 + + + + State + + i=63 + i=78 + i=15844 + + + + Diagnostics + + i=18716 + i=18717 + i=18722 + i=18727 + i=18728 + i=18729 + i=18760 + i=19732 + i=80 + i=14416 + + + + DiagnosticsLevel + + i=63 + i=78 + i=18715 + + + + TotalInformation + + i=18718 + i=18719 + i=18720 + i=19725 + i=78 + i=18715 + + + + Active + + i=68 + i=78 + i=18717 + + + + Classification + + i=68 + i=78 + i=18717 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18717 + + + + TotalError + + i=18723 + i=18724 + i=18725 + i=19725 + i=78 + i=18715 + + + + Active + + i=68 + i=78 + i=18722 + + + + Classification + + i=68 + i=78 + i=18722 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18722 + + + + Reset + + i=78 + i=18715 + + + + SubError + + i=63 + i=78 + i=18715 + + + + Counters + + i=18730 + i=18735 + i=18740 + i=18745 + i=18750 + i=18755 + i=58 + i=78 + i=18715 + + + + StateError + + i=18731 + i=18732 + i=18733 + i=19725 + i=78 + i=18729 + + + + Active + + i=68 + i=78 + i=18730 + + + + Classification + + i=68 + i=78 + i=18730 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18730 + + + 0 + + + + StateOperationalByMethod + + i=18736 + i=18737 + i=18738 + i=19725 + i=78 + i=18729 + + + + Active + + i=68 + i=78 + i=18735 + + + + Classification + + i=68 + i=78 + i=18735 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18735 + + + 0 + + + + StateOperationalByParent + + i=18741 + i=18742 + i=18743 + i=19725 + i=78 + i=18729 + + + + Active + + i=68 + i=78 + i=18740 + + + + Classification + + i=68 + i=78 + i=18740 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18740 + + + 0 + + + + StateOperationalFromError + + i=18746 + i=18747 + i=18748 + i=19725 + i=78 + i=18729 + + + + Active + + i=68 + i=78 + i=18745 + + + + Classification + + i=68 + i=78 + i=18745 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18745 + + + 0 + + + + StatePausedByParent + + i=18751 + i=18752 + i=18753 + i=19725 + i=78 + i=18729 + + + + Active + + i=68 + i=78 + i=18750 + + + + Classification + + i=68 + i=78 + i=18750 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18750 + + + 0 + + + + StateDisabledByMethod + + i=18756 + i=18757 + i=18758 + i=19725 + i=78 + i=18729 + + + + Active + + i=68 + i=78 + i=18755 + + + + Classification + + i=68 + i=78 + i=18755 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18755 + + + 0 + + + + LiveValues + + i=18761 + i=18763 + i=18765 + i=18767 + i=58 + i=78 + i=18715 + + + + ConfiguredDataSetWriters + + i=18762 + i=63 + i=78 + i=18760 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18761 + + + 0 + + + + ConfiguredDataSetReaders + + i=18764 + i=63 + i=78 + i=18760 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18763 + + + 0 + + + + OperationalDataSetWriters + + i=18766 + i=63 + i=78 + i=18760 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18765 + + + 0 + + + + OperationalDataSetReaders + + i=18768 + i=63 + i=78 + i=18760 + + + + DiagnosticsLevel + + i=68 + i=78 + i=18767 + + + 0 + + + + SupportedTransportProfiles + + i=68 + i=78 + i=14416 + + + + PublishSubscribe + https://reference.opcfoundation.org/v104/Core/docs/Part14/8.2 + + i=15215 + i=15440 + i=15443 + i=17366 + i=17369 + i=17371 + i=17405 + i=17409 + i=17481 + i=2253 + i=14416 + + + + GetSecurityKeys + + i=15216 + i=15217 + i=14443 + + + + InputArguments + + i=68 + i=15215 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + i=297 + + + + StartingTokenId + + i=288 + + -1 + + + + + + + i=297 + + + + RequestedKeyCount + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=15215 + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + i=297 + + + + FirstTokenId + + i=288 + + -1 + + + + + + + i=297 + + + + Keys + + i=15 + + 1 + + 0 + + + + + + + i=297 + + + + TimeToNextKey + + i=290 + + -1 + + + + + + + i=297 + + + + KeyLifetime + + i=290 + + -1 + + + + + + + + + GetSecurityGroup + + i=15441 + i=15442 + i=14443 + + + + InputArguments + + i=68 + i=15440 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=15440 + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + SecurityGroups + + i=15444 + i=15447 + i=15452 + i=14443 + + + + AddSecurityGroup + + i=15445 + i=15446 + i=15443 + + + + InputArguments + + i=68 + i=15444 + + + + + + i=297 + + + + SecurityGroupName + + i=12 + + -1 + + + + + + + i=297 + + + + KeyLifetime + + i=290 + + -1 + + + + + + + i=297 + + + + SecurityPolicyUri + + i=12 + + -1 + + + + + + + i=297 + + + + MaxFutureKeyCount + + i=7 + + -1 + + + + + + + i=297 + + + + MaxPastKeyCount + + i=7 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=15444 + + + + + + i=297 + + + + SecurityGroupId + + i=12 + + -1 + + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + RemoveSecurityGroup + + i=15448 + i=15443 + + + + InputArguments + + i=68 + i=15447 + + + + + + i=297 + + + + SecurityGroupNodeId + + i=17 + + -1 + + + + + + + + + AddConnection + + i=17367 + i=17368 + i=14443 + + + + InputArguments + + i=68 + i=17366 + + + + + + i=297 + + + + Configuration + + i=15617 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=17366 + + + + + + i=297 + + + + ConnectionId + + i=17 + + -1 + + + + + + + + + RemoveConnection + + i=17370 + i=14443 + + + + InputArguments + + i=68 + i=17369 + + + + + + i=297 + + + + ConnectionId + + i=17 + + -1 + + + + + + + + + PublishedDataSets + + i=14477 + i=14443 + + + + Status + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.10/#9.1.10.4 + + i=17406 + i=14643 + i=14443 + + + + State + + i=63 + i=17405 + + + + Diagnostics + + i=17410 + i=17411 + i=17416 + i=17421 + i=17422 + i=17423 + i=17457 + i=19732 + i=14443 + + + + DiagnosticsLevel + + i=63 + i=17409 + + + + TotalInformation + + i=17412 + i=17413 + i=17414 + i=19725 + i=17409 + + + + Active + + i=68 + i=17411 + + + + Classification + + i=68 + i=17411 + + + + DiagnosticsLevel + + i=68 + i=17411 + + + + TotalError + + i=17417 + i=17418 + i=17419 + i=19725 + i=17409 + + + + Active + + i=68 + i=17416 + + + + Classification + + i=68 + i=17416 + + + + DiagnosticsLevel + + i=68 + i=17416 + + + + Reset + + i=17409 + + + + SubError + + i=63 + i=17409 + + + + Counters + + i=17424 + i=17431 + i=17436 + i=17441 + i=17446 + i=17451 + i=58 + i=17409 + + + + StateError + + i=17425 + i=17426 + i=17429 + i=19725 + i=17423 + + + + Active + + i=68 + i=17424 + + + + Classification + + i=68 + i=17424 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=17424 + + + 0 + + + + StateOperationalByMethod + + i=17432 + i=17433 + i=17434 + i=19725 + i=17423 + + + + Active + + i=68 + i=17431 + + + + Classification + + i=68 + i=17431 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=17431 + + + 0 + + + + StateOperationalByParent + + i=17437 + i=17438 + i=17439 + i=19725 + i=17423 + + + + Active + + i=68 + i=17436 + + + + Classification + + i=68 + i=17436 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=17436 + + + 0 + + + + StateOperationalFromError + + i=17442 + i=17443 + i=17444 + i=19725 + i=17423 + + + + Active + + i=68 + i=17441 + + + + Classification + + i=68 + i=17441 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=17441 + + + 0 + + + + StatePausedByParent + + i=17447 + i=17448 + i=17449 + i=19725 + i=17423 + + + + Active + + i=68 + i=17446 + + + + Classification + + i=68 + i=17446 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=17446 + + + 0 + + + + StateDisabledByMethod + + i=17452 + i=17453 + i=17454 + i=19725 + i=17423 + + + + Active + + i=68 + i=17451 + + + + Classification + + i=68 + i=17451 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=17451 + + + 0 + + + + LiveValues + + i=17458 + i=17460 + i=17462 + i=17464 + i=58 + i=17409 + + + + ConfiguredDataSetWriters + + i=17459 + i=63 + i=17457 + + + + DiagnosticsLevel + + i=68 + i=17458 + + + 0 + + + + ConfiguredDataSetReaders + + i=17461 + i=63 + i=17457 + + + + DiagnosticsLevel + + i=68 + i=17460 + + + 0 + + + + OperationalDataSetWriters + + i=17463 + i=63 + i=17457 + + + + DiagnosticsLevel + + i=68 + i=17462 + + + 0 + + + + OperationalDataSetReaders + + i=17466 + i=63 + i=17457 + + + + DiagnosticsLevel + + i=68 + i=17464 + + + 0 + + + + SupportedTransportProfiles + + i=68 + i=14443 + + + + HasPubSubConnection + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.3/#9.1.3.6 + + i=47 + + PubSubConnectionOf + + + PublishedDataSetType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.4/#9.1.4.2.1 + + i=15222 + i=14519 + i=15229 + i=16759 + i=15481 + i=58 + + + + <DataSetWriterName> + + i=16720 + i=16721 + i=17482 + i=15223 + i=15298 + i=11508 + i=14509 + + + + DataSetWriterId + + i=68 + i=78 + i=15222 + + + + DataSetFieldContentMask + + i=68 + i=78 + i=15222 + + + + DataSetWriterProperties + + i=68 + i=78 + i=15222 + + + + Status + + i=15224 + i=14643 + i=78 + i=15222 + + + + State + + i=63 + i=78 + i=15223 + + + + ConfigurationVersion + + i=68 + i=78 + i=14509 + + + + DataSetMetaData + + i=68 + i=78 + i=14509 + + + + DataSetClassId + + i=68 + i=80 + i=14509 + + + + ExtensionFields + + i=15482 + i=15485 + i=15489 + i=80 + i=14509 + + + + AddExtensionField + + i=15483 + i=15484 + i=78 + i=15481 + + + + InputArguments + + i=68 + i=78 + i=15482 + + + + + + i=297 + + + + FieldName + + i=20 + + -1 + + + + + + + i=297 + + + + FieldValue + + i=24 + + -2 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15482 + + + + + + i=297 + + + + FieldId + + i=17 + + -1 + + + + + + + + + RemoveExtensionField + + i=15486 + i=78 + i=15481 + + + + InputArguments + + i=68 + i=78 + i=15485 + + + + + + i=297 + + + + FieldId + + i=17 + + -1 + + + + + + + + + ExtensionFieldsType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.4/#9.1.4.2.2 + + i=15490 + i=15491 + i=15494 + i=58 + + + + <ExtensionFieldName> + + i=68 + i=11508 + i=15489 + + + + AddExtensionField + + i=15492 + i=15493 + i=78 + i=15489 + + + + InputArguments + + i=68 + i=78 + i=15491 + + + + + + i=297 + + + + FieldName + + i=20 + + -1 + + + + + + + i=297 + + + + FieldValue + + i=24 + + -2 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15491 + + + + + + i=297 + + + + FieldId + + i=17 + + -1 + + + + + + + + + RemoveExtensionField + + i=15495 + i=78 + i=15489 + + + + InputArguments + + i=68 + i=78 + i=15494 + + + + + + i=297 + + + + FieldId + + i=17 + + -1 + + + + + + + + + DataSetToWriter + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.4/#9.1.4.2.5 + + i=33 + + WriterToDataSet + + + PublishedDataItemsType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.4/#9.1.4.3.1 + + i=14548 + i=14555 + i=14558 + i=14509 + + + + PublishedData + + i=68 + i=78 + i=14534 + + + + AddVariables + + i=14556 + i=14557 + i=80 + i=14534 + + + + InputArguments + + i=68 + i=78 + i=14555 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + FieldNameAliases + + i=12 + + 1 + + 0 + + + + + + + i=297 + + + + PromotedFields + + i=1 + + 1 + + 0 + + + + + + + i=297 + + + + VariablesToAdd + + i=14273 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=14555 + + + + + + i=297 + + + + NewConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + AddResults + + i=19 + + 1 + + 0 + + + + + + + + + RemoveVariables + + i=14559 + i=14560 + i=80 + i=14534 + + + + InputArguments + + i=68 + i=78 + i=14558 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + VariablesToRemove + + i=7 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=14558 + + + + + + i=297 + + + + NewConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + RemoveResults + + i=19 + + 1 + + 0 + + + + + + + + + PublishedEventsType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.4/#9.1.4.4.1 + + i=14586 + i=14587 + i=14588 + i=15052 + i=14509 + + + + EventNotifier + + i=68 + i=78 + i=14572 + + + + SelectedFields + + i=68 + i=78 + i=14572 + + + + Filter + + i=68 + i=78 + i=14572 + + + + ModifyFieldSelection + + i=15053 + i=15517 + i=80 + i=14572 + + + + InputArguments + + i=68 + i=78 + i=15052 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + FieldNameAliases + + i=12 + + 1 + + 0 + + + + + + + i=297 + + + + PromotedFields + + i=1 + + 1 + + 0 + + + + + + + i=297 + + + + SelectedFields + + i=601 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15052 + + + + + + i=297 + + + + NewConfigurationVersion + + i=14593 + + -1 + + + + + + + + + DataSetFolderType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.4/#9.1.4.5.1 + + i=14478 + i=14487 + i=14493 + i=14496 + i=16935 + i=16960 + i=14499 + i=16994 + i=16997 + i=61 + + + + <DataSetFolderName> + + i=14479 + i=14482 + i=16842 + i=16881 + i=14485 + i=16884 + i=16923 + i=14477 + i=11508 + i=14477 + + + + AddPublishedDataItems + + i=14480 + i=14481 + i=80 + i=14478 + + + + InputArguments + + i=68 + i=78 + i=14479 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + FieldNameAliases + + i=12 + + 1 + + 0 + + + + + + + i=297 + + + + FieldFlags + + i=15904 + + 1 + + 0 + + + + + + + i=297 + + + + VariablesToAdd + + i=14273 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=14479 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + AddResults + + i=19 + + 1 + + 0 + + + + + + + + + AddPublishedEvents + + i=14483 + i=14484 + i=80 + i=14478 + + + + InputArguments + + i=68 + i=78 + i=14482 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + EventNotifier + + i=17 + + -1 + + + + + + + i=297 + + + + FieldNameAliases + + i=12 + + 1 + + 0 + + + + + + + i=297 + + + + FieldFlags + + i=15904 + + 1 + + 0 + + + + + + + i=297 + + + + SelectedFields + + i=601 + + 1 + + 0 + + + + + + + i=297 + + + + Filter + + i=586 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=14482 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + + + AddPublishedDataItemsTemplate + + i=16843 + i=16853 + i=80 + i=14478 + + + + InputArguments + + i=68 + i=78 + i=16842 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + DataSetMetaData + + i=14523 + + -1 + + + + + + + i=297 + + + + VariablesToAdd + + i=14273 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16842 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + AddResults + + i=19 + + 1 + + 0 + + + + + + + + + AddPublishedEventsTemplate + + i=16882 + i=16883 + i=80 + i=14478 + + + + InputArguments + + i=68 + i=78 + i=16881 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + DataSetMetaData + + i=14523 + + -1 + + + + + + + i=297 + + + + EventNotifier + + i=17 + + -1 + + + + + + + i=297 + + + + SelectedFields + + i=601 + + 1 + + 0 + + + + + + + i=297 + + + + Filter + + i=586 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16881 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + + + RemovePublishedDataSet + + i=14486 + i=80 + i=14478 + + + + InputArguments + + i=68 + i=78 + i=14485 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + + + AddDataSetFolder + + i=16894 + i=16922 + i=80 + i=14478 + + + + InputArguments + + i=68 + i=78 + i=16884 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16884 + + + + + + i=297 + + + + DataSetFolderNodeId + + i=17 + + -1 + + + + + + + + + RemoveDataSetFolder + + i=16924 + i=80 + i=14478 + + + + InputArguments + + i=68 + i=78 + i=16923 + + + + + + i=297 + + + + DataSetFolderNodeId + + i=17 + + -1 + + + + + + + + + <PublishedDataSetName> + + i=14489 + i=15221 + i=14509 + i=11508 + i=14477 + + + + ConfigurationVersion + + i=68 + i=78 + i=14487 + + + + DataSetMetaData + + i=68 + i=78 + i=14487 + + + + AddPublishedDataItems + + i=14494 + i=14495 + i=80 + i=14477 + + + + InputArguments + + i=68 + i=78 + i=14493 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + FieldNameAliases + + i=12 + + 1 + + 0 + + + + + + + i=297 + + + + FieldFlags + + i=15904 + + 1 + + 0 + + + + + + + i=297 + + + + VariablesToAdd + + i=14273 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=14493 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + AddResults + + i=19 + + 1 + + 0 + + + + + + + + + AddPublishedEvents + + i=14497 + i=14498 + i=80 + i=14477 + + + + InputArguments + + i=68 + i=78 + i=14496 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + EventNotifier + + i=17 + + -1 + + + + + + + i=297 + + + + FieldNameAliases + + i=12 + + 1 + + 0 + + + + + + + i=297 + + + + FieldFlags + + i=15904 + + 1 + + 0 + + + + + + + i=297 + + + + SelectedFields + + i=601 + + 1 + + 0 + + + + + + + i=297 + + + + Filter + + i=586 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=14496 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + + + AddPublishedDataItemsTemplate + + i=16958 + i=16959 + i=80 + i=14477 + + + + InputArguments + + i=68 + i=78 + i=16935 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + DataSetMetaData + + i=14523 + + -1 + + + + + + + i=297 + + + + VariablesToAdd + + i=14273 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16935 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + i=297 + + + + AddResults + + i=19 + + 1 + + 0 + + + + + + + + + AddPublishedEventsTemplate + + i=16961 + i=16971 + i=80 + i=14477 + + + + InputArguments + + i=68 + i=78 + i=16960 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + i=297 + + + + DataSetMetaData + + i=14523 + + -1 + + + + + + + i=297 + + + + EventNotifier + + i=17 + + -1 + + + + + + + i=297 + + + + SelectedFields + + i=601 + + 1 + + 0 + + + + + + + i=297 + + + + Filter + + i=586 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16960 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + + + RemovePublishedDataSet + + i=14500 + i=80 + i=14477 + + + + InputArguments + + i=68 + i=78 + i=14499 + + + + + + i=297 + + + + DataSetNodeId + + i=17 + + -1 + + + + + + + + + AddDataSetFolder + + i=16995 + i=16996 + i=80 + i=14477 + + + + InputArguments + + i=68 + i=78 + i=16994 + + + + + + i=297 + + + + Name + + i=12 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=16994 + + + + + + i=297 + + + + DataSetFolderNodeId + + i=17 + + -1 + + + + + + + + + RemoveDataSetFolder + + i=17007 + i=80 + i=14477 + + + + InputArguments + + i=68 + i=78 + i=16997 + + + + + + i=297 + + + + DataSetFolderNodeId + + i=17 + + -1 + + + + + + + + + PubSubConnectionType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.5/#9.1.5.2 + + i=14595 + i=17306 + i=17485 + i=14221 + i=17203 + i=17310 + i=17325 + i=14600 + i=19241 + i=17427 + i=17465 + i=14225 + i=58 + + + + PublisherId + + i=68 + i=78 + i=14209 + + + + TransportProfileUri + + i=17710 + i=16309 + i=78 + i=14209 + + + + Selections + + i=68 + i=78 + i=17306 + + + + ConnectionProperties + + i=68 + i=78 + i=14209 + + + + Address + + i=17202 + i=21145 + i=78 + i=14209 + + + + NetworkInterface + + i=17576 + i=16309 + i=78 + i=14221 + + + + Selections + + i=68 + i=78 + i=17202 + + + + TransportSettings + + i=17721 + i=80 + i=14209 + + + + <WriterGroupName> + + i=17311 + i=17204 + i=17486 + i=17314 + i=17214 + i=17318 + i=17319 + i=17321 + i=17322 + i=17558 + i=17725 + i=11508 + i=14209 + + + + SecurityMode + + i=68 + i=78 + i=17310 + + + + MaxNetworkMessageSize + + i=68 + i=78 + i=17310 + + + + GroupProperties + + i=68 + i=78 + i=17310 + + + + Status + + i=17315 + i=14643 + i=78 + i=17310 + + + + State + + i=63 + i=78 + i=17314 + + + + WriterGroupId + + i=68 + i=78 + i=17310 + + + + PublishingInterval + + i=68 + i=78 + i=17310 + + + + KeepAliveTime + + i=68 + i=78 + i=17310 + + + + Priority + + i=68 + i=78 + i=17310 + + + + LocaleIds + + i=68 + i=78 + i=17310 + + + + HeaderLayoutUri + + i=68 + i=78 + i=17310 + + + + <ReaderGroupName> + + i=17326 + i=17302 + i=17487 + i=17329 + i=17999 + i=11508 + i=14209 + + + + SecurityMode + + i=68 + i=78 + i=17325 + + + + MaxNetworkMessageSize + + i=68 + i=78 + i=17325 + + + + GroupProperties + + i=68 + i=78 + i=17325 + + + + Status + + i=17330 + i=14643 + i=78 + i=17325 + + + + State + + i=63 + i=78 + i=17329 + + + + Status + + i=14601 + i=14643 + i=78 + i=14209 + + + + State + + i=63 + i=78 + i=14600 + + + + Diagnostics + + i=19242 + i=19243 + i=19248 + i=19253 + i=19254 + i=19255 + i=19286 + i=19786 + i=80 + i=14209 + + + + DiagnosticsLevel + + i=63 + i=78 + i=19241 + + + + TotalInformation + + i=19244 + i=19245 + i=19246 + i=19725 + i=78 + i=19241 + + + + Active + + i=68 + i=78 + i=19243 + + + + Classification + + i=68 + i=78 + i=19243 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19243 + + + + TotalError + + i=19249 + i=19250 + i=19251 + i=19725 + i=78 + i=19241 + + + + Active + + i=68 + i=78 + i=19248 + + + + Classification + + i=68 + i=78 + i=19248 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19248 + + + + Reset + + i=78 + i=19241 + + + + SubError + + i=63 + i=78 + i=19241 + + + + Counters + + i=19256 + i=19261 + i=19266 + i=19271 + i=19276 + i=19281 + i=58 + i=78 + i=19241 + + + + StateError + + i=19257 + i=19258 + i=19259 + i=19725 + i=78 + i=19255 + + + + Active + + i=68 + i=78 + i=19256 + + + + Classification + + i=68 + i=78 + i=19256 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19256 + + + 0 + + + + StateOperationalByMethod + + i=19262 + i=19263 + i=19264 + i=19725 + i=78 + i=19255 + + + + Active + + i=68 + i=78 + i=19261 + + + + Classification + + i=68 + i=78 + i=19261 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19261 + + + 0 + + + + StateOperationalByParent + + i=19267 + i=19268 + i=19269 + i=19725 + i=78 + i=19255 + + + + Active + + i=68 + i=78 + i=19266 + + + + Classification + + i=68 + i=78 + i=19266 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19266 + + + 0 + + + + StateOperationalFromError + + i=19272 + i=19273 + i=19274 + i=19725 + i=78 + i=19255 + + + + Active + + i=68 + i=78 + i=19271 + + + + Classification + + i=68 + i=78 + i=19271 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19271 + + + 0 + + + + StatePausedByParent + + i=19277 + i=19278 + i=19279 + i=19725 + i=78 + i=19255 + + + + Active + + i=68 + i=78 + i=19276 + + + + Classification + + i=68 + i=78 + i=19276 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19276 + + + 0 + + + + StateDisabledByMethod + + i=19282 + i=19283 + i=19284 + i=19725 + i=78 + i=19255 + + + + Active + + i=68 + i=78 + i=19281 + + + + Classification + + i=68 + i=78 + i=19281 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19281 + + + 0 + + + + LiveValues + + i=19287 + i=58 + i=78 + i=19241 + + + + ResolvedAddress + + i=19288 + i=63 + i=78 + i=19286 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19287 + + + 0 + + + + AddWriterGroup + + i=17428 + i=17456 + i=80 + i=14209 + + + + InputArguments + + i=68 + i=78 + i=17427 + + + + + + i=297 + + + + Configuration + + i=15480 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=17427 + + + + + + i=297 + + + + GroupId + + i=17 + + -1 + + + + + + + + + AddReaderGroup + + i=17507 + i=17508 + i=80 + i=14209 + + + + InputArguments + + i=68 + i=78 + i=17465 + + + + + + i=297 + + + + Configuration + + i=15520 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=17465 + + + + + + i=297 + + + + GroupId + + i=17 + + -1 + + + + + + + + + RemoveGroup + + i=14226 + i=80 + i=14209 + + + + InputArguments + + i=68 + i=78 + i=14225 + + + + + + i=297 + + + + GroupId + + i=17 + + -1 + + + + + + + + + ConnectionTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.5/#9.1.5.6 + + i=58 + + + + PubSubGroupType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.2 + + i=15926 + i=15927 + i=15928 + i=17724 + i=17488 + i=15265 + i=58 + + + + SecurityMode + + i=68 + i=78 + i=14232 + + + + SecurityGroupId + + i=68 + i=80 + i=14232 + + + + SecurityKeyServices + + i=68 + i=80 + i=14232 + + + + MaxNetworkMessageSize + + i=68 + i=78 + i=14232 + + + + GroupProperties + + i=68 + i=78 + i=14232 + + + + Status + + i=15266 + i=14643 + i=78 + i=14232 + + + + State + + i=63 + i=78 + i=15265 + + + + WriterGroupType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.3 + + i=17736 + i=17737 + i=17738 + i=17739 + i=17740 + i=17559 + i=17741 + i=17742 + i=17743 + i=17812 + i=17969 + i=17992 + i=14232 + + + + WriterGroupId + + i=68 + i=78 + i=17725 + + + + PublishingInterval + + i=68 + i=78 + i=17725 + + + + KeepAliveTime + + i=68 + i=78 + i=17725 + + + + Priority + + i=68 + i=78 + i=17725 + + + + LocaleIds + + i=68 + i=78 + i=17725 + + + + HeaderLayoutUri + + i=68 + i=78 + i=17725 + + + + TransportSettings + + i=17997 + i=80 + i=17725 + + + + MessageSettings + + i=17998 + i=80 + i=17725 + + + + <DataSetWriterName> + + i=17744 + i=17745 + i=17490 + i=17749 + i=15298 + i=11508 + i=17725 + + + + DataSetWriterId + + i=68 + i=78 + i=17743 + + + + DataSetFieldContentMask + + i=68 + i=78 + i=17743 + + + + DataSetWriterProperties + + i=68 + i=78 + i=17743 + + + + Status + + i=17750 + i=14643 + i=78 + i=17743 + + + + State + + i=63 + i=78 + i=17749 + + + + Diagnostics + + i=17813 + i=17814 + i=17819 + i=17824 + i=17825 + i=17826 + i=17858 + i=19834 + i=80 + i=17725 + + + + DiagnosticsLevel + + i=63 + i=78 + i=17812 + + + + TotalInformation + + i=17815 + i=17816 + i=17817 + i=19725 + i=78 + i=17812 + + + + Active + + i=68 + i=78 + i=17814 + + + + Classification + + i=68 + i=78 + i=17814 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17814 + + + + TotalError + + i=17820 + i=17821 + i=17822 + i=19725 + i=78 + i=17812 + + + + Active + + i=68 + i=78 + i=17819 + + + + Classification + + i=68 + i=78 + i=17819 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17819 + + + + Reset + + i=78 + i=17812 + + + + SubError + + i=63 + i=78 + i=17812 + + + + Counters + + i=17827 + i=17832 + i=17837 + i=17842 + i=17847 + i=17853 + i=17859 + i=17874 + i=17900 + i=58 + i=78 + i=17812 + + + + StateError + + i=17828 + i=17829 + i=17830 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17827 + + + + Classification + + i=68 + i=78 + i=17827 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17827 + + + 0 + + + + StateOperationalByMethod + + i=17833 + i=17834 + i=17835 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17832 + + + + Classification + + i=68 + i=78 + i=17832 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17832 + + + 0 + + + + StateOperationalByParent + + i=17838 + i=17839 + i=17840 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17837 + + + + Classification + + i=68 + i=78 + i=17837 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17837 + + + 0 + + + + StateOperationalFromError + + i=17843 + i=17844 + i=17845 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17842 + + + + Classification + + i=68 + i=78 + i=17842 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17842 + + + 0 + + + + StatePausedByParent + + i=17848 + i=17849 + i=17850 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17847 + + + + Classification + + i=68 + i=78 + i=17847 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17847 + + + 0 + + + + StateDisabledByMethod + + i=17854 + i=17855 + i=17856 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17853 + + + + Classification + + i=68 + i=78 + i=17853 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17853 + + + 0 + + + + SentNetworkMessages + + i=17864 + i=17871 + i=17872 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17859 + + + + Classification + + i=68 + i=78 + i=17859 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17859 + + + 0 + + + + FailedTransmissions + + i=17878 + i=17885 + i=17892 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17874 + + + + Classification + + i=68 + i=78 + i=17874 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17874 + + + 0 + + + + EncryptionErrors + + i=17901 + i=17902 + i=17903 + i=19725 + i=78 + i=17826 + + + + Active + + i=68 + i=78 + i=17900 + + + + Classification + + i=68 + i=78 + i=17900 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17900 + + + 1 + + + + LiveValues + + i=17913 + i=17927 + i=58 + i=78 + i=17812 + + + + ConfiguredDataSetWriters + + i=17920 + i=63 + i=78 + i=17858 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17913 + + + 0 + + + + OperationalDataSetWriters + + i=17934 + i=63 + i=78 + i=17858 + + + + DiagnosticsLevel + + i=68 + i=78 + i=17927 + + + 0 + + + + AddDataSetWriter + + i=17976 + i=17987 + i=80 + i=17725 + + + + InputArguments + + i=68 + i=78 + i=17969 + + + + + + i=297 + + + + Configuration + + i=15597 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=17969 + + + + + + i=297 + + + + DataSetWriterNodeId + + i=17 + + -1 + + + + + + + + + RemoveDataSetWriter + + i=17993 + i=80 + i=17725 + + + + InputArguments + + i=68 + i=78 + i=17992 + + + + + + i=297 + + + + DataSetWriterNodeId + + i=17 + + -1 + + + + + + + + + HasDataSetWriter + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.6 + + i=47 + + IsWriterInGroup + + + HasWriterGroup + + i=47 + + IsWriterGroupOf + + + WriterGroupTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.7 + + i=58 + + + + WriterGroupMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.8 + + i=58 + + + + ReaderGroupType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.9 + + i=18076 + i=21015 + i=21080 + i=21081 + i=21082 + i=21085 + i=14232 + + + + <DataSetReaderName> + + i=18077 + i=18078 + i=18079 + i=18080 + i=18081 + i=18082 + i=17560 + i=17562 + i=17492 + i=18088 + i=21006 + i=15306 + i=11508 + i=17999 + + + + PublisherId + + i=68 + i=78 + i=18076 + + + + WriterGroupId + + i=68 + i=78 + i=18076 + + + + DataSetWriterId + + i=68 + i=78 + i=18076 + + + + DataSetMetaData + + i=68 + i=78 + i=18076 + + + + DataSetFieldContentMask + + i=68 + i=78 + i=18076 + + + + MessageReceiveTimeout + + i=68 + i=78 + i=18076 + + + + KeyFrameCount + + i=68 + i=78 + i=18076 + + + + HeaderLayoutUri + + i=68 + i=78 + i=18076 + + + + DataSetReaderProperties + + i=68 + i=78 + i=18076 + + + + Status + + i=18089 + i=14643 + i=78 + i=18076 + + + + State + + i=63 + i=78 + i=18088 + + + + SubscribedDataSet + + i=15108 + i=78 + i=18076 + + + + Diagnostics + + i=21016 + i=21017 + i=21022 + i=21027 + i=21028 + i=21029 + i=21060 + i=19903 + i=80 + i=17999 + + + + DiagnosticsLevel + + i=63 + i=78 + i=21015 + + + + TotalInformation + + i=21018 + i=21019 + i=21020 + i=19725 + i=78 + i=21015 + + + + Active + + i=68 + i=78 + i=21017 + + + + Classification + + i=68 + i=78 + i=21017 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21017 + + + + TotalError + + i=21023 + i=21024 + i=21025 + i=19725 + i=78 + i=21015 + + + + Active + + i=68 + i=78 + i=21022 + + + + Classification + + i=68 + i=78 + i=21022 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21022 + + + + Reset + + i=78 + i=21015 + + + + SubError + + i=63 + i=78 + i=21015 + + + + Counters + + i=21030 + i=21035 + i=21040 + i=21045 + i=21050 + i=21055 + i=21061 + i=58 + i=78 + i=21015 + + + + StateError + + i=21031 + i=21032 + i=21033 + i=19725 + i=78 + i=21029 + + + + Active + + i=68 + i=78 + i=21030 + + + + Classification + + i=68 + i=78 + i=21030 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21030 + + + 0 + + + + StateOperationalByMethod + + i=21036 + i=21037 + i=21038 + i=19725 + i=78 + i=21029 + + + + Active + + i=68 + i=78 + i=21035 + + + + Classification + + i=68 + i=78 + i=21035 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21035 + + + 0 + + + + StateOperationalByParent + + i=21041 + i=21042 + i=21043 + i=19725 + i=78 + i=21029 + + + + Active + + i=68 + i=78 + i=21040 + + + + Classification + + i=68 + i=78 + i=21040 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21040 + + + 0 + + + + StateOperationalFromError + + i=21046 + i=21047 + i=21048 + i=19725 + i=78 + i=21029 + + + + Active + + i=68 + i=78 + i=21045 + + + + Classification + + i=68 + i=78 + i=21045 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21045 + + + 0 + + + + StatePausedByParent + + i=21051 + i=21052 + i=21053 + i=19725 + i=78 + i=21029 + + + + Active + + i=68 + i=78 + i=21050 + + + + Classification + + i=68 + i=78 + i=21050 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21050 + + + 0 + + + + StateDisabledByMethod + + i=21056 + i=21057 + i=21058 + i=19725 + i=78 + i=21029 + + + + Active + + i=68 + i=78 + i=21055 + + + + Classification + + i=68 + i=78 + i=21055 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21055 + + + 0 + + + + ReceivedNetworkMessages + + i=21062 + i=21063 + i=21064 + i=19725 + i=78 + i=21029 + + + + Active + + i=68 + i=78 + i=21061 + + + + Classification + + i=68 + i=78 + i=21061 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21061 + + + 0 + + + + LiveValues + + i=21076 + i=21078 + i=58 + i=78 + i=21015 + + + + ConfiguredDataSetReaders + + i=21077 + i=63 + i=78 + i=21060 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21076 + + + 0 + + + + OperationalDataSetReaders + + i=21079 + i=63 + i=78 + i=21060 + + + + DiagnosticsLevel + + i=68 + i=78 + i=21078 + + + 0 + + + + TransportSettings + + i=21090 + i=80 + i=17999 + + + + MessageSettings + + i=21091 + i=80 + i=17999 + + + + AddDataSetReader + + i=21083 + i=21084 + i=80 + i=17999 + + + + InputArguments + + i=68 + i=78 + i=21082 + + + + + + i=297 + + + + Configuration + + i=15623 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=21082 + + + + + + i=297 + + + + DataSetReaderNodeId + + i=17 + + -1 + + + + + + + + + RemoveDataSetReader + + i=21086 + i=80 + i=17999 + + + + InputArguments + + i=68 + i=78 + i=21085 + + + + + + i=297 + + + + DataSetReaderNodeId + + i=17 + + -1 + + + + + + + + + HasDataSetReader + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.12 + + i=47 + + IsReaderInGroup + + + HasReaderGroup + + i=47 + + IsReaderGroupOf + + + ReaderGroupTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.13 + + i=58 + + + + ReaderGroupMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.6/#9.1.6.14 + + i=58 + + + + DataSetWriterType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.7/#9.1.7.2 + + i=21092 + i=21093 + i=21094 + i=17493 + i=15303 + i=21095 + i=15299 + i=19550 + i=58 + + + + DataSetWriterId + + i=68 + i=78 + i=15298 + + + + DataSetFieldContentMask + + i=68 + i=78 + i=15298 + + + + KeyFrameCount + + i=68 + i=80 + i=15298 + + + + DataSetWriterProperties + + i=68 + i=78 + i=15298 + + + + TransportSettings + + i=15305 + i=80 + i=15298 + + + + MessageSettings + + i=21096 + i=80 + i=15298 + + + + Status + + i=15300 + i=14643 + i=78 + i=15298 + + + + State + + i=63 + i=78 + i=15299 + + + + Diagnostics + + i=19551 + i=19552 + i=19557 + i=19562 + i=19563 + i=19564 + i=19595 + i=19968 + i=80 + i=15298 + + + + DiagnosticsLevel + + i=63 + i=78 + i=19550 + + + + TotalInformation + + i=19553 + i=19554 + i=19555 + i=19725 + i=78 + i=19550 + + + + Active + + i=68 + i=78 + i=19552 + + + + Classification + + i=68 + i=78 + i=19552 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19552 + + + + TotalError + + i=19558 + i=19559 + i=19560 + i=19725 + i=78 + i=19550 + + + + Active + + i=68 + i=78 + i=19557 + + + + Classification + + i=68 + i=78 + i=19557 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19557 + + + + Reset + + i=78 + i=19550 + + + + SubError + + i=63 + i=78 + i=19550 + + + + Counters + + i=19565 + i=19570 + i=19575 + i=19580 + i=19585 + i=19590 + i=19596 + i=58 + i=78 + i=19550 + + + + StateError + + i=19566 + i=19567 + i=19568 + i=19725 + i=78 + i=19564 + + + + Active + + i=68 + i=78 + i=19565 + + + + Classification + + i=68 + i=78 + i=19565 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19565 + + + 0 + + + + StateOperationalByMethod + + i=19571 + i=19572 + i=19573 + i=19725 + i=78 + i=19564 + + + + Active + + i=68 + i=78 + i=19570 + + + + Classification + + i=68 + i=78 + i=19570 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19570 + + + 0 + + + + StateOperationalByParent + + i=19576 + i=19577 + i=19578 + i=19725 + i=78 + i=19564 + + + + Active + + i=68 + i=78 + i=19575 + + + + Classification + + i=68 + i=78 + i=19575 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19575 + + + 0 + + + + StateOperationalFromError + + i=19581 + i=19582 + i=19583 + i=19725 + i=78 + i=19564 + + + + Active + + i=68 + i=78 + i=19580 + + + + Classification + + i=68 + i=78 + i=19580 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19580 + + + 0 + + + + StatePausedByParent + + i=19586 + i=19587 + i=19588 + i=19725 + i=78 + i=19564 + + + + Active + + i=68 + i=78 + i=19585 + + + + Classification + + i=68 + i=78 + i=19585 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19585 + + + 0 + + + + StateDisabledByMethod + + i=19591 + i=19592 + i=19593 + i=19725 + i=78 + i=19564 + + + + Active + + i=68 + i=78 + i=19590 + + + + Classification + + i=68 + i=78 + i=19590 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19590 + + + 0 + + + + FailedDataSetMessages + + i=19597 + i=19598 + i=19599 + i=19725 + i=78 + i=19564 + + + + Active + + i=68 + i=78 + i=19596 + + + + Classification + + i=68 + i=78 + i=19596 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19596 + + + 0 + + + + LiveValues + + i=58 + i=78 + i=19550 + + + + DataSetWriterTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.7/#9.1.7.3 + + i=58 + + + + DataSetWriterMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.7/#9.1.7.4 + + i=58 + + + + DataSetReaderType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.8/#9.1.8.2 + + i=21097 + i=21098 + i=21099 + i=21100 + i=21101 + i=21102 + i=17563 + i=17564 + i=15932 + i=15933 + i=15934 + i=17494 + i=15311 + i=21103 + i=15307 + i=19609 + i=15316 + i=17386 + i=17389 + i=58 + + + + PublisherId + + i=68 + i=78 + i=15306 + + + + WriterGroupId + + i=68 + i=78 + i=15306 + + + + DataSetWriterId + + i=68 + i=78 + i=15306 + + + + DataSetMetaData + + i=68 + i=78 + i=15306 + + + + DataSetFieldContentMask + + i=68 + i=78 + i=15306 + + + + MessageReceiveTimeout + + i=68 + i=78 + i=15306 + + + + KeyFrameCount + + i=68 + i=78 + i=15306 + + + + HeaderLayoutUri + + i=68 + i=78 + i=15306 + + + + SecurityMode + + i=68 + i=80 + i=15306 + + + + SecurityGroupId + + i=68 + i=80 + i=15306 + + + + SecurityKeyServices + + i=68 + i=80 + i=15306 + + + + DataSetReaderProperties + + i=68 + i=78 + i=15306 + + + + TransportSettings + + i=15319 + i=80 + i=15306 + + + + MessageSettings + + i=21104 + i=80 + i=15306 + + + + Status + + i=15308 + i=14643 + i=78 + i=15306 + + + + State + + i=63 + i=78 + i=15307 + + + + Diagnostics + + i=19610 + i=19611 + i=19616 + i=19621 + i=19622 + i=19623 + i=19654 + i=20027 + i=80 + i=15306 + + + + DiagnosticsLevel + + i=63 + i=78 + i=19609 + + + + TotalInformation + + i=19612 + i=19613 + i=19614 + i=19725 + i=78 + i=19609 + + + + Active + + i=68 + i=78 + i=19611 + + + + Classification + + i=68 + i=78 + i=19611 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19611 + + + + TotalError + + i=19617 + i=19618 + i=19619 + i=19725 + i=78 + i=19609 + + + + Active + + i=68 + i=78 + i=19616 + + + + Classification + + i=68 + i=78 + i=19616 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19616 + + + + Reset + + i=78 + i=19609 + + + + SubError + + i=63 + i=78 + i=19609 + + + + Counters + + i=19624 + i=19629 + i=19634 + i=19639 + i=19644 + i=19649 + i=19655 + i=58 + i=78 + i=19609 + + + + StateError + + i=19625 + i=19626 + i=19627 + i=19725 + i=78 + i=19623 + + + + Active + + i=68 + i=78 + i=19624 + + + + Classification + + i=68 + i=78 + i=19624 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19624 + + + 0 + + + + StateOperationalByMethod + + i=19630 + i=19631 + i=19632 + i=19725 + i=78 + i=19623 + + + + Active + + i=68 + i=78 + i=19629 + + + + Classification + + i=68 + i=78 + i=19629 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19629 + + + 0 + + + + StateOperationalByParent + + i=19635 + i=19636 + i=19637 + i=19725 + i=78 + i=19623 + + + + Active + + i=68 + i=78 + i=19634 + + + + Classification + + i=68 + i=78 + i=19634 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19634 + + + 0 + + + + StateOperationalFromError + + i=19640 + i=19641 + i=19642 + i=19725 + i=78 + i=19623 + + + + Active + + i=68 + i=78 + i=19639 + + + + Classification + + i=68 + i=78 + i=19639 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19639 + + + 0 + + + + StatePausedByParent + + i=19645 + i=19646 + i=19647 + i=19725 + i=78 + i=19623 + + + + Active + + i=68 + i=78 + i=19644 + + + + Classification + + i=68 + i=78 + i=19644 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19644 + + + 0 + + + + StateDisabledByMethod + + i=19650 + i=19651 + i=19652 + i=19725 + i=78 + i=19623 + + + + Active + + i=68 + i=78 + i=19649 + + + + Classification + + i=68 + i=78 + i=19649 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19649 + + + 0 + + + + FailedDataSetMessages + + i=19656 + i=19657 + i=19658 + i=19725 + i=78 + i=19623 + + + + Active + + i=68 + i=78 + i=19655 + + + + Classification + + i=68 + i=78 + i=19655 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19655 + + + 0 + + + + LiveValues + + i=58 + i=78 + i=19609 + + + + SubscribedDataSet + + i=15108 + i=78 + i=15306 + + + + CreateTargetVariables + + i=17387 + i=17388 + i=80 + i=15306 + + + + InputArguments + + i=68 + i=78 + i=17386 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + TargetVariablesToAdd + + i=14744 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=17386 + + + + + + i=297 + + + + AddResults + + i=19 + + 1 + + 0 + + + + + + + + + CreateDataSetMirror + + i=17390 + i=17391 + i=80 + i=15306 + + + + InputArguments + + i=68 + i=78 + i=17389 + + + + + + i=297 + + + + ParentNodeName + + i=12 + + -1 + + + + + + + i=297 + + + + RolePermissions + + i=96 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=17389 + + + + + + i=297 + + + + ParentNodeId + + i=17 + + -1 + + + + + + + + + DataSetReaderTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.8/#9.1.8.3 + + i=58 + + + + DataSetReaderMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.8/#9.1.8.4 + + i=58 + + + + SubscribedDataSetType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.9/#9.1.9.1 + + i=58 + + + + TargetVariablesType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.9/#9.1.9.2 + + i=15114 + i=15115 + i=15118 + i=15108 + + + + TargetVariables + + i=68 + i=78 + i=15111 + + + + AddTargetVariables + + i=15116 + i=15117 + i=80 + i=15111 + + + + InputArguments + + i=68 + i=78 + i=15115 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + TargetVariablesToAdd + + i=14744 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15115 + + + + + + i=297 + + + + AddResults + + i=19 + + 1 + + 0 + + + + + + + + + RemoveTargetVariables + + i=15119 + i=15120 + i=80 + i=15111 + + + + InputArguments + + i=68 + i=78 + i=15118 + + + + + + i=297 + + + + ConfigurationVersion + + i=14593 + + -1 + + + + + + + i=297 + + + + TargetsToRemove + + i=7 + + 1 + + 0 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=15118 + + + + + + i=297 + + + + RemoveResults + + i=19 + + 1 + + 0 + + + + + + + + + SubscribedDataSetMirrorType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.9/#9.1.9.5 + + i=15108 + + + + PubSubStatusType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.10/#9.1.10.1 + + i=14644 + i=14645 + i=14646 + i=58 + + + + State + + i=63 + i=78 + i=14643 + + + + Enable + + i=80 + i=14643 + + + + Disable + + i=80 + i=14643 + + + + PubSubDiagnosticsType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.2 + + i=19678 + i=19679 + i=19684 + i=19689 + i=19690 + i=19691 + i=19722 + i=58 + + + + DiagnosticsLevel + + i=63 + i=78 + i=19677 + + + + TotalInformation + + i=19680 + i=19681 + i=19682 + i=19725 + i=78 + i=19677 + + + + Active + + i=68 + i=78 + i=19679 + + + + Classification + + i=68 + i=78 + i=19679 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19679 + + + + TotalError + + i=19685 + i=19686 + i=19687 + i=19725 + i=78 + i=19677 + + + + Active + + i=68 + i=78 + i=19684 + + + + Classification + + i=68 + i=78 + i=19684 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19684 + + + + Reset + + i=78 + i=19677 + + + + SubError + + i=63 + i=78 + i=19677 + + + + Counters + + i=19692 + i=19697 + i=19702 + i=19707 + i=19712 + i=19717 + i=58 + i=78 + i=19677 + + + + StateError + + i=19693 + i=19694 + i=19695 + i=19725 + i=78 + i=19691 + + + + Active + + i=68 + i=78 + i=19692 + + + + Classification + + i=68 + i=78 + i=19692 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19692 + + + 0 + + + + StateOperationalByMethod + + i=19698 + i=19699 + i=19700 + i=19725 + i=78 + i=19691 + + + + Active + + i=68 + i=78 + i=19697 + + + + Classification + + i=68 + i=78 + i=19697 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19697 + + + 0 + + + + StateOperationalByParent + + i=19703 + i=19704 + i=19705 + i=19725 + i=78 + i=19691 + + + + Active + + i=68 + i=78 + i=19702 + + + + Classification + + i=68 + i=78 + i=19702 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19702 + + + 0 + + + + StateOperationalFromError + + i=19708 + i=19709 + i=19710 + i=19725 + i=78 + i=19691 + + + + Active + + i=68 + i=78 + i=19707 + + + + Classification + + i=68 + i=78 + i=19707 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19707 + + + 0 + + + + StatePausedByParent + + i=19713 + i=19714 + i=19715 + i=19725 + i=78 + i=19691 + + + + Active + + i=68 + i=78 + i=19712 + + + + Classification + + i=68 + i=78 + i=19712 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19712 + + + 0 + + + + StateDisabledByMethod + + i=19718 + i=19719 + i=19720 + i=19725 + i=78 + i=19691 + + + + Active + + i=68 + i=78 + i=19717 + + + + Classification + + i=68 + i=78 + i=19717 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19717 + + + 0 + + + + LiveValues + + i=58 + i=78 + i=19677 + + + + DiagnosticsLevel + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.4 + + i=19724 + i=29 + + + + + + + + + + + EnumStrings + + i=68 + i=19723 + + + + + Basic + + + Advanced + + + Info + + + Log + + + Debug + + + + + + PubSubDiagnosticsCounterType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.5 + + i=19726 + i=19727 + i=19728 + i=19729 + i=63 + + + + Active + + i=68 + i=78 + i=19725 + + + + Classification + + i=68 + i=78 + i=19725 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19725 + + + + TimeFirstChange + + i=68 + i=80 + i=19725 + + + + PubSubDiagnosticsCounterClassification + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.6 + + i=19731 + i=29 + + + + + + + + EnumStrings + + i=68 + i=19730 + + + + + Information + + + Error + + + + + + PubSubDiagnosticsRootType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.7 + + i=19777 + i=19677 + + + + LiveValues + + i=19778 + i=19780 + i=19782 + i=19784 + i=58 + i=78 + i=19732 + + + + ConfiguredDataSetWriters + + i=19779 + i=63 + i=78 + i=19777 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19778 + + + 0 + + + + ConfiguredDataSetReaders + + i=19781 + i=63 + i=78 + i=19777 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19780 + + + 0 + + + + OperationalDataSetWriters + + i=19783 + i=63 + i=78 + i=19777 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19782 + + + 0 + + + + OperationalDataSetReaders + + i=19785 + i=63 + i=78 + i=19777 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19784 + + + 0 + + + + PubSubDiagnosticsConnectionType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.8 + + i=19831 + i=19677 + + + + LiveValues + + i=19832 + i=58 + i=78 + i=19786 + + + + ResolvedAddress + + i=19833 + i=63 + i=78 + i=19831 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19832 + + + 0 + + + + PubSubDiagnosticsWriterGroupType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.9 + + i=19848 + i=19879 + i=19677 + + + + Counters + + i=19880 + i=19885 + i=19890 + i=58 + i=78 + i=19834 + + + + SentNetworkMessages + + i=19881 + i=19882 + i=19883 + i=19725 + i=78 + i=19848 + + + + Active + + i=68 + i=78 + i=19880 + + + + Classification + + i=68 + i=78 + i=19880 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19880 + + + 0 + + + + FailedTransmissions + + i=19886 + i=19887 + i=19888 + i=19725 + i=78 + i=19848 + + + + Active + + i=68 + i=78 + i=19885 + + + + Classification + + i=68 + i=78 + i=19885 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19885 + + + 0 + + + + EncryptionErrors + + i=19891 + i=19892 + i=19893 + i=19725 + i=78 + i=19848 + + + + Active + + i=68 + i=78 + i=19890 + + + + Classification + + i=68 + i=78 + i=19890 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19890 + + + 1 + + + + LiveValues + + i=19895 + i=19897 + i=19899 + i=19901 + i=58 + i=78 + i=19834 + + + + ConfiguredDataSetWriters + + i=19896 + i=63 + i=78 + i=19879 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19895 + + + 0 + + + + OperationalDataSetWriters + + i=19898 + i=63 + i=78 + i=19879 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19897 + + + 0 + + + + SecurityTokenID + + i=19900 + i=63 + i=80 + i=19879 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19899 + + + 2 + + + + TimeToNextTokenID + + i=19902 + i=63 + i=80 + i=19879 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19901 + + + 2 + + + + PubSubDiagnosticsReaderGroupType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.10 + + i=19917 + i=19948 + i=19677 + + + + Counters + + i=19949 + i=19954 + i=19959 + i=58 + i=78 + i=19903 + + + + ReceivedNetworkMessages + + i=19950 + i=19951 + i=19952 + i=19725 + i=78 + i=19917 + + + + Active + + i=68 + i=78 + i=19949 + + + + Classification + + i=68 + i=78 + i=19949 + + + 0 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19949 + + + 0 + + + + ReceivedInvalidNetworkMessages + + i=19955 + i=19956 + i=19957 + i=19725 + i=80 + i=19917 + + + + Active + + i=68 + i=78 + i=19954 + + + + Classification + + i=68 + i=78 + i=19954 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19954 + + + 1 + + + + DecryptionErrors + + i=19960 + i=19961 + i=19962 + i=19725 + i=80 + i=19917 + + + + Active + + i=68 + i=78 + i=19959 + + + + Classification + + i=68 + i=78 + i=19959 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19959 + + + 1 + + + + LiveValues + + i=19964 + i=19966 + i=58 + i=78 + i=19903 + + + + ConfiguredDataSetReaders + + i=19965 + i=63 + i=78 + i=19948 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19964 + + + 0 + + + + OperationalDataSetReaders + + i=19967 + i=63 + i=78 + i=19948 + + + + DiagnosticsLevel + + i=68 + i=78 + i=19966 + + + 0 + + + + PubSubDiagnosticsDataSetWriterType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.11 + + i=19982 + i=20013 + i=19677 + + + + Counters + + i=20014 + i=58 + i=78 + i=19968 + + + + FailedDataSetMessages + + i=20015 + i=20016 + i=20017 + i=19725 + i=78 + i=19982 + + + + Active + + i=68 + i=78 + i=20014 + + + + Classification + + i=68 + i=78 + i=20014 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20014 + + + 0 + + + + LiveValues + + i=20019 + i=20021 + i=20023 + i=20025 + i=58 + i=78 + i=19968 + + + + MessageSequenceNumber + + i=20020 + i=63 + i=80 + i=20013 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20019 + + + 2 + + + + StatusCode + + i=20022 + i=63 + i=80 + i=20013 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20021 + + + 2 + + + + MajorVersion + + i=20024 + i=63 + i=80 + i=20013 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20023 + + + 2 + + + + MinorVersion + + i=20026 + i=63 + i=80 + i=20013 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20025 + + + 2 + + + + PubSubDiagnosticsDataSetReaderType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.11/#9.1.11.12 + + i=20041 + i=20072 + i=19677 + + + + Counters + + i=20073 + i=20078 + i=58 + i=78 + i=20027 + + + + FailedDataSetMessages + + i=20074 + i=20075 + i=20076 + i=19725 + i=78 + i=20041 + + + + Active + + i=68 + i=78 + i=20073 + + + + Classification + + i=68 + i=78 + i=20073 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20073 + + + 0 + + + + DecryptionErrors + + i=20079 + i=20080 + i=20081 + i=19725 + i=80 + i=20041 + + + + Active + + i=68 + i=78 + i=20078 + + + + Classification + + i=68 + i=78 + i=20078 + + + 1 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20078 + + + 1 + + + + LiveValues + + i=20083 + i=20085 + i=20087 + i=20089 + i=20091 + i=20093 + i=58 + i=78 + i=20027 + + + + MessageSequenceNumber + + i=20084 + i=63 + i=80 + i=20072 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20083 + + + 2 + + + + StatusCode + + i=20086 + i=63 + i=80 + i=20072 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20085 + + + 2 + + + + MajorVersion + + i=20088 + i=63 + i=80 + i=20072 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20087 + + + 2 + + + + MinorVersion + + i=20090 + i=63 + i=80 + i=20072 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20089 + + + 2 + + + + SecurityTokenID + + i=20092 + i=63 + i=80 + i=20072 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20091 + + + 2 + + + + TimeToNextTokenID + + i=20094 + i=63 + i=80 + i=20072 + + + + DiagnosticsLevel + + i=68 + i=78 + i=20093 + + + 2 + + + + PubSubStatusEventType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.12/#9.1.12.1 + + i=15545 + i=15546 + i=15547 + i=2130 + + + + ConnectionId + + i=68 + i=78 + i=15535 + + + + GroupId + + i=68 + i=78 + i=15535 + + + + State + + i=68 + i=78 + i=15535 + + + + PubSubTransportLimitsExceedEventType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.12/#9.1.12.2 + + i=15561 + i=15562 + i=15535 + + + + Actual + + i=68 + i=78 + i=15548 + + + + Maximum + + i=68 + i=78 + i=15548 + + + + PubSubCommunicationFailureEventType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.1.12/#9.1.12.3 + + i=15576 + i=15535 + + + + Error + + i=68 + i=78 + i=15563 + + + + UadpWriterGroupMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.2.1/#9.2.1.1 + + i=21106 + i=21107 + i=21108 + i=21109 + i=21110 + i=17998 + + + + GroupVersion + + i=68 + i=78 + i=21105 + + + + DataSetOrdering + + i=68 + i=78 + i=21105 + + + + NetworkMessageContentMask + + i=68 + i=78 + i=21105 + + + + SamplingOffset + + i=68 + i=80 + i=21105 + + + + PublishingOffset + + i=68 + i=78 + i=21105 + + + + UadpDataSetWriterMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.2.1/#9.2.1.2 + + i=21112 + i=21113 + i=21114 + i=21115 + i=21096 + + + + DataSetMessageContentMask + + i=68 + i=78 + i=21111 + + + + ConfiguredSize + + i=68 + i=78 + i=21111 + + + + NetworkMessageNumber + + i=68 + i=78 + i=21111 + + + + DataSetOffset + + i=68 + i=78 + i=21111 + + + + UadpDataSetReaderMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.2.1/#9.2.1.3 + + i=21117 + i=21119 + i=17477 + i=21120 + i=21121 + i=21122 + i=21123 + i=21124 + i=21125 + i=21104 + + + + GroupVersion + + i=68 + i=78 + i=21116 + + + + NetworkMessageNumber + + i=68 + i=78 + i=21116 + + + + DataSetOffset + + i=68 + i=78 + i=21116 + + + + DataSetClassId + + i=68 + i=78 + i=21116 + + + + NetworkMessageContentMask + + i=68 + i=78 + i=21116 + + + + DataSetMessageContentMask + + i=68 + i=78 + i=21116 + + + + PublishingInterval + + i=68 + i=78 + i=21116 + + + + ProcessingOffset + + i=68 + i=78 + i=21116 + + + + ReceiveOffset + + i=68 + i=78 + i=21116 + + + + JsonWriterGroupMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.2.2/#9.2.2.1 + + i=21127 + i=17998 + + + + NetworkMessageContentMask + + i=68 + i=78 + i=21126 + + + + JsonDataSetWriterMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.2.2/#9.2.2.2 + + i=21129 + i=21096 + + + + DataSetMessageContentMask + + i=68 + i=78 + i=21128 + + + + JsonDataSetReaderMessageType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.2.2/#9.2.2.3 + + i=21131 + i=21132 + i=21104 + + + + NetworkMessageContentMask + + i=68 + i=78 + i=21130 + + + + DataSetMessageContentMask + + i=68 + i=78 + i=21130 + + + + DatagramConnectionTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.3.1/#9.3.1.1 + + i=15072 + i=17721 + + + + DiscoveryAddress + + i=15154 + i=21145 + i=78 + i=15064 + + + + NetworkInterface + + i=17579 + i=16309 + i=78 + i=15072 + + + + Selections + + i=68 + i=78 + i=15154 + + + + DatagramWriterGroupTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.3.1/#9.3.1.2 + + i=21134 + i=21135 + i=17997 + + + + MessageRepeatCount + + i=68 + i=80 + i=21133 + + + + MessageRepeatDelay + + i=68 + i=80 + i=21133 + + + + BrokerConnectionTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.3.2/#9.3.2.1 + + i=15156 + i=15178 + i=17721 + + + + ResourceUri + + i=68 + i=78 + i=15155 + + + + AuthenticationProfileUri + + i=68 + i=78 + i=15155 + + + + BrokerWriterGroupTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.3.2/#9.3.2.2 + + i=21137 + i=15246 + i=15247 + i=15249 + i=17997 + + + + QueueName + + i=68 + i=78 + i=21136 + + + + ResourceUri + + i=68 + i=78 + i=21136 + + + + AuthenticationProfileUri + + i=68 + i=78 + i=21136 + + + + RequestedDeliveryGuarantee + + i=68 + i=78 + i=21136 + + + + BrokerDataSetWriterTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.3.2/#9.3.2.3 + + i=21139 + i=21140 + i=15250 + i=15251 + i=15330 + i=21141 + i=15305 + + + + QueueName + + i=68 + i=78 + i=21138 + + + + MetaDataQueueName + + i=68 + i=78 + i=21138 + + + + ResourceUri + + i=68 + i=78 + i=21138 + + + + AuthenticationProfileUri + + i=68 + i=78 + i=21138 + + + + RequestedDeliveryGuarantee + + i=68 + i=78 + i=21138 + + + + MetaDataUpdateTime + + i=68 + i=78 + i=21138 + + + + BrokerDataSetReaderTransportType + https://reference.opcfoundation.org/v104/Core/docs/Part14/9.3.2/#9.3.2.4 + + i=21143 + i=15334 + i=15419 + i=15420 + i=21144 + i=15319 + + + + QueueName + + i=68 + i=78 + i=21142 + + + + ResourceUri + + i=68 + i=78 + i=21142 + + + + AuthenticationProfileUri + + i=68 + i=78 + i=21142 + + + + RequestedDeliveryGuarantee + + i=68 + i=78 + i=21142 + + + + MetaDataQueueName + + i=68 + i=78 + i=21142 + + + + NetworkAddressType + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.3.1 + + i=21146 + i=58 + + + + NetworkInterface + + i=17582 + i=16309 + i=78 + i=21145 + + + + Selections + + i=68 + i=78 + i=21146 + + + + NetworkAddressUrlType + https://reference.opcfoundation.org/v104/Core/docs/Part14/A.3.2 + + i=21149 + i=21145 + + + + Url + + i=63 + i=78 + i=21147 + + + + AliasNameType + https://reference.opcfoundation.org/v104/Core/docs/Part17/6.2 + + i=58 + + + + AliasNameCategoryType + https://reference.opcfoundation.org/v104/Core/docs/Part17/6.3.1 + + i=23457 + i=23458 + i=23462 + i=61 + + + + <Alias> + + i=23455 + i=11508 + i=23456 + + + + <SubAliasNameCategories> + + i=23459 + i=23456 + i=11508 + i=23456 + + + + FindAlias + + i=23460 + i=23461 + i=78 + i=23458 + + + + InputArguments + + i=68 + i=78 + i=23459 + + + + + + i=297 + + + + AliasNameSearchPattern + + i=12 + + -1 + + + + + + + i=297 + + + + ReferenceTypeFilter + + i=17 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=23459 + + + + + + i=297 + + + + AliasNodeList + + i=23468 + + 1 + + 0 + + + + + + + + + FindAlias + https://reference.opcfoundation.org/v104/Core/docs/Part17/6.3.2 + + i=23463 + i=23464 + i=78 + i=23456 + + + + InputArguments + + i=68 + i=78 + i=23462 + + + + + + i=297 + + + + AliasNameSearchPattern + + i=12 + + -1 + + + + + + + i=297 + + + + ReferenceTypeFilter + + i=17 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=78 + i=23462 + + + + + + i=297 + + + + AliasNodeList + + i=23468 + + 1 + + 0 + + + + + + + + + AliasNameDataType + https://reference.opcfoundation.org/v104/Core/docs/Part17/7.2 + + i=22 + + + + + + + + AliasFor + https://reference.opcfoundation.org/v104/Core/docs/Part17/8.2 + + i=32 + + HasAlias + + + Aliases + https://reference.opcfoundation.org/v104/Core/docs/Part17/9.2 + + i=23476 + i=85 + i=23456 + + + + FindAlias + + i=23477 + i=23478 + i=23470 + + + + InputArguments + + i=68 + i=23476 + + + + + + i=297 + + + + AliasNameSearchPattern + + i=12 + + -1 + + + + + + + i=297 + + + + ReferenceTypeFilter + + i=17 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=23476 + + + + + + i=297 + + + + AliasNodeList + + i=23468 + + 1 + + 0 + + + + + + + + + TagVariables + https://reference.opcfoundation.org/v104/Core/docs/Part17/9.3 + + i=23485 + i=23470 + i=23456 + + + + FindAlias + + i=23486 + i=23487 + i=23479 + + + + InputArguments + + i=68 + i=23485 + + + + + + i=297 + + + + AliasNameSearchPattern + + i=12 + + -1 + + + + + + + i=297 + + + + ReferenceTypeFilter + + i=17 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=23485 + + + + + + i=297 + + + + AliasNodeList + + i=23468 + + 1 + + 0 + + + + + + + + + Topics + https://reference.opcfoundation.org/v104/Core/docs/Part17/9.4 + + i=23494 + i=23470 + i=23456 + + + + FindAlias + + i=23495 + i=23496 + i=23488 + + + + InputArguments + + i=68 + i=23494 + + + + + + i=297 + + + + AliasNameSearchPattern + + i=12 + + -1 + + + + + + + i=297 + + + + ReferenceTypeFilter + + i=17 + + -1 + + + + + + + + + OutputArguments + + i=68 + i=23494 + + + + + + i=297 + + + + AliasNodeList + + i=23468 + + 1 + + 0 + + + + + + + + + MultiStateDictionaryEntryDiscreteBaseType + https://reference.opcfoundation.org/v104/Core/docs/Part19/7.1 + + i=19082 + i=19083 + i=11238 + + + + EnumDictionaryEntries + + i=68 + i=78 + i=19077 + + + + ValueAsDictionaryEntries + + i=68 + i=80 + i=19077 + + + + MultiStateDictionaryEntryDiscreteType + https://reference.opcfoundation.org/v104/Core/docs/Part19/7.2 + + i=19090 + i=19077 + + + + ValueAsDictionaryEntries + + i=68 + i=78 + i=19084 + + + + IIetfBaseNetworkInterfaceType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.1 + + i=24149 + i=24150 + i=24151 + i=24152 + i=17602 + + + + AdminStatus + + i=63 + i=78 + i=24148 + + + + OperStatus + + i=63 + i=78 + i=24148 + + + + PhysAddress + + i=63 + i=80 + i=24148 + + + + Speed + + i=24157 + i=17497 + i=78 + i=24148 + + + + EngineeringUnits + + i=68 + i=78 + i=24152 + + + + + i=888 + + + + http://www.opcfoundation.org/UA/units/un/cefact + 4337968 + + en + bit/s + + + en + bit per second + + + + + + + + IIeeeBaseEthernetPortType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.2 + + i=24159 + i=24165 + i=24166 + i=17602 + + + + Speed + + i=24164 + i=17497 + i=78 + i=24158 + + + + EngineeringUnits + + i=68 + i=78 + i=24159 + + + + + i=888 + + + + http://www.opcfoundation.org/UA/units/un/cefact + 4534832 + + en + Mbit/s + + + en + megabit per second + + + + + + + + Duplex + + i=63 + i=78 + i=24158 + + + + MaxFrameLength + + i=63 + i=78 + i=24158 + + + + IIeeeAutoNegotiationStatusType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.3 + + i=24234 + i=17602 + + + + NegotiationStatus + + i=63 + i=78 + i=24233 + + + + IBaseEthernetCapabilitiesType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.4 + + i=24168 + i=17602 + + + + VlanTagCapable + + i=63 + i=78 + i=24167 + + + + ISrClassType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.5 + + i=24170 + i=24171 + i=24172 + i=17602 + + + + Id + + i=63 + i=78 + i=24169 + + + + Priority + + i=63 + i=78 + i=24169 + + + + Vid + + i=63 + i=78 + i=24169 + + + + IIeeeBaseTsnStreamType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.6 + + i=24174 + i=24175 + i=24176 + i=24177 + i=24178 + i=17602 + + + + StreamId + + i=63 + i=78 + i=24173 + + + + StreamName + + i=63 + i=78 + i=24173 + + + + State + + i=63 + i=78 + i=24173 + + + + AccumulatedLatency + + i=63 + i=80 + i=24173 + + + + SrClassId + + i=63 + i=80 + i=24173 + + + + IIeeeBaseTsnTrafficSpecificationType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.7 + + i=24180 + i=24181 + i=24182 + i=17602 + + + + MaxIntervalFrames + + i=63 + i=78 + i=24179 + + + + MaxFrameSize + + i=63 + i=78 + i=24179 + + + + Interval + + i=63 + i=78 + i=24179 + + + + IIeeeBaseTsnStatusStreamType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.8 + + i=24184 + i=24185 + i=24186 + i=24187 + i=17602 + + + + TalkerStatus + + i=63 + i=80 + i=24183 + + + + ListenerStatus + + i=63 + i=80 + i=24183 + + + + FailureCode + + i=63 + i=78 + i=24183 + + + + FailureSystemIdentifier + + i=63 + i=78 + i=24183 + + + + IIeeeTsnInterfaceConfigurationType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.9 + + i=24189 + i=24190 + i=17602 + + + + MacAddress + + i=63 + i=78 + i=24188 + + + + InterfaceName + + i=63 + i=80 + i=24188 + + + + IIeeeTsnInterfaceConfigurationTalkerType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.10 + + i=24194 + i=24188 + + + + TimeAwareOffset + + i=63 + i=80 + i=24191 + + + + IIeeeTsnInterfaceConfigurationListenerType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.11 + + i=24198 + i=24188 + + + + ReceiveOffset + + i=63 + i=80 + i=24195 + + + + IIeeeTsnMacAddressType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.12 + + i=24200 + i=24201 + i=17602 + + + + DestinationAddress + + i=63 + i=78 + i=24199 + + + + SourceAddress + + i=63 + i=80 + i=24199 + + + + IIeeeTsnVlanTagType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.13 + + i=24203 + i=24204 + i=17602 + + + + VlanId + + i=63 + i=78 + i=24202 + + + + PriorityCodePoint + + i=63 + i=78 + i=24202 + + + + IPriorityMappingEntryType + https://reference.opcfoundation.org/v104/Part22/docs/5.2.14 + + i=24206 + i=24207 + i=24208 + i=24209 + i=17602 + + + + MappingUri + + i=63 + i=78 + i=24205 + + + + PriorityLabel + + i=63 + i=78 + i=24205 + + + + PriorityValue_PCP + + i=63 + i=80 + i=24205 + + + + PriorityValue_DSCP + + i=63 + i=80 + i=24205 + + + + Duplex + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.1 + + i=24235 + i=29 + + + + Full duplex. + + + Half duplex. + + + Link is currently disconnected or initializing. + + + + + EnumValues + + i=68 + i=24210 + + + + + + i=7616 + + + + 0 + + Full + + + Full duplex. + + + + + + + i=7616 + + + + 1 + + Half + + + Half duplex. + + + + + + + i=7616 + + + + 2 + + Unknown + + + Link is currently disconnected or initializing. + + + + + + + + + InterfaceAdminStatus + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.2 + + i=24236 + i=29 + + + + Ready to pass packets. + + + Not ready to pass packets and not in some test mode. + + + In some test mode. + + + + + EnumValues + + i=68 + i=24212 + + + + + + i=7616 + + + + 0 + + Up + + + Ready to pass packets. + + + + + + + i=7616 + + + + 1 + + Down + + + Not ready to pass packets and not in some test mode. + + + + + + + i=7616 + + + + 2 + + Testing + + + In some test mode. + + + + + + + + + InterfaceOperStatus + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.3 + + i=24237 + i=29 + + + + Ready to pass packets. + + + The interface does not pass any packets. + + + In some test mode. No operational packets can be passed. + + + Status cannot be determined for some reason. + + + Waiting for some external event. + + + Some component (typically hardware) is missing. + + + Down due to state of lower-layer interface(s). + + + + + EnumValues + + i=68 + i=24214 + + + + + + i=7616 + + + + 0 + + Up + + + Ready to pass packets. + + + + + + + i=7616 + + + + 1 + + Down + + + The interface does not pass any packets. + + + + + + + i=7616 + + + + 2 + + Testing + + + In some test mode. No operational packets can be passed. + + + + + + + i=7616 + + + + 3 + + Unknown + + + Status cannot be determined for some reason. + + + + + + + i=7616 + + + + 4 + + Dormant + + + Waiting for some external event. + + + + + + + i=7616 + + + + 5 + + NotPresent + + + Some component (typically hardware) is missing. + + + + + + + i=7616 + + + + 6 + + LowerLayerDown + + + Down due to state of lower-layer interface(s). + + + + + + + + + NegotiationStatus + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.4 + + i=24238 + i=29 + + + + The auto-negotiation protocol is running and negotiation is currently in-progress. + + + The auto-negotiation protocol has completed successfully. + + + The auto-negotiation protocol has failed. + + + The auto-negotiation status is not currently known, this could be because it is still negotiating or the protocol cannot run (e.g., if no medium is present). + + + No auto-negotiation is executed. The auto-negotiation function is either not supported on this interface or has not been enabled. + + + + + EnumValues + + i=68 + i=24216 + + + + + + i=7616 + + + + 0 + + InProgress + + + The auto-negotiation protocol is running and negotiation is currently in-progress. + + + + + + + i=7616 + + + + 1 + + Complete + + + The auto-negotiation protocol has completed successfully. + + + + + + + i=7616 + + + + 2 + + Failed + + + The auto-negotiation protocol has failed. + + + + + + + i=7616 + + + + 3 + + Unknown + + + The auto-negotiation status is not currently known, this could be because it is still negotiating or the protocol cannot run (e.g., if no medium is present). + + + + + + + i=7616 + + + + 4 + + NoNegotiation + + + No auto-negotiation is executed. The auto-negotiation function is either not supported on this interface or has not been enabled. + + + + + + + + + TsnFailureCode + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.5 + + i=24239 + i=29 + + + + No failure + + + Insufficient bandwidth + + + Insufficient bridge resources + + + Insufficient bandwidth for Traffic Class + + + StreamID in use by another Talker + + + Stream destination address already in use + + + Stream pre-empted by higher rank + + + Reported latency has changed + + + Egress port is not AVBCapable + + + Use a different destination address + + + Out of MSRP resources + + + Out of MMRP resources + + + Cannot store destination address + + + Requested priority is not an SR Class priority + + + MaxFrameSize is too large for media + + + MaxFanInPorts limit has been reached + + + Changes in FirstValue for a registered StreamID + + + VLAN is blocked on this egress port (Registration Forbidden) + + + VLAN tagging is disabled on this egress port (untagged set) + + + SR class priority mismatch + + + Enhanced feature cannot be propagated to original Port + + + MaxLatency exceeded + + + Nearest Bridge cannot provide network identification for stream transformation + + + Stream transformation not supported + + + Stream identification type not supported for stream transformation + + + Enhanced feature cannot be supported without a CNC + + + + + EnumValues + + i=68 + i=24218 + + + + + + i=7616 + + + + 0 + + NoFailure + + + No failure + + + + + + + i=7616 + + + + 1 + + InsufficientBandwidth + + + Insufficient bandwidth + + + + + + + i=7616 + + + + 2 + + InsufficientResources + + + Insufficient bridge resources + + + + + + + i=7616 + + + + 3 + + InsufficientTrafficClassBandwidth + + + Insufficient bandwidth for Traffic Class + + + + + + + i=7616 + + + + 4 + + StreamIdInUse + + + StreamID in use by another Talker + + + + + + + i=7616 + + + + 5 + + StreamDestinationAddressInUse + + + Stream destination address already in use + + + + + + + i=7616 + + + + 6 + + StreamPreemptedByHigherRank + + + Stream pre-empted by higher rank + + + + + + + i=7616 + + + + 7 + + LatencyHasChanged + + + Reported latency has changed + + + + + + + i=7616 + + + + 8 + + EgressPortNotAvbCapable + + + Egress port is not AVBCapable + + + + + + + i=7616 + + + + 9 + + UseDifferentDestinationAddress + + + Use a different destination address + + + + + + + i=7616 + + + + 10 + + OutOfMsrpResources + + + Out of MSRP resources + + + + + + + i=7616 + + + + 11 + + OutOfMmrpResources + + + Out of MMRP resources + + + + + + + i=7616 + + + + 12 + + CannotStoreDestinationAddress + + + Cannot store destination address + + + + + + + i=7616 + + + + 13 + + PriorityIsNotAnSrcClass + + + Requested priority is not an SR Class priority + + + + + + + i=7616 + + + + 14 + + MaxFrameSizeTooLarge + + + MaxFrameSize is too large for media + + + + + + + i=7616 + + + + 15 + + MaxFanInPortsLimitReached + + + MaxFanInPorts limit has been reached + + + + + + + i=7616 + + + + 16 + + FirstValueChangedForStreamId + + + Changes in FirstValue for a registered StreamID + + + + + + + i=7616 + + + + 17 + + VlanBlockedOnEgress + + + VLAN is blocked on this egress port (Registration Forbidden) + + + + + + + i=7616 + + + + 18 + + VlanTaggingDisabledOnEgress + + + VLAN tagging is disabled on this egress port (untagged set) + + + + + + + i=7616 + + + + 19 + + SrClassPriorityMismatch + + + SR class priority mismatch + + + + + + + i=7616 + + + + 20 + + FeatureNotPropagated + + + Enhanced feature cannot be propagated to original Port + + + + + + + i=7616 + + + + 21 + + MaxLatencyExceeded + + + MaxLatency exceeded + + + + + + + i=7616 + + + + 22 + + BridgeDoesNotProvideNetworkId + + + Nearest Bridge cannot provide network identification for stream transformation + + + + + + + i=7616 + + + + 23 + + StreamTransformNotSupported + + + Stream transformation not supported + + + + + + + i=7616 + + + + 24 + + StreamIdTypeNotSupported + + + Stream identification type not supported for stream transformation + + + + + + + i=7616 + + + + 25 + + FeatureNotSupported + + + Enhanced feature cannot be supported without a CNC + + + + + + + + + TsnStreamState + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.6 + + i=24240 + i=29 + + + + The related TSN Stream is currently disabled. + + + The related TSN Stream is in the process of receiving configuration parameters from the TSN Control Layer. + + + The related TSN Stream has successfully received and applied the configuration from the TSN Control Layer. The related TSN Stream is not fully operational as long as local preconditions (e.g. synchronization state) are not valid. + + + The related TSN Stream object is configured and all other required preconditions (e.g. synchronization state) for sending / receiving data are valid. + + + The related TSN Stream object is in an error state. + + + + + EnumValues + + i=68 + i=24220 + + + + + + i=7616 + + + + 0 + + Disabled + + + The related TSN Stream is currently disabled. + + + + + + + i=7616 + + + + 1 + + Configuring + + + The related TSN Stream is in the process of receiving configuration parameters from the TSN Control Layer. + + + + + + + i=7616 + + + + 2 + + Ready + + + The related TSN Stream has successfully received and applied the configuration from the TSN Control Layer. The related TSN Stream is not fully operational as long as local preconditions (e.g. synchronization state) are not valid. + + + + + + + i=7616 + + + + 3 + + Operational + + + The related TSN Stream object is configured and all other required preconditions (e.g. synchronization state) for sending / receiving data are valid. + + + + + + + i=7616 + + + + 4 + + Error + + + The related TSN Stream object is in an error state. + + + + + + + + + TsnTalkerStatus + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.7 + + i=24241 + i=29 + + + + No Talker detected. + + + Talker ready (configured). + + + Talker failed. + + + + + EnumValues + + i=68 + i=24222 + + + + + + i=7616 + + + + 0 + + None + + + No Talker detected. + + + + + + + i=7616 + + + + 1 + + Ready + + + Talker ready (configured). + + + + + + + i=7616 + + + + 2 + + Failed + + + Talker failed. + + + + + + + + + TsnListenerStatus + https://reference.opcfoundation.org/v104/Part22/docs/5.3.1/#5.3.1.8 + + i=24242 + i=29 + + + + No Listener detected. + + + Listener ready (configured). + + + One or more Listeners ready, and one or more Listeners failed. + + + Listener failed. + + + + + EnumValues + + i=68 + i=24224 + + + + + + i=7616 + + + + 0 + + None + + + No Listener detected. + + + + + + + i=7616 + + + + 1 + + Ready + + + Listener ready (configured). + + + + + + + i=7616 + + + + 2 + + PartialFailed + + + One or more Listeners ready, and one or more Listeners failed. + + + + + + + i=7616 + + + + 3 + + Failed + + + Listener failed. + + + + + + + + + UnsignedRationalNumber + https://reference.opcfoundation.org/v104/Part22/docs/5.3.2/#5.3.2.1 + + i=22 + + + + + + + + Resources + https://reference.opcfoundation.org/v104/Part22/docs/5.4.1 + + i=2253 + i=61 + + + + Communication + https://reference.opcfoundation.org/v104/Part22/docs/5.4.2 + + i=24226 + i=61 + + + + MappingTables + https://reference.opcfoundation.org/v104/Part22/docs/5.4.3 + + i=24227 + i=61 + + + + NetworkInterfaces + https://reference.opcfoundation.org/v104/Part22/docs/5.4.4 + + i=24227 + i=61 + + + + Streams + https://reference.opcfoundation.org/v104/Part22/docs/5.4.5 + + i=24227 + i=61 + + + + TalkerStreams + https://reference.opcfoundation.org/v104/Part22/docs/5.4.6 + + i=24230 + i=61 + + + + ListenerStreams + https://reference.opcfoundation.org/v104/Part22/docs/5.4.7 + + i=24230 + i=61 + + + + IdType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.2.3 + + i=7591 + i=29 + + + + + + + + + + EnumStrings + + i=68 + i=256 + + + + + Numeric + + + String + + + Guid + + + Opaque + + + + + + NodeClass + https://reference.opcfoundation.org/v104/Core/docs/Part3/5.2.3 + + i=11878 + i=29 + + + + + + + + + + + + + + + EnumValues + + i=68 + i=257 + + + + + + i=7616 + + + + 0 + + Unspecified + + + + + + + i=7616 + + + + 1 + + Object + + + + + + + i=7616 + + + + 2 + + Variable + + + + + + + i=7616 + + + + 4 + + Method + + + + + + + i=7616 + + + + 8 + + ObjectType + + + + + + + i=7616 + + + + 16 + + VariableType + + + + + + + i=7616 + + + + 32 + + ReferenceType + + + + + + + i=7616 + + + + 64 + + DataType + + + + + + + i=7616 + + + + 128 + + View + + + + + + + + + PermissionType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.55 + + i=15030 + i=7 + + + + + + + + + + + + + + + + + + + + + + + OptionSetValues + + i=68 + i=94 + + + + + Browse + + + ReadRolePermissions + + + WriteAttribute + + + WriteRolePermissions + + + WriteHistorizing + + + Read + + + Write + + + ReadHistory + + + InsertHistory + + + ModifyHistory + + + DeleteHistory + + + ReceiveEvents + + + Call + + + AddReference + + + RemoveReference + + + DeleteNode + + + AddNode + + + + + + AccessLevelType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.57 + + i=15032 + i=3 + + + + + + + + + + + + + OptionSetValues + + i=68 + i=15031 + + + + + CurrentRead + + + CurrentWrite + + + HistoryRead + + + HistoryWrite + + + SemanticChange + + + StatusWrite + + + TimestampWrite + + + + + + AccessLevelExType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.58 + + i=15407 + i=7 + + + + + + + + + + + + + + + + + OptionSetValues + + i=68 + i=15406 + + + + + CurrentRead + + + CurrentWrite + + + HistoryRead + + + HistoryWrite + + + SemanticChange + + + StatusWrite + + + TimestampWrite + + + Reserved + + + NonatomicRead + + + NonatomicWrite + + + WriteFullArrayOnly + + + NoSubDataTypes + + + + + + EventNotifierType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.59 + + i=15034 + i=3 + + + + + + + + + OptionSetValues + + i=68 + i=15033 + + + + + SubscribeToEvents + + + Reserved + + + HistoryRead + + + HistoryWrite + + + + + + AccessRestrictionType + + i=15035 + i=5 + + + + + + + + + + OptionSetValues + + i=68 + i=95 + + + + + SigningRequired + + + EncryptionRequired + + + SessionRequired + + + ApplyRestrictionsToBrowse + + + + + + RolePermissionType + https://reference.opcfoundation.org/v104/Core/docs/Part3/5.2.9 + + i=22 + + + + + + + + DataTypeDefinition + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=22 + + + + + StructureType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.49 + + i=14528 + i=29 + + + + + + + + + + + EnumStrings + + i=68 + i=98 + + + + + Structure + + + StructureWithOptionalFields + + + Union + + + StructureWithSubtypedValues + + + UnionWithSubtypedValues + + + + + + StructureField + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.51 + + i=22 + + + + + + + + + + + + + StructureDefinition + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.49 + + i=97 + + + + + + + + + + EnumDefinition + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.50 + + i=97 + + + + + + + Node + https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.1 + + i=22 + + + + + + + + + + + + + + + + + InstanceNode + + i=258 + + + + + TypeNode + + i=258 + + + + + ObjectNode + + i=11879 + + + + + + + ObjectTypeNode + + i=11880 + + + + + + + VariableNode + + i=11879 + + + + + + + + + + + + + + + VariableTypeNode + + i=11880 + + + + + + + + + + + ReferenceTypeNode + + i=11880 + + + + + + + + + MethodNode + + i=11879 + + + + + + + + ViewNode + + i=11879 + + + + + + + + DataTypeNode + + i=11880 + + + + + + + + ReferenceNode + + i=22 + + + + + + + + + Argument + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.6 + + i=22 + + + + + + + + + + + EnumValueType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2 + + i=22 + + + + + + + + + EnumField + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.52 + + i=7594 + + + + + + + OptionSet + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.41 + + i=22 + + + + + + + + NormalizedString + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.46 + + i=12 + + + + DecimalString + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.44 + + i=12 + + + + DurationString + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.45 + + i=12 + + + + TimeString + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.47 + + i=12 + + + + DateString + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.43 + + i=12 + + + + Duration + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.13 + + i=11 + + + + UtcTime + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.38 + + i=13 + + + + Time + + i=12 + + + + Date + + i=13 + + + + LocaleId + https://reference.opcfoundation.org/v104/Core/docs/Part9/A.1.3 + + i=12 + + + + TimeZoneDataType + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.28 + + i=22 + + + + + + + + Index + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.13 + + i=7 + + + + IntegerId + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.14 + + i=7 + + + + ApplicationType + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.1 + + i=7597 + i=29 + + + + + + + + + + EnumStrings + + i=68 + i=307 + + + + + Server + + + Client + + + ClientAndServer + + + DiscoveryServer + + + + + + ApplicationDescription + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.1 + + i=22 + + + + + + + + + + + + + RequestHeader + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.28 + + i=22 + + + + + + + + + + + + + ResponseHeader + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.29 + + i=22 + + + + + + + + + + + + VersionTime + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.38 + + i=7 + + + + ServiceFault + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.30 + + i=22 + + + + + + + SessionlessInvokeRequestType + + i=22 + + + + + + + + + + + SessionlessInvokeResponseType + + i=22 + + + + + + + + + FindServersRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.2/#5.4.2.2 + + i=22 + + + + + + + + + + FindServersResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.2/#5.4.2.2 + + i=22 + + + + + + + + ServerOnNetwork + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.3/#5.4.3.2 + + i=22 + + + + + + + + + + FindServersOnNetworkRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.3/#5.4.3.2 + + i=22 + + + + + + + + + + FindServersOnNetworkResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.3/#5.4.3.2 + + i=22 + + + + + + + + + ApplicationInstanceCertificate + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.2 + + i=15 + + + + MessageSecurityMode + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.15 + + i=7595 + i=29 + + + + + + + + + + EnumStrings + + i=68 + i=302 + + + + + Invalid + + + None + + + Sign + + + SignAndEncrypt + + + + + + UserTokenType + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.37 + + i=7596 + i=29 + + + + + + + + + + EnumStrings + + i=68 + i=303 + + + + + Anonymous + + + UserName + + + Certificate + + + IssuedToken + + + + + + UserTokenPolicy + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.37 + + i=22 + + + + + + + + + + + EndpointDescription + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.10 + + i=22 + + + + + + + + + + + + + + GetEndpointsRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.4/#5.4.4.2 + + i=22 + + + + + + + + + + GetEndpointsResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.4/#5.4.4.2 + + i=22 + + + + + + + + RegisteredServer + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.27 + + i=22 + + + + + + + + + + + + + + RegisterServerRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.5/#5.4.5.2 + + i=22 + + + + + + + + RegisterServerResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.5/#5.4.5.2 + + i=22 + + + + + + + DiscoveryConfiguration + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.9.1 + + i=22 + + + + + MdnsDiscoveryConfiguration + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.9.2 + + i=12890 + + + + + + + + RegisterServer2Request + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.6/#5.4.6.2 + + i=22 + + + + + + + + + RegisterServer2Response + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.4.6/#5.4.6.2 + + i=22 + + + + + + + + + SecurityTokenRequestType + + i=7598 + i=29 + + + + + + + + EnumStrings + + i=68 + i=315 + + + + + Issue + + + Renew + + + + + + ChannelSecurityToken + + i=22 + + + + + + + + + + OpenSecureChannelRequest + + i=22 + + + + + + + + + + + + OpenSecureChannelResponse + + i=22 + + + + + + + + + + CloseSecureChannelRequest + + i=22 + + + + + + + CloseSecureChannelResponse + + i=22 + + + + + + + SignedSoftwareCertificate + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.33 + + i=22 + + + + + + + + SessionAuthenticationToken + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.31 + + i=17 + + + + SignatureData + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.32 + + i=22 + + + + + + + + CreateSessionRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.2/#5.6.2.2 + + i=22 + + + + + + + + + + + + + + + CreateSessionResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.2/#5.6.2.2 + + i=22 + + + + + + + + + + + + + + + + UserIdentityToken + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.36.1 + + i=22 + + + + + + + AnonymousIdentityToken + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.36.3 + + i=316 + + + + + UserNameIdentityToken + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.36.4 + + i=316 + + + + + + + + + X509IdentityToken + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.36.5 + + i=316 + + + + + + + IssuedIdentityToken + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.36.6 + + i=316 + + + + + + + + RsaEncryptedSecret + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.36.2/#7.36.2.4 + + i=24 + + + + EccEncryptedSecret + + i=24 + + + + ActivateSessionRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.3/#5.6.3.2 + + i=22 + + + + + + + + + + + + ActivateSessionResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.3/#5.6.3.2 + + i=22 + + + + + + + + + + CloseSessionRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.4/#5.6.4.2 + + i=22 + + + + + + + + CloseSessionResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.4/#5.6.4.2 + + i=22 + + + + + + + CancelRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.5/#5.6.5.2 + + i=22 + + + + + + + + CancelResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.5/#5.6.5.2 + + i=22 + + + + + + + + NodeAttributesMask + + i=11881 + i=29 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EnumValues + + i=68 + i=348 + + + + + + i=7616 + + + + 0 + + None + + + + + + + i=7616 + + + + 1 + + AccessLevel + + + + + + + i=7616 + + + + 2 + + ArrayDimensions + + + + + + + i=7616 + + + + 4 + + BrowseName + + + + + + + i=7616 + + + + 8 + + ContainsNoLoops + + + + + + + i=7616 + + + + 16 + + DataType + + + + + + + i=7616 + + + + 32 + + Description + + + + + + + i=7616 + + + + 64 + + DisplayName + + + + + + + i=7616 + + + + 128 + + EventNotifier + + + + + + + i=7616 + + + + 256 + + Executable + + + + + + + i=7616 + + + + 512 + + Historizing + + + + + + + i=7616 + + + + 1024 + + InverseName + + + + + + + i=7616 + + + + 2048 + + IsAbstract + + + + + + + i=7616 + + + + 4096 + + MinimumSamplingInterval + + + + + + + i=7616 + + + + 8192 + + NodeClass + + + + + + + i=7616 + + + + 16384 + + NodeId + + + + + + + i=7616 + + + + 32768 + + Symmetric + + + + + + + i=7616 + + + + 65536 + + UserAccessLevel + + + + + + + i=7616 + + + + 131072 + + UserExecutable + + + + + + + i=7616 + + + + 262144 + + UserWriteMask + + + + + + + i=7616 + + + + 524288 + + ValueRank + + + + + + + i=7616 + + + + 1048576 + + WriteMask + + + + + + + i=7616 + + + + 2097152 + + Value + + + + + + + i=7616 + + + + 4194304 + + DataTypeDefinition + + + + + + + i=7616 + + + + 8388608 + + RolePermissions + + + + + + + i=7616 + + + + 16777216 + + AccessRestrictions + + + + + + + i=7616 + + + + 33554431 + + All + + + + + + + i=7616 + + + + 26501220 + + BaseNode + + + + + + + i=7616 + + + + 26501348 + + Object + + + + + + + i=7616 + + + + 26503268 + + ObjectType + + + + + + + i=7616 + + + + 26571383 + + Variable + + + + + + + i=7616 + + + + 28600438 + + VariableType + + + + + + + i=7616 + + + + 26632548 + + Method + + + + + + + i=7616 + + + + 26537060 + + ReferenceType + + + + + + + i=7616 + + + + 26501356 + + View + + + + + + + + + NodeAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.1 + + i=22 + + + + + + + + + + + ObjectAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.2 + + i=349 + + + + + + + VariableAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.3 + + i=349 + + + + + + + + + + + + + + MethodAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.4 + + i=349 + + + + + + + + ObjectTypeAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.5 + + i=349 + + + + + + + VariableTypeAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.6 + + i=349 + + + + + + + + + + + ReferenceTypeAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.7 + + i=349 + + + + + + + + + DataTypeAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.8 + + i=349 + + + + + + + ViewAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.9 + + i=349 + + + + + + + + GenericAttributeValue + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.10 + + i=22 + + + + + + + + GenericAttributes + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.19.10 + + i=349 + + + + + + + AddNodesItem + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.2/#5.7.2.2 + + i=22 + + + + + + + + + + + + + AddNodesResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.2/#5.7.2.2 + + i=22 + + + + + + + + AddNodesRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.2/#5.7.2.2 + + i=22 + + + + + + + + AddNodesResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.2/#5.7.2.2 + + i=22 + + + + + + + + + AddReferencesItem + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.3/#5.7.3.2 + + i=22 + + + + + + + + + + + + AddReferencesRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.3/#5.7.3.2 + + i=22 + + + + + + + + AddReferencesResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.3/#5.7.3.2 + + i=22 + + + + + + + + + DeleteNodesItem + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.4/#5.7.4.2 + + i=22 + + + + + + + + DeleteNodesRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.4/#5.7.4.2 + + i=22 + + + + + + + + DeleteNodesResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.4/#5.7.4.2 + + i=22 + + + + + + + + + DeleteReferencesItem + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.5/#5.7.5.1 + + i=22 + + + + + + + + + + + DeleteReferencesRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.5/#5.7.5.1 + + i=22 + + + + + + + + DeleteReferencesResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.7.5/#5.7.5.1 + + i=22 + + + + + + + + + AttributeWriteMask + https://reference.opcfoundation.org/v104/Core/docs/Part3/8.60 + + i=15036 + i=7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OptionSetValues + + i=68 + i=347 + + + + + AccessLevel + + + ArrayDimensions + + + BrowseName + + + ContainsNoLoops + + + DataType + + + Description + + + DisplayName + + + EventNotifier + + + Executable + + + Historizing + + + InverseName + + + IsAbstract + + + MinimumSamplingInterval + + + NodeClass + + + NodeId + + + Symmetric + + + UserAccessLevel + + + UserExecutable + + + UserWriteMask + + + ValueRank + + + WriteMask + + + ValueForVariableType + + + DataTypeDefinition + + + RolePermissions + + + AccessRestrictions + + + AccessLevelEx + + + + + + BrowseDirection + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.2/#5.8.2.2 + + i=7603 + i=29 + + + + + + + + + + EnumStrings + + i=68 + i=510 + + + + + Forward + + + Inverse + + + Both + + + Invalid + + + + + + ViewDescription + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.39 + + i=22 + + + + + + + + + BrowseDescription + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.2/#5.8.2.2 + + i=22 + + + + + + + + + + + + BrowseResultMask + + i=11883 + i=29 + + + + + + + + + + + + + + + + EnumValues + + i=68 + i=517 + + + + + + i=7616 + + + + 0 + + None + + + + + + + i=7616 + + + + 1 + + ReferenceTypeId + + + + + + + i=7616 + + + + 2 + + IsForward + + + + + + + i=7616 + + + + 4 + + NodeClass + + + + + + + i=7616 + + + + 8 + + BrowseName + + + + + + + i=7616 + + + + 16 + + DisplayName + + + + + + + i=7616 + + + + 32 + + TypeDefinition + + + + + + + i=7616 + + + + 63 + + All + + + + + + + i=7616 + + + + 3 + + ReferenceTypeInfo + + + + + + + i=7616 + + + + 60 + + TargetInfo + + + + + + + + + ReferenceDescription + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.25 + + i=22 + + + + + + + + + + + + + ContinuationPoint + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.6 + + i=15 + + + + BrowseResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.3 + + i=22 + + + + + + + + + BrowseRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.2/#5.8.2.2 + + i=22 + + + + + + + + + + BrowseResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.2/#5.8.2.2 + + i=22 + + + + + + + + + BrowseNextRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.3/#5.8.3.2 + + i=22 + + + + + + + + + BrowseNextResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.3/#5.8.3.2 + + i=22 + + + + + + + + + RelativePathElement + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.26 + + i=22 + + + + + + + + + + RelativePath + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.26 + + i=22 + + + + + + + BrowsePath + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.4/#5.8.4.2 + + i=22 + + + + + + + + BrowsePathTarget + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.4/#5.8.4.2 + + i=22 + + + + + + + + BrowsePathResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.4/#5.8.4.2 + + i=22 + + + + + + + + TranslateBrowsePathsToNodeIdsRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.4/#5.8.4.2 + + i=22 + + + + + + + + TranslateBrowsePathsToNodeIdsResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.4/#5.8.4.2 + + i=22 + + + + + + + + + RegisterNodesRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.5/#5.8.5.2 + + i=22 + + + + + + + + RegisterNodesResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.5/#5.8.5.2 + + i=22 + + + + + + + + UnregisterNodesRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.6/#5.8.6.2 + + i=22 + + + + + + + + UnregisterNodesResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.8.6/#5.8.6.2 + + i=22 + + + + + + + Counter + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.5 + + i=7 + + + + NumericRange + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.22 + + i=12 + + + + EndpointConfiguration + + i=22 + + + + + + + + + + + + + + + QueryDataDescription + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.9.3/#5.9.3.1 + + i=22 + + + + + + + + + NodeTypeDescription + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.9.3/#5.9.3.1 + + i=22 + + + + + + + + + FilterOperator + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.3 + + i=7605 + i=29 + + + + + + + + + + + + + + + + + + + + + + + + EnumStrings + + i=68 + i=576 + + + + + Equals + + + IsNull + + + GreaterThan + + + LessThan + + + GreaterThanOrEqual + + + LessThanOrEqual + + + Like + + + Not + + + Between + + + InList + + + And + + + Or + + + Cast + + + InView + + + OfType + + + RelatedTo + + + BitwiseAnd + + + BitwiseOr + + + + + + QueryDataSet + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.23 + + i=22 + + + + + + + + + NodeReference + + i=22 + + + + + + + + + + ContentFilterElement + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.1 + + i=22 + + + + + + + + ContentFilter + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.1 + + i=22 + + + + + + + FilterOperand + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.4 + + i=22 + + + + + ElementOperand + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.4/#7.4.4.2 + + i=589 + + + + + + + LiteralOperand + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.4/#7.4.4.3 + + i=589 + + + + + + + AttributeOperand + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.4/#7.4.4.4 + + i=589 + + + + + + + + + + + SimpleAttributeOperand + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.4/#7.4.4.5 + + i=589 + + + + + + + + + + ContentFilterElementResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.2 + + i=22 + + + + + + + + + ContentFilterResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.4.2 + + i=22 + + + + + + + + ParsingResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.9.3/#5.9.3.1 + + i=22 + + + + + + + + + QueryFirstRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.9.3/#5.9.3.1 + + i=22 + + + + + + + + + + + + QueryFirstResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.9.3/#5.9.3.1 + + i=22 + + + + + + + + + + + + QueryNextRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.9.4/#5.9.4.2 + + i=22 + + + + + + + + + QueryNextResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.9.4/#5.9.4.2 + + i=22 + + + + + + + + + TimestampsToReturn + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.35 + + i=7606 + i=29 + + + + + + + + + + + EnumStrings + + i=68 + i=625 + + + + + Source + + + Server + + + Both + + + Neither + + + Invalid + + + + + + ReadValueId + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.24 + + i=22 + + + + + + + + + + ReadRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.2/#5.10.2.2 + + i=22 + + + + + + + + + + ReadResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.2/#5.10.2.2 + + i=22 + + + + + + + + + HistoryReadValueId + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.3/#5.10.3.2 + + i=22 + + + + + + + + + + HistoryReadResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.3/#5.10.3.2 + + i=22 + + + + + + + + + HistoryReadDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.4.1 + + i=22 + + + + + ReadEventDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.4.2/#6.4.2.1 + + i=641 + + + + + + + + + + ReadRawModifiedDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.4.3/#6.4.3.1 + + i=641 + + + + + + + + + + + ReadProcessedDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.4.4/#6.4.4.1 + + i=641 + + + + + + + + + + + ReadAtTimeDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.4.5/#6.4.5.1 + + i=641 + + + + + + + + ReadAnnotationDataDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.4.6/#6.4.6.1 + + i=641 + + + + + + + HistoryData + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.5.2 + + i=22 + + + + + + + ModificationInfo + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.5.3 + + i=22 + + + + + + + + + HistoryModifiedData + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.5.3 + + i=656 + + + + + + + HistoryEvent + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.5.4 + + i=22 + + + + + + + HistoryReadRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.3/#5.10.3.2 + + i=22 + + + + + + + + + + + HistoryReadResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.3/#5.10.3.2 + + i=22 + + + + + + + + + WriteValue + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.4/#5.10.4.2 + + i=22 + + + + + + + + + + WriteRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.4/#5.10.4.2 + + i=22 + + + + + + + + WriteResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.4/#5.10.4.2 + + i=22 + + + + + + + + + HistoryUpdateDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.8.1 + + i=22 + + + + + + + HistoryUpdateType + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.6 + + i=11884 + i=29 + + + + + + + + + + EnumValues + + i=68 + i=11234 + + + + + + i=7616 + + + + 1 + + Insert + + + + + + + i=7616 + + + + 2 + + Replace + + + + + + + i=7616 + + + + 3 + + Update + + + + + + + i=7616 + + + + 4 + + Delete + + + + + + + + + PerformUpdateType + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.7 + + i=11885 + i=29 + + + + + + + + + + EnumValues + + i=68 + i=11293 + + + + + + i=7616 + + + + 1 + + Insert + + + + + + + i=7616 + + + + 2 + + Replace + + + + + + + i=7616 + + + + 3 + + Update + + + + + + + i=7616 + + + + 4 + + Remove + + + + + + + + + UpdateDataDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.8.2/#6.8.2.1 + + i=677 + + + + + + + + UpdateStructureDataDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.8.3/#6.8.3.1 + + i=677 + + + + + + + + UpdateEventDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.8.4/#6.8.4.1 + + i=677 + + + + + + + + + DeleteRawModifiedDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.8.5/#6.8.5.1 + + i=677 + + + + + + + + + DeleteAtTimeDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.8.6/#6.8.6.1 + + i=677 + + + + + + + DeleteEventDetails + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.8.7/#6.8.7.1 + + i=677 + + + + + + + HistoryUpdateResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.5/#5.10.5.2 + + i=22 + + + + + + + + + HistoryUpdateRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.5/#5.10.5.2 + + i=22 + + + + + + + + HistoryUpdateResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.10.5/#5.10.5.2 + + i=22 + + + + + + + + + CallMethodRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.11.2/#5.11.2.2 + + i=22 + + + + + + + + + CallMethodResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.11.2/#5.11.2.2 + + i=22 + + + + + + + + + + CallRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.11.2/#5.11.2.2 + + i=22 + + + + + + + + CallResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.11.2/#5.11.2.2 + + i=22 + + + + + + + + + MonitoringMode + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.18 + + i=7608 + i=29 + + + + + + + + + EnumStrings + + i=68 + i=716 + + + + + Disabled + + + Sampling + + + Reporting + + + + + + DataChangeTrigger + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.2 + + i=7609 + i=29 + + + + + + + + + EnumStrings + + i=68 + i=717 + + + + + Status + + + StatusValue + + + StatusValueTimestamp + + + + + + DeadbandType + + i=7610 + i=29 + + + + + + + + + EnumStrings + + i=68 + i=718 + + + + + None + + + Absolute + + + Percent + + + + + + MonitoringFilter + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.1 + + i=22 + + + + + DataChangeFilter + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.2 + + i=719 + + + + + + + + + EventFilter + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.3 + + i=719 + + + + + + + + AggregateConfiguration + https://reference.opcfoundation.org/v104/Core/docs/Part11/6.4.4/#6.4.4.1 + + i=22 + + + + + + + + + + + AggregateFilter + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.4 + + i=719 + + + + + + + + + + MonitoringFilterResult + + i=22 + + + + + EventFilterResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.3 + + i=731 + + + + + + + + + AggregateFilterResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.4 + + i=731 + + + + + + + + + MonitoringParameters + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.16 + + i=22 + + + + + + + + + + + MonitoredItemCreateRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.2/#5.12.2.2 + + i=22 + + + + + + + + + MonitoredItemCreateResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.2/#5.12.2.2 + + i=22 + + + + + + + + + + + CreateMonitoredItemsRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.2/#5.12.2.2 + + i=22 + + + + + + + + + + CreateMonitoredItemsResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.2/#5.12.2.2 + + i=22 + + + + + + + + + MonitoredItemModifyRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.3/#5.12.3.2 + + i=22 + + + + + + + + MonitoredItemModifyResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.3/#5.12.3.2 + + i=22 + + + + + + + + + + ModifyMonitoredItemsRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.3/#5.12.3.2 + + i=22 + + + + + + + + + + ModifyMonitoredItemsResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.3/#5.12.3.2 + + i=22 + + + + + + + + + SetMonitoringModeRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.4/#5.12.4.2 + + i=22 + + + + + + + + + + SetMonitoringModeResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.4/#5.12.4.2 + + i=22 + + + + + + + + + SetTriggeringRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.5/#5.12.5.2 + + i=22 + + + + + + + + + + + SetTriggeringResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.5/#5.12.5.2 + + i=22 + + + + + + + + + + + DeleteMonitoredItemsRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.6/#5.12.6.2 + + i=22 + + + + + + + + + DeleteMonitoredItemsResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.12.6/#5.12.6.2 + + i=22 + + + + + + + + + CreateSubscriptionRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.2/#5.13.2.2 + + i=22 + + + + + + + + + + + + + CreateSubscriptionResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.2/#5.13.2.2 + + i=22 + + + + + + + + + + + ModifySubscriptionRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.3/#5.13.3.2 + + i=22 + + + + + + + + + + + + + ModifySubscriptionResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.3/#5.13.3.2 + + i=22 + + + + + + + + + + SetPublishingModeRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.4/#5.13.4.2 + + i=22 + + + + + + + + + SetPublishingModeResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.4/#5.13.4.2 + + i=22 + + + + + + + + + NotificationMessage + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.21 + + i=22 + + + + + + + + + NotificationData + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.20.1 + + i=22 + + + + + DataChangeNotification + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.20.2 + + i=945 + + + + + + + + MonitoredItemNotification + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.20.2 + + i=22 + + + + + + + + EventNotificationList + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.20.3 + + i=945 + + + + + + + EventFieldList + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.20.3 + + i=22 + + + + + + + + HistoryEventFieldList + + i=22 + + + + + + + StatusChangeNotification + https://reference.opcfoundation.org/v104/Core/docs/Part4/7.20.4 + + i=945 + + + + + + + + SubscriptionAcknowledgement + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.5/#5.13.5.2 + + i=22 + + + + + + + + PublishRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.5/#5.13.5.2 + + i=22 + + + + + + + + PublishResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.5/#5.13.5.2 + + i=22 + + + + + + + + + + + + + RepublishRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.6/#5.13.6.2 + + i=22 + + + + + + + + + RepublishResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.6/#5.13.6.2 + + i=22 + + + + + + + + TransferResult + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.7/#5.13.7.2 + + i=22 + + + + + + + + TransferSubscriptionsRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.7/#5.13.7.2 + + i=22 + + + + + + + + + TransferSubscriptionsResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.7/#5.13.7.2 + + i=22 + + + + + + + + + DeleteSubscriptionsRequest + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.8/#5.13.8.2 + + i=22 + + + + + + + + DeleteSubscriptionsResponse + https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.8/#5.13.8.2 + + i=22 + + + + + + + + + BuildInfo + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.4 + + i=22 + + + + + + + + + + + + RedundancySupport + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.5 + + i=7611 + i=29 + + + + + + + + + + + + EnumStrings + + i=68 + i=851 + + + + + None + + + Cold + + + Warm + + + Hot + + + Transparent + + + HotAndMirrored + + + + + + ServerState + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.6 + + i=7612 + i=29 + + + + + + + + + + + + + + EnumStrings + + i=68 + i=852 + + + + + Running + + + Failed + + + NoConfiguration + + + Suspended + + + Shutdown + + + Test + + + CommunicationFault + + + Unknown + + + + + + RedundantServerDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.7 + + i=22 + + + + + + + + + EndpointUrlListDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.20 + + i=22 + + + + + + + NetworkGroupDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.19 + + i=22 + + + + + + + + SamplingIntervalDiagnosticsDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.8 + + i=22 + + + + + + + + + + ServerDiagnosticsSummaryDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.9 + + i=22 + + + + + + + + + + + + + + + + + + ServerStatusDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.10 + + i=22 + + + + + + + + + + + + SessionDiagnosticsDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.11 + + i=22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SessionSecurityDiagnosticsDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.12 + + i=22 + + + + + + + + + + + + + + + ServiceCounterDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.13 + + i=22 + + + + + + + + StatusResult + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.14 + + i=22 + + + + + + + + SubscriptionDiagnosticsDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.15 + + i=22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ModelChangeStructureVerbMask + + i=11942 + i=29 + + + + + + + + + + + EnumValues + + i=68 + i=11941 + + + + + + i=7616 + + + + 1 + + NodeAdded + + + + + + + i=7616 + + + + 2 + + NodeDeleted + + + + + + + i=7616 + + + + 4 + + ReferenceAdded + + + + + + + i=7616 + + + + 8 + + ReferenceDeleted + + + + + + + i=7616 + + + + 16 + + DataTypeChanged + + + + + + + + + ModelChangeStructureDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.16 + + i=22 + + + + + + + + + SemanticChangeStructureDataType + https://reference.opcfoundation.org/v104/Core/docs/Part5/12.17 + + i=22 + + + + + + + + Range + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.6.2 + + i=22 + + + + + + + + EUInformation + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.6.3 + + i=22 + + + + + + + + + + AxisScaleEnumeration + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.6.7 + + i=12078 + i=29 + + + + + + + + + EnumStrings + + i=68 + i=12077 + + + + + Linear + + + Log + + + Ln + + + + + + ComplexNumberType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.6.4 + + i=22 + + + + + + + + DoubleComplexNumberType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.6.5 + + i=22 + + + + + + + + AxisInformation + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.6.6 + + i=22 + + + + + + + + + + + XVType + https://reference.opcfoundation.org/v104/Core/docs/Part8/5.6.8 + + i=22 + + + + + + + + ProgramDiagnosticDataType + + i=22 + + + + + + + + + + + + + + + + ProgramDiagnostic2DataType + + i=22 + + + + + + + + + + + + + + + + + + Annotation + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.5 + + i=22 + + + + + + + + + ExceptionDeviationFormat + https://reference.opcfoundation.org/v104/Core/docs/Part11/5.2.2 + + i=7614 + i=29 + + + + + + + + + + + EnumStrings + + i=68 + i=890 + + + + + AbsoluteValue + + + PercentOfValue + + + PercentOfRange + + + PercentOfEURange + + + Unknown + + + + + + Default Binary + + i=12756 + i=12770 + i=76 + + + + Default Binary + + i=14533 + i=14873 + i=76 + + + + Default Binary + + i=16313 + i=17538 + i=76 + + + + Default Binary + + i=17548 + i=17550 + i=76 + + + + Default Binary + + i=15528 + i=15734 + i=76 + + + + Default Binary + + i=18806 + i=18824 + i=76 + + + + Default Binary + + i=18807 + i=18827 + i=76 + + + + Default Binary + + i=18808 + i=18830 + i=76 + + + + Default Binary + + i=18809 + i=18833 + i=76 + + + + Default Binary + + i=18810 + i=18836 + i=76 + + + + Default Binary + + i=18811 + i=18839 + i=76 + + + + Default Binary + + i=18812 + i=18842 + i=76 + + + + Default Binary + + i=18813 + i=18845 + i=76 + + + + Default Binary + + i=18814 + i=18848 + i=76 + + + + Default Binary + + i=15634 + i=15738 + i=76 + + + + Default Binary + + i=23498 + i=23514 + i=76 + + + + Default Binary + + i=12554 + i=12681 + i=76 + + + + Default Binary + + i=17861 + i=76 + + + + Default Binary + + i=15534 + i=15741 + i=76 + + + + Default Binary + + i=14525 + i=14855 + i=76 + + + + Default Binary + + i=15487 + i=15599 + i=76 + + + + Default Binary + + i=15488 + i=15602 + i=76 + + + + Default Binary + + i=15005 + i=15501 + i=76 + + + + Default Binary + + i=15006 + i=15521 + i=76 + + + + Default Binary + + i=14523 + i=14849 + i=76 + + + + Default Binary + + i=14524 + i=14852 + i=76 + + + + Default Binary + + i=14593 + i=14876 + i=76 + + + + Default Binary + + i=15578 + i=15766 + i=76 + + + + Default Binary + + i=15580 + i=15769 + i=76 + + + + Default Binary + + i=14273 + i=14324 + i=76 + + + + Default Binary + + i=15581 + i=15772 + i=76 + + + + Default Binary + + i=15582 + i=15775 + i=76 + + + + Default Binary + + i=15597 + i=15778 + i=76 + + + + Default Binary + + i=15598 + i=15781 + i=76 + + + + Default Binary + + i=15605 + i=15784 + i=76 + + + + Default Binary + + i=15609 + i=15787 + i=76 + + + + Default Binary + + i=15480 + i=21156 + i=76 + + + + Default Binary + + i=15611 + i=15793 + i=76 + + + + Default Binary + + i=15616 + i=15854 + i=76 + + + + Default Binary + + i=15617 + i=15857 + i=76 + + + + Default Binary + + i=15618 + i=15860 + i=76 + + + + Default Binary + + i=15502 + i=21159 + i=76 + + + + Default Binary + + i=15510 + i=21162 + i=76 + + + + Default Binary + + i=15520 + i=21165 + i=76 + + + + Default Binary + + i=15621 + i=15866 + i=76 + + + + Default Binary + + i=15622 + i=15869 + i=76 + + + + Default Binary + + i=15623 + i=15872 + i=76 + + + + Default Binary + + i=15628 + i=15877 + i=76 + + + + Default Binary + + i=15629 + i=15880 + i=76 + + + + Default Binary + + i=15630 + i=15883 + i=76 + + + + Default Binary + + i=15631 + i=15886 + i=76 + + + + Default Binary + + i=14744 + i=21002 + i=76 + + + + Default Binary + + i=15635 + i=15889 + i=76 + + + + Default Binary + + i=15530 + i=21168 + i=76 + + + + Default Binary + + i=15645 + i=15895 + i=76 + + + + Default Binary + + i=15652 + i=15898 + i=76 + + + + Default Binary + + i=15653 + i=15919 + i=76 + + + + Default Binary + + i=15657 + i=15922 + i=76 + + + + Default Binary + + i=15664 + i=15925 + i=76 + + + + Default Binary + + i=15665 + i=15931 + i=76 + + + + Default Binary + + i=17467 + i=17469 + i=76 + + + + Default Binary + + i=15532 + i=21171 + i=76 + + + + Default Binary + + i=15007 + i=15524 + i=76 + + + + Default Binary + + i=15667 + i=15940 + i=76 + + + + Default Binary + + i=15669 + i=15943 + i=76 + + + + Default Binary + + i=15670 + i=15946 + i=76 + + + + Default Binary + + i=23468 + i=23502 + i=76 + + + + Default Binary + + i=24107 + i=24117 + i=76 + + + + Default Binary + + i=96 + i=16131 + i=76 + + + + Default Binary + + i=97 + i=18178 + i=76 + + + + Default Binary + + i=101 + i=18181 + i=76 + + + + Default Binary + + i=99 + i=18184 + i=76 + + + + Default Binary + + i=100 + i=18187 + i=76 + + + + Default Binary + + i=258 + i=76 + + + + Default Binary + + i=11879 + i=76 + + + + Default Binary + + i=11880 + i=76 + + + + Default Binary + + i=261 + i=76 + + + + Default Binary + + i=264 + i=76 + + + + Default Binary + + i=267 + i=76 + + + + Default Binary + + i=270 + i=76 + + + + Default Binary + + i=273 + i=76 + + + + Default Binary + + i=276 + i=76 + + + + Default Binary + + i=279 + i=76 + + + + Default Binary + + i=282 + i=76 + + + + Default Binary + + i=285 + i=76 + + + + Default Binary + + i=296 + i=7650 + i=76 + + + + Default Binary + + i=7594 + i=7656 + i=76 + + + + Default Binary + + i=102 + i=14870 + i=76 + + + + Default Binary + + i=12755 + i=12767 + i=76 + + + + Default Binary + + i=8912 + i=8914 + i=76 + + + + Default Binary + + i=308 + i=7665 + i=76 + + + + Default Binary + + i=389 + i=76 + + + + Default Binary + + i=392 + i=76 + + + + Default Binary + + i=395 + i=76 + + + + Default Binary + + i=15901 + i=76 + + + + Default Binary + + i=20999 + i=76 + + + + Default Binary + + i=420 + i=76 + + + + Default Binary + + i=423 + i=76 + + + + Default Binary + + i=12189 + i=12213 + i=76 + + + + Default Binary + + i=12190 + i=76 + + + + Default Binary + + i=12191 + i=76 + + + + Default Binary + + i=304 + i=7662 + i=76 + + + + Default Binary + + i=312 + i=7668 + i=76 + + + + Default Binary + + i=426 + i=76 + + + + Default Binary + + i=429 + i=76 + + + + Default Binary + + i=432 + i=7782 + i=76 + + + + Default Binary + + i=435 + i=76 + + + + Default Binary + + i=438 + i=76 + + + + Default Binary + + i=12890 + i=12902 + i=76 + + + + Default Binary + + i=12891 + i=12905 + i=76 + + + + Default Binary + + i=12193 + i=76 + + + + Default Binary + + i=12194 + i=76 + + + + Default Binary + + i=441 + i=76 + + + + Default Binary + + i=444 + i=76 + + + + Default Binary + + i=447 + i=76 + + + + Default Binary + + i=450 + i=76 + + + + Default Binary + + i=453 + i=76 + + + + Default Binary + + i=344 + i=7698 + i=76 + + + + Default Binary + + i=456 + i=76 + + + + Default Binary + + i=459 + i=76 + + + + Default Binary + + i=462 + i=76 + + + + Default Binary + + i=316 + i=7671 + i=76 + + + + Default Binary + + i=319 + i=7674 + i=76 + + + + Default Binary + + i=322 + i=7677 + i=76 + + + + Default Binary + + i=325 + i=7680 + i=76 + + + + Default Binary + + i=938 + i=7683 + i=76 + + + + Default Binary + + i=465 + i=76 + + + + Default Binary + + i=468 + i=76 + + + + Default Binary + + i=471 + i=76 + + + + Default Binary + + i=474 + i=76 + + + + Default Binary + + i=477 + i=76 + + + + Default Binary + + i=480 + i=76 + + + + Default Binary + + i=349 + i=76 + + + + Default Binary + + i=352 + i=76 + + + + Default Binary + + i=355 + i=76 + + + + Default Binary + + i=358 + i=76 + + + + Default Binary + + i=361 + i=76 + + + + Default Binary + + i=364 + i=76 + + + + Default Binary + + i=367 + i=76 + + + + Default Binary + + i=370 + i=76 + + + + Default Binary + + i=373 + i=76 + + + + Default Binary + + i=17606 + i=76 + + + + Default Binary + + i=17607 + i=76 + + + + Default Binary + + i=376 + i=7728 + i=76 + + + + Default Binary + + i=483 + i=76 + + + + Default Binary + + i=486 + i=76 + + + + Default Binary + + i=489 + i=76 + + + + Default Binary + + i=379 + i=7731 + i=76 + + + + Default Binary + + i=492 + i=76 + + + + Default Binary + + i=495 + i=76 + + + + Default Binary + + i=382 + i=7734 + i=76 + + + + Default Binary + + i=498 + i=76 + + + + Default Binary + + i=501 + i=76 + + + + Default Binary + + i=385 + i=7737 + i=76 + + + + Default Binary + + i=504 + i=76 + + + + Default Binary + + i=507 + i=76 + + + + Default Binary + + i=511 + i=76 + + + + Default Binary + + i=514 + i=76 + + + + Default Binary + + i=518 + i=76 + + + + Default Binary + + i=522 + i=76 + + + + Default Binary + + i=525 + i=76 + + + + Default Binary + + i=528 + i=76 + + + + Default Binary + + i=531 + i=76 + + + + Default Binary + + i=534 + i=76 + + + + Default Binary + + i=537 + i=12718 + i=76 + + + + Default Binary + + i=540 + i=12721 + i=76 + + + + Default Binary + + i=543 + i=76 + + + + Default Binary + + i=546 + i=76 + + + + Default Binary + + i=549 + i=76 + + + + Default Binary + + i=552 + i=76 + + + + Default Binary + + i=555 + i=76 + + + + Default Binary + + i=558 + i=76 + + + + Default Binary + + i=561 + i=76 + + + + Default Binary + + i=564 + i=76 + + + + Default Binary + + i=567 + i=76 + + + + Default Binary + + i=331 + i=7686 + i=76 + + + + Default Binary + + i=570 + i=76 + + + + Default Binary + + i=573 + i=76 + + + + Default Binary + + i=577 + i=76 + + + + Default Binary + + i=580 + i=76 + + + + Default Binary + + i=583 + i=7929 + i=76 + + + + Default Binary + + i=586 + i=7932 + i=76 + + + + Default Binary + + i=589 + i=7935 + i=76 + + + + Default Binary + + i=592 + i=7938 + i=76 + + + + Default Binary + + i=595 + i=7941 + i=76 + + + + Default Binary + + i=598 + i=7944 + i=76 + + + + Default Binary + + i=601 + i=7947 + i=76 + + + + Default Binary + + i=604 + i=76 + + + + Default Binary + + i=607 + i=76 + + + + Default Binary + + i=610 + i=76 + + + + Default Binary + + i=613 + i=76 + + + + Default Binary + + i=616 + i=76 + + + + Default Binary + + i=619 + i=76 + + + + Default Binary + + i=622 + i=76 + + + + Default Binary + + i=626 + i=76 + + + + Default Binary + + i=629 + i=76 + + + + Default Binary + + i=632 + i=76 + + + + Default Binary + + i=635 + i=76 + + + + Default Binary + + i=638 + i=76 + + + + Default Binary + + i=641 + i=76 + + + + Default Binary + + i=644 + i=76 + + + + Default Binary + + i=647 + i=76 + + + + Default Binary + + i=650 + i=76 + + + + Default Binary + + i=653 + i=76 + + + + Default Binary + + i=23497 + i=76 + + + + Default Binary + + i=656 + i=76 + + + + Default Binary + + i=11216 + i=76 + + + + Default Binary + + i=11217 + i=76 + + + + Default Binary + + i=659 + i=8004 + i=76 + + + + Default Binary + + i=662 + i=76 + + + + Default Binary + + i=665 + i=76 + + + + Default Binary + + i=668 + i=76 + + + + Default Binary + + i=671 + i=76 + + + + Default Binary + + i=674 + i=76 + + + + Default Binary + + i=677 + i=76 + + + + Default Binary + + i=680 + i=76 + + + + Default Binary + + i=11295 + i=76 + + + + Default Binary + + i=683 + i=76 + + + + Default Binary + + i=686 + i=76 + + + + Default Binary + + i=689 + i=76 + + + + Default Binary + + i=692 + i=76 + + + + Default Binary + + i=695 + i=76 + + + + Default Binary + + i=698 + i=76 + + + + Default Binary + + i=701 + i=76 + + + + Default Binary + + i=704 + i=76 + + + + Default Binary + + i=707 + i=76 + + + + Default Binary + + i=710 + i=76 + + + + Default Binary + + i=713 + i=76 + + + + Default Binary + + i=719 + i=8067 + i=76 + + + + Default Binary + + i=722 + i=76 + + + + Default Binary + + i=725 + i=8073 + i=76 + + + + Default Binary + + i=948 + i=8076 + i=76 + + + + Default Binary + + i=728 + i=76 + + + + Default Binary + + i=731 + i=76 + + + + Default Binary + + i=734 + i=76 + + + + Default Binary + + i=737 + i=76 + + + + Default Binary + + i=740 + i=76 + + + + Default Binary + + i=743 + i=76 + + + + Default Binary + + i=746 + i=76 + + + + Default Binary + + i=749 + i=76 + + + + Default Binary + + i=752 + i=76 + + + + Default Binary + + i=755 + i=76 + + + + Default Binary + + i=758 + i=76 + + + + Default Binary + + i=761 + i=76 + + + + Default Binary + + i=764 + i=76 + + + + Default Binary + + i=767 + i=76 + + + + Default Binary + + i=770 + i=76 + + + + Default Binary + + i=773 + i=76 + + + + Default Binary + + i=776 + i=76 + + + + Default Binary + + i=779 + i=76 + + + + Default Binary + + i=782 + i=76 + + + + Default Binary + + i=785 + i=76 + + + + Default Binary + + i=788 + i=76 + + + + Default Binary + + i=791 + i=76 + + + + Default Binary + + i=794 + i=76 + + + + Default Binary + + i=797 + i=76 + + + + Default Binary + + i=800 + i=76 + + + + Default Binary + + i=803 + i=76 + + + + Default Binary + + i=945 + i=76 + + + + Default Binary + + i=809 + i=76 + + + + Default Binary + + i=806 + i=76 + + + + Default Binary + + i=914 + i=76 + + + + Default Binary + + i=917 + i=76 + + + + Default Binary + + i=920 + i=8172 + i=76 + + + + Default Binary + + i=818 + i=76 + + + + Default Binary + + i=821 + i=76 + + + + Default Binary + + i=824 + i=76 + + + + Default Binary + + i=827 + i=76 + + + + Default Binary + + i=830 + i=76 + + + + Default Binary + + i=833 + i=76 + + + + Default Binary + + i=836 + i=76 + + + + Default Binary + + i=839 + i=76 + + + + Default Binary + + i=842 + i=76 + + + + Default Binary + + i=845 + i=76 + + + + Default Binary + + i=848 + i=76 + + + + Default Binary + + i=338 + i=7692 + i=76 + + + + Default Binary + + i=853 + i=8208 + i=76 + + + + Default Binary + + i=11943 + i=11959 + i=76 + + + + Default Binary + + i=11944 + i=11962 + i=76 + + + + Default Binary + + i=856 + i=8211 + i=76 + + + + Default Binary + + i=859 + i=8214 + i=76 + + + + Default Binary + + i=862 + i=8217 + i=76 + + + + Default Binary + + i=865 + i=8220 + i=76 + + + + Default Binary + + i=868 + i=8223 + i=76 + + + + Default Binary + + i=871 + i=8226 + i=76 + + + + Default Binary + + i=299 + i=7659 + i=76 + + + + Default Binary + + i=874 + i=8229 + i=76 + + + + Default Binary + + i=877 + i=8232 + i=76 + + + + Default Binary + + i=897 + i=8235 + i=76 + + + + Default Binary + + i=884 + i=8238 + i=76 + + + + Default Binary + + i=887 + i=8241 + i=76 + + + + Default Binary + + i=12171 + i=12183 + i=76 + + + + Default Binary + + i=12172 + i=12186 + i=76 + + + + Default Binary + + i=12079 + i=12091 + i=76 + + + + Default Binary + + i=12080 + i=12094 + i=76 + + + + Default Binary + + i=894 + i=8247 + i=76 + + + + Default Binary + + i=24033 + i=24035 + i=76 + + + + Default Binary + + i=891 + i=8244 + i=76 + + + + Opc.Ua + + i=7619 + i=15037 + i=12770 + i=14873 + i=17538 + i=17550 + i=15734 + i=18824 + i=18827 + i=18830 + i=18833 + i=18836 + i=18839 + i=18842 + i=18845 + i=18848 + i=15738 + i=23514 + i=12681 + i=15741 + i=14855 + i=15599 + i=15602 + i=15501 + i=15521 + i=14849 + i=14852 + i=14876 + i=15766 + i=15769 + i=14324 + i=15772 + i=15775 + i=15778 + i=15781 + i=15784 + i=15787 + i=21156 + i=15793 + i=15854 + i=15857 + i=15860 + i=21159 + i=21162 + i=21165 + i=15866 + i=15869 + i=15872 + i=15877 + i=15880 + i=15883 + i=15886 + i=21002 + i=15889 + i=21168 + i=15895 + i=15898 + i=15919 + i=15922 + i=15925 + i=15931 + i=17469 + i=21171 + i=15524 + i=15940 + i=15943 + i=15946 + i=23502 + i=24117 + i=16131 + i=18178 + i=18181 + i=18184 + i=18187 + i=7650 + i=7656 + i=14870 + i=12767 + i=8914 + i=7665 + i=12213 + i=7662 + i=7668 + i=7782 + i=12902 + i=12905 + i=7698 + i=7671 + i=7674 + i=7677 + i=7680 + i=7683 + i=7728 + i=7731 + i=7734 + i=7737 + i=12718 + i=12721 + i=7686 + i=7929 + i=7932 + i=7935 + i=7938 + i=7941 + i=7944 + i=7947 + i=8004 + i=8067 + i=8073 + i=8076 + i=8172 + i=7692 + i=8208 + i=11959 + i=11962 + i=8211 + i=8214 + i=8217 + i=8220 + i=8223 + i=8226 + i=7659 + i=8229 + i=8232 + i=8235 + i=8238 + i=8241 + i=12183 + i=12186 + i=12091 + i=12094 + i=8247 + i=24035 + i=8244 + i=93 + i=72 + + + PG9wYzpUeXBlRGljdGlvbmFyeQ0KICB4bWxuczpvcGM9Imh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9y +Zy9CaW5hcnlTY2hlbWEvIg0KICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M +U2NoZW1hLWluc3RhbmNlIg0KICB4bWxuczp1YT0iaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VB +LyINCiAgeG1sbnM6dG5zPSJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvVUEvIg0KICBEZWZhdWx0 +Qnl0ZU9yZGVyPSJMaXR0bGVFbmRpYW4iDQogIFRhcmdldE5hbWVzcGFjZT0iaHR0cDovL29wY2Zv +dW5kYXRpb24ub3JnL1VBLyINCj4NCg0KICA8b3BjOkltcG9ydCBOYW1lc3BhY2U9Imh0dHA6Ly9v +cGNmb3VuZGF0aW9uLm9yZy9CaW5hcnlTY2hlbWEvIiAvPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iWG1sRWxlbWVudCI+DQogICAgPG9wYzpEb2N1bWVudGF0aW9uPkFuIFhNTCBlbGVt +ZW50IGVuY29kZWQgYXMgYSBVVEYtOCBzdHJpbmcuPC9vcGM6RG9jdW1lbnRhdGlvbj4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ikxlbmd0aCIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlZhbHVlIiBUeXBlTmFtZT0ib3BjOkNoYXIiIExlbmd0aEZpZWxkPSJMZW5n +dGgiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUg +TmFtZT0iTm9kZUlkVHlwZSIgTGVuZ3RoSW5CaXRzPSI2Ij4NCiAgICA8b3BjOkRvY3VtZW50YXRp +b24+VGhlIHBvc3NpYmxlIGVuY29kaW5ncyBmb3IgYSBOb2RlSWQgdmFsdWUuPC9vcGM6RG9jdW1l +bnRhdGlvbj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJUd29CeXRlIiBWYWx1ZT0i +MCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJGb3VyQnl0ZSIgVmFsdWU9IjEi +IC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTnVtZXJpYyIgVmFsdWU9IjIiIC8+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU3RyaW5nIiBWYWx1ZT0iMyIgLz4NCiAg +ICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJHdWlkIiBWYWx1ZT0iNCIgLz4NCiAgICA8b3Bj +OkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJCeXRlU3RyaW5nIiBWYWx1ZT0iNSIgLz4NCiAgPC9vcGM6 +RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJUd29CeXRlTm9k +ZUlkIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IklkZW50aWZpZXIiIFR5cGVOYW1lPSJvcGM6Qnl0 +ZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBO +YW1lPSJGb3VyQnl0ZU5vZGVJZCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lc3BhY2VJbmRl +eCIgVHlwZU5hbWU9Im9wYzpCeXRlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSWRlbnRpZmll +ciIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQog +IDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iTnVtZXJpY05vZGVJZCI+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJOYW1lc3BhY2VJbmRleCIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJJZGVudGlmaWVyIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgPC9v +cGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJTdHJpbmdO +b2RlSWQiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTmFtZXNwYWNlSW5kZXgiIFR5cGVOYW1lPSJv +cGM6VUludDE2IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSWRlbnRpZmllciIgVHlwZU5hbWU9 +Im9wYzpDaGFyQXJyYXkiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iR3VpZE5vZGVJZCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1l +c3BhY2VJbmRleCIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJJZGVudGlmaWVyIiBUeXBlTmFtZT0ib3BjOkd1aWQiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQnl0ZVN0cmluZ05vZGVJZCI+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lc3BhY2VJbmRleCIgVHlwZU5hbWU9Im9wYzpVSW50MTYi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJZGVudGlmaWVyIiBUeXBlTmFtZT0ib3BjOkJ5dGVT +dHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iTm9kZUlkIj4NCiAgICA8b3BjOkRvY3VtZW50YXRpb24+QW4gaWRlbnRpZmllciBm +b3IgYSBub2RlIGluIGEgVUEgc2VydmVyIGFkZHJlc3Mgc3BhY2UuPC9vcGM6RG9jdW1lbnRhdGlv +bj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVJZFR5cGUiIFR5cGVOYW1lPSJ1YTpOb2RlSWRU +eXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzZXJ2ZWQxIiBUeXBlTmFtZT0ib3BjOkJp +dCIgTGVuZ3RoPSIyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVHdvQnl0ZSIgVHlwZU5hbWU9 +InVhOlR3b0J5dGVOb2RlSWQiIFN3aXRjaEZpZWxkPSJOb2RlSWRUeXBlIiBTd2l0Y2hWYWx1ZT0i +MCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkZvdXJCeXRlIiBUeXBlTmFtZT0idWE6Rm91ckJ5 +dGVOb2RlSWQiIFN3aXRjaEZpZWxkPSJOb2RlSWRUeXBlIiBTd2l0Y2hWYWx1ZT0iMSIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik51bWVyaWMiIFR5cGVOYW1lPSJ1YTpOdW1lcmljTm9kZUlkIiBT +d2l0Y2hGaWVsZD0iTm9kZUlkVHlwZSIgU3dpdGNoVmFsdWU9IjIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTdHJpbmciIFR5cGVOYW1lPSJ1YTpTdHJpbmdOb2RlSWQiIFN3aXRjaEZpZWxkPSJO +b2RlSWRUeXBlIiBTd2l0Y2hWYWx1ZT0iMyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikd1aWQi +IFR5cGVOYW1lPSJ1YTpHdWlkTm9kZUlkIiBTd2l0Y2hGaWVsZD0iTm9kZUlkVHlwZSIgU3dpdGNo +VmFsdWU9IjQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCeXRlU3RyaW5nIiBUeXBlTmFtZT0i +dWE6Qnl0ZVN0cmluZ05vZGVJZCIgU3dpdGNoRmllbGQ9Ik5vZGVJZFR5cGUiIFN3aXRjaFZhbHVl +PSI1IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9IkV4cGFuZGVkTm9kZUlkIj4NCiAgICA8b3BjOkRvY3VtZW50YXRpb24+QW4gaWRlbnRp +ZmllciBmb3IgYSBub2RlIGluIGEgVUEgc2VydmVyIGFkZHJlc3Mgc3BhY2UgcXVhbGlmaWVkIHdp +dGggYSBjb21wbGV0ZSBuYW1lc3BhY2Ugc3RyaW5nLjwvb3BjOkRvY3VtZW50YXRpb24+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOb2RlSWRUeXBlIiBUeXBlTmFtZT0idWE6Tm9kZUlkVHlwZSIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZlckluZGV4U3BlY2lmaWVkIiBUeXBlTmFtZT0ib3Bj +OkJpdCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWVzcGFjZVVSSVNwZWNpZmllZCIgVHlw +ZU5hbWU9Im9wYzpCaXQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUd29CeXRlIiBUeXBlTmFt +ZT0idWE6VHdvQnl0ZU5vZGVJZCIgU3dpdGNoRmllbGQ9Ik5vZGVJZFR5cGUiIFN3aXRjaFZhbHVl +PSIwIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRm91ckJ5dGUiIFR5cGVOYW1lPSJ1YTpGb3Vy +Qnl0ZU5vZGVJZCIgU3dpdGNoRmllbGQ9Ik5vZGVJZFR5cGUiIFN3aXRjaFZhbHVlPSIxIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTnVtZXJpYyIgVHlwZU5hbWU9InVhOk51bWVyaWNOb2RlSWQi +IFN3aXRjaEZpZWxkPSJOb2RlSWRUeXBlIiBTd2l0Y2hWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlN0cmluZyIgVHlwZU5hbWU9InVhOlN0cmluZ05vZGVJZCIgU3dpdGNoRmllbGQ9 +Ik5vZGVJZFR5cGUiIFN3aXRjaFZhbHVlPSIzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iR3Vp +ZCIgVHlwZU5hbWU9InVhOkd1aWROb2RlSWQiIFN3aXRjaEZpZWxkPSJOb2RlSWRUeXBlIiBTd2l0 +Y2hWYWx1ZT0iNCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkJ5dGVTdHJpbmciIFR5cGVOYW1l +PSJ1YTpCeXRlU3RyaW5nTm9kZUlkIiBTd2l0Y2hGaWVsZD0iTm9kZUlkVHlwZSIgU3dpdGNoVmFs +dWU9IjUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lc3BhY2VVUkkiIFR5cGVOYW1lPSJv +cGM6Q2hhckFycmF5IiBTd2l0Y2hGaWVsZD0iTmFtZXNwYWNlVVJJU3BlY2lmaWVkIi8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJJbmRleCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFN3aXRj +aEZpZWxkPSJTZXJ2ZXJJbmRleFNwZWNpZmllZCIvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0iU3RhdHVzQ29kZSIgTGVuZ3RoSW5CaXRzPSIzMiIg +Qnl0ZU9yZGVyU2lnbmlmaWNhbnQ9InRydWUiPg0KICAgIDxvcGM6RG9jdW1lbnRhdGlvbj5BIDMy +LWJpdCBzdGF0dXMgY29kZSB2YWx1ZS48L29wYzpEb2N1bWVudGF0aW9uPg0KICA8L29wYzpPcGFx +dWVUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRGlhZ25vc3RpY0luZm8iPg0K +ICAgIDxvcGM6RG9jdW1lbnRhdGlvbj5BIHJlY3Vyc2l2ZSBzdHJ1Y3R1cmUgY29udGFpbmluZyBk +aWFnbm9zdGljIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBhIHN0YXR1cyBjb2RlLjwvb3Bj +OkRvY3VtZW50YXRpb24+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTeW1ib2xpY0lkU3BlY2lmaWVk +IiBUeXBlTmFtZT0ib3BjOkJpdCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWVzcGFjZVVS +SVNwZWNpZmllZCIgVHlwZU5hbWU9Im9wYzpCaXQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJM +b2NhbGl6ZWRUZXh0U3BlY2lmaWVkIiBUeXBlTmFtZT0ib3BjOkJpdCIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkxvY2FsZVNwZWNpZmllZCIgVHlwZU5hbWU9Im9wYzpCaXQiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJBZGRpdGlvbmFsSW5mb1NwZWNpZmllZCIgVHlwZU5hbWU9Im9wYzpCaXQi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbm5lclN0YXR1c0NvZGVTcGVjaWZpZWQiIFR5cGVO +YW1lPSJvcGM6Qml0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSW5uZXJEaWFnbm9zdGljSW5m +b1NwZWNpZmllZCIgVHlwZU5hbWU9Im9wYzpCaXQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJS +ZXNlcnZlZDEiIFR5cGVOYW1lPSJvcGM6Qml0IiBMZW5ndGg9IjEiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTeW1ib2xpY0lkIiBUeXBlTmFtZT0ib3BjOkludDMyIiBTd2l0Y2hGaWVsZD0iU3lt +Ym9saWNJZFNwZWNpZmllZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWVzcGFjZVVSSSIg +VHlwZU5hbWU9Im9wYzpJbnQzMiIgU3dpdGNoRmllbGQ9Ik5hbWVzcGFjZVVSSVNwZWNpZmllZCIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkxvY2FsZSIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgU3dp +dGNoRmllbGQ9IkxvY2FsZVNwZWNpZmllZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkxvY2Fs +aXplZFRleHQiIFR5cGVOYW1lPSJvcGM6SW50MzIiIFN3aXRjaEZpZWxkPSJMb2NhbGl6ZWRUZXh0 +U3BlY2lmaWVkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWRkaXRpb25hbEluZm8iIFR5cGVO +YW1lPSJvcGM6Q2hhckFycmF5IiBTd2l0Y2hGaWVsZD0iQWRkaXRpb25hbEluZm9TcGVjaWZpZWQi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbm5lclN0YXR1c0NvZGUiIFR5cGVOYW1lPSJ1YTpT +dGF0dXNDb2RlIiBTd2l0Y2hGaWVsZD0iSW5uZXJTdGF0dXNDb2RlU3BlY2lmaWVkIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iSW5uZXJEaWFnbm9zdGljSW5mbyIgVHlwZU5hbWU9InVhOkRpYWdu +b3N0aWNJbmZvIiBTd2l0Y2hGaWVsZD0iSW5uZXJEaWFnbm9zdGljSW5mb1NwZWNpZmllZCIgLz4N +CiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJR +dWFsaWZpZWROYW1lIj4NCiAgICA8b3BjOkRvY3VtZW50YXRpb24+QSBzdHJpbmcgcXVhbGlmaWVk +IHdpdGggYSBuYW1lc3BhY2UgaW5kZXguPC9vcGM6RG9jdW1lbnRhdGlvbj4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik5hbWVzcGFjZUluZGV4IiBUeXBlTmFtZT0ib3BjOlVJbnQxNiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik5hbWUiIFR5cGVOYW1lPSJvcGM6Q2hhckFycmF5IiAvPg0KICA8L29w +YzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkxvY2FsaXpl +ZFRleHQiPg0KICAgIDxvcGM6RG9jdW1lbnRhdGlvbj5BIHN0cmluZyBxdWFsaWZpZWQgd2l0aCBh +IG5hbWVzcGFjZSBpbmRleC48L29wYzpEb2N1bWVudGF0aW9uPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iTG9jYWxlU3BlY2lmaWVkIiBUeXBlTmFtZT0ib3BjOkJpdCIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IlRleHRTcGVjaWZpZWQiIFR5cGVOYW1lPSJvcGM6Qml0IiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iUmVzZXJ2ZWQxIiBUeXBlTmFtZT0ib3BjOkJpdCIgTGVuZ3RoPSI2IiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iTG9jYWxlIiBUeXBlTmFtZT0ib3BjOkNoYXJBcnJheSIgU3dpdGNo +RmllbGQ9IkxvY2FsZVNwZWNpZmllZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRleHQiIFR5 +cGVOYW1lPSJvcGM6Q2hhckFycmF5IiBTd2l0Y2hGaWVsZD0iVGV4dFNwZWNpZmllZCIgLz4NCiAg +PC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEYXRh +VmFsdWUiPg0KICAgIDxvcGM6RG9jdW1lbnRhdGlvbj5BIHZhbHVlIHdpdGggYW4gYXNzb2NpYXRl +ZCB0aW1lc3RhbXAsIGFuZCBxdWFsaXR5Ljwvb3BjOkRvY3VtZW50YXRpb24+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJWYWx1ZVNwZWNpZmllZCIgVHlwZU5hbWU9Im9wYzpCaXQiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJTdGF0dXNDb2RlU3BlY2lmaWVkIiBUeXBlTmFtZT0ib3BjOkJpdCIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlNvdXJjZVRpbWVzdGFtcFNwZWNpZmllZCIgVHlwZU5hbWU9 +Im9wYzpCaXQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJUaW1lc3RhbXBTcGVjaWZp +ZWQiIFR5cGVOYW1lPSJvcGM6Qml0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU291cmNlUGlj +b3NlY29uZHNTcGVjaWZpZWQiIFR5cGVOYW1lPSJvcGM6Qml0IiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iU2VydmVyUGljb3NlY29uZHNTcGVjaWZpZWQiIFR5cGVOYW1lPSJvcGM6Qml0IiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzZXJ2ZWQxIiBUeXBlTmFtZT0ib3BjOkJpdCIgTGVuZ3Ro +PSIyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVmFsdWUiIFR5cGVOYW1lPSJ1YTpWYXJpYW50 +IiBTd2l0Y2hGaWVsZD0iVmFsdWVTcGVjaWZpZWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJT +dGF0dXNDb2RlIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgU3dpdGNoRmllbGQ9IlN0YXR1c0Nv +ZGVTcGVjaWZpZWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTb3VyY2VUaW1lc3RhbXAiIFR5 +cGVOYW1lPSJvcGM6RGF0ZVRpbWUiIFN3aXRjaEZpZWxkPSJTb3VyY2VUaW1lc3RhbXBTcGVjaWZp +ZWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTb3VyY2VQaWNvc2Vjb25kcyIgVHlwZU5hbWU9 +Im9wYzpVSW50MTYiIFN3aXRjaEZpZWxkPSJTb3VyY2VQaWNvc2Vjb25kc1NwZWNpZmllZCIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZlclRpbWVzdGFtcCIgVHlwZU5hbWU9Im9wYzpEYXRl +VGltZSIgU3dpdGNoRmllbGQ9IlNlcnZlclRpbWVzdGFtcFNwZWNpZmllZCIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlNlcnZlclBpY29zZWNvbmRzIiBUeXBlTmFtZT0ib3BjOlVJbnQxNiIgU3dp +dGNoRmllbGQ9IlNlcnZlclBpY29zZWNvbmRzU3BlY2lmaWVkIiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkV4dGVuc2lvbk9iamVjdCI+ +DQogICAgPG9wYzpEb2N1bWVudGF0aW9uPkEgc2VyaWFsaXplZCBvYmplY3QgcHJlZml4ZWQgd2l0 +aCBpdHMgZGF0YSB0eXBlIGlkZW50aWZpZXIuPC9vcGM6RG9jdW1lbnRhdGlvbj4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlR5cGVJZFNwZWNpZmllZCIgVHlwZU5hbWU9Im9wYzpCaXQiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJCaW5hcnlCb2R5IiBUeXBlTmFtZT0ib3BjOkJpdCIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IlhtbEJvZHkiIFR5cGVOYW1lPSJvcGM6Qml0IiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iUmVzZXJ2ZWQxIiBUeXBlTmFtZT0ib3BjOkJpdCIgTGVuZ3RoPSI1IiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iVHlwZUlkIiBUeXBlTmFtZT0idWE6RXhwYW5kZWROb2RlSWQi +IFN3aXRjaEZpZWxkPSJUeXBlSWRTcGVjaWZpZWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJC +b2R5TGVuZ3RoIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +Qm9keSIgVHlwZU5hbWU9Im9wYzpCeXRlIiBMZW5ndGhGaWVsZD0iQm9keUxlbmd0aCIgLz4NCiAg +PC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJWYXJp +YW50Ij4NCiAgICA8b3BjOkRvY3VtZW50YXRpb24+QSB1bmlvbiBvZiBzZXZlcmFsIHR5cGVzLjwv +b3BjOkRvY3VtZW50YXRpb24+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYXJpYW50VHlwZSIgVHlw +ZU5hbWU9Im9wYzpCaXQiIExlbmd0aD0iNiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFycmF5 +RGltZW5zaW9uc1NwZWNpZmllZCIgVHlwZU5hbWU9Im9wYzpCaXQiIExlbmd0aD0iMSIvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQXJyYXlMZW5ndGhTcGVjaWZpZWQiIFR5cGVOYW1lPSJvcGM6Qml0 +IiBMZW5ndGg9IjEiLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFycmF5TGVuZ3RoIiBUeXBlTmFt +ZT0ib3BjOkludDMyIiBTd2l0Y2hGaWVsZD0iQXJyYXlMZW5ndGhTcGVjaWZpZWQiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJCb29sZWFuIiBUeXBlTmFtZT0ib3BjOkJvb2xlYW4iIExlbmd0aEZp +ZWxkPSJBcnJheUxlbmd0aCIgU3dpdGNoRmllbGQ9IlZhcmlhbnRUeXBlIiBTd2l0Y2hWYWx1ZT0i +MSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNCeXRlIiBUeXBlTmFtZT0ib3BjOlNCeXRlIiBM +ZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgiIFN3aXRjaEZpZWxkPSJWYXJpYW50VHlwZSIgU3dpdGNo +VmFsdWU9IjIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCeXRlIiBUeXBlTmFtZT0ib3BjOkJ5 +dGUiIExlbmd0aEZpZWxkPSJBcnJheUxlbmd0aCIgU3dpdGNoRmllbGQ9IlZhcmlhbnRUeXBlIiBT +d2l0Y2hWYWx1ZT0iMyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkludDE2IiBUeXBlTmFtZT0i +b3BjOkludDE2IiBMZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgiIFN3aXRjaEZpZWxkPSJWYXJpYW50 +VHlwZSIgU3dpdGNoVmFsdWU9IjQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJVSW50MTYiIFR5 +cGVOYW1lPSJvcGM6VUludDE2IiBMZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgiIFN3aXRjaEZpZWxk +PSJWYXJpYW50VHlwZSIgU3dpdGNoVmFsdWU9IjUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJ +bnQzMiIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgTGVuZ3RoRmllbGQ9IkFycmF5TGVuZ3RoIiBTd2l0 +Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRjaFZhbHVlPSI2IiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iVUludDMyIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgTGVuZ3RoRmllbGQ9IkFycmF5TGVu +Z3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRjaFZhbHVlPSI3IiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iSW50NjQiIFR5cGVOYW1lPSJvcGM6SW50NjQiIExlbmd0aEZpZWxkPSJB +cnJheUxlbmd0aCIgU3dpdGNoRmllbGQ9IlZhcmlhbnRUeXBlIiBTd2l0Y2hWYWx1ZT0iOCIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlVJbnQ2NCIgVHlwZU5hbWU9Im9wYzpVSW50NjQiIExlbmd0 +aEZpZWxkPSJBcnJheUxlbmd0aCIgU3dpdGNoRmllbGQ9IlZhcmlhbnRUeXBlIiBTd2l0Y2hWYWx1 +ZT0iOSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkZsb2F0IiBUeXBlTmFtZT0ib3BjOkZsb2F0 +IiBMZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgiIFN3aXRjaEZpZWxkPSJWYXJpYW50VHlwZSIgU3dp +dGNoVmFsdWU9IjEwIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRG91YmxlIiBUeXBlTmFtZT0i +b3BjOkRvdWJsZSIgTGVuZ3RoRmllbGQ9IkFycmF5TGVuZ3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFu +dFR5cGUiIFN3aXRjaFZhbHVlPSIxMSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN0cmluZyIg +VHlwZU5hbWU9Im9wYzpDaGFyQXJyYXkiIExlbmd0aEZpZWxkPSJBcnJheUxlbmd0aCIgU3dpdGNo +RmllbGQ9IlZhcmlhbnRUeXBlIiBTd2l0Y2hWYWx1ZT0iMTIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJEYXRlVGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgTGVuZ3RoRmllbGQ9IkFycmF5 +TGVuZ3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRjaFZhbHVlPSIxMyIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ikd1aWQiIFR5cGVOYW1lPSJvcGM6R3VpZCIgTGVuZ3RoRmllbGQ9 +IkFycmF5TGVuZ3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRjaFZhbHVlPSIxNCIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkJ5dGVTdHJpbmciIFR5cGVOYW1lPSJvcGM6Qnl0ZVN0 +cmluZyIgTGVuZ3RoRmllbGQ9IkFycmF5TGVuZ3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUi +IFN3aXRjaFZhbHVlPSIxNSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlhtbEVsZW1lbnQiIFR5 +cGVOYW1lPSJ1YTpYbWxFbGVtZW50IiBMZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgiIFN3aXRjaEZp +ZWxkPSJWYXJpYW50VHlwZSIgU3dpdGNoVmFsdWU9IjE2IiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBMZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgi +IFN3aXRjaEZpZWxkPSJWYXJpYW50VHlwZSIgU3dpdGNoVmFsdWU9IjE3IiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iRXhwYW5kZWROb2RlSWQiIFR5cGVOYW1lPSJ1YTpFeHBhbmRlZE5vZGVJZCIg +TGVuZ3RoRmllbGQ9IkFycmF5TGVuZ3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRj +aFZhbHVlPSIxOCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN0YXR1c0NvZGUiIFR5cGVOYW1l +PSJ1YTpTdGF0dXNDb2RlIiBMZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgiIFN3aXRjaEZpZWxkPSJW +YXJpYW50VHlwZSIgU3dpdGNoVmFsdWU9IjE5IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUXVh +bGlmaWVkTmFtZSIgVHlwZU5hbWU9InVhOlF1YWxpZmllZE5hbWUiIExlbmd0aEZpZWxkPSJBcnJh +eUxlbmd0aCIgU3dpdGNoRmllbGQ9IlZhcmlhbnRUeXBlIiBTd2l0Y2hWYWx1ZT0iMjAiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJMb2NhbGl6ZWRUZXh0IiBUeXBlTmFtZT0idWE6TG9jYWxpemVk +VGV4dCIgTGVuZ3RoRmllbGQ9IkFycmF5TGVuZ3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUi +IFN3aXRjaFZhbHVlPSIyMSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkV4dGVuc2lvbk9iamVj +dCIgVHlwZU5hbWU9InVhOkV4dGVuc2lvbk9iamVjdCIgTGVuZ3RoRmllbGQ9IkFycmF5TGVuZ3Ro +IiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRjaFZhbHVlPSIyMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkRhdGFWYWx1ZSIgVHlwZU5hbWU9InVhOkRhdGFWYWx1ZSIgTGVuZ3RoRmll +bGQ9IkFycmF5TGVuZ3RoIiBTd2l0Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRjaFZhbHVlPSIy +MyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlZhcmlhbnQiIFR5cGVOYW1lPSJ1YTpWYXJpYW50 +IiBMZW5ndGhGaWVsZD0iQXJyYXlMZW5ndGgiIFN3aXRjaEZpZWxkPSJWYXJpYW50VHlwZSIgU3dp +dGNoVmFsdWU9IjI0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlhZ25vc3RpY0luZm8iIFR5 +cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9IkFycmF5TGVuZ3RoIiBTd2l0 +Y2hGaWVsZD0iVmFyaWFudFR5cGUiIFN3aXRjaFZhbHVlPSIyNSIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik5vT2ZBcnJheURpbWVuc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIFN3aXRjaEZp +ZWxkPSJBcnJheURpbWVuc2lvbnNTcGVjaWZpZWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJB +cnJheURpbWVuc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIExlbmd0aEZpZWxkPSJOb09mQXJy +YXlEaW1lbnNpb25zIiBTd2l0Y2hGaWVsZD0iQXJyYXlEaW1lbnNpb25zU3BlY2lmaWVkIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9Ik5h +bWluZ1J1bGVUeXBlIiBMZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1 +ZSBOYW1lPSJNYW5kYXRvcnkiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9Ik9wdGlvbmFsIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBO +YW1lPSJDb25zdHJhaW50IiBWYWx1ZT0iMyIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+DQog +ICAgDQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJFbnVtZXJhdGlvbiIgTGVuZ3RoSW5C +aXRzPSIzMiI+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6T3BhcXVlVHlwZSBO +YW1lPSJJbWFnZUJNUCI+DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBl +IE5hbWU9IkltYWdlR0lGIj4NCiAgPC9vcGM6T3BhcXVlVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5 +cGUgTmFtZT0iSW1hZ2VKUEciPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6T3BhcXVl +VHlwZSBOYW1lPSJJbWFnZVBORyI+DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFx +dWVUeXBlIE5hbWU9IkF1ZGlvRGF0YVR5cGUiPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxv +cGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iVW5pb24iIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmpl +Y3QiPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0i +Qml0RmllbGRNYXNrRGF0YVR5cGUiPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iS2V5VmFsdWVQYWlyIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2Jq +ZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IktleSIgVHlwZU5hbWU9InVhOlF1YWxpZmllZE5h +bWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1ZSIgVHlwZU5hbWU9InVhOlZhcmlhbnQi +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iQWRkaXRpb25hbFBhcmFtZXRlcnNUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0 +Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZQYXJhbWV0ZXJzIiBUeXBlTmFtZT0ib3BjOklu +dDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUGFyYW1ldGVycyIgVHlwZU5hbWU9InRuczpL +ZXlWYWx1ZVBhaXIiIExlbmd0aEZpZWxkPSJOb09mUGFyYW1ldGVycyIgLz4NCiAgPC9vcGM6U3Ry +dWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJFcGhlbWVyYWxLZXlU +eXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlB1YmxpY0tleSIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iU2lnbmF0dXJlIiBUeXBlTmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRW5kcG9pbnRUeXBl +IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkVu +ZHBvaW50VXJsIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlNlY3VyaXR5TW9kZSIgVHlwZU5hbWU9InRuczpNZXNzYWdlU2VjdXJpdHlNb2RlIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iU2VjdXJpdHlQb2xpY3lVcmkiIFR5cGVOYW1lPSJvcGM6U3RyaW5n +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVHJhbnNwb3J0UHJvZmlsZVVyaSIgVHlwZU5hbWU9 +Im9wYzpTdHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0 +dXJlZFR5cGUgTmFtZT0iUmF0aW9uYWxOdW1iZXIiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmpl +Y3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTnVtZXJhdG9yIiBUeXBlTmFtZT0ib3BjOkludDMy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVub21pbmF0b3IiIFR5cGVOYW1lPSJvcGM6VUlu +dDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9IlZlY3RvciIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iVGhyZWVEVmVjdG9y +IiBCYXNlVHlwZT0idG5zOlZlY3RvciI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJYIiBUeXBlTmFt +ZT0ib3BjOkRvdWJsZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlkiIFR5cGVOYW1lPSJvcGM6 +RG91YmxlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iWiIgVHlwZU5hbWU9Im9wYzpEb3VibGUi +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iQ2FydGVzaWFuQ29vcmRpbmF0ZXMiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlRo +cmVlRENhcnRlc2lhbkNvb3JkaW5hdGVzIiBCYXNlVHlwZT0idG5zOkNhcnRlc2lhbkNvb3JkaW5h +dGVzIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlgiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iWSIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJaIiBUeXBlTmFtZT0ib3BjOkRvdWJsZSIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJPcmllbnRhdGlvbiIgQmFz +ZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQog +IDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iVGhyZWVET3JpZW50YXRpb24iIEJhc2VUeXBlPSJ0 +bnM6T3JpZW50YXRpb24iPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQSIgVHlwZU5hbWU9Im9wYzpE +b3VibGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCIiBUeXBlTmFtZT0ib3BjOkRvdWJsZSIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkMiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICA8 +L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkZyYW1l +IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+ +DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJUaHJlZURGcmFtZSIgQmFzZVR5cGU9InRu +czpGcmFtZSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDYXJ0ZXNpYW5Db29yZGluYXRlcyIgVHlw +ZU5hbWU9InRuczpUaHJlZURDYXJ0ZXNpYW5Db29yZGluYXRlcyIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik9yaWVudGF0aW9uIiBUeXBlTmFtZT0idG5zOlRocmVlRE9yaWVudGF0aW9uIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9Ik9w +ZW5GaWxlTW9kZSIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iUmVhZCIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0i +V3JpdGUiIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkVyYXNl +RXhpc3RpbmciIFZhbHVlPSI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkFw +cGVuZCIgVmFsdWU9IjgiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6RW51 +bWVyYXRlZFR5cGUgTmFtZT0iSWRlbnRpdHlDcml0ZXJpYVR5cGUiIExlbmd0aEluQml0cz0iMzIi +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlVzZXJOYW1lIiBWYWx1ZT0iMSIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJUaHVtYnByaW50IiBWYWx1ZT0iMiIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJSb2xlIiBWYWx1ZT0iMyIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJHcm91cElkIiBWYWx1ZT0iNCIgLz4NCiAgICA8b3Bj +OkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBbm9ueW1vdXMiIFZhbHVlPSI1IiAvPg0KICAgIDxvcGM6 +RW51bWVyYXRlZFZhbHVlIE5hbWU9IkF1dGhlbnRpY2F0ZWRVc2VyIiBWYWx1ZT0iNiIgLz4NCiAg +ICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBcHBsaWNhdGlvbiIgVmFsdWU9IjciIC8+DQog +IDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iSWRl +bnRpdHlNYXBwaW5nUnVsZVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQ3JpdGVyaWFUeXBlIiBUeXBlTmFtZT0idG5zOklkZW50aXR5Q3Jp +dGVyaWFUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ3JpdGVyaWEiIFR5cGVOYW1lPSJv +cGM6U3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVy +ZWRUeXBlIE5hbWU9IkN1cnJlbmN5VW5pdFR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmpl +Y3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTnVtZXJpY0NvZGUiIFR5cGVOYW1lPSJvcGM6SW50 +MTYiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFeHBvbmVudCIgVHlwZU5hbWU9Im9wYzpTQnl0 +ZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFscGhhYmV0aWNDb2RlIiBUeXBlTmFtZT0ib3Bj +OlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkN1cnJlbmN5IiBUeXBlTmFtZT0idWE6 +TG9jYWxpemVkVGV4dCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpFbnVt +ZXJhdGVkVHlwZSBOYW1lPSJUcnVzdExpc3RNYXNrcyIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAg +PG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iVHJ1c3RlZENlcnRpZmljYXRlcyIgVmFsdWU9IjEiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVHJ1c3RlZENybHMiIFZhbHVlPSIyIiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Iklzc3VlckNlcnRpZmljYXRlcyIgVmFsdWU9 +IjQiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSXNzdWVyQ3JscyIgVmFsdWU9 +IjgiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iQWxsIiBWYWx1ZT0iMTUiIC8+ +DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0i +VHJ1c3RMaXN0RGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iU3BlY2lmaWVkTGlzdHMiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlRydXN0ZWRDZXJ0aWZpY2F0ZXMiIFR5cGVOYW1lPSJv +cGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUcnVzdGVkQ2VydGlmaWNhdGVzIiBU +eXBlTmFtZT0ib3BjOkJ5dGVTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mVHJ1c3RlZENlcnRpZmlj +YXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZUcnVzdGVkQ3JscyIgVHlwZU5hbWU9 +Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRydXN0ZWRDcmxzIiBUeXBlTmFt +ZT0ib3BjOkJ5dGVTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mVHJ1c3RlZENybHMiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOb09mSXNzdWVyQ2VydGlmaWNhdGVzIiBUeXBlTmFtZT0ib3BjOklu +dDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNzdWVyQ2VydGlmaWNhdGVzIiBUeXBlTmFt +ZT0ib3BjOkJ5dGVTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mSXNzdWVyQ2VydGlmaWNhdGVzIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZklzc3VlckNybHMiIFR5cGVOYW1lPSJvcGM6SW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJc3N1ZXJDcmxzIiBUeXBlTmFtZT0ib3BjOkJ5 +dGVTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mSXNzdWVyQ3JscyIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEZWNpbWFsRGF0YVR5cGUi +IEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2Nh +bGUiIFR5cGVOYW1lPSJvcGM6SW50MTYiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1ZSIg +VHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0K +ICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRhdGFUeXBlU2NoZW1hSGVhZGVyIiBCYXNlVHlw +ZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZOYW1lc3Bh +Y2VzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTmFtZXNw +YWNlcyIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mTmFtZXNwYWNlcyIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZTdHJ1Y3R1cmVEYXRhVHlwZXMiIFR5cGVOYW1l +PSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdHJ1Y3R1cmVEYXRhVHlwZXMi +IFR5cGVOYW1lPSJ0bnM6U3RydWN0dXJlRGVzY3JpcHRpb24iIExlbmd0aEZpZWxkPSJOb09mU3Ry +dWN0dXJlRGF0YVR5cGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkVudW1EYXRhVHlw +ZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbnVtRGF0 +YVR5cGVzIiBUeXBlTmFtZT0idG5zOkVudW1EZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9Ik5vT2ZF +bnVtRGF0YVR5cGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlNpbXBsZURhdGFUeXBl +cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNpbXBsZURh +dGFUeXBlcyIgVHlwZU5hbWU9InRuczpTaW1wbGVUeXBlRGVzY3JpcHRpb24iIExlbmd0aEZpZWxk +PSJOb09mU2ltcGxlRGF0YVR5cGVzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8 +b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRhdGFUeXBlRGVzY3JpcHRpb24iIEJhc2VUeXBlPSJ1 +YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVR5cGVJZCIgVHlw +ZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWUiIFR5cGVOYW1l +PSJ1YTpRdWFsaWZpZWROYW1lIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IlN0cnVjdHVyZURlc2NyaXB0aW9uIiBCYXNlVHlwZT0idG5z +OkRhdGFUeXBlRGVzY3JpcHRpb24iPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVR5cGVJZCIg +VHlwZU5hbWU9InVhOk5vZGVJZCIgU291cmNlVHlwZT0idG5zOkRhdGFUeXBlRGVzY3JpcHRpb24i +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lIiBUeXBlTmFtZT0idWE6UXVhbGlmaWVkTmFt +ZSIgU291cmNlVHlwZT0idG5zOkRhdGFUeXBlRGVzY3JpcHRpb24iIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTdHJ1Y3R1cmVEZWZpbml0aW9uIiBUeXBlTmFtZT0idG5zOlN0cnVjdHVyZURlZmlu +aXRpb24iIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iRW51bURlc2NyaXB0aW9uIiBCYXNlVHlwZT0idG5zOkRhdGFUeXBlRGVzY3JpcHRp +b24iPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVR5cGVJZCIgVHlwZU5hbWU9InVhOk5vZGVJ +ZCIgU291cmNlVHlwZT0idG5zOkRhdGFUeXBlRGVzY3JpcHRpb24iIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJOYW1lIiBUeXBlTmFtZT0idWE6UXVhbGlmaWVkTmFtZSIgU291cmNlVHlwZT0idG5z +OkRhdGFUeXBlRGVzY3JpcHRpb24iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbnVtRGVmaW5p +dGlvbiIgVHlwZU5hbWU9InRuczpFbnVtRGVmaW5pdGlvbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkJ1aWx0SW5UeXBlIiBUeXBlTmFtZT0ib3BjOkJ5dGUiIC8+DQogIDwvb3BjOlN0cnVjdHVy +ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iU2ltcGxlVHlwZURlc2NyaXB0 +aW9uIiBCYXNlVHlwZT0idG5zOkRhdGFUeXBlRGVzY3JpcHRpb24iPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iRGF0YVR5cGVJZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgU291cmNlVHlwZT0idG5zOkRh +dGFUeXBlRGVzY3JpcHRpb24iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lIiBUeXBlTmFt +ZT0idWE6UXVhbGlmaWVkTmFtZSIgU291cmNlVHlwZT0idG5zOkRhdGFUeXBlRGVzY3JpcHRpb24i +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCYXNlRGF0YVR5cGUiIFR5cGVOYW1lPSJ1YTpOb2Rl +SWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCdWlsdEluVHlwZSIgVHlwZU5hbWU9Im9wYzpC +eXRlIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9IlVBQmluYXJ5RmlsZURhdGFUeXBlIiBCYXNlVHlwZT0idG5zOkRhdGFUeXBlU2NoZW1h +SGVhZGVyIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZOYW1lc3BhY2VzIiBUeXBlTmFtZT0i +b3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTmFtZXNwYWNlcyIgVHlwZU5hbWU9 +Im9wYzpTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mTmFtZXNwYWNlcyIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik5vT2ZTdHJ1Y3R1cmVEYXRhVHlwZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdHJ1Y3R1cmVEYXRhVHlwZXMiIFR5cGVOYW1lPSJ0bnM6 +U3RydWN0dXJlRGVzY3JpcHRpb24iIExlbmd0aEZpZWxkPSJOb09mU3RydWN0dXJlRGF0YVR5cGVz +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkVudW1EYXRhVHlwZXMiIFR5cGVOYW1lPSJv +cGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbnVtRGF0YVR5cGVzIiBUeXBlTmFt +ZT0idG5zOkVudW1EZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9Ik5vT2ZFbnVtRGF0YVR5cGVzIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlNpbXBsZURhdGFUeXBlcyIgVHlwZU5hbWU9Im9w +YzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNpbXBsZURhdGFUeXBlcyIgVHlwZU5h +bWU9InRuczpTaW1wbGVUeXBlRGVzY3JpcHRpb24iIExlbmd0aEZpZWxkPSJOb09mU2ltcGxlRGF0 +YVR5cGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2NoZW1hTG9jYXRpb24iIFR5cGVOYW1l +PSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkZpbGVIZWFkZXIiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJGaWxlSGVhZGVyIiBU +eXBlTmFtZT0idG5zOktleVZhbHVlUGFpciIgTGVuZ3RoRmllbGQ9Ik5vT2ZGaWxlSGVhZGVyIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQm9keSIgVHlwZU5hbWU9InVhOlZhcmlhbnQiIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iUHVi +U3ViU3RhdGUiIExlbmd0aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9IkRpc2FibGVkIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1l +PSJQYXVzZWQiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik9w +ZXJhdGlvbmFsIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJF +cnJvciIgVmFsdWU9IjMiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iUHJlT3Bl +cmF0aW9uYWwiIFZhbHVlPSI0IiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRhdGFTZXRNZXRhRGF0YVR5cGUiIEJhc2VUeXBlPSJ0bnM6 +RGF0YVR5cGVTY2hlbWFIZWFkZXIiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZk5hbWVzcGFj +ZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lc3Bh +Y2VzIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZOYW1lc3BhY2VzIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlN0cnVjdHVyZURhdGFUeXBlcyIgVHlwZU5hbWU9 +Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN0cnVjdHVyZURhdGFUeXBlcyIg +VHlwZU5hbWU9InRuczpTdHJ1Y3R1cmVEZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9Ik5vT2ZTdHJ1 +Y3R1cmVEYXRhVHlwZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRW51bURhdGFUeXBl +cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkVudW1EYXRh +VHlwZXMiIFR5cGVOYW1lPSJ0bnM6RW51bURlc2NyaXB0aW9uIiBMZW5ndGhGaWVsZD0iTm9PZkVu +dW1EYXRhVHlwZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mU2ltcGxlRGF0YVR5cGVz +IiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2ltcGxlRGF0 +YVR5cGVzIiBUeXBlTmFtZT0idG5zOlNpbXBsZVR5cGVEZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9 +Ik5vT2ZTaW1wbGVEYXRhVHlwZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lIiBUeXBl +TmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlc2NyaXB0aW9uIiBU +eXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZG +aWVsZHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJGaWVs +ZHMiIFR5cGVOYW1lPSJ0bnM6RmllbGRNZXRhRGF0YSIgTGVuZ3RoRmllbGQ9Ik5vT2ZGaWVsZHMi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRhU2V0Q2xhc3NJZCIgVHlwZU5hbWU9Im9wYzpH +dWlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ29uZmlndXJhdGlvblZlcnNpb24iIFR5cGVO +YW1lPSJ0bnM6Q29uZmlndXJhdGlvblZlcnNpb25EYXRhVHlwZSIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJGaWVsZE1ldGFEYXRhIiBC +YXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWUi +IFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVzY3JpcHRp +b24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +RmllbGRGbGFncyIgVHlwZU5hbWU9InRuczpEYXRhU2V0RmllbGRGbGFncyIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkJ1aWx0SW5UeXBlIiBUeXBlTmFtZT0ib3BjOkJ5dGUiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJEYXRhVHlwZSIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlZhbHVlUmFuayIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZBcnJheURpbWVuc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBcnJheURpbWVuc2lvbnMiIFR5cGVOYW1lPSJvcGM6VUlu +dDMyIiBMZW5ndGhGaWVsZD0iTm9PZkFycmF5RGltZW5zaW9ucyIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik1heFN0cmluZ0xlbmd0aCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJEYXRhU2V0RmllbGRJZCIgVHlwZU5hbWU9Im9wYzpHdWlkIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iTm9PZlByb3BlcnRpZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJQcm9wZXJ0aWVzIiBUeXBlTmFtZT0idG5zOktleVZhbHVl +UGFpciIgTGVuZ3RoRmllbGQ9Ik5vT2ZQcm9wZXJ0aWVzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVk +VHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkRhdGFTZXRGaWVsZEZsYWdzIiBM +ZW5ndGhJbkJpdHM9IjE2IiBJc09wdGlvblNldD0idHJ1ZSI+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iUHJvbW90ZWRGaWVsZCIgVmFsdWU9IjEiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBl +Pg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ29uZmlndXJhdGlvblZlcnNpb25EYXRh +VHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJNYWpvclZlcnNpb24iIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iTWlub3JWZXJzaW9uIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgPC9vcGM6U3Ry +dWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJQdWJsaXNoZWREYXRh +U2V0RGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTmFtZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mRGF0YVNldEZvbGRlciIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkRhdGFTZXRGb2xkZXIiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiBMZW5ndGhG +aWVsZD0iTm9PZkRhdGFTZXRGb2xkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRhU2V0 +TWV0YURhdGEiIFR5cGVOYW1lPSJ0bnM6RGF0YVNldE1ldGFEYXRhVHlwZSIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZFeHRlbnNpb25GaWVsZHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFeHRlbnNpb25GaWVsZHMiIFR5cGVOYW1lPSJ0bnM6S2V5 +VmFsdWVQYWlyIiBMZW5ndGhGaWVsZD0iTm9PZkV4dGVuc2lvbkZpZWxkcyIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkRhdGFTZXRTb3VyY2UiIFR5cGVOYW1lPSJ1YTpFeHRlbnNpb25PYmplY3Qi +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iUHVibGlzaGVkRGF0YVNldFNvdXJjZURhdGFUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlw +ZSBOYW1lPSJQdWJsaXNoZWRWYXJpYWJsZURhdGFUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlB1Ymxpc2hlZFZhcmlhYmxlIiBUeXBlTmFt +ZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQXR0cmlidXRlSWQiIFR5cGVO +YW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2FtcGxpbmdJbnRlcnZh +bEhpbnQiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVh +ZGJhbmRUeXBlIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkRlYWRiYW5kVmFsdWUiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iSW5kZXhSYW5nZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTdWJzdGl0dXRlVmFsdWUiIFR5cGVOYW1lPSJ1YTpWYXJpYW50IiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iTm9PZk1ldGFEYXRhUHJvcGVydGllcyIgVHlwZU5hbWU9Im9wYzpJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1ldGFEYXRhUHJvcGVydGllcyIgVHlwZU5hbWU9 +InVhOlF1YWxpZmllZE5hbWUiIExlbmd0aEZpZWxkPSJOb09mTWV0YURhdGFQcm9wZXJ0aWVzIiAv +Pg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9 +IlB1Ymxpc2hlZERhdGFJdGVtc0RhdGFUeXBlIiBCYXNlVHlwZT0idG5zOlB1Ymxpc2hlZERhdGFT +ZXRTb3VyY2VEYXRhVHlwZSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUHVibGlzaGVkRGF0 +YSIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlB1Ymxpc2hl +ZERhdGEiIFR5cGVOYW1lPSJ0bnM6UHVibGlzaGVkVmFyaWFibGVEYXRhVHlwZSIgTGVuZ3RoRmll +bGQ9Ik5vT2ZQdWJsaXNoZWREYXRhIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8 +b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlB1Ymxpc2hlZEV2ZW50c0RhdGFUeXBlIiBCYXNlVHlw +ZT0idG5zOlB1Ymxpc2hlZERhdGFTZXRTb3VyY2VEYXRhVHlwZSI+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJFdmVudE5vdGlmaWVyIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTm9PZlNlbGVjdGVkRmllbGRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iU2VsZWN0ZWRGaWVsZHMiIFR5cGVOYW1lPSJ0bnM6U2ltcGxlQXR0 +cmlidXRlT3BlcmFuZCIgTGVuZ3RoRmllbGQ9Ik5vT2ZTZWxlY3RlZEZpZWxkcyIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IkZpbHRlciIgVHlwZU5hbWU9InRuczpDb250ZW50RmlsdGVyIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkRh +dGFTZXRGaWVsZENvbnRlbnRNYXNrIiBMZW5ndGhJbkJpdHM9IjMyIiBJc09wdGlvblNldD0idHJ1 +ZSI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU3RhdHVzQ29kZSIgVmFsdWU9IjEiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU291cmNlVGltZXN0YW1wIiBWYWx1ZT0iMiIg +Lz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTZXJ2ZXJUaW1lc3RhbXAiIFZhbHVl +PSI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlNvdXJjZVBpY29TZWNvbmRz +IiBWYWx1ZT0iOCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTZXJ2ZXJQaWNv +U2Vjb25kcyIgVmFsdWU9IjE2IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlJh +d0RhdGEiIFZhbHVlPSIzMiIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpT +dHJ1Y3R1cmVkVHlwZSBOYW1lPSJEYXRhU2V0V3JpdGVyRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpF +eHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTmFtZSIgVHlwZU5hbWU9Im9w +YzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmFibGVkIiBUeXBlTmFtZT0ib3Bj +OkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRhU2V0V3JpdGVySWQiIFR5cGVO +YW1lPSJvcGM6VUludDE2IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVNldEZpZWxkQ29u +dGVudE1hc2siIFR5cGVOYW1lPSJ0bnM6RGF0YVNldEZpZWxkQ29udGVudE1hc2siIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJLZXlGcmFtZUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkRhdGFTZXROYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEYXRhU2V0V3JpdGVyUHJvcGVydGllcyIgVHlw +ZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRhdGFTZXRXcml0ZXJQ +cm9wZXJ0aWVzIiBUeXBlTmFtZT0idG5zOktleVZhbHVlUGFpciIgTGVuZ3RoRmllbGQ9Ik5vT2ZE +YXRhU2V0V3JpdGVyUHJvcGVydGllcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRyYW5zcG9y +dFNldHRpbmdzIiBUeXBlTmFtZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTWVzc2FnZVNldHRpbmdzIiBUeXBlTmFtZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiAv +Pg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9 +IkRhdGFTZXRXcml0ZXJUcmFuc3BvcnREYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCI+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUg +TmFtZT0iRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lv +bk9iamVjdCI+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iUHViU3ViR3JvdXBEYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVj +dCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkVuYWJsZWQiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlY3VyaXR5TW9kZSIgVHlwZU5hbWU9InRuczpNZXNzYWdl +U2VjdXJpdHlNb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VjdXJpdHlHcm91cElkIiBU +eXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZTZWN1cml0 +eUtleVNlcnZpY2VzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iU2VjdXJpdHlLZXlTZXJ2aWNlcyIgVHlwZU5hbWU9InRuczpFbmRwb2ludERlc2NyaXB0aW9u +IiBMZW5ndGhGaWVsZD0iTm9PZlNlY3VyaXR5S2V5U2VydmljZXMiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJNYXhOZXR3b3JrTWVzc2FnZVNpemUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkdyb3VwUHJvcGVydGllcyIgVHlwZU5hbWU9Im9wYzpJ +bnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikdyb3VwUHJvcGVydGllcyIgVHlwZU5hbWU9 +InRuczpLZXlWYWx1ZVBhaXIiIExlbmd0aEZpZWxkPSJOb09mR3JvdXBQcm9wZXJ0aWVzIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ildy +aXRlckdyb3VwRGF0YVR5cGUiIEJhc2VUeXBlPSJ0bnM6UHViU3ViR3JvdXBEYXRhVHlwZSI+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgU291cmNlVHlw +ZT0idG5zOlB1YlN1Ykdyb3VwRGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmFi +bGVkIiBUeXBlTmFtZT0ib3BjOkJvb2xlYW4iIFNvdXJjZVR5cGU9InRuczpQdWJTdWJHcm91cERh +dGFUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VjdXJpdHlNb2RlIiBUeXBlTmFtZT0i +dG5zOk1lc3NhZ2VTZWN1cml0eU1vZGUiIFNvdXJjZVR5cGU9InRuczpQdWJTdWJHcm91cERhdGFU +eXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VjdXJpdHlHcm91cElkIiBUeXBlTmFtZT0i +b3BjOlN0cmluZyIgU291cmNlVHlwZT0idG5zOlB1YlN1Ykdyb3VwRGF0YVR5cGUiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOb09mU2VjdXJpdHlLZXlTZXJ2aWNlcyIgVHlwZU5hbWU9Im9wYzpJ +bnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlY3VyaXR5S2V5U2VydmljZXMiIFR5cGVO +YW1lPSJ0bnM6RW5kcG9pbnREZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9Ik5vT2ZTZWN1cml0eUtl +eVNlcnZpY2VzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTWF4TmV0d29ya01lc3NhZ2VTaXpl +IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0idG5zOlB1YlN1Ykdyb3VwRGF0YVR5 +cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mR3JvdXBQcm9wZXJ0aWVzIiBUeXBlTmFt +ZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iR3JvdXBQcm9wZXJ0aWVzIiBU +eXBlTmFtZT0idG5zOktleVZhbHVlUGFpciIgTGVuZ3RoRmllbGQ9Ik5vT2ZHcm91cFByb3BlcnRp +ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZXJHcm91cElkIiBUeXBlTmFtZT0ib3Bj +OlVJbnQxNiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlB1Ymxpc2hpbmdJbnRlcnZhbCIgVHlw +ZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJLZWVwQWxpdmVUaW1l +IiBUeXBlTmFtZT0ib3BjOkRvdWJsZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlByaW9yaXR5 +IiBUeXBlTmFtZT0ib3BjOkJ5dGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mTG9jYWxl +SWRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTG9jYWxl +SWRzIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZMb2NhbGVJZHMiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJIZWFkZXJMYXlvdXRVcmkiIFR5cGVOYW1lPSJvcGM6U3Ry +aW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVHJhbnNwb3J0U2V0dGluZ3MiIFR5cGVOYW1l +PSJ1YTpFeHRlbnNpb25PYmplY3QiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNZXNzYWdlU2V0 +dGluZ3MiIFR5cGVOYW1lPSJ1YTpFeHRlbnNpb25PYmplY3QiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mRGF0YVNldFdyaXRlcnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJEYXRhU2V0V3JpdGVycyIgVHlwZU5hbWU9InRuczpEYXRhU2V0V3JpdGVy +RGF0YVR5cGUiIExlbmd0aEZpZWxkPSJOb09mRGF0YVNldFdyaXRlcnMiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iV3JpdGVyR3JvdXBU +cmFuc3BvcnREYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogIDwvb3Bj +OlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iV3JpdGVyR3Jv +dXBNZXNzYWdlRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICA8L29w +YzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlB1YlN1YkNv +bm5lY3Rpb25EYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkVuYWJsZWQiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlB1Ymxpc2hlcklkIiBUeXBlTmFtZT0idWE6VmFyaWFudCIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlRyYW5zcG9ydFByb2ZpbGVVcmkiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWRkcmVzcyIgVHlwZU5hbWU9InVhOkV4dGVuc2lvbk9i +amVjdCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZDb25uZWN0aW9uUHJvcGVydGllcyIg +VHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNvbm5lY3Rpb25Q +cm9wZXJ0aWVzIiBUeXBlTmFtZT0idG5zOktleVZhbHVlUGFpciIgTGVuZ3RoRmllbGQ9Ik5vT2ZD +b25uZWN0aW9uUHJvcGVydGllcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRyYW5zcG9ydFNl +dHRpbmdzIiBUeXBlTmFtZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iTm9PZldyaXRlckdyb3VwcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IldyaXRlckdyb3VwcyIgVHlwZU5hbWU9InRuczpXcml0ZXJHcm91cERhdGFU +eXBlIiBMZW5ndGhGaWVsZD0iTm9PZldyaXRlckdyb3VwcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9Ik5vT2ZSZWFkZXJHcm91cHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJSZWFkZXJHcm91cHMiIFR5cGVOYW1lPSJ0bnM6UmVhZGVyR3JvdXBEYXRhVHlw +ZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZWFkZXJHcm91cHMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ29ubmVjdGlvblRyYW5zcG9ydERh +dGFUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgPC9vcGM6U3RydWN0dXJl +ZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJOZXR3b3JrQWRkcmVzc0RhdGFU +eXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +Ik5ldHdvcmtJbnRlcmZhY2UiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ik5ldHdvcmtBZGRyZXNz +VXJsRGF0YVR5cGUiIEJhc2VUeXBlPSJ0bnM6TmV0d29ya0FkZHJlc3NEYXRhVHlwZSI+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOZXR3b3JrSW50ZXJmYWNlIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIg +U291cmNlVHlwZT0idG5zOk5ldHdvcmtBZGRyZXNzRGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJVcmwiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVk +VHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlJlYWRlckdyb3VwRGF0YVR5cGUi +IEJhc2VUeXBlPSJ0bnM6UHViU3ViR3JvdXBEYXRhVHlwZSI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJOYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgU291cmNlVHlwZT0idG5zOlB1YlN1Ykdyb3Vw +RGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmFibGVkIiBUeXBlTmFtZT0ib3Bj +OkJvb2xlYW4iIFNvdXJjZVR5cGU9InRuczpQdWJTdWJHcm91cERhdGFUeXBlIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iU2VjdXJpdHlNb2RlIiBUeXBlTmFtZT0idG5zOk1lc3NhZ2VTZWN1cml0 +eU1vZGUiIFNvdXJjZVR5cGU9InRuczpQdWJTdWJHcm91cERhdGFUeXBlIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iU2VjdXJpdHlHcm91cElkIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgU291cmNl +VHlwZT0idG5zOlB1YlN1Ykdyb3VwRGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b09mU2VjdXJpdHlLZXlTZXJ2aWNlcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlNlY3VyaXR5S2V5U2VydmljZXMiIFR5cGVOYW1lPSJ0bnM6RW5kcG9pbnRE +ZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9Ik5vT2ZTZWN1cml0eUtleVNlcnZpY2VzIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iTWF4TmV0d29ya01lc3NhZ2VTaXplIiBUeXBlTmFtZT0ib3BjOlVJ +bnQzMiIgU291cmNlVHlwZT0idG5zOlB1YlN1Ykdyb3VwRGF0YVR5cGUiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJOb09mR3JvdXBQcm9wZXJ0aWVzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iR3JvdXBQcm9wZXJ0aWVzIiBUeXBlTmFtZT0idG5zOktleVZh +bHVlUGFpciIgTGVuZ3RoRmllbGQ9Ik5vT2ZHcm91cFByb3BlcnRpZXMiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJUcmFuc3BvcnRTZXR0aW5ncyIgVHlwZU5hbWU9InVhOkV4dGVuc2lvbk9iamVj +dCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1lc3NhZ2VTZXR0aW5ncyIgVHlwZU5hbWU9InVh +OkV4dGVuc2lvbk9iamVjdCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEYXRhU2V0UmVh +ZGVycyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRhdGFT +ZXRSZWFkZXJzIiBUeXBlTmFtZT0idG5zOkRhdGFTZXRSZWFkZXJEYXRhVHlwZSIgTGVuZ3RoRmll +bGQ9Ik5vT2ZEYXRhU2V0UmVhZGVycyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAg +PG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJSZWFkZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIiBC +YXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoN +CiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJSZWFkZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIg +QmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRGF0YVNldFJlYWRlckRhdGFUeXBlIiBCYXNl +VHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWUiIFR5 +cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRW5hYmxlZCIgVHlw +ZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUHVibGlzaGVySWQi +IFR5cGVOYW1lPSJ1YTpWYXJpYW50IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iV3JpdGVyR3Jv +dXBJZCIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRh +U2V0V3JpdGVySWQiIFR5cGVOYW1lPSJvcGM6VUludDE2IiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iRGF0YVNldE1ldGFEYXRhIiBUeXBlTmFtZT0idG5zOkRhdGFTZXRNZXRhRGF0YVR5cGUiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRhU2V0RmllbGRDb250ZW50TWFzayIgVHlwZU5hbWU9 +InRuczpEYXRhU2V0RmllbGRDb250ZW50TWFzayIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1l +c3NhZ2VSZWNlaXZlVGltZW91dCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJLZXlGcmFtZUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IkhlYWRlckxheW91dFVyaSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZWN1cml0eU1vZGUiIFR5cGVOYW1lPSJ0bnM6TWVzc2Fn +ZVNlY3VyaXR5TW9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlY3VyaXR5R3JvdXBJZCIg +VHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mU2VjdXJp +dHlLZXlTZXJ2aWNlcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlNlY3VyaXR5S2V5U2VydmljZXMiIFR5cGVOYW1lPSJ0bnM6RW5kcG9pbnREZXNjcmlwdGlv +biIgTGVuZ3RoRmllbGQ9Ik5vT2ZTZWN1cml0eUtleVNlcnZpY2VzIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTm9PZkRhdGFTZXRSZWFkZXJQcm9wZXJ0aWVzIiBUeXBlTmFtZT0ib3BjOkludDMy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVNldFJlYWRlclByb3BlcnRpZXMiIFR5cGVO +YW1lPSJ0bnM6S2V5VmFsdWVQYWlyIiBMZW5ndGhGaWVsZD0iTm9PZkRhdGFTZXRSZWFkZXJQcm9w +ZXJ0aWVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVHJhbnNwb3J0U2V0dGluZ3MiIFR5cGVO +YW1lPSJ1YTpFeHRlbnNpb25PYmplY3QiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNZXNzYWdl +U2V0dGluZ3MiIFR5cGVOYW1lPSJ1YTpFeHRlbnNpb25PYmplY3QiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTdWJzY3JpYmVkRGF0YVNldCIgVHlwZU5hbWU9InVhOkV4dGVuc2lvbk9iamVjdCIg +Lz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1l +PSJEYXRhU2V0UmVhZGVyVHJhbnNwb3J0RGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25P +YmplY3QiPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9IkRhdGFTZXRSZWFkZXJNZXNzYWdlRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9IlN1YnNjcmliZWREYXRhU2V0RGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9IlRhcmdldFZhcmlhYmxlc0RhdGFUeXBlIiBCYXNlVHlwZT0idG5zOlN1YnNjcmli +ZWREYXRhU2V0RGF0YVR5cGUiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlRhcmdldFZhcmlh +YmxlcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRhcmdl +dFZhcmlhYmxlcyIgVHlwZU5hbWU9InRuczpGaWVsZFRhcmdldERhdGFUeXBlIiBMZW5ndGhGaWVs +ZD0iTm9PZlRhcmdldFZhcmlhYmxlcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAg +PG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJGaWVsZFRhcmdldERhdGFUeXBlIiBCYXNlVHlwZT0i +dWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRhdGFTZXRGaWVsZElk +IiBUeXBlTmFtZT0ib3BjOkd1aWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWNlaXZlcklu +ZGV4UmFuZ2UiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +VGFyZ2V0Tm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iQXR0cmlidXRlSWQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iV3JpdGVJbmRleFJhbmdlIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik92ZXJyaWRlVmFsdWVIYW5kbGluZyIgVHlwZU5hbWU9InRuczpPdmVycmlk +ZVZhbHVlSGFuZGxpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJPdmVycmlkZVZhbHVlIiBU +eXBlTmFtZT0idWE6VmFyaWFudCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJPdmVycmlkZVZhbHVlSGFuZGxpbmciIExlbmd0aEluQml0 +cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRpc2FibGVkIiBWYWx1ZT0i +MCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJMYXN0VXNhYmxlVmFsdWUiIFZh +bHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik92ZXJyaWRlVmFsdWUi +IFZhbHVlPSIyIiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVy +ZWRUeXBlIE5hbWU9IlN1YnNjcmliZWREYXRhU2V0TWlycm9yRGF0YVR5cGUiIEJhc2VUeXBlPSJ0 +bnM6U3Vic2NyaWJlZERhdGFTZXREYXRhVHlwZSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJQYXJl +bnROb2RlTmFtZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJOb09mUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0idG5zOlJvbGVQZXJtaXNzaW9u +VHlwZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZSb2xlUGVybWlzc2lvbnMiIC8+DQogIDwvb3BjOlN0cnVj +dHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iUHViU3ViQ29uZmlndXJh +dGlvbkRhdGFUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik5vT2ZQdWJsaXNoZWREYXRhU2V0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlB1Ymxpc2hlZERhdGFTZXRzIiBUeXBlTmFtZT0idG5zOlB1 +Ymxpc2hlZERhdGFTZXREYXRhVHlwZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZQdWJsaXNoZWREYXRhU2V0 +cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZDb25uZWN0aW9ucyIgVHlwZU5hbWU9Im9w +YzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNvbm5lY3Rpb25zIiBUeXBlTmFtZT0i +dG5zOlB1YlN1YkNvbm5lY3Rpb25EYXRhVHlwZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZDb25uZWN0aW9u +cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkVuYWJsZWQiIFR5cGVOYW1lPSJvcGM6Qm9vbGVh +biIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBO +YW1lPSJEYXRhU2V0T3JkZXJpbmdUeXBlIiBMZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVu +dW1lcmF0ZWRWYWx1ZSBOYW1lPSJVbmRlZmluZWQiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51 +bWVyYXRlZFZhbHVlIE5hbWU9IkFzY2VuZGluZ1dyaXRlcklkIiBWYWx1ZT0iMSIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBc2NlbmRpbmdXcml0ZXJJZFNpbmdsZSIgVmFsdWU9 +IjIiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUg +TmFtZT0iVWFkcE5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siIExlbmd0aEluQml0cz0iMzIiIElz +T3B0aW9uU2V0PSJ0cnVlIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb25lIiBW +YWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJQdWJsaXNoZXJJZCIg +VmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iR3JvdXBIZWFkZXIi +IFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IldyaXRlckdyb3Vw +SWQiIFZhbHVlPSI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ikdyb3VwVmVy +c2lvbiIgVmFsdWU9IjgiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTmV0d29y +a01lc3NhZ2VOdW1iZXIiIFZhbHVlPSIxNiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBO +YW1lPSJTZXF1ZW5jZU51bWJlciIgVmFsdWU9IjMyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9IlBheWxvYWRIZWFkZXIiIFZhbHVlPSI2NCIgLz4NCiAgICA8b3BjOkVudW1lcmF0 +ZWRWYWx1ZSBOYW1lPSJUaW1lc3RhbXAiIFZhbHVlPSIxMjgiIC8+DQogICAgPG9wYzpFbnVtZXJh +dGVkVmFsdWUgTmFtZT0iUGljb1NlY29uZHMiIFZhbHVlPSIyNTYiIC8+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iRGF0YVNldENsYXNzSWQiIFZhbHVlPSI1MTIiIC8+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iUHJvbW90ZWRGaWVsZHMiIFZhbHVlPSIxMDI0IiAvPg0K +ICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlVh +ZHBXcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgQmFzZVR5cGU9InRuczpXcml0ZXJHcm91cE1l +c3NhZ2VEYXRhVHlwZSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJHcm91cFZlcnNpb24iIFR5cGVO +YW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVNldE9yZGVyaW5n +IiBUeXBlTmFtZT0idG5zOkRhdGFTZXRPcmRlcmluZ1R5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOZXR3b3JrTWVzc2FnZUNvbnRlbnRNYXNrIiBUeXBlTmFtZT0idG5zOlVhZHBOZXR3b3Jr +TWVzc2FnZUNvbnRlbnRNYXNrIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2FtcGxpbmdPZmZz +ZXQiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlB1 +Ymxpc2hpbmdPZmZzZXQiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJQdWJsaXNoaW5nT2Zmc2V0IiBUeXBlTmFtZT0ib3BjOkRvdWJsZSIgTGVuZ3RoRmllbGQ9 +Ik5vT2ZQdWJsaXNoaW5nT2Zmc2V0IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8 +b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IlVhZHBEYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiBM +ZW5ndGhJbkJpdHM9IjMyIiBJc09wdGlvblNldD0idHJ1ZSI+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iVGltZXN0YW1wIiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBO +YW1lPSJQaWNvU2Vjb25kcyIgVmFsdWU9IjIiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iU3RhdHVzIiBWYWx1ZT0iNCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1l +PSJNYWpvclZlcnNpb24iIFZhbHVlPSI4IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9Ik1pbm9yVmVyc2lvbiIgVmFsdWU9IjE2IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9IlNlcXVlbmNlTnVtYmVyIiBWYWx1ZT0iMzIiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iVWFkcERhdGFTZXRXcml0ZXJNZXNz +YWdlRGF0YVR5cGUiIEJhc2VUeXBlPSJ0bnM6RGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSI+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiBUeXBlTmFt +ZT0idG5zOlVhZHBEYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iQ29uZmlndXJlZFNpemUiIFR5cGVOYW1lPSJvcGM6VUludDE2IiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTmV0d29ya01lc3NhZ2VOdW1iZXIiIFR5cGVOYW1lPSJvcGM6VUludDE2IiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVNldE9mZnNldCIgVHlwZU5hbWU9Im9wYzpVSW50 +MTYiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUg +TmFtZT0iVWFkcERhdGFTZXRSZWFkZXJNZXNzYWdlRGF0YVR5cGUiIEJhc2VUeXBlPSJ0bnM6RGF0 +YVNldFJlYWRlck1lc3NhZ2VEYXRhVHlwZSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJHcm91cFZl +cnNpb24iIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTmV0 +d29ya01lc3NhZ2VOdW1iZXIiIFR5cGVOYW1lPSJvcGM6VUludDE2IiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iRGF0YVNldE9mZnNldCIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJEYXRhU2V0Q2xhc3NJZCIgVHlwZU5hbWU9Im9wYzpHdWlkIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iTmV0d29ya01lc3NhZ2VDb250ZW50TWFzayIgVHlwZU5hbWU9InRu +czpVYWRwTmV0d29ya01lc3NhZ2VDb250ZW50TWFzayIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkRhdGFTZXRNZXNzYWdlQ29udGVudE1hc2siIFR5cGVOYW1lPSJ0bnM6VWFkcERhdGFTZXRNZXNz +YWdlQ29udGVudE1hc2siIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJQdWJsaXNoaW5nSW50ZXJ2 +YWwiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVjZWl2 +ZU9mZnNldCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJQ +cm9jZXNzaW5nT2Zmc2V0IiBUeXBlTmFtZT0ib3BjOkRvdWJsZSIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJKc29uTmV0d29ya01lc3Nh +Z2VDb250ZW50TWFzayIgTGVuZ3RoSW5CaXRzPSIzMiIgSXNPcHRpb25TZXQ9InRydWUiPg0KICAg +IDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik5vbmUiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6 +RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik5ldHdvcmtNZXNzYWdlSGVhZGVyIiBWYWx1ZT0iMSIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEYXRhU2V0TWVzc2FnZUhlYWRlciIgVmFs +dWU9IjIiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU2luZ2xlRGF0YVNldE1l +c3NhZ2UiIFZhbHVlPSI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlB1Ymxp +c2hlcklkIiBWYWx1ZT0iOCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEYXRh +U2V0Q2xhc3NJZCIgVmFsdWU9IjE2IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +IlJlcGx5VG8iIFZhbHVlPSIzMiIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9w +YzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJKc29uV3JpdGVyR3JvdXBNZXNzYWdlRGF0YVR5cGUiIEJh +c2VUeXBlPSJ0bnM6V3JpdGVyR3JvdXBNZXNzYWdlRGF0YVR5cGUiPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iTmV0d29ya01lc3NhZ2VDb250ZW50TWFzayIgVHlwZU5hbWU9InRuczpKc29uTmV0d29y +a01lc3NhZ2VDb250ZW50TWFzayIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJKc29uRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayIgTGVu +Z3RoSW5CaXRzPSIzMiIgSXNPcHRpb25TZXQ9InRydWUiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9Ik5vbmUiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9IkRhdGFTZXRXcml0ZXJJZCIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFs +dWUgTmFtZT0iTWV0YURhdGFWZXJzaW9uIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0 +ZWRWYWx1ZSBOYW1lPSJTZXF1ZW5jZU51bWJlciIgVmFsdWU9IjQiIC8+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iVGltZXN0YW1wIiBWYWx1ZT0iOCIgLz4NCiAgICA8b3BjOkVudW1l +cmF0ZWRWYWx1ZSBOYW1lPSJTdGF0dXMiIFZhbHVlPSIxNiIgLz4NCiAgICA8b3BjOkVudW1lcmF0 +ZWRWYWx1ZSBOYW1lPSJNZXNzYWdlVHlwZSIgVmFsdWU9IjMyIiAvPg0KICA8L29wYzpFbnVtZXJh +dGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ikpzb25EYXRhU2V0V3JpdGVy +TWVzc2FnZURhdGFUeXBlIiBCYXNlVHlwZT0idG5zOkRhdGFTZXRXcml0ZXJNZXNzYWdlRGF0YVR5 +cGUiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayIgVHlw +ZU5hbWU9InRuczpKc29uRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayIgLz4NCiAgPC9vcGM6U3Ry +dWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJKc29uRGF0YVNldFJl +YWRlck1lc3NhZ2VEYXRhVHlwZSIgQmFzZVR5cGU9InRuczpEYXRhU2V0UmVhZGVyTWVzc2FnZURh +dGFUeXBlIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2si +IFR5cGVOYW1lPSJ0bnM6SnNvbk5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJEYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiBUeXBlTmFtZT0idG5zOkpz +b25EYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRhdGFncmFtQ29ubmVjdGlvblRyYW5zcG9y +dERhdGFUeXBlIiBCYXNlVHlwZT0idG5zOkNvbm5lY3Rpb25UcmFuc3BvcnREYXRhVHlwZSI+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNjb3ZlcnlBZGRyZXNzIiBUeXBlTmFtZT0idWE6RXh0ZW5z +aW9uT2JqZWN0IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVy +ZWRUeXBlIE5hbWU9IkRhdGFncmFtV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgQmFzZVR5 +cGU9InRuczpXcml0ZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9Ik1lc3NhZ2VSZXBlYXRDb3VudCIgVHlwZU5hbWU9Im9wYzpCeXRlIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTWVzc2FnZVJlcGVhdERlbGF5IiBUeXBlTmFtZT0ib3BjOkRvdWJsZSIgLz4N +CiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJC +cm9rZXJDb25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5cGUiIEJhc2VUeXBlPSJ0bnM6Q29ubmVjdGlv +blRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc291cmNlVXJpIiBU +eXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkF1dGhlbnRpY2F0 +aW9uUHJvZmlsZVVyaSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVy +ZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iQnJva2VyVHJhbnNwb3J0UXVh +bGl0eU9mU2VydmljZSIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFs +dWUgTmFtZT0iTm90U3BlY2lmaWVkIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJCZXN0RWZmb3J0IiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJBdExlYXN0T25jZSIgVmFsdWU9IjIiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iQXRNb3N0T25jZSIgVmFsdWU9IjMiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iRXhhY3RseU9uY2UiIFZhbHVlPSI0IiAvPg0KICA8L29wYzpFbnVtZXJhdGVk +VHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkJyb2tlcldyaXRlckdyb3VwVHJh +bnNwb3J0RGF0YVR5cGUiIEJhc2VUeXBlPSJ0bnM6V3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlw +ZSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJRdWV1ZU5hbWUiIFR5cGVOYW1lPSJvcGM6U3RyaW5n +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzb3VyY2VVcmkiIFR5cGVOYW1lPSJvcGM6U3Ry +aW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQXV0aGVudGljYXRpb25Qcm9maWxlVXJpIiBU +eXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RlZERl +bGl2ZXJ5R3VhcmFudGVlIiBUeXBlTmFtZT0idG5zOkJyb2tlclRyYW5zcG9ydFF1YWxpdHlPZlNl +cnZpY2UiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iQnJva2VyRGF0YVNldFdyaXRlclRyYW5zcG9ydERhdGFUeXBlIiBCYXNlVHlwZT0i +dG5zOkRhdGFTZXRXcml0ZXJUcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJRdWV1ZU5hbWUiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iUmVzb3VyY2VVcmkiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iQXV0aGVudGljYXRpb25Qcm9maWxlVXJpIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RlZERlbGl2ZXJ5R3VhcmFudGVlIiBUeXBlTmFt +ZT0idG5zOkJyb2tlclRyYW5zcG9ydFF1YWxpdHlPZlNlcnZpY2UiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJNZXRhRGF0YVF1ZXVlTmFtZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJNZXRhRGF0YVVwZGF0ZVRpbWUiIFR5cGVOYW1lPSJvcGM6RG91Ymxl +IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5h +bWU9IkJyb2tlckRhdGFTZXRSZWFkZXJUcmFuc3BvcnREYXRhVHlwZSIgQmFzZVR5cGU9InRuczpE +YXRhU2V0UmVhZGVyVHJhbnNwb3J0RGF0YVR5cGUiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUXVl +dWVOYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJl +c291cmNlVXJpIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkF1dGhlbnRpY2F0aW9uUHJvZmlsZVVyaSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0ZWREZWxpdmVyeUd1YXJhbnRlZSIgVHlwZU5hbWU9InRu +czpCcm9rZXJUcmFuc3BvcnRRdWFsaXR5T2ZTZXJ2aWNlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iTWV0YURhdGFRdWV1ZU5hbWUiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICA8L29wYzpT +dHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkRpYWdub3N0aWNz +TGV2ZWwiIExlbmd0aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +IkJhc2ljIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBZHZh +bmNlZCIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW5mbyIg +VmFsdWU9IjIiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTG9nIiBWYWx1ZT0i +MyIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEZWJ1ZyIgVmFsdWU9IjQiIC8+ +DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0i +UHViU3ViRGlhZ25vc3RpY3NDb3VudGVyQ2xhc3NpZmljYXRpb24iIExlbmd0aEluQml0cz0iMzIi +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkluZm9ybWF0aW9uIiBWYWx1ZT0iMCIg +Lz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJFcnJvciIgVmFsdWU9IjEiIC8+DQog +IDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQWxp +YXNOYW1lRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iQWxpYXNOYW1lIiBUeXBlTmFtZT0idWE6UXVhbGlmaWVkTmFtZSIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZWZlcmVuY2VkTm9kZXMiIFR5cGVOYW1lPSJvcGM6SW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWZlcmVuY2VkTm9kZXMiIFR5cGVOYW1lPSJ1 +YTpFeHBhbmRlZE5vZGVJZCIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZWZlcmVuY2VkTm9kZXMiIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iRHVw +bGV4IiBMZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJG +dWxsIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJIYWxmIiBW +YWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVbmtub3duIiBWYWx1 +ZT0iMiIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlw +ZSBOYW1lPSJJbnRlcmZhY2VBZG1pblN0YXR1cyIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVXAiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVy +YXRlZFZhbHVlIE5hbWU9IkRvd24iIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9IlRlc3RpbmciIFZhbHVlPSIyIiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4N +Cg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkludGVyZmFjZU9wZXJTdGF0dXMiIExlbmd0 +aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlVwIiBWYWx1ZT0i +MCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEb3duIiBWYWx1ZT0iMSIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJUZXN0aW5nIiBWYWx1ZT0iMiIgLz4NCiAg +ICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVbmtub3duIiBWYWx1ZT0iMyIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEb3JtYW50IiBWYWx1ZT0iNCIgLz4NCiAgICA8b3Bj +OkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb3RQcmVzZW50IiBWYWx1ZT0iNSIgLz4NCiAgICA8b3Bj +OkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJMb3dlckxheWVyRG93biIgVmFsdWU9IjYiIC8+DQogIDwv +b3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iTmVnb3Rp +YXRpb25TdGF0dXMiIExlbmd0aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9IkluUHJvZ3Jlc3MiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9IkNvbXBsZXRlIiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBO +YW1lPSJGYWlsZWQiIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +IlVua25vd24iIFZhbHVlPSIzIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik5v +TmVnb3RpYXRpb24iIFZhbHVlPSI0IiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8 +b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IlRzbkZhaWx1cmVDb2RlIiBMZW5ndGhJbkJpdHM9IjMy +Ij4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb0ZhaWx1cmUiIFZhbHVlPSIwIiAv +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ikluc3VmZmljaWVudEJhbmR3aWR0aCIg +VmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW5zdWZmaWNpZW50 +UmVzb3VyY2VzIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJJ +bnN1ZmZpY2llbnRUcmFmZmljQ2xhc3NCYW5kd2lkdGgiIFZhbHVlPSIzIiAvPg0KICAgIDxvcGM6 +RW51bWVyYXRlZFZhbHVlIE5hbWU9IlN0cmVhbUlkSW5Vc2UiIFZhbHVlPSI0IiAvPg0KICAgIDxv +cGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlN0cmVhbURlc3RpbmF0aW9uQWRkcmVzc0luVXNlIiBW +YWx1ZT0iNSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTdHJlYW1QcmVlbXB0 +ZWRCeUhpZ2hlclJhbmsiIFZhbHVlPSI2IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9IkxhdGVuY3lIYXNDaGFuZ2VkIiBWYWx1ZT0iNyIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJFZ3Jlc3NQb3J0Tm90QXZiQ2FwYWJsZSIgVmFsdWU9IjgiIC8+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVXNlRGlmZmVyZW50RGVzdGluYXRpb25BZGRyZXNzIiBW +YWx1ZT0iOSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJPdXRPZk1zcnBSZXNv +dXJjZXMiIFZhbHVlPSIxMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJPdXRP +Zk1tcnBSZXNvdXJjZXMiIFZhbHVlPSIxMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBO +YW1lPSJDYW5ub3RTdG9yZURlc3RpbmF0aW9uQWRkcmVzcyIgVmFsdWU9IjEyIiAvPg0KICAgIDxv +cGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlByaW9yaXR5SXNOb3RBblNyY0NsYXNzIiBWYWx1ZT0i +MTMiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTWF4RnJhbWVTaXplVG9vTGFy +Z2UiIFZhbHVlPSIxNCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJNYXhGYW5J +blBvcnRzTGltaXRSZWFjaGVkIiBWYWx1ZT0iMTUiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFs +dWUgTmFtZT0iRmlyc3RWYWx1ZUNoYW5nZWRGb3JTdHJlYW1JZCIgVmFsdWU9IjE2IiAvPg0KICAg +IDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlZsYW5CbG9ja2VkT25FZ3Jlc3MiIFZhbHVlPSIx +NyIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJWbGFuVGFnZ2luZ0Rpc2FibGVk +T25FZ3Jlc3MiIFZhbHVlPSIxOCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJT +ckNsYXNzUHJpb3JpdHlNaXNtYXRjaCIgVmFsdWU9IjE5IiAvPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9IkZlYXR1cmVOb3RQcm9wYWdhdGVkIiBWYWx1ZT0iMjAiIC8+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTWF4TGF0ZW5jeUV4Y2VlZGVkIiBWYWx1ZT0iMjEiIC8+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iQnJpZGdlRG9lc05vdFByb3ZpZGVOZXR3 +b3JrSWQiIFZhbHVlPSIyMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTdHJl +YW1UcmFuc2Zvcm1Ob3RTdXBwb3J0ZWQiIFZhbHVlPSIyMyIgLz4NCiAgICA8b3BjOkVudW1lcmF0 +ZWRWYWx1ZSBOYW1lPSJTdHJlYW1JZFR5cGVOb3RTdXBwb3J0ZWQiIFZhbHVlPSIyNCIgLz4NCiAg +ICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJGZWF0dXJlTm90U3VwcG9ydGVkIiBWYWx1ZT0i +MjUiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUg +TmFtZT0iVHNuU3RyZWFtU3RhdGUiIExlbmd0aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVy +YXRlZFZhbHVlIE5hbWU9IkRpc2FibGVkIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0 +ZWRWYWx1ZSBOYW1lPSJDb25maWd1cmluZyIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJh +dGVkVmFsdWUgTmFtZT0iUmVhZHkiIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9Ik9wZXJhdGlvbmFsIiBWYWx1ZT0iMyIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJFcnJvciIgVmFsdWU9IjQiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0K +DQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iVHNuVGFsa2VyU3RhdHVzIiBMZW5ndGhJbkJp +dHM9IjMyIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb25lIiBWYWx1ZT0iMCIg +Lz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJSZWFkeSIgVmFsdWU9IjEiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iRmFpbGVkIiBWYWx1ZT0iMiIgLz4NCiAgPC9v +cGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJUc25MaXN0 +ZW5lclN0YXR1cyIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0i +UmVhZHkiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlBhcnRp +YWxGYWlsZWQiIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkZh +aWxlZCIgVmFsdWU9IjMiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iVW5zaWduZWRSYXRpb25hbE51bWJlciIgQmFzZVR5cGU9InVhOkV4 +dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOdW1lcmF0b3IiIFR5cGVOYW1l +PSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVub21pbmF0b3IiIFR5cGVO +YW1lPSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVu +dW1lcmF0ZWRUeXBlIE5hbWU9IklkVHlwZSIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iTnVtZXJpYyIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iU3RyaW5nIiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0 +ZWRWYWx1ZSBOYW1lPSJHdWlkIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1 +ZSBOYW1lPSJPcGFxdWUiIFZhbHVlPSIzIiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0K +ICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9Ik5vZGVDbGFzcyIgTGVuZ3RoSW5CaXRzPSIzMiI+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVW5zcGVjaWZpZWQiIFZhbHVlPSIwIiAv +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik9iamVjdCIgVmFsdWU9IjEiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVmFyaWFibGUiIFZhbHVlPSIyIiAvPg0KICAg +IDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik1ldGhvZCIgVmFsdWU9IjQiIC8+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iT2JqZWN0VHlwZSIgVmFsdWU9IjgiIC8+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVmFyaWFibGVUeXBlIiBWYWx1ZT0iMTYiIC8+DQogICAg +PG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iUmVmZXJlbmNlVHlwZSIgVmFsdWU9IjMyIiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRhdGFUeXBlIiBWYWx1ZT0iNjQiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVmlldyIgVmFsdWU9IjEyOCIgLz4NCiAgPC9v +cGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJQZXJtaXNz +aW9uVHlwZSIgTGVuZ3RoSW5CaXRzPSIzMiIgSXNPcHRpb25TZXQ9InRydWUiPg0KICAgIDxvcGM6 +RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik5vbmUiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVy +YXRlZFZhbHVlIE5hbWU9IkJyb3dzZSIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iUmVhZFJvbGVQZXJtaXNzaW9ucyIgVmFsdWU9IjIiIC8+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iV3JpdGVBdHRyaWJ1dGUiIFZhbHVlPSI0IiAvPg0KICAgIDxv +cGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IldyaXRlUm9sZVBlcm1pc3Npb25zIiBWYWx1ZT0iOCIg +Lz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJXcml0ZUhpc3Rvcml6aW5nIiBWYWx1 +ZT0iMTYiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iUmVhZCIgVmFsdWU9IjMy +IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IldyaXRlIiBWYWx1ZT0iNjQiIC8+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iUmVhZEhpc3RvcnkiIFZhbHVlPSIxMjgi +IC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW5zZXJ0SGlzdG9yeSIgVmFsdWU9 +IjI1NiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJNb2RpZnlIaXN0b3J5IiBW +YWx1ZT0iNTEyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRlbGV0ZUhpc3Rv +cnkiIFZhbHVlPSIxMDI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlJlY2Vp +dmVFdmVudHMiIFZhbHVlPSIyMDQ4IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +IkNhbGwiIFZhbHVlPSI0MDk2IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkFk +ZFJlZmVyZW5jZSIgVmFsdWU9IjgxOTIiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFt +ZT0iUmVtb3ZlUmVmZXJlbmNlIiBWYWx1ZT0iMTYzODQiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iRGVsZXRlTm9kZSIgVmFsdWU9IjMyNzY4IiAvPg0KICAgIDxvcGM6RW51bWVy +YXRlZFZhbHVlIE5hbWU9IkFkZE5vZGUiIFZhbHVlPSI2NTUzNiIgLz4NCiAgPC9vcGM6RW51bWVy +YXRlZFR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJBY2Nlc3NMZXZlbFR5cGUi +IExlbmd0aEluQml0cz0iOCIgSXNPcHRpb25TZXQ9InRydWUiPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9Ik5vbmUiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9IkN1cnJlbnRSZWFkIiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1 +ZSBOYW1lPSJDdXJyZW50V3JpdGUiIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9Ikhpc3RvcnlSZWFkIiBWYWx1ZT0iNCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJIaXN0b3J5V3JpdGUiIFZhbHVlPSI4IiAvPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9IlNlbWFudGljQ2hhbmdlIiBWYWx1ZT0iMTYiIC8+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iU3RhdHVzV3JpdGUiIFZhbHVlPSIzMiIgLz4NCiAgICA8b3BjOkVu +dW1lcmF0ZWRWYWx1ZSBOYW1lPSJUaW1lc3RhbXBXcml0ZSIgVmFsdWU9IjY0IiAvPg0KICA8L29w +YzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkFjY2Vzc0xl +dmVsRXhUeXBlIiBMZW5ndGhJbkJpdHM9IjMyIiBJc09wdGlvblNldD0idHJ1ZSI+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iQ3VycmVudFJlYWQiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51 +bWVyYXRlZFZhbHVlIE5hbWU9IkN1cnJlbnRXcml0ZSIgVmFsdWU9IjIiIC8+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iSGlzdG9yeVJlYWQiIFZhbHVlPSI0IiAvPg0KICAgIDxvcGM6 +RW51bWVyYXRlZFZhbHVlIE5hbWU9Ikhpc3RvcnlXcml0ZSIgVmFsdWU9IjgiIC8+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU2VtYW50aWNDaGFuZ2UiIFZhbHVlPSIxNiIgLz4NCiAg +ICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTdGF0dXNXcml0ZSIgVmFsdWU9IjMyIiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlRpbWVzdGFtcFdyaXRlIiBWYWx1ZT0iNjQi +IC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTm9uYXRvbWljUmVhZCIgVmFsdWU9 +IjI1NiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb25hdG9taWNXcml0ZSIg +VmFsdWU9IjUxMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJXcml0ZUZ1bGxB +cnJheU9ubHkiIFZhbHVlPSIxMDI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +Ik5vU3ViRGF0YVR5cGVzIiBWYWx1ZT0iMjA0OCIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+ +DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJFdmVudE5vdGlmaWVyVHlwZSIgTGVuZ3Ro +SW5CaXRzPSI4IiBJc09wdGlvblNldD0idHJ1ZSI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0i +U3Vic2NyaWJlVG9FdmVudHMiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9Ikhpc3RvcnlSZWFkIiBWYWx1ZT0iNCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1 +ZSBOYW1lPSJIaXN0b3J5V3JpdGUiIFZhbHVlPSI4IiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlw +ZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkFjY2Vzc1Jlc3RyaWN0aW9uVHlwZSIg +TGVuZ3RoSW5CaXRzPSIxNiIgSXNPcHRpb25TZXQ9InRydWUiPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9Ik5vbmUiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9IlNpZ25pbmdSZXF1aXJlZCIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iRW5jcnlwdGlvblJlcXVpcmVkIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVu +dW1lcmF0ZWRWYWx1ZSBOYW1lPSJTZXNzaW9uUmVxdWlyZWQiIFZhbHVlPSI0IiAvPg0KICAgIDxv +cGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkFwcGx5UmVzdHJpY3Rpb25zVG9Ccm93c2UiIFZhbHVl +PSI4IiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9IlJvbGVQZXJtaXNzaW9uVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSb2xlSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJQZXJtaXNzaW9ucyIgVHlwZU5hbWU9InRuczpQZXJtaXNzaW9u +VHlwZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlw +ZSBOYW1lPSJEYXRhVHlwZURlZmluaXRpb24iIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3Qi +Pg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9 +IlN0cnVjdHVyZVR5cGUiIExlbmd0aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9IlN0cnVjdHVyZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFs +dWUgTmFtZT0iU3RydWN0dXJlV2l0aE9wdGlvbmFsRmllbGRzIiBWYWx1ZT0iMSIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVbmlvbiIgVmFsdWU9IjIiIC8+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iU3RydWN0dXJlV2l0aFN1YnR5cGVkVmFsdWVzIiBWYWx1ZT0i +MyIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVbmlvbldpdGhTdWJ0eXBlZFZh +bHVlcyIgVmFsdWU9IjQiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iU3RydWN0dXJlRmllbGQiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25P +YmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTmFtZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmci +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEZXNjcmlwdGlvbiIgVHlwZU5hbWU9InVhOkxvY2Fs +aXplZFRleHQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRhVHlwZSIgVHlwZU5hbWU9InVh +Ok5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlZhbHVlUmFuayIgVHlwZU5hbWU9Im9w +YzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZBcnJheURpbWVuc2lvbnMiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBcnJheURpbWVuc2lv +bnMiIFR5cGVOYW1lPSJvcGM6VUludDMyIiBMZW5ndGhGaWVsZD0iTm9PZkFycmF5RGltZW5zaW9u +cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1heFN0cmluZ0xlbmd0aCIgVHlwZU5hbWU9Im9w +YzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJc09wdGlvbmFsIiBUeXBlTmFtZT0i +b3BjOkJvb2xlYW4iIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0 +dXJlZFR5cGUgTmFtZT0iU3RydWN0dXJlRGVmaW5pdGlvbiIgQmFzZVR5cGU9InRuczpEYXRhVHlw +ZURlZmluaXRpb24iPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVmYXVsdEVuY29kaW5nSWQiIFR5 +cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCYXNlRGF0YVR5cGUi +IFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdHJ1Y3R1cmVU +eXBlIiBUeXBlTmFtZT0idG5zOlN0cnVjdHVyZVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJOb09mRmllbGRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iRmllbGRzIiBUeXBlTmFtZT0idG5zOlN0cnVjdHVyZUZpZWxkIiBMZW5ndGhGaWVsZD0iTm9P +ZkZpZWxkcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVk +VHlwZSBOYW1lPSJFbnVtRGVmaW5pdGlvbiIgQmFzZVR5cGU9InRuczpEYXRhVHlwZURlZmluaXRp +b24iPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkZpZWxkcyIgVHlwZU5hbWU9Im9wYzpJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkZpZWxkcyIgVHlwZU5hbWU9InRuczpFbnVtRmll +bGQiIExlbmd0aEZpZWxkPSJOb09mRmllbGRzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ik5vZGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9k +ZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUNsYXNzIiBUeXBlTmFtZT0idG5zOk5v +ZGVDbGFzcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkJyb3dzZU5hbWUiIFR5cGVOYW1lPSJ1 +YTpRdWFsaWZpZWROYW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzcGxheU5hbWUiIFR5 +cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVzY3Jp +cHRpb24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlVzZXJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTm9PZlJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9InRuczpSb2xlUGVy +bWlzc2lvblR5cGUiIExlbmd0aEZpZWxkPSJOb09mUm9sZVBlcm1pc3Npb25zIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iTm9PZlVzZXJSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJVc2VyUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFt +ZT0idG5zOlJvbGVQZXJtaXNzaW9uVHlwZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZVc2VyUm9sZVBlcm1p +c3Npb25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWNjZXNzUmVzdHJpY3Rpb25zIiBUeXBl +TmFtZT0ib3BjOlVJbnQxNiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZWZlcmVuY2Vz +IiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNl +cyIgVHlwZU5hbWU9InRuczpSZWZlcmVuY2VOb2RlIiBMZW5ndGhGaWVsZD0iTm9PZlJlZmVyZW5j +ZXMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUg +TmFtZT0iSW5zdGFuY2VOb2RlIiBCYXNlVHlwZT0idG5zOk5vZGUiPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVDbGFzcyIgVHlwZU5hbWU9InRuczpOb2RlQ2xh +c3MiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQnJvd3Nl +TmFtZSIgVHlwZU5hbWU9InVhOlF1YWxpZmllZE5hbWUiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzcGxheU5hbWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6 +ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRl +c2NyaXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0idG5zOk5v +ZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUlu +dDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJX +cml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJvcGM6 +SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1l +PSJ0bnM6Um9sZVBlcm1pc3Npb25UeXBlIiBMZW5ndGhGaWVsZD0iTm9PZlJvbGVQZXJtaXNzaW9u +cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZVc2VyUm9sZVBlcm1pc3Npb25zIiBUeXBl +TmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlclJvbGVQZXJtaXNz +aW9ucyIgVHlwZU5hbWU9InRuczpSb2xlUGVybWlzc2lvblR5cGUiIExlbmd0aEZpZWxkPSJOb09m +VXNlclJvbGVQZXJtaXNzaW9ucyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFjY2Vzc1Jlc3Ry +aWN0aW9ucyIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlZmVyZW5jZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWZlcmVuY2VzIiBUeXBlTmFtZT0idG5zOlJlZmVy +ZW5jZU5vZGUiIExlbmd0aEZpZWxkPSJOb09mUmVmZXJlbmNlcyIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJUeXBlTm9kZSIgQmFzZVR5 +cGU9InRuczpOb2RlIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVJZCIgVHlwZU5hbWU9InVh +Ok5vZGVJZCIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b2RlQ2xhc3MiIFR5cGVOYW1lPSJ0bnM6Tm9kZUNsYXNzIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkJyb3dzZU5hbWUiIFR5cGVOYW1lPSJ1YTpRdWFsaWZp +ZWROYW1lIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRp +c3BsYXlOYW1lIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0idG5zOk5v +ZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEZXNjcmlwdGlvbiIgVHlwZU5hbWU9InVhOkxv +Y2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0idG5zOk5vZGUi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJVc2VyV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJ +bnQzMiIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09m +Um9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0idG5zOlJvbGVQZXJtaXNzaW9uVHlwZSIg +TGVuZ3RoRmllbGQ9Ik5vT2ZSb2xlUGVybWlzc2lvbnMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJOb09mVXNlclJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IlVzZXJSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJ0bnM6Um9sZVBl +cm1pc3Npb25UeXBlIiBMZW5ndGhGaWVsZD0iTm9PZlVzZXJSb2xlUGVybWlzc2lvbnMiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJBY2Nlc3NSZXN0cmljdGlvbnMiIFR5cGVOYW1lPSJvcGM6VUlu +dDE2IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZS +ZWZlcmVuY2VzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +UmVmZXJlbmNlcyIgVHlwZU5hbWU9InRuczpSZWZlcmVuY2VOb2RlIiBMZW5ndGhGaWVsZD0iTm9P +ZlJlZmVyZW5jZXMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0 +dXJlZFR5cGUgTmFtZT0iT2JqZWN0Tm9kZSIgQmFzZVR5cGU9InRuczpJbnN0YW5jZU5vZGUiPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VU +eXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVDbGFzcyIgVHlwZU5h +bWU9InRuczpOb2RlQ2xhc3MiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iQnJvd3NlTmFtZSIgVHlwZU5hbWU9InVhOlF1YWxpZmllZE5hbWUiIFNvdXJjZVR5 +cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzcGxheU5hbWUiIFR5cGVO +YW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkRlc2NyaXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291 +cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1hc2siIFR5 +cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlVzZXJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBl +PSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSb2xlUGVybWlzc2lvbnMi +IFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSb2xlUGVybWlz +c2lvbnMiIFR5cGVOYW1lPSJ0bnM6Um9sZVBlcm1pc3Npb25UeXBlIiBMZW5ndGhGaWVsZD0iTm9P +ZlJvbGVQZXJtaXNzaW9ucyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZVc2VyUm9sZVBl +cm1pc3Npb25zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +VXNlclJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9InRuczpSb2xlUGVybWlzc2lvblR5cGUiIExl +bmd0aEZpZWxkPSJOb09mVXNlclJvbGVQZXJtaXNzaW9ucyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkFjY2Vzc1Jlc3RyaWN0aW9ucyIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIFNvdXJjZVR5cGU9 +InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlZmVyZW5jZXMiIFR5cGVO +YW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWZlcmVuY2VzIiBUeXBl +TmFtZT0idG5zOlJlZmVyZW5jZU5vZGUiIExlbmd0aEZpZWxkPSJOb09mUmVmZXJlbmNlcyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkV2ZW50Tm90aWZpZXIiIFR5cGVOYW1lPSJvcGM6Qnl0ZSIg +Lz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1l +PSJPYmplY3RUeXBlTm9kZSIgQmFzZVR5cGU9InRuczpUeXBlTm9kZSI+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJOb2RlSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIFNvdXJjZVR5cGU9InRuczpOb2Rl +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUNsYXNzIiBUeXBlTmFtZT0idG5zOk5vZGVD +bGFzcyIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCcm93 +c2VOYW1lIiBUeXBlTmFtZT0idWE6UXVhbGlmaWVkTmFtZSIgU291cmNlVHlwZT0idG5zOk5vZGUi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNwbGF5TmFtZSIgVHlwZU5hbWU9InVhOkxvY2Fs +aXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +RGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6 +Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpV +SW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNl +cldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9Im9w +YzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJvbGVQZXJtaXNzaW9ucyIgVHlwZU5h +bWU9InRuczpSb2xlUGVybWlzc2lvblR5cGUiIExlbmd0aEZpZWxkPSJOb09mUm9sZVBlcm1pc3Np +b25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlVzZXJSb2xlUGVybWlzc2lvbnMiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJVc2VyUm9sZVBlcm1p +c3Npb25zIiBUeXBlTmFtZT0idG5zOlJvbGVQZXJtaXNzaW9uVHlwZSIgTGVuZ3RoRmllbGQ9Ik5v +T2ZVc2VyUm9sZVBlcm1pc3Npb25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWNjZXNzUmVz +dHJpY3Rpb25zIiBUeXBlTmFtZT0ib3BjOlVJbnQxNiIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVmZXJlbmNlcyIgVHlwZU5hbWU9Im9wYzpJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlZmVyZW5jZXMiIFR5cGVOYW1lPSJ0bnM6UmVm +ZXJlbmNlTm9kZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZWZlcmVuY2VzIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iSXNBYnN0cmFjdCIgVHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICA8L29wYzpT +dHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlZhcmlhYmxlTm9k +ZSIgQmFzZVR5cGU9InRuczpJbnN0YW5jZU5vZGUiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9k +ZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik5vZGVDbGFzcyIgVHlwZU5hbWU9InRuczpOb2RlQ2xhc3MiIFNvdXJj +ZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQnJvd3NlTmFtZSIgVHlw +ZU5hbWU9InVhOlF1YWxpZmllZE5hbWUiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iRGlzcGxheU5hbWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBT +b3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlc2NyaXB0aW9u +IiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3Vy +Y2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJXcml0ZU1hc2si +IFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJ0bnM6Um9s +ZVBlcm1pc3Npb25UeXBlIiBMZW5ndGhGaWVsZD0iTm9PZlJvbGVQZXJtaXNzaW9ucyIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZVc2VyUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0ib3Bj +OkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlclJvbGVQZXJtaXNzaW9ucyIgVHlw +ZU5hbWU9InRuczpSb2xlUGVybWlzc2lvblR5cGUiIExlbmd0aEZpZWxkPSJOb09mVXNlclJvbGVQ +ZXJtaXNzaW9ucyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFjY2Vzc1Jlc3RyaWN0aW9ucyIg +VHlwZU5hbWU9Im9wYzpVSW50MTYiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTm9PZlJlZmVyZW5jZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJSZWZlcmVuY2VzIiBUeXBlTmFtZT0idG5zOlJlZmVyZW5jZU5vZGUi +IExlbmd0aEZpZWxkPSJOb09mUmVmZXJlbmNlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlZh +bHVlIiBUeXBlTmFtZT0idWE6VmFyaWFudCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRhdGFU +eXBlIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVmFsdWVS +YW5rIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkFy +cmF5RGltZW5zaW9ucyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkFycmF5RGltZW5zaW9ucyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIExlbmd0aEZpZWxkPSJO +b09mQXJyYXlEaW1lbnNpb25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWNjZXNzTGV2ZWwi +IFR5cGVOYW1lPSJvcGM6Qnl0ZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJBY2Nlc3NM +ZXZlbCIgVHlwZU5hbWU9Im9wYzpCeXRlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTWluaW11 +bVNhbXBsaW5nSW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iSGlzdG9yaXppbmciIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkFjY2Vzc0xldmVsRXgiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICA8 +L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlZhcmlh +YmxlVHlwZU5vZGUiIEJhc2VUeXBlPSJ0bnM6VHlwZU5vZGUiPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVDbGFzcyIgVHlwZU5hbWU9InRuczpOb2RlQ2xhc3Mi +IFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQnJvd3NlTmFt +ZSIgVHlwZU5hbWU9InVhOlF1YWxpZmllZE5hbWUiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzcGxheU5hbWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRU +ZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlc2Ny +aXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0idG5zOk5vZGUi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMy +IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJXcml0 +ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJ0 +bnM6Um9sZVBlcm1pc3Npb25UeXBlIiBMZW5ndGhGaWVsZD0iTm9PZlJvbGVQZXJtaXNzaW9ucyIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZVc2VyUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFt +ZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlclJvbGVQZXJtaXNzaW9u +cyIgVHlwZU5hbWU9InRuczpSb2xlUGVybWlzc2lvblR5cGUiIExlbmd0aEZpZWxkPSJOb09mVXNl +clJvbGVQZXJtaXNzaW9ucyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFjY2Vzc1Jlc3RyaWN0 +aW9ucyIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlZmVyZW5jZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWZlcmVuY2VzIiBUeXBlTmFtZT0idG5zOlJlZmVyZW5j +ZU5vZGUiIExlbmd0aEZpZWxkPSJOb09mUmVmZXJlbmNlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlZhbHVlIiBUeXBlTmFtZT0idWE6VmFyaWFudCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkRhdGFUeXBlIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +VmFsdWVSYW5rIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +Tm9PZkFycmF5RGltZW5zaW9ucyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkFycmF5RGltZW5zaW9ucyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIExlbmd0aEZp +ZWxkPSJOb09mQXJyYXlEaW1lbnNpb25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNBYnN0 +cmFjdCIgVHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlJlZmVyZW5jZVR5cGVOb2RlIiBCYXNlVHlw +ZT0idG5zOlR5cGVOb2RlIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVJZCIgVHlwZU5hbWU9 +InVhOk5vZGVJZCIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJOb2RlQ2xhc3MiIFR5cGVOYW1lPSJ0bnM6Tm9kZUNsYXNzIiBTb3VyY2VUeXBlPSJ0bnM6Tm9k +ZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkJyb3dzZU5hbWUiIFR5cGVOYW1lPSJ1YTpRdWFs +aWZpZWROYW1lIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkRpc3BsYXlOYW1lIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0idG5z +Ok5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEZXNjcmlwdGlvbiIgVHlwZU5hbWU9InVh +OkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0idG5zOk5v +ZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJVc2VyV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3Bj +OlVJbnQzMiIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b09mUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0idG5zOlJvbGVQZXJtaXNzaW9uVHlw +ZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZSb2xlUGVybWlzc2lvbnMiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mVXNlclJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJ0bnM6Um9s +ZVBlcm1pc3Npb25UeXBlIiBMZW5ndGhGaWVsZD0iTm9PZlVzZXJSb2xlUGVybWlzc2lvbnMiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBY2Nlc3NSZXN0cmljdGlvbnMiIFR5cGVOYW1lPSJvcGM6 +VUludDE2IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5v +T2ZSZWZlcmVuY2VzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iUmVmZXJlbmNlcyIgVHlwZU5hbWU9InRuczpSZWZlcmVuY2VOb2RlIiBMZW5ndGhGaWVsZD0i +Tm9PZlJlZmVyZW5jZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJc0Fic3RyYWN0IiBUeXBl +TmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTeW1tZXRyaWMiIFR5 +cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkludmVyc2VOYW1l +IiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+ +DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJNZXRob2ROb2RlIiBCYXNlVHlwZT0idG5z +Okluc3RhbmNlTm9kZSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb2RlSWQiIFR5cGVOYW1lPSJ1 +YTpOb2RlSWQiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +Tm9kZUNsYXNzIiBUeXBlTmFtZT0idG5zOk5vZGVDbGFzcyIgU291cmNlVHlwZT0idG5zOk5vZGUi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCcm93c2VOYW1lIiBUeXBlTmFtZT0idWE6UXVhbGlm +aWVkTmFtZSIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJE +aXNwbGF5TmFtZSIgVHlwZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpO +b2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ1YTpM +b2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2Rl +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlcldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpV +SW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9P +ZlJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IlJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9InRuczpSb2xlUGVybWlzc2lvblR5cGUi +IExlbmd0aEZpZWxkPSJOb09mUm9sZVBlcm1pc3Npb25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iTm9PZlVzZXJSb2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJVc2VyUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0idG5zOlJvbGVQ +ZXJtaXNzaW9uVHlwZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZVc2VyUm9sZVBlcm1pc3Npb25zIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iQWNjZXNzUmVzdHJpY3Rpb25zIiBUeXBlTmFtZT0ib3BjOlVJ +bnQxNiIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09m +UmVmZXJlbmNlcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlJlZmVyZW5jZXMiIFR5cGVOYW1lPSJ0bnM6UmVmZXJlbmNlTm9kZSIgTGVuZ3RoRmllbGQ9Ik5v +T2ZSZWZlcmVuY2VzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRXhlY3V0YWJsZSIgVHlwZU5h +bWU9Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlckV4ZWN1dGFibGUi +IFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAg +PG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJWaWV3Tm9kZSIgQmFzZVR5cGU9InRuczpJbnN0YW5j +ZU5vZGUiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlk +IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVDbGFz +cyIgVHlwZU5hbWU9InRuczpOb2RlQ2xhc3MiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQnJvd3NlTmFtZSIgVHlwZU5hbWU9InVhOlF1YWxpZmllZE5hbWUi +IFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzcGxheU5h +bWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlc2NyaXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVk +VGV4dCIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0 +ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBT +b3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSb2xlUGVy +bWlzc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJS +b2xlUGVybWlzc2lvbnMiIFR5cGVOYW1lPSJ0bnM6Um9sZVBlcm1pc3Npb25UeXBlIiBMZW5ndGhG +aWVsZD0iTm9PZlJvbGVQZXJtaXNzaW9ucyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZV +c2VyUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iVXNlclJvbGVQZXJtaXNzaW9ucyIgVHlwZU5hbWU9InRuczpSb2xlUGVybWlzc2lv +blR5cGUiIExlbmd0aEZpZWxkPSJOb09mVXNlclJvbGVQZXJtaXNzaW9ucyIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkFjY2Vzc1Jlc3RyaWN0aW9ucyIgVHlwZU5hbWU9Im9wYzpVSW50MTYiIFNv +dXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlZmVyZW5j +ZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWZlcmVu +Y2VzIiBUeXBlTmFtZT0idG5zOlJlZmVyZW5jZU5vZGUiIExlbmd0aEZpZWxkPSJOb09mUmVmZXJl +bmNlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNvbnRhaW5zTm9Mb29wcyIgVHlwZU5hbWU9 +Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRXZlbnROb3RpZmllciIgVHlw +ZU5hbWU9Im9wYzpCeXRlIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0 +cnVjdHVyZWRUeXBlIE5hbWU9IkRhdGFUeXBlTm9kZSIgQmFzZVR5cGU9InRuczpUeXBlTm9kZSI+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb2RlSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIFNvdXJj +ZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUNsYXNzIiBUeXBl +TmFtZT0idG5zOk5vZGVDbGFzcyIgU291cmNlVHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJCcm93c2VOYW1lIiBUeXBlTmFtZT0idWE6UXVhbGlmaWVkTmFtZSIgU291cmNl +VHlwZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNwbGF5TmFtZSIgVHlw +ZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iRGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBT +b3VyY2VUeXBlPSJ0bnM6Tm9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IldyaXRlTWFzayIg +VHlwZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iVXNlcldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5 +cGU9InRuczpOb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJvbGVQZXJtaXNzaW9u +cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJvbGVQZXJt +aXNzaW9ucyIgVHlwZU5hbWU9InRuczpSb2xlUGVybWlzc2lvblR5cGUiIExlbmd0aEZpZWxkPSJO +b09mUm9sZVBlcm1pc3Npb25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlVzZXJSb2xl +UGVybWlzc2lvbnMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJVc2VyUm9sZVBlcm1pc3Npb25zIiBUeXBlTmFtZT0idG5zOlJvbGVQZXJtaXNzaW9uVHlwZSIg +TGVuZ3RoRmllbGQ9Ik5vT2ZVc2VyUm9sZVBlcm1pc3Npb25zIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iQWNjZXNzUmVzdHJpY3Rpb25zIiBUeXBlTmFtZT0ib3BjOlVJbnQxNiIgU291cmNlVHlw +ZT0idG5zOk5vZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVmZXJlbmNlcyIgVHlw +ZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlZmVyZW5jZXMiIFR5 +cGVOYW1lPSJ0bnM6UmVmZXJlbmNlTm9kZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZWZlcmVuY2VzIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNBYnN0cmFjdCIgVHlwZU5hbWU9Im9wYzpCb29sZWFu +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVR5cGVEZWZpbml0aW9uIiBUeXBlTmFtZT0i +dWE6RXh0ZW5zaW9uT2JqZWN0IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IlJlZmVyZW5jZU5vZGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNlVHlwZUlkIiBUeXBlTmFt +ZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNJbnZlcnNlIiBUeXBlTmFt +ZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUYXJnZXRJZCIgVHlwZU5h +bWU9InVhOkV4cGFuZGVkTm9kZUlkIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8 +b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkFyZ3VtZW50IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWUiIFR5cGVOYW1lPSJvcGM6U3RyaW5n +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVR5cGUiIFR5cGVOYW1lPSJ1YTpOb2RlSWQi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1ZVJhbmsiIFR5cGVOYW1lPSJvcGM6SW50MzIi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mQXJyYXlEaW1lbnNpb25zIiBUeXBlTmFtZT0i +b3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQXJyYXlEaW1lbnNpb25zIiBUeXBl +TmFtZT0ib3BjOlVJbnQzMiIgTGVuZ3RoRmllbGQ9Ik5vT2ZBcnJheURpbWVuc2lvbnMiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJEZXNjcmlwdGlvbiIgVHlwZU5hbWU9InVhOkxvY2FsaXplZFRl +eHQiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUg +TmFtZT0iRW51bVZhbHVlVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJWYWx1ZSIgVHlwZU5hbWU9Im9wYzpJbnQ2NCIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkRpc3BsYXlOYW1lIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlc2NyaXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVk +VGV4dCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlw +ZSBOYW1lPSJFbnVtRmllbGQiIEJhc2VUeXBlPSJ0bnM6RW51bVZhbHVlVHlwZSI+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJWYWx1ZSIgVHlwZU5hbWU9Im9wYzpJbnQ2NCIgU291cmNlVHlwZT0idG5z +OkVudW1WYWx1ZVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNwbGF5TmFtZSIgVHlw +ZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpFbnVtVmFsdWVUeXBlIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6 +ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6RW51bVZhbHVlVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik5hbWUiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVk +VHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ik9wdGlvblNldCIgQmFzZVR5cGU9 +InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1ZSIgVHlwZU5h +bWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVmFsaWRCaXRzIiBU +eXBlTmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQog +IDxvcGM6T3BhcXVlVHlwZSBOYW1lPSJOb3JtYWxpemVkU3RyaW5nIj4NCiAgPC9vcGM6T3BhcXVl +VHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0iRGVjaW1hbFN0cmluZyI+DQogIDwvb3Bj +Ok9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9IkR1cmF0aW9uU3RyaW5nIj4N +CiAgPC9vcGM6T3BhcXVlVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0iVGltZVN0cmlu +ZyI+DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9IkRhdGVT +dHJpbmciPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6T3BhcXVlVHlwZSBOYW1lPSJE +dXJhdGlvbiI+DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9 +IlV0Y1RpbWUiPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6T3BhcXVlVHlwZSBOYW1l +PSJUaW1lIj4NCiAgPC9vcGM6T3BhcXVlVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0i +RGF0ZSI+DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9Ikxv +Y2FsZUlkIj4NCiAgPC9vcGM6T3BhcXVlVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5h +bWU9IlRpbWVab25lRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iT2Zmc2V0IiBUeXBlTmFtZT0ib3BjOkludDE2IiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iRGF5bGlnaHRTYXZpbmdJbk9mZnNldCIgVHlwZU5hbWU9Im9wYzpCb29s +ZWFuIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFt +ZT0iSW5kZXgiPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6T3BhcXVlVHlwZSBOYW1l +PSJJbnRlZ2VySWQiPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5 +cGUgTmFtZT0iQXBwbGljYXRpb25UeXBlIiBMZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVu +dW1lcmF0ZWRWYWx1ZSBOYW1lPSJTZXJ2ZXIiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVy +YXRlZFZhbHVlIE5hbWU9IkNsaWVudCIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iQ2xpZW50QW5kU2VydmVyIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVudW1l +cmF0ZWRWYWx1ZSBOYW1lPSJEaXNjb3ZlcnlTZXJ2ZXIiIFZhbHVlPSIzIiAvPg0KICA8L29wYzpF +bnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkFwcGxpY2F0aW9u +RGVzY3JpcHRpb24iIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iQXBwbGljYXRpb25VcmkiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iUHJvZHVjdFVyaSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJBcHBsaWNhdGlvbk5hbWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRU +ZXh0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQXBwbGljYXRpb25UeXBlIiBUeXBlTmFtZT0i +dG5zOkFwcGxpY2F0aW9uVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkdhdGV3YXlTZXJ2 +ZXJVcmkiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlz +Y292ZXJ5UHJvZmlsZVVyaSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJOb09mRGlzY292ZXJ5VXJscyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IkRpc2NvdmVyeVVybHMiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiBMZW5n +dGhGaWVsZD0iTm9PZkRpc2NvdmVyeVVybHMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iUmVxdWVzdEhlYWRlciIgQmFzZVR5cGU9InVh +OkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBdXRoZW50aWNhdGlvblRv +a2VuIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVGltZXN0 +YW1wIiBUeXBlTmFtZT0ib3BjOkRhdGVUaW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVx +dWVzdEhhbmRsZSIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJSZXR1cm5EaWFnbm9zdGljcyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJBdWRpdEVudHJ5SWQiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iVGltZW91dEhpbnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQWRkaXRpb25hbEhlYWRlciIgVHlwZU5hbWU9InVhOkV4dGVuc2lv +bk9iamVjdCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVk +VHlwZSBOYW1lPSJSZXNwb25zZUhlYWRlciIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUaW1lc3RhbXAiIFR5cGVOYW1lPSJvcGM6RGF0ZVRpbWUi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGFuZGxlIiBUeXBlTmFtZT0ib3BjOlVJ +bnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZpY2VSZXN1bHQiIFR5cGVOYW1lPSJ1 +YTpTdGF0dXNDb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmljZURpYWdub3N0aWNz +IiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0luZm8iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b09mU3RyaW5nVGFibGUiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJTdHJpbmdUYWJsZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIExlbmd0aEZpZWxkPSJOb09m +U3RyaW5nVGFibGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBZGRpdGlvbmFsSGVhZGVyIiBU +eXBlTmFtZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0iVmVyc2lvblRpbWUiPg0KICA8L29wYzpPcGFxdWVU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iU2VydmljZUZhdWx0IiBCYXNlVHlw +ZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3BvbnNlSGVh +ZGVyIiBUeXBlTmFtZT0idG5zOlJlc3BvbnNlSGVhZGVyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVk +VHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlNlc3Npb25sZXNzSW52b2tlUmVx +dWVzdFR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iVXJpc1ZlcnNpb24iIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTm9PZk5hbWVzcGFjZVVyaXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOYW1lc3BhY2VVcmlzIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVu +Z3RoRmllbGQ9Ik5vT2ZOYW1lc3BhY2VVcmlzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9P +ZlNlcnZlclVyaXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJTZXJ2ZXJVcmlzIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZTZXJ2 +ZXJVcmlzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkxvY2FsZUlkcyIgVHlwZU5hbWU9 +Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkxvY2FsZUlkcyIgVHlwZU5hbWU9 +Im9wYzpTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mTG9jYWxlSWRzIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iU2VydmljZUlkIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgPC9vcGM6U3Ry +dWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJTZXNzaW9ubGVzc0lu +dm9rZVJlc3BvbnNlVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOb09mTmFtZXNwYWNlVXJpcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5hbWVzcGFjZVVyaXMiIFR5cGVOYW1lPSJvcGM6U3RyaW5n +IiBMZW5ndGhGaWVsZD0iTm9PZk5hbWVzcGFjZVVyaXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJOb09mU2VydmVyVXJpcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IlNlcnZlclVyaXMiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiBMZW5ndGhGaWVsZD0iTm9P +ZlNlcnZlclVyaXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2aWNlSWQiIFR5cGVOYW1l +PSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVj +dHVyZWRUeXBlIE5hbWU9IkZpbmRTZXJ2ZXJzUmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lv +bk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0i +dG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmRwb2ludFVybCIg +VHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mTG9jYWxl +SWRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTG9jYWxl +SWRzIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZMb2NhbGVJZHMiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mU2VydmVyVXJpcyIgVHlwZU5hbWU9Im9wYzpJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZlclVyaXMiIFR5cGVOYW1lPSJvcGM6U3Ry +aW5nIiBMZW5ndGhGaWVsZD0iTm9PZlNlcnZlclVyaXMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRmluZFNlcnZlcnNSZXNwb25zZSIg +QmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNw +b25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik5vT2ZTZXJ2ZXJzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iU2VydmVycyIgVHlwZU5hbWU9InRuczpBcHBsaWNhdGlvbkRlc2NyaXB0aW9u +IiBMZW5ndGhGaWVsZD0iTm9PZlNlcnZlcnMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iU2VydmVyT25OZXR3b3JrIiBCYXNlVHlwZT0i +dWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlY29yZElkIiBUeXBl +TmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZlck5hbWUiIFR5 +cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzY292ZXJ5VXJs +IiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZTZXJ2 +ZXJDYXBhYmlsaXRpZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJTZXJ2ZXJDYXBhYmlsaXRpZXMiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiBMZW5ndGhGaWVs +ZD0iTm9PZlNlcnZlckNhcGFiaWxpdGllcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoN +CiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJGaW5kU2VydmVyc09uTmV0d29ya1JlcXVlc3Qi +IEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVx +dWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpSZXF1ZXN0SGVhZGVyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iU3RhcnRpbmdSZWNvcmRJZCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJNYXhSZWNvcmRzVG9SZXR1cm4iIFR5cGVOYW1lPSJvcGM6VUludDMy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlNlcnZlckNhcGFiaWxpdHlGaWx0ZXIiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJDYXBhYmls +aXR5RmlsdGVyIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZTZXJ2ZXJD +YXBhYmlsaXR5RmlsdGVyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0 +cnVjdHVyZWRUeXBlIE5hbWU9IkZpbmRTZXJ2ZXJzT25OZXR3b3JrUmVzcG9uc2UiIEJhc2VUeXBl +PSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9uc2VIZWFk +ZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJMYXN0Q291bnRlclJlc2V0VGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik5vT2ZTZXJ2ZXJzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iU2VydmVycyIgVHlwZU5hbWU9InRuczpTZXJ2ZXJPbk5ldHdvcmsi +IExlbmd0aEZpZWxkPSJOb09mU2VydmVycyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoN +CiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9IkFwcGxpY2F0aW9uSW5zdGFuY2VDZXJ0aWZpY2F0ZSI+ +DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJNZXNz +YWdlU2VjdXJpdHlNb2RlIiBMZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJJbnZhbGlkIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1 +ZSBOYW1lPSJOb25lIiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1l +PSJTaWduIiBWYWx1ZT0iMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTaWdu +QW5kRW5jcnlwdCIgVmFsdWU9IjMiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxv +cGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iVXNlclRva2VuVHlwZSIgTGVuZ3RoSW5CaXRzPSIzMiI+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iQW5vbnltb3VzIiBWYWx1ZT0iMCIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVc2VyTmFtZSIgVmFsdWU9IjEiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iQ2VydGlmaWNhdGUiIFZhbHVlPSIyIiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Iklzc3VlZFRva2VuIiBWYWx1ZT0iMyIgLz4N +CiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJV +c2VyVG9rZW5Qb2xpY3kiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iUG9saWN5SWQiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iVG9rZW5UeXBlIiBUeXBlTmFtZT0idG5zOlVzZXJUb2tlblR5cGUiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJJc3N1ZWRUb2tlblR5cGUiIFR5cGVOYW1lPSJvcGM6U3RyaW5n +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNzdWVyRW5kcG9pbnRVcmwiIFR5cGVOYW1lPSJv +cGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VjdXJpdHlQb2xpY3lVcmkiIFR5 +cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IkVuZHBvaW50RGVzY3JpcHRpb24iIEJhc2VUeXBlPSJ1YTpF +eHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRW5kcG9pbnRVcmwiIFR5cGVO +YW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmVyIiBUeXBlTmFt +ZT0idG5zOkFwcGxpY2F0aW9uRGVzY3JpcHRpb24iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJT +ZXJ2ZXJDZXJ0aWZpY2F0ZSIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iU2VjdXJpdHlNb2RlIiBUeXBlTmFtZT0idG5zOk1lc3NhZ2VTZWN1cml0eU1v +ZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZWN1cml0eVBvbGljeVVyaSIgVHlwZU5hbWU9 +Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mVXNlcklkZW50aXR5VG9r +ZW5zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlcklk +ZW50aXR5VG9rZW5zIiBUeXBlTmFtZT0idG5zOlVzZXJUb2tlblBvbGljeSIgTGVuZ3RoRmllbGQ9 +Ik5vT2ZVc2VySWRlbnRpdHlUb2tlbnMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUcmFuc3Bv +cnRQcm9maWxlVXJpIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlNlY3VyaXR5TGV2ZWwiIFR5cGVOYW1lPSJvcGM6Qnl0ZSIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJHZXRFbmRwb2ludHNSZXF1 +ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkVuZHBvaW50VXJsIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik5vT2ZMb2NhbGVJZHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJMb2NhbGVJZHMiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiBMZW5n +dGhGaWVsZD0iTm9PZkxvY2FsZUlkcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZQcm9m +aWxlVXJpcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlBy +b2ZpbGVVcmlzIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZQcm9maWxl +VXJpcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlw +ZSBOYW1lPSJHZXRFbmRwb2ludHNSZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVj +dCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpS +ZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZFbmRwb2ludHMiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmRwb2ludHMiIFR5 +cGVOYW1lPSJ0bnM6RW5kcG9pbnREZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9Ik5vT2ZFbmRwb2lu +dHMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUg +TmFtZT0iUmVnaXN0ZXJlZFNlcnZlciIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJVcmkiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iUHJvZHVjdFVyaSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mU2VydmVyTmFtZXMiIFR5cGVOYW1lPSJvcGM6SW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJOYW1lcyIgVHlwZU5hbWU9InVhOkxv +Y2FsaXplZFRleHQiIExlbmd0aEZpZWxkPSJOb09mU2VydmVyTmFtZXMiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJTZXJ2ZXJUeXBlIiBUeXBlTmFtZT0idG5zOkFwcGxpY2F0aW9uVHlwZSIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkdhdGV3YXlTZXJ2ZXJVcmkiIFR5cGVOYW1lPSJvcGM6U3Ry +aW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpc2NvdmVyeVVybHMiIFR5cGVOYW1l +PSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNjb3ZlcnlVcmxzIiBUeXBl +TmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZEaXNjb3ZlcnlVcmxzIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iU2VtYXBob3JlRmlsZVBhdGgiIFR5cGVOYW1lPSJvcGM6U3RyaW5n +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNPbmxpbmUiIFR5cGVOYW1lPSJvcGM6Qm9vbGVh +biIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBO +YW1lPSJSZWdpc3RlclNlcnZlclJlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3Qi +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpSZXF1 +ZXN0SGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmVyIiBUeXBlTmFtZT0idG5z +OlJlZ2lzdGVyZWRTZXJ2ZXIiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6 +U3RydWN0dXJlZFR5cGUgTmFtZT0iUmVnaXN0ZXJTZXJ2ZXJSZXNwb25zZSIgQmFzZVR5cGU9InVh +OkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIg +VHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+ +DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEaXNjb3ZlcnlDb25maWd1cmF0aW9uIiBC +YXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoN +CiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJNZG5zRGlzY292ZXJ5Q29uZmlndXJhdGlvbiIg +QmFzZVR5cGU9InRuczpEaXNjb3ZlcnlDb25maWd1cmF0aW9uIj4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9Ik1kbnNTZXJ2ZXJOYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik5vT2ZTZXJ2ZXJDYXBhYmlsaXRpZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJDYXBhYmlsaXRpZXMiIFR5cGVOYW1lPSJvcGM6 +U3RyaW5nIiBMZW5ndGhGaWVsZD0iTm9PZlNlcnZlckNhcGFiaWxpdGllcyIgLz4NCiAgPC9vcGM6 +U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJSZWdpc3RlclNl +cnZlcjJSZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZlciIgVHlwZU5hbWU9InRuczpSZWdpc3RlcmVkU2Vy +dmVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpc2NvdmVyeUNvbmZpZ3VyYXRpb24i +IFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNjb3ZlcnlD +b25maWd1cmF0aW9uIiBUeXBlTmFtZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiBMZW5ndGhGaWVsZD0i +Tm9PZkRpc2NvdmVyeUNvbmZpZ3VyYXRpb24iIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iUmVnaXN0ZXJTZXJ2ZXIyUmVzcG9uc2UiIEJh +c2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9u +c2VIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJOb09mQ29uZmlndXJhdGlvblJlc3VsdHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDb25maWd1cmF0aW9uUmVzdWx0cyIgVHlwZU5hbWU9InVh +OlN0YXR1c0NvZGUiIExlbmd0aEZpZWxkPSJOb09mQ29uZmlndXJhdGlvblJlc3VsdHMiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0ib3BjOklu +dDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0i +dWE6RGlhZ25vc3RpY0luZm8iIExlbmd0aEZpZWxkPSJOb09mRGlhZ25vc3RpY0luZm9zIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IlNl +Y3VyaXR5VG9rZW5SZXF1ZXN0VHlwZSIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iSXNzdWUiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9IlJlbmV3IiBWYWx1ZT0iMSIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+ +DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJDaGFubmVsU2VjdXJpdHlUb2tlbiIgQmFz +ZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDaGFubmVs +SWQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVG9rZW5J +ZCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDcmVhdGVk +QXQiIFR5cGVOYW1lPSJvcGM6RGF0ZVRpbWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXZp +c2VkTGlmZXRpbWUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVk +VHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ik9wZW5TZWN1cmVDaGFubmVsUmVx +dWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJDbGllbnRQcm90b2NvbFZlcnNpb24iIFR5cGVOYW1lPSJvcGM6VUludDMy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdFR5cGUiIFR5cGVOYW1lPSJ0bnM6U2Vj +dXJpdHlUb2tlblJlcXVlc3RUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VjdXJpdHlN +b2RlIiBUeXBlTmFtZT0idG5zOk1lc3NhZ2VTZWN1cml0eU1vZGUiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJDbGllbnROb25jZSIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iUmVxdWVzdGVkTGlmZXRpbWUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAv +Pg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9 +Ik9wZW5TZWN1cmVDaGFubmVsUmVzcG9uc2UiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3Qi +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9uc2VIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVz +cG9uc2VIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJQcm90b2NvbFZlcnNp +b24iIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VjdXJp +dHlUb2tlbiIgVHlwZU5hbWU9InRuczpDaGFubmVsU2VjdXJpdHlUb2tlbiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlNlcnZlck5vbmNlIiBUeXBlTmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ2xv +c2VTZWN1cmVDaGFubmVsUmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RI +ZWFkZXIiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iQ2xvc2VTZWN1cmVDaGFubmVsUmVzcG9uc2UiIEJhc2VUeXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9uc2VIZWFkZXIiIFR5cGVOYW1l +PSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxv +cGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iU2lnbmVkU29mdHdhcmVDZXJ0aWZpY2F0ZSIgQmFzZVR5 +cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDZXJ0aWZpY2F0 +ZURhdGEiIFR5cGVOYW1lPSJvcGM6Qnl0ZVN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlNpZ25hdHVyZSIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0iU2Vzc2lvbkF1dGhlbnRpY2F0aW9u +VG9rZW4iPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iU2lnbmF0dXJlRGF0YSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJBbGdvcml0aG0iIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iU2lnbmF0dXJlIiBUeXBlTmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ3Jl +YXRlU2Vzc2lvblJlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpSZXF1ZXN0SGVhZGVy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ2xpZW50RGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ0 +bnM6QXBwbGljYXRpb25EZXNjcmlwdGlvbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZl +clVyaSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmRw +b2ludFVybCIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJT +ZXNzaW9uTmFtZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJDbGllbnROb25jZSIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iQ2xpZW50Q2VydGlmaWNhdGUiIFR5cGVOYW1lPSJvcGM6Qnl0ZVN0cmluZyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RlZFNlc3Npb25UaW1lb3V0IiBUeXBlTmFtZT0i +b3BjOkRvdWJsZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1heFJlc3BvbnNlTWVzc2FnZVNp +emUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0K +ICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkNyZWF0ZVNlc3Npb25SZXNwb25zZSIgQmFzZVR5 +cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhl +YWRlciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlNlc3Npb25JZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkF1dGhlbnRpY2F0aW9uVG9rZW4iIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJSZXZpc2VkU2Vzc2lvblRpbWVvdXQiIFR5cGVOYW1lPSJvcGM6RG91Ymxl +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmVyTm9uY2UiIFR5cGVOYW1lPSJvcGM6Qnl0 +ZVN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZlckNlcnRpZmljYXRlIiBUeXBl +TmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mU2VydmVy +RW5kcG9pbnRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +U2VydmVyRW5kcG9pbnRzIiBUeXBlTmFtZT0idG5zOkVuZHBvaW50RGVzY3JpcHRpb24iIExlbmd0 +aEZpZWxkPSJOb09mU2VydmVyRW5kcG9pbnRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9P +ZlNlcnZlclNvZnR3YXJlQ2VydGlmaWNhdGVzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iU2VydmVyU29mdHdhcmVDZXJ0aWZpY2F0ZXMiIFR5cGVOYW1lPSJ0 +bnM6U2lnbmVkU29mdHdhcmVDZXJ0aWZpY2F0ZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZTZXJ2ZXJTb2Z0 +d2FyZUNlcnRpZmljYXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcnZlclNpZ25hdHVy +ZSIgVHlwZU5hbWU9InRuczpTaWduYXR1cmVEYXRhIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +TWF4UmVxdWVzdE1lc3NhZ2VTaXplIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgPC9vcGM6 +U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJVc2VySWRlbnRp +dHlUb2tlbiIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJQb2xpY3lJZCIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVy +ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQW5vbnltb3VzSWRlbnRpdHlU +b2tlbiIgQmFzZVR5cGU9InRuczpVc2VySWRlbnRpdHlUb2tlbiI+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJQb2xpY3lJZCIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIFNvdXJjZVR5cGU9InRuczpVc2Vy +SWRlbnRpdHlUb2tlbiIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1 +Y3R1cmVkVHlwZSBOYW1lPSJVc2VyTmFtZUlkZW50aXR5VG9rZW4iIEJhc2VUeXBlPSJ0bnM6VXNl +cklkZW50aXR5VG9rZW4iPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUG9saWN5SWQiIFR5cGVOYW1l +PSJvcGM6U3RyaW5nIiBTb3VyY2VUeXBlPSJ0bnM6VXNlcklkZW50aXR5VG9rZW4iIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJVc2VyTmFtZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJQYXNzd29yZCIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iRW5jcnlwdGlvbkFsZ29yaXRobSIgVHlwZU5hbWU9Im9wYzpT +dHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iWDUwOUlkZW50aXR5VG9rZW4iIEJhc2VUeXBlPSJ0bnM6VXNlcklkZW50aXR5VG9r +ZW4iPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUG9saWN5SWQiIFR5cGVOYW1lPSJvcGM6U3RyaW5n +IiBTb3VyY2VUeXBlPSJ0bnM6VXNlcklkZW50aXR5VG9rZW4iIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJDZXJ0aWZpY2F0ZURhdGEiIFR5cGVOYW1lPSJvcGM6Qnl0ZVN0cmluZyIgLz4NCiAgPC9v +cGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJJc3N1ZWRJ +ZGVudGl0eVRva2VuIiBCYXNlVHlwZT0idG5zOlVzZXJJZGVudGl0eVRva2VuIj4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlBvbGljeUlkIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgU291cmNlVHlwZT0i +dG5zOlVzZXJJZGVudGl0eVRva2VuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVG9rZW5EYXRh +IiBUeXBlTmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmNy +eXB0aW9uQWxnb3JpdGhtIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9IlJzYUVuY3J5cHRlZFNlY3JldCI+ +DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9IkVjY0VuY3J5 +cHRlZFNlY3JldCI+DQogIDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlw +ZSBOYW1lPSJBY3RpdmF0ZVNlc3Npb25SZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2Jq +ZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6 +UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNsaWVudFNpZ25hdHVyZSIg +VHlwZU5hbWU9InRuczpTaWduYXR1cmVEYXRhIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9P +ZkNsaWVudFNvZnR3YXJlQ2VydGlmaWNhdGVzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQ2xpZW50U29mdHdhcmVDZXJ0aWZpY2F0ZXMiIFR5cGVOYW1lPSJ0 +bnM6U2lnbmVkU29mdHdhcmVDZXJ0aWZpY2F0ZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZDbGllbnRTb2Z0 +d2FyZUNlcnRpZmljYXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZMb2NhbGVJZHMi +IFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJMb2NhbGVJZHMi +IFR5cGVOYW1lPSJvcGM6U3RyaW5nIiBMZW5ndGhGaWVsZD0iTm9PZkxvY2FsZUlkcyIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJJZGVudGl0eVRva2VuIiBUeXBlTmFtZT0idWE6RXh0ZW5z +aW9uT2JqZWN0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlclRva2VuU2lnbmF0dXJlIiBU +eXBlTmFtZT0idG5zOlNpZ25hdHVyZURhdGEiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQWN0aXZhdGVTZXNzaW9uUmVzcG9uc2UiIEJh +c2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9u +c2VIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTZXJ2ZXJOb25jZSIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iTm9PZlJlc3VsdHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJSZXN1bHRzIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgTGVuZ3Ro +RmllbGQ9Ik5vT2ZSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0 +aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRp +YWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0i +Tm9PZkRpYWdub3N0aWNJbmZvcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJDbG9zZVNlc3Npb25SZXF1ZXN0IiBCYXNlVHlwZT0idWE6 +RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5 +cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlbGV0 +ZVN1YnNjcmlwdGlvbnMiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJDbG9zZVNlc3Npb25SZXNw +b25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgPC9v +cGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJDYW5jZWxS +ZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIYW5kbGUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkNh +bmNlbFJlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlc3BvbnNlSGVhZGVyIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ2FuY2VsQ291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMy +IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5h +bWU9Ik5vZGVBdHRyaWJ1dGVzTWFzayIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iQWNjZXNzTGV2ZWwiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9IkFycmF5RGltZW5zaW9ucyIgVmFsdWU9IjIiIC8+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iQnJvd3NlTmFtZSIgVmFsdWU9IjQiIC8+DQogICAgPG9wYzpFbnVt +ZXJhdGVkVmFsdWUgTmFtZT0iQ29udGFpbnNOb0xvb3BzIiBWYWx1ZT0iOCIgLz4NCiAgICA8b3Bj +OkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEYXRhVHlwZSIgVmFsdWU9IjE2IiAvPg0KICAgIDxvcGM6 +RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRlc2NyaXB0aW9uIiBWYWx1ZT0iMzIiIC8+DQogICAgPG9w +YzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iRGlzcGxheU5hbWUiIFZhbHVlPSI2NCIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJFdmVudE5vdGlmaWVyIiBWYWx1ZT0iMTI4IiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkV4ZWN1dGFibGUiIFZhbHVlPSIyNTYiIC8+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSGlzdG9yaXppbmciIFZhbHVlPSI1MTIi +IC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW52ZXJzZU5hbWUiIFZhbHVlPSIx +MDI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IklzQWJzdHJhY3QiIFZhbHVl +PSIyMDQ4IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik1pbmltdW1TYW1wbGlu +Z0ludGVydmFsIiBWYWx1ZT0iNDA5NiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1l +PSJOb2RlQ2xhc3MiIFZhbHVlPSI4MTkyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9Ik5vZGVJZCIgVmFsdWU9IjE2Mzg0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9IlN5bW1ldHJpYyIgVmFsdWU9IjMyNzY4IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9IlVzZXJBY2Nlc3NMZXZlbCIgVmFsdWU9IjY1NTM2IiAvPg0KICAgIDxvcGM6RW51bWVy +YXRlZFZhbHVlIE5hbWU9IlVzZXJFeGVjdXRhYmxlIiBWYWx1ZT0iMTMxMDcyIiAvPg0KICAgIDxv +cGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlVzZXJXcml0ZU1hc2siIFZhbHVlPSIyNjIxNDQiIC8+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVmFsdWVSYW5rIiBWYWx1ZT0iNTI0Mjg4 +IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IldyaXRlTWFzayIgVmFsdWU9IjEw +NDg1NzYiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVmFsdWUiIFZhbHVlPSIy +MDk3MTUyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRhdGFUeXBlRGVmaW5p +dGlvbiIgVmFsdWU9IjQxOTQzMDQiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0i +Um9sZVBlcm1pc3Npb25zIiBWYWx1ZT0iODM4ODYwOCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJBY2Nlc3NSZXN0cmljdGlvbnMiIFZhbHVlPSIxNjc3NzIxNiIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBbGwiIFZhbHVlPSIzMzU1NDQzMSIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJCYXNlTm9kZSIgVmFsdWU9IjI2NTAxMjIwIiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik9iamVjdCIgVmFsdWU9IjI2NTAxMzQ4IiAv +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik9iamVjdFR5cGUiIFZhbHVlPSIyNjUw +MzI2OCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJWYXJpYWJsZSIgVmFsdWU9 +IjI2NTcxMzgzIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlZhcmlhYmxlVHlw +ZSIgVmFsdWU9IjI4NjAwNDM4IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik1l +dGhvZCIgVmFsdWU9IjI2NjMyNTQ4IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +IlJlZmVyZW5jZVR5cGUiIFZhbHVlPSIyNjUzNzA2MCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJWaWV3IiBWYWx1ZT0iMjY1MDEzNTYiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iTm9kZUF0dHJpYnV0ZXMiIEJhc2VU +eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3BlY2lmaWVk +QXR0cmlidXRlcyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJEaXNwbGF5TmFtZSIgVHlwZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJEZXNjcmlwdGlvbiIgVHlwZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlcldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50MzIi +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iT2JqZWN0QXR0cmlidXRlcyIgQmFzZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyI+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJTcGVjaWZpZWRBdHRyaWJ1dGVzIiBUeXBlTmFtZT0ib3BjOlVJbnQz +MiIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iRGlzcGxheU5hbWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0 +bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEZXNjcmlwdGlvbiIg +VHlwZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRl +cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50 +MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlVzZXJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6 +Tm9kZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFdmVudE5vdGlmaWVyIiBU +eXBlTmFtZT0ib3BjOkJ5dGUiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6 +U3RydWN0dXJlZFR5cGUgTmFtZT0iVmFyaWFibGVBdHRyaWJ1dGVzIiBCYXNlVHlwZT0idG5zOk5v +ZGVBdHRyaWJ1dGVzIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNwZWNpZmllZEF0dHJpYnV0ZXMi +IFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNwbGF5TmFtZSIgVHlwZU5hbWU9InVhOkxvY2FsaXpl +ZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IkRlc2NyaXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlw +ZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iV3JpdGVNYXNr +IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlcldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50 +MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlZhbHVlIiBUeXBlTmFtZT0idWE6VmFyaWFudCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkRhdGFUeXBlIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +VmFsdWVSYW5rIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +Tm9PZkFycmF5RGltZW5zaW9ucyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkFycmF5RGltZW5zaW9ucyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIExlbmd0aEZp +ZWxkPSJOb09mQXJyYXlEaW1lbnNpb25zIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWNjZXNz +TGV2ZWwiIFR5cGVOYW1lPSJvcGM6Qnl0ZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJB +Y2Nlc3NMZXZlbCIgVHlwZU5hbWU9Im9wYzpCeXRlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +TWluaW11bVNhbXBsaW5nSW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iSGlzdG9yaXppbmciIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAg +PC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJNZXRo +b2RBdHRyaWJ1dGVzIiBCYXNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIj4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlNwZWNpZmllZEF0dHJpYnV0ZXMiIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3Vy +Y2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNw +bGF5TmFtZSIgVHlwZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2Rl +QXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlc2NyaXB0aW9uIiBUeXBlTmFt +ZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291 +cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNl +cldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0 +cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkV4ZWN1dGFibGUiIFR5cGVOYW1lPSJv +cGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVzZXJFeGVjdXRhYmxlIiBUeXBl +TmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6 +U3RydWN0dXJlZFR5cGUgTmFtZT0iT2JqZWN0VHlwZUF0dHJpYnV0ZXMiIEJhc2VUeXBlPSJ0bnM6 +Tm9kZUF0dHJpYnV0ZXMiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3BlY2lmaWVkQXR0cmlidXRl +cyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpc3BsYXlOYW1lIiBUeXBlTmFtZT0idWE6TG9jYWxp +emVkVGV4dCIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iRGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VU +eXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1h +c2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJVc2VyV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJ +bnQzMiIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iSXNBYnN0cmFjdCIgVHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlZhcmlhYmxlVHlwZUF0 +dHJpYnV0ZXMiIEJhc2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iU3BlY2lmaWVkQXR0cmlidXRlcyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5 +cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpc3BsYXlO +YW1lIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRy +aWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ1 +YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VU +eXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJVc2VyV3Jp +dGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1 +dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVmFsdWUiIFR5cGVOYW1lPSJ1YTpWYXJpYW50 +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGF0YVR5cGUiIFR5cGVOYW1lPSJ1YTpOb2RlSWQi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1ZVJhbmsiIFR5cGVOYW1lPSJvcGM6SW50MzIi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mQXJyYXlEaW1lbnNpb25zIiBUeXBlTmFtZT0i +b3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQXJyYXlEaW1lbnNpb25zIiBUeXBl +TmFtZT0ib3BjOlVJbnQzMiIgTGVuZ3RoRmllbGQ9Ik5vT2ZBcnJheURpbWVuc2lvbnMiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJJc0Fic3RyYWN0IiBUeXBlTmFtZT0ib3BjOkJvb2xlYW4iIC8+ +DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0i +UmVmZXJlbmNlVHlwZUF0dHJpYnV0ZXMiIEJhc2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iU3BlY2lmaWVkQXR0cmlidXRlcyIgVHlwZU5hbWU9Im9wYzpV +SW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IkRpc3BsYXlOYW1lIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlw +ZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVzY3JpcHRp +b24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZUF0dHJp +YnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6 +VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJVc2VyV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0i +dG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNBYnN0cmFjdCIg +VHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3ltbWV0cmlj +IiBUeXBlTmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbnZlcnNl +TmFtZSIgVHlwZU5hbWU9InVhOkxvY2FsaXplZFRleHQiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRGF0YVR5cGVBdHRyaWJ1dGVzIiBC +YXNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNwZWNp +ZmllZEF0dHJpYnV0ZXMiIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9k +ZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNwbGF5TmFtZSIgVHlwZU5h +bWU9InVhOkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlc2NyaXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVk +VGV4dCIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iV3JpdGVNYXNrIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0idG5zOk5v +ZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlcldyaXRlTWFzayIgVHlw +ZU5hbWU9Im9wYzpVSW50MzIiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IklzQWJzdHJhY3QiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4N +CiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJW +aWV3QXR0cmlidXRlcyIgQmFzZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyI+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJTcGVjaWZpZWRBdHRyaWJ1dGVzIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgU291 +cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlz +cGxheU5hbWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiBTb3VyY2VUeXBlPSJ0bnM6Tm9k +ZUF0dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEZXNjcmlwdGlvbiIgVHlwZU5h +bWU9InVhOkxvY2FsaXplZFRleHQiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIFNv +dXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVz +ZXJXcml0ZU1hc2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZUF0 +dHJpYnV0ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDb250YWluc05vTG9vcHMiIFR5cGVO +YW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkV2ZW50Tm90aWZpZXIi +IFR5cGVOYW1lPSJvcGM6Qnl0ZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJHZW5lcmljQXR0cmlidXRlVmFsdWUiIEJhc2VUeXBlPSJ1 +YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQXR0cmlidXRlSWQiIFR5 +cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVmFsdWUiIFR5cGVO +YW1lPSJ1YTpWYXJpYW50IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0 +cnVjdHVyZWRUeXBlIE5hbWU9IkdlbmVyaWNBdHRyaWJ1dGVzIiBCYXNlVHlwZT0idG5zOk5vZGVB +dHRyaWJ1dGVzIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNwZWNpZmllZEF0dHJpYnV0ZXMiIFR5 +cGVOYW1lPSJvcGM6VUludDMyIiBTb3VyY2VUeXBlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNwbGF5TmFtZSIgVHlwZU5hbWU9InVhOkxvY2FsaXplZFRl +eHQiIFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkRlc2NyaXB0aW9uIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgU291cmNlVHlwZT0i +dG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iV3JpdGVNYXNrIiBU +eXBlTmFtZT0ib3BjOlVJbnQzMiIgU291cmNlVHlwZT0idG5zOk5vZGVBdHRyaWJ1dGVzIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlcldyaXRlTWFzayIgVHlwZU5hbWU9Im9wYzpVSW50MzIi +IFNvdXJjZVR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +Ik5vT2ZBdHRyaWJ1dGVWYWx1ZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJBdHRyaWJ1dGVWYWx1ZXMiIFR5cGVOYW1lPSJ0bnM6R2VuZXJpY0F0dHJpYnV0 +ZVZhbHVlIiBMZW5ndGhGaWVsZD0iTm9PZkF0dHJpYnV0ZVZhbHVlcyIgLz4NCiAgPC9vcGM6U3Ry +dWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJBZGROb2Rlc0l0ZW0i +IEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUGFy +ZW50Tm9kZUlkIiBUeXBlTmFtZT0idWE6RXhwYW5kZWROb2RlSWQiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJSZWZlcmVuY2VUeXBlSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJSZXF1ZXN0ZWROZXdOb2RlSWQiIFR5cGVOYW1lPSJ1YTpFeHBhbmRlZE5v +ZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkJyb3dzZU5hbWUiIFR5cGVOYW1lPSJ1YTpR +dWFsaWZpZWROYW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUNsYXNzIiBUeXBlTmFt +ZT0idG5zOk5vZGVDbGFzcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVBdHRyaWJ1dGVz +IiBUeXBlTmFtZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +VHlwZURlZmluaXRpb24iIFR5cGVOYW1lPSJ1YTpFeHBhbmRlZE5vZGVJZCIgLz4NCiAgPC9vcGM6 +U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJBZGROb2Rlc1Jl +c3VsdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJTdGF0dXNDb2RlIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IkFkZGVkTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkFkZE5vZGVzUmVxdWVz +dCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJS +ZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJOb09mTm9kZXNUb0FkZCIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik5vZGVzVG9BZGQiIFR5cGVOYW1lPSJ0bnM6QWRkTm9kZXNJdGVtIiBM +ZW5ndGhGaWVsZD0iTm9PZk5vZGVzVG9BZGQiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQWRkTm9kZXNSZXNwb25zZSIgQmFzZVR5cGU9 +InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRl +ciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +Ik5vT2ZSZXN1bHRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iUmVzdWx0cyIgVHlwZU5hbWU9InRuczpBZGROb2Rlc1Jlc3VsdCIgTGVuZ3RoRmllbGQ9Ik5v +T2ZSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0aWNJbmZvcyIg +VHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJ +bmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0iTm9PZkRpYWdu +b3N0aWNJbmZvcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1 +cmVkVHlwZSBOYW1lPSJBZGRSZWZlcmVuY2VzSXRlbSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTb3VyY2VOb2RlSWQiIFR5cGVOYW1lPSJ1YTpO +b2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWZlcmVuY2VUeXBlSWQiIFR5cGVOYW1l +PSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJc0ZvcndhcmQiIFR5cGVOYW1l +PSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRhcmdldFNlcnZlclVyaSIg +VHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUYXJnZXROb2Rl +SWQiIFR5cGVOYW1lPSJ1YTpFeHBhbmRlZE5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlRhcmdldE5vZGVDbGFzcyIgVHlwZU5hbWU9InRuczpOb2RlQ2xhc3MiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQWRkUmVmZXJlbmNl +c1JlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpSZXF1ZXN0SGVhZGVyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlZmVyZW5jZXNUb0FkZCIgVHlwZU5hbWU9Im9wYzpJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlZmVyZW5jZXNUb0FkZCIgVHlwZU5hbWU9InRu +czpBZGRSZWZlcmVuY2VzSXRlbSIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZWZlcmVuY2VzVG9BZGQiIC8+ +DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0i +QWRkUmVmZXJlbmNlc1Jlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlc3BvbnNl +SGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlc3VsdHMiIFR5cGVOYW1lPSJv +cGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXN1bHRzIiBUeXBlTmFtZT0idWE6 +U3RhdHVzQ29kZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iTm9PZkRpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJ +bmZvIiBMZW5ndGhGaWVsZD0iTm9PZkRpYWdub3N0aWNJbmZvcyIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEZWxldGVOb2Rlc0l0ZW0i +IEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9k +ZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGVsZXRl +VGFyZ2V0UmVmZXJlbmNlcyIgVHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRlbGV0ZU5vZGVzUmVx +dWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOb09mTm9kZXNUb0RlbGV0ZSIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVzVG9EZWxldGUiIFR5cGVOYW1lPSJ0bnM6RGVsZXRl +Tm9kZXNJdGVtIiBMZW5ndGhGaWVsZD0iTm9PZk5vZGVzVG9EZWxldGUiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRGVsZXRlTm9kZXNS +ZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZXN1bHRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzdWx0cyIgVHlwZU5hbWU9InVhOlN0YXR1c0NvZGUiIExl +bmd0aEZpZWxkPSJOb09mUmVzdWx0cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEaWFn +bm9zdGljSW5mb3MiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmll +bGQ9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQog +IDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRGVsZXRlUmVmZXJlbmNlc0l0ZW0iIEJhc2VUeXBl +PSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU291cmNlTm9kZUlk +IiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNl +VHlwZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNG +b3J3YXJkIiBUeXBlTmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJU +YXJnZXROb2RlSWQiIFR5cGVOYW1lPSJ1YTpFeHBhbmRlZE5vZGVJZCIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkRlbGV0ZUJpZGlyZWN0aW9uYWwiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4N +CiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJE +ZWxldGVSZWZlcmVuY2VzUmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RI +ZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVmZXJlbmNlc1RvRGVsZXRlIiBU +eXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNlc1Rv +RGVsZXRlIiBUeXBlTmFtZT0idG5zOkRlbGV0ZVJlZmVyZW5jZXNJdGVtIiBMZW5ndGhGaWVsZD0i +Tm9PZlJlZmVyZW5jZXNUb0RlbGV0ZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAg +PG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEZWxldGVSZWZlcmVuY2VzUmVzcG9uc2UiIEJhc2VU +eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9uc2VI +ZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mUmVzdWx0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IlJlc3VsdHMiIFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2RlIiBMZW5ndGhGaWVsZD0iTm9P +ZlJlc3VsdHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRGlhZ25vc3RpY0luZm9zIiBU +eXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlhZ25vc3RpY0lu +Zm9zIiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0luZm8iIExlbmd0aEZpZWxkPSJOb09mRGlhZ25v +c3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0 +ZWRUeXBlIE5hbWU9IkF0dHJpYnV0ZVdyaXRlTWFzayIgTGVuZ3RoSW5CaXRzPSIzMiIgSXNPcHRp +b25TZXQ9InRydWUiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik5vbmUiIFZhbHVl +PSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkFjY2Vzc0xldmVsIiBWYWx1 +ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBcnJheURpbWVuc2lvbnMi +IFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkJyb3dzZU5hbWUi +IFZhbHVlPSI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkNvbnRhaW5zTm9M +b29wcyIgVmFsdWU9IjgiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iRGF0YVR5 +cGUiIFZhbHVlPSIxNiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEZXNjcmlw +dGlvbiIgVmFsdWU9IjMyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRpc3Bs +YXlOYW1lIiBWYWx1ZT0iNjQiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iRXZl +bnROb3RpZmllciIgVmFsdWU9IjEyOCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1l +PSJFeGVjdXRhYmxlIiBWYWx1ZT0iMjU2IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9Ikhpc3Rvcml6aW5nIiBWYWx1ZT0iNTEyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVl +IE5hbWU9IkludmVyc2VOYW1lIiBWYWx1ZT0iMTAyNCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJJc0Fic3RyYWN0IiBWYWx1ZT0iMjA0OCIgLz4NCiAgICA8b3BjOkVudW1lcmF0 +ZWRWYWx1ZSBOYW1lPSJNaW5pbXVtU2FtcGxpbmdJbnRlcnZhbCIgVmFsdWU9IjQwOTYiIC8+DQog +ICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTm9kZUNsYXNzIiBWYWx1ZT0iODE5MiIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb2RlSWQiIFZhbHVlPSIxNjM4NCIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTeW1tZXRyaWMiIFZhbHVlPSIzMjc2OCIg +Lz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVc2VyQWNjZXNzTGV2ZWwiIFZhbHVl +PSI2NTUzNiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVc2VyRXhlY3V0YWJs +ZSIgVmFsdWU9IjEzMTA3MiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVc2Vy +V3JpdGVNYXNrIiBWYWx1ZT0iMjYyMTQ0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9IlZhbHVlUmFuayIgVmFsdWU9IjUyNDI4OCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1 +ZSBOYW1lPSJXcml0ZU1hc2siIFZhbHVlPSIxMDQ4NTc2IiAvPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9IlZhbHVlRm9yVmFyaWFibGVUeXBlIiBWYWx1ZT0iMjA5NzE1MiIgLz4NCiAg +ICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJEYXRhVHlwZURlZmluaXRpb24iIFZhbHVlPSI0 +MTk0MzA0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlJvbGVQZXJtaXNzaW9u +cyIgVmFsdWU9IjgzODg2MDgiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iQWNj +ZXNzUmVzdHJpY3Rpb25zIiBWYWx1ZT0iMTY3NzcyMTYiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVk +VmFsdWUgTmFtZT0iQWNjZXNzTGV2ZWxFeCIgVmFsdWU9IjMzNTU0NDMyIiAvPg0KICA8L29wYzpF +bnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkJyb3dzZURpcmVj +dGlvbiIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0i +Rm9yd2FyZCIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW52 +ZXJzZSIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iQm90aCIg +VmFsdWU9IjIiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW52YWxpZCIgVmFs +dWU9IjMiIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iVmlld0Rlc2NyaXB0aW9uIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlZpZXdJZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlRpbWVzdGFtcCIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlZpZXdWZXJzaW9uIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIg +Lz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1l +PSJCcm93c2VEZXNjcmlwdGlvbiIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOb2RlSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJCcm93c2VEaXJlY3Rpb24iIFR5cGVOYW1lPSJ0bnM6QnJvd3NlRGlyZWN0 +aW9uIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNlVHlwZUlkIiBUeXBlTmFtZT0i +dWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSW5jbHVkZVN1YnR5cGVzIiBUeXBl +TmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb2RlQ2xhc3NNYXNr +IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3VsdE1h +c2siIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0K +ICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkJyb3dzZVJlc3VsdE1hc2siIExlbmd0aEluQml0 +cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik5vbmUiIFZhbHVlPSIwIiAv +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlJlZmVyZW5jZVR5cGVJZCIgVmFsdWU9 +IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSXNGb3J3YXJkIiBWYWx1ZT0i +MiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb2RlQ2xhc3MiIFZhbHVlPSI0 +IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkJyb3dzZU5hbWUiIFZhbHVlPSI4 +IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRpc3BsYXlOYW1lIiBWYWx1ZT0i +MTYiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVHlwZURlZmluaXRpb24iIFZh +bHVlPSIzMiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBbGwiIFZhbHVlPSI2 +MyIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJSZWZlcmVuY2VUeXBlSW5mbyIg +VmFsdWU9IjMiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVGFyZ2V0SW5mbyIg +VmFsdWU9IjYwIiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVy +ZWRUeXBlIE5hbWU9IlJlZmVyZW5jZURlc2NyaXB0aW9uIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlZmVyZW5jZVR5cGVJZCIgVHlwZU5hbWU9 +InVhOk5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IklzRm9yd2FyZCIgVHlwZU5hbWU9 +Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0i +dWE6RXhwYW5kZWROb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCcm93c2VOYW1lIiBU +eXBlTmFtZT0idWE6UXVhbGlmaWVkTmFtZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpc3Bs +YXlOYW1lIiBUeXBlTmFtZT0idWE6TG9jYWxpemVkVGV4dCIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9Ik5vZGVDbGFzcyIgVHlwZU5hbWU9InRuczpOb2RlQ2xhc3MiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJUeXBlRGVmaW5pdGlvbiIgVHlwZU5hbWU9InVhOkV4cGFuZGVkTm9kZUlkIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0iQ29udGlu +dWF0aW9uUG9pbnQiPg0KICA8L29wYzpPcGFxdWVUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5 +cGUgTmFtZT0iQnJvd3NlUmVzdWx0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlN0YXR1c0NvZGUiIFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2RlIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ29udGludWF0aW9uUG9pbnQiIFR5cGVOYW1lPSJvcGM6 +Qnl0ZVN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZWZlcmVuY2VzIiBUeXBl +TmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNlcyIgVHlw +ZU5hbWU9InRuczpSZWZlcmVuY2VEZXNjcmlwdGlvbiIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZWZlcmVu +Y2VzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9IkJyb3dzZVJlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpSZXF1ZXN0SGVh +ZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVmlldyIgVHlwZU5hbWU9InRuczpWaWV3RGVz +Y3JpcHRpb24iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0ZWRNYXhSZWZlcmVuY2Vz +UGVyTm9kZSIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b09mTm9kZXNUb0Jyb3dzZSIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik5vZGVzVG9Ccm93c2UiIFR5cGVOYW1lPSJ0bnM6QnJvd3NlRGVzY3JpcHRpb24iIExl +bmd0aEZpZWxkPSJOb09mTm9kZXNUb0Jyb3dzZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+ +DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJCcm93c2VSZXNwb25zZSIgQmFzZVR5cGU9 +InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRl +ciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +Ik5vT2ZSZXN1bHRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iUmVzdWx0cyIgVHlwZU5hbWU9InRuczpCcm93c2VSZXN1bHQiIExlbmd0aEZpZWxkPSJOb09m +UmVzdWx0cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaWFnbm9zdGljSW5m +b3MiIFR5cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZEaWFnbm9z +dGljSW5mb3MiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJl +ZFR5cGUgTmFtZT0iQnJvd3NlTmV4dFJlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmpl +Y3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpS +ZXF1ZXN0SGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVsZWFzZUNvbnRpbnVhdGlv +blBvaW50cyIgVHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +Tm9PZkNvbnRpbnVhdGlvblBvaW50cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkNvbnRpbnVhdGlvblBvaW50cyIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5n +IiBMZW5ndGhGaWVsZD0iTm9PZkNvbnRpbnVhdGlvblBvaW50cyIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJCcm93c2VOZXh0UmVzcG9u +c2UiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +UmVzcG9uc2VIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOb09mUmVzdWx0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IlJlc3VsdHMiIFR5cGVOYW1lPSJ0bnM6QnJvd3NlUmVzdWx0IiBMZW5n +dGhGaWVsZD0iTm9PZlJlc3VsdHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRGlhZ25v +c3RpY0luZm9zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +RGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0luZm8iIExlbmd0aEZpZWxk +PSJOb09mRGlhZ25vc3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8 +b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlJlbGF0aXZlUGF0aEVsZW1lbnQiIEJhc2VUeXBlPSJ1 +YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNlVHlwZUlk +IiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSXNJbnZlcnNl +IiBUeXBlTmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbmNsdWRl +U3VidHlwZXMiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlRhcmdldE5hbWUiIFR5cGVOYW1lPSJ1YTpRdWFsaWZpZWROYW1lIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlJlbGF0aXZlUGF0aCIg +QmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09m +RWxlbWVudHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJF +bGVtZW50cyIgVHlwZU5hbWU9InRuczpSZWxhdGl2ZVBhdGhFbGVtZW50IiBMZW5ndGhGaWVsZD0i +Tm9PZkVsZW1lbnRzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVj +dHVyZWRUeXBlIE5hbWU9IkJyb3dzZVBhdGgiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3Qi +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3RhcnRpbmdOb2RlIiBUeXBlTmFtZT0idWE6Tm9kZUlk +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVsYXRpdmVQYXRoIiBUeXBlTmFtZT0idG5zOlJl +bGF0aXZlUGF0aCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1 +cmVkVHlwZSBOYW1lPSJCcm93c2VQYXRoVGFyZ2V0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2Jq +ZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRhcmdldElkIiBUeXBlTmFtZT0idWE6RXhwYW5k +ZWROb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZW1haW5pbmdQYXRoSW5kZXgiIFR5 +cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IkJyb3dzZVBhdGhSZXN1bHQiIEJhc2VUeXBlPSJ1YTpFeHRl +bnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3RhdHVzQ29kZSIgVHlwZU5hbWU9 +InVhOlN0YXR1c0NvZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mVGFyZ2V0cyIgVHlw +ZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRhcmdldHMiIFR5cGVO +YW1lPSJ0bnM6QnJvd3NlUGF0aFRhcmdldCIgTGVuZ3RoRmllbGQ9Ik5vT2ZUYXJnZXRzIiAvPg0K +ICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlRy +YW5zbGF0ZUJyb3dzZVBhdGhzVG9Ob2RlSWRzUmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lv +bk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0i +dG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mQnJvd3NlUGF0 +aHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCcm93c2VQ +YXRocyIgVHlwZU5hbWU9InRuczpCcm93c2VQYXRoIiBMZW5ndGhGaWVsZD0iTm9PZkJyb3dzZVBh +dGhzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9IlRyYW5zbGF0ZUJyb3dzZVBhdGhzVG9Ob2RlSWRzUmVzcG9uc2UiIEJhc2VUeXBlPSJ1 +YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9uc2VIZWFkZXIi +IFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b09mUmVzdWx0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlJlc3VsdHMiIFR5cGVOYW1lPSJ0bnM6QnJvd3NlUGF0aFJlc3VsdCIgTGVuZ3RoRmllbGQ9Ik5v +T2ZSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0aWNJbmZvcyIg +VHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJ +bmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0iTm9PZkRpYWdu +b3N0aWNJbmZvcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1 +cmVkVHlwZSBOYW1lPSJSZWdpc3Rlck5vZGVzUmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lv +bk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0i +dG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mTm9kZXNUb1Jl +Z2lzdGVyIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9k +ZXNUb1JlZ2lzdGVyIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBMZW5ndGhGaWVsZD0iTm9PZk5vZGVz +VG9SZWdpc3RlciIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1 +cmVkVHlwZSBOYW1lPSJSZWdpc3Rlck5vZGVzUmVzcG9uc2UiIEJhc2VUeXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzcG9uc2VIZWFkZXIiIFR5cGVOYW1l +PSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVnaXN0 +ZXJlZE5vZGVJZHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJSZWdpc3RlcmVkTm9kZUlkcyIgVHlwZU5hbWU9InVhOk5vZGVJZCIgTGVuZ3RoRmllbGQ9Ik5v +T2ZSZWdpc3RlcmVkTm9kZUlkcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJVbnJlZ2lzdGVyTm9kZXNSZXF1ZXN0IiBCYXNlVHlwZT0i +dWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIi +IFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5v +T2ZOb2Rlc1RvVW5yZWdpc3RlciIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik5vZGVzVG9VbnJlZ2lzdGVyIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBMZW5ndGhG +aWVsZD0iTm9PZk5vZGVzVG9VbnJlZ2lzdGVyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlVucmVnaXN0ZXJOb2Rlc1Jlc3BvbnNlIiBC +YXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3Bv +bnNlSGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlc3BvbnNlSGVhZGVyIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOk9wYXF1ZVR5cGUgTmFtZT0iQ291bnRlciI+DQogIDwvb3Bj +Ok9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpPcGFxdWVUeXBlIE5hbWU9Ik51bWVyaWNSYW5nZSI+DQog +IDwvb3BjOk9wYXF1ZVR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJFbmRwb2lu +dENvbmZpZ3VyYXRpb24iIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iT3BlcmF0aW9uVGltZW91dCIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlVzZUJpbmFyeUVuY29kaW5nIiBUeXBlTmFtZT0ib3BjOkJvb2xl +YW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNYXhTdHJpbmdMZW5ndGgiIFR5cGVOYW1lPSJv +cGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNYXhCeXRlU3RyaW5nTGVuZ3RoIiBU +eXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTWF4QXJyYXlMZW5n +dGgiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNYXhNZXNz +YWdlU2l6ZSIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1h +eEJ1ZmZlclNpemUiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJDaGFubmVsTGlmZXRpbWUiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTZWN1cml0eVRva2VuTGlmZXRpbWUiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iUXVl +cnlEYXRhRGVzY3JpcHRpb24iIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iUmVsYXRpdmVQYXRoIiBUeXBlTmFtZT0idG5zOlJlbGF0aXZlUGF0aCIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkF0dHJpYnV0ZUlkIiBUeXBlTmFtZT0ib3BjOlVJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkluZGV4UmFuZ2UiIFR5cGVOYW1lPSJvcGM6U3Ry +aW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9Ik5vZGVUeXBlRGVzY3JpcHRpb24iIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3Qi +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVHlwZURlZmluaXRpb25Ob2RlIiBUeXBlTmFtZT0idWE6 +RXhwYW5kZWROb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbmNsdWRlU3ViVHlwZXMi +IFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEYXRh +VG9SZXR1cm4iIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJE +YXRhVG9SZXR1cm4iIFR5cGVOYW1lPSJ0bnM6UXVlcnlEYXRhRGVzY3JpcHRpb24iIExlbmd0aEZp +ZWxkPSJOb09mRGF0YVRvUmV0dXJuIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8 +b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkZpbHRlck9wZXJhdG9yIiBMZW5ndGhJbkJpdHM9IjMy +Ij4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJFcXVhbHMiIFZhbHVlPSIwIiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IklzTnVsbCIgVmFsdWU9IjEiIC8+DQogICAg +PG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iR3JlYXRlclRoYW4iIFZhbHVlPSIyIiAvPg0KICAg +IDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ikxlc3NUaGFuIiBWYWx1ZT0iMyIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJHcmVhdGVyVGhhbk9yRXF1YWwiIFZhbHVlPSI0IiAv +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ikxlc3NUaGFuT3JFcXVhbCIgVmFsdWU9 +IjUiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTGlrZSIgVmFsdWU9IjYiIC8+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTm90IiBWYWx1ZT0iNyIgLz4NCiAgICA8 +b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJCZXR3ZWVuIiBWYWx1ZT0iOCIgLz4NCiAgICA8b3Bj +OkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJJbkxpc3QiIFZhbHVlPSI5IiAvPg0KICAgIDxvcGM6RW51 +bWVyYXRlZFZhbHVlIE5hbWU9IkFuZCIgVmFsdWU9IjEwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9Ik9yIiBWYWx1ZT0iMTEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iQ2FzdCIgVmFsdWU9IjEyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +IkluVmlldyIgVmFsdWU9IjEzIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik9m +VHlwZSIgVmFsdWU9IjE0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlJlbGF0 +ZWRUbyIgVmFsdWU9IjE1IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkJpdHdp +c2VBbmQiIFZhbHVlPSIxNiIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJCaXR3 +aXNlT3IiIFZhbHVlPSIxNyIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpT +dHJ1Y3R1cmVkVHlwZSBOYW1lPSJRdWVyeURhdGFTZXQiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25P +YmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6RXhwYW5k +ZWROb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUeXBlRGVmaW5pdGlvbk5vZGUiIFR5 +cGVOYW1lPSJ1YTpFeHBhbmRlZE5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZW +YWx1ZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1 +ZXMiIFR5cGVOYW1lPSJ1YTpWYXJpYW50IiBMZW5ndGhGaWVsZD0iTm9PZlZhbHVlcyIgLz4NCiAg +PC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJOb2Rl +UmVmZXJlbmNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik5vZGVJZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlJlZmVyZW5jZVR5cGVJZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IklzRm9yd2FyZCIgVHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTm9PZlJlZmVyZW5jZWROb2RlSWRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVmZXJlbmNlZE5vZGVJZHMiIFR5cGVOYW1lPSJ1YTpO +b2RlSWQiIExlbmd0aEZpZWxkPSJOb09mUmVmZXJlbmNlZE5vZGVJZHMiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ29udGVudEZpbHRl +ckVsZW1lbnQiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iRmlsdGVyT3BlcmF0b3IiIFR5cGVOYW1lPSJ0bnM6RmlsdGVyT3BlcmF0b3IiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRmlsdGVyT3BlcmFuZHMiIFR5cGVOYW1lPSJvcGM6SW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJGaWx0ZXJPcGVyYW5kcyIgVHlwZU5hbWU9InVh +OkV4dGVuc2lvbk9iamVjdCIgTGVuZ3RoRmllbGQ9Ik5vT2ZGaWx0ZXJPcGVyYW5kcyIgLz4NCiAg +PC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJDb250 +ZW50RmlsdGVyIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik5vT2ZFbGVtZW50cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkVsZW1lbnRzIiBUeXBlTmFtZT0idG5zOkNvbnRlbnRGaWx0ZXJFbGVtZW50IiBM +ZW5ndGhGaWVsZD0iTm9PZkVsZW1lbnRzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0K +ICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkZpbHRlck9wZXJhbmQiIEJhc2VUeXBlPSJ1YTpF +eHRlbnNpb25PYmplY3QiPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVj +dHVyZWRUeXBlIE5hbWU9IkVsZW1lbnRPcGVyYW5kIiBCYXNlVHlwZT0idG5zOkZpbHRlck9wZXJh +bmQiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSW5kZXgiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAv +Pg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9 +IkxpdGVyYWxPcGVyYW5kIiBCYXNlVHlwZT0idG5zOkZpbHRlck9wZXJhbmQiPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iVmFsdWUiIFR5cGVOYW1lPSJ1YTpWYXJpYW50IiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkF0dHJpYnV0ZU9wZXJh +bmQiIEJhc2VUeXBlPSJ0bnM6RmlsdGVyT3BlcmFuZCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b2RlSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBbGlh +cyIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCcm93c2VQ +YXRoIiBUeXBlTmFtZT0idG5zOlJlbGF0aXZlUGF0aCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkF0dHJpYnV0ZUlkIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkluZGV4UmFuZ2UiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlNpbXBsZUF0dHJpYnV0ZU9w +ZXJhbmQiIEJhc2VUeXBlPSJ0bnM6RmlsdGVyT3BlcmFuZCI+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJUeXBlRGVmaW5pdGlvbklkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTm9PZkJyb3dzZVBhdGgiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJCcm93c2VQYXRoIiBUeXBlTmFtZT0idWE6UXVhbGlmaWVkTmFtZSIgTGVu +Z3RoRmllbGQ9Ik5vT2ZCcm93c2VQYXRoIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQXR0cmli +dXRlSWQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSW5k +ZXhSYW5nZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBl +Pg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ29udGVudEZpbHRlckVsZW1lbnRSZXN1 +bHQiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +U3RhdHVzQ29kZSIgVHlwZU5hbWU9InVhOlN0YXR1c0NvZGUiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mT3BlcmFuZFN0YXR1c0NvZGVzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iT3BlcmFuZFN0YXR1c0NvZGVzIiBUeXBlTmFtZT0idWE6U3RhdHVz +Q29kZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZPcGVyYW5kU3RhdHVzQ29kZXMiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJOb09mT3BlcmFuZERpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik9wZXJhbmREaWFnbm9zdGljSW5mb3MiIFR5cGVO +YW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZPcGVyYW5kRGlhZ25vc3Rp +Y0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9IkNvbnRlbnRGaWx0ZXJSZXN1bHQiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmpl +Y3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkVsZW1lbnRSZXN1bHRzIiBUeXBlTmFtZT0i +b3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRWxlbWVudFJlc3VsdHMiIFR5cGVO +YW1lPSJ0bnM6Q29udGVudEZpbHRlckVsZW1lbnRSZXN1bHQiIExlbmd0aEZpZWxkPSJOb09mRWxl +bWVudFJlc3VsdHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRWxlbWVudERpYWdub3N0 +aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkVs +ZW1lbnREaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3Ro +RmllbGQ9Ik5vT2ZFbGVtZW50RGlhZ25vc3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVk +VHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlBhcnNpbmdSZXN1bHQiIEJhc2VU +eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3RhdHVzQ29k +ZSIgVHlwZU5hbWU9InVhOlN0YXR1c0NvZGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09m +RGF0YVN0YXR1c0NvZGVzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iRGF0YVN0YXR1c0NvZGVzIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgTGVuZ3RoRmll +bGQ9Ik5vT2ZEYXRhU3RhdHVzQ29kZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRGF0 +YURpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IkRhdGFEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIg +TGVuZ3RoRmllbGQ9Ik5vT2ZEYXRhRGlhZ25vc3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlF1ZXJ5Rmlyc3RSZXF1ZXN0 +IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJl +cXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlZpZXciIFR5cGVOYW1lPSJ0bnM6Vmlld0Rlc2NyaXB0aW9uIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iTm9PZk5vZGVUeXBlcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik5vZGVUeXBlcyIgVHlwZU5hbWU9InRuczpOb2RlVHlwZURlc2Ny +aXB0aW9uIiBMZW5ndGhGaWVsZD0iTm9PZk5vZGVUeXBlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkZpbHRlciIgVHlwZU5hbWU9InRuczpDb250ZW50RmlsdGVyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTWF4RGF0YVNldHNUb1JldHVybiIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJNYXhSZWZlcmVuY2VzVG9SZXR1cm4iIFR5cGVOYW1lPSJvcGM6 +VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9IlF1ZXJ5Rmlyc3RSZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVj +dCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpS +ZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZRdWVyeURhdGFTZXRz +IiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUXVlcnlEYXRh +U2V0cyIgVHlwZU5hbWU9InRuczpRdWVyeURhdGFTZXQiIExlbmd0aEZpZWxkPSJOb09mUXVlcnlE +YXRhU2V0cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNvbnRpbnVhdGlvblBvaW50IiBUeXBl +TmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUGFyc2lu +Z1Jlc3VsdHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJQ +YXJzaW5nUmVzdWx0cyIgVHlwZU5hbWU9InRuczpQYXJzaW5nUmVzdWx0IiBMZW5ndGhGaWVsZD0i +Tm9PZlBhcnNpbmdSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0 +aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRp +YWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0i +Tm9PZkRpYWdub3N0aWNJbmZvcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkZpbHRlclJlc3Vs +dCIgVHlwZU5hbWU9InRuczpDb250ZW50RmlsdGVyUmVzdWx0IiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlF1ZXJ5TmV4dFJlcXVlc3Qi +IEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVx +dWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpSZXF1ZXN0SGVhZGVyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iUmVsZWFzZUNvbnRpbnVhdGlvblBvaW50IiBUeXBlTmFtZT0ib3BjOkJvb2xlYW4i +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDb250aW51YXRpb25Qb2ludCIgVHlwZU5hbWU9Im9w +YzpCeXRlU3RyaW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVj +dHVyZWRUeXBlIE5hbWU9IlF1ZXJ5TmV4dFJlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0i +dG5zOlJlc3BvbnNlSGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlF1ZXJ5RGF0 +YVNldHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJRdWVy +eURhdGFTZXRzIiBUeXBlTmFtZT0idG5zOlF1ZXJ5RGF0YVNldCIgTGVuZ3RoRmllbGQ9Ik5vT2ZR +dWVyeURhdGFTZXRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmV2aXNlZENvbnRpbnVhdGlv +blBvaW50IiBUeXBlTmFtZT0ib3BjOkJ5dGVTdHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRU +eXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iVGltZXN0YW1wc1RvUmV0dXJuIiBM +ZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTb3VyY2Ui +IFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlNlcnZlciIgVmFs +dWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iQm90aCIgVmFsdWU9IjIi +IC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTmVpdGhlciIgVmFsdWU9IjMiIC8+ +DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW52YWxpZCIgVmFsdWU9IjQiIC8+DQog +IDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iUmVh +ZFZhbHVlSWQiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iQXR0cmlidXRlSWQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iSW5kZXhSYW5nZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJEYXRhRW5jb2RpbmciIFR5cGVOYW1lPSJ1YTpRdWFsaWZpZWROYW1lIiAvPg0KICA8 +L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlJlYWRS +ZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik1heEFnZSIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJUaW1lc3RhbXBzVG9SZXR1cm4iIFR5cGVOYW1lPSJ0bnM6VGltZXN0YW1w +c1RvUmV0dXJuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZk5vZGVzVG9SZWFkIiBUeXBl +TmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZXNUb1JlYWQiIFR5 +cGVOYW1lPSJ0bnM6UmVhZFZhbHVlSWQiIExlbmd0aEZpZWxkPSJOb09mTm9kZXNUb1JlYWQiIC8+ +DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0i +UmVhZFJlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlc3BvbnNlSGVhZGVyIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlc3VsdHMiIFR5cGVOYW1lPSJvcGM6SW50MzIi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXN1bHRzIiBUeXBlTmFtZT0idWE6RGF0YVZhbHVl +IiBMZW5ndGhGaWVsZD0iTm9PZlJlc3VsdHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09m +RGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iRGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0luZm8iIExlbmd0 +aEZpZWxkPSJOb09mRGlhZ25vc3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ikhpc3RvcnlSZWFkVmFsdWVJZCIgQmFzZVR5 +cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb2RlSWQiIFR5 +cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbmRleFJhbmdlIiBU +eXBlTmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRhdGFFbmNvZGlu +ZyIgVHlwZU5hbWU9InVhOlF1YWxpZmllZE5hbWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJD +b250aW51YXRpb25Qb2ludCIgVHlwZU5hbWU9Im9wYzpCeXRlU3RyaW5nIiAvPg0KICA8L29wYzpT +dHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ikhpc3RvcnlSZWFk +UmVzdWx0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlN0YXR1c0NvZGUiIFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2RlIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iQ29udGludWF0aW9uUG9pbnQiIFR5cGVOYW1lPSJvcGM6Qnl0ZVN0cmluZyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ikhpc3RvcnlEYXRhIiBUeXBlTmFtZT0idWE6RXh0ZW5zaW9u +T2JqZWN0IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9Ikhpc3RvcnlSZWFkRGV0YWlscyIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVj +dCI+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iUmVhZEV2ZW50RGV0YWlscyIgQmFzZVR5cGU9InRuczpIaXN0b3J5UmVhZERldGFpbHMiPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTnVtVmFsdWVzUGVyTm9kZSIgVHlwZU5hbWU9Im9wYzpVSW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdGFydFRpbWUiIFR5cGVOYW1lPSJvcGM6RGF0 +ZVRpbWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmRUaW1lIiBUeXBlTmFtZT0ib3BjOkRh +dGVUaW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRmlsdGVyIiBUeXBlTmFtZT0idG5zOkV2 +ZW50RmlsdGVyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVy +ZWRUeXBlIE5hbWU9IlJlYWRSYXdNb2RpZmllZERldGFpbHMiIEJhc2VUeXBlPSJ0bnM6SGlzdG9y +eVJlYWREZXRhaWxzIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IklzUmVhZE1vZGlmaWVkIiBUeXBl +TmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdGFydFRpbWUiIFR5 +cGVOYW1lPSJvcGM6RGF0ZVRpbWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmRUaW1lIiBU +eXBlTmFtZT0ib3BjOkRhdGVUaW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTnVtVmFsdWVz +UGVyTm9kZSIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJS +ZXR1cm5Cb3VuZHMiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgPC9vcGM6U3RydWN0dXJl +ZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJSZWFkUHJvY2Vzc2VkRGV0YWls +cyIgQmFzZVR5cGU9InRuczpIaXN0b3J5UmVhZERldGFpbHMiPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iU3RhcnRUaW1lIiBUeXBlTmFtZT0ib3BjOkRhdGVUaW1lIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iRW5kVGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IlByb2Nlc3NpbmdJbnRlcnZhbCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOb09mQWdncmVnYXRlVHlwZSIgVHlwZU5hbWU9Im9wYzpJbnQzMiIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFnZ3JlZ2F0ZVR5cGUiIFR5cGVOYW1lPSJ1YTpOb2Rl +SWQiIExlbmd0aEZpZWxkPSJOb09mQWdncmVnYXRlVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24iIFR5cGVOYW1lPSJ0bnM6QWdncmVnYXRlQ29uZmln +dXJhdGlvbiIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVk +VHlwZSBOYW1lPSJSZWFkQXRUaW1lRGV0YWlscyIgQmFzZVR5cGU9InRuczpIaXN0b3J5UmVhZERl +dGFpbHMiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlcVRpbWVzIiBUeXBlTmFtZT0ib3Bj +OkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxVGltZXMiIFR5cGVOYW1lPSJvcGM6 +RGF0ZVRpbWUiIExlbmd0aEZpZWxkPSJOb09mUmVxVGltZXMiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJVc2VTaW1wbGVCb3VuZHMiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgPC9vcGM6 +U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJSZWFkQW5ub3Rh +dGlvbkRhdGFEZXRhaWxzIiBCYXNlVHlwZT0idG5zOkhpc3RvcnlSZWFkRGV0YWlscyI+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOb09mUmVxVGltZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJSZXFUaW1lcyIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgTGVu +Z3RoRmllbGQ9Ik5vT2ZSZXFUaW1lcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAg +PG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJIaXN0b3J5RGF0YSIgQmFzZVR5cGU9InVhOkV4dGVu +c2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRGF0YVZhbHVlcyIgVHlwZU5h +bWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRhdGFWYWx1ZXMiIFR5cGVO +YW1lPSJ1YTpEYXRhVmFsdWUiIExlbmd0aEZpZWxkPSJOb09mRGF0YVZhbHVlcyIgLz4NCiAgPC9v +cGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJNb2RpZmlj +YXRpb25JbmZvIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik1vZGlmaWNhdGlvblRpbWUiIFR5cGVOYW1lPSJvcGM6RGF0ZVRpbWUiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJVcGRhdGVUeXBlIiBUeXBlTmFtZT0idG5zOkhpc3RvcnlVcGRhdGVU +eXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlck5hbWUiIFR5cGVOYW1lPSJvcGM6U3Ry +aW5nIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9Ikhpc3RvcnlNb2RpZmllZERhdGEiIEJhc2VUeXBlPSJ0bnM6SGlzdG9yeURhdGEiPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRhdGFWYWx1ZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEYXRhVmFsdWVzIiBUeXBlTmFtZT0idWE6RGF0YVZh +bHVlIiBMZW5ndGhGaWVsZD0iTm9PZkRhdGFWYWx1ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJOb09mTW9kaWZpY2F0aW9uSW5mb3MiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJNb2RpZmljYXRpb25JbmZvcyIgVHlwZU5hbWU9InRuczpNb2RpZmljYXRp +b25JbmZvIiBMZW5ndGhGaWVsZD0iTm9PZk1vZGlmaWNhdGlvbkluZm9zIiAvPg0KICA8L29wYzpT +dHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ikhpc3RvcnlFdmVu +dCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJO +b09mRXZlbnRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +RXZlbnRzIiBUeXBlTmFtZT0idG5zOkhpc3RvcnlFdmVudEZpZWxkTGlzdCIgTGVuZ3RoRmllbGQ9 +Ik5vT2ZFdmVudHMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0 +dXJlZFR5cGUgTmFtZT0iSGlzdG9yeVJlYWRSZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0 +bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikhpc3RvcnlSZWFkRGV0 +YWlscyIgVHlwZU5hbWU9InVhOkV4dGVuc2lvbk9iamVjdCIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IlRpbWVzdGFtcHNUb1JldHVybiIgVHlwZU5hbWU9InRuczpUaW1lc3RhbXBzVG9SZXR1cm4i +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZWxlYXNlQ29udGludWF0aW9uUG9pbnRzIiBUeXBl +TmFtZT0ib3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mTm9kZXNUb1Jl +YWQiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb2Rlc1Rv +UmVhZCIgVHlwZU5hbWU9InRuczpIaXN0b3J5UmVhZFZhbHVlSWQiIExlbmd0aEZpZWxkPSJOb09m +Tm9kZXNUb1JlYWQiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0 +dXJlZFR5cGUgTmFtZT0iSGlzdG9yeVJlYWRSZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lv +bk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9 +InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZXN1bHRz +IiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzdWx0cyIg +VHlwZU5hbWU9InRuczpIaXN0b3J5UmVhZFJlc3VsdCIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZXN1bHRz +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9 +Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJbmZvcyIgVHlw +ZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0iTm9PZkRpYWdub3N0aWNJbmZv +cyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBO +YW1lPSJXcml0ZVZhbHVlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vZGVJZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkF0dHJpYnV0ZUlkIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkluZGV4UmFuZ2UiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iVmFsdWUiIFR5cGVOYW1lPSJ1YTpEYXRhVmFsdWUiIC8+DQogIDwvb3Bj +OlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iV3JpdGVSZXF1 +ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZOb2Rlc1RvV3JpdGUiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJOb2Rlc1RvV3JpdGUiIFR5cGVOYW1lPSJ0bnM6V3JpdGVWYWx1 +ZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZOb2Rlc1RvV3JpdGUiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRU +eXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iV3JpdGVSZXNwb25zZSIgQmFzZVR5 +cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhl +YWRlciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9Ik5vT2ZSZXN1bHRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iUmVzdWx0cyIgVHlwZU5hbWU9InVhOlN0YXR1c0NvZGUiIExlbmd0aEZpZWxkPSJOb09m +UmVzdWx0cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaWFnbm9zdGljSW5m +b3MiIFR5cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZEaWFnbm9z +dGljSW5mb3MiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJl +ZFR5cGUgTmFtZT0iSGlzdG9yeVVwZGF0ZURldGFpbHMiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25P +YmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlk +IiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5h +bWU9Ikhpc3RvcnlVcGRhdGVUeXBlIiBMZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVudW1l +cmF0ZWRWYWx1ZSBOYW1lPSJJbnNlcnQiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9IlJlcGxhY2UiIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9IlVwZGF0ZSIgVmFsdWU9IjMiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUg +TmFtZT0iRGVsZXRlIiBWYWx1ZT0iNCIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+DQoNCiAg +PG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJQZXJmb3JtVXBkYXRlVHlwZSIgTGVuZ3RoSW5CaXRz +PSIzMiI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iSW5zZXJ0IiBWYWx1ZT0iMSIg +Lz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJSZXBsYWNlIiBWYWx1ZT0iMiIgLz4N +CiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJVcGRhdGUiIFZhbHVlPSIzIiAvPg0KICAg +IDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlJlbW92ZSIgVmFsdWU9IjQiIC8+DQogIDwvb3Bj +OkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iVXBkYXRlRGF0 +YURldGFpbHMiIEJhc2VUeXBlPSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFpbHMiPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6 +SGlzdG9yeVVwZGF0ZURldGFpbHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJQZXJmb3JtSW5z +ZXJ0UmVwbGFjZSIgVHlwZU5hbWU9InRuczpQZXJmb3JtVXBkYXRlVHlwZSIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZVcGRhdGVWYWx1ZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJVcGRhdGVWYWx1ZXMiIFR5cGVOYW1lPSJ1YTpEYXRhVmFsdWUi +IExlbmd0aEZpZWxkPSJOb09mVXBkYXRlVmFsdWVzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlw +ZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlVwZGF0ZVN0cnVjdHVyZURhdGFEZXRh +aWxzIiBCYXNlVHlwZT0idG5zOkhpc3RvcnlVcGRhdGVEZXRhaWxzIj4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9Ik5vZGVJZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgU291cmNlVHlwZT0idG5zOkhpc3Rv +cnlVcGRhdGVEZXRhaWxzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUGVyZm9ybUluc2VydFJl +cGxhY2UiIFR5cGVOYW1lPSJ0bnM6UGVyZm9ybVVwZGF0ZVR5cGUiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJOb09mVXBkYXRlVmFsdWVzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iVXBkYXRlVmFsdWVzIiBUeXBlTmFtZT0idWE6RGF0YVZhbHVlIiBMZW5n +dGhGaWVsZD0iTm9PZlVwZGF0ZVZhbHVlcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoN +CiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJVcGRhdGVFdmVudERldGFpbHMiIEJhc2VUeXBl +PSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFpbHMiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlk +IiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFp +bHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJQZXJmb3JtSW5zZXJ0UmVwbGFjZSIgVHlwZU5h +bWU9InRuczpQZXJmb3JtVXBkYXRlVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkZpbHRl +ciIgVHlwZU5hbWU9InRuczpFdmVudEZpbHRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5v +T2ZFdmVudERhdGEiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJFdmVudERhdGEiIFR5cGVOYW1lPSJ0bnM6SGlzdG9yeUV2ZW50RmllbGRMaXN0IiBMZW5ndGhG +aWVsZD0iTm9PZkV2ZW50RGF0YSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEZWxldGVSYXdNb2RpZmllZERldGFpbHMiIEJhc2VUeXBl +PSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFpbHMiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlk +IiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFp +bHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJc0RlbGV0ZU1vZGlmaWVkIiBUeXBlTmFtZT0i +b3BjOkJvb2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdGFydFRpbWUiIFR5cGVOYW1l +PSJvcGM6RGF0ZVRpbWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmRUaW1lIiBUeXBlTmFt +ZT0ib3BjOkRhdGVUaW1lIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0 +cnVjdHVyZWRUeXBlIE5hbWU9IkRlbGV0ZUF0VGltZURldGFpbHMiIEJhc2VUeXBlPSJ0bnM6SGlz +dG9yeVVwZGF0ZURldGFpbHMiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlkIiBUeXBlTmFt +ZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFpbHMiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVxVGltZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXFUaW1lcyIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIg +TGVuZ3RoRmllbGQ9Ik5vT2ZSZXFUaW1lcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoN +CiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEZWxldGVFdmVudERldGFpbHMiIEJhc2VUeXBl +PSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFpbHMiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9kZUlk +IiBUeXBlTmFtZT0idWE6Tm9kZUlkIiBTb3VyY2VUeXBlPSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFp +bHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRXZlbnRJZHMiIFR5cGVOYW1lPSJvcGM6 +SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFdmVudElkcyIgVHlwZU5hbWU9Im9wYzpC +eXRlU3RyaW5nIiBMZW5ndGhGaWVsZD0iTm9PZkV2ZW50SWRzIiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ikhpc3RvcnlVcGRhdGVSZXN1 +bHQiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +U3RhdHVzQ29kZSIgVHlwZU5hbWU9InVhOlN0YXR1c0NvZGUiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mT3BlcmF0aW9uUmVzdWx0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik9wZXJhdGlvblJlc3VsdHMiIFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2Rl +IiBMZW5ndGhGaWVsZD0iTm9PZk9wZXJhdGlvblJlc3VsdHMiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mRGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iRGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0lu +Zm8iIExlbmd0aEZpZWxkPSJOb09mRGlhZ25vc3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ikhpc3RvcnlVcGRhdGVSZXF1 +ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZIaXN0b3J5VXBkYXRlRGV0YWlscyIgVHlwZU5hbWU9Im9wYzpJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikhpc3RvcnlVcGRhdGVEZXRhaWxzIiBUeXBlTmFt +ZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiBMZW5ndGhGaWVsZD0iTm9PZkhpc3RvcnlVcGRhdGVEZXRh +aWxzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9Ikhpc3RvcnlVcGRhdGVSZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVj +dCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpS +ZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZXN1bHRzIiBUeXBl +TmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzdWx0cyIgVHlwZU5h +bWU9InRuczpIaXN0b3J5VXBkYXRlUmVzdWx0IiBMZW5ndGhGaWVsZD0iTm9PZlJlc3VsdHMiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0ib3Bj +OkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlhZ25vc3RpY0luZm9zIiBUeXBlTmFt +ZT0idWE6RGlhZ25vc3RpY0luZm8iIExlbmd0aEZpZWxkPSJOb09mRGlhZ25vc3RpY0luZm9zIiAv +Pg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9 +IkNhbGxNZXRob2RSZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ik9iamVjdElkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iTWV0aG9kSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOb09mSW5wdXRBcmd1bWVudHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbnB1dEFyZ3VtZW50cyIgVHlwZU5hbWU9InVhOlZhcmlh +bnQiIExlbmd0aEZpZWxkPSJOb09mSW5wdXRBcmd1bWVudHMiIC8+DQogIDwvb3BjOlN0cnVjdHVy +ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ2FsbE1ldGhvZFJlc3VsdCIg +QmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdGF0 +dXNDb2RlIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +Ik5vT2ZJbnB1dEFyZ3VtZW50UmVzdWx0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IklucHV0QXJndW1lbnRSZXN1bHRzIiBUeXBlTmFtZT0idWE6U3RhdHVz +Q29kZSIgTGVuZ3RoRmllbGQ9Ik5vT2ZJbnB1dEFyZ3VtZW50UmVzdWx0cyIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZJbnB1dEFyZ3VtZW50RGlhZ25vc3RpY0luZm9zIiBUeXBlTmFtZT0i +b3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iSW5wdXRBcmd1bWVudERpYWdub3N0 +aWNJbmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0iTm9PZklu +cHV0QXJndW1lbnREaWFnbm9zdGljSW5mb3MiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09m +T3V0cHV0QXJndW1lbnRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iT3V0cHV0QXJndW1lbnRzIiBUeXBlTmFtZT0idWE6VmFyaWFudCIgTGVuZ3RoRmllbGQ9 +Ik5vT2ZPdXRwdXRBcmd1bWVudHMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxv +cGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ2FsbFJlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5hbWU9 +InRuczpSZXF1ZXN0SGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZk1ldGhvZHNU +b0NhbGwiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNZXRo +b2RzVG9DYWxsIiBUeXBlTmFtZT0idG5zOkNhbGxNZXRob2RSZXF1ZXN0IiBMZW5ndGhGaWVsZD0i +Tm9PZk1ldGhvZHNUb0NhbGwiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6 +U3RydWN0dXJlZFR5cGUgTmFtZT0iQ2FsbFJlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0i +dG5zOlJlc3BvbnNlSGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlc3VsdHMi +IFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXN1bHRzIiBU +eXBlTmFtZT0idG5zOkNhbGxNZXRob2RSZXN1bHQiIExlbmd0aEZpZWxkPSJOb09mUmVzdWx0cyIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJv +cGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaWFnbm9zdGljSW5mb3MiIFR5cGVO +YW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZEaWFnbm9zdGljSW5mb3Mi +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFt +ZT0iTW9uaXRvcmluZ01vZGUiIExlbmd0aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRl +ZFZhbHVlIE5hbWU9IkRpc2FibGVkIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRW +YWx1ZSBOYW1lPSJTYW1wbGluZyIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFs +dWUgTmFtZT0iUmVwb3J0aW5nIiBWYWx1ZT0iMiIgLz4NCiAgPC9vcGM6RW51bWVyYXRlZFR5cGU+ +DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJEYXRhQ2hhbmdlVHJpZ2dlciIgTGVuZ3Ro +SW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU3RhdHVzIiBWYWx1 +ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJTdGF0dXNWYWx1ZSIgVmFs +dWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU3RhdHVzVmFsdWVUaW1l +c3RhbXAiIFZhbHVlPSIyIiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOkVu +dW1lcmF0ZWRUeXBlIE5hbWU9IkRlYWRiYW5kVHlwZSIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAg +PG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTm9uZSIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iQWJzb2x1dGUiIFZhbHVlPSIxIiAvPg0KICAgIDxvcGM6RW51 +bWVyYXRlZFZhbHVlIE5hbWU9IlBlcmNlbnQiIFZhbHVlPSIyIiAvPg0KICA8L29wYzpFbnVtZXJh +dGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ik1vbml0b3JpbmdGaWx0ZXIi +IEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4N +Cg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRhdGFDaGFuZ2VGaWx0ZXIiIEJhc2VUeXBl +PSJ0bnM6TW9uaXRvcmluZ0ZpbHRlciI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUcmlnZ2VyIiBU +eXBlTmFtZT0idG5zOkRhdGFDaGFuZ2VUcmlnZ2VyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +RGVhZGJhbmRUeXBlIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkRlYWRiYW5kVmFsdWUiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkV2ZW50RmlsdGVyIiBC +YXNlVHlwZT0idG5zOk1vbml0b3JpbmdGaWx0ZXIiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9P +ZlNlbGVjdENsYXVzZXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJTZWxlY3RDbGF1c2VzIiBUeXBlTmFtZT0idG5zOlNpbXBsZUF0dHJpYnV0ZU9wZXJhbmQi +IExlbmd0aEZpZWxkPSJOb09mU2VsZWN0Q2xhdXNlcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IldoZXJlQ2xhdXNlIiBUeXBlTmFtZT0idG5zOkNvbnRlbnRGaWx0ZXIiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQWdncmVnYXRlQ29u +ZmlndXJhdGlvbiIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJVc2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0cyIgVHlwZU5hbWU9Im9wYzpCb29s +ZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVHJlYXRVbmNlcnRhaW5Bc0JhZCIgVHlwZU5h +bWU9Im9wYzpCb29sZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUGVyY2VudERhdGFCYWQi +IFR5cGVOYW1lPSJvcGM6Qnl0ZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlBlcmNlbnREYXRh +R29vZCIgVHlwZU5hbWU9Im9wYzpCeXRlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlU2xv +cGVkRXh0cmFwb2xhdGlvbiIgVHlwZU5hbWU9Im9wYzpCb29sZWFuIiAvPg0KICA8L29wYzpTdHJ1 +Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkFnZ3JlZ2F0ZUZpbHRl +ciIgQmFzZVR5cGU9InRuczpNb25pdG9yaW5nRmlsdGVyIj4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlN0YXJ0VGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkFnZ3JlZ2F0ZVR5cGUiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJQcm9jZXNzaW5nSW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQWdncmVnYXRlQ29uZmlndXJhdGlvbiIgVHlwZU5hbWU9InRuczpB +Z2dyZWdhdGVDb25maWd1cmF0aW9uIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8 +b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9Ik1vbml0b3JpbmdGaWx0ZXJSZXN1bHQiIEJhc2VUeXBl +PSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IkV2ZW50RmlsdGVyUmVzdWx0IiBCYXNlVHlwZT0idG5zOk1v +bml0b3JpbmdGaWx0ZXJSZXN1bHQiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlNlbGVjdENs +YXVzZVJlc3VsdHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJTZWxlY3RDbGF1c2VSZXN1bHRzIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgTGVuZ3RoRmll +bGQ9Ik5vT2ZTZWxlY3RDbGF1c2VSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9P +ZlNlbGVjdENsYXVzZURpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlNlbGVjdENsYXVzZURpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9 +InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0iTm9PZlNlbGVjdENsYXVzZURpYWdub3N0 +aWNJbmZvcyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IldoZXJlQ2xhdXNlUmVzdWx0IiBUeXBl +TmFtZT0idG5zOkNvbnRlbnRGaWx0ZXJSZXN1bHQiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBl +Pg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQWdncmVnYXRlRmlsdGVyUmVzdWx0IiBC +YXNlVHlwZT0idG5zOk1vbml0b3JpbmdGaWx0ZXJSZXN1bHQiPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iUmV2aXNlZFN0YXJ0VGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IlJldmlzZWRQcm9jZXNzaW5nSW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91 +YmxlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmV2aXNlZEFnZ3JlZ2F0ZUNvbmZpZ3VyYXRp +b24iIFR5cGVOYW1lPSJ0bnM6QWdncmVnYXRlQ29uZmlndXJhdGlvbiIgLz4NCiAgPC9vcGM6U3Ry +dWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJNb25pdG9yaW5nUGFy +YW1ldGVycyIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJDbGllbnRIYW5kbGUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iU2FtcGxpbmdJbnRlcnZhbCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJGaWx0ZXIiIFR5cGVOYW1lPSJ1YTpFeHRlbnNpb25PYmplY3QiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJRdWV1ZVNpemUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzY2FyZE9sZGVzdCIgVHlwZU5hbWU9Im9wYzpCb29s +ZWFuIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBl +IE5hbWU9Ik1vbml0b3JlZEl0ZW1DcmVhdGVSZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikl0ZW1Ub01vbml0b3IiIFR5cGVOYW1lPSJ0 +bnM6UmVhZFZhbHVlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNb25pdG9yaW5nTW9kZSIg +VHlwZU5hbWU9InRuczpNb25pdG9yaW5nTW9kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJl +cXVlc3RlZFBhcmFtZXRlcnMiIFR5cGVOYW1lPSJ0bnM6TW9uaXRvcmluZ1BhcmFtZXRlcnMiIC8+ +DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0i +TW9uaXRvcmVkSXRlbUNyZWF0ZVJlc3VsdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdGF0dXNDb2RlIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29k +ZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1vbml0b3JlZEl0ZW1JZCIgVHlwZU5hbWU9Im9w +YzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXZpc2VkU2FtcGxpbmdJbnRlcnZh +bCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXZpc2Vk +UXVldWVTaXplIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkZpbHRlclJlc3VsdCIgVHlwZU5hbWU9InVhOkV4dGVuc2lvbk9iamVjdCIgLz4NCiAgPC9vcGM6 +U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJDcmVhdGVNb25p +dG9yZWRJdGVtc1JlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5hbWU9InRuczpSZXF1ZXN0SGVhZGVy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3Vic2NyaXB0aW9uSWQiIFR5cGVOYW1lPSJvcGM6 +VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVGltZXN0YW1wc1RvUmV0dXJuIiBUeXBl +TmFtZT0idG5zOlRpbWVzdGFtcHNUb1JldHVybiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5v +T2ZJdGVtc1RvQ3JlYXRlIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iSXRlbXNUb0NyZWF0ZSIgVHlwZU5hbWU9InRuczpNb25pdG9yZWRJdGVtQ3JlYXRlUmVx +dWVzdCIgTGVuZ3RoRmllbGQ9Ik5vT2ZJdGVtc1RvQ3JlYXRlIiAvPg0KICA8L29wYzpTdHJ1Y3R1 +cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkNyZWF0ZU1vbml0b3JlZEl0 +ZW1zUmVzcG9uc2UiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iUmVzcG9uc2VIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVzdWx0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3VsdHMiIFR5cGVOYW1lPSJ0bnM6TW9uaXRvcmVk +SXRlbUNyZWF0ZVJlc3VsdCIgTGVuZ3RoRmllbGQ9Ik5vT2ZSZXN1bHRzIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9InVhOkRpYWdu +b3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0iTm9PZkRpYWdub3N0aWNJbmZvcyIgLz4NCiAgPC9vcGM6 +U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJNb25pdG9yZWRJ +dGVtTW9kaWZ5UmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJNb25pdG9yZWRJdGVtSWQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdGVkUGFyYW1ldGVycyIgVHlwZU5hbWU9InRuczpN +b25pdG9yaW5nUGFyYW1ldGVycyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJNb25pdG9yZWRJdGVtTW9kaWZ5UmVzdWx0IiBCYXNlVHlw +ZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN0YXR1c0NvZGUi +IFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmV2aXNl +ZFNhbXBsaW5nSW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iUmV2aXNlZFF1ZXVlU2l6ZSIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJGaWx0ZXJSZXN1bHQiIFR5cGVOYW1lPSJ1YTpFeHRlbnNpb25PYmpl +Y3QiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUg +TmFtZT0iTW9kaWZ5TW9uaXRvcmVkSXRlbXNSZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9u +T2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0 +bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN1YnNjcmlwdGlvbklk +IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRpbWVzdGFt +cHNUb1JldHVybiIgVHlwZU5hbWU9InRuczpUaW1lc3RhbXBzVG9SZXR1cm4iIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOb09mSXRlbXNUb01vZGlmeSIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ikl0ZW1zVG9Nb2RpZnkiIFR5cGVOYW1lPSJ0bnM6TW9uaXRv +cmVkSXRlbU1vZGlmeVJlcXVlc3QiIExlbmd0aEZpZWxkPSJOb09mSXRlbXNUb01vZGlmeSIgLz4N +CiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJN +b2RpZnlNb25pdG9yZWRJdGVtc1Jlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0 +Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0idG5zOlJl +c3BvbnNlSGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlJlc3VsdHMiIFR5cGVO +YW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXN1bHRzIiBUeXBlTmFt +ZT0idG5zOk1vbml0b3JlZEl0ZW1Nb2RpZnlSZXN1bHQiIExlbmd0aEZpZWxkPSJOb09mUmVzdWx0 +cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1l +PSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaWFnbm9zdGljSW5mb3MiIFR5 +cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZEaWFnbm9zdGljSW5m +b3MiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUg +TmFtZT0iU2V0TW9uaXRvcmluZ01vZGVSZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2Jq +ZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6 +UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN1YnNjcmlwdGlvbklkIiBU +eXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1vbml0b3JpbmdN +b2RlIiBUeXBlTmFtZT0idG5zOk1vbml0b3JpbmdNb2RlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iTm9PZk1vbml0b3JlZEl0ZW1JZHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJNb25pdG9yZWRJdGVtSWRzIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgTGVu +Z3RoRmllbGQ9Ik5vT2ZNb25pdG9yZWRJdGVtSWRzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlw +ZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlNldE1vbml0b3JpbmdNb2RlUmVzcG9u +c2UiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +UmVzcG9uc2VIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOb09mUmVzdWx0cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IlJlc3VsdHMiIFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2RlIiBMZW5ndGhG +aWVsZD0iTm9PZlJlc3VsdHMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRGlhZ25vc3Rp +Y0luZm9zIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlh +Z25vc3RpY0luZm9zIiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0luZm8iIExlbmd0aEZpZWxkPSJO +b09mRGlhZ25vc3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IlNldFRyaWdnZXJpbmdSZXF1ZXN0IiBCYXNlVHlwZT0idWE6 +RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5 +cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN1YnNj +cmlwdGlvbklkIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlRyaWdnZXJpbmdJdGVtSWQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iTm9PZkxpbmtzVG9BZGQiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJMaW5rc1RvQWRkIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgTGVuZ3RoRmll +bGQ9Ik5vT2ZMaW5rc1RvQWRkIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkxpbmtzVG9S +ZW1vdmUiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJMaW5r +c1RvUmVtb3ZlIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgTGVuZ3RoRmllbGQ9Ik5vT2ZMaW5rc1Rv +UmVtb3ZlIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9IlNldFRyaWdnZXJpbmdSZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRu +czpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZBZGRSZXN1bHRz +IiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWRkUmVzdWx0 +cyIgVHlwZU5hbWU9InVhOlN0YXR1c0NvZGUiIExlbmd0aEZpZWxkPSJOb09mQWRkUmVzdWx0cyIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZBZGREaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1l +PSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBZGREaWFnbm9zdGljSW5mb3Mi +IFR5cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZBZGREaWFnbm9z +dGljSW5mb3MiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVtb3ZlUmVzdWx0cyIgVHlw +ZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlbW92ZVJlc3VsdHMi +IFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2RlIiBMZW5ndGhGaWVsZD0iTm9PZlJlbW92ZVJlc3VsdHMi +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mUmVtb3ZlRGlhZ25vc3RpY0luZm9zIiBUeXBl +TmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVtb3ZlRGlhZ25vc3Rp +Y0luZm9zIiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0luZm8iIExlbmd0aEZpZWxkPSJOb09mUmVt +b3ZlRGlhZ25vc3RpY0luZm9zIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRlbGV0ZU1vbml0b3JlZEl0ZW1zUmVxdWVzdCIgQmFzZVR5 +cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGVh +ZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJTdWJzY3JpcHRpb25JZCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJOb09mTW9uaXRvcmVkSXRlbUlkcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik1vbml0b3JlZEl0ZW1JZHMiIFR5cGVOYW1lPSJvcGM6VUludDMy +IiBMZW5ndGhGaWVsZD0iTm9PZk1vbml0b3JlZEl0ZW1JZHMiIC8+DQogIDwvb3BjOlN0cnVjdHVy +ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRGVsZXRlTW9uaXRvcmVkSXRl +bXNSZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZXN1bHRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzdWx0cyIgVHlwZU5hbWU9InVhOlN0YXR1c0NvZGUi +IExlbmd0aEZpZWxkPSJOb09mUmVzdWx0cyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZE +aWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJ1YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3Ro +RmllbGQ9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iQ3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdCIg +QmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1 +ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJSZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91Ymxl +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdGVkTGlmZXRpbWVDb3VudCIgVHlwZU5h +bWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0ZWRNYXhLZWVw +QWxpdmVDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJNYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJQdWJsaXNoaW5nRW5hYmxlZCIgVHlwZU5hbWU9Im9wYzpCb29s +ZWFuIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUHJpb3JpdHkiIFR5cGVOYW1lPSJvcGM6Qnl0 +ZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBO +YW1lPSJDcmVhdGVTdWJzY3JpcHRpb25SZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRu +czpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN1YnNjcmlwdGlvbklk +IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJldmlzZWRQ +dWJsaXNoaW5nSW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iUmV2aXNlZExpZmV0aW1lQ291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iUmV2aXNlZE1heEtlZXBBbGl2ZUNvdW50IiBUeXBlTmFtZT0i +b3BjOlVJbnQzMiIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1 +cmVkVHlwZSBOYW1lPSJNb2RpZnlTdWJzY3JpcHRpb25SZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0 +ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVO +YW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN1YnNjcmlw +dGlvbklkIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJl +cXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0ZWRMaWZldGltZUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJ +bnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50 +IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1heE5vdGlm +aWNhdGlvbnNQZXJQdWJsaXNoIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlByaW9yaXR5IiBUeXBlTmFtZT0ib3BjOkJ5dGUiIC8+DQogIDwvb3BjOlN0cnVj +dHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iTW9kaWZ5U3Vic2NyaXB0 +aW9uUmVzcG9uc2UiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iUmVzcG9uc2VIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXZpc2VkUHVibGlzaGluZ0ludGVydmFsIiBUeXBlTmFt +ZT0ib3BjOkRvdWJsZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJldmlzZWRMaWZldGltZUNv +dW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJldmlz +ZWRNYXhLZWVwQWxpdmVDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iU2V0UHVibGlzaGlu +Z01vZGVSZXF1ZXN0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlJlcXVlc3RIZWFkZXIiIFR5cGVOYW1lPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlB1Ymxpc2hpbmdFbmFibGVkIiBUeXBlTmFtZT0ib3BjOkJv +b2xlYW4iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mU3Vic2NyaXB0aW9uSWRzIiBUeXBl +TmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3Vic2NyaXB0aW9uSWRz +IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgTGVuZ3RoRmllbGQ9Ik5vT2ZTdWJzY3JpcHRpb25JZHMi +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iU2V0UHVibGlzaGluZ01vZGVSZXNwb25zZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVj +dCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpS +ZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZXN1bHRzIiBUeXBl +TmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzdWx0cyIgVHlwZU5h +bWU9InVhOlN0YXR1c0NvZGUiIExlbmd0aEZpZWxkPSJOb09mUmVzdWx0cyIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJ1YTpEaWFn +bm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIC8+DQogIDwvb3Bj +OlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iTm90aWZpY2F0 +aW9uTWVzc2FnZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTZXF1ZW5jZU51bWJlciIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJQdWJsaXNoVGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZOb3RpZmljYXRpb25EYXRhIiBUeXBlTmFtZT0ib3BjOklu +dDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm90aWZpY2F0aW9uRGF0YSIgVHlwZU5hbWU9 +InVhOkV4dGVuc2lvbk9iamVjdCIgTGVuZ3RoRmllbGQ9Ik5vT2ZOb3RpZmljYXRpb25EYXRhIiAv +Pg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9 +Ik5vdGlmaWNhdGlvbkRhdGEiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICA8L29w +YzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkRhdGFDaGFu +Z2VOb3RpZmljYXRpb24iIEJhc2VUeXBlPSJ0bnM6Tm90aWZpY2F0aW9uRGF0YSI+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJOb09mTW9uaXRvcmVkSXRlbXMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNb25pdG9yZWRJdGVtcyIgVHlwZU5hbWU9InRuczpNb25p +dG9yZWRJdGVtTm90aWZpY2F0aW9uIiBMZW5ndGhGaWVsZD0iTm9PZk1vbml0b3JlZEl0ZW1zIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9Im9w +YzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJbmZvcyIgVHlwZU5h +bWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0iTm9PZkRpYWdub3N0aWNJbmZvcyIg +Lz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1l +PSJNb25pdG9yZWRJdGVtTm90aWZpY2F0aW9uIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0 +Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNsaWVudEhhbmRsZSIgVHlwZU5hbWU9Im9wYzpVSW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1ZSIgVHlwZU5hbWU9InVhOkRhdGFWYWx1 +ZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBO +YW1lPSJFdmVudE5vdGlmaWNhdGlvbkxpc3QiIEJhc2VUeXBlPSJ0bnM6Tm90aWZpY2F0aW9uRGF0 +YSI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRXZlbnRzIiBUeXBlTmFtZT0ib3BjOkludDMy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRXZlbnRzIiBUeXBlTmFtZT0idG5zOkV2ZW50Rmll +bGRMaXN0IiBMZW5ndGhGaWVsZD0iTm9PZkV2ZW50cyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5 +cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJFdmVudEZpZWxkTGlzdCIgQmFzZVR5 +cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDbGllbnRIYW5k +bGUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkV2 +ZW50RmllbGRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +RXZlbnRGaWVsZHMiIFR5cGVOYW1lPSJ1YTpWYXJpYW50IiBMZW5ndGhGaWVsZD0iTm9PZkV2ZW50 +RmllbGRzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9Ikhpc3RvcnlFdmVudEZpZWxkTGlzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRXZlbnRGaWVsZHMiIFR5cGVOYW1lPSJv +cGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFdmVudEZpZWxkcyIgVHlwZU5hbWU9 +InVhOlZhcmlhbnQiIExlbmd0aEZpZWxkPSJOb09mRXZlbnRGaWVsZHMiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iU3RhdHVzQ2hhbmdl +Tm90aWZpY2F0aW9uIiBCYXNlVHlwZT0idG5zOk5vdGlmaWNhdGlvbkRhdGEiPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iU3RhdHVzIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJbmZvIiBUeXBlTmFtZT0idWE6RGlhZ25vc3RpY0luZm8i +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iU3Vic2NyaXB0aW9uQWNrbm93bGVkZ2VtZW50IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2Jq +ZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN1YnNjcmlwdGlvbklkIiBUeXBlTmFtZT0ib3Bj +OlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlcXVlbmNlTnVtYmVyIiBUeXBlTmFt +ZT0ib3BjOlVJbnQzMiIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1 +Y3R1cmVkVHlwZSBOYW1lPSJQdWJsaXNoUmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5z +OlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mU3Vic2NyaXB0aW9u +QWNrbm93bGVkZ2VtZW50cyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IlN1YnNjcmlwdGlvbkFja25vd2xlZGdlbWVudHMiIFR5cGVOYW1lPSJ0bnM6U3Vic2Ny +aXB0aW9uQWNrbm93bGVkZ2VtZW50IiBMZW5ndGhGaWVsZD0iTm9PZlN1YnNjcmlwdGlvbkFja25v +d2xlZGdlbWVudHMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0 +dXJlZFR5cGUgTmFtZT0iUHVibGlzaFJlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2Jq +ZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0idG5z +OlJlc3BvbnNlSGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU3Vic2NyaXB0aW9uSWQi +IFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkF2YWls +YWJsZVNlcXVlbmNlTnVtYmVycyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkF2YWlsYWJsZVNlcXVlbmNlTnVtYmVycyIgVHlwZU5hbWU9Im9wYzpVSW50MzIi +IExlbmd0aEZpZWxkPSJOb09mQXZhaWxhYmxlU2VxdWVuY2VOdW1iZXJzIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTW9yZU5vdGlmaWNhdGlvbnMiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vdGlmaWNhdGlvbk1lc3NhZ2UiIFR5cGVOYW1lPSJ0bnM6 +Tm90aWZpY2F0aW9uTWVzc2FnZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZSZXN1bHRz +IiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVzdWx0cyIg +VHlwZU5hbWU9InVhOlN0YXR1c0NvZGUiIExlbmd0aEZpZWxkPSJOb09mUmVzdWx0cyIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJvcGM6SW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaWFnbm9zdGljSW5mb3MiIFR5cGVOYW1lPSJ1 +YTpEaWFnbm9zdGljSW5mbyIgTGVuZ3RoRmllbGQ9Ik5vT2ZEaWFnbm9zdGljSW5mb3MiIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iUmVw +dWJsaXNoUmVxdWVzdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJSZXF1ZXN0SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RIZWFkZXIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdWJzY3JpcHRpb25JZCIgVHlwZU5hbWU9Im9wYzpVSW50 +MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXRyYW5zbWl0U2VxdWVuY2VOdW1iZXIiIFR5 +cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3Bj +OlN0cnVjdHVyZWRUeXBlIE5hbWU9IlJlcHVibGlzaFJlc3BvbnNlIiBCYXNlVHlwZT0idWE6RXh0 +ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlc3BvbnNlSGVhZGVyIiBUeXBl +TmFtZT0idG5zOlJlc3BvbnNlSGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm90aWZp +Y2F0aW9uTWVzc2FnZSIgVHlwZU5hbWU9InRuczpOb3RpZmljYXRpb25NZXNzYWdlIiAvPg0KICA8 +L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlRyYW5z +ZmVyUmVzdWx0IiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxk +IE5hbWU9IlN0YXR1c0NvZGUiIFR5cGVOYW1lPSJ1YTpTdGF0dXNDb2RlIiAvPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iTm9PZkF2YWlsYWJsZVNlcXVlbmNlTnVtYmVycyIgVHlwZU5hbWU9Im9wYzpJ +bnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkF2YWlsYWJsZVNlcXVlbmNlTnVtYmVycyIg +VHlwZU5hbWU9Im9wYzpVSW50MzIiIExlbmd0aEZpZWxkPSJOb09mQXZhaWxhYmxlU2VxdWVuY2VO +dW1iZXJzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9IlRyYW5zZmVyU3Vic2NyaXB0aW9uc1JlcXVlc3QiIEJhc2VUeXBlPSJ1YTpFeHRl +bnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVxdWVzdEhlYWRlciIgVHlwZU5h +bWU9InRuczpSZXF1ZXN0SGVhZGVyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZlN1YnNj +cmlwdGlvbklkcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlN1YnNjcmlwdGlvbklkcyIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIExlbmd0aEZpZWxkPSJOb09m +U3Vic2NyaXB0aW9uSWRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VuZEluaXRpYWxWYWx1 +ZXMiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoN +CiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJUcmFuc2ZlclN1YnNjcmlwdGlvbnNSZXNwb25z +ZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJS +ZXNwb25zZUhlYWRlciIgVHlwZU5hbWU9InRuczpSZXNwb25zZUhlYWRlciIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZSZXN1bHRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iUmVzdWx0cyIgVHlwZU5hbWU9InRuczpUcmFuc2ZlclJlc3VsdCIgTGVu +Z3RoRmllbGQ9Ik5vT2ZSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdu +b3N0aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkRpYWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVs +ZD0iTm9PZkRpYWdub3N0aWNJbmZvcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAg +PG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJEZWxldGVTdWJzY3JpcHRpb25zUmVxdWVzdCIgQmFz +ZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXF1ZXN0 +SGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlcXVlc3RIZWFkZXIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mU3Vic2NyaXB0aW9uSWRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iU3Vic2NyaXB0aW9uSWRzIiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgTGVu +Z3RoRmllbGQ9Ik5vT2ZTdWJzY3JpcHRpb25JZHMiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBl +Pg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRGVsZXRlU3Vic2NyaXB0aW9uc1Jlc3Bv +bnNlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IlJlc3BvbnNlSGVhZGVyIiBUeXBlTmFtZT0idG5zOlJlc3BvbnNlSGVhZGVyIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iTm9PZlJlc3VsdHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJSZXN1bHRzIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgTGVuZ3Ro +RmllbGQ9Ik5vT2ZSZXN1bHRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkRpYWdub3N0 +aWNJbmZvcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRp +YWdub3N0aWNJbmZvcyIgVHlwZU5hbWU9InVhOkRpYWdub3N0aWNJbmZvIiBMZW5ndGhGaWVsZD0i +Tm9PZkRpYWdub3N0aWNJbmZvcyIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9w +YzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJCdWlsZEluZm8iIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25P +YmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUHJvZHVjdFVyaSIgVHlwZU5hbWU9Im9wYzpT +dHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNYW51ZmFjdHVyZXJOYW1lIiBUeXBlTmFt +ZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlByb2R1Y3ROYW1lIiBUeXBl +TmFtZT0ib3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNvZnR3YXJlVmVyc2lv +biIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCdWlsZE51 +bWJlciIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJCdWls +ZERhdGUiIFR5cGVOYW1lPSJvcGM6RGF0ZVRpbWUiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBl +Pg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iUmVkdW5kYW5jeVN1cHBvcnQiIExlbmd0 +aEluQml0cz0iMzIiPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ik5vbmUiIFZhbHVl +PSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkNvbGQiIFZhbHVlPSIxIiAv +Pg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9Ildhcm0iIFZhbHVlPSIyIiAvPg0KICAg +IDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkhvdCIgVmFsdWU9IjMiIC8+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iVHJhbnNwYXJlbnQiIFZhbHVlPSI0IiAvPg0KICAgIDxvcGM6 +RW51bWVyYXRlZFZhbHVlIE5hbWU9IkhvdEFuZE1pcnJvcmVkIiBWYWx1ZT0iNSIgLz4NCiAgPC9v +cGM6RW51bWVyYXRlZFR5cGU+DQoNCiAgPG9wYzpFbnVtZXJhdGVkVHlwZSBOYW1lPSJTZXJ2ZXJT +dGF0ZSIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0i +UnVubmluZyIgVmFsdWU9IjAiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iRmFp +bGVkIiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb0NvbmZp +Z3VyYXRpb24iIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlN1 +c3BlbmRlZCIgVmFsdWU9IjMiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iU2h1 +dGRvd24iIFZhbHVlPSI0IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlRlc3Qi +IFZhbHVlPSI1IiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkNvbW11bmljYXRp +b25GYXVsdCIgVmFsdWU9IjYiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iVW5r +bm93biIgVmFsdWU9IjciIC8+DQogIDwvb3BjOkVudW1lcmF0ZWRUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iUmVkdW5kYW50U2VydmVyRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpF +eHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmVySWQiIFR5cGVOYW1l +PSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmljZUxldmVsIiBUeXBl +TmFtZT0ib3BjOkJ5dGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJTdGF0ZSIgVHlw +ZU5hbWU9InRuczpTZXJ2ZXJTdGF0ZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAg +PG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJFbmRwb2ludFVybExpc3REYXRhVHlwZSIgQmFzZVR5 +cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mRW5kcG9p +bnRVcmxMaXN0IiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +RW5kcG9pbnRVcmxMaXN0IiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgTGVuZ3RoRmllbGQ9Ik5vT2ZF +bmRwb2ludFVybExpc3QiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iTmV0d29ya0dyb3VwRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRl +bnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmVyVXJpIiBUeXBlTmFtZT0i +b3BjOlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZOZXR3b3JrUGF0aHMiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOZXR3b3JrUGF0aHMi +IFR5cGVOYW1lPSJ0bnM6RW5kcG9pbnRVcmxMaXN0RGF0YVR5cGUiIExlbmd0aEZpZWxkPSJOb09m +TmV0d29ya1BhdGhzIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVj +dHVyZWRUeXBlIE5hbWU9IlNhbXBsaW5nSW50ZXJ2YWxEaWFnbm9zdGljc0RhdGFUeXBlIiBCYXNl +VHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNhbXBsaW5n +SW50ZXJ2YWwiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +TW9uaXRvcmVkSXRlbUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik1heE1vbml0b3JlZEl0ZW1Db3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEaXNhYmxlZE1vbml0b3JlZEl0ZW1Db3VudCIgVHlwZU5h +bWU9Im9wYzpVSW50MzIiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iU2VydmVyRGlhZ25vc3RpY3NTdW1tYXJ5RGF0YVR5cGUiIEJhc2VU +eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2VydmVyVmll +d0NvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkN1 +cnJlbnRTZXNzaW9uQ291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iQ3VtdWxhdGVkU2Vzc2lvbkNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlY3VyaXR5UmVqZWN0ZWRTZXNzaW9uQ291bnQiIFR5cGVO +YW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVqZWN0ZWRTZXNzaW9u +Q291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2Vz +c2lvblRpbWVvdXRDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJTZXNzaW9uQWJvcnRDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJDdXJyZW50U3Vic2NyaXB0aW9uQ291bnQiIFR5cGVOYW1lPSJvcGM6 +VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ3VtdWxhdGVkU3Vic2NyaXB0aW9uQ291 +bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUHVibGlz +aGluZ0ludGVydmFsQ291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iU2VjdXJpdHlSZWplY3RlZFJlcXVlc3RzQ291bnQiIFR5cGVOYW1lPSJvcGM6VUlu +dDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUmVqZWN0ZWRSZXF1ZXN0c0NvdW50IiBUeXBl +TmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpT +dHJ1Y3R1cmVkVHlwZSBOYW1lPSJTZXJ2ZXJTdGF0dXNEYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4 +dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdGFydFRpbWUiIFR5cGVOYW1l +PSJvcGM6RGF0ZVRpbWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDdXJyZW50VGltZSIgVHlw +ZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlN0YXRlIiBUeXBl +TmFtZT0idG5zOlNlcnZlclN0YXRlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQnVpbGRJbmZv +IiBUeXBlTmFtZT0idG5zOkJ1aWxkSW5mbyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlNlY29u +ZHNUaWxsU2h1dGRvd24iIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iU2h1dGRvd25SZWFzb24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiAvPg0KICA8 +L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IlNlc3Np +b25EaWFnbm9zdGljc0RhdGFUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlNlc3Npb25JZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlNlc3Npb25OYW1lIiBUeXBlTmFtZT0ib3BjOlN0cmluZyIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkNsaWVudERlc2NyaXB0aW9uIiBUeXBlTmFtZT0idG5zOkFw +cGxpY2F0aW9uRGVzY3JpcHRpb24iIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXJ2ZXJVcmki +IFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRW5kcG9pbnRV +cmwiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkxv +Y2FsZUlkcyIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikxv +Y2FsZUlkcyIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIExlbmd0aEZpZWxkPSJOb09mTG9jYWxlSWRz +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWN0dWFsU2Vzc2lvblRpbWVvdXQiIFR5cGVOYW1l +PSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTWF4UmVzcG9uc2VNZXNzYWdl +U2l6ZSIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDbGll +bnRDb25uZWN0aW9uVGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IkNsaWVudExhc3RDb250YWN0VGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkN1cnJlbnRTdWJzY3JpcHRpb25zQ291bnQiIFR5cGVO +YW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ3VycmVudE1vbml0b3Jl +ZEl0ZW1zQ291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iQ3VycmVudFB1Ymxpc2hSZXF1ZXN0c0luUXVldWUiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAv +Pg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVG90YWxSZXF1ZXN0Q291bnQiIFR5cGVOYW1lPSJ0bnM6 +U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlVuYXV0aG9y +aXplZFJlcXVlc3RDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJSZWFkQ291bnQiIFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIg +Lz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikhpc3RvcnlSZWFkQ291bnQiIFR5cGVOYW1lPSJ0bnM6 +U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IldyaXRlQ291 +bnQiIFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ikhpc3RvcnlVcGRhdGVDb3VudCIgVHlwZU5hbWU9InRuczpTZXJ2aWNlQ291bnRl +ckRhdGFUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQ2FsbENvdW50IiBUeXBlTmFtZT0i +dG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJDcmVh +dGVNb25pdG9yZWRJdGVtc0NvdW50IiBUeXBlTmFtZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5 +cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNb2RpZnlNb25pdG9yZWRJdGVtc0NvdW50IiBU +eXBlTmFtZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJTZXRNb25pdG9yaW5nTW9kZUNvdW50IiBUeXBlTmFtZT0idG5zOlNlcnZpY2VDb3VudGVy +RGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXRUcmlnZ2VyaW5nQ291bnQiIFR5 +cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkRlbGV0ZU1vbml0b3JlZEl0ZW1zQ291bnQiIFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50 +ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNyZWF0ZVN1YnNjcmlwdGlvbkNv +dW50IiBUeXBlTmFtZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIC8+DQogICAgPG9wYzpG +aWVsZCBOYW1lPSJNb2RpZnlTdWJzY3JpcHRpb25Db3VudCIgVHlwZU5hbWU9InRuczpTZXJ2aWNl +Q291bnRlckRhdGFUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iU2V0UHVibGlzaGluZ01v +ZGVDb3VudCIgVHlwZU5hbWU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFUeXBlIiAvPg0KICAgIDxv +cGM6RmllbGQgTmFtZT0iUHVibGlzaENvdW50IiBUeXBlTmFtZT0idG5zOlNlcnZpY2VDb3VudGVy +RGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXB1Ymxpc2hDb3VudCIgVHlwZU5h +bWU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +VHJhbnNmZXJTdWJzY3JpcHRpb25zQ291bnQiIFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50ZXJE +YXRhVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRlbGV0ZVN1YnNjcmlwdGlvbnNDb3Vu +dCIgVHlwZU5hbWU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFUeXBlIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iQWRkTm9kZXNDb3VudCIgVHlwZU5hbWU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFU +eXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWRkUmVmZXJlbmNlc0NvdW50IiBUeXBlTmFt +ZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJE +ZWxldGVOb2Rlc0NvdW50IiBUeXBlTmFtZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIC8+ +DQogICAgPG9wYzpGaWVsZCBOYW1lPSJEZWxldGVSZWZlcmVuY2VzQ291bnQiIFR5cGVOYW1lPSJ0 +bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkJyb3dz +ZUNvdW50IiBUeXBlTmFtZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJCcm93c2VOZXh0Q291bnQiIFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50 +ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRyYW5zbGF0ZUJyb3dzZVBhdGhz +VG9Ob2RlSWRzQ291bnQiIFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IlF1ZXJ5Rmlyc3RDb3VudCIgVHlwZU5hbWU9InRuczpTZXJ2 +aWNlQ291bnRlckRhdGFUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUXVlcnlOZXh0Q291 +bnQiIFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9IlJlZ2lzdGVyTm9kZXNDb3VudCIgVHlwZU5hbWU9InRuczpTZXJ2aWNlQ291bnRl +ckRhdGFUeXBlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVW5yZWdpc3Rlck5vZGVzQ291bnQi +IFR5cGVOYW1lPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgLz4NCiAgPC9vcGM6U3RydWN0 +dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJTZXNzaW9uU2VjdXJpdHlE +aWFnbm9zdGljc0RhdGFUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IlNlc3Npb25JZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9IkNsaWVudFVzZXJJZE9mU2Vzc2lvbiIgVHlwZU5hbWU9Im9wYzpTdHJp +bmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mQ2xpZW50VXNlcklkSGlzdG9yeSIgVHlw +ZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNsaWVudFVzZXJJZEhp +c3RvcnkiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiBMZW5ndGhGaWVsZD0iTm9PZkNsaWVudFVzZXJJ +ZEhpc3RvcnkiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBdXRoZW50aWNhdGlvbk1lY2hhbmlz +bSIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJFbmNvZGlu +ZyIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUcmFuc3Bv +cnRQcm90b2NvbCIgVHlwZU5hbWU9Im9wYzpTdHJpbmciIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJTZWN1cml0eU1vZGUiIFR5cGVOYW1lPSJ0bnM6TWVzc2FnZVNlY3VyaXR5TW9kZSIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9IlNlY3VyaXR5UG9saWN5VXJpIiBUeXBlTmFtZT0ib3BjOlN0cmlu +ZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNsaWVudENlcnRpZmljYXRlIiBUeXBlTmFtZT0i +b3BjOkJ5dGVTdHJpbmciIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3Ry +dWN0dXJlZFR5cGUgTmFtZT0iU2VydmljZUNvdW50ZXJEYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4 +dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJUb3RhbENvdW50IiBUeXBlTmFt +ZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkVycm9yQ291bnQiIFR5cGVO +YW1lPSJvcGM6VUludDMyIiAvPg0KICA8L29wYzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0 +cnVjdHVyZWRUeXBlIE5hbWU9IlN0YXR1c1Jlc3VsdCIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdGF0dXNDb2RlIiBUeXBlTmFtZT0idWE6U3Rh +dHVzQ29kZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkRpYWdub3N0aWNJbmZvIiBUeXBlTmFt +ZT0idWE6RGlhZ25vc3RpY0luZm8iIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxv +cGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iU3Vic2NyaXB0aW9uRGlhZ25vc3RpY3NEYXRhVHlwZSIg +QmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTZXNz +aW9uSWQiIFR5cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJTdWJz +Y3JpcHRpb25JZCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJQcmlvcml0eSIgVHlwZU5hbWU9Im9wYzpCeXRlIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +UHVibGlzaGluZ0ludGVydmFsIiBUeXBlTmFtZT0ib3BjOkRvdWJsZSIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik1heEtlZXBBbGl2ZUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAg +ICA8b3BjOkZpZWxkIE5hbWU9Ik1heExpZmV0aW1lQ291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMy +IiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2giIFR5 +cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUHVibGlzaGluZ0Vu +YWJsZWQiIFR5cGVOYW1lPSJvcGM6Qm9vbGVhbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1v +ZGlmeUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9 +IkVuYWJsZUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9IkRpc2FibGVDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVs +ZCBOYW1lPSJSZXB1Ymxpc2hSZXF1ZXN0Q291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iUmVwdWJsaXNoTWVzc2FnZVJlcXVlc3RDb3VudCIgVHlwZU5h +bWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJSZXB1Ymxpc2hNZXNzYWdl +Q291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVHJh +bnNmZXJSZXF1ZXN0Q291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iVHJhbnNmZXJyZWRUb0FsdENsaWVudENvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQz +MiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlRyYW5zZmVycmVkVG9TYW1lQ2xpZW50Q291bnQi +IFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iUHVibGlzaFJl +cXVlc3RDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1l +PSJEYXRhQ2hhbmdlTm90aWZpY2F0aW9uc0NvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4N +CiAgICA8b3BjOkZpZWxkIE5hbWU9IkV2ZW50Tm90aWZpY2F0aW9uc0NvdW50IiBUeXBlTmFtZT0i +b3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vdGlmaWNhdGlvbnNDb3VudCIg +VHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJMYXRlUHVibGlz +aFJlcXVlc3RDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJDdXJyZW50S2VlcEFsaXZlQ291bnQiIFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQ3VycmVudExpZmV0aW1lQ291bnQiIFR5cGVOYW1lPSJvcGM6VUlu +dDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVW5hY2tub3dsZWRnZWRNZXNzYWdlQ291bnQi +IFR5cGVOYW1lPSJvcGM6VUludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzY2FyZGVk +TWVzc2FnZUNvdW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5h +bWU9Ik1vbml0b3JlZEl0ZW1Db3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJEaXNhYmxlZE1vbml0b3JlZEl0ZW1Db3VudCIgVHlwZU5hbWU9Im9wYzpV +SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJNb25pdG9yaW5nUXVldWVPdmVyZmxvd0Nv +dW50IiBUeXBlTmFtZT0ib3BjOlVJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5leHRT +ZXF1ZW5jZU51bWJlciIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJFdmVudFF1ZXVlT3ZlckZsb3dDb3VudCIgVHlwZU5hbWU9Im9wYzpVSW50MzIiIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iTW9k +ZWxDaGFuZ2VTdHJ1Y3R1cmVWZXJiTWFzayIgTGVuZ3RoSW5CaXRzPSIzMiI+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iTm9kZUFkZGVkIiBWYWx1ZT0iMSIgLz4NCiAgICA8b3BjOkVu +dW1lcmF0ZWRWYWx1ZSBOYW1lPSJOb2RlRGVsZXRlZCIgVmFsdWU9IjIiIC8+DQogICAgPG9wYzpF +bnVtZXJhdGVkVmFsdWUgTmFtZT0iUmVmZXJlbmNlQWRkZWQiIFZhbHVlPSI0IiAvPg0KICAgIDxv +cGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IlJlZmVyZW5jZURlbGV0ZWQiIFZhbHVlPSI4IiAvPg0K +ICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9IkRhdGFUeXBlQ2hhbmdlZCIgVmFsdWU9IjE2 +IiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5h +bWU9Ik1vZGVsQ2hhbmdlU3RydWN0dXJlRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25P +YmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQWZmZWN0ZWQiIFR5cGVOYW1lPSJ1YTpOb2Rl +SWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBZmZlY3RlZFR5cGUiIFR5cGVOYW1lPSJ1YTpO +b2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWZXJiIiBUeXBlTmFtZT0ib3BjOkJ5dGUi +IC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFt +ZT0iU2VtYW50aWNDaGFuZ2VTdHJ1Y3R1cmVEYXRhVHlwZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lv +bk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBZmZlY3RlZCIgVHlwZU5hbWU9InVhOk5v +ZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkFmZmVjdGVkVHlwZSIgVHlwZU5hbWU9InVh +Ok5vZGVJZCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVk +VHlwZSBOYW1lPSJSYW5nZSIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJMb3ciIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICAgIDxvcGM6Rmll +bGQgTmFtZT0iSGlnaCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogIDwvb3BjOlN0cnVjdHVy +ZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRVVJbmZvcm1hdGlvbiIgQmFz +ZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOYW1lc3Bh +Y2VVcmkiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVW5p +dElkIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iRGlzcGxh +eU5hbWUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iRGVzY3JpcHRpb24iIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiAvPg0KICA8L29wYzpT +dHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOkVudW1lcmF0ZWRUeXBlIE5hbWU9IkF4aXNTY2FsZUVu +dW1lcmF0aW9uIiBMZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBO +YW1lPSJMaW5lYXIiIFZhbHVlPSIwIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5hbWU9 +IkxvZyIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0iTG4iIFZh +bHVlPSIyIiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRU +eXBlIE5hbWU9IkNvbXBsZXhOdW1iZXJUeXBlIiBCYXNlVHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0 +Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IlJlYWwiIFR5cGVOYW1lPSJvcGM6RmxvYXQiIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJJbWFnaW5hcnkiIFR5cGVOYW1lPSJvcGM6RmxvYXQiIC8+DQog +IDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iRG91 +YmxlQ29tcGxleE51bWJlclR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iUmVhbCIgVHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9w +YzpGaWVsZCBOYW1lPSJJbWFnaW5hcnkiIFR5cGVOYW1lPSJvcGM6RG91YmxlIiAvPg0KICA8L29w +YzpTdHJ1Y3R1cmVkVHlwZT4NCg0KICA8b3BjOlN0cnVjdHVyZWRUeXBlIE5hbWU9IkF4aXNJbmZv +cm1hdGlvbiIgQmFzZVR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCI+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJFbmdpbmVlcmluZ1VuaXRzIiBUeXBlTmFtZT0idG5zOkVVSW5mb3JtYXRpb24iIC8+DQog +ICAgPG9wYzpGaWVsZCBOYW1lPSJFVVJhbmdlIiBUeXBlTmFtZT0idG5zOlJhbmdlIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iVGl0bGUiIFR5cGVOYW1lPSJ1YTpMb2NhbGl6ZWRUZXh0IiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iQXhpc1NjYWxlVHlwZSIgVHlwZU5hbWU9InRuczpBeGlzU2Nh +bGVFbnVtZXJhdGlvbiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik5vT2ZBeGlzU3RlcHMiIFR5 +cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJBeGlzU3RlcHMiIFR5 +cGVOYW1lPSJvcGM6RG91YmxlIiBMZW5ndGhGaWVsZD0iTm9PZkF4aXNTdGVwcyIgLz4NCiAgPC9v +cGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJYVlR5cGUi +IEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iWCIg +VHlwZU5hbWU9Im9wYzpEb3VibGUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJWYWx1ZSIgVHlw +ZU5hbWU9Im9wYzpGbG9hdCIgLz4NCiAgPC9vcGM6U3RydWN0dXJlZFR5cGU+DQoNCiAgPG9wYzpT +dHJ1Y3R1cmVkVHlwZSBOYW1lPSJQcm9ncmFtRGlhZ25vc3RpY0RhdGFUeXBlIiBCYXNlVHlwZT0i +dWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNyZWF0ZVNlc3Npb25J +ZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9IkNyZWF0ZUNs +aWVudE5hbWUiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0i +SW52b2NhdGlvbkNyZWF0aW9uVGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGltZSIgLz4NCiAgICA8 +b3BjOkZpZWxkIE5hbWU9Ikxhc3RUcmFuc2l0aW9uVGltZSIgVHlwZU5hbWU9Im9wYzpEYXRlVGlt +ZSIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikxhc3RNZXRob2RDYWxsIiBUeXBlTmFtZT0ib3Bj +OlN0cmluZyIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikxhc3RNZXRob2RTZXNzaW9uSWQiIFR5 +cGVOYW1lPSJ1YTpOb2RlSWQiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJOb09mTGFzdE1ldGhv +ZElucHV0QXJndW1lbnRzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0KICAgIDxvcGM6RmllbGQg +TmFtZT0iTGFzdE1ldGhvZElucHV0QXJndW1lbnRzIiBUeXBlTmFtZT0idG5zOkFyZ3VtZW50IiBM +ZW5ndGhGaWVsZD0iTm9PZkxhc3RNZXRob2RJbnB1dEFyZ3VtZW50cyIgLz4NCiAgICA8b3BjOkZp +ZWxkIE5hbWU9Ik5vT2ZMYXN0TWV0aG9kT3V0cHV0QXJndW1lbnRzIiBUeXBlTmFtZT0ib3BjOklu +dDMyIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTGFzdE1ldGhvZE91dHB1dEFyZ3VtZW50cyIg +VHlwZU5hbWU9InRuczpBcmd1bWVudCIgTGVuZ3RoRmllbGQ9Ik5vT2ZMYXN0TWV0aG9kT3V0cHV0 +QXJndW1lbnRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTGFzdE1ldGhvZENhbGxUaW1lIiBU +eXBlTmFtZT0ib3BjOkRhdGVUaW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTGFzdE1ldGhv +ZFJldHVyblN0YXR1cyIgVHlwZU5hbWU9InRuczpTdGF0dXNSZXN1bHQiIC8+DQogIDwvb3BjOlN0 +cnVjdHVyZWRUeXBlPg0KDQogIDxvcGM6U3RydWN0dXJlZFR5cGUgTmFtZT0iUHJvZ3JhbURpYWdu +b3N0aWMyRGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6 +RmllbGQgTmFtZT0iQ3JlYXRlU2Vzc2lvbklkIiBUeXBlTmFtZT0idWE6Tm9kZUlkIiAvPg0KICAg +IDxvcGM6RmllbGQgTmFtZT0iQ3JlYXRlQ2xpZW50TmFtZSIgVHlwZU5hbWU9Im9wYzpTdHJpbmci +IC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJJbnZvY2F0aW9uQ3JlYXRpb25UaW1lIiBUeXBlTmFt +ZT0ib3BjOkRhdGVUaW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTGFzdFRyYW5zaXRpb25U +aW1lIiBUeXBlTmFtZT0ib3BjOkRhdGVUaW1lIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTGFz +dE1ldGhvZENhbGwiIFR5cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFt +ZT0iTGFzdE1ldGhvZFNlc3Npb25JZCIgVHlwZU5hbWU9InVhOk5vZGVJZCIgLz4NCiAgICA8b3Bj +OkZpZWxkIE5hbWU9Ik5vT2ZMYXN0TWV0aG9kSW5wdXRBcmd1bWVudHMiIFR5cGVOYW1lPSJvcGM6 +SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJMYXN0TWV0aG9kSW5wdXRBcmd1bWVudHMi +IFR5cGVOYW1lPSJ0bnM6QXJndW1lbnQiIExlbmd0aEZpZWxkPSJOb09mTGFzdE1ldGhvZElucHV0 +QXJndW1lbnRzIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iTm9PZkxhc3RNZXRob2RPdXRwdXRB +cmd1bWVudHMiIFR5cGVOYW1lPSJvcGM6SW50MzIiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJM +YXN0TWV0aG9kT3V0cHV0QXJndW1lbnRzIiBUeXBlTmFtZT0idG5zOkFyZ3VtZW50IiBMZW5ndGhG +aWVsZD0iTm9PZkxhc3RNZXRob2RPdXRwdXRBcmd1bWVudHMiIC8+DQogICAgPG9wYzpGaWVsZCBO +YW1lPSJOb09mTGFzdE1ldGhvZElucHV0VmFsdWVzIiBUeXBlTmFtZT0ib3BjOkludDMyIiAvPg0K +ICAgIDxvcGM6RmllbGQgTmFtZT0iTGFzdE1ldGhvZElucHV0VmFsdWVzIiBUeXBlTmFtZT0idWE6 +VmFyaWFudCIgTGVuZ3RoRmllbGQ9Ik5vT2ZMYXN0TWV0aG9kSW5wdXRWYWx1ZXMiIC8+DQogICAg +PG9wYzpGaWVsZCBOYW1lPSJOb09mTGFzdE1ldGhvZE91dHB1dFZhbHVlcyIgVHlwZU5hbWU9Im9w +YzpJbnQzMiIgLz4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ikxhc3RNZXRob2RPdXRwdXRWYWx1ZXMi +IFR5cGVOYW1lPSJ1YTpWYXJpYW50IiBMZW5ndGhGaWVsZD0iTm9PZkxhc3RNZXRob2RPdXRwdXRW +YWx1ZXMiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJMYXN0TWV0aG9kQ2FsbFRpbWUiIFR5cGVO +YW1lPSJvcGM6RGF0ZVRpbWUiIC8+DQogICAgPG9wYzpGaWVsZCBOYW1lPSJMYXN0TWV0aG9kUmV0 +dXJuU3RhdHVzIiBUeXBlTmFtZT0idWE6U3RhdHVzQ29kZSIgLz4NCiAgPC9vcGM6U3RydWN0dXJl +ZFR5cGU+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJBbm5vdGF0aW9uIiBCYXNlVHlw +ZT0idWE6RXh0ZW5zaW9uT2JqZWN0Ij4NCiAgICA8b3BjOkZpZWxkIE5hbWU9Ik1lc3NhZ2UiIFR5 +cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iVXNlck5hbWUiIFR5 +cGVOYW1lPSJvcGM6U3RyaW5nIiAvPg0KICAgIDxvcGM6RmllbGQgTmFtZT0iQW5ub3RhdGlvblRp +bWUiIFR5cGVOYW1lPSJvcGM6RGF0ZVRpbWUiIC8+DQogIDwvb3BjOlN0cnVjdHVyZWRUeXBlPg0K +DQogIDxvcGM6RW51bWVyYXRlZFR5cGUgTmFtZT0iRXhjZXB0aW9uRGV2aWF0aW9uRm9ybWF0IiBM +ZW5ndGhJbkJpdHM9IjMyIj4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJBYnNvbHV0 +ZVZhbHVlIiBWYWx1ZT0iMCIgLz4NCiAgICA8b3BjOkVudW1lcmF0ZWRWYWx1ZSBOYW1lPSJQZXJj +ZW50T2ZWYWx1ZSIgVmFsdWU9IjEiIC8+DQogICAgPG9wYzpFbnVtZXJhdGVkVmFsdWUgTmFtZT0i +UGVyY2VudE9mUmFuZ2UiIFZhbHVlPSIyIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZhbHVlIE5h +bWU9IlBlcmNlbnRPZkVVUmFuZ2UiIFZhbHVlPSIzIiAvPg0KICAgIDxvcGM6RW51bWVyYXRlZFZh +bHVlIE5hbWU9IlVua25vd24iIFZhbHVlPSI0IiAvPg0KICA8L29wYzpFbnVtZXJhdGVkVHlwZT4N +Cg0KPC9vcGM6VHlwZURpY3Rpb25hcnk+ + + + + NamespaceUri + + i=68 + i=7617 + + + http://opcfoundation.org/UA/ + + + + Deprecated + + i=68 + i=7617 + + + true + + + + Union + + i=69 + i=7617 + + + Union + + + + KeyValuePair + + i=69 + i=7617 + + + KeyValuePair + + + + AdditionalParametersType + + i=69 + i=7617 + + + AdditionalParametersType + + + + EphemeralKeyType + + i=69 + i=7617 + + + EphemeralKeyType + + + + EndpointType + + i=69 + i=7617 + + + EndpointType + + + + RationalNumber + + i=69 + i=7617 + + + RationalNumber + + + + Vector + + i=69 + i=7617 + + + Vector + + + + 3DVector + + i=69 + i=7617 + + + ThreeDVector + + + + CartesianCoordinates + + i=69 + i=7617 + + + CartesianCoordinates + + + + 3DCartesianCoordinates + + i=69 + i=7617 + + + ThreeDCartesianCoordinates + + + + Orientation + + i=69 + i=7617 + + + Orientation + + + + 3DOrientation + + i=69 + i=7617 + + + ThreeDOrientation + + + + Frame + + i=69 + i=7617 + + + Frame + + + + 3DFrame + + i=69 + i=7617 + + + ThreeDFrame + + + + IdentityMappingRuleType + + i=69 + i=7617 + + + IdentityMappingRuleType + + + + CurrencyUnitType + + i=69 + i=7617 + + + CurrencyUnitType + + + + TrustListDataType + + i=69 + i=7617 + + + TrustListDataType + + + + DataTypeSchemaHeader + + i=69 + i=7617 + + + DataTypeSchemaHeader + + + + DataTypeDescription + + i=69 + i=7617 + + + DataTypeDescription + + + + StructureDescription + + i=69 + i=7617 + + + StructureDescription + + + + EnumDescription + + i=69 + i=7617 + + + EnumDescription + + + + SimpleTypeDescription + + i=69 + i=7617 + + + SimpleTypeDescription + + + + UABinaryFileDataType + + i=69 + i=7617 + + + UABinaryFileDataType + + + + DataSetMetaDataType + + i=69 + i=7617 + + + DataSetMetaDataType + + + + FieldMetaData + + i=69 + i=7617 + + + FieldMetaData + + + + ConfigurationVersionDataType + + i=69 + i=7617 + + + ConfigurationVersionDataType + + + + PublishedDataSetDataType + + i=69 + i=7617 + + + PublishedDataSetDataType + + + + PublishedDataSetSourceDataType + + i=69 + i=7617 + + + PublishedDataSetSourceDataType + + + + PublishedVariableDataType + + i=69 + i=7617 + + + PublishedVariableDataType + + + + PublishedDataItemsDataType + + i=69 + i=7617 + + + PublishedDataItemsDataType + + + + PublishedEventsDataType + + i=69 + i=7617 + + + PublishedEventsDataType + + + + DataSetWriterDataType + + i=69 + i=7617 + + + DataSetWriterDataType + + + + DataSetWriterTransportDataType + + i=69 + i=7617 + + + DataSetWriterTransportDataType + + + + DataSetWriterMessageDataType + + i=69 + i=7617 + + + DataSetWriterMessageDataType + + + + PubSubGroupDataType + + i=69 + i=7617 + + + PubSubGroupDataType + + + + WriterGroupDataType + + i=69 + i=7617 + + + WriterGroupDataType + + + + WriterGroupTransportDataType + + i=69 + i=7617 + + + WriterGroupTransportDataType + + + + WriterGroupMessageDataType + + i=69 + i=7617 + + + WriterGroupMessageDataType + + + + PubSubConnectionDataType + + i=69 + i=7617 + + + PubSubConnectionDataType + + + + ConnectionTransportDataType + + i=69 + i=7617 + + + ConnectionTransportDataType + + + + NetworkAddressDataType + + i=69 + i=7617 + + + NetworkAddressDataType + + + + NetworkAddressUrlDataType + + i=69 + i=7617 + + + NetworkAddressUrlDataType + + + + ReaderGroupDataType + + i=69 + i=7617 + + + ReaderGroupDataType + + + + ReaderGroupTransportDataType + + i=69 + i=7617 + + + ReaderGroupTransportDataType + + + + ReaderGroupMessageDataType + + i=69 + i=7617 + + + ReaderGroupMessageDataType + + + + DataSetReaderDataType + + i=69 + i=7617 + + + DataSetReaderDataType + + + + DataSetReaderTransportDataType + + i=69 + i=7617 + + + DataSetReaderTransportDataType + + + + DataSetReaderMessageDataType + + i=69 + i=7617 + + + DataSetReaderMessageDataType + + + + SubscribedDataSetDataType + + i=69 + i=7617 + + + SubscribedDataSetDataType + + + + TargetVariablesDataType + + i=69 + i=7617 + + + TargetVariablesDataType + + + + FieldTargetDataType + + i=69 + i=7617 + + + FieldTargetDataType + + + + SubscribedDataSetMirrorDataType + + i=69 + i=7617 + + + SubscribedDataSetMirrorDataType + + + + PubSubConfigurationDataType + + i=69 + i=7617 + + + PubSubConfigurationDataType + + + + UadpWriterGroupMessageDataType + + i=69 + i=7617 + + + UadpWriterGroupMessageDataType + + + + UadpDataSetWriterMessageDataType + + i=69 + i=7617 + + + UadpDataSetWriterMessageDataType + + + + UadpDataSetReaderMessageDataType + + i=69 + i=7617 + + + UadpDataSetReaderMessageDataType + + + + JsonWriterGroupMessageDataType + + i=69 + i=7617 + + + JsonWriterGroupMessageDataType + + + + JsonDataSetWriterMessageDataType + + i=69 + i=7617 + + + JsonDataSetWriterMessageDataType + + + + JsonDataSetReaderMessageDataType + + i=69 + i=7617 + + + JsonDataSetReaderMessageDataType + + + + DatagramConnectionTransportDataType + + i=69 + i=7617 + + + DatagramConnectionTransportDataType + + + + DatagramWriterGroupTransportDataType + + i=69 + i=7617 + + + DatagramWriterGroupTransportDataType + + + + BrokerConnectionTransportDataType + + i=69 + i=7617 + + + BrokerConnectionTransportDataType + + + + BrokerWriterGroupTransportDataType + + i=69 + i=7617 + + + BrokerWriterGroupTransportDataType + + + + BrokerDataSetWriterTransportDataType + + i=69 + i=7617 + + + BrokerDataSetWriterTransportDataType + + + + BrokerDataSetReaderTransportDataType + + i=69 + i=7617 + + + BrokerDataSetReaderTransportDataType + + + + AliasNameDataType + + i=69 + i=7617 + + + AliasNameDataType + + + + UnsignedRationalNumber + + i=69 + i=7617 + + + UnsignedRationalNumber + + + + RolePermissionType + + i=69 + i=7617 + + + RolePermissionType + + + + DataTypeDefinition + + i=69 + i=7617 + + + DataTypeDefinition + + + + StructureField + + i=69 + i=7617 + + + StructureField + + + + StructureDefinition + + i=69 + i=7617 + + + StructureDefinition + + + + EnumDefinition + + i=69 + i=7617 + + + EnumDefinition + + + + Argument + + i=69 + i=7617 + + + Argument + + + + EnumValueType + + i=69 + i=7617 + + + EnumValueType + + + + EnumField + + i=69 + i=7617 + + + EnumField + + + + OptionSet + + i=69 + i=7617 + + + OptionSet + + + + TimeZoneDataType + + i=69 + i=7617 + + + TimeZoneDataType + + + + ApplicationDescription + + i=69 + i=7617 + + + ApplicationDescription + + + + ServerOnNetwork + + i=69 + i=7617 + + + ServerOnNetwork + + + + UserTokenPolicy + + i=69 + i=7617 + + + UserTokenPolicy + + + + EndpointDescription + + i=69 + i=7617 + + + EndpointDescription + + + + RegisteredServer + + i=69 + i=7617 + + + RegisteredServer + + + + DiscoveryConfiguration + + i=69 + i=7617 + + + DiscoveryConfiguration + + + + MdnsDiscoveryConfiguration + + i=69 + i=7617 + + + MdnsDiscoveryConfiguration + + + + SignedSoftwareCertificate + + i=69 + i=7617 + + + SignedSoftwareCertificate + + + + UserIdentityToken + + i=69 + i=7617 + + + UserIdentityToken + + + + AnonymousIdentityToken + + i=69 + i=7617 + + + AnonymousIdentityToken + + + + UserNameIdentityToken + + i=69 + i=7617 + + + UserNameIdentityToken + + + + X509IdentityToken + + i=69 + i=7617 + + + X509IdentityToken + + + + IssuedIdentityToken + + i=69 + i=7617 + + + IssuedIdentityToken + + + + AddNodesItem + + i=69 + i=7617 + + + AddNodesItem + + + + AddReferencesItem + + i=69 + i=7617 + + + AddReferencesItem + + + + DeleteNodesItem + + i=69 + i=7617 + + + DeleteNodesItem + + + + DeleteReferencesItem + + i=69 + i=7617 + + + DeleteReferencesItem + + + + RelativePathElement + + i=69 + i=7617 + + + RelativePathElement + + + + RelativePath + + i=69 + i=7617 + + + RelativePath + + + + EndpointConfiguration + + i=69 + i=7617 + + + EndpointConfiguration + + + + ContentFilterElement + + i=69 + i=7617 + + + ContentFilterElement + + + + ContentFilter + + i=69 + i=7617 + + + ContentFilter + + + + FilterOperand + + i=69 + i=7617 + + + FilterOperand + + + + ElementOperand + + i=69 + i=7617 + + + ElementOperand + + + + LiteralOperand + + i=69 + i=7617 + + + LiteralOperand + + + + AttributeOperand + + i=69 + i=7617 + + + AttributeOperand + + + + SimpleAttributeOperand + + i=69 + i=7617 + + + SimpleAttributeOperand + + + + HistoryEvent + + i=69 + i=7617 + + + HistoryEvent + + + + MonitoringFilter + + i=69 + i=7617 + + + MonitoringFilter + + + + EventFilter + + i=69 + i=7617 + + + EventFilter + + + + AggregateConfiguration + + i=69 + i=7617 + + + AggregateConfiguration + + + + HistoryEventFieldList + + i=69 + i=7617 + + + HistoryEventFieldList + + + + BuildInfo + + i=69 + i=7617 + + + BuildInfo + + + + RedundantServerDataType + + i=69 + i=7617 + + + RedundantServerDataType + + + + EndpointUrlListDataType + + i=69 + i=7617 + + + EndpointUrlListDataType + + + + NetworkGroupDataType + + i=69 + i=7617 + + + NetworkGroupDataType + + + + SamplingIntervalDiagnosticsDataType + + i=69 + i=7617 + + + SamplingIntervalDiagnosticsDataType + + + + ServerDiagnosticsSummaryDataType + + i=69 + i=7617 + + + ServerDiagnosticsSummaryDataType + + + + ServerStatusDataType + + i=69 + i=7617 + + + ServerStatusDataType + + + + SessionDiagnosticsDataType + + i=69 + i=7617 + + + SessionDiagnosticsDataType + + + + SessionSecurityDiagnosticsDataType + + i=69 + i=7617 + + + SessionSecurityDiagnosticsDataType + + + + ServiceCounterDataType + + i=69 + i=7617 + + + ServiceCounterDataType + + + + StatusResult + + i=69 + i=7617 + + + StatusResult + + + + SubscriptionDiagnosticsDataType + + i=69 + i=7617 + + + SubscriptionDiagnosticsDataType + + + + ModelChangeStructureDataType + + i=69 + i=7617 + + + ModelChangeStructureDataType + + + + SemanticChangeStructureDataType + + i=69 + i=7617 + + + SemanticChangeStructureDataType + + + + Range + + i=69 + i=7617 + + + Range + + + + EUInformation + + i=69 + i=7617 + + + EUInformation + + + + ComplexNumberType + + i=69 + i=7617 + + + ComplexNumberType + + + + DoubleComplexNumberType + + i=69 + i=7617 + + + DoubleComplexNumberType + + + + AxisInformation + + i=69 + i=7617 + + + AxisInformation + + + + XVType + + i=69 + i=7617 + + + XVType + + + + ProgramDiagnosticDataType + + i=69 + i=7617 + + + ProgramDiagnosticDataType + + + + ProgramDiagnostic2DataType + + i=69 + i=7617 + + + ProgramDiagnostic2DataType + + + + Annotation + + i=69 + i=7617 + + + Annotation + + + + Default XML + + i=12756 + i=12762 + i=76 + + + + Default XML + + i=14533 + i=14829 + i=76 + + + + Default XML + + i=16313 + i=17542 + i=76 + + + + Default XML + + i=17548 + i=17554 + i=76 + + + + Default XML + + i=15528 + i=16024 + i=76 + + + + Default XML + + i=18806 + i=18860 + i=76 + + + + Default XML + + i=18807 + i=18863 + i=76 + + + + Default XML + + i=18808 + i=18866 + i=76 + + + + Default XML + + i=18809 + i=18869 + i=76 + + + + Default XML + + i=18810 + i=19049 + i=76 + + + + Default XML + + i=18811 + i=19052 + i=76 + + + + Default XML + + i=18812 + i=19055 + i=76 + + + + Default XML + + i=18813 + i=19058 + i=76 + + + + Default XML + + i=18814 + i=19061 + i=76 + + + + Default XML + + i=15634 + i=15730 + i=76 + + + + Default XML + + i=23498 + i=23522 + i=76 + + + + Default XML + + i=12554 + i=12677 + i=76 + + + + Default XML + + i=17861 + i=76 + + + + Default XML + + i=15534 + i=16027 + i=76 + + + + Default XML + + i=14525 + i=14811 + i=76 + + + + Default XML + + i=15487 + i=15591 + i=76 + + + + Default XML + + i=15488 + i=15594 + i=76 + + + + Default XML + + i=15005 + i=15585 + i=76 + + + + Default XML + + i=15006 + i=15588 + i=76 + + + + Default XML + + i=14523 + i=14805 + i=76 + + + + Default XML + + i=14524 + i=14808 + i=76 + + + + Default XML + + i=14593 + i=14832 + i=76 + + + + Default XML + + i=15578 + i=16030 + i=76 + + + + Default XML + + i=15580 + i=16033 + i=76 + + + + Default XML + + i=14273 + i=14320 + i=76 + + + + Default XML + + i=15581 + i=16037 + i=76 + + + + Default XML + + i=15582 + i=16040 + i=76 + + + + Default XML + + i=15597 + i=16047 + i=76 + + + + Default XML + + i=15598 + i=16050 + i=76 + + + + Default XML + + i=15605 + i=16053 + i=76 + + + + Default XML + + i=15609 + i=16056 + i=76 + + + + Default XML + + i=15480 + i=21180 + i=76 + + + + Default XML + + i=15611 + i=16062 + i=76 + + + + Default XML + + i=15616 + i=16065 + i=76 + + + + Default XML + + i=15617 + i=16068 + i=76 + + + + Default XML + + i=15618 + i=16071 + i=76 + + + + Default XML + + i=15502 + i=21183 + i=76 + + + + Default XML + + i=15510 + i=21186 + i=76 + + + + Default XML + + i=15520 + i=21189 + i=76 + + + + Default XML + + i=15621 + i=16077 + i=76 + + + + Default XML + + i=15622 + i=16080 + i=76 + + + + Default XML + + i=15623 + i=16083 + i=76 + + + + Default XML + + i=15628 + i=16086 + i=76 + + + + Default XML + + i=15629 + i=16089 + i=76 + + + + Default XML + + i=15630 + i=16092 + i=76 + + + + Default XML + + i=15631 + i=16095 + i=76 + + + + Default XML + + i=14744 + i=14835 + i=76 + + + + Default XML + + i=15635 + i=16098 + i=76 + + + + Default XML + + i=15530 + i=21192 + i=76 + + + + Default XML + + i=15645 + i=16104 + i=76 + + + + Default XML + + i=15652 + i=16107 + i=76 + + + + Default XML + + i=15653 + i=16110 + i=76 + + + + Default XML + + i=15657 + i=16113 + i=76 + + + + Default XML + + i=15664 + i=16116 + i=76 + + + + Default XML + + i=15665 + i=16119 + i=76 + + + + Default XML + + i=17467 + i=17473 + i=76 + + + + Default XML + + i=15532 + i=21195 + i=76 + + + + Default XML + + i=15007 + i=15640 + i=76 + + + + Default XML + + i=15667 + i=16125 + i=76 + + + + Default XML + + i=15669 + i=16144 + i=76 + + + + Default XML + + i=15670 + i=16147 + i=76 + + + + Default XML + + i=23468 + i=23508 + i=76 + + + + Default XML + + i=24107 + i=24129 + i=76 + + + + Default XML + + i=96 + i=16127 + i=76 + + + + Default XML + + i=97 + i=18166 + i=76 + + + + Default XML + + i=101 + i=18169 + i=76 + + + + Default XML + + i=99 + i=18172 + i=76 + + + + Default XML + + i=100 + i=18175 + i=76 + + + + Default XML + + i=258 + i=76 + + + + Default XML + + i=11879 + i=76 + + + + Default XML + + i=11880 + i=76 + + + + Default XML + + i=261 + i=76 + + + + Default XML + + i=264 + i=76 + + + + Default XML + + i=267 + i=76 + + + + Default XML + + i=270 + i=76 + + + + Default XML + + i=273 + i=76 + + + + Default XML + + i=276 + i=76 + + + + Default XML + + i=279 + i=76 + + + + Default XML + + i=282 + i=76 + + + + Default XML + + i=285 + i=76 + + + + Default XML + + i=296 + i=8285 + i=76 + + + + Default XML + + i=7594 + i=8291 + i=76 + + + + Default XML + + i=102 + i=14826 + i=76 + + + + Default XML + + i=12755 + i=12759 + i=76 + + + + Default XML + + i=8912 + i=8918 + i=76 + + + + Default XML + + i=308 + i=8300 + i=76 + + + + Default XML + + i=389 + i=76 + + + + Default XML + + i=392 + i=76 + + + + Default XML + + i=395 + i=76 + + + + Default XML + + i=15901 + i=76 + + + + Default XML + + i=20999 + i=76 + + + + Default XML + + i=420 + i=76 + + + + Default XML + + i=423 + i=76 + + + + Default XML + + i=12189 + i=12201 + i=76 + + + + Default XML + + i=12190 + i=76 + + + + Default XML + + i=12191 + i=76 + + + + Default XML + + i=304 + i=8297 + i=76 + + + + Default XML + + i=312 + i=8303 + i=76 + + + + Default XML + + i=426 + i=76 + + + + Default XML + + i=429 + i=76 + + + + Default XML + + i=432 + i=8417 + i=76 + + + + Default XML + + i=435 + i=76 + + + + Default XML + + i=438 + i=76 + + + + Default XML + + i=12890 + i=12894 + i=76 + + + + Default XML + + i=12891 + i=12897 + i=76 + + + + Default XML + + i=12193 + i=76 + + + + Default XML + + i=12194 + i=76 + + + + Default XML + + i=441 + i=76 + + + + Default XML + + i=444 + i=76 + + + + Default XML + + i=447 + i=76 + + + + Default XML + + i=450 + i=76 + + + + Default XML + + i=453 + i=76 + + + + Default XML + + i=344 + i=8333 + i=76 + + + + Default XML + + i=456 + i=76 + + + + Default XML + + i=459 + i=76 + + + + Default XML + + i=462 + i=76 + + + + Default XML + + i=316 + i=8306 + i=76 + + + + Default XML + + i=319 + i=8309 + i=76 + + + + Default XML + + i=322 + i=8312 + i=76 + + + + Default XML + + i=325 + i=8315 + i=76 + + + + Default XML + + i=938 + i=8318 + i=76 + + + + Default XML + + i=465 + i=76 + + + + Default XML + + i=468 + i=76 + + + + Default XML + + i=471 + i=76 + + + + Default XML + + i=474 + i=76 + + + + Default XML + + i=477 + i=76 + + + + Default XML + + i=480 + i=76 + + + + Default XML + + i=349 + i=76 + + + + Default XML + + i=352 + i=76 + + + + Default XML + + i=355 + i=76 + + + + Default XML + + i=358 + i=76 + + + + Default XML + + i=361 + i=76 + + + + Default XML + + i=364 + i=76 + + + + Default XML + + i=367 + i=76 + + + + Default XML + + i=370 + i=76 + + + + Default XML + + i=373 + i=76 + + + + Default XML + + i=17606 + i=76 + + + + Default XML + + i=17607 + i=76 + + + + Default XML + + i=376 + i=8363 + i=76 + + + + Default XML + + i=483 + i=76 + + + + Default XML + + i=486 + i=76 + + + + Default XML + + i=489 + i=76 + + + + Default XML + + i=379 + i=8366 + i=76 + + + + Default XML + + i=492 + i=76 + + + + Default XML + + i=495 + i=76 + + + + Default XML + + i=382 + i=8369 + i=76 + + + + Default XML + + i=498 + i=76 + + + + Default XML + + i=501 + i=76 + + + + Default XML + + i=385 + i=8372 + i=76 + + + + Default XML + + i=504 + i=76 + + + + Default XML + + i=507 + i=76 + + + + Default XML + + i=511 + i=76 + + + + Default XML + + i=514 + i=76 + + + + Default XML + + i=518 + i=76 + + + + Default XML + + i=522 + i=76 + + + + Default XML + + i=525 + i=76 + + + + Default XML + + i=528 + i=76 + + + + Default XML + + i=531 + i=76 + + + + Default XML + + i=534 + i=76 + + + + Default XML + + i=537 + i=12712 + i=76 + + + + Default XML + + i=540 + i=12715 + i=76 + + + + Default XML + + i=543 + i=76 + + + + Default XML + + i=546 + i=76 + + + + Default XML + + i=549 + i=76 + + + + Default XML + + i=552 + i=76 + + + + Default XML + + i=555 + i=76 + + + + Default XML + + i=558 + i=76 + + + + Default XML + + i=561 + i=76 + + + + Default XML + + i=564 + i=76 + + + + Default XML + + i=567 + i=76 + + + + Default XML + + i=331 + i=8321 + i=76 + + + + Default XML + + i=570 + i=76 + + + + Default XML + + i=573 + i=76 + + + + Default XML + + i=577 + i=76 + + + + Default XML + + i=580 + i=76 + + + + Default XML + + i=583 + i=8564 + i=76 + + + + Default XML + + i=586 + i=8567 + i=76 + + + + Default XML + + i=589 + i=8570 + i=76 + + + + Default XML + + i=592 + i=8573 + i=76 + + + + Default XML + + i=595 + i=8576 + i=76 + + + + Default XML + + i=598 + i=8579 + i=76 + + + + Default XML + + i=601 + i=8582 + i=76 + + + + Default XML + + i=604 + i=76 + + + + Default XML + + i=607 + i=76 + + + + Default XML + + i=610 + i=76 + + + + Default XML + + i=613 + i=76 + + + + Default XML + + i=616 + i=76 + + + + Default XML + + i=619 + i=76 + + + + Default XML + + i=622 + i=76 + + + + Default XML + + i=626 + i=76 + + + + Default XML + + i=629 + i=76 + + + + Default XML + + i=632 + i=76 + + + + Default XML + + i=635 + i=76 + + + + Default XML + + i=638 + i=76 + + + + Default XML + + i=641 + i=76 + + + + Default XML + + i=644 + i=76 + + + + Default XML + + i=647 + i=76 + + + + Default XML + + i=650 + i=76 + + + + Default XML + + i=653 + i=76 + + + + Default XML + + i=23497 + i=76 + + + + Default XML + + i=656 + i=76 + + + + Default XML + + i=11216 + i=76 + + + + Default XML + + i=11217 + i=76 + + + + Default XML + + i=659 + i=8639 + i=76 + + + + Default XML + + i=662 + i=76 + + + + Default XML + + i=665 + i=76 + + + + Default XML + + i=668 + i=76 + + + + Default XML + + i=671 + i=76 + + + + Default XML + + i=674 + i=76 + + + + Default XML + + i=677 + i=76 + + + + Default XML + + i=680 + i=76 + + + + Default XML + + i=11295 + i=76 + + + + Default XML + + i=683 + i=76 + + + + Default XML + + i=686 + i=76 + + + + Default XML + + i=689 + i=76 + + + + Default XML + + i=692 + i=76 + + + + Default XML + + i=695 + i=76 + + + + Default XML + + i=698 + i=76 + + + + Default XML + + i=701 + i=76 + + + + Default XML + + i=704 + i=76 + + + + Default XML + + i=707 + i=76 + + + + Default XML + + i=710 + i=76 + + + + Default XML + + i=713 + i=76 + + + + Default XML + + i=719 + i=8702 + i=76 + + + + Default XML + + i=722 + i=76 + + + + Default XML + + i=725 + i=8708 + i=76 + + + + Default XML + + i=948 + i=8711 + i=76 + + + + Default XML + + i=728 + i=76 + + + + Default XML + + i=731 + i=76 + + + + Default XML + + i=734 + i=76 + + + + Default XML + + i=737 + i=76 + + + + Default XML + + i=740 + i=76 + + + + Default XML + + i=743 + i=76 + + + + Default XML + + i=746 + i=76 + + + + Default XML + + i=749 + i=76 + + + + Default XML + + i=752 + i=76 + + + + Default XML + + i=755 + i=76 + + + + Default XML + + i=758 + i=76 + + + + Default XML + + i=761 + i=76 + + + + Default XML + + i=764 + i=76 + + + + Default XML + + i=767 + i=76 + + + + Default XML + + i=770 + i=76 + + + + Default XML + + i=773 + i=76 + + + + Default XML + + i=776 + i=76 + + + + Default XML + + i=779 + i=76 + + + + Default XML + + i=782 + i=76 + + + + Default XML + + i=785 + i=76 + + + + Default XML + + i=788 + i=76 + + + + Default XML + + i=791 + i=76 + + + + Default XML + + i=794 + i=76 + + + + Default XML + + i=797 + i=76 + + + + Default XML + + i=800 + i=76 + + + + Default XML + + i=803 + i=76 + + + + Default XML + + i=945 + i=76 + + + + Default XML + + i=809 + i=76 + + + + Default XML + + i=806 + i=76 + + + + Default XML + + i=914 + i=76 + + + + Default XML + + i=917 + i=76 + + + + Default XML + + i=920 + i=8807 + i=76 + + + + Default XML + + i=818 + i=76 + + + + Default XML + + i=821 + i=76 + + + + Default XML + + i=824 + i=76 + + + + Default XML + + i=827 + i=76 + + + + Default XML + + i=830 + i=76 + + + + Default XML + + i=833 + i=76 + + + + Default XML + + i=836 + i=76 + + + + Default XML + + i=839 + i=76 + + + + Default XML + + i=842 + i=76 + + + + Default XML + + i=845 + i=76 + + + + Default XML + + i=848 + i=76 + + + + Default XML + + i=338 + i=8327 + i=76 + + + + Default XML + + i=853 + i=8843 + i=76 + + + + Default XML + + i=11943 + i=11951 + i=76 + + + + Default XML + + i=11944 + i=11954 + i=76 + + + + Default XML + + i=856 + i=8846 + i=76 + + + + Default XML + + i=859 + i=8849 + i=76 + + + + Default XML + + i=862 + i=8852 + i=76 + + + + Default XML + + i=865 + i=8855 + i=76 + + + + Default XML + + i=868 + i=8858 + i=76 + + + + Default XML + + i=871 + i=8861 + i=76 + + + + Default XML + + i=299 + i=8294 + i=76 + + + + Default XML + + i=874 + i=8864 + i=76 + + + + Default XML + + i=877 + i=8867 + i=76 + + + + Default XML + + i=897 + i=8870 + i=76 + + + + Default XML + + i=884 + i=8873 + i=76 + + + + Default XML + + i=887 + i=8876 + i=76 + + + + Default XML + + i=12171 + i=12175 + i=76 + + + + Default XML + + i=12172 + i=12178 + i=76 + + + + Default XML + + i=12079 + i=12083 + i=76 + + + + Default XML + + i=12080 + i=12086 + i=76 + + + + Default XML + + i=894 + i=8882 + i=76 + + + + Default XML + + i=24033 + i=24039 + i=76 + + + + Default XML + + i=891 + i=8879 + i=76 + + + + Opc.Ua + + i=8254 + i=15039 + i=12762 + i=14829 + i=17542 + i=17554 + i=16024 + i=18860 + i=18863 + i=18866 + i=18869 + i=19049 + i=19052 + i=19055 + i=19058 + i=19061 + i=15730 + i=23522 + i=12677 + i=16027 + i=14811 + i=15591 + i=15594 + i=15585 + i=15588 + i=14805 + i=14808 + i=14832 + i=16030 + i=16033 + i=14320 + i=16037 + i=16040 + i=16047 + i=16050 + i=16053 + i=16056 + i=21180 + i=16062 + i=16065 + i=16068 + i=16071 + i=21183 + i=21186 + i=21189 + i=16077 + i=16080 + i=16083 + i=16086 + i=16089 + i=16092 + i=16095 + i=14835 + i=16098 + i=21192 + i=16104 + i=16107 + i=16110 + i=16113 + i=16116 + i=16119 + i=17473 + i=21195 + i=15640 + i=16125 + i=16144 + i=16147 + i=23508 + i=24129 + i=16127 + i=18166 + i=18169 + i=18172 + i=18175 + i=8285 + i=8291 + i=14826 + i=12759 + i=8918 + i=8300 + i=12201 + i=8297 + i=8303 + i=8417 + i=12894 + i=12897 + i=8333 + i=8306 + i=8309 + i=8312 + i=8315 + i=8318 + i=8363 + i=8366 + i=8369 + i=8372 + i=12712 + i=12715 + i=8321 + i=8564 + i=8567 + i=8570 + i=8573 + i=8576 + i=8579 + i=8582 + i=8639 + i=8702 + i=8708 + i=8711 + i=8807 + i=8327 + i=8843 + i=11951 + i=11954 + i=8846 + i=8849 + i=8852 + i=8855 + i=8858 + i=8861 + i=8294 + i=8864 + i=8867 + i=8870 + i=8873 + i=8876 + i=12175 + i=12178 + i=12083 + i=12086 + i=8882 + i=24039 + i=8879 + i=92 + i=72 + + + PHhzOnNjaGVtYQ0KICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEi +DQogIHhtbG5zOnVhPSJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvVUEvMjAwOC8wMi9UeXBlcy54 +c2QiDQogIHhtbG5zOnRucz0iaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBLzIwMDgvMDIvVHlw +ZXMueHNkIg0KICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS8y +MDA4LzAyL1R5cGVzLnhzZCINCiAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiDQo+DQog +IDx4czplbGVtZW50IG5hbWU9IkJvb2xlYW4iIG5pbGxhYmxlPSJ0cnVlIiB0eXBlPSJ4czpib29s +ZWFuIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZCb29sZWFuIj4NCiAgICA8 +eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJCb29sZWFuIiB0eXBlPSJ4czpi +b29sZWFuIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6 +c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RP +ZkJvb2xlYW4iIHR5cGU9InRuczpMaXN0T2ZCb29sZWFuIiBuaWxsYWJsZT0idHJ1ZSI+PC94czpl +bGVtZW50Pg0KDQogIDx4czplbGVtZW50IG5hbWU9IlNCeXRlIiBuaWxsYWJsZT0idHJ1ZSIgdHlw +ZT0ieHM6Ynl0ZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mU0J5dGUiPg0K +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNCeXRlIiB0eXBlPSJ4 +czpieXRlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6 +c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RP +ZlNCeXRlIiB0eXBlPSJ0bnM6TGlzdE9mU0J5dGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1l +bnQ+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iQnl0ZSIgbmlsbGFibGU9InRydWUiIHR5cGU9Inhz +OnVuc2lnbmVkQnl0ZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mQnl0ZSI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQnl0ZSIgdHlwZT0i +eHM6dW5zaWduZWRCeXRlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9Ikxpc3RPZkJ5dGUiIHR5cGU9InRuczpMaXN0T2ZCeXRlIiBuaWxsYWJsZT0idHJ1ZSI+PC94 +czplbGVtZW50Pg0KDQogIDx4czplbGVtZW50IG5hbWU9IkludDE2IiBuaWxsYWJsZT0idHJ1ZSIg +dHlwZT0ieHM6c2hvcnQiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkludDE2 +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJbnQxNiIgdHlw +ZT0ieHM6c2hvcnQiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +TGlzdE9mSW50MTYiIHR5cGU9InRuczpMaXN0T2ZJbnQxNiIgbmlsbGFibGU9InRydWUiPjwveHM6 +ZWxlbWVudD4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJVSW50MTYiIG5pbGxhYmxlPSJ0cnVlIiB0 +eXBlPSJ4czp1bnNpZ25lZFNob3J0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0 +T2ZVSW50MTYiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVJ +bnQxNiIgdHlwZT0ieHM6dW5zaWduZWRTaG9ydCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu +Ym91bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZVSW50MTYiIHR5cGU9InRuczpMaXN0T2ZVSW50MTYiIG5p +bGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iSW50MzIi +IG5pbGxhYmxlPSJ0cnVlIiB0eXBlPSJ4czppbnQiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ikxpc3RPZkludDMyIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJJbnQzMiIgdHlwZT0ieHM6aW50IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu +ZGVkIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9Ikxpc3RPZkludDMyIiB0eXBlPSJ0bnM6TGlzdE9mSW50MzIiIG5pbGxhYmxl +PSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iVUludDMyIiBuaWxs +YWJsZT0idHJ1ZSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZlVJbnQzMiI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iVUludDMyIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiBtYXhP +Y2N1cnM9InVuYm91bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZVSW50MzIiIHR5cGU9InRuczpMaXN0T2ZV +SW50MzIiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iSW50NjQiIG5pbGxhYmxlPSJ0cnVlIiB0eXBlPSJ4czpsb25nIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJMaXN0T2ZJbnQ2NCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iSW50NjQiIHR5cGU9InhzOmxvbmciIG1pbk9jY3Vycz0iMCIgbWF4T2Nj +dXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mSW50NjQiIHR5cGU9InRuczpMaXN0T2ZJbnQ2 +NCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJV +SW50NjQiIG5pbGxhYmxlPSJ0cnVlIiB0eXBlPSJ4czp1bnNpZ25lZExvbmciIC8+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlVJbnQ2NCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iVUludDY0IiB0eXBlPSJ4czp1bnNpZ25lZExvbmciIG1pbk9j +Y3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAg +PC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVUludDY0IiB0eXBl +PSJ0bnM6TGlzdE9mVUludDY0IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4 +czplbGVtZW50IG5hbWU9IkZsb2F0IiBuaWxsYWJsZT0idHJ1ZSIgdHlwZT0ieHM6ZmxvYXQiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkZsb2F0Ij4NCiAgICA8eHM6c2VxdWVu +Y2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJGbG9hdCIgdHlwZT0ieHM6ZmxvYXQiIG1pbk9j +Y3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAg +PC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRmxvYXQiIHR5cGU9 +InRuczpMaXN0T2ZGbG9hdCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJEb3VibGUiIG5pbGxhYmxlPSJ0cnVlIiB0eXBlPSJ4czpkb3VibGUiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkRvdWJsZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRG91YmxlIiB0eXBlPSJ4czpkb3VibGUiIG1p +bk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRG91YmxlIiB0 +eXBlPSJ0bnM6TGlzdE9mRG91YmxlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQog +IDx4czplbGVtZW50IG5hbWU9IlN0cmluZyIgbmlsbGFibGU9InRydWUiIHR5cGU9InhzOnN0cmlu +ZyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mU3RyaW5nIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdHJpbmciIHR5cGU9InhzOnN0cmlu +ZyIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVl +bmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZTdHJp +bmciIHR5cGU9InRuczpMaXN0T2ZTdHJpbmciIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+ +DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0ZVRpbWUiIG5pbGxhYmxlPSJ0cnVlIiB0eXBlPSJ4 +czpkYXRlVGltZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mRGF0ZVRpbWUi +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGVUaW1lIiB0 +eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4N +CiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJMaXN0T2ZEYXRlVGltZSIgdHlwZT0idG5zOkxpc3RPZkRhdGVUaW1lIiBuaWxsYWJsZT0i +dHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJHdWlkIj4NCiAg +ICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgIDx4czphcHBpbmZvPg0KICAgICAgICA8SXNWYWx1ZVR5 +cGUgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vMjAwMy8xMC9TZXJpYWxpemF0 +aW9uLyI+dHJ1ZTwvSXNWYWx1ZVR5cGU+DQogICAgICA8L3hzOmFwcGluZm8+DQogICAgPC94czph +bm5vdGF0aW9uPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0 +cmluZyIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0iMSIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iR3VpZCIgdHlwZT0idG5zOkd1aWQiIG5pbGxhYmxlPSJ0cnVlIj48 +L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkd1aWQiPg0KICAg +IDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikd1aWQiIHR5cGU9InRuczpH +dWlkIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkd1 +aWQiIHR5cGU9InRuczpMaXN0T2ZHdWlkIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0K +DQogIDx4czplbGVtZW50IG5hbWU9IkJ5dGVTdHJpbmciIG5pbGxhYmxlPSJ0cnVlIiB0eXBlPSJ4 +czpiYXNlNjRCaW5hcnkiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkJ5dGVT +dHJpbmciPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJ5dGVT +dHJpbmciIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu +Ym91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mQnl0ZVN0cmluZyIgdHlwZT0i +dG5zOkxpc3RPZkJ5dGVTdHJpbmciIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlhtbEVsZW1lbnQiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlhtbEVsZW1lbnQiIG1pbk9jY3Vycz0iMCIgbWF4 +T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIj4NCiAgICAgICAgPHhzOmNvbXBsZXhU +eXBlPg0KICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czphbnkgbWluT2Nj +dXJzPSIwIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPg0KICAgICAgICAgIDwveHM6c2VxdWVuY2U+ +DQogICAgICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgICA8L3hzOmVsZW1lbnQ+DQogICAgPC94 +czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlz +dE9mWG1sRWxlbWVudCIgdHlwZT0idG5zOkxpc3RPZlhtbEVsZW1lbnQiIG5pbGxhYmxlPSJ0cnVl +Ij48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik5vZGVJZCI+DQogICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSWRlbnRpZmllciIgdHlwZT0i +eHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0iMSIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTm9kZUlkIiB0eXBlPSJ0bnM6Tm9kZUlkIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVt +ZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZOb2RlSWQiPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGVJZCIgdHlwZT0idG5zOk5vZGVJ +ZCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTGlzdE9mTm9kZUlkIiB0eXBlPSJ0bnM6TGlzdE9mTm9kZUlkIiBuaWxsYWJsZT0idHJ1 +ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJFeHBhbmRlZE5vZGVJ +ZCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSWRlbnRpZmll +ciIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0iMSIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iRXhwYW5kZWROb2RlSWQiIHR5cGU9InRuczpFeHBhbmRlZE5vZGVJZCIg +bmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i +TGlzdE9mRXhwYW5kZWROb2RlSWQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkV4cGFuZGVkTm9kZUlkIiB0eXBlPSJ0bnM6RXhwYW5kZWROb2RlSWQiIG1pbk9j +Y3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwv +eHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxp +c3RPZkV4cGFuZGVkTm9kZUlkIiB0eXBlPSJ0bnM6TGlzdE9mRXhwYW5kZWROb2RlSWQiIG5pbGxh +YmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlN0YXR1 +c0NvZGUiPg0KICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgPHhzOmFwcGluZm8+DQogICAgICAg +IDxJc1ZhbHVlVHlwZSB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS8yMDAzLzEw +L1NlcmlhbGl6YXRpb24vIj50cnVlPC9Jc1ZhbHVlVHlwZT4NCiAgICAgIDwveHM6YXBwaW5mbz4N +CiAgICA8L3hzOmFubm90YXRpb24+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iQ29kZSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJTdGF0dXNDb2RlIiB0eXBlPSJ0bnM6U3RhdHVzQ29kZSIgbmlsbGFibGU9InRydWUiPjwveHM6 +ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mU3RhdHVzQ29kZSI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhdHVzQ29kZSIgdHlw +ZT0idG5zOlN0YXR1c0NvZGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTGlzdE9mU3RhdHVzQ29kZSIgdHlwZT0idG5zOkxpc3RPZlN0YXR1c0NvZGUiIG5pbGxh +YmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRpYWdu +b3N0aWNJbmZvIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJT +eW1ib2xpY0lkIiB0eXBlPSJ4czppbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ik5hbWVzcGFjZVVyaSIgdHlwZT0ieHM6aW50IiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMb2NhbGUiIHR5cGU9InhzOmludCIgbWluT2NjdXJzPSIw +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTG9jYWxpemVkVGV4dCIgdHlwZT0ieHM6aW50 +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBZGRpdGlvbmFsSW5m +byIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJJbm5lclN0YXR1c0NvZGUiIHR5cGU9InRuczpTdGF0dXNDb2RlIiBtaW5PY2N1cnM9IjAi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJbm5lckRpYWdub3N0aWNJbmZvIiB0eXBlPSJ0 +bnM6RGlhZ25vc3RpY0luZm8iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0K +ICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEaWFnbm9zdGljSW5mbyIg +dHlwZT0idG5zOkRpYWdub3N0aWNJbmZvIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZEaWFnbm9zdGljSW5mbyI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0luZm8iIHR5cGU9 +InRuczpEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRGlhZ25vc3RpY0luZm8iIHR5cGU9InRuczpM +aXN0T2ZEaWFnbm9zdGljSW5mbyIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iTG9jYWxpemVkVGV4dCI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTG9jYWxlIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUZXh0IiB0 +eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwv +eHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxv +Y2FsaXplZFRleHQiIHR5cGU9InRuczpMb2NhbGl6ZWRUZXh0IiBuaWxsYWJsZT0idHJ1ZSIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mTG9jYWxpemVkVGV4dCI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTG9jYWxpemVkVGV4dCIgdHlwZT0i +dG5zOkxvY2FsaXplZFRleHQiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkxvY2FsaXplZFRleHQiIHR5cGU9InRuczpMaXN0 +T2ZMb2NhbGl6ZWRUZXh0IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJRdWFsaWZpZWROYW1lIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJOYW1lc3BhY2VJbmRleCIgdHlwZT0ieHM6dW5zaWduZWRTaG9y +dCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmFtZSIgdHlwZT0i +eHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlF1YWxpZmll +ZE5hbWUiIHR5cGU9InRuczpRdWFsaWZpZWROYW1lIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mUXVhbGlmaWVkTmFtZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUXVhbGlmaWVkTmFtZSIgdHlwZT0idG5zOlF1 +YWxpZmllZE5hbWUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9Ikxpc3RPZlF1YWxpZmllZE5hbWUiIHR5cGU9InRuczpMaXN0T2ZRdWFs +aWZpZWROYW1lIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDwhLS0NCiAgICBT +b21lIGVudmlyb25tZW50cyByZXF1aXJlIGEgV1NETC9YU0Qgd2hpY2ggZXhwbGljaXRseSBkZWZp +bmVzIGFsbCBwb3NzaWJsZSB0eXBlcy4NCiAgICBUaGUgVUEgV1NETC9YU0QgY2FuIGJlIG1vZGlm +aWVkIHRvIHN1cHBvcnQgdGhlc2UgZW52aXJvbm1lbnRzIGJ5IHJlcGxhY2luZyB0aGUNCiAgICBk +ZWZpbml0aW9ucyBvZiB0aGUgRXh0ZW5zaW9uT2JqZWN0Qm9keSBhbmQgVmFyaWFudFZhbHVlIGNv +bXBsZXggdHlwZXMgd2l0aCB0aGUNCiAgICBkZWZpbml0aW9ucyBpbiB0aGUgY29tbWVudHMgc2hv +d24gaGVyZS4gRGV2ZWxvcGVycyB3b3VsZCB0aGVuIGRlZmluZSBzdWJ0eXBlcw0KICAgIG9mIHRo +ZSBFeHRlbnNpb25PYmplY3RCb2R5IHR5cGUgd2hpY2ggZXhwbGljaXRseSBkZWNsYXJlIGEgY2hv +aWNlIGJldHdlZW4gYWxsIG9mIHRoZQ0KICAgIGNvbXBsZXggdHlwZXMgdXNlZCBieSB0aGUgc3lz +dGVtLiBUaGUgRXhhbXBsZUV4dGVuc2lvbk9iamVjdEJvZHkgc3VidHlwZSBpcyBwcm92aWRlcw0K +ICAgIGEgdGVtcGxhdGUgYmFzZWQgb24gYSBmZXcgY29tbW9uIFVBLWRlZmluZWQgY29tcGxleCB0 +eXBlcy4NCiAgICAtLT4NCg0KICA8IS0tDQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkV4dGVu +c2lvbk9iamVjdEJvZHkiIC8+DQoNCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRXhhbXBsZUV4 +dGVuc2lvbk9iamVjdEJvZHkiPg0KICAgICAgPHhzOmNvbXBsZXhDb250ZW50Pg0KICAgICAgICA8 +eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpFeHRlbnNpb25PYmplY3RCb2R5Ij4NCiAgICAgICAgICA8 +eHM6Y2hvaWNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQXJndW1lbnQiIHR5cGU9 +InRuczpBcmd1bWVudCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlVzZXJJZGVudGl0eVRva2VuIiB0eXBlPSJ0bnM6VXNlcklk +ZW50aXR5VG9rZW4iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJVc2VyTmFtZUlkZW50aXR5VG9rZW4iIHR5cGU9InRuczpVc2Vy +TmFtZUlkZW50aXR5VG9rZW4iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +ICAgICAgPC94czpjaG9pY2U+DQogICAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgICAgPC94czpj +b21wbGV4Q29udGVudD4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KDQogICAgPHhzOmNvbXBsZXhU +eXBlIG5hbWU9IkV4dGVuc2lvbk9iamVjdCI+DQogICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAg +IDx4czplbGVtZW50IG5hbWU9IlR5cGVJZCIgdHlwZT0idG5zOkV4cGFuZGVkTm9kZUlkIiBtaW5P +Y2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJC +b2R5IiBtaW5PY2N1cnM9IjAiIHR5cGU9InRuczpFeHRlbnNpb25PYmplY3RCb2R5IiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgPC94czpjb21wbGV4VHlwZT4N +CiAgICA8eHM6ZWxlbWVudCBuYW1lPSJFeHRlbnNpb25PYmplY3QiIHR5cGU9InRuczpFeHRlbnNp +b25PYmplY3QiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIC0tPg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJFeHRlbnNpb25PYmplY3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlR5cGVJZCIgdHlwZT0idG5zOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJvZHkiIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiPg0KICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAgICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmFueSBtaW5PY2N1cnM9IjAiIHByb2Nlc3ND +b250ZW50cz0ibGF4Ii8+DQogICAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgPC94czpj +b21wbGV4VHlwZT4NCiAgICAgIDwveHM6ZWxlbWVudD4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8 +L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJFeHRlbnNpb25PYmplY3QiIHR5 +cGU9InRuczpFeHRlbnNpb25PYmplY3QiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJMaXN0T2ZFeHRlbnNpb25PYmplY3QiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IkV4dGVuc2lvbk9iamVjdCIgdHlwZT0idG5zOkV4dGVu +c2lvbk9iamVjdCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iTGlzdE9mRXh0ZW5zaW9uT2JqZWN0IiB0eXBlPSJ0bnM6TGlzdE9mRXh0 +ZW5zaW9uT2JqZWN0IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDwhLS0NCiAg +ICBTb21lIFdTREwvWE1MIGNvbXBpbGVycyBoYXZlIGlzc3VlcyB3aXRoIHRoZSB4czpjaG9pY2Ug +Y29uc3RydWN0LiBGb3IgdGhhdCByZWFzb24NCiAgICB0aGUgZGVmYXVsdCBkZWNsYXJhdGlvbiBv +ZiBhIFZhcmlhbnQgdXNlcyB4czphbnkgY29uc3RydWN0LiBUaGUgc2NoZW1hIGFjdXR1YWxseQ0K +ICAgIGRlZmluZWQgYnkgdGhlIHNwZWNpZmljYXRpb24gaXMgcHJvdmlkZWQgYnkgdGhlIE1hdHJp +eCBhbmQgVmFyaWFudFZhbHVlIGNvbXBsZXggdHlwZXMNCiAgICBzaG93biBpbiBjb21tZW50cyBi +ZWxvdy4gQXBwbGljYXRpb24gZGV2ZWxvcGVycyBjYW4gcmVwbGFjZSB0aGUgVmFyaWFudFZhbHVl +IGRlY2xhcmF0aW9uDQogICAgd2l0aCB0aGUgc3BlY2lmaWMgZGVjbGFyYXRpb24gaWYgdGhleSBo +YXZlIGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdGhhdCBjYW4gaGFuZGxlDQogICAgdGhlIHhz +OmNob2ljZSBjb25zdHJ1Y3QgaW4gYSByZWFzb25hYmxlIHdheS4NCiAgICAtLT4NCg0KICA8IS0t +DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1hdHJpeCI+DQogICAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRpbWVuc2lvbnMiIHR5cGU9InRuczpMaXN0T2ZV +SW50MzIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlZhbHVlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIj4NCiAgICAgICAg +ICA8eHM6Y29tcGxleFR5cGUgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgICAgICAgIDx4czpjaG9pY2Ug +bWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJC +b29sZWFuIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgICAg +IDx4czplbGVtZW50IG5hbWU9IlNCeXRlIiB0eXBlPSJ4czpieXRlIiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkJ5dGUiIHR5cGU9InhzOnVuc2lnbmVk +Qnl0ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJ +bnQxNiIgdHlwZT0ieHM6c2hvcnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iVUludDE2IiB0eXBlPSJ4czp1bnNpZ25lZFNob3J0IiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkludDMyIiB0eXBlPSJ4czpp +bnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVUlu +dDMyIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJJbnQ2NCIgdHlwZT0ieHM6bG9uZyIgbWluT2NjdXJzPSIwIiAv +Pg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVSW50NjQiIHR5cGU9InhzOnVuc2ln +bmVkTG9uZyIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJGbG9hdCIgdHlwZT0ieHM6ZmxvYXQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRG91YmxlIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIg +Lz4NCiAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RyaW5nIiB0eXBlPSJ4czpzdHJp +bmciIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0 +ZVRpbWUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgICAg +IDx4czplbGVtZW50IG5hbWU9Ikd1aWQiIHR5cGU9InRuczpHdWlkIiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkJ5dGVTdHJpbmciIHR5cGU9InhzOmJh +c2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJYbWxFbGVtZW50IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIj4NCiAgICAgICAg +ICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAgICAgICAgICAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICAgICAgICAgICAgICAgIDx4czphbnkgbWluT2NjdXJzPSIwIiBwcm9jZXNzQ29udGVu +dHM9ImxheCIgLz4NCiAgICAgICAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgICAg +ICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICAgICAgICAgICAgPC94czplbGVtZW50Pg0KICAg +ICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGF0dXNDb2RlIiB0eXBlPSJ0bnM6U3RhdHVz +Q29kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJO +b2RlSWQiIHR5cGU9InRuczpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRXhwYW5kZWROb2RlSWQiIHR5cGU9InRuczpFeHBhbmRlZE5vZGVJ +ZCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJRdWFs +aWZpZWROYW1lIiB0eXBlPSJ0bnM6UXVhbGlmaWVkTmFtZSIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMb2NhbGl6ZWRUZXh0IiB0eXBlPSJ0bnM6TG9j +YWxpemVkVGV4dCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJFeHRlbnNpb25PYmplY3QiIHR5cGU9InRuczpFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vy +cz0iMCIgLz4NCiAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFyaWFudCIgdHlwZT0i +dG5zOlZhcmlhbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICAgIDwveHM6Y2hvaWNlPg0K +ICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgICAgIDwveHM6ZWxlbWVudD4NCiAgICAg +IDwveHM6c2VxdWVuY2U+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6ZWxlbWVudCBu +YW1lPSJNYXRyaXgiIHR5cGU9InRuczpNYXRyaXgiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KDQogICAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9IlZhcmlhbnRWYWx1ZSI+DQogICAgICA8eHM6Y2hvaWNlPg0K +ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJCb29sZWFuIiB0eXBlPSJ4czpib29sZWFuIiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IlNCeXRlIiB0eXBlPSJ4czpi +eXRlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IkJ5dGUiIHR5 +cGU9InhzOnVuc2lnbmVkQnl0ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJJbnQxNiIgdHlwZT0ieHM6c2hvcnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iVUludDE2IiB0eXBlPSJ4czp1bnNpZ25lZFNob3J0IiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IkludDMyIiB0eXBlPSJ4czppbnQi +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVUludDMyIiB0eXBl +PSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJJbnQ2NCIgdHlwZT0ieHM6bG9uZyIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJVSW50NjQiIHR5cGU9InhzOnVuc2lnbmVkTG9uZyIgbWluT2NjdXJzPSIw +IiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJGbG9hdCIgdHlwZT0ieHM6ZmxvYXQiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRG91YmxlIiB0eXBlPSJ4 +czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Ry +aW5nIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iRGF0ZVRpbWUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICAgIDx4czplbGVtZW50IG5hbWU9Ikd1aWQiIHR5cGU9InRuczpHdWlkIiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IkJ5dGVTdHJpbmciIHR5cGU9InhzOmJh +c2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJY +bWxFbGVtZW50IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIj4NCiAgICAgICAgICA8eHM6 +Y29tcGxleFR5cGU+DQogICAgICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICAgIDx4 +czphbnkgbWluT2NjdXJzPSIwIiBwcm9jZXNzQ29udGVudHM9ImxheCIgLz4NCiAgICAgICAgICAg +IDwveHM6c2VxdWVuY2U+DQogICAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICAgICAgPC94 +czplbGVtZW50Pg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGF0dXNDb2RlIiB0eXBlPSJ0 +bnM6U3RhdHVzQ29kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJOb2RlSWQiIHR5cGU9InRuczpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iRXhwYW5kZWROb2RlSWQiIHR5cGU9InRuczpFeHBhbmRlZE5vZGVJZCIg +bWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJRdWFsaWZpZWROYW1l +IiB0eXBlPSJ0bnM6UXVhbGlmaWVkTmFtZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJMb2NhbGl6ZWRUZXh0IiB0eXBlPSJ0bnM6TG9jYWxpemVkVGV4dCIgbWlu +T2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFeHRlbnNpb25PYmplY3Qi +IHR5cGU9InRuczpFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iTGlzdE9mQm9vbGVhbiIgdHlwZT0idG5zOkxpc3RPZkJvb2xlYW4iIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mU0J5dGUiIHR5 +cGU9InRuczpMaXN0T2ZTQnl0ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJMaXN0T2ZCeXRlIiB0eXBlPSJ0bnM6TGlzdE9mQnl0ZSIgbWluT2NjdXJzPSIwIiAv +Pg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZJbnQxNiIgdHlwZT0idG5zOkxpc3RP +ZkludDE2IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Ikxpc3RP +ZlVJbnQxNiIgdHlwZT0idG5zOkxpc3RPZlVJbnQxNiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZJbnQzMiIgdHlwZT0idG5zOkxpc3RPZkludDMyIiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlVJbnQzMiIg +dHlwZT0idG5zOkxpc3RPZlVJbnQzMiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJMaXN0T2ZJbnQ2NCIgdHlwZT0idG5zOkxpc3RPZkludDY0IiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlVJbnQ2NCIgdHlwZT0idG5z +Okxpc3RPZlVJbnQ2NCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJMaXN0T2ZGbG9hdCIgdHlwZT0idG5zOkxpc3RPZkZsb2F0IiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICAgIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkRvdWJsZSIgdHlwZT0idG5zOkxpc3RPZkRv +dWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZT +dHJpbmciIHR5cGU9InRuczpMaXN0T2ZTdHJpbmciIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRGF0ZVRpbWUiIHR5cGU9InRuczpMaXN0T2ZEYXRlVGlt +ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZHdWlk +IiB0eXBlPSJ0bnM6TGlzdE9mR3VpZCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJMaXN0T2ZCeXRlU3RyaW5nIiB0eXBlPSJ0bnM6TGlzdE9mQnl0ZVN0cmluZyIg +bWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZYbWxFbGVt +ZW50IiB0eXBlPSJ0bnM6TGlzdE9mWG1sRWxlbWVudCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZTdGF0dXNDb2RlIiB0eXBlPSJ0bnM6TGlzdE9mU3Rh +dHVzQ29kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0 +T2ZOb2RlSWQiIHR5cGU9InRuczpMaXN0T2ZOb2RlSWQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRXhwYW5kZWROb2RlSWQiIHR5cGU9InRuczpMaXN0 +T2ZFeHBhbmRlZE5vZGVJZCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJMaXN0T2ZRdWFsaWZpZWROYW1lIiB0eXBlPSJ0bnM6TGlzdE9mUXVhbGlmaWVkTmFtZSIg +bWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZMb2NhbGl6 +ZWRUZXh0IiB0eXBlPSJ0bnM6TGlzdE9mTG9jYWxpemVkVGV4dCIgbWluT2NjdXJzPSIwIiAvPg0K +ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZFeHRlbnNpb25PYmplY3QiIHR5cGU9InRu +czpMaXN0T2ZFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iTGlzdE9mVmFyaWFudCIgdHlwZT0idG5zOkxpc3RPZlZhcmlhbnQiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF0cml4IiB0eXBlPSJ0bnM6 +TWF0cml4IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8L3hzOmNob2ljZT4NCiAgICA8L3hzOmNv +bXBsZXhUeXBlPg0KDQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlZhcmlhbnQiPg0KICAgICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJWYWx1ZSIgdHlwZT0idG5z +OlZhcmlhbnRWYWx1ZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDwv +eHM6c2VxdWVuY2U+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6ZWxlbWVudCBuYW1l +PSJWYXJpYW50IiB0eXBlPSJ0bnM6VmFyaWFudCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgLS0+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlZhcmlhbnQiPg0KICAgIDx4czphbm5vdGF0aW9u +Pg0KICAgICAgPHhzOmFwcGluZm8+DQogICAgICAgIDxJc1ZhbHVlVHlwZSB4bWxucz0iaHR0cDov +L3NjaGVtYXMubWljcm9zb2Z0LmNvbS8yMDAzLzEwL1NlcmlhbGl6YXRpb24vIj50cnVlPC9Jc1Zh +bHVlVHlwZT4NCiAgICAgIDwveHM6YXBwaW5mbz4NCiAgICA8L3hzOmFubm90YXRpb24+DQogICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFsdWUiIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiPg0KICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAgICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmFueSBtaW5PY2N1cnM9IjAiIHByb2Nlc3ND +b250ZW50cz0ibGF4IiAvPg0KICAgICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgIDwveHM6 +Y29tcGxleFR5cGU+DQogICAgICA8L3hzOmVsZW1lbnQ+DQogICAgPC94czpzZXF1ZW5jZT4NCiAg +PC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVmFyaWFudCIgdHlwZT0idG5z +OlZhcmlhbnQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJM +aXN0T2ZWYXJpYW50Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJWYXJpYW50IiB0eXBlPSJ0bnM6VmFyaWFudCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu +Ym91bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZWYXJpYW50IiB0eXBlPSJ0bnM6TGlzdE9mVmFyaWFudCIg +bmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i +RGF0YVZhbHVlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJW +YWx1ZSIgdHlwZT0idG5zOlZhcmlhbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlN0YXR1c0NvZGUiIHR5cGU9InRuczpTdGF0dXNDb2RlIiBtaW5PY2N1cnM9IjAi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTb3VyY2VUaW1lc3RhbXAiIHR5cGU9InhzOmRh +dGVUaW1lIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTb3VyY2VQ +aWNvc2Vjb25kcyIgdHlwZT0ieHM6dW5zaWduZWRTaG9ydCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyVGltZXN0YW1wIiB0eXBlPSJ4czpkYXRlVGltZSIg +bWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyUGljb3NlY29u +ZHMiIHR5cGU9InhzOnVuc2lnbmVkU2hvcnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNl +cXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhVmFs +dWUiIHR5cGU9InRuczpEYXRhVmFsdWUiIG5pbGxhYmxlPSJ0cnVlIi8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9Ikxpc3RPZkRhdGFWYWx1ZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRGF0YVZhbHVlIiB0eXBlPSJ0bnM6RGF0YVZhbHVlIiBtaW5PY2N1 +cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0 +T2ZEYXRhVmFsdWUiIHR5cGU9InRuczpMaXN0T2ZEYXRhVmFsdWUiIG5pbGxhYmxlPSJ0cnVlIj48 +L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iSW52b2tlU2VydmljZVJlcXVlc3Qi +IHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgbmlsbGFibGU9InRydWUiIC8+DQogIDx4czplbGVtZW50 +IG5hbWU9Ikludm9rZVNlcnZpY2VSZXNwb25zZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJJbWFnZUJNUCIgdHlwZT0ieHM6 +YmFzZTY0QmluYXJ5IiAvPg0KDQogIDx4czplbGVtZW50IG5hbWU9IkltYWdlR0lGIiB0eXBlPSJ4 +czpiYXNlNjRCaW5hcnkiIC8+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iSW1hZ2VKUEciIHR5cGU9 +InhzOmJhc2U2NEJpbmFyeSIgLz4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJJbWFnZVBORyIgdHlw +ZT0ieHM6YmFzZTY0QmluYXJ5IiAvPg0KDQogIDx4czplbGVtZW50IG5hbWU9IkF1ZGlvRGF0YVR5 +cGUiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i +VW5pb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJVbmlvbiIgdHlwZT0idG5zOlVuaW9uIiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZVbmlvbiI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVW5pb24iIHR5cGU9InRuczpVbmlvbiIgbWlu +T2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +TGlzdE9mVW5pb24iIHR5cGU9InRuczpMaXN0T2ZVbmlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6 +ZWxlbWVudD4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJCaXRGaWVsZE1hc2tEYXRhVHlwZSIgdHlw +ZT0ieHM6dW5zaWduZWRMb25nIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlWYWx1 +ZVBhaXIiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IktleSIg +dHlwZT0idWE6UXVhbGlmaWVkTmFtZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlZhbHVlIiB0eXBlPSJ1YTpWYXJpYW50IiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iS2V5VmFsdWVQYWlyIiB0eXBlPSJ0bnM6S2V5VmFsdWVQYWlyIiAvPg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZLZXlWYWx1ZVBhaXIiPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IktleVZhbHVlUGFpciIgdHlwZT0idG5z +OktleVZhbHVlUGFpciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mS2V5VmFsdWVQYWlyIiB0eXBlPSJ0bnM6TGlzdE9mS2V5 +VmFsdWVQYWlyIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJBZGRpdGlvbmFsUGFyYW1ldGVyc1R5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlBhcmFtZXRlcnMiIHR5cGU9InRuczpMaXN0T2ZLZXlW +YWx1ZVBhaXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQWRkaXRpb25h +bFBhcmFtZXRlcnNUeXBlIiB0eXBlPSJ0bnM6QWRkaXRpb25hbFBhcmFtZXRlcnNUeXBlIiAvPg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJFcGhlbWVyYWxLZXlUeXBlIj4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJsaWNLZXkiIHR5cGU9InhzOmJhc2U2 +NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlNpZ25hdHVyZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5 +cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkVwaGVtZXJhbEtleVR5cGUiIHR5cGU9InRuczpFcGhl +bWVyYWxLZXlUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJFbmRwb2ludFR5cGUi +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuZHBvaW50VXJs +IiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJTZWN1cml0eU1vZGUiIHR5cGU9InRuczpNZXNzYWdlU2VjdXJp +dHlNb2RlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZWN1cml0 +eVBvbGljeVVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNwb3J0UHJvZmlsZVVyaSIgdHlwZT0i +eHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkVuZHBvaW50 +VHlwZSIgdHlwZT0idG5zOkVuZHBvaW50VHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iTGlzdE9mRW5kcG9pbnRUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJFbmRwb2ludFR5cGUiIHR5cGU9InRuczpFbmRwb2ludFR5cGUiIG1pbk9jY3Vy +cz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6 +c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RP +ZkVuZHBvaW50VHlwZSIgdHlwZT0idG5zOkxpc3RPZkVuZHBvaW50VHlwZSIgbmlsbGFibGU9InRy +dWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmF0aW9uYWxOdW1i +ZXIiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik51bWVyYXRv +ciIgdHlwZT0ieHM6aW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJEZW5vbWluYXRvciIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJSYXRpb25hbE51bWJlciIgdHlwZT0idG5zOlJhdGlvbmFsTnVtYmVyIiAvPg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZSYXRpb25hbE51bWJlciI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmF0aW9uYWxOdW1iZXIiIHR5cGU9InRuczpSYXRp +b25hbE51bWJlciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iTGlzdE9mUmF0aW9uYWxOdW1iZXIiIHR5cGU9InRuczpMaXN0T2ZSYXRp +b25hbE51bWJlciIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iVmVjdG9yIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgPC94czpzZXF1ZW5j +ZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVmVjdG9yIiB0eXBl +PSJ0bnM6VmVjdG9yIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZWZWN0b3Ii +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlZlY3RvciIgdHlw +ZT0idG5zOlZlY3RvciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVmVjdG9yIiB0eXBlPSJ0bnM6TGlzdE9mVmVjdG9yIiBu +aWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJU +aHJlZURWZWN0b3IiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAg +ICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6VmVjdG9yIj4NCiAgICAgICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlgiIHR5cGU9InhzOmRvdWJsZSIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlkiIHR5cGU9InhzOmRvdWJs +ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IloiIHR5cGU9 +InhzOmRvdWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAg +ICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVGhyZWVEVmVjdG9yIiB0eXBlPSJ0bnM6VGhy +ZWVEVmVjdG9yIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZUaHJlZURWZWN0 +b3IiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRocmVlRFZl +Y3RvciIgdHlwZT0idG5zOlRocmVlRFZlY3RvciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu +Ym91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVGhyZWVEVmVjdG9yIiB0eXBl +PSJ0bnM6TGlzdE9mVGhyZWVEVmVjdG9yIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJDYXJ0ZXNpYW5Db29yZGluYXRlcyI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9IkNhcnRlc2lhbkNvb3JkaW5hdGVzIiB0eXBlPSJ0bnM6Q2FydGVzaWFu +Q29vcmRpbmF0ZXMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkNhcnRlc2lh +bkNvb3JkaW5hdGVzIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJDYXJ0ZXNpYW5Db29yZGluYXRlcyIgdHlwZT0idG5zOkNhcnRlc2lhbkNvb3JkaW5hdGVzIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJMaXN0T2ZDYXJ0ZXNpYW5Db29yZGluYXRlcyIgdHlwZT0idG5zOkxpc3RPZkNhcnRlc2lhbkNv +b3JkaW5hdGVzIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJUaHJlZURDYXJ0ZXNpYW5Db29yZGluYXRlcyI+DQogICAgPHhzOmNvbXBsZXhD +b250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpDYXJ0 +ZXNpYW5Db29yZGluYXRlcyI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJYIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJZIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIg +Lz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJaIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9u +Pg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IlRocmVlRENhcnRlc2lhbkNvb3JkaW5hdGVzIiB0eXBlPSJ0bnM6VGhyZWVE +Q2FydGVzaWFuQ29vcmRpbmF0ZXMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RP +ZlRocmVlRENhcnRlc2lhbkNvb3JkaW5hdGVzIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJUaHJlZURDYXJ0ZXNpYW5Db29yZGluYXRlcyIgdHlwZT0idG5zOlRo +cmVlRENhcnRlc2lhbkNvb3JkaW5hdGVzIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu +ZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZUaHJlZURDYXJ0ZXNpYW5Db29yZGlu +YXRlcyIgdHlwZT0idG5zOkxpc3RPZlRocmVlRENhcnRlc2lhbkNvb3JkaW5hdGVzIiBuaWxsYWJs +ZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJPcmllbnRh +dGlvbiI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29t +cGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ik9yaWVudGF0aW9uIiB0eXBlPSJ0bnM6T3Jp +ZW50YXRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZk9yaWVudGF0aW9u +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJPcmllbnRhdGlv +biIgdHlwZT0idG5zOk9yaWVudGF0aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu +ZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZPcmllbnRhdGlvbiIgdHlwZT0idG5z +Okxpc3RPZk9yaWVudGF0aW9uIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJUaHJlZURPcmllbnRhdGlvbiI+DQogICAgPHhzOmNvbXBsZXhD +b250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpPcmll +bnRhdGlvbiI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJBIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJCIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIg +Lz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwv +eHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9IlRocmVlRE9yaWVudGF0aW9uIiB0eXBlPSJ0bnM6VGhyZWVET3JpZW50YXRpb24iIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlRocmVlRE9yaWVudGF0aW9uIj4NCiAgICA8 +eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUaHJlZURPcmllbnRhdGlvbiIg +dHlwZT0idG5zOlRocmVlRE9yaWVudGF0aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5i +b3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZUaHJlZURPcmllbnRhdGlvbiIg +dHlwZT0idG5zOkxpc3RPZlRocmVlRE9yaWVudGF0aW9uIiBuaWxsYWJsZT0idHJ1ZSI+PC94czpl +bGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJGcmFtZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IkZyYW1lIiB0eXBlPSJ0bnM6RnJhbWUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZkZyYW1lIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJGcmFtZSIgdHlwZT0idG5zOkZyYW1lIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i +dW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZGcmFtZSIgdHlwZT0idG5z +Okxpc3RPZkZyYW1lIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJUaHJlZURGcmFtZSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVk +PSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpGcmFtZSI+DQogICAgICAg +IDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDYXJ0ZXNpYW5Db29y +ZGluYXRlcyIgdHlwZT0idG5zOlRocmVlRENhcnRlc2lhbkNvb3JkaW5hdGVzIiBtaW5PY2N1cnM9 +IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik9yaWVu +dGF0aW9uIiB0eXBlPSJ0bnM6VGhyZWVET3JpZW50YXRpb24iIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lv +bj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJUaHJlZURGcmFtZSIgdHlwZT0idG5zOlRocmVlREZyYW1lIiAvPg0KDQog +IDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZUaHJlZURGcmFtZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVGhyZWVERnJhbWUiIHR5cGU9InRuczpUaHJl +ZURGcmFtZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iTGlzdE9mVGhyZWVERnJhbWUiIHR5cGU9InRuczpMaXN0T2ZUaHJlZURGcmFt +ZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFt +ZT0iT3BlbkZpbGVNb2RlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4N +CiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iUmVhZF8xIiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJXcml0ZV8yIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJF +cmFzZUV4aXN0aW5nXzQiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFwcGVuZF84 +IiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iT3BlbkZpbGVNb2RlIiB0eXBlPSJ0bnM6T3BlbkZpbGVNb2RlIiAvPg0KDQog +IDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZPcGVuRmlsZU1vZGUiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik9wZW5GaWxlTW9kZSIgdHlwZT0idG5zOk9w +ZW5GaWxlTW9kZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJM +aXN0T2ZPcGVuRmlsZU1vZGUiIHR5cGU9InRuczpMaXN0T2ZPcGVuRmlsZU1vZGUiIG5pbGxhYmxl +PSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5hbWU9IklkZW50aXR5 +Q3JpdGVyaWFUeXBlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAg +ICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iVXNlck5hbWVfMSIgLz4NCiAgICAgIDx4czplbnVt +ZXJhdGlvbiB2YWx1ZT0iVGh1bWJwcmludF8yIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZh +bHVlPSJSb2xlXzMiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ikdyb3VwSWRfNCIg +Lz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQW5vbnltb3VzXzUiIC8+DQogICAgICA8 +eHM6ZW51bWVyYXRpb24gdmFsdWU9IkF1dGhlbnRpY2F0ZWRVc2VyXzYiIC8+DQogICAgICA8eHM6 +ZW51bWVyYXRpb24gdmFsdWU9IkFwcGxpY2F0aW9uXzciIC8+DQogICAgPC94czpyZXN0cmljdGlv +bj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJJZGVudGl0eUNyaXRl +cmlhVHlwZSIgdHlwZT0idG5zOklkZW50aXR5Q3JpdGVyaWFUeXBlIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJMaXN0T2ZJZGVudGl0eUNyaXRlcmlhVHlwZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSWRlbnRpdHlDcml0ZXJpYVR5cGUiIHR5cGU9 +InRuczpJZGVudGl0eUNyaXRlcmlhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91 +bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJMaXN0T2ZJZGVudGl0eUNyaXRlcmlhVHlwZSIgdHlwZT0idG5zOkxpc3RP +ZklkZW50aXR5Q3JpdGVyaWFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQog +IDx4czpjb21wbGV4VHlwZSBuYW1lPSJJZGVudGl0eU1hcHBpbmdSdWxlVHlwZSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ3JpdGVyaWFUeXBlIiB0eXBlPSJ0 +bnM6SWRlbnRpdHlDcml0ZXJpYVR5cGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkNyaXRlcmlhIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iSWRlbnRpdHlNYXBwaW5nUnVsZVR5cGUiIHR5cGU9InRuczpJZGVu +dGl0eU1hcHBpbmdSdWxlVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9m +SWRlbnRpdHlNYXBwaW5nUnVsZVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IklkZW50aXR5TWFwcGluZ1J1bGVUeXBlIiB0eXBlPSJ0bnM6SWRlbnRpdHlN +YXBwaW5nUnVsZVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQog +IDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZklkZW50aXR5TWFwcGluZ1J1bGVUeXBlIiB0eXBlPSJ0 +bnM6TGlzdE9mSWRlbnRpdHlNYXBwaW5nUnVsZVR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVs +ZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkN1cnJlbmN5VW5pdFR5cGUiPg0KICAg +IDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik51bWVyaWNDb2RlIiB0eXBl +PSJ4czpzaG9ydCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhw +b25lbnQiIHR5cGU9InhzOmJ5dGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IkFscGhhYmV0aWNDb2RlIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDdXJyZW5jeSIgdHlwZT0i +dWE6TG9jYWxpemVkVGV4dCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJD +dXJyZW5jeVVuaXRUeXBlIiB0eXBlPSJ0bnM6Q3VycmVuY3lVbml0VHlwZSIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mQ3VycmVuY3lVbml0VHlwZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ3VycmVuY3lVbml0VHlwZSIgdHlwZT0idG5z +OkN1cnJlbmN5VW5pdFR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkN1cnJlbmN5VW5pdFR5cGUiIHR5cGU9InRuczpM +aXN0T2ZDdXJyZW5jeVVuaXRUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQog +IDx4czpzaW1wbGVUeXBlICBuYW1lPSJUcnVzdExpc3RNYXNrcyI+DQogICAgPHhzOnJlc3RyaWN0 +aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik5vbmVf +MCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iVHJ1c3RlZENlcnRpZmljYXRlc18x +IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJUcnVzdGVkQ3Jsc18yIiAvPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJJc3N1ZXJDZXJ0aWZpY2F0ZXNfNCIgLz4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iSXNzdWVyQ3Jsc184IiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJBbGxfMTUiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94czpz +aW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJUcnVzdExpc3RNYXNrcyIgdHlwZT0idG5z +OlRydXN0TGlzdE1hc2tzIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJUcnVzdExpc3RE +YXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Bl +Y2lmaWVkTGlzdHMiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJUcnVzdGVkQ2VydGlmaWNhdGVzIiB0eXBlPSJ1YTpMaXN0T2ZC +eXRlU3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iVHJ1c3RlZENybHMiIHR5cGU9InVhOkxpc3RPZkJ5dGVTdHJpbmciIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJc3N1 +ZXJDZXJ0aWZpY2F0ZXMiIHR5cGU9InVhOkxpc3RPZkJ5dGVTdHJpbmciIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJc3N1ZXJDcmxzIiB0 +eXBlPSJ1YTpMaXN0T2ZCeXRlU3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9IlRydXN0TGlzdERhdGFUeXBlIiB0eXBlPSJ0bnM6VHJ1c3RMaXN0RGF0YVR5cGUiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlRydXN0TGlzdERhdGFUeXBlIj4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUcnVzdExpc3REYXRhVHlw +ZSIgdHlwZT0idG5zOlRydXN0TGlzdERhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i +dW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZUcnVzdExpc3REYXRhVHlw +ZSIgdHlwZT0idG5zOkxpc3RPZlRydXN0TGlzdERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94 +czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZWNpbWFsRGF0YVR5cGUiPg0K +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNjYWxlIiB0eXBlPSJ4 +czpzaG9ydCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFsdWUi +IHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJEZWNpbWFsRGF0YVR5cGUiIHR5cGU9InRuczpEZWNpbWFsRGF0YVR5cGUiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRhdGFUeXBlU2NoZW1hSGVhZGVyIj4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOYW1lc3BhY2VzIiB0eXBlPSJ1YTpMaXN0 +T2ZTdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJTdHJ1Y3R1cmVEYXRhVHlwZXMiIHR5cGU9InRuczpMaXN0T2ZTdHJ1Y3R1cmVE +ZXNjcmlwdGlvbiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkVudW1EYXRhVHlwZXMiIHR5cGU9InRuczpMaXN0T2ZFbnVtRGVzY3JpcHRp +b24iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJTaW1wbGVEYXRhVHlwZXMiIHR5cGU9InRuczpMaXN0T2ZTaW1wbGVUeXBlRGVzY3JpcHRp +b24iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVR5cGVTY2hlbWFI +ZWFkZXIiIHR5cGU9InRuczpEYXRhVHlwZVNjaGVtYUhlYWRlciIgLz4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iTGlzdE9mRGF0YVR5cGVTY2hlbWFIZWFkZXIiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFUeXBlU2NoZW1hSGVhZGVyIiB0eXBlPSJ0 +bnM6RGF0YVR5cGVTY2hlbWFIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5k +ZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxl +eFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkRhdGFUeXBlU2NoZW1hSGVhZGVyIiB0 +eXBlPSJ0bnM6TGlzdE9mRGF0YVR5cGVTY2hlbWFIZWFkZXIiIG5pbGxhYmxlPSJ0cnVlIj48L3hz +OmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRhdGFUeXBlRGVzY3JpcHRpb24i +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFUeXBlSWQi +IHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9Ik5hbWUiIHR5cGU9InVhOlF1YWxpZmllZE5hbWUiIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVR5cGVEZXNjcmlwdGlvbiIgdHlwZT0i +dG5zOkRhdGFUeXBlRGVzY3JpcHRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxp +c3RPZkRhdGFUeXBlRGVzY3JpcHRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkRhdGFUeXBlRGVzY3JpcHRpb24iIHR5cGU9InRuczpEYXRhVHlwZURlc2Ny +aXB0aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxl +bWVudCBuYW1lPSJMaXN0T2ZEYXRhVHlwZURlc2NyaXB0aW9uIiB0eXBlPSJ0bnM6TGlzdE9mRGF0 +YVR5cGVEZXNjcmlwdGlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iU3RydWN0dXJlRGVzY3JpcHRpb24iPg0KICAgIDx4czpjb21wbGV4 +Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6RGF0 +YVR5cGVEZXNjcmlwdGlvbiI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJTdHJ1Y3R1cmVEZWZpbml0aW9uIiB0eXBlPSJ0bnM6U3RydWN0dXJlRGVm +aW5pdGlvbiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpz +ZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlN0cnVjdHVyZURlc2Ny +aXB0aW9uIiB0eXBlPSJ0bnM6U3RydWN0dXJlRGVzY3JpcHRpb24iIC8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9Ikxpc3RPZlN0cnVjdHVyZURlc2NyaXB0aW9uIj4NCiAgICA8eHM6c2VxdWVu +Y2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdHJ1Y3R1cmVEZXNjcmlwdGlvbiIgdHlwZT0i +dG5zOlN0cnVjdHVyZURlc2NyaXB0aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu +ZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZTdHJ1Y3R1cmVEZXNjcmlwdGlvbiIg +dHlwZT0idG5zOkxpc3RPZlN0cnVjdHVyZURlc2NyaXB0aW9uIiBuaWxsYWJsZT0idHJ1ZSI+PC94 +czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJFbnVtRGVzY3JpcHRpb24iPg0K +ICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lv +biBiYXNlPSJ0bnM6RGF0YVR5cGVEZXNjcmlwdGlvbiI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbnVtRGVmaW5pdGlvbiIgdHlwZT0idG5zOkVu +dW1EZWZpbml0aW9uIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAg +IDx4czplbGVtZW50IG5hbWU9IkJ1aWx0SW5UeXBlIiB0eXBlPSJ4czp1bnNpZ25lZEJ5dGUiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5z +aW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9IkVudW1EZXNjcmlwdGlvbiIgdHlwZT0idG5zOkVudW1EZXNjcmlwdGlv +biIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mRW51bURlc2NyaXB0aW9uIj4N +CiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbnVtRGVzY3JpcHRp +b24iIHR5cGU9InRuczpFbnVtRGVzY3JpcHRpb24iIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1 +bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6 +Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkVudW1EZXNjcmlwdGlvbiIg +dHlwZT0idG5zOkxpc3RPZkVudW1EZXNjcmlwdGlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxl +bWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iU2ltcGxlVHlwZURlc2NyaXB0aW9uIj4N +CiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNp +b24gYmFzZT0idG5zOkRhdGFUeXBlRGVzY3JpcHRpb24iPg0KICAgICAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQmFzZURhdGFUeXBlIiB0eXBlPSJ1YTpOb2Rl +SWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iQnVpbHRJblR5cGUiIHR5cGU9InhzOnVuc2lnbmVkQnl0ZSIgbWluT2NjdXJzPSIw +IiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAg +PC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iU2ltcGxlVHlwZURlc2NyaXB0aW9uIiB0eXBlPSJ0bnM6U2ltcGxlVHlwZURlc2NyaXB0 +aW9uIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZTaW1wbGVUeXBlRGVzY3Jp +cHRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNpbXBs +ZVR5cGVEZXNjcmlwdGlvbiIgdHlwZT0idG5zOlNpbXBsZVR5cGVEZXNjcmlwdGlvbiIgbWluT2Nj +dXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94 +czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlz +dE9mU2ltcGxlVHlwZURlc2NyaXB0aW9uIiB0eXBlPSJ0bnM6TGlzdE9mU2ltcGxlVHlwZURlc2Ny +aXB0aW9uIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJVQUJpbmFyeUZpbGVEYXRhVHlwZSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1p +eGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpEYXRhVHlwZVNjaGVt +YUhlYWRlciI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJTY2hlbWFMb2NhdGlvbiIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkZpbGVIZWFkZXIiIHR5 +cGU9InRuczpMaXN0T2ZLZXlWYWx1ZVBhaXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQm9keSIgdHlwZT0idWE6VmFyaWFudCIg +bWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRl +bnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iVUFCaW5hcnlGaWxlRGF0YVR5cGUiIHR5cGU9InRuczpVQUJpbmFy +eUZpbGVEYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mVUFCaW5h +cnlGaWxlRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlVBQmluYXJ5RmlsZURhdGFUeXBlIiB0eXBlPSJ0bnM6VUFCaW5hcnlGaWxlRGF0YVR5cGUi +IG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9Ikxpc3RPZlVBQmluYXJ5RmlsZURhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mVUFCaW5hcnlG +aWxlRGF0YVR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNpbXBs +ZVR5cGUgIG5hbWU9IlB1YlN1YlN0YXRlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6 +c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRGlzYWJsZWRfMCIgLz4NCiAg +ICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iUGF1c2VkXzEiIC8+DQogICAgICA8eHM6ZW51bWVy +YXRpb24gdmFsdWU9Ik9wZXJhdGlvbmFsXzIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFs +dWU9IkVycm9yXzMiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlByZU9wZXJhdGlv +bmFsXzQiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJQdWJTdWJTdGF0ZSIgdHlwZT0idG5zOlB1YlN1YlN0YXRlIiAvPg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZQdWJTdWJTdGF0ZSI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHViU3ViU3RhdGUiIHR5cGU9InRuczpQ +dWJTdWJTdGF0ZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJM +aXN0T2ZQdWJTdWJTdGF0ZSIgdHlwZT0idG5zOkxpc3RPZlB1YlN1YlN0YXRlIiBuaWxsYWJsZT0i +dHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEYXRhU2V0TWV0 +YURhdGFUeXBlIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAg +IDx4czpleHRlbnNpb24gYmFzZT0idG5zOkRhdGFUeXBlU2NoZW1hSGVhZGVyIj4NCiAgICAgICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5hbWUiIHR5cGU9Inhz +OnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJEZXNjcmlwdGlvbiIgdHlwZT0idWE6TG9jYWxpemVkVGV4dCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJG +aWVsZHMiIHR5cGU9InRuczpMaXN0T2ZGaWVsZE1ldGFEYXRhIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRDbGFzc0lk +IiB0eXBlPSJ1YTpHdWlkIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iQ29uZmlndXJhdGlvblZlcnNpb24iIHR5cGU9InRuczpDb25maWd1cmF0aW9uVmVyc2lv +bkRhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8L3hz +OnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVu +dD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldE1ldGFE +YXRhVHlwZSIgdHlwZT0idG5zOkRhdGFTZXRNZXRhRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9Ikxpc3RPZkRhdGFTZXRNZXRhRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRNZXRhRGF0YVR5cGUiIHR5cGU9InRu +czpEYXRhU2V0TWV0YURhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVk +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZEYXRhU2V0TWV0YURhdGFUeXBlIiB0eXBl +PSJ0bnM6TGlzdE9mRGF0YVNldE1ldGFEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxl +bWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRmllbGRNZXRhRGF0YSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmFtZSIgdHlwZT0ieHM6c3RyaW5n +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iRGVzY3JpcHRpb24iIHR5cGU9InVhOkxvY2FsaXplZFRleHQiIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJGaWVsZEZsYWdzIiB0eXBl +PSJ0bnM6RGF0YVNldEZpZWxkRmxhZ3MiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkJ1aWx0SW5UeXBlIiB0eXBlPSJ4czp1bnNpZ25lZEJ5dGUiIG1pbk9jY3Vycz0i +MCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFUeXBlIiB0eXBlPSJ1YTpOb2RlSWQi +IG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJWYWx1ZVJhbmsiIHR5cGU9InhzOmludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iQXJyYXlEaW1lbnNpb25zIiB0eXBlPSJ1YTpMaXN0T2ZVSW50MzIiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNYXhT +dHJpbmdMZW5ndGgiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0RmllbGRJZCIgdHlwZT0idWE6R3VpZCIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHJvcGVydGllcyIgdHlwZT0idG5z +Okxpc3RPZktleVZhbHVlUGFpciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJGaWVsZE1ldGFEYXRhIiB0eXBlPSJ0bnM6RmllbGRNZXRhRGF0YSIgLz4NCg0KICA8eHM6Y29t +cGxleFR5cGUgbmFtZT0iTGlzdE9mRmllbGRNZXRhRGF0YSI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRmllbGRNZXRhRGF0YSIgdHlwZT0idG5zOkZpZWxkTWV0 +YURhdGEiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9Ikxpc3RPZkZpZWxkTWV0YURhdGEiIHR5cGU9InRuczpMaXN0T2ZGaWVsZE1ldGFE +YXRhIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpzaW1wbGVUeXBlICBu +YW1lPSJEYXRhU2V0RmllbGRGbGFncyI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnVu +c2lnbmVkU2hvcnQiPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldEZpZWxkRmxhZ3MiIHR5cGU9InRuczpEYXRhU2V0 +RmllbGRGbGFncyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQ29uZmlndXJhdGlvblZl +cnNpb25EYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iTWFqb3JWZXJzaW9uIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWlub3JWZXJzaW9uIiB0eXBlPSJ4czp1bnNpZ25lZElu +dCIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5 +cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkNvbmZpZ3VyYXRpb25WZXJzaW9uRGF0YVR5cGUiIHR5 +cGU9InRuczpDb25maWd1cmF0aW9uVmVyc2lvbkRhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJMaXN0T2ZDb25maWd1cmF0aW9uVmVyc2lvbkRhdGFUeXBlIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDb25maWd1cmF0aW9uVmVyc2lvbkRh +dGFUeXBlIiB0eXBlPSJ0bnM6Q29uZmlndXJhdGlvblZlcnNpb25EYXRhVHlwZSIgbWluT2NjdXJz +PSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9m +Q29uZmlndXJhdGlvblZlcnNpb25EYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZkNvbmZpZ3VyYXRp +b25WZXJzaW9uRGF0YVR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9IlB1Ymxpc2hlZERhdGFTZXREYXRhVHlwZSI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +RGF0YVNldEZvbGRlciIgdHlwZT0idWE6TGlzdE9mU3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldE1ldGFEYXRhIiB0 +eXBlPSJ0bnM6RGF0YVNldE1ldGFEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkV4dGVuc2lvbkZpZWxkcyIgdHlwZT0idG5z +Okxpc3RPZktleVZhbHVlUGFpciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRTb3VyY2UiIHR5cGU9InVhOkV4dGVuc2lvbk9i +amVjdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNl +Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJsaXNoZWREYXRh +U2V0RGF0YVR5cGUiIHR5cGU9InRuczpQdWJsaXNoZWREYXRhU2V0RGF0YVR5cGUiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlB1Ymxpc2hlZERhdGFTZXREYXRhVHlwZSI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHVibGlzaGVkRGF0YVNl +dERhdGFUeXBlIiB0eXBlPSJ0bnM6UHVibGlzaGVkRGF0YVNldERhdGFUeXBlIiBtaW5PY2N1cnM9 +IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNl +cXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZQ +dWJsaXNoZWREYXRhU2V0RGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZQdWJsaXNoZWREYXRhU2V0 +RGF0YVR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhU +eXBlIG5hbWU9IlB1Ymxpc2hlZERhdGFTZXRTb3VyY2VEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IlB1Ymxpc2hlZERhdGFTZXRTb3VyY2VEYXRhVHlwZSIgdHlwZT0idG5zOlB1Ymxp +c2hlZERhdGFTZXRTb3VyY2VEYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i +TGlzdE9mUHVibGlzaGVkRGF0YVNldFNvdXJjZURhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJsaXNoZWREYXRhU2V0U291cmNlRGF0YVR5cGUi +IHR5cGU9InRuczpQdWJsaXNoZWREYXRhU2V0U291cmNlRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIg +bWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVu +Y2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlB1Ymxp +c2hlZERhdGFTZXRTb3VyY2VEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZlB1Ymxpc2hlZERhdGFT +ZXRTb3VyY2VEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iUHVibGlzaGVkVmFyaWFibGVEYXRhVHlwZSI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHVibGlzaGVkVmFyaWFibGUiIHR5cGU9 +InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkF0dHJpYnV0ZUlkIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2FtcGxpbmdJbnRlcnZhbEhpbnQiIHR5 +cGU9InhzOmRvdWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +RGVhZGJhbmRUeXBlIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iRGVhZGJhbmRWYWx1ZSIgdHlwZT0ieHM6ZG91YmxlIiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJbmRleFJhbmdlIiB0eXBlPSJ4 +czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJTdWJzdGl0dXRlVmFsdWUiIHR5cGU9InVhOlZhcmlhbnQiIG1pbk9jY3Vycz0i +MCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1ldGFEYXRhUHJvcGVydGllcyIgdHlwZT0i +dWE6TGlzdE9mUXVhbGlmaWVkTmFtZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJQdWJsaXNoZWRWYXJpYWJsZURhdGFUeXBlIiB0eXBlPSJ0bnM6UHVibGlzaGVkVmFyaWFi +bGVEYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mUHVibGlzaGVk +VmFyaWFibGVEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUHVibGlzaGVkVmFyaWFibGVEYXRhVHlwZSIgdHlwZT0idG5zOlB1Ymxpc2hlZFZhcmlh +YmxlRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9Ikxpc3RPZlB1Ymxpc2hlZFZhcmlhYmxlRGF0YVR5cGUiIHR5cGU9InRu +czpMaXN0T2ZQdWJsaXNoZWRWYXJpYWJsZURhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czpl +bGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJQdWJsaXNoZWREYXRhSXRlbXNEYXRh +VHlwZSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6 +ZXh0ZW5zaW9uIGJhc2U9InRuczpQdWJsaXNoZWREYXRhU2V0U291cmNlRGF0YVR5cGUiPg0KICAg +ICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHVibGlzaGVk +RGF0YSIgdHlwZT0idG5zOkxpc3RPZlB1Ymxpc2hlZFZhcmlhYmxlRGF0YVR5cGUiIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8 +L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJsaXNoZWREYXRhSXRlbXNEYXRhVHlwZSIgdHlw +ZT0idG5zOlB1Ymxpc2hlZERhdGFJdGVtc0RhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJMaXN0T2ZQdWJsaXNoZWREYXRhSXRlbXNEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHVibGlzaGVkRGF0YUl0ZW1zRGF0YVR5cGUi +IHR5cGU9InRuczpQdWJsaXNoZWREYXRhSXRlbXNEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhP +Y2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mUHVibGlzaGVk +RGF0YUl0ZW1zRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZQdWJsaXNoZWREYXRhSXRlbXNEYXRh +VHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUg +bmFtZT0iUHVibGlzaGVkRXZlbnRzRGF0YVR5cGUiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBt +aXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6UHVibGlzaGVkRGF0 +YVNldFNvdXJjZURhdGFUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4 +czplbGVtZW50IG5hbWU9IkV2ZW50Tm90aWZpZXIiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZWxl +Y3RlZEZpZWxkcyIgdHlwZT0idG5zOkxpc3RPZlNpbXBsZUF0dHJpYnV0ZU9wZXJhbmQiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +RmlsdGVyIiB0eXBlPSJ0bnM6Q29udGVudEZpbHRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0K +ICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IlB1Ymxpc2hlZEV2ZW50c0RhdGFUeXBlIiB0eXBlPSJ0bnM6UHVibGlzaGVkRXZl +bnRzRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlB1Ymxpc2hl +ZEV2ZW50c0RhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJQdWJsaXNoZWRFdmVudHNEYXRhVHlwZSIgdHlwZT0idG5zOlB1Ymxpc2hlZEV2ZW50c0Rh +dGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxl +bWVudCBuYW1lPSJMaXN0T2ZQdWJsaXNoZWRFdmVudHNEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RP +ZlB1Ymxpc2hlZEV2ZW50c0RhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0K +DQogIDx4czpzaW1wbGVUeXBlICBuYW1lPSJEYXRhU2V0RmllbGRDb250ZW50TWFzayI+DQogICAg +PHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnVuc2lnbmVkSW50Ij4NCiAgICA8L3hzOnJlc3RyaWN0 +aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRGaWVs +ZENvbnRlbnRNYXNrIiB0eXBlPSJ0bnM6RGF0YVNldEZpZWxkQ29udGVudE1hc2siIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkRhdGFTZXRGaWVsZENvbnRlbnRNYXNrIj4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0RmllbGRDb250 +ZW50TWFzayIgdHlwZT0idG5zOkRhdGFTZXRGaWVsZENvbnRlbnRNYXNrIiBtaW5PY2N1cnM9IjAi +IG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29t +cGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkRhdGFTZXRGaWVsZENvbnRlbnRN +YXNrIiB0eXBlPSJ0bnM6TGlzdE9mRGF0YVNldEZpZWxkQ29udGVudE1hc2siIG5pbGxhYmxlPSJ0 +cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRhdGFTZXRXcml0 +ZXJEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +TmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5hYmxlZCIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldFdyaXRlcklkIiB0eXBl +PSJ4czp1bnNpZ25lZFNob3J0IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJEYXRhU2V0RmllbGRDb250ZW50TWFzayIgdHlwZT0idG5zOkRhdGFTZXRGaWVsZENvbnRl +bnRNYXNrIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJLZXlGcmFt +ZUNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iRGF0YVNldE5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRXcml0 +ZXJQcm9wZXJ0aWVzIiB0eXBlPSJ0bnM6TGlzdE9mS2V5VmFsdWVQYWlyIiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNwb3J0U2V0 +dGluZ3MiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1lc3NhZ2VTZXR0aW5ncyIgdHlwZT0i +dWE6RXh0ZW5zaW9uT2JqZWN0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +IDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +IkRhdGFTZXRXcml0ZXJEYXRhVHlwZSIgdHlwZT0idG5zOkRhdGFTZXRXcml0ZXJEYXRhVHlwZSIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mRGF0YVNldFdyaXRlckRhdGFUeXBl +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0V3Jp +dGVyRGF0YVR5cGUiIHR5cGU9InRuczpEYXRhU2V0V3JpdGVyRGF0YVR5cGUiIG1pbk9jY3Vycz0i +MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkRh +dGFTZXRXcml0ZXJEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZkRhdGFTZXRXcml0ZXJEYXRhVHlw +ZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iRGF0YVNldFdyaXRlclRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iRGF0YVNldFdyaXRlclRyYW5zcG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6RGF0YVNldFdyaXRl +clRyYW5zcG9ydERhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZE +YXRhU2V0V3JpdGVyVHJhbnNwb3J0RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRXcml0ZXJUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0i +dG5zOkRhdGFTZXRXcml0ZXJUcmFuc3BvcnREYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1 +cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAg +PC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRGF0YVNldFdyaXRl +clRyYW5zcG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mRGF0YVNldFdyaXRlclRyYW5zcG9y +dERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJEYXRhU2V0V3JpdGVyTWVzc2FnZURhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVu +Y2U+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5zOkRhdGFTZXRX +cml0ZXJNZXNzYWdlRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RP +ZkRhdGFTZXRXcml0ZXJNZXNzYWdlRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRXcml0ZXJNZXNzYWdlRGF0YVR5cGUiIHR5cGU9InRu +czpEYXRhU2V0V3JpdGVyTWVzc2FnZURhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i +dW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZEYXRhU2V0V3JpdGVyTWVz +c2FnZURhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlw +ZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iUHViU3ViR3JvdXBEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iTmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5hYmxlZCIgdHlwZT0ieHM6Ym9v +bGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VjdXJpdHlN +b2RlIiB0eXBlPSJ0bnM6TWVzc2FnZVNlY3VyaXR5TW9kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VjdXJpdHlHcm91cElkIiB0eXBlPSJ4czpzdHJpbmciIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJT +ZWN1cml0eUtleVNlcnZpY2VzIiB0eXBlPSJ0bnM6TGlzdE9mRW5kcG9pbnREZXNjcmlwdGlvbiIg +bWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +Ik1heE5ldHdvcmtNZXNzYWdlU2l6ZSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0i +MCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikdyb3VwUHJvcGVydGllcyIgdHlwZT0idG5z +Okxpc3RPZktleVZhbHVlUGFpciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJQdWJTdWJHcm91cERhdGFUeXBlIiB0eXBlPSJ0bnM6UHViU3ViR3JvdXBEYXRhVHlwZSIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mUHViU3ViR3JvdXBEYXRhVHlwZSI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHViU3ViR3JvdXBEYXRh +VHlwZSIgdHlwZT0idG5zOlB1YlN1Ykdyb3VwRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2Nj +dXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlB1YlN1Ykdyb3Vw +RGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZQdWJTdWJHcm91cERhdGFUeXBlIiBuaWxsYWJsZT0i +dHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJXcml0ZXJHcm91 +cERhdGFUeXBlIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAg +IDx4czpleHRlbnNpb24gYmFzZT0idG5zOlB1YlN1Ykdyb3VwRGF0YVR5cGUiPg0KICAgICAgICA8 +eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iV3JpdGVyR3JvdXBJZCIg +dHlwZT0ieHM6dW5zaWduZWRTaG9ydCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlB1Ymxpc2hpbmdJbnRlcnZhbCIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2VlcEFsaXZlVGltZSIgdHlw +ZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iUHJpb3JpdHkiIHR5cGU9InhzOnVuc2lnbmVkQnl0ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgICAgIDx4czplbGVtZW50IG5hbWU9IkxvY2FsZUlkcyIgdHlwZT0idWE6TGlzdE9mU3RyaW5n +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50 +IG5hbWU9IkhlYWRlckxheW91dFVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlRyYW5zcG9ydFNl +dHRpbmdzIiB0eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWVzc2FnZVNldHRpbmdzIiB0 +eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldFdyaXRlcnMiIHR5cGU9InRuczpM +aXN0T2ZEYXRhU2V0V3JpdGVyRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8 +L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJXcml0ZXJHcm91cERhdGFUeXBlIiB0eXBlPSJ0bnM6V3JpdGVyR3JvdXBEYXRhVHlwZSIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mV3JpdGVyR3JvdXBEYXRhVHlwZSI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iV3JpdGVyR3JvdXBE +YXRhVHlwZSIgdHlwZT0idG5zOldyaXRlckdyb3VwRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4 +T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZldyaXRlckdy +b3VwRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZXcml0ZXJHcm91cERhdGFUeXBlIiBuaWxsYWJs +ZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJXcml0ZXJH +cm91cFRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iV3JpdGVyR3Jv +dXBUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0idG5zOldyaXRlckdyb3VwVHJhbnNwb3J0RGF0YVR5 +cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZldyaXRlckdyb3VwVHJhbnNw +b3J0RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IldyaXRlckdyb3VwVHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9InRuczpXcml0ZXJHcm91cFRyYW5z +cG9ydERhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZXcml0ZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIiB0eXBl +PSJ0bnM6TGlzdE9mV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgbmlsbGFibGU9InRydWUi +PjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iV3JpdGVyR3JvdXBNZXNz +YWdlRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8 +L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJXcml0ZXJHcm91cE1lc3NhZ2VE +YXRhVHlwZSIgdHlwZT0idG5zOldyaXRlckdyb3VwTWVzc2FnZURhdGFUeXBlIiAvPg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZXcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iV3JpdGVyR3JvdXBNZXNz +YWdlRGF0YVR5cGUiIHR5cGU9InRuczpXcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgbWluT2Nj +dXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94 +czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlz +dE9mV3JpdGVyR3JvdXBNZXNzYWdlRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZXcml0ZXJHcm91 +cE1lc3NhZ2VEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iUHViU3ViQ29ubmVjdGlvbkRhdGFUeXBlIj4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOYW1lIiB0eXBlPSJ4czpzdHJpbmciIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJF +bmFibGVkIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJQdWJsaXNoZXJJZCIgdHlwZT0idWE6VmFyaWFudCIgbWluT2NjdXJzPSIwIiAv +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNwb3J0UHJvZmlsZVVyaSIgdHlwZT0ieHM6 +c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iQWRkcmVzcyIgdHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ29ubmVjdGlvblBy +b3BlcnRpZXMiIHR5cGU9InRuczpMaXN0T2ZLZXlWYWx1ZVBhaXIiIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUcmFuc3BvcnRTZXR0aW5n +cyIgdHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iV3JpdGVyR3JvdXBzIiB0eXBlPSJ0bnM6TGlz +dE9mV3JpdGVyR3JvdXBEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlYWRlckdyb3VwcyIgdHlwZT0idG5zOkxpc3RPZlJl +YWRlckdyb3VwRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +UHViU3ViQ29ubmVjdGlvbkRhdGFUeXBlIiB0eXBlPSJ0bnM6UHViU3ViQ29ubmVjdGlvbkRhdGFU +eXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZQdWJTdWJDb25uZWN0aW9u +RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlB1 +YlN1YkNvbm5lY3Rpb25EYXRhVHlwZSIgdHlwZT0idG5zOlB1YlN1YkNvbm5lY3Rpb25EYXRhVHlw +ZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTGlzdE9mUHViU3ViQ29ubmVjdGlvbkRhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mUHVi +U3ViQ29ubmVjdGlvbkRhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQog +IDx4czpjb21wbGV4VHlwZSBuYW1lPSJDb25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5cGUiPg0KICAg +IDx4czpzZXF1ZW5jZT4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJDb25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9InRu +czpDb25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ikxpc3RPZkNvbm5lY3Rpb25UcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ29ubmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIiB0 +eXBlPSJ0bnM6Q29ubmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9j +Y3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0K +ICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZDb25uZWN0aW9u +VHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZDb25uZWN0aW9uVHJhbnNwb3J0RGF0 +YVR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ik5ldHdvcmtBZGRyZXNzRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9Ik5ldHdvcmtJbnRlcmZhY2UiIHR5cGU9InhzOnN0cmluZyIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJOZXR3b3JrQWRkcmVzc0RhdGFUeXBl +IiB0eXBlPSJ0bnM6TmV0d29ya0FkZHJlc3NEYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iTGlzdE9mTmV0d29ya0FkZHJlc3NEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmV0d29ya0FkZHJlc3NEYXRhVHlwZSIgdHlwZT0i +dG5zOk5ldHdvcmtBZGRyZXNzRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJv +dW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29t +cGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZk5ldHdvcmtBZGRyZXNzRGF0YVR5 +cGUiIHR5cGU9InRuczpMaXN0T2ZOZXR3b3JrQWRkcmVzc0RhdGFUeXBlIiBuaWxsYWJsZT0idHJ1 +ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJOZXR3b3JrQWRkcmVz +c1VybERhdGFUeXBlIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAg +ICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOk5ldHdvcmtBZGRyZXNzRGF0YVR5cGUiPg0KICAg +ICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXJsIiB0eXBl +PSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwv +eHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250 +ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJOZXR3b3JrQWRk +cmVzc1VybERhdGFUeXBlIiB0eXBlPSJ0bnM6TmV0d29ya0FkZHJlc3NVcmxEYXRhVHlwZSIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mTmV0d29ya0FkZHJlc3NVcmxEYXRhVHlw +ZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmV0d29ya0Fk +ZHJlc3NVcmxEYXRhVHlwZSIgdHlwZT0idG5zOk5ldHdvcmtBZGRyZXNzVXJsRGF0YVR5cGUiIG1p +bk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +IDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +Ikxpc3RPZk5ldHdvcmtBZGRyZXNzVXJsRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZOZXR3b3Jr +QWRkcmVzc1VybERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJSZWFkZXJHcm91cERhdGFUeXBlIj4NCiAgICA8eHM6Y29tcGxl +eENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOlB1 +YlN1Ykdyb3VwRGF0YVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iVHJhbnNwb3J0U2V0dGluZ3MiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVj +dCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJNZXNzYWdlU2V0dGluZ3MiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJE +YXRhU2V0UmVhZGVycyIgdHlwZT0idG5zOkxpc3RPZkRhdGFTZXRSZWFkZXJEYXRhVHlwZSIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAg +ICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29t +cGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlYWRlckdyb3VwRGF0YVR5cGUiIHR5cGU9 +InRuczpSZWFkZXJHcm91cERhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJM +aXN0T2ZSZWFkZXJHcm91cERhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJSZWFkZXJHcm91cERhdGFUeXBlIiB0eXBlPSJ0bnM6UmVhZGVyR3JvdXBE +YXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iTGlzdE9mUmVhZGVyR3JvdXBEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZlJl +YWRlckdyb3VwRGF0YVR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9IlJlYWRlckdyb3VwVHJhbnNwb3J0RGF0YVR5cGUiPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJSZWFkZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6 +UmVhZGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iTGlzdE9mUmVhZGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVhZGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIg +dHlwZT0idG5zOlJlYWRlckdyb3VwVHJhbnNwb3J0RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4 +T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlJlYWRlckdy +b3VwVHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZSZWFkZXJHcm91cFRyYW5zcG9y +dERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJSZWFkZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9IlJlYWRlckdyb3VwTWVzc2FnZURhdGFUeXBlIiB0eXBlPSJ0bnM6UmVhZGVyR3JvdXBN +ZXNzYWdlRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlJlYWRl +ckdyb3VwTWVzc2FnZURhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJSZWFkZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5zOlJlYWRlckdy +b3VwTWVzc2FnZURhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZSZWFkZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIg +dHlwZT0idG5zOkxpc3RPZlJlYWRlckdyb3VwTWVzc2FnZURhdGFUeXBlIiBuaWxsYWJsZT0idHJ1 +ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEYXRhU2V0UmVhZGVy +RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5h +bWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IkVuYWJsZWQiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vy +cz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlB1Ymxpc2hlcklkIiB0eXBlPSJ1YTpW +YXJpYW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJXcml0ZXJH +cm91cElkIiB0eXBlPSJ4czp1bnNpZ25lZFNob3J0IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0V3JpdGVySWQiIHR5cGU9InhzOnVuc2lnbmVkU2hvcnQi +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFTZXRNZXRhRGF0 +YSIgdHlwZT0idG5zOkRhdGFTZXRNZXRhRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0RmllbGRDb250ZW50TWFz +ayIgdHlwZT0idG5zOkRhdGFTZXRGaWVsZENvbnRlbnRNYXNrIiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNZXNzYWdlUmVjZWl2ZVRpbWVvdXQiIHR5cGU9InhzOmRv +dWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5RnJhbWVD +b3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkhlYWRlckxheW91dFVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9 +IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VjdXJpdHlN +b2RlIiB0eXBlPSJ0bnM6TWVzc2FnZVNlY3VyaXR5TW9kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VjdXJpdHlHcm91cElkIiB0eXBlPSJ4czpzdHJpbmciIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJT +ZWN1cml0eUtleVNlcnZpY2VzIiB0eXBlPSJ0bnM6TGlzdE9mRW5kcG9pbnREZXNjcmlwdGlvbiIg +bWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IkRhdGFTZXRSZWFkZXJQcm9wZXJ0aWVzIiB0eXBlPSJ0bnM6TGlzdE9mS2V5VmFsdWVQYWlyIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +VHJhbnNwb3J0U2V0dGluZ3MiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1lc3NhZ2VTZXR0 +aW5ncyIgdHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Vic2NyaWJlZERhdGFTZXQiIHR5cGU9 +InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJEYXRhU2V0UmVhZGVyRGF0YVR5cGUiIHR5cGU9InRuczpEYXRhU2V0UmVhZGVyRGF0YVR5cGUi +IC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkRhdGFTZXRSZWFkZXJEYXRhVHlw +ZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldFJl +YWRlckRhdGFUeXBlIiB0eXBlPSJ0bnM6RGF0YVNldFJlYWRlckRhdGFUeXBlIiBtaW5PY2N1cnM9 +IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNl +cXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZE +YXRhU2V0UmVhZGVyRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZEYXRhU2V0UmVhZGVyRGF0YVR5 +cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9IkRhdGFTZXRSZWFkZXJUcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9IkRhdGFTZXRSZWFkZXJUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0idG5zOkRhdGFTZXRSZWFk +ZXJUcmFuc3BvcnREYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9m +RGF0YVNldFJlYWRlclRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0UmVhZGVyVHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9 +InRuczpEYXRhU2V0UmVhZGVyVHJhbnNwb3J0RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2Nj +dXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkRhdGFTZXRSZWFk +ZXJUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZkRhdGFTZXRSZWFkZXJUcmFuc3Bv +cnREYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iRGF0YVNldFJlYWRlck1lc3NhZ2VEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IkRhdGFTZXRSZWFkZXJNZXNzYWdlRGF0YVR5cGUiIHR5cGU9InRuczpEYXRhU2V0 +UmVhZGVyTWVzc2FnZURhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0 +T2ZEYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFUeXBlIiB0eXBlPSJ0 +bnM6RGF0YVNldFJlYWRlck1lc3NhZ2VEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9 +InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94 +czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRGF0YVNldFJlYWRlck1l +c3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZkRhdGFTZXRSZWFkZXJNZXNzYWdlRGF0YVR5 +cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9IlN1YnNjcmliZWREYXRhU2V0RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJT +dWJzY3JpYmVkRGF0YVNldERhdGFUeXBlIiB0eXBlPSJ0bnM6U3Vic2NyaWJlZERhdGFTZXREYXRh +VHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mU3Vic2NyaWJlZERhdGFT +ZXREYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +U3Vic2NyaWJlZERhdGFTZXREYXRhVHlwZSIgdHlwZT0idG5zOlN1YnNjcmliZWREYXRhU2V0RGF0 +YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9Ikxpc3RPZlN1YnNjcmliZWREYXRhU2V0RGF0YVR5cGUiIHR5cGU9InRuczpMaXN0 +T2ZTdWJzY3JpYmVkRGF0YVNldERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50 +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJUYXJnZXRWYXJpYWJsZXNEYXRhVHlwZSI+DQog +ICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9u +IGJhc2U9InRuczpTdWJzY3JpYmVkRGF0YVNldERhdGFUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlRhcmdldFZhcmlhYmxlcyIgdHlwZT0i +dG5zOkxpc3RPZkZpZWxkVGFyZ2V0RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAg +ICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVu +dCBuYW1lPSJUYXJnZXRWYXJpYWJsZXNEYXRhVHlwZSIgdHlwZT0idG5zOlRhcmdldFZhcmlhYmxl +c0RhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZUYXJnZXRWYXJp +YWJsZXNEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iVGFyZ2V0VmFyaWFibGVzRGF0YVR5cGUiIHR5cGU9InRuczpUYXJnZXRWYXJpYWJsZXNEYXRh +VHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iTGlzdE9mVGFyZ2V0VmFyaWFibGVzRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZU +YXJnZXRWYXJpYWJsZXNEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0K +ICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRmllbGRUYXJnZXREYXRhVHlwZSI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldEZpZWxkSWQiIHR5cGU9InVh +Okd1aWQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlY2VpdmVy +SW5kZXhSYW5nZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVGFyZ2V0Tm9kZUlkIiB0eXBlPSJ1YTpOb2Rl +SWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJBdHRyaWJ1dGVJZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IldyaXRlSW5kZXhSYW5nZSIgdHlwZT0ieHM6c3RyaW5n +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iT3ZlcnJpZGVWYWx1ZUhhbmRsaW5nIiB0eXBlPSJ0bnM6T3ZlcnJpZGVWYWx1ZUhhbmRsaW5n +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJPdmVycmlkZVZhbHVl +IiB0eXBlPSJ1YTpWYXJpYW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRmllbGRUYXJnZXREYXRh +VHlwZSIgdHlwZT0idG5zOkZpZWxkVGFyZ2V0RGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhU +eXBlIG5hbWU9Ikxpc3RPZkZpZWxkVGFyZ2V0RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IkZpZWxkVGFyZ2V0RGF0YVR5cGUiIHR5cGU9InRuczpG +aWVsZFRhcmdldERhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZGaWVsZFRhcmdldERhdGFUeXBlIiB0eXBlPSJ0 +bnM6TGlzdE9mRmllbGRUYXJnZXREYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVu +dD4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iT3ZlcnJpZGVWYWx1ZUhhbmRsaW5nIj4NCiAg +ICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlv +biB2YWx1ZT0iRGlzYWJsZWRfMCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTGFz +dFVzYWJsZVZhbHVlXzEiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik92ZXJyaWRl +VmFsdWVfMiIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQog +IDx4czplbGVtZW50IG5hbWU9Ik92ZXJyaWRlVmFsdWVIYW5kbGluZyIgdHlwZT0idG5zOk92ZXJy +aWRlVmFsdWVIYW5kbGluZyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mT3Zl +cnJpZGVWYWx1ZUhhbmRsaW5nIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJPdmVycmlkZVZhbHVlSGFuZGxpbmciIHR5cGU9InRuczpPdmVycmlkZVZhbHVlSGFu +ZGxpbmciIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9m +T3ZlcnJpZGVWYWx1ZUhhbmRsaW5nIiB0eXBlPSJ0bnM6TGlzdE9mT3ZlcnJpZGVWYWx1ZUhhbmRs +aW5nIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBu +YW1lPSJTdWJzY3JpYmVkRGF0YVNldE1pcnJvckRhdGFUeXBlIj4NCiAgICA8eHM6Y29tcGxleENv +bnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOlN1YnNj +cmliZWREYXRhU2V0RGF0YVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iUGFyZW50Tm9kZU5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJS +b2xlUGVybWlzc2lvbnMiIHR5cGU9InRuczpMaXN0T2ZSb2xlUGVybWlzc2lvblR5cGUiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAg +ICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJTdWJzY3JpYmVkRGF0YVNldE1pcnJvckRhdGFU +eXBlIiB0eXBlPSJ0bnM6U3Vic2NyaWJlZERhdGFTZXRNaXJyb3JEYXRhVHlwZSIgLz4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mU3Vic2NyaWJlZERhdGFTZXRNaXJyb3JEYXRhVHlw +ZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Vic2NyaWJl +ZERhdGFTZXRNaXJyb3JEYXRhVHlwZSIgdHlwZT0idG5zOlN1YnNjcmliZWREYXRhU2V0TWlycm9y +RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9Ikxpc3RPZlN1YnNjcmliZWREYXRhU2V0TWlycm9yRGF0YVR5cGUiIHR5cGU9 +InRuczpMaXN0T2ZTdWJzY3JpYmVkRGF0YVNldE1pcnJvckRhdGFUeXBlIiBuaWxsYWJsZT0idHJ1 +ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJQdWJTdWJDb25maWd1 +cmF0aW9uRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlB1Ymxpc2hlZERhdGFTZXRzIiB0eXBlPSJ0bnM6TGlzdE9mUHVibGlzaGVkRGF0YVNldERh +dGFUeXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iQ29ubmVjdGlvbnMiIHR5cGU9InRuczpMaXN0T2ZQdWJTdWJDb25uZWN0aW9uRGF0 +YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJFbmFibGVkIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +UHViU3ViQ29uZmlndXJhdGlvbkRhdGFUeXBlIiB0eXBlPSJ0bnM6UHViU3ViQ29uZmlndXJhdGlv +bkRhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZQdWJTdWJDb25m +aWd1cmF0aW9uRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlB1YlN1YkNvbmZpZ3VyYXRpb25EYXRhVHlwZSIgdHlwZT0idG5zOlB1YlN1YkNvbmZp +Z3VyYXRpb25EYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mUHViU3ViQ29uZmlndXJhdGlvbkRhdGFUeXBlIiB0 +eXBlPSJ0bnM6TGlzdE9mUHViU3ViQ29uZmlndXJhdGlvbkRhdGFUeXBlIiBuaWxsYWJsZT0idHJ1 +ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpzaW1wbGVUeXBlICBuYW1lPSJEYXRhU2V0T3JkZXJp +bmdUeXBlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgIDx4 +czplbnVtZXJhdGlvbiB2YWx1ZT0iVW5kZWZpbmVkXzAiIC8+DQogICAgICA8eHM6ZW51bWVyYXRp +b24gdmFsdWU9IkFzY2VuZGluZ1dyaXRlcklkXzEiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24g +dmFsdWU9IkFzY2VuZGluZ1dyaXRlcklkU2luZ2xlXzIiIC8+DQogICAgPC94czpyZXN0cmljdGlv +bj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0T3JkZXJp +bmdUeXBlIiB0eXBlPSJ0bnM6RGF0YVNldE9yZGVyaW5nVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iTGlzdE9mRGF0YVNldE9yZGVyaW5nVHlwZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldE9yZGVyaW5nVHlwZSIgdHlwZT0idG5z +OkRhdGFTZXRPcmRlcmluZ1R5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQi +IC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iTGlzdE9mRGF0YVNldE9yZGVyaW5nVHlwZSIgdHlwZT0idG5zOkxpc3RPZkRhdGFT +ZXRPcmRlcmluZ1R5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNp +bXBsZVR5cGUgIG5hbWU9IlVhZHBOZXR3b3JrTWVzc2FnZUNvbnRlbnRNYXNrIj4NCiAgICA8eHM6 +cmVzdHJpY3Rpb24gYmFzZT0ieHM6dW5zaWduZWRJbnQiPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+ +DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVWFkcE5ldHdvcmtNZXNz +YWdlQ29udGVudE1hc2siIHR5cGU9InRuczpVYWRwTmV0d29ya01lc3NhZ2VDb250ZW50TWFzayIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mVWFkcE5ldHdvcmtNZXNzYWdlQ29u +dGVudE1hc2siPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVh +ZHBOZXR3b3JrTWVzc2FnZUNvbnRlbnRNYXNrIiB0eXBlPSJ0bnM6VWFkcE5ldHdvcmtNZXNzYWdl +Q29udGVudE1hc2siIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +TGlzdE9mVWFkcE5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siIHR5cGU9InRuczpMaXN0T2ZVYWRw +TmV0d29ya01lc3NhZ2VDb250ZW50TWFzayIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVWFkcFdyaXRlckdyb3VwTWVzc2FnZURhdGFUeXBl +Ij4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRl +bnNpb24gYmFzZT0idG5zOldyaXRlckdyb3VwTWVzc2FnZURhdGFUeXBlIj4NCiAgICAgICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ikdyb3VwVmVyc2lvbiIgdHlw +ZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJEYXRhU2V0T3JkZXJpbmciIHR5cGU9InRuczpEYXRhU2V0T3JkZXJpbmdUeXBlIiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmV0d29ya01lc3Nh +Z2VDb250ZW50TWFzayIgdHlwZT0idG5zOlVhZHBOZXR3b3JrTWVzc2FnZUNvbnRlbnRNYXNrIiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2FtcGxpbmdPZmZz +ZXQiIHR5cGU9InhzOmRvdWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlB1Ymxpc2hpbmdPZmZzZXQiIHR5cGU9InVhOkxpc3RPZkRvdWJsZSIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAg +IDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxl +eFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlVhZHBXcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlw +ZSIgdHlwZT0idG5zOlVhZHBXcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mVWFkcFdyaXRlckdyb3VwTWVzc2FnZURhdGFUeXBlIj4N +CiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVYWRwV3JpdGVyR3Jv +dXBNZXNzYWdlRGF0YVR5cGUiIHR5cGU9InRuczpVYWRwV3JpdGVyR3JvdXBNZXNzYWdlRGF0YVR5 +cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9Ikxpc3RPZlVhZHBXcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5zOkxp +c3RPZlVhZHBXcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6 +ZWxlbWVudD4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iVWFkcERhdGFTZXRNZXNzYWdlQ29u +dGVudE1hc2siPg0KICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp1bnNpZ25lZEludCI+DQog +ICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJVYWRwRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayIgdHlwZT0idG5zOlVhZHBEYXRhU2V0 +TWVzc2FnZUNvbnRlbnRNYXNrIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZV +YWRwRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iVWFkcERhdGFTZXRNZXNzYWdlQ29udGVudE1hc2siIHR5cGU9InRu +czpVYWRwRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9 +InVuYm91bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZVYWRwRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayIg +dHlwZT0idG5zOkxpc3RPZlVhZHBEYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiBuaWxsYWJsZT0i +dHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJVYWRwRGF0YVNl +dFdyaXRlck1lc3NhZ2VEYXRhVHlwZSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJm +YWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpEYXRhU2V0V3JpdGVyTWVzc2Fn +ZURhdGFUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50 +IG5hbWU9IkRhdGFTZXRNZXNzYWdlQ29udGVudE1hc2siIHR5cGU9InRuczpVYWRwRGF0YVNldE1l +c3NhZ2VDb250ZW50TWFzayIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50 +IG5hbWU9IkNvbmZpZ3VyZWRTaXplIiB0eXBlPSJ4czp1bnNpZ25lZFNob3J0IiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmV0d29ya01lc3NhZ2VOdW1iZXIi +IHR5cGU9InhzOnVuc2lnbmVkU2hvcnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJEYXRhU2V0T2Zmc2V0IiB0eXBlPSJ4czp1bnNpZ25lZFNob3J0IiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lv +bj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJVYWRwRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5z +OlVhZHBEYXRhU2V0V3JpdGVyTWVzc2FnZURhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJMaXN0T2ZVYWRwRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVWFkcERhdGFTZXRXcml0ZXJNZXNz +YWdlRGF0YVR5cGUiIHR5cGU9InRuczpVYWRwRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIg +bWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iTGlzdE9mVWFkcERhdGFTZXRXcml0ZXJNZXNzYWdlRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0 +T2ZVYWRwRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6 +ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVWFkcERhdGFTZXRSZWFkZXJNZXNz +YWdlRGF0YVR5cGUiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAg +ICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6RGF0YVNldFJlYWRlck1lc3NhZ2VEYXRhVHlwZSI+ +DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJHcm91 +cFZlcnNpb24iIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTmV0d29ya01lc3NhZ2VOdW1iZXIiIHR5cGU9InhzOnVuc2ln +bmVkU2hvcnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJE +YXRhU2V0T2Zmc2V0IiB0eXBlPSJ4czp1bnNpZ25lZFNob3J0IiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldENsYXNzSWQiIHR5cGU9InVhOkd1aWQi +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOZXR3b3JrTWVz +c2FnZUNvbnRlbnRNYXNrIiB0eXBlPSJ0bnM6VWFkcE5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2si +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0TWVz +c2FnZUNvbnRlbnRNYXNrIiB0eXBlPSJ0bnM6VWFkcERhdGFTZXRNZXNzYWdlQ29udGVudE1hc2si +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJsaXNoaW5n +SW50ZXJ2YWwiIHR5cGU9InhzOmRvdWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlJlY2VpdmVPZmZzZXQiIHR5cGU9InhzOmRvdWJsZSIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlByb2Nlc3NpbmdPZmZzZXQiIHR5 +cGU9InhzOmRvdWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0K +ICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVWFkcERhdGFTZXRSZWFkZXJNZXNzYWdl +RGF0YVR5cGUiIHR5cGU9InRuczpVYWRwRGF0YVNldFJlYWRlck1lc3NhZ2VEYXRhVHlwZSIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mVWFkcERhdGFTZXRSZWFkZXJNZXNzYWdl +RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVh +ZHBEYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFUeXBlIiB0eXBlPSJ0bnM6VWFkcERhdGFTZXRSZWFk +ZXJNZXNzYWdlRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlVhZHBEYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFU +eXBlIiB0eXBlPSJ0bnM6TGlzdE9mVWFkcERhdGFTZXRSZWFkZXJNZXNzYWdlRGF0YVR5cGUiIG5p +bGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5hbWU9Ikpz +b25OZXR3b3JrTWVzc2FnZUNvbnRlbnRNYXNrIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0i +eHM6dW5zaWduZWRJbnQiPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iSnNvbk5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siIHR5 +cGU9InRuczpKc29uTmV0d29ya01lc3NhZ2VDb250ZW50TWFzayIgLz4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iTGlzdE9mSnNvbk5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikpzb25OZXR3b3JrTWVzc2FnZUNv +bnRlbnRNYXNrIiB0eXBlPSJ0bnM6SnNvbk5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siIG1pbk9j +Y3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAg +PC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mSnNvbk5ldHdvcmtN +ZXNzYWdlQ29udGVudE1hc2siIHR5cGU9InRuczpMaXN0T2ZKc29uTmV0d29ya01lc3NhZ2VDb250 +ZW50TWFzayIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iSnNvbldyaXRlckdyb3VwTWVzc2FnZURhdGFUeXBlIj4NCiAgICA8eHM6Y29tcGxl +eENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOldy +aXRlckdyb3VwTWVzc2FnZURhdGFUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +ICAgIDx4czplbGVtZW50IG5hbWU9Ik5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siIHR5cGU9InRu +czpKc29uTmV0d29ya01lc3NhZ2VDb250ZW50TWFzayIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +ICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4 +Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iSnNvbldy +aXRlckdyb3VwTWVzc2FnZURhdGFUeXBlIiB0eXBlPSJ0bnM6SnNvbldyaXRlckdyb3VwTWVzc2Fn +ZURhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZKc29uV3JpdGVy +R3JvdXBNZXNzYWdlRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ikpzb25Xcml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5zOkpzb25X +cml0ZXJHcm91cE1lc3NhZ2VEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91 +bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mSnNvbldyaXRlckdyb3VwTWVzc2Fn +ZURhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mSnNvbldyaXRlckdyb3VwTWVzc2FnZURhdGFUeXBl +IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpzaW1wbGVUeXBlICBuYW1l +PSJKc29uRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJh +c2U9InhzOnVuc2lnbmVkSW50Ij4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hzOnNpbXBs +ZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikpzb25EYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNr +IiB0eXBlPSJ0bnM6SnNvbkRhdGFTZXRNZXNzYWdlQ29udGVudE1hc2siIC8+DQoNCiAgPHhzOmNv +bXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkpzb25EYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIj4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJKc29uRGF0YVNldE1lc3Nh +Z2VDb250ZW50TWFzayIgdHlwZT0idG5zOkpzb25EYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkpzb25EYXRh +U2V0TWVzc2FnZUNvbnRlbnRNYXNrIiB0eXBlPSJ0bnM6TGlzdE9mSnNvbkRhdGFTZXRNZXNzYWdl +Q29udGVudE1hc2siIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9Ikpzb25EYXRhU2V0V3JpdGVyTWVzc2FnZURhdGFUeXBlIj4NCiAgICA8eHM6 +Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0i +dG5zOkRhdGFTZXRXcml0ZXJNZXNzYWdlRGF0YVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVNldE1lc3NhZ2VDb250ZW50TWFzayIg +dHlwZT0idG5zOkpzb25EYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrIiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hz +OmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJKc29uRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5zOkpzb25EYXRhU2V0 +V3JpdGVyTWVzc2FnZURhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0 +T2ZKc29uRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSnNvbkRhdGFTZXRXcml0ZXJNZXNzYWdlRGF0YVR5cGUi +IHR5cGU9InRuczpKc29uRGF0YVNldFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIgbWluT2NjdXJzPSIw +IiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mSnNv +bkRhdGFTZXRXcml0ZXJNZXNzYWdlRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZKc29uRGF0YVNl +dFdyaXRlck1lc3NhZ2VEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0K +ICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iSnNvbkRhdGFTZXRSZWFkZXJNZXNzYWdlRGF0YVR5cGUi +Pg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVu +c2lvbiBiYXNlPSJ0bnM6RGF0YVNldFJlYWRlck1lc3NhZ2VEYXRhVHlwZSI+DQogICAgICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOZXR3b3JrTWVzc2FnZUNv +bnRlbnRNYXNrIiB0eXBlPSJ0bnM6SnNvbk5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2siIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU2V0TWVzc2FnZUNv +bnRlbnRNYXNrIiB0eXBlPSJ0bnM6SnNvbkRhdGFTZXRNZXNzYWdlQ29udGVudE1hc2siIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9u +Pg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9Ikpzb25EYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFUeXBlIiB0eXBlPSJ0bnM6 +SnNvbkRhdGFTZXRSZWFkZXJNZXNzYWdlRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZkpzb25EYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFUeXBlIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJKc29uRGF0YVNldFJlYWRlck1lc3Nh +Z2VEYXRhVHlwZSIgdHlwZT0idG5zOkpzb25EYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFUeXBlIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJMaXN0T2ZKc29uRGF0YVNldFJlYWRlck1lc3NhZ2VEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RP +Zkpzb25EYXRhU2V0UmVhZGVyTWVzc2FnZURhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czpl +bGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEYXRhZ3JhbUNvbm5lY3Rpb25UcmFu +c3BvcnREYXRhVHlwZSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQog +ICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpDb25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5cGUi +Pg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlz +Y292ZXJ5QWRkcmVzcyIgdHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRl +bnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iRGF0YWdyYW1Db25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5cGUiIHR5 +cGU9InRuczpEYXRhZ3JhbUNvbm5lY3Rpb25UcmFuc3BvcnREYXRhVHlwZSIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mRGF0YWdyYW1Db25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5 +cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFncmFt +Q29ubmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6RGF0YWdyYW1Db25uZWN0aW9u +VHJhbnNwb3J0RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkRhdGFncmFtQ29ubmVjdGlvblRyYW5zcG9ydERh +dGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mRGF0YWdyYW1Db25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5 +cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9IkRhdGFncmFtV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPHhzOmNvbXBs +ZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpX +cml0ZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAg +ICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1lc3NhZ2VSZXBlYXRDb3VudCIgdHlwZT0ieHM6dW5z +aWduZWRCeXRlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +TWVzc2FnZVJlcGVhdERlbGF5IiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29t +cGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkRh +dGFncmFtV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0idG5zOkRhdGFncmFtV3Jp +dGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i +TGlzdE9mRGF0YWdyYW1Xcml0ZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhZ3JhbVdyaXRlckdyb3VwVHJhbnNw +b3J0RGF0YVR5cGUiIHR5cGU9InRuczpEYXRhZ3JhbVdyaXRlckdyb3VwVHJhbnNwb3J0RGF0YVR5 +cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9Ikxpc3RPZkRhdGFncmFtV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0i +dG5zOkxpc3RPZkRhdGFncmFtV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgbmlsbGFibGU9 +InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQnJva2VyQ29u +bmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9 +ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOkNvbm5lY3Rpb25UcmFuc3Bv +cnREYXRhVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJSZXNvdXJjZVVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkF1dGhlbnRpY2F0aW9u +UHJvZmlsZVVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAg +PC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iQnJva2VyQ29ubmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6QnJva2Vy +Q29ubmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1l +PSJMaXN0T2ZCcm9rZXJDb25uZWN0aW9uVHJhbnNwb3J0RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJyb2tlckNvbm5lY3Rpb25UcmFuc3BvcnRE +YXRhVHlwZSIgdHlwZT0idG5zOkJyb2tlckNvbm5lY3Rpb25UcmFuc3BvcnREYXRhVHlwZSIgbWlu +T2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +TGlzdE9mQnJva2VyQ29ubmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9m +QnJva2VyQ29ubmVjdGlvblRyYW5zcG9ydERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czpl +bGVtZW50Pg0KDQogIDx4czpzaW1wbGVUeXBlICBuYW1lPSJCcm9rZXJUcmFuc3BvcnRRdWFsaXR5 +T2ZTZXJ2aWNlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTm90U3BlY2lmaWVkXzAiIC8+DQogICAgICA8eHM6ZW51 +bWVyYXRpb24gdmFsdWU9IkJlc3RFZmZvcnRfMSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2 +YWx1ZT0iQXRMZWFzdE9uY2VfMiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQXRN +b3N0T25jZV8zIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJFeGFjdGx5T25jZV80 +IiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iQnJva2VyVHJhbnNwb3J0UXVhbGl0eU9mU2VydmljZSIgdHlwZT0idG5zOkJy +b2tlclRyYW5zcG9ydFF1YWxpdHlPZlNlcnZpY2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ikxpc3RPZkJyb2tlclRyYW5zcG9ydFF1YWxpdHlPZlNlcnZpY2UiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJyb2tlclRyYW5zcG9ydFF1YWxpdHlPZlNl +cnZpY2UiIHR5cGU9InRuczpCcm9rZXJUcmFuc3BvcnRRdWFsaXR5T2ZTZXJ2aWNlIiBtaW5PY2N1 +cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkJyb2tlclRyYW5zcG9y +dFF1YWxpdHlPZlNlcnZpY2UiIHR5cGU9InRuczpMaXN0T2ZCcm9rZXJUcmFuc3BvcnRRdWFsaXR5 +T2ZTZXJ2aWNlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJCcm9rZXJXcml0ZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8eHM6 +Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0i +dG5zOldyaXRlckdyb3VwVHJhbnNwb3J0RGF0YVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUXVldWVOYW1lIiB0eXBlPSJ4czpzdHJpbmci +IG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUmVzb3VyY2VVcmkiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBdXRoZW50aWNhdGlvblBy +b2ZpbGVVcmkiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0ZWREZWxpdmVyeUd1YXJhbnRl +ZSIgdHlwZT0idG5zOkJyb2tlclRyYW5zcG9ydFF1YWxpdHlPZlNlcnZpY2UiIG1pbk9jY3Vycz0i +MCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAg +IDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9IkJyb2tlcldyaXRlckdyb3VwVHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9InRuczpCcm9r +ZXJXcml0ZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBu +YW1lPSJMaXN0T2ZCcm9rZXJXcml0ZXJHcm91cFRyYW5zcG9ydERhdGFUeXBlIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJCcm9rZXJXcml0ZXJHcm91cFRyYW5z +cG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6QnJva2VyV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlw +ZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTGlzdE9mQnJva2VyV3JpdGVyR3JvdXBUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0idG5z +Okxpc3RPZkJyb2tlcldyaXRlckdyb3VwVHJhbnNwb3J0RGF0YVR5cGUiIG5pbGxhYmxlPSJ0cnVl +Ij48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkJyb2tlckRhdGFTZXRX +cml0ZXJUcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJm +YWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpEYXRhU2V0V3JpdGVyVHJhbnNw +b3J0RGF0YVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iUXVldWVOYW1lIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzb3VyY2VVcmkiIHR5 +cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJBdXRoZW50aWNhdGlvblByb2ZpbGVVcmkiIHR5cGU9InhzOnN0 +cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJSZXF1ZXN0ZWREZWxpdmVyeUd1YXJhbnRlZSIgdHlwZT0idG5zOkJyb2tlclRy +YW5zcG9ydFF1YWxpdHlPZlNlcnZpY2UiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJNZXRhRGF0YVF1ZXVlTmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1 +cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1l +dGFEYXRhVXBkYXRlVGltZSIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBs +ZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJCcm9r +ZXJEYXRhU2V0V3JpdGVyVHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9InRuczpCcm9rZXJEYXRhU2V0 +V3JpdGVyVHJhbnNwb3J0RGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxp +c3RPZkJyb2tlckRhdGFTZXRXcml0ZXJUcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQnJva2VyRGF0YVNldFdyaXRlclRyYW5zcG9y +dERhdGFUeXBlIiB0eXBlPSJ0bnM6QnJva2VyRGF0YVNldFdyaXRlclRyYW5zcG9ydERhdGFUeXBl +IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJMaXN0T2ZCcm9rZXJEYXRhU2V0V3JpdGVyVHJhbnNwb3J0RGF0YVR5cGUiIHR5cGU9InRu +czpMaXN0T2ZCcm9rZXJEYXRhU2V0V3JpdGVyVHJhbnNwb3J0RGF0YVR5cGUiIG5pbGxhYmxlPSJ0 +cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkJyb2tlckRhdGFT +ZXRSZWFkZXJUcmFuc3BvcnREYXRhVHlwZSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVk +PSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpEYXRhU2V0UmVhZGVyVHJh +bnNwb3J0RGF0YVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iUXVldWVOYW1lIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzb3VyY2VVcmki +IHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBdXRoZW50aWNhdGlvblByb2ZpbGVVcmkiIHR5cGU9Inhz +OnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJSZXF1ZXN0ZWREZWxpdmVyeUd1YXJhbnRlZSIgdHlwZT0idG5zOkJyb2tl +clRyYW5zcG9ydFF1YWxpdHlPZlNlcnZpY2UiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJNZXRhRGF0YVF1ZXVlTmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5P +Y2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAg +ICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQnJva2VyRGF0YVNldFJlYWRlclRyYW5zcG9y +dERhdGFUeXBlIiB0eXBlPSJ0bnM6QnJva2VyRGF0YVNldFJlYWRlclRyYW5zcG9ydERhdGFUeXBl +IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZCcm9rZXJEYXRhU2V0UmVhZGVy +VHJhbnNwb3J0RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IkJyb2tlckRhdGFTZXRSZWFkZXJUcmFuc3BvcnREYXRhVHlwZSIgdHlwZT0idG5zOkJy +b2tlckRhdGFTZXRSZWFkZXJUcmFuc3BvcnREYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1 +cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAg +PC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mQnJva2VyRGF0YVNl +dFJlYWRlclRyYW5zcG9ydERhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mQnJva2VyRGF0YVNldFJl +YWRlclRyYW5zcG9ydERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQog +IDx4czpzaW1wbGVUeXBlICBuYW1lPSJEaWFnbm9zdGljc0xldmVsIj4NCiAgICA8eHM6cmVzdHJp +Y3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQmFz +aWNfMCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQWR2YW5jZWRfMSIgLz4NCiAg +ICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iSW5mb18yIiAvPg0KICAgICAgPHhzOmVudW1lcmF0 +aW9uIHZhbHVlPSJMb2dfMyIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRGVidWdf +NCIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IkRpYWdub3N0aWNzTGV2ZWwiIHR5cGU9InRuczpEaWFnbm9zdGljc0xldmVs +IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZEaWFnbm9zdGljc0xldmVsIj4N +CiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEaWFnbm9zdGljc0xl +dmVsIiB0eXBlPSJ0bnM6RGlhZ25vc3RpY3NMZXZlbCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9 +InVuYm91bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZEaWFnbm9zdGljc0xldmVsIiB0eXBlPSJ0bnM6TGlz +dE9mRGlhZ25vc3RpY3NMZXZlbCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8 +eHM6c2ltcGxlVHlwZSAgbmFtZT0iUHViU3ViRGlhZ25vc3RpY3NDb3VudGVyQ2xhc3NpZmljYXRp +b24iPg0KICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KICAgICAgPHhzOmVu +dW1lcmF0aW9uIHZhbHVlPSJJbmZvcm1hdGlvbl8wIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9u +IHZhbHVlPSJFcnJvcl8xIiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxl +VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUHViU3ViRGlhZ25vc3RpY3NDb3VudGVyQ2xhc3Np +ZmljYXRpb24iIHR5cGU9InRuczpQdWJTdWJEaWFnbm9zdGljc0NvdW50ZXJDbGFzc2lmaWNhdGlv +biIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mUHViU3ViRGlhZ25vc3RpY3ND +b3VudGVyQ2xhc3NpZmljYXRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlB1YlN1YkRpYWdub3N0aWNzQ291bnRlckNsYXNzaWZpY2F0aW9uIiB0eXBlPSJ0 +bnM6UHViU3ViRGlhZ25vc3RpY3NDb3VudGVyQ2xhc3NpZmljYXRpb24iIG1pbk9jY3Vycz0iMCIg +bWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mUHViU3ViRGlhZ25vc3RpY3NDb3Vu +dGVyQ2xhc3NpZmljYXRpb24iIHR5cGU9InRuczpMaXN0T2ZQdWJTdWJEaWFnbm9zdGljc0NvdW50 +ZXJDbGFzc2lmaWNhdGlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iQWxpYXNOYW1lRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IkFsaWFzTmFtZSIgdHlwZT0idWE6UXVhbGlmaWVkTmFt +ZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlJlZmVyZW5jZWROb2RlcyIgdHlwZT0idWE6TGlzdE9mRXhwYW5kZWROb2RlSWQiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQWxpYXNOYW1lRGF0YVR5cGUiIHR5cGU9 +InRuczpBbGlhc05hbWVEYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlz +dE9mQWxpYXNOYW1lRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkFsaWFzTmFtZURhdGFUeXBlIiB0eXBlPSJ0bnM6QWxpYXNOYW1lRGF0YVR5cGUi +IG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9Ikxpc3RPZkFsaWFzTmFtZURhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mQWxpYXNOYW1lRGF0 +YVR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNpbXBsZVR5cGUg +IG5hbWU9IkR1cGxleCI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQog +ICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkZ1bGxfMCIgLz4NCiAgICAgIDx4czplbnVtZXJh +dGlvbiB2YWx1ZT0iSGFsZl8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJVbmtu +b3duXzIiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJEdXBsZXgiIHR5cGU9InRuczpEdXBsZXgiIC8+DQoNCiAgPHhzOmNv +bXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkR1cGxleCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRHVwbGV4IiB0eXBlPSJ0bnM6RHVwbGV4IiBtaW5PY2N1cnM9IjAi +IG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29t +cGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkR1cGxleCIgdHlwZT0idG5zOkxp +c3RPZkR1cGxleCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6c2ltcGxl +VHlwZSAgbmFtZT0iSW50ZXJmYWNlQWRtaW5TdGF0dXMiPg0KICAgIDx4czpyZXN0cmljdGlvbiBi +YXNlPSJ4czpzdHJpbmciPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJVcF8wIiAvPg0K +ICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJEb3duXzEiIC8+DQogICAgICA8eHM6ZW51bWVy +YXRpb24gdmFsdWU9IlRlc3RpbmdfMiIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hz +OnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkludGVyZmFjZUFkbWluU3RhdHVzIiB0 +eXBlPSJ0bnM6SW50ZXJmYWNlQWRtaW5TdGF0dXMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ikxpc3RPZkludGVyZmFjZUFkbWluU3RhdHVzIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJJbnRlcmZhY2VBZG1pblN0YXR1cyIgdHlwZT0idG5zOkludGVy +ZmFjZUFkbWluU3RhdHVzIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9Ikxpc3RPZkludGVyZmFjZUFkbWluU3RhdHVzIiB0eXBlPSJ0bnM6TGlzdE9mSW50ZXJmYWNl +QWRtaW5TdGF0dXMiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNpbXBs +ZVR5cGUgIG5hbWU9IkludGVyZmFjZU9wZXJTdGF0dXMiPg0KICAgIDx4czpyZXN0cmljdGlvbiBi +YXNlPSJ4czpzdHJpbmciPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJVcF8wIiAvPg0K +ICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJEb3duXzEiIC8+DQogICAgICA8eHM6ZW51bWVy +YXRpb24gdmFsdWU9IlRlc3RpbmdfMiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0i +VW5rbm93bl8zIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJEb3JtYW50XzQiIC8+ +DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik5vdFByZXNlbnRfNSIgLz4NCiAgICAgIDx4 +czplbnVtZXJhdGlvbiB2YWx1ZT0iTG93ZXJMYXllckRvd25fNiIgLz4NCiAgICA8L3hzOnJlc3Ry +aWN0aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkludGVyZmFj +ZU9wZXJTdGF0dXMiIHR5cGU9InRuczpJbnRlcmZhY2VPcGVyU3RhdHVzIiAvPg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZJbnRlcmZhY2VPcGVyU3RhdHVzIj4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJbnRlcmZhY2VPcGVyU3RhdHVzIiB0eXBl +PSJ0bnM6SW50ZXJmYWNlT3BlclN0YXR1cyIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91 +bmRlZCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJMaXN0T2ZJbnRlcmZhY2VPcGVyU3RhdHVzIiB0eXBlPSJ0bnM6TGlzdE9m +SW50ZXJmYWNlT3BlclN0YXR1cyIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8 +eHM6c2ltcGxlVHlwZSAgbmFtZT0iTmVnb3RpYXRpb25TdGF0dXMiPg0KICAgIDx4czpyZXN0cmlj +dGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJJblBy +b2dyZXNzXzAiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkNvbXBsZXRlXzEiIC8+ +DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkZhaWxlZF8yIiAvPg0KICAgICAgPHhzOmVu +dW1lcmF0aW9uIHZhbHVlPSJVbmtub3duXzMiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFs +dWU9Ik5vTmVnb3RpYXRpb25fNCIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hzOnNp +bXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ik5lZ290aWF0aW9uU3RhdHVzIiB0eXBlPSJ0 +bnM6TmVnb3RpYXRpb25TdGF0dXMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RP +Zk5lZ290aWF0aW9uU3RhdHVzIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJOZWdvdGlhdGlvblN0YXR1cyIgdHlwZT0idG5zOk5lZ290aWF0aW9uU3RhdHVzIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZk5lZ290aWF0 +aW9uU3RhdHVzIiB0eXBlPSJ0bnM6TGlzdE9mTmVnb3RpYXRpb25TdGF0dXMiIG5pbGxhYmxlPSJ0 +cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5hbWU9IlRzbkZhaWx1cmVD +b2RlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgIDx4czpl +bnVtZXJhdGlvbiB2YWx1ZT0iTm9GYWlsdXJlXzAiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24g +dmFsdWU9Ikluc3VmZmljaWVudEJhbmR3aWR0aF8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9u +IHZhbHVlPSJJbnN1ZmZpY2llbnRSZXNvdXJjZXNfMiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlv +biB2YWx1ZT0iSW5zdWZmaWNpZW50VHJhZmZpY0NsYXNzQmFuZHdpZHRoXzMiIC8+DQogICAgICA8 +eHM6ZW51bWVyYXRpb24gdmFsdWU9IlN0cmVhbUlkSW5Vc2VfNCIgLz4NCiAgICAgIDx4czplbnVt +ZXJhdGlvbiB2YWx1ZT0iU3RyZWFtRGVzdGluYXRpb25BZGRyZXNzSW5Vc2VfNSIgLz4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iU3RyZWFtUHJlZW1wdGVkQnlIaWdoZXJSYW5rXzYiIC8+ +DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkxhdGVuY3lIYXNDaGFuZ2VkXzciIC8+DQog +ICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkVncmVzc1BvcnROb3RBdmJDYXBhYmxlXzgiIC8+ +DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlVzZURpZmZlcmVudERlc3RpbmF0aW9uQWRk +cmVzc185IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJPdXRPZk1zcnBSZXNvdXJj +ZXNfMTAiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik91dE9mTW1ycFJlc291cmNl +c18xMSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQ2Fubm90U3RvcmVEZXN0aW5h +dGlvbkFkZHJlc3NfMTIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlByaW9yaXR5 +SXNOb3RBblNyY0NsYXNzXzEzIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJNYXhG +cmFtZVNpemVUb29MYXJnZV8xNCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTWF4 +RmFuSW5Qb3J0c0xpbWl0UmVhY2hlZF8xNSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1 +ZT0iRmlyc3RWYWx1ZUNoYW5nZWRGb3JTdHJlYW1JZF8xNiIgLz4NCiAgICAgIDx4czplbnVtZXJh +dGlvbiB2YWx1ZT0iVmxhbkJsb2NrZWRPbkVncmVzc18xNyIgLz4NCiAgICAgIDx4czplbnVtZXJh +dGlvbiB2YWx1ZT0iVmxhblRhZ2dpbmdEaXNhYmxlZE9uRWdyZXNzXzE4IiAvPg0KICAgICAgPHhz +OmVudW1lcmF0aW9uIHZhbHVlPSJTckNsYXNzUHJpb3JpdHlNaXNtYXRjaF8xOSIgLz4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRmVhdHVyZU5vdFByb3BhZ2F0ZWRfMjAiIC8+DQogICAg +ICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik1heExhdGVuY3lFeGNlZWRlZF8yMSIgLz4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQnJpZGdlRG9lc05vdFByb3ZpZGVOZXR3b3JrSWRfMjIi +IC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlN0cmVhbVRyYW5zZm9ybU5vdFN1cHBv +cnRlZF8yMyIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iU3RyZWFtSWRUeXBlTm90 +U3VwcG9ydGVkXzI0IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJGZWF0dXJlTm90 +U3VwcG9ydGVkXzI1IiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVHNuRmFpbHVyZUNvZGUiIHR5cGU9InRuczpUc25GYWls +dXJlQ29kZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mVHNuRmFpbHVyZUNv +ZGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRzbkZhaWx1 +cmVDb2RlIiB0eXBlPSJ0bnM6VHNuRmFpbHVyZUNvZGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJz +PSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVHNuRmFpbHVyZUNvZGUiIHR5cGU9InRuczpMaXN0 +T2ZUc25GYWlsdXJlQ29kZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6 +c2ltcGxlVHlwZSAgbmFtZT0iVHNuU3RyZWFtU3RhdGUiPg0KICAgIDx4czpyZXN0cmljdGlvbiBi +YXNlPSJ4czpzdHJpbmciPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJEaXNhYmxlZF8w +IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJDb25maWd1cmluZ18xIiAvPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJSZWFkeV8yIiAvPg0KICAgICAgPHhzOmVudW1lcmF0 +aW9uIHZhbHVlPSJPcGVyYXRpb25hbF8zIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVl +PSJFcnJvcl80IiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iVHNuU3RyZWFtU3RhdGUiIHR5cGU9InRuczpUc25TdHJlYW1T +dGF0ZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mVHNuU3RyZWFtU3RhdGUi +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRzblN0cmVhbVN0 +YXRlIiB0eXBlPSJ0bnM6VHNuU3RyZWFtU3RhdGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1 +bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVHNuU3RyZWFtU3RhdGUiIHR5cGU9InRuczpMaXN0T2ZU +c25TdHJlYW1TdGF0ZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6c2lt +cGxlVHlwZSAgbmFtZT0iVHNuVGFsa2VyU3RhdHVzIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFz +ZT0ieHM6c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTm9uZV8wIiAvPg0K +ICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJSZWFkeV8xIiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJGYWlsZWRfMiIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hz +OnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlRzblRhbGtlclN0YXR1cyIgdHlwZT0i +dG5zOlRzblRhbGtlclN0YXR1cyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9m +VHNuVGFsa2VyU3RhdHVzIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJUc25UYWxrZXJTdGF0dXMiIHR5cGU9InRuczpUc25UYWxrZXJTdGF0dXMiIG1pbk9jY3Vy +cz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94 +czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVHNuVGFsa2VyU3RhdHVz +IiB0eXBlPSJ0bnM6TGlzdE9mVHNuVGFsa2VyU3RhdHVzIiBuaWxsYWJsZT0idHJ1ZSI+PC94czpl +bGVtZW50Pg0KDQogIDx4czpzaW1wbGVUeXBlICBuYW1lPSJUc25MaXN0ZW5lclN0YXR1cyI+DQog +ICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICA8eHM6ZW51bWVyYXRp +b24gdmFsdWU9Ik5vbmVfMCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iUmVhZHlf +MSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iUGFydGlhbEZhaWxlZF8yIiAvPg0K +ICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJGYWlsZWRfMyIgLz4NCiAgICA8L3hzOnJlc3Ry +aWN0aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlRzbkxpc3Rl +bmVyU3RhdHVzIiB0eXBlPSJ0bnM6VHNuTGlzdGVuZXJTdGF0dXMiIC8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9Ikxpc3RPZlRzbkxpc3RlbmVyU3RhdHVzIj4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUc25MaXN0ZW5lclN0YXR1cyIgdHlwZT0idG5zOlRz +bkxpc3RlbmVyU3RhdHVzIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9Ikxpc3RPZlRzbkxpc3RlbmVyU3RhdHVzIiB0eXBlPSJ0bnM6TGlzdE9mVHNuTGlzdGVuZXJT +dGF0dXMiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9IlVuc2lnbmVkUmF0aW9uYWxOdW1iZXIiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9Ik51bWVyYXRvciIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRlbm9taW5hdG9yIiB0eXBlPSJ4 +czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlVuc2lnbmVkUmF0aW9uYWxOdW1i +ZXIiIHR5cGU9InRuczpVbnNpZ25lZFJhdGlvbmFsTnVtYmVyIiAvPg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJMaXN0T2ZVbnNpZ25lZFJhdGlvbmFsTnVtYmVyIj4NCiAgICA8eHM6c2VxdWVu +Y2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVbnNpZ25lZFJhdGlvbmFsTnVtYmVyIiB0eXBl +PSJ0bnM6VW5zaWduZWRSYXRpb25hbE51bWJlciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu +Ym91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVW5zaWduZWRSYXRpb25hbE51 +bWJlciIgdHlwZT0idG5zOkxpc3RPZlVuc2lnbmVkUmF0aW9uYWxOdW1iZXIiIG5pbGxhYmxlPSJ0 +cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5hbWU9IklkVHlwZSI+DQog +ICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICA8eHM6ZW51bWVyYXRp +b24gdmFsdWU9Ik51bWVyaWNfMCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iU3Ry +aW5nXzEiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ikd1aWRfMiIgLz4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iT3BhcXVlXzMiIC8+DQogICAgPC94czpyZXN0cmljdGlv +bj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJJZFR5cGUiIHR5cGU9 +InRuczpJZFR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZklkVHlwZSI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSWRUeXBlIiB0eXBl +PSJ0bnM6SWRUeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAg +IDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +Ikxpc3RPZklkVHlwZSIgdHlwZT0idG5zOkxpc3RPZklkVHlwZSIgbmlsbGFibGU9InRydWUiPjwv +eHM6ZWxlbWVudD4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iTm9kZUNsYXNzIj4NCiAgICA8 +eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2 +YWx1ZT0iVW5zcGVjaWZpZWRfMCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iT2Jq +ZWN0XzEiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlZhcmlhYmxlXzIiIC8+DQog +ICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik1ldGhvZF80IiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJPYmplY3RUeXBlXzgiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFs +dWU9IlZhcmlhYmxlVHlwZV8xNiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iUmVm +ZXJlbmNlVHlwZV8zMiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRGF0YVR5cGVf +NjQiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlZpZXdfMTI4IiAvPg0KICAgIDwv +eHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +Tm9kZUNsYXNzIiB0eXBlPSJ0bnM6Tm9kZUNsYXNzIiAvPg0KDQogIDx4czpzaW1wbGVUeXBlICBu +YW1lPSJQZXJtaXNzaW9uVHlwZSI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnVuc2ln +bmVkSW50Ij4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9IlBlcm1pc3Npb25UeXBlIiB0eXBlPSJ0bnM6UGVybWlzc2lvblR5cGUi +IC8+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5hbWU9IkFjY2Vzc0xldmVsVHlwZSI+DQogICAgPHhz +OnJlc3RyaWN0aW9uIGJhc2U9InhzOnVuc2lnbmVkQnl0ZSI+DQogICAgPC94czpyZXN0cmljdGlv +bj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJBY2Nlc3NMZXZlbFR5 +cGUiIHR5cGU9InRuczpBY2Nlc3NMZXZlbFR5cGUiIC8+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5h +bWU9IkFjY2Vzc0xldmVsRXhUeXBlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6dW5z +aWduZWRJbnQiPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iQWNjZXNzTGV2ZWxFeFR5cGUiIHR5cGU9InRuczpBY2Nlc3NMZXZl +bEV4VHlwZSIgLz4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iRXZlbnROb3RpZmllclR5cGUi +Pg0KICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp1bnNpZ25lZEJ5dGUiPg0KICAgIDwveHM6 +cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRXZl +bnROb3RpZmllclR5cGUiIHR5cGU9InRuczpFdmVudE5vdGlmaWVyVHlwZSIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iUm9sZVBlcm1pc3Npb25UeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSb2xlSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlBlcm1p +c3Npb25zIiB0eXBlPSJ0bnM6UGVybWlzc2lvblR5cGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJS +b2xlUGVybWlzc2lvblR5cGUiIHR5cGU9InRuczpSb2xlUGVybWlzc2lvblR5cGUiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlJvbGVQZXJtaXNzaW9uVHlwZSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUm9sZVBlcm1pc3Npb25UeXBlIiB0 +eXBlPSJ0bnM6Um9sZVBlcm1pc3Npb25UeXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5i +b3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZSb2xlUGVybWlzc2lvblR5cGUi +IHR5cGU9InRuczpMaXN0T2ZSb2xlUGVybWlzc2lvblR5cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hz +OmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRhdGFUeXBlRGVmaW5pdGlvbiI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5 +cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkRhdGFUeXBlRGVmaW5pdGlvbiIgdHlwZT0idG5zOkRh +dGFUeXBlRGVmaW5pdGlvbiIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mRGF0 +YVR5cGVEZWZpbml0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJEYXRhVHlwZURlZmluaXRpb24iIHR5cGU9InRuczpEYXRhVHlwZURlZmluaXRpb24iIG1p +bk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +IDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +Ikxpc3RPZkRhdGFUeXBlRGVmaW5pdGlvbiIgdHlwZT0idG5zOkxpc3RPZkRhdGFUeXBlRGVmaW5p +dGlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6c2ltcGxlVHlwZSAg +bmFtZT0iU3RydWN0dXJlVHlwZSI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmlu +ZyI+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlN0cnVjdHVyZV8wIiAvPg0KICAgICAg +PHhzOmVudW1lcmF0aW9uIHZhbHVlPSJTdHJ1Y3R1cmVXaXRoT3B0aW9uYWxGaWVsZHNfMSIgLz4N +CiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iVW5pb25fMiIgLz4NCiAgICAgIDx4czplbnVt +ZXJhdGlvbiB2YWx1ZT0iU3RydWN0dXJlV2l0aFN1YnR5cGVkVmFsdWVzXzMiIC8+DQogICAgICA8 +eHM6ZW51bWVyYXRpb24gdmFsdWU9IlVuaW9uV2l0aFN1YnR5cGVkVmFsdWVzXzQiIC8+DQogICAg +PC94czpyZXN0cmljdGlvbj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJTdHJ1Y3R1cmVUeXBlIiB0eXBlPSJ0bnM6U3RydWN0dXJlVHlwZSIgLz4NCg0KICA8eHM6Y29t +cGxleFR5cGUgbmFtZT0iU3RydWN0dXJlRmllbGQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9Ik5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRlc2NyaXB0aW9uIiB0 +eXBlPSJ1YTpMb2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVR5cGUiIHR5cGU9InVhOk5vZGVJZCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlZhbHVl +UmFuayIgdHlwZT0ieHM6aW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJBcnJheURpbWVuc2lvbnMiIHR5cGU9InVhOkxpc3RPZlVJbnQzMiIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1heFN0cmluZ0xl +bmd0aCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IklzT3B0aW9uYWwiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIg +Lz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVu +dCBuYW1lPSJTdHJ1Y3R1cmVGaWVsZCIgdHlwZT0idG5zOlN0cnVjdHVyZUZpZWxkIiAvPg0KDQog +IDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZTdHJ1Y3R1cmVGaWVsZCI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RydWN0dXJlRmllbGQiIHR5cGU9InRu +czpTdHJ1Y3R1cmVGaWVsZCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mU3RydWN0dXJlRmllbGQiIHR5cGU9InRuczpMaXN0 +T2ZTdHJ1Y3R1cmVGaWVsZCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iU3RydWN0dXJlRGVmaW5pdGlvbiI+DQogICAgPHhzOmNvbXBsZXhD +b250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpEYXRh +VHlwZURlZmluaXRpb24iPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iRGVmYXVsdEVuY29kaW5nSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJCYXNl +RGF0YVR5cGUiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdHJ1Y3R1cmVUeXBlIiB0eXBlPSJ0bnM6 +U3RydWN0dXJlVHlwZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5h +bWU9IkZpZWxkcyIgdHlwZT0idG5zOkxpc3RPZlN0cnVjdHVyZUZpZWxkIiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpl +eHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iU3RydWN0dXJlRGVmaW5pdGlvbiIgdHlwZT0idG5zOlN0cnVj +dHVyZURlZmluaXRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlN0cnVj +dHVyZURlZmluaXRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlN0cnVjdHVyZURlZmluaXRpb24iIHR5cGU9InRuczpTdHJ1Y3R1cmVEZWZpbml0aW9uIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJMaXN0T2ZTdHJ1Y3R1cmVEZWZpbml0aW9uIiB0eXBlPSJ0bnM6TGlzdE9mU3RydWN0dXJlRGVm +aW5pdGlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iRW51bURlZmluaXRpb24iPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0i +ZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6RGF0YVR5cGVEZWZpbml0aW9u +Ij4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkZp +ZWxkcyIgdHlwZT0idG5zOkxpc3RPZkVudW1GaWVsZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0K +ICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IkVudW1EZWZpbml0aW9uIiB0eXBlPSJ0bnM6RW51bURlZmluaXRpb24iIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkVudW1EZWZpbml0aW9uIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbnVtRGVmaW5pdGlvbiIgdHlwZT0i +dG5zOkVudW1EZWZpbml0aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZFbnVtRGVmaW5pdGlvbiIgdHlwZT0idG5zOkxp +c3RPZkVudW1EZWZpbml0aW9uIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJOb2RlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJOb2RlSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGVDbGFzcyIgdHlwZT0i +dG5zOk5vZGVDbGFzcyIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +QnJvd3NlTmFtZSIgdHlwZT0idWE6UXVhbGlmaWVkTmFtZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRpc3BsYXlOYW1lIiB0eXBlPSJ1 +YTpMb2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRGVzY3JpcHRpb24iIHR5cGU9InVhOkxvY2FsaXplZFRleHQiIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJX +cml0ZU1hc2siIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJVc2VyV3JpdGVNYXNrIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWlu +T2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUm9sZVBlcm1pc3Npb25zIiB0 +eXBlPSJ0bnM6TGlzdE9mUm9sZVBlcm1pc3Npb25UeXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNlclJvbGVQZXJtaXNzaW9ucyIg +dHlwZT0idG5zOkxpc3RPZlJvbGVQZXJtaXNzaW9uVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkFjY2Vzc1Jlc3RyaWN0aW9ucyIg +dHlwZT0ieHM6dW5zaWduZWRTaG9ydCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iUmVmZXJlbmNlcyIgdHlwZT0idG5zOkxpc3RPZlJlZmVyZW5jZU5vZGUiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTm9kZSIgdHlwZT0idG5zOk5vZGUiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZk5vZGUiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGUiIHR5cGU9InRuczpOb2RlIiBtaW5PY2N1 +cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0 +T2ZOb2RlIiB0eXBlPSJ0bnM6TGlzdE9mTm9kZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVu +dD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iSW5zdGFuY2VOb2RlIj4NCiAgICA8eHM6Y29t +cGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5z +Ok5vZGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQog +ICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJJbnN0YW5jZU5vZGUiIHR5cGU9InRuczpJ +bnN0YW5jZU5vZGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlR5cGVOb2RlIj4NCiAg +ICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24g +YmFzZT0idG5zOk5vZGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgIDwveHM6c2Vx +dWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0K +ICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJUeXBlTm9kZSIgdHlwZT0i +dG5zOlR5cGVOb2RlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJPYmplY3ROb2RlIj4N +CiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNp +b24gYmFzZT0idG5zOkluc3RhbmNlTm9kZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFdmVudE5vdGlmaWVyIiB0eXBlPSJ4czp1bnNpZ25lZEJ5 +dGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6 +ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ik9iamVjdE5vZGUiIHR5cGU9InRuczpPYmplY3ROb2RlIiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJPYmplY3RUeXBlTm9kZSI+DQogICAgPHhzOmNv +bXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRu +czpUeXBlTm9kZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJJc0Fic3RyYWN0IiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNv +bXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJP +YmplY3RUeXBlTm9kZSIgdHlwZT0idG5zOk9iamVjdFR5cGVOb2RlIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJWYXJpYWJsZU5vZGUiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhl +ZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6SW5zdGFuY2VOb2RlIj4N +CiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlZhbHVl +IiB0eXBlPSJ1YTpWYXJpYW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iRGF0YVR5cGUiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJWYWx1ZVJhbmsiIHR5cGU9 +InhzOmludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkFy +cmF5RGltZW5zaW9ucyIgdHlwZT0idWE6TGlzdE9mVUludDMyIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkFjY2Vzc0xldmVsIiB0 +eXBlPSJ4czp1bnNpZ25lZEJ5dGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJVc2VyQWNjZXNzTGV2ZWwiIHR5cGU9InhzOnVuc2lnbmVkQnl0ZSIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1pbmltdW1TYW1wbGluZ0lu +dGVydmFsIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJIaXN0b3JpemluZyIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIw +IiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkFjY2Vzc0xldmVsRXgiIHR5cGU9Inhz +OnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQog +ICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJWYXJpYWJsZU5vZGUiIHR5cGU9InRuczpW +YXJpYWJsZU5vZGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlZhcmlhYmxlVHlwZU5v +ZGUiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4 +dGVuc2lvbiBiYXNlPSJ0bnM6VHlwZU5vZGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFsdWUiIHR5cGU9InVhOlZhcmlhbnQiIG1pbk9jY3Vy +cz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhVHlwZSIgdHlwZT0idWE6 +Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlZhbHVlUmFuayIgdHlwZT0ieHM6aW50IiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQXJyYXlEaW1lbnNpb25zIiB0eXBlPSJ1YTpMaXN0 +T2ZVSW50MzIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iSXNBYnN0cmFjdCIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIw +IiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAg +PC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iVmFyaWFibGVUeXBlTm9kZSIgdHlwZT0idG5zOlZhcmlhYmxlVHlwZU5vZGUiIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlJlZmVyZW5jZVR5cGVOb2RlIj4NCiAgICA8eHM6Y29t +cGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5z +OlR5cGVOb2RlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50 +IG5hbWU9IklzQWJzdHJhY3QiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTeW1tZXRyaWMiIHR5cGU9InhzOmJvb2xlYW4iIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJbnZlcnNlTmFtZSIg +dHlwZT0idWE6TG9jYWxpemVkVGV4dCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6 +Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +IlJlZmVyZW5jZVR5cGVOb2RlIiB0eXBlPSJ0bnM6UmVmZXJlbmNlVHlwZU5vZGUiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1ldGhvZE5vZGUiPg0KICAgIDx4czpjb21wbGV4Q29udGVu +dCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6SW5zdGFuY2VO +b2RlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9 +IkV4ZWN1dGFibGUiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJVc2VyRXhlY3V0YWJsZSIgdHlwZT0ieHM6Ym9vbGVhbiIgbWlu +T2NjdXJzPSIwIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNp +b24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iTWV0aG9kTm9kZSIgdHlwZT0idG5zOk1ldGhvZE5vZGUiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9IlZpZXdOb2RlIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQg +bWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOkluc3RhbmNlTm9k +ZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJD +b250YWluc05vTG9vcHMiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFdmVudE5vdGlmaWVyIiB0eXBlPSJ4czp1bnNpZ25lZEJ5 +dGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6 +ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IlZpZXdOb2RlIiB0eXBlPSJ0bnM6Vmlld05vZGUiIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRhdGFUeXBlTm9kZSI+DQogICAgPHhzOmNvbXBsZXhD +b250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpUeXBl +Tm9kZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJJc0Fic3RyYWN0IiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVR5cGVEZWZpbml0aW9uIiB0eXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6 +c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50 +Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhVHlwZU5vZGUi +IHR5cGU9InRuczpEYXRhVHlwZU5vZGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlJl +ZmVyZW5jZU5vZGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IlJlZmVyZW5jZVR5cGVJZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNJbnZlcnNlIiB0eXBlPSJ4czpi +b29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUYXJnZXRJ +ZCIgdHlwZT0idWE6RXhwYW5kZWROb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iUmVmZXJlbmNlTm9kZSIgdHlwZT0idG5zOlJlZmVyZW5jZU5vZGUiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlJlZmVyZW5jZU5vZGUiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlZmVyZW5jZU5vZGUiIHR5cGU9InRuczpS +ZWZlcmVuY2VOb2RlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZSZWZlcmVuY2VOb2RlIiB0eXBlPSJ0bnM6TGlzdE9mUmVm +ZXJlbmNlTm9kZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iQXJndW1lbnQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ik5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFUeXBlIiB0eXBlPSJ1YTpOb2Rl +SWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJWYWx1ZVJhbmsiIHR5cGU9InhzOmludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iQXJyYXlEaW1lbnNpb25zIiB0eXBlPSJ1YTpMaXN0T2ZVSW50MzIiIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJE +ZXNjcmlwdGlvbiIgdHlwZT0idWE6TG9jYWxpemVkVGV4dCIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJBcmd1bWVudCIgdHlwZT0idG5zOkFyZ3VtZW50IiAvPg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZBcmd1bWVudCI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQXJndW1lbnQiIHR5cGU9InRuczpBcmd1bWVudCIgbWlu +T2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +TGlzdE9mQXJndW1lbnQiIHR5cGU9InRuczpMaXN0T2ZBcmd1bWVudCIgbmlsbGFibGU9InRydWUi +PjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRW51bVZhbHVlVHlwZSI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFsdWUiIHR5cGU9 +InhzOmxvbmciIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRpc3Bs +YXlOYW1lIiB0eXBlPSJ1YTpMb2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGVzY3JpcHRpb24iIHR5cGU9InVhOkxv +Y2FsaXplZFRleHQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRW51bVZh +bHVlVHlwZSIgdHlwZT0idG5zOkVudW1WYWx1ZVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZkVudW1WYWx1ZVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IkVudW1WYWx1ZVR5cGUiIHR5cGU9InRuczpFbnVtVmFsdWVUeXBlIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJMaXN0T2ZFbnVtVmFsdWVUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mRW51bVZhbHVlVHlwZSIgbmls +bGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRW51 +bUZpZWxkIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4 +czpleHRlbnNpb24gYmFzZT0idG5zOkVudW1WYWx1ZVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVu +Y2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0K +ICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRW51bUZpZWxkIiB0eXBlPSJ0bnM6RW51 +bUZpZWxkIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZFbnVtRmllbGQiPg0K +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkVudW1GaWVsZCIgdHlw +ZT0idG5zOkVudW1GaWVsZCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRW51bUZpZWxkIiB0eXBlPSJ0bnM6TGlzdE9mRW51 +bUZpZWxkIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJPcHRpb25TZXQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlZhbHVlIiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJWYWxpZEJpdHMiIHR5cGU9Inhz +OmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJPcHRp +b25TZXQiIHR5cGU9InRuczpPcHRpb25TZXQiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 +Ikxpc3RPZk9wdGlvblNldCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iT3B0aW9uU2V0IiB0eXBlPSJ0bnM6T3B0aW9uU2V0IiBtaW5PY2N1cnM9IjAiIG1heE9j +Y3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0K +ICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZPcHRpb25TZXQi +IHR5cGU9InRuczpMaXN0T2ZPcHRpb25TZXQiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+ +DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iTm9ybWFsaXplZFN0cmluZyIgdHlwZT0ieHM6c3RyaW5n +IiAvPg0KDQogIDx4czplbGVtZW50IG5hbWU9IkRlY2ltYWxTdHJpbmciIHR5cGU9InhzOnN0cmlu +ZyIgLz4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEdXJhdGlvblN0cmluZyIgdHlwZT0ieHM6c3Ry +aW5nIiAvPg0KDQogIDx4czplbGVtZW50IG5hbWU9IlRpbWVTdHJpbmciIHR5cGU9InhzOnN0cmlu +ZyIgLz4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRlU3RyaW5nIiB0eXBlPSJ4czpzdHJpbmci +IC8+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iRHVyYXRpb24iIHR5cGU9InhzOmRvdWJsZSIgLz4N +Cg0KICA8eHM6ZWxlbWVudCBuYW1lPSJVdGNUaW1lIiB0eXBlPSJ4czpkYXRlVGltZSIgLz4NCg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJUaW1lIiB0eXBlPSJ4czpzdHJpbmciIC8+DQoNCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iRGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIC8+DQoNCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTG9jYWxlSWQiIHR5cGU9InhzOnN0cmluZyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUg +bmFtZT0iVGltZVpvbmVEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iT2Zmc2V0IiB0eXBlPSJ4czpzaG9ydCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF5bGlnaHRTYXZpbmdJbk9mZnNldCIgdHlwZT0ieHM6Ym9v +bGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxl +eFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlRpbWVab25lRGF0YVR5cGUiIHR5cGU9InRuczpU +aW1lWm9uZURhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZUaW1l +Wm9uZURhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJUaW1lWm9uZURhdGFUeXBlIiB0eXBlPSJ0bnM6VGltZVpvbmVEYXRhVHlwZSIgbWluT2NjdXJz +PSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9m +VGltZVpvbmVEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZlRpbWVab25lRGF0YVR5cGUiIG5pbGxh +YmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iSW5kZXgiIHR5 +cGU9InhzOnVuc2lnbmVkSW50IiAvPg0KDQogIDx4czplbGVtZW50IG5hbWU9IkludGVnZXJJZCIg +dHlwZT0ieHM6dW5zaWduZWRJbnQiIC8+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5hbWU9IkFwcGxp +Y2F0aW9uVHlwZSI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAg +ICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlNlcnZlcl8wIiAvPg0KICAgICAgPHhzOmVudW1lcmF0 +aW9uIHZhbHVlPSJDbGllbnRfMSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQ2xp +ZW50QW5kU2VydmVyXzIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkRpc2NvdmVy +eVNlcnZlcl8zIiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iQXBwbGljYXRpb25UeXBlIiB0eXBlPSJ0bnM6QXBwbGljYXRp +b25UeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJBcHBsaWNhdGlvbkRlc2NyaXB0 +aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBcHBsaWNh +dGlvblVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHJvZHVjdFVyaSIgdHlwZT0ieHM6c3RyaW5nIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +QXBwbGljYXRpb25OYW1lIiB0eXBlPSJ1YTpMb2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQXBwbGljYXRpb25UeXBl +IiB0eXBlPSJ0bnM6QXBwbGljYXRpb25UeXBlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJHYXRld2F5U2VydmVyVXJpIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEaXNjb3Zl +cnlQcm9maWxlVXJpIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEaXNjb3ZlcnlVcmxzIiB0eXBlPSJ1YTpM +aXN0T2ZTdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQXBwbGlj +YXRpb25EZXNjcmlwdGlvbiIgdHlwZT0idG5zOkFwcGxpY2F0aW9uRGVzY3JpcHRpb24iIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkFwcGxpY2F0aW9uRGVzY3JpcHRpb24iPg0K +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkFwcGxpY2F0aW9uRGVz +Y3JpcHRpb24iIHR5cGU9InRuczpBcHBsaWNhdGlvbkRlc2NyaXB0aW9uIiBtaW5PY2N1cnM9IjAi +IG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVl +bmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZBcHBs +aWNhdGlvbkRlc2NyaXB0aW9uIiB0eXBlPSJ0bnM6TGlzdE9mQXBwbGljYXRpb25EZXNjcmlwdGlv +biIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iUmVxdWVzdEhlYWRlciI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iQXV0aGVudGljYXRpb25Ub2tlbiIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVGltZXN0YW1wIiB0 +eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iUmVxdWVzdEhhbmRsZSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJldHVybkRpYWdub3N0aWNzIiB0eXBlPSJ4czp1bnNp +Z25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQXVkaXRF +bnRyeUlkIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUaW1lb3V0SGludCIgdHlwZT0ieHM6dW5zaWduZWRJ +bnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkFkZGl0aW9uYWxI +ZWFkZXIiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0eXBlPSJ0bnM6UmVxdWVzdEhlYWRlciIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmVzcG9uc2VIZWFkZXIiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRpbWVzdGFtcCIgdHlwZT0ieHM6ZGF0ZVRp +bWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIYW5k +bGUiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJTZXJ2aWNlUmVzdWx0IiB0eXBlPSJ1YTpTdGF0dXNDb2RlIiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2aWNlRGlhZ25vc3RpY3MiIHR5cGU9 +InVhOkRpYWdub3N0aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RyaW5nVGFibGUiIHR5cGU9InVhOkxpc3RPZlN0cmluZyIg +bWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IkFkZGl0aW9uYWxIZWFkZXIiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNwb25zZUhlYWRlciIgdHlwZT0idG5zOlJlc3Bv +bnNlSGVhZGVyIiAvPg0KDQogIDx4czplbGVtZW50IG5hbWU9IlZlcnNpb25UaW1lIiB0eXBlPSJ4 +czp1bnNpZ25lZEludCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iU2VydmljZUZhdWx0 +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNwb25zZUhl +YWRlciIgdHlwZT0idG5zOlJlc3BvbnNlSGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IlNlcnZpY2VGYXVsdCIgdHlwZT0idG5zOlNlcnZpY2VGYXVsdCIgLz4NCg0K +ICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iU2Vzc2lvbmxlc3NJbnZva2VSZXF1ZXN0VHlwZSI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXJpc1ZlcnNpb24iIHR5 +cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJOYW1lc3BhY2VVcmlzIiB0eXBlPSJ1YTpMaXN0T2ZTdHJpbmciIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2ZXJVcmlzIiB0 +eXBlPSJ1YTpMaXN0T2ZTdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMb2NhbGVJZHMiIHR5cGU9InVhOkxpc3RPZlN0cmluZyIg +bWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IlNlcnZpY2VJZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJT +ZXNzaW9ubGVzc0ludm9rZVJlcXVlc3RUeXBlIiB0eXBlPSJ0bnM6U2Vzc2lvbmxlc3NJbnZva2VS +ZXF1ZXN0VHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iU2Vzc2lvbmxlc3NJbnZv +a2VSZXNwb25zZVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9Ik5hbWVzcGFjZVVyaXMiIHR5cGU9InVhOkxpc3RPZlN0cmluZyIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZlclVyaXMiIHR5 +cGU9InVhOkxpc3RPZlN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZpY2VJZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJTZXNzaW9ubGVzc0ludm9rZVJlc3BvbnNlVHlwZSIgdHlwZT0i +dG5zOlNlc3Npb25sZXNzSW52b2tlUmVzcG9uc2VUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJGaW5kU2VydmVyc1JlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVhZGVyIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +RW5kcG9pbnRVcmwiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkxvY2FsZUlkcyIgdHlwZT0idWE6TGlzdE9m +U3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iU2VydmVyVXJpcyIgdHlwZT0idWE6TGlzdE9mU3RyaW5nIiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5 +cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkZpbmRTZXJ2ZXJzUmVxdWVzdCIgdHlwZT0idG5zOkZp +bmRTZXJ2ZXJzUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRmluZFNlcnZl +cnNSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +UmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZlcnMiIHR5cGU9 +InRuczpMaXN0T2ZBcHBsaWNhdGlvbkRlc2NyaXB0aW9uIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9IkZpbmRTZXJ2ZXJzUmVzcG9uc2UiIHR5cGU9InRuczpGaW5kU2VydmVy +c1Jlc3BvbnNlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJTZXJ2ZXJPbk5ldHdvcmsi +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlY29yZElkIiB0 +eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iU2VydmVyTmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlzY292ZXJ5VXJsIiB0eXBlPSJ4 +czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJTZXJ2ZXJDYXBhYmlsaXRpZXMiIHR5cGU9InVhOkxpc3RPZlN0cmluZyIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2ZXJPbk5ldHdvcmsiIHR5cGU9 +InRuczpTZXJ2ZXJPbk5ldHdvcmsiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RP +ZlNlcnZlck9uTmV0d29yayI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iU2VydmVyT25OZXR3b3JrIiB0eXBlPSJ0bnM6U2VydmVyT25OZXR3b3JrIiBtaW5PY2N1 +cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0 +T2ZTZXJ2ZXJPbk5ldHdvcmsiIHR5cGU9InRuczpMaXN0T2ZTZXJ2ZXJPbk5ldHdvcmsiIG5pbGxh +YmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkZpbmRT +ZXJ2ZXJzT25OZXR3b3JrUmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RIZWFkZXIiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFy +dGluZ1JlY29yZElkIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4UmVjb3Jkc1RvUmV0dXJuIiB0eXBlPSJ4czp1bnNpZ25l +ZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyQ2Fw +YWJpbGl0eUZpbHRlciIgdHlwZT0idWE6TGlzdE9mU3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQog +IDx4czplbGVtZW50IG5hbWU9IkZpbmRTZXJ2ZXJzT25OZXR3b3JrUmVxdWVzdCIgdHlwZT0idG5z +OkZpbmRTZXJ2ZXJzT25OZXR3b3JrUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iRmluZFNlcnZlcnNPbk5ldHdvcmtSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhl +YWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9Ikxhc3RDb3VudGVyUmVzZXRUaW1lIiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVycyIgdHlwZT0idG5zOkxpc3RP +ZlNlcnZlck9uTmV0d29yayIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJG +aW5kU2VydmVyc09uTmV0d29ya1Jlc3BvbnNlIiB0eXBlPSJ0bnM6RmluZFNlcnZlcnNPbk5ldHdv +cmtSZXNwb25zZSIgLz4NCg0KICA8eHM6ZWxlbWVudCBuYW1lPSJBcHBsaWNhdGlvbkluc3RhbmNl +Q2VydGlmaWNhdGUiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgLz4NCg0KICA8eHM6c2ltcGxlVHlw +ZSAgbmFtZT0iTWVzc2FnZVNlY3VyaXR5TW9kZSI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9 +InhzOnN0cmluZyI+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkludmFsaWRfMCIgLz4N +CiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTm9uZV8xIiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJTaWduXzIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlNp +Z25BbmRFbmNyeXB0XzMiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94czpzaW1wbGVU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNZXNzYWdlU2VjdXJpdHlNb2RlIiB0eXBlPSJ0bnM6 +TWVzc2FnZVNlY3VyaXR5TW9kZSIgLz4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iVXNlclRv +a2VuVHlwZSI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICA8 +eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFub255bW91c18wIiAvPg0KICAgICAgPHhzOmVudW1lcmF0 +aW9uIHZhbHVlPSJVc2VyTmFtZV8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJD +ZXJ0aWZpY2F0ZV8yIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJJc3N1ZWRUb2tl +bl8zIiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iVXNlclRva2VuVHlwZSIgdHlwZT0idG5zOlVzZXJUb2tlblR5cGUiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlVzZXJUb2tlblBvbGljeSI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUG9saWN5SWQiIHR5cGU9InhzOnN0cmlu +ZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlRva2VuVHlwZSIgdHlwZT0idG5zOlVzZXJUb2tlblR5cGUiIG1pbk9jY3Vycz0iMCIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9Iklzc3VlZFRva2VuVHlwZSIgdHlwZT0ieHM6c3RyaW5n +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iSXNzdWVyRW5kcG9pbnRVcmwiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlY3VyaXR5UG9saWN5VXJp +IiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +VXNlclRva2VuUG9saWN5IiB0eXBlPSJ0bnM6VXNlclRva2VuUG9saWN5IiAvPg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZVc2VyVG9rZW5Qb2xpY3kiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVzZXJUb2tlblBvbGljeSIgdHlwZT0idG5zOlVz +ZXJUb2tlblBvbGljeSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVXNlclRva2VuUG9saWN5IiB0eXBlPSJ0bnM6TGlzdE9m +VXNlclRva2VuUG9saWN5IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJFbmRwb2ludERlc2NyaXB0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmRwb2ludFVybCIgdHlwZT0ieHM6c3RyaW5nIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +U2VydmVyIiB0eXBlPSJ0bnM6QXBwbGljYXRpb25EZXNjcmlwdGlvbiIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZlckNlcnRpZmlj +YXRlIiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZWN1cml0eU1vZGUiIHR5cGU9InRuczpNZXNz +YWdlU2VjdXJpdHlNb2RlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJTZWN1cml0eVBvbGljeVVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNlcklkZW50aXR5VG9rZW5z +IiB0eXBlPSJ0bnM6TGlzdE9mVXNlclRva2VuUG9saWN5IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNwb3J0UHJvZmlsZVVyaSIg +dHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iU2VjdXJpdHlMZXZlbCIgdHlwZT0ieHM6dW5zaWduZWRCeXRlIiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iRW5kcG9pbnREZXNjcmlwdGlvbiIgdHlwZT0idG5zOkVuZHBv +aW50RGVzY3JpcHRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkVuZHBv +aW50RGVzY3JpcHRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkVuZHBvaW50RGVzY3JpcHRpb24iIHR5cGU9InRuczpFbmRwb2ludERlc2NyaXB0aW9uIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJMaXN0T2ZFbmRwb2ludERlc2NyaXB0aW9uIiB0eXBlPSJ0bnM6TGlzdE9mRW5kcG9pbnREZXNj +cmlwdGlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iR2V0RW5kcG9pbnRzUmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RIZWFkZXIi +IG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJFbmRwb2ludFVybCIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTG9jYWxlSWRzIiB0eXBlPSJ1YTpMaXN0 +T2ZTdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJQcm9maWxlVXJpcyIgdHlwZT0idWE6TGlzdE9mU3RyaW5nIiBtaW5PY2N1cnM9 +IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxl +eFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkdldEVuZHBvaW50c1JlcXVlc3QiIHR5cGU9InRu +czpHZXRFbmRwb2ludHNSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJHZXRF +bmRwb2ludHNSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuZHBvaW50 +cyIgdHlwZT0idG5zOkxpc3RPZkVuZHBvaW50RGVzY3JpcHRpb24iIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iR2V0RW5kcG9pbnRzUmVzcG9uc2UiIHR5cGU9InRuczpHZXRF +bmRwb2ludHNSZXNwb25zZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmVnaXN0ZXJl +ZFNlcnZlciI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2Vy +dmVyVXJpIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQcm9kdWN0VXJpIiB0eXBlPSJ4czpzdHJpbmciIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJT +ZXJ2ZXJOYW1lcyIgdHlwZT0idWE6TGlzdE9mTG9jYWxpemVkVGV4dCIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZlclR5cGUiIHR5 +cGU9InRuczpBcHBsaWNhdGlvblR5cGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkdhdGV3YXlTZXJ2ZXJVcmkiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRpc2NvdmVyeVVy +bHMiIHR5cGU9InVhOkxpc3RPZlN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlbWFwaG9yZUZpbGVQYXRoIiB0eXBlPSJ4czpz +dHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJJc09ubGluZSIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAg +IDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +IlJlZ2lzdGVyZWRTZXJ2ZXIiIHR5cGU9InRuczpSZWdpc3RlcmVkU2VydmVyIiAvPg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZSZWdpc3RlcmVkU2VydmVyIj4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZWdpc3RlcmVkU2VydmVyIiB0eXBlPSJ0 +bnM6UmVnaXN0ZXJlZFNlcnZlciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mUmVnaXN0ZXJlZFNlcnZlciIgdHlwZT0idG5z +Okxpc3RPZlJlZ2lzdGVyZWRTZXJ2ZXIiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlJlZ2lzdGVyU2VydmVyUmVxdWVzdCI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0i +dG5zOlJlcXVlc3RIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2ZXIiIHR5cGU9InRuczpSZWdpc3RlcmVkU2VydmVyIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlZ2lzdGVyU2VydmVyUmVxdWVz +dCIgdHlwZT0idG5zOlJlZ2lzdGVyU2VydmVyUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iUmVnaXN0ZXJTZXJ2ZXJSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhl +YWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNl +Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJSZWdpc3RlclNlcnZl +clJlc3BvbnNlIiB0eXBlPSJ0bnM6UmVnaXN0ZXJTZXJ2ZXJSZXNwb25zZSIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iRGlzY292ZXJ5Q29uZmlndXJhdGlvbiI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IkRpc2NvdmVyeUNvbmZpZ3VyYXRpb24iIHR5cGU9InRuczpEaXNjb3ZlcnlDb25m +aWd1cmF0aW9uIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJNZG5zRGlzY292ZXJ5Q29u +ZmlndXJhdGlvbiI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAg +ICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpEaXNjb3ZlcnlDb25maWd1cmF0aW9uIj4NCiAgICAg +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1kbnNTZXJ2ZXJO +YW1lIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyQ2FwYWJpbGl0aWVzIiB0eXBlPSJ1YTpM +aXN0T2ZTdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwv +eHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250 +ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNZG5zRGlzY292 +ZXJ5Q29uZmlndXJhdGlvbiIgdHlwZT0idG5zOk1kbnNEaXNjb3ZlcnlDb25maWd1cmF0aW9uIiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJSZWdpc3RlclNlcnZlcjJSZXF1ZXN0Ij4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0 +eXBlPSJ0bnM6UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZlciIgdHlwZT0idG5zOlJlZ2lzdGVyZWRTZXJ2 +ZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJEaXNjb3ZlcnlDb25maWd1cmF0aW9uIiB0eXBlPSJ1YTpMaXN0T2ZFeHRlbnNpb25PYmpl +Y3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUmVnaXN0ZXJTZXJ2ZXIy +UmVxdWVzdCIgdHlwZT0idG5zOlJlZ2lzdGVyU2VydmVyMlJlcXVlc3QiIC8+DQoNCiAgPHhzOmNv +bXBsZXhUeXBlIG5hbWU9IlJlZ2lzdGVyU2VydmVyMlJlc3BvbnNlIj4NCiAgICA8eHM6c2VxdWVu +Y2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNwb25zZUhlYWRlciIgdHlwZT0idG5zOlJl +c3BvbnNlSGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iQ29uZmlndXJhdGlvblJlc3VsdHMiIHR5cGU9InVhOkxpc3RPZlN0YXR1 +c0NvZGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJEaWFnbm9zdGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJbmZvIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlZ2lzdGVyU2VydmVyMlJlc3Bv +bnNlIiB0eXBlPSJ0bnM6UmVnaXN0ZXJTZXJ2ZXIyUmVzcG9uc2UiIC8+DQoNCiAgPHhzOnNpbXBs +ZVR5cGUgIG5hbWU9IlNlY3VyaXR5VG9rZW5SZXF1ZXN0VHlwZSI+DQogICAgPHhzOnJlc3RyaWN0 +aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Iklzc3Vl +XzAiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlJlbmV3XzEiIC8+DQogICAgPC94 +czpyZXN0cmljdGlvbj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJT +ZWN1cml0eVRva2VuUmVxdWVzdFR5cGUiIHR5cGU9InRuczpTZWN1cml0eVRva2VuUmVxdWVzdFR5 +cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNoYW5uZWxTZWN1cml0eVRva2VuIj4N +CiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDaGFubmVsSWQiIHR5 +cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJUb2tlbklkIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iQ3JlYXRlZEF0IiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmV2aXNlZExpZmV0aW1lIiB0eXBl +PSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkNoYW5uZWxTZWN1cml0eVRv +a2VuIiB0eXBlPSJ0bnM6Q2hhbm5lbFNlY3VyaXR5VG9rZW4iIC8+DQoNCiAgPHhzOmNvbXBsZXhU +eXBlIG5hbWU9Ik9wZW5TZWN1cmVDaGFubmVsUmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RI +ZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJDbGllbnRQcm90b2NvbFZlcnNpb24iIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0VHlwZSIgdHlwZT0i +dG5zOlNlY3VyaXR5VG9rZW5SZXF1ZXN0VHlwZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iU2VjdXJpdHlNb2RlIiB0eXBlPSJ0bnM6TWVzc2FnZVNlY3VyaXR5TW9k +ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ2xpZW50Tm9uY2Ui +IHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RlZExpZmV0aW1lIiB0eXBlPSJ4czp1bnNp +Z25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29t +cGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ik9wZW5TZWN1cmVDaGFubmVsUmVxdWVzdCIg +dHlwZT0idG5zOk9wZW5TZWN1cmVDaGFubmVsUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iT3BlblNlY3VyZUNoYW5uZWxSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25z +ZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlNlcnZlclByb3RvY29sVmVyc2lvbiIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlY3VyaXR5VG9rZW4iIHR5 +cGU9InRuczpDaGFubmVsU2VjdXJpdHlUb2tlbiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZlck5vbmNlIiB0eXBlPSJ4czpiYXNl +NjRCaW5hcnkiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iT3BlblNlY3Vy +ZUNoYW5uZWxSZXNwb25zZSIgdHlwZT0idG5zOk9wZW5TZWN1cmVDaGFubmVsUmVzcG9uc2UiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNsb3NlU2VjdXJlQ2hhbm5lbFJlcXVlc3QiPg0K +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIi +IHR5cGU9InRuczpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9IkNsb3NlU2VjdXJlQ2hhbm5lbFJlcXVlc3QiIHR5cGU9InRuczpDbG9zZVNlY3VyZUNo +YW5uZWxSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJDbG9zZVNlY3VyZUNo +YW5uZWxSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJDbG9zZVNlY3VyZUNoYW5uZWxSZXNwb25zZSIgdHlw +ZT0idG5zOkNsb3NlU2VjdXJlQ2hhbm5lbFJlc3BvbnNlIiAvPg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJTaWduZWRTb2Z0d2FyZUNlcnRpZmljYXRlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDZXJ0aWZpY2F0ZURhdGEiIHR5cGU9InhzOmJhc2U2NEJp +bmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlNpZ25hdHVyZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IlNpZ25lZFNvZnR3YXJlQ2VydGlmaWNhdGUiIHR5cGU9InRu +czpTaWduZWRTb2Z0d2FyZUNlcnRpZmljYXRlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1l +PSJMaXN0T2ZTaWduZWRTb2Z0d2FyZUNlcnRpZmljYXRlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTaWduZWRTb2Z0d2FyZUNlcnRpZmljYXRlIiB0eXBlPSJ0 +bnM6U2lnbmVkU29mdHdhcmVDZXJ0aWZpY2F0ZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu +Ym91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mU2lnbmVkU29mdHdhcmVDZXJ0 +aWZpY2F0ZSIgdHlwZT0idG5zOkxpc3RPZlNpZ25lZFNvZnR3YXJlQ2VydGlmaWNhdGUiIG5pbGxh +YmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmVsZW1lbnQgbmFtZT0iU2Vzc2lvbkF1 +dGhlbnRpY2F0aW9uVG9rZW4iIHR5cGU9InVhOk5vZGVJZCIgLz4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iU2lnbmF0dXJlRGF0YSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iQWxnb3JpdGhtIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTaWduYXR1cmUiIHR5cGU9 +InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJT +aWduYXR1cmVEYXRhIiB0eXBlPSJ0bnM6U2lnbmF0dXJlRGF0YSIgLz4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iQ3JlYXRlU2Vzc2lvblJlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVh +ZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iQ2xpZW50RGVzY3JpcHRpb24iIHR5cGU9InRuczpBcHBsaWNhdGlvbkRlc2NyaXB0aW9u +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iU2VydmVyVXJpIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmRwb2ludFVybCIgdHlwZT0ieHM6c3Ry +aW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iU2Vzc2lvbk5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNsaWVudE5vbmNlIiB0eXBlPSJ4 +czpiYXNlNjRCaW5hcnkiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJDbGllbnRDZXJ0aWZpY2F0ZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5 +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iUmVxdWVzdGVkU2Vzc2lvblRpbWVvdXQiIHR5cGU9InhzOmRvdWJsZSIgbWluT2NjdXJzPSIw +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4UmVzcG9uc2VNZXNzYWdlU2l6ZSIgdHlw +ZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0K +ICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJDcmVhdGVTZXNzaW9uUmVx +dWVzdCIgdHlwZT0idG5zOkNyZWF0ZVNlc3Npb25SZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJDcmVhdGVTZXNzaW9uUmVzcG9uc2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VI +ZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJTZXNzaW9uSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkF1dGhlbnRpY2F0aW9uVG9rZW4i +IHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlJldmlzZWRTZXNzaW9uVGltZW91dCIgdHlwZT0ieHM6ZG91Ymxl +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2ZXJOb25jZSIg +dHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyQ2VydGlmaWNhdGUiIHR5cGU9InhzOmJhc2U2 +NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlNlcnZlckVuZHBvaW50cyIgdHlwZT0idG5zOkxpc3RPZkVuZHBvaW50RGVzY3Jp +cHRpb24iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJTZXJ2ZXJTb2Z0d2FyZUNlcnRpZmljYXRlcyIgdHlwZT0idG5zOkxpc3RPZlNpZ25l +ZFNvZnR3YXJlQ2VydGlmaWNhdGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2ZXJTaWduYXR1cmUiIHR5cGU9InRuczpTaWduYXR1 +cmVEYXRhIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iTWF4UmVxdWVzdE1lc3NhZ2VTaXplIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWlu +T2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQog +IDx4czplbGVtZW50IG5hbWU9IkNyZWF0ZVNlc3Npb25SZXNwb25zZSIgdHlwZT0idG5zOkNyZWF0 +ZVNlc3Npb25SZXNwb25zZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVXNlcklkZW50 +aXR5VG9rZW4iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlBv +bGljeUlkIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iVXNlcklkZW50aXR5VG9rZW4iIHR5cGU9InRuczpVc2VySWRlbnRpdHlUb2tlbiIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQW5vbnltb3VzSWRlbnRpdHlUb2tlbiI+DQogICAg +PHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJh +c2U9InRuczpVc2VySWRlbnRpdHlUb2tlbiI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +ICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxl +eENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkFub255 +bW91c0lkZW50aXR5VG9rZW4iIHR5cGU9InRuczpBbm9ueW1vdXNJZGVudGl0eVRva2VuIiAvPg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJVc2VyTmFtZUlkZW50aXR5VG9rZW4iPg0KICAgIDx4 +czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNl +PSJ0bnM6VXNlcklkZW50aXR5VG9rZW4iPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNlck5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQYXNz +d29yZCIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuY3J5cHRpb25BbGdvcml0aG0iIHR5 +cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAg +PC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENv +bnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlVzZXJOYW1l +SWRlbnRpdHlUb2tlbiIgdHlwZT0idG5zOlVzZXJOYW1lSWRlbnRpdHlUb2tlbiIgLz4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iWDUwOUlkZW50aXR5VG9rZW4iPg0KICAgIDx4czpjb21wbGV4 +Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6VXNl +cklkZW50aXR5VG9rZW4iPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iQ2VydGlmaWNhdGVEYXRhIiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAg +ICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJYNTA5SWRlbnRpdHlUb2tlbiIgdHlwZT0idG5z +Olg1MDlJZGVudGl0eVRva2VuIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJJc3N1ZWRJ +ZGVudGl0eVRva2VuIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAg +ICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOlVzZXJJZGVudGl0eVRva2VuIj4NCiAgICAgICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlRva2VuRGF0YSIgdHlw +ZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuY3J5cHRpb25BbGdvcml0aG0iIHR5cGU9InhzOnN0 +cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1 +ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Iklzc3VlZElkZW50aXR5VG9r +ZW4iIHR5cGU9InRuczpJc3N1ZWRJZGVudGl0eVRva2VuIiAvPg0KDQogIDx4czplbGVtZW50IG5h +bWU9IlJzYUVuY3J5cHRlZFNlY3JldCIgdHlwZT0idWE6VmFyaWFudCIgLz4NCg0KICA8eHM6ZWxl +bWVudCBuYW1lPSJFY2NFbmNyeXB0ZWRTZWNyZXQiIHR5cGU9InVhOlZhcmlhbnQiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9IkFjdGl2YXRlU2Vzc2lvblJlcXVlc3QiPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRu +czpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iQ2xpZW50U2lnbmF0dXJlIiB0eXBlPSJ0bnM6U2lnbmF0dXJlRGF0 +YSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkNsaWVudFNvZnR3YXJlQ2VydGlmaWNhdGVzIiB0eXBlPSJ0bnM6TGlzdE9mU2lnbmVkU29m +dHdhcmVDZXJ0aWZpY2F0ZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IkxvY2FsZUlkcyIgdHlwZT0idWE6TGlzdE9mU3RyaW5nIiBtaW5P +Y2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNl +cklkZW50aXR5VG9rZW4iIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVzZXJUb2tlblNpZ25h +dHVyZSIgdHlwZT0idG5zOlNpZ25hdHVyZURhdGEiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iQWN0aXZhdGVTZXNzaW9uUmVxdWVzdCIgdHlwZT0idG5zOkFjdGl2YXRlU2Vz +c2lvblJlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkFjdGl2YXRlU2Vzc2lv +blJlc3BvbnNlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJS +ZXNwb25zZUhlYWRlciIgdHlwZT0idG5zOlJlc3BvbnNlSGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyTm9uY2UiIHR5 +cGU9InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3VsdHMiIHR5cGU9InVhOkxpc3RPZlN0YXR1c0NvZGUi +IG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJEaWFnbm9zdGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJbmZvIiBtaW5PY2N1 +cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29t +cGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkFjdGl2YXRlU2Vzc2lvblJlc3BvbnNlIiB0 +eXBlPSJ0bnM6QWN0aXZhdGVTZXNzaW9uUmVzcG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9IkNsb3NlU2Vzc2lvblJlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVhZGVyIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +RGVsZXRlU3Vic2NyaXB0aW9ucyIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9IkNsb3NlU2Vzc2lvblJlcXVlc3QiIHR5cGU9InRuczpDbG9zZVNlc3Npb25SZXF1ZXN0IiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJDbG9zZVNlc3Npb25SZXNwb25zZSI+DQogICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5 +cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJDbG9zZVNlc3Npb25SZXNwb25zZSIgdHlwZT0idG5zOkNsb3NlU2Vzc2lvblJlc3BvbnNl +IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJDYW5jZWxSZXF1ZXN0Ij4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0eXBlPSJ0 +bnM6UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIYW5kbGUiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iQ2FuY2VsUmVxdWVzdCIgdHlwZT0idG5zOkNhbmNlbFJlcXVl +c3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNhbmNlbFJlc3BvbnNlIj4NCiAgICA8 +eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNwb25zZUhlYWRlciIgdHlw +ZT0idG5zOlJlc3BvbnNlSGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ2FuY2VsQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50 +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQ2FuY2VsUmVzcG9uc2UiIHR5cGU9InRuczpDYW5jZWxS +ZXNwb25zZSIgLz4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iTm9kZUF0dHJpYnV0ZXNNYXNr +Ij4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgIDx4czplbnVt +ZXJhdGlvbiB2YWx1ZT0iTm9uZV8wIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJB +Y2Nlc3NMZXZlbF8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBcnJheURpbWVu +c2lvbnNfMiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQnJvd3NlTmFtZV80IiAv +Pg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJDb250YWluc05vTG9vcHNfOCIgLz4NCiAg +ICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRGF0YVR5cGVfMTYiIC8+DQogICAgICA8eHM6ZW51 +bWVyYXRpb24gdmFsdWU9IkRlc2NyaXB0aW9uXzMyIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9u +IHZhbHVlPSJEaXNwbGF5TmFtZV82NCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0i +RXZlbnROb3RpZmllcl8xMjgiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkV4ZWN1 +dGFibGVfMjU2IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJIaXN0b3JpemluZ181 +MTIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkludmVyc2VOYW1lXzEwMjQiIC8+ +DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IklzQWJzdHJhY3RfMjA0OCIgLz4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTWluaW11bVNhbXBsaW5nSW50ZXJ2YWxfNDA5NiIgLz4N +CiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTm9kZUNsYXNzXzgxOTIiIC8+DQogICAgICA8 +eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik5vZGVJZF8xNjM4NCIgLz4NCiAgICAgIDx4czplbnVtZXJh +dGlvbiB2YWx1ZT0iU3ltbWV0cmljXzMyNzY4IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZh +bHVlPSJVc2VyQWNjZXNzTGV2ZWxfNjU1MzYiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFs +dWU9IlVzZXJFeGVjdXRhYmxlXzEzMTA3MiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1 +ZT0iVXNlcldyaXRlTWFza18yNjIxNDQiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9 +IlZhbHVlUmFua181MjQyODgiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IldyaXRl +TWFza18xMDQ4NTc2IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJWYWx1ZV8yMDk3 +MTUyIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJEYXRhVHlwZURlZmluaXRpb25f +NDE5NDMwNCIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iUm9sZVBlcm1pc3Npb25z +XzgzODg2MDgiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFjY2Vzc1Jlc3RyaWN0 +aW9uc18xNjc3NzIxNiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQWxsXzMzNTU0 +NDMxIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJCYXNlTm9kZV8yNjUwMTIyMCIg +Lz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iT2JqZWN0XzI2NTAxMzQ4IiAvPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJPYmplY3RUeXBlXzI2NTAzMjY4IiAvPg0KICAgICAg +PHhzOmVudW1lcmF0aW9uIHZhbHVlPSJWYXJpYWJsZV8yNjU3MTM4MyIgLz4NCiAgICAgIDx4czpl +bnVtZXJhdGlvbiB2YWx1ZT0iVmFyaWFibGVUeXBlXzI4NjAwNDM4IiAvPg0KICAgICAgPHhzOmVu +dW1lcmF0aW9uIHZhbHVlPSJNZXRob2RfMjY2MzI1NDgiIC8+DQogICAgICA8eHM6ZW51bWVyYXRp +b24gdmFsdWU9IlJlZmVyZW5jZVR5cGVfMjY1MzcwNjAiIC8+DQogICAgICA8eHM6ZW51bWVyYXRp +b24gdmFsdWU9IlZpZXdfMjY1MDEzNTYiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94 +czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJOb2RlQXR0cmlidXRlc01hc2siIHR5 +cGU9InRuczpOb2RlQXR0cmlidXRlc01hc2siIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 +Ik5vZGVBdHRyaWJ1dGVzIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJTcGVjaWZpZWRBdHRyaWJ1dGVzIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlzcGxheU5hbWUiIHR5cGU9InVhOkxv +Y2FsaXplZFRleHQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJEZXNjcmlwdGlvbiIgdHlwZT0idWE6TG9jYWxpemVkVGV4dCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IldyaXRl +TWFzayIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlVzZXJXcml0ZU1hc2siIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iTm9kZUF0dHJpYnV0ZXMiIHR5cGU9InRuczpOb2RlQXR0cmlidXRlcyIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iT2JqZWN0QXR0cmlidXRlcyI+DQogICAgPHhz +OmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9 +InRuczpOb2RlQXR0cmlidXRlcyI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJFdmVudE5vdGlmaWVyIiB0eXBlPSJ4czp1bnNpZ25lZEJ5dGUiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5z +aW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9Ik9iamVjdEF0dHJpYnV0ZXMiIHR5cGU9InRuczpPYmplY3RBdHRyaWJ1 +dGVzIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJWYXJpYWJsZUF0dHJpYnV0ZXMiPg0K +ICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lv +biBiYXNlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFsdWUiIHR5cGU9InVhOlZhcmlhbnQiIG1pbk9jY3Vy +cz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhVHlwZSIgdHlwZT0idWE6 +Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlZhbHVlUmFuayIgdHlwZT0ieHM6aW50IiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQXJyYXlEaW1lbnNpb25zIiB0eXBlPSJ1YTpMaXN0 +T2ZVSW50MzIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iQWNjZXNzTGV2ZWwiIHR5cGU9InhzOnVuc2lnbmVkQnl0ZSIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlVzZXJBY2Nlc3NMZXZlbCIg +dHlwZT0ieHM6dW5zaWduZWRCeXRlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iTWluaW11bVNhbXBsaW5nSW50ZXJ2YWwiIHR5cGU9InhzOmRvdWJsZSIgbWlu +T2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ikhpc3Rvcml6aW5nIiB0 +eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+ +DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJWYXJpYWJsZUF0dHJpYnV0ZXMiIHR5 +cGU9InRuczpWYXJpYWJsZUF0dHJpYnV0ZXMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 +Ik1ldGhvZEF0dHJpYnV0ZXMiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2Ui +Pg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiPg0KICAgICAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhlY3V0YWJsZSIg +dHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlVzZXJFeGVjdXRhYmxlIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hz +OmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJNZXRob2RBdHRyaWJ1dGVzIiB0eXBlPSJ0bnM6TWV0aG9kQXR0cmlidXRlcyIgLz4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iT2JqZWN0VHlwZUF0dHJpYnV0ZXMiPg0KICAgIDx4czpjb21w +bGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6 +Tm9kZUF0dHJpYnV0ZXMiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iSXNBYnN0cmFjdCIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAv +Pg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94 +czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iT2JqZWN0VHlwZUF0dHJpYnV0ZXMiIHR5cGU9InRuczpPYmplY3RUeXBlQXR0cmlidXRlcyIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVmFyaWFibGVUeXBlQXR0cmlidXRlcyI+DQog +ICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9u +IGJhc2U9InRuczpOb2RlQXR0cmlidXRlcyI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJWYWx1ZSIgdHlwZT0idWE6VmFyaWFudCIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFUeXBlIiB0eXBlPSJ1YTpO +b2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iVmFsdWVSYW5rIiB0eXBlPSJ4czppbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBcnJheURpbWVuc2lvbnMiIHR5cGU9InVhOkxpc3RP +ZlVJbnQzMiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJJc0Fic3RyYWN0IiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAi +IC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8 +L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJWYXJpYWJsZVR5cGVBdHRyaWJ1dGVzIiB0eXBlPSJ0bnM6VmFyaWFibGVUeXBlQXR0cmli +dXRlcyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmVmZXJlbmNlVHlwZUF0dHJpYnV0 +ZXMiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4 +dGVuc2lvbiBiYXNlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNBYnN0cmFjdCIgdHlwZT0ieHM6Ym9vbGVh +biIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlN5bW1ldHJp +YyIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkludmVyc2VOYW1lIiB0eXBlPSJ1YTpMb2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9 +IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94 +czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUmVmZXJlbmNlVHlwZUF0dHJpYnV0ZXMiIHR5cGU9InRu +czpSZWZlcmVuY2VUeXBlQXR0cmlidXRlcyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i +RGF0YVR5cGVBdHRyaWJ1dGVzIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNl +Ij4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOk5vZGVBdHRyaWJ1dGVzIj4NCiAgICAg +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IklzQWJzdHJhY3Qi +IHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5j +ZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkRhdGFUeXBlQXR0cmlidXRlcyIg +dHlwZT0idG5zOkRhdGFUeXBlQXR0cmlidXRlcyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iVmlld0F0dHJpYnV0ZXMiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2Ui +Pg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6Tm9kZUF0dHJpYnV0ZXMiPg0KICAgICAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ29udGFpbnNOb0xv +b3BzIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iRXZlbnROb3RpZmllciIgdHlwZT0ieHM6dW5zaWduZWRCeXRlIiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4N +CiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxl +bWVudCBuYW1lPSJWaWV3QXR0cmlidXRlcyIgdHlwZT0idG5zOlZpZXdBdHRyaWJ1dGVzIiAvPg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJHZW5lcmljQXR0cmlidXRlVmFsdWUiPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkF0dHJpYnV0ZUlkIiB0eXBlPSJ4 +czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +VmFsdWUiIHR5cGU9InVhOlZhcmlhbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNlcXVl +bmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJHZW5lcmljQXR0 +cmlidXRlVmFsdWUiIHR5cGU9InRuczpHZW5lcmljQXR0cmlidXRlVmFsdWUiIC8+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkdlbmVyaWNBdHRyaWJ1dGVWYWx1ZSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iR2VuZXJpY0F0dHJpYnV0ZVZhbHVl +IiB0eXBlPSJ0bnM6R2VuZXJpY0F0dHJpYnV0ZVZhbHVlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vy +cz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8 +L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZHZW5lcmljQXR0cmli +dXRlVmFsdWUiIHR5cGU9InRuczpMaXN0T2ZHZW5lcmljQXR0cmlidXRlVmFsdWUiIG5pbGxhYmxl +PSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkdlbmVyaWNB +dHRyaWJ1dGVzIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAg +IDx4czpleHRlbnNpb24gYmFzZT0idG5zOk5vZGVBdHRyaWJ1dGVzIj4NCiAgICAgICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkF0dHJpYnV0ZVZhbHVlcyIgdHlw +ZT0idG5zOkxpc3RPZkdlbmVyaWNBdHRyaWJ1dGVWYWx1ZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9u +Pg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IkdlbmVyaWNBdHRyaWJ1dGVzIiB0eXBlPSJ0bnM6R2VuZXJpY0F0dHJpYnV0 +ZXMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkFkZE5vZGVzSXRlbSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUGFyZW50Tm9kZUlkIiB0eXBlPSJ1 +YTpFeHBhbmRlZE5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlJlZmVyZW5jZVR5cGVJZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5P +Y2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVx +dWVzdGVkTmV3Tm9kZUlkIiB0eXBlPSJ1YTpFeHBhbmRlZE5vZGVJZCIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJyb3dzZU5hbWUiIHR5 +cGU9InVhOlF1YWxpZmllZE5hbWUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOb2RlQ2xhc3MiIHR5cGU9InRuczpOb2RlQ2xhc3MiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGVBdHRyaWJ1dGVzIiB0 +eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUeXBlRGVmaW5pdGlvbiIgdHlwZT0idWE6RXhwYW5k +ZWROb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQWRkTm9kZXNJ +dGVtIiB0eXBlPSJ0bnM6QWRkTm9kZXNJdGVtIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1l +PSJMaXN0T2ZBZGROb2Rlc0l0ZW0iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkFkZE5vZGVzSXRlbSIgdHlwZT0idG5zOkFkZE5vZGVzSXRlbSIgbWluT2NjdXJz +PSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9m +QWRkTm9kZXNJdGVtIiB0eXBlPSJ0bnM6TGlzdE9mQWRkTm9kZXNJdGVtIiBuaWxsYWJsZT0idHJ1 +ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJBZGROb2Rlc1Jlc3Vs +dCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhdHVzQ29k +ZSIgdHlwZT0idWE6U3RhdHVzQ29kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iQWRkZWROb2RlSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJBZGROb2Rlc1Jlc3VsdCIgdHlwZT0idG5zOkFkZE5vZGVzUmVz +dWx0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZBZGROb2Rlc1Jlc3VsdCI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQWRkTm9kZXNSZXN1 +bHQiIHR5cGU9InRuczpBZGROb2Rlc1Jlc3VsdCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu +Ym91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mQWRkTm9kZXNSZXN1bHQiIHR5 +cGU9InRuczpMaXN0T2ZBZGROb2Rlc1Jlc3VsdCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVu +dD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQWRkTm9kZXNSZXF1ZXN0Ij4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0eXBlPSJ0 +bnM6UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9Ik5vZGVzVG9BZGQiIHR5cGU9InRuczpMaXN0T2ZBZGROb2Rlc0l0 +ZW0iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQWRkTm9kZXNSZXF1ZXN0 +IiB0eXBlPSJ0bnM6QWRkTm9kZXNSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1l +PSJBZGROb2Rlc1Jlc3BvbnNlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJSZXNwb25zZUhlYWRlciIgdHlwZT0idG5zOlJlc3BvbnNlSGVhZGVyIiBtaW5PY2N1 +cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzdWx0 +cyIgdHlwZT0idG5zOkxpc3RPZkFkZE5vZGVzUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0luZm9zIiB0eXBl +PSJ1YTpMaXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVu +dCBuYW1lPSJBZGROb2Rlc1Jlc3BvbnNlIiB0eXBlPSJ0bnM6QWRkTm9kZXNSZXNwb25zZSIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQWRkUmVmZXJlbmNlc0l0ZW0iPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNvdXJjZU5vZGVJZCIgdHlwZT0idWE6 +Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iUmVmZXJlbmNlVHlwZUlkIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJc0ZvcndhcmQiIHR5 +cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IlRhcmdldFNlcnZlclVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVGFyZ2V0Tm9kZUlkIiB0eXBlPSJ1 +YTpFeHBhbmRlZE5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlRhcmdldE5vZGVDbGFzcyIgdHlwZT0idG5zOk5vZGVDbGFzcyIg +bWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IkFkZFJlZmVyZW5jZXNJdGVtIiB0eXBlPSJ0bnM6QWRkUmVm +ZXJlbmNlc0l0ZW0iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkFkZFJlZmVy +ZW5jZXNJdGVtIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJB +ZGRSZWZlcmVuY2VzSXRlbSIgdHlwZT0idG5zOkFkZFJlZmVyZW5jZXNJdGVtIiBtaW5PY2N1cnM9 +IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNl +cXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZB +ZGRSZWZlcmVuY2VzSXRlbSIgdHlwZT0idG5zOkxpc3RPZkFkZFJlZmVyZW5jZXNJdGVtIiBuaWxs +YWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJBZGRS +ZWZlcmVuY2VzUmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RIZWFkZXIiIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZWZlcmVuY2Vz +VG9BZGQiIHR5cGU9InRuczpMaXN0T2ZBZGRSZWZlcmVuY2VzSXRlbSIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJBZGRSZWZlcmVuY2VzUmVxdWVzdCIgdHlwZT0idG5zOkFk +ZFJlZmVyZW5jZXNSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJBZGRSZWZl +cmVuY2VzUmVzcG9uc2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlJlc3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0 +eXBlPSJ1YTpMaXN0T2ZTdGF0dXNDb2RlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0luZm9zIiB0eXBlPSJ1YTpMaXN0 +T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJB +ZGRSZWZlcmVuY2VzUmVzcG9uc2UiIHR5cGU9InRuczpBZGRSZWZlcmVuY2VzUmVzcG9uc2UiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRlbGV0ZU5vZGVzSXRlbSI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTm9kZUlkIiB0eXBlPSJ1YTpOb2RlSWQi +IG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJEZWxldGVUYXJnZXRSZWZlcmVuY2VzIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAi +IC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iRGVsZXRlTm9kZXNJdGVtIiB0eXBlPSJ0bnM6RGVsZXRlTm9kZXNJdGVtIiAvPg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZEZWxldGVOb2Rlc0l0ZW0iPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRlbGV0ZU5vZGVzSXRlbSIgdHlw +ZT0idG5zOkRlbGV0ZU5vZGVzSXRlbSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRl +ZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4 +VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRGVsZXRlTm9kZXNJdGVtIiB0eXBlPSJ0 +bnM6TGlzdE9mRGVsZXRlTm9kZXNJdGVtIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0K +DQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZWxldGVOb2Rlc1JlcXVlc3QiPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRu +czpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iTm9kZXNUb0RlbGV0ZSIgdHlwZT0idG5zOkxpc3RPZkRlbGV0ZU5v +ZGVzSXRlbSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVl +bmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEZWxldGVOb2Rl +c1JlcXVlc3QiIHR5cGU9InRuczpEZWxldGVOb2Rlc1JlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9IkRlbGV0ZU5vZGVzUmVzcG9uc2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VI +ZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ1YTpMaXN0T2ZTdGF0dXNDb2RlIiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0lu +Zm9zIiB0eXBlPSJ1YTpMaXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJEZWxldGVOb2Rlc1Jlc3BvbnNlIiB0eXBlPSJ0bnM6RGVsZXRlTm9k +ZXNSZXNwb25zZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGVsZXRlUmVmZXJlbmNl +c0l0ZW0iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNvdXJj +ZU5vZGVJZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVmZXJlbmNlVHlwZUlkIiB0eXBlPSJ1YTpOb2Rl +SWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJJc0ZvcndhcmQiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlRhcmdldE5vZGVJZCIgdHlwZT0idWE6RXhwYW5kZWROb2RlSWQi +IG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJEZWxldGVCaWRpcmVjdGlvbmFsIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iRGVsZXRlUmVmZXJlbmNlc0l0ZW0iIHR5cGU9InRuczpEZWxldGVSZWZlcmVuY2VzSXRl +bSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mRGVsZXRlUmVmZXJlbmNlc0l0 +ZW0iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRlbGV0ZVJl +ZmVyZW5jZXNJdGVtIiB0eXBlPSJ0bnM6RGVsZXRlUmVmZXJlbmNlc0l0ZW0iIG1pbk9jY3Vycz0i +MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkRl +bGV0ZVJlZmVyZW5jZXNJdGVtIiB0eXBlPSJ0bnM6TGlzdE9mRGVsZXRlUmVmZXJlbmNlc0l0ZW0i +IG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 +IkRlbGV0ZVJlZmVyZW5jZXNSZXF1ZXN0Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0eXBlPSJ0bnM6UmVxdWVzdEhlYWRlciIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJl +ZmVyZW5jZXNUb0RlbGV0ZSIgdHlwZT0idG5zOkxpc3RPZkRlbGV0ZVJlZmVyZW5jZXNJdGVtIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkRlbGV0ZVJlZmVyZW5jZXNSZXF1 +ZXN0IiB0eXBlPSJ0bnM6RGVsZXRlUmVmZXJlbmNlc1JlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9IkRlbGV0ZVJlZmVyZW5jZXNSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNw +b25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlJlc3VsdHMiIHR5cGU9InVhOkxpc3RPZlN0YXR1c0NvZGUiIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEaWFnbm9z +dGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IkRlbGV0ZVJlZmVyZW5jZXNSZXNwb25zZSIgdHlwZT0idG5z +OkRlbGV0ZVJlZmVyZW5jZXNSZXNwb25zZSIgLz4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0i +QXR0cmlidXRlV3JpdGVNYXNrIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6dW5zaWdu +ZWRJbnQiPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iQXR0cmlidXRlV3JpdGVNYXNrIiB0eXBlPSJ0bnM6QXR0cmlidXRlV3Jp +dGVNYXNrIiAvPg0KDQogIDx4czpzaW1wbGVUeXBlICBuYW1lPSJCcm93c2VEaXJlY3Rpb24iPg0K +ICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KICAgICAgPHhzOmVudW1lcmF0 +aW9uIHZhbHVlPSJGb3J3YXJkXzAiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Iklu +dmVyc2VfMSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQm90aF8yIiAvPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJJbnZhbGlkXzMiIC8+DQogICAgPC94czpyZXN0cmlj +dGlvbj4NCiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJCcm93c2VEaXJl +Y3Rpb24iIHR5cGU9InRuczpCcm93c2VEaXJlY3Rpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9IlZpZXdEZXNjcmlwdGlvbiI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iVmlld0lkIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUaW1lc3RhbXAiIHR5cGU9Inhz +OmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJWaWV3 +VmVyc2lvbiIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJWaWV3 +RGVzY3JpcHRpb24iIHR5cGU9InRuczpWaWV3RGVzY3JpcHRpb24iIC8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9IkJyb3dzZURlc2NyaXB0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJOb2RlSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJyb3dzZURpcmVj +dGlvbiIgdHlwZT0idG5zOkJyb3dzZURpcmVjdGlvbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iUmVmZXJlbmNlVHlwZUlkIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJbmNs +dWRlU3VidHlwZXMiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9Ik5vZGVDbGFzc01hc2siIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRNYXNrIiB0eXBlPSJ4 +czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkJyb3dzZURlc2NyaXB0aW9uIiB0 +eXBlPSJ0bnM6QnJvd3NlRGVzY3JpcHRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 +Ikxpc3RPZkJyb3dzZURlc2NyaXB0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJCcm93c2VEZXNjcmlwdGlvbiIgdHlwZT0idG5zOkJyb3dzZURlc2NyaXB0 +aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVu +dCBuYW1lPSJMaXN0T2ZCcm93c2VEZXNjcmlwdGlvbiIgdHlwZT0idG5zOkxpc3RPZkJyb3dzZURl +c2NyaXB0aW9uIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpzaW1wbGVU +eXBlICBuYW1lPSJCcm93c2VSZXN1bHRNYXNrIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0i +eHM6c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTm9uZV8wIiAvPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJSZWZlcmVuY2VUeXBlSWRfMSIgLz4NCiAgICAgIDx4 +czplbnVtZXJhdGlvbiB2YWx1ZT0iSXNGb3J3YXJkXzIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRp +b24gdmFsdWU9Ik5vZGVDbGFzc180IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJC +cm93c2VOYW1lXzgiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkRpc3BsYXlOYW1l +XzE2IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJUeXBlRGVmaW5pdGlvbl8zMiIg +Lz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQWxsXzYzIiAvPg0KICAgICAgPHhzOmVu +dW1lcmF0aW9uIHZhbHVlPSJSZWZlcmVuY2VUeXBlSW5mb18zIiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJUYXJnZXRJbmZvXzYwIiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQog +IDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQnJvd3NlUmVzdWx0TWFzayIg +dHlwZT0idG5zOkJyb3dzZVJlc3VsdE1hc2siIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 +IlJlZmVyZW5jZURlc2NyaXB0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJSZWZlcmVuY2VUeXBlSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IklzRm9yd2FyZCIg +dHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iTm9kZUlkIiB0eXBlPSJ1YTpFeHBhbmRlZE5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJyb3dzZU5hbWUiIHR5cGU9InVh +OlF1YWxpZmllZE5hbWUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJEaXNwbGF5TmFtZSIgdHlwZT0idWE6TG9jYWxpemVkVGV4dCIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5v +ZGVDbGFzcyIgdHlwZT0idG5zOk5vZGVDbGFzcyIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iVHlwZURlZmluaXRpb24iIHR5cGU9InVhOkV4cGFuZGVkTm9kZUlkIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwv +eHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlZmVyZW5jZURlc2NyaXB0aW9u +IiB0eXBlPSJ0bnM6UmVmZXJlbmNlRGVzY3JpcHRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZlJlZmVyZW5jZURlc2NyaXB0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZWZlcmVuY2VEZXNjcmlwdGlvbiIgdHlwZT0idG5zOlJl +ZmVyZW5jZURlc2NyaXB0aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZSZWZlcmVuY2VEZXNjcmlwdGlvbiIgdHlwZT0i +dG5zOkxpc3RPZlJlZmVyZW5jZURlc2NyaXB0aW9uIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVt +ZW50Pg0KDQogIDx4czplbGVtZW50IG5hbWU9IkNvbnRpbnVhdGlvblBvaW50IiB0eXBlPSJ4czpi +YXNlNjRCaW5hcnkiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkJyb3dzZVJlc3VsdCI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhdHVzQ29kZSIg +dHlwZT0idWE6U3RhdHVzQ29kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iQ29udGludWF0aW9uUG9pbnQiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlZmVyZW5j +ZXMiIHR5cGU9InRuczpMaXN0T2ZSZWZlcmVuY2VEZXNjcmlwdGlvbiIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJCcm93c2VSZXN1bHQiIHR5cGU9InRuczpCcm93c2VSZXN1 +bHQiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkJyb3dzZVJlc3VsdCI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQnJvd3NlUmVzdWx0IiB0 +eXBlPSJ0bnM6QnJvd3NlUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVk +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZCcm93c2VSZXN1bHQiIHR5cGU9InRuczpM +aXN0T2ZCcm93c2VSZXN1bHQiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9IkJyb3dzZVJlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVh +ZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iVmlldyIgdHlwZT0idG5zOlZpZXdEZXNjcmlwdGlvbiIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RlZE1heFJlZmVy +ZW5jZXNQZXJOb2RlIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTm9kZXNUb0Jyb3dzZSIgdHlwZT0idG5zOkxpc3RPZkJyb3dz +ZURlc2NyaXB0aW9uIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6 +c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkJyb3dz +ZVJlcXVlc3QiIHR5cGU9InRuczpCcm93c2VSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJCcm93c2VSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJl +c3VsdHMiIHR5cGU9InRuczpMaXN0T2ZCcm93c2VSZXN1bHQiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEaWFnbm9zdGljSW5mb3MiIHR5 +cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IkJyb3dzZVJlc3BvbnNlIiB0eXBlPSJ0bnM6QnJvd3NlUmVzcG9uc2UiIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkJyb3dzZU5leHRSZXF1ZXN0Ij4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0eXBlPSJ0bnM6 +UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlJlbGVhc2VDb250aW51YXRpb25Qb2ludHMiIHR5cGU9InhzOmJvb2xl +YW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNvbnRpbnVhdGlv +blBvaW50cyIgdHlwZT0idWE6TGlzdE9mQnl0ZVN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJCcm93c2VOZXh0UmVxdWVzdCIgdHlwZT0idG5zOkJyb3dzZU5leHRS +ZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJCcm93c2VOZXh0UmVzcG9uc2Ui +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlSGVh +ZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ0bnM6TGlzdE9m +QnJvd3NlUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0luZm9zIiB0eXBlPSJ1YTpMaXN0T2ZEaWFnbm9zdGlj +SW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNl +Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJCcm93c2VOZXh0UmVz +cG9uc2UiIHR5cGU9InRuczpCcm93c2VOZXh0UmVzcG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhU +eXBlIG5hbWU9IlJlbGF0aXZlUGF0aEVsZW1lbnQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlJlZmVyZW5jZVR5cGVJZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5P +Y2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNJ +bnZlcnNlIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJJbmNsdWRlU3VidHlwZXMiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0i +MCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRhcmdldE5hbWUiIHR5cGU9InVhOlF1YWxp +ZmllZE5hbWUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUmVsYXRpdmVQ +YXRoRWxlbWVudCIgdHlwZT0idG5zOlJlbGF0aXZlUGF0aEVsZW1lbnQiIC8+DQoNCiAgPHhzOmNv +bXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlJlbGF0aXZlUGF0aEVsZW1lbnQiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlbGF0aXZlUGF0aEVsZW1lbnQiIHR5cGU9 +InRuczpSZWxhdGl2ZVBhdGhFbGVtZW50IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu +ZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZSZWxhdGl2ZVBhdGhFbGVtZW50IiB0 +eXBlPSJ0bnM6TGlzdE9mUmVsYXRpdmVQYXRoRWxlbWVudCIgbmlsbGFibGU9InRydWUiPjwveHM6 +ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmVsYXRpdmVQYXRoIj4NCiAgICA8 +eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbGVtZW50cyIgdHlwZT0idG5z +Okxpc3RPZlJlbGF0aXZlUGF0aEVsZW1lbnQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iUmVsYXRpdmVQYXRoIiB0eXBlPSJ0bnM6UmVsYXRpdmVQYXRoIiAvPg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJCcm93c2VQYXRoIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFydGluZ05vZGUiIHR5cGU9InVhOk5vZGVJZCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlbGF0 +aXZlUGF0aCIgdHlwZT0idG5zOlJlbGF0aXZlUGF0aCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJCcm93c2VQYXRoIiB0eXBlPSJ0bnM6QnJvd3NlUGF0aCIgLz4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mQnJvd3NlUGF0aCI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQnJvd3NlUGF0aCIgdHlwZT0idG5zOkJyb3dzZVBh +dGgiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9Ikxpc3RPZkJyb3dzZVBhdGgiIHR5cGU9InRuczpMaXN0T2ZCcm93c2VQYXRoIiBuaWxs +YWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJCcm93 +c2VQYXRoVGFyZ2V0Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJUYXJnZXRJZCIgdHlwZT0idWE6RXhwYW5kZWROb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZW1haW5pbmdQYXRoSW5kZXgi +IHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5j +ZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQnJvd3NlUGF0aFRh +cmdldCIgdHlwZT0idG5zOkJyb3dzZVBhdGhUYXJnZXQiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZkJyb3dzZVBhdGhUYXJnZXQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IkJyb3dzZVBhdGhUYXJnZXQiIHR5cGU9InRuczpCcm93c2VQYXRo +VGFyZ2V0IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxl +bWVudCBuYW1lPSJMaXN0T2ZCcm93c2VQYXRoVGFyZ2V0IiB0eXBlPSJ0bnM6TGlzdE9mQnJvd3Nl +UGF0aFRhcmdldCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iQnJvd3NlUGF0aFJlc3VsdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iU3RhdHVzQ29kZSIgdHlwZT0idWE6U3RhdHVzQ29kZSIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVGFyZ2V0cyIgdHlwZT0idG5zOkxp +c3RPZkJyb3dzZVBhdGhUYXJnZXQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iQnJvd3NlUGF0aFJlc3VsdCIgdHlwZT0idG5zOkJyb3dzZVBhdGhSZXN1bHQiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkJyb3dzZVBhdGhSZXN1bHQiPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJyb3dzZVBhdGhSZXN1bHQiIHR5cGU9 +InRuczpCcm93c2VQYXRoUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVk +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZCcm93c2VQYXRoUmVzdWx0IiB0eXBlPSJ0 +bnM6TGlzdE9mQnJvd3NlUGF0aFJlc3VsdCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVHJhbnNsYXRlQnJvd3NlUGF0aHNUb05vZGVJZHNS +ZXF1ZXN0Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1 +ZXN0SGVhZGVyIiB0eXBlPSJ0bnM6UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJyb3dzZVBhdGhzIiB0eXBlPSJ0 +bnM6TGlzdE9mQnJvd3NlUGF0aCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJUcmFuc2xhdGVCcm93c2VQYXRoc1RvTm9kZUlkc1JlcXVlc3QiIHR5cGU9InRuczpUcmFuc2xh +dGVCcm93c2VQYXRoc1RvTm9kZUlkc1JlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9IlRyYW5zbGF0ZUJyb3dzZVBhdGhzVG9Ob2RlSWRzUmVzcG9uc2UiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6 +UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ0bnM6TGlzdE9mQnJvd3NlUGF0aFJlc3Vs +dCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkRpYWdub3N0aWNJbmZvcyIgdHlwZT0idWE6TGlzdE9mRGlhZ25vc3RpY0luZm8iIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNsYXRlQnJvd3NlUGF0aHNUb05v +ZGVJZHNSZXNwb25zZSIgdHlwZT0idG5zOlRyYW5zbGF0ZUJyb3dzZVBhdGhzVG9Ob2RlSWRzUmVz +cG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlJlZ2lzdGVyTm9kZXNSZXF1ZXN0 +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVh +ZGVyIiB0eXBlPSJ0bnM6UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGVzVG9SZWdpc3RlciIgdHlwZT0idWE6 +TGlzdE9mTm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6 +c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlZ2lz +dGVyTm9kZXNSZXF1ZXN0IiB0eXBlPSJ0bnM6UmVnaXN0ZXJOb2Rlc1JlcXVlc3QiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9IlJlZ2lzdGVyTm9kZXNSZXNwb25zZSI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRu +czpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlJlZ2lzdGVyZWROb2RlSWRzIiB0eXBlPSJ1YTpMaXN0T2ZOb2Rl +SWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUmVnaXN0ZXJOb2Rlc1Jl +c3BvbnNlIiB0eXBlPSJ0bnM6UmVnaXN0ZXJOb2Rlc1Jlc3BvbnNlIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJVbnJlZ2lzdGVyTm9kZXNSZXF1ZXN0Ij4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0eXBlPSJ0bnM6UmVxdWVz +dEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ik5vZGVzVG9VbnJlZ2lzdGVyIiB0eXBlPSJ1YTpMaXN0T2ZOb2RlSWQiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVW5yZWdpc3Rlck5vZGVzUmVxdWVzdCIg +dHlwZT0idG5zOlVucmVnaXN0ZXJOb2Rlc1JlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9IlVucmVnaXN0ZXJOb2Rlc1Jlc3BvbnNlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNwb25zZUhlYWRlciIgdHlwZT0idG5zOlJlc3BvbnNlSGVh +ZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlVucmVnaXN0ZXJOb2Rl +c1Jlc3BvbnNlIiB0eXBlPSJ0bnM6VW5yZWdpc3Rlck5vZGVzUmVzcG9uc2UiIC8+DQoNCiAgPHhz +OmVsZW1lbnQgbmFtZT0iQ291bnRlciIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIC8+DQoNCiAgPHhz +OmVsZW1lbnQgbmFtZT0iTnVtZXJpY1JhbmdlIiB0eXBlPSJ4czpzdHJpbmciIC8+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9IkVuZHBvaW50Q29uZmlndXJhdGlvbiI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iT3BlcmF0aW9uVGltZW91dCIgdHlwZT0ieHM6 +aW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVc2VCaW5hcnlF +bmNvZGluZyIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iTWF4U3RyaW5nTGVuZ3RoIiB0eXBlPSJ4czppbnQiIG1pbk9jY3Vycz0iMCIg +Lz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1heEJ5dGVTdHJpbmdMZW5ndGgiIHR5cGU9Inhz +OmludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4QXJyYXlM +ZW5ndGgiIHR5cGU9InhzOmludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iTWF4TWVzc2FnZVNpemUiIHR5cGU9InhzOmludCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4QnVmZmVyU2l6ZSIgdHlwZT0ieHM6aW50IiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDaGFubmVsTGlmZXRpbWUiIHR5cGU9 +InhzOmludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VjdXJp +dHlUb2tlbkxpZmV0aW1lIiB0eXBlPSJ4czppbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJFbmRw +b2ludENvbmZpZ3VyYXRpb24iIHR5cGU9InRuczpFbmRwb2ludENvbmZpZ3VyYXRpb24iIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkVuZHBvaW50Q29uZmlndXJhdGlvbiI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5kcG9pbnRDb25maWd1 +cmF0aW9uIiB0eXBlPSJ0bnM6RW5kcG9pbnRDb25maWd1cmF0aW9uIiBtaW5PY2N1cnM9IjAiIG1h +eE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNl +Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZFbmRwb2lu +dENvbmZpZ3VyYXRpb24iIHR5cGU9InRuczpMaXN0T2ZFbmRwb2ludENvbmZpZ3VyYXRpb24iIG5p +bGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlF1 +ZXJ5RGF0YURlc2NyaXB0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJSZWxhdGl2ZVBhdGgiIHR5cGU9InRuczpSZWxhdGl2ZVBhdGgiIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBdHRyaWJ1dGVJ +ZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkluZGV4UmFuZ2UiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJRdWVyeURhdGFEZXNjcmlwdGlvbiIgdHlwZT0idG5zOlF1ZXJ5 +RGF0YURlc2NyaXB0aW9uIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZRdWVy +eURhdGFEZXNjcmlwdGlvbiI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUXVlcnlEYXRhRGVzY3JpcHRpb24iIHR5cGU9InRuczpRdWVyeURhdGFEZXNjcmlwdGlv +biIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTGlzdE9mUXVlcnlEYXRhRGVzY3JpcHRpb24iIHR5cGU9InRuczpMaXN0T2ZRdWVyeURh +dGFEZXNjcmlwdGlvbiIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29t +cGxleFR5cGUgbmFtZT0iTm9kZVR5cGVEZXNjcmlwdGlvbiI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHlwZURlZmluaXRpb25Ob2RlIiB0eXBlPSJ1YTpFeHBh +bmRlZE5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkluY2x1ZGVTdWJUeXBlcyIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YVRvUmV0dXJuIiB0eXBlPSJ0bnM6 +TGlzdE9mUXVlcnlEYXRhRGVzY3JpcHRpb24iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iTm9kZVR5cGVEZXNjcmlwdGlvbiIgdHlwZT0idG5zOk5vZGVUeXBlRGVzY3JpcHRp +b24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZk5vZGVUeXBlRGVzY3JpcHRp +b24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGVUeXBl +RGVzY3JpcHRpb24iIHR5cGU9InRuczpOb2RlVHlwZURlc2NyaXB0aW9uIiBtaW5PY2N1cnM9IjAi +IG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVl +bmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZOb2Rl +VHlwZURlc2NyaXB0aW9uIiB0eXBlPSJ0bnM6TGlzdE9mTm9kZVR5cGVEZXNjcmlwdGlvbiIgbmls +bGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iRmls +dGVyT3BlcmF0b3IiPg0KICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJFcXVhbHNfMCIgLz4NCiAgICAgIDx4czplbnVtZXJh +dGlvbiB2YWx1ZT0iSXNOdWxsXzEiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ikdy +ZWF0ZXJUaGFuXzIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ikxlc3NUaGFuXzMi +IC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkdyZWF0ZXJUaGFuT3JFcXVhbF80IiAv +Pg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJMZXNzVGhhbk9yRXF1YWxfNSIgLz4NCiAg +ICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTGlrZV82IiAvPg0KICAgICAgPHhzOmVudW1lcmF0 +aW9uIHZhbHVlPSJOb3RfNyIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQmV0d2Vl +bl84IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJJbkxpc3RfOSIgLz4NCiAgICAg +IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQW5kXzEwIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9u +IHZhbHVlPSJPcl8xMSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQ2FzdF8xMiIg +Lz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iSW5WaWV3XzEzIiAvPg0KICAgICAgPHhz +OmVudW1lcmF0aW9uIHZhbHVlPSJPZlR5cGVfMTQiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24g +dmFsdWU9IlJlbGF0ZWRUb18xNSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQml0 +d2lzZUFuZF8xNiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQml0d2lzZU9yXzE3 +IiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iRmlsdGVyT3BlcmF0b3IiIHR5cGU9InRuczpGaWx0ZXJPcGVyYXRvciIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUXVlcnlEYXRhU2V0Ij4NCiAgICA8eHM6c2VxdWVu +Y2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOb2RlSWQiIHR5cGU9InVhOkV4cGFuZGVkTm9k +ZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iVHlwZURlZmluaXRpb25Ob2RlIiB0eXBlPSJ1YTpFeHBhbmRlZE5vZGVJZCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlZhbHVl +cyIgdHlwZT0idWE6TGlzdE9mVmFyaWFudCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVu +dCBuYW1lPSJRdWVyeURhdGFTZXQiIHR5cGU9InRuczpRdWVyeURhdGFTZXQiIC8+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlF1ZXJ5RGF0YVNldCI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUXVlcnlEYXRhU2V0IiB0eXBlPSJ0bnM6UXVlcnlE +YXRhU2V0IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxl +bWVudCBuYW1lPSJMaXN0T2ZRdWVyeURhdGFTZXQiIHR5cGU9InRuczpMaXN0T2ZRdWVyeURhdGFT +ZXQiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ik5vZGVSZWZlcmVuY2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9Ik5vZGVJZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVmZXJlbmNlVHlwZUlkIiB0eXBlPSJ1 +YTpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJJc0ZvcndhcmQiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlZmVyZW5jZWROb2RlSWRzIiB0eXBlPSJ1YTpMaXN0 +T2ZOb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTm9kZVJlZmVy +ZW5jZSIgdHlwZT0idG5zOk5vZGVSZWZlcmVuY2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ikxpc3RPZk5vZGVSZWZlcmVuY2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9Ik5vZGVSZWZlcmVuY2UiIHR5cGU9InRuczpOb2RlUmVmZXJlbmNlIiBtaW5P +Y2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJM +aXN0T2ZOb2RlUmVmZXJlbmNlIiB0eXBlPSJ0bnM6TGlzdE9mTm9kZVJlZmVyZW5jZSIgbmlsbGFi +bGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQ29udGVu +dEZpbHRlckVsZW1lbnQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkZpbHRlck9wZXJhdG9yIiB0eXBlPSJ0bnM6RmlsdGVyT3BlcmF0b3IiIG1pbk9jY3Vycz0i +MCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkZpbHRlck9wZXJhbmRzIiB0eXBlPSJ1YTpM +aXN0T2ZFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iQ29udGVudEZpbHRlckVsZW1lbnQiIHR5cGU9InRuczpDb250ZW50RmlsdGVyRWxlbWVudCIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mQ29udGVudEZpbHRlckVsZW1lbnQi +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNvbnRlbnRGaWx0 +ZXJFbGVtZW50IiB0eXBlPSJ0bnM6Q29udGVudEZpbHRlckVsZW1lbnQiIG1pbk9jY3Vycz0iMCIg +bWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVu +Y2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkNvbnRl +bnRGaWx0ZXJFbGVtZW50IiB0eXBlPSJ0bnM6TGlzdE9mQ29udGVudEZpbHRlckVsZW1lbnQiIG5p +bGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNv +bnRlbnRGaWx0ZXIiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IkVsZW1lbnRzIiB0eXBlPSJ0bnM6TGlzdE9mQ29udGVudEZpbHRlckVsZW1lbnQiIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQ29udGVudEZpbHRlciIgdHlwZT0idG5zOkNv +bnRlbnRGaWx0ZXIiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkNvbnRlbnRG +aWx0ZXIiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNvbnRl +bnRGaWx0ZXIiIHR5cGU9InRuczpDb250ZW50RmlsdGVyIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vy +cz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8 +L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZDb250ZW50RmlsdGVy +IiB0eXBlPSJ0bnM6TGlzdE9mQ29udGVudEZpbHRlciIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxl +bWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRmlsdGVyT3BlcmFuZCI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9IkZpbHRlck9wZXJhbmQiIHR5cGU9InRuczpGaWx0ZXJPcGVyYW5kIiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJFbGVtZW50T3BlcmFuZCI+DQogICAgPHhzOmNv +bXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRu +czpGaWx0ZXJPcGVyYW5kIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkluZGV4IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAv +Pg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94 +czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iRWxlbWVudE9wZXJhbmQiIHR5cGU9InRuczpFbGVtZW50T3BlcmFuZCIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iTGl0ZXJhbE9wZXJhbmQiPg0KICAgIDx4czpjb21wbGV4Q29udGVu +dCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6RmlsdGVyT3Bl +cmFuZCI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJWYWx1ZSIgdHlwZT0idWE6VmFyaWFudCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8L3hz +OnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVu +dD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGl0ZXJhbE9wZXJh +bmQiIHR5cGU9InRuczpMaXRlcmFsT3BlcmFuZCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iQXR0cmlidXRlT3BlcmFuZCI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxz +ZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpGaWx0ZXJPcGVyYW5kIj4NCiAgICAg +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGVJZCIgdHlw +ZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAg +IDx4czplbGVtZW50IG5hbWU9IkFsaWFzIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQnJvd3NlUGF0 +aCIgdHlwZT0idG5zOlJlbGF0aXZlUGF0aCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBdHRyaWJ1dGVJZCIgdHlwZT0ieHM6dW5z +aWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJ +bmRleFJhbmdlIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8 +L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJBdHRyaWJ1dGVPcGVyYW5kIiB0eXBlPSJ0bnM6QXR0cmlidXRlT3BlcmFuZCIgLz4NCg0K +ICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iU2ltcGxlQXR0cmlidXRlT3BlcmFuZCI+DQogICAgPHhz +OmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9 +InRuczpGaWx0ZXJPcGVyYW5kIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlR5cGVEZWZpbml0aW9uSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJC +cm93c2VQYXRoIiB0eXBlPSJ1YTpMaXN0T2ZRdWFsaWZpZWROYW1lIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkF0dHJpYnV0ZUlk +IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkluZGV4UmFuZ2UiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0 +ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQog +IDx4czplbGVtZW50IG5hbWU9IlNpbXBsZUF0dHJpYnV0ZU9wZXJhbmQiIHR5cGU9InRuczpTaW1w +bGVBdHRyaWJ1dGVPcGVyYW5kIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZT +aW1wbGVBdHRyaWJ1dGVPcGVyYW5kIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJTaW1wbGVBdHRyaWJ1dGVPcGVyYW5kIiB0eXBlPSJ0bnM6U2ltcGxlQXR0cmli +dXRlT3BlcmFuZCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iTGlzdE9mU2ltcGxlQXR0cmlidXRlT3BlcmFuZCIgdHlwZT0idG5zOkxp +c3RPZlNpbXBsZUF0dHJpYnV0ZU9wZXJhbmQiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNvbnRlbnRGaWx0ZXJFbGVtZW50UmVzdWx0Ij4N +CiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGF0dXNDb2RlIiB0 +eXBlPSJ1YTpTdGF0dXNDb2RlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJPcGVyYW5kU3RhdHVzQ29kZXMiIHR5cGU9InVhOkxpc3RPZlN0YXR1c0NvZGUiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJPcGVy +YW5kRGlhZ25vc3RpY0luZm9zIiB0eXBlPSJ1YTpMaXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJDb250ZW50RmlsdGVyRWxlbWVudFJlc3Vs +dCIgdHlwZT0idG5zOkNvbnRlbnRGaWx0ZXJFbGVtZW50UmVzdWx0IiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJMaXN0T2ZDb250ZW50RmlsdGVyRWxlbWVudFJlc3VsdCI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ29udGVudEZpbHRlckVsZW1lbnRS +ZXN1bHQiIHR5cGU9InRuczpDb250ZW50RmlsdGVyRWxlbWVudFJlc3VsdCIgbWluT2NjdXJzPSIw +IiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mQ29u +dGVudEZpbHRlckVsZW1lbnRSZXN1bHQiIHR5cGU9InRuczpMaXN0T2ZDb250ZW50RmlsdGVyRWxl +bWVudFJlc3VsdCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iQ29udGVudEZpbHRlclJlc3VsdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iRWxlbWVudFJlc3VsdHMiIHR5cGU9InRuczpMaXN0T2ZDb250 +ZW50RmlsdGVyRWxlbWVudFJlc3VsdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IkVsZW1lbnREaWFnbm9zdGljSW5mb3MiIHR5cGU9InVh +Okxpc3RPZkRpYWdub3N0aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9IkNvbnRlbnRGaWx0ZXJSZXN1bHQiIHR5cGU9InRuczpDb250ZW50RmlsdGVyUmVzdWx0IiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJQYXJzaW5nUmVzdWx0Ij4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGF0dXNDb2RlIiB0eXBlPSJ1YTpTdGF0 +dXNDb2RlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhU3Rh +dHVzQ29kZXMiIHR5cGU9InVhOkxpc3RPZlN0YXR1c0NvZGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhRGlhZ25vc3RpY0luZm9z +IiB0eXBlPSJ1YTpMaXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJQYXJzaW5nUmVzdWx0IiB0eXBlPSJ0bnM6UGFyc2luZ1Jlc3VsdCIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mUGFyc2luZ1Jlc3VsdCI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUGFyc2luZ1Jlc3VsdCIgdHlwZT0i +dG5zOlBhcnNpbmdSZXN1bHQiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlBhcnNpbmdSZXN1bHQiIHR5cGU9InRuczpMaXN0 +T2ZQYXJzaW5nUmVzdWx0IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJRdWVyeUZpcnN0UmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RI +ZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJWaWV3IiB0eXBlPSJ0bnM6Vmlld0Rlc2NyaXB0aW9uIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTm9kZVR5cGVzIiB0eXBl +PSJ0bnM6TGlzdE9mTm9kZVR5cGVEZXNjcmlwdGlvbiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkZpbHRlciIgdHlwZT0idG5zOkNvbnRl +bnRGaWx0ZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJNYXhEYXRhU2V0c1RvUmV0dXJuIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWlu +T2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4UmVmZXJlbmNlc1RvUmV0 +dXJuIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlF1ZXJ5Rmly +c3RSZXF1ZXN0IiB0eXBlPSJ0bnM6UXVlcnlGaXJzdFJlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9IlF1ZXJ5Rmlyc3RSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhl +YWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlF1ZXJ5RGF0YVNldHMiIHR5cGU9InRuczpMaXN0T2ZRdWVyeURhdGFTZXQiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDb250 +aW51YXRpb25Qb2ludCIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUGFyc2luZ1Jlc3VsdHMiIHR5 +cGU9InRuczpMaXN0T2ZQYXJzaW5nUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0luZm9zIiB0eXBlPSJ1YTpM +aXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IkZpbHRlclJlc3VsdCIgdHlwZT0idG5zOkNvbnRlbnRGaWx0 +ZXJSZXN1bHQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUXVlcnlGaXJz +dFJlc3BvbnNlIiB0eXBlPSJ0bnM6UXVlcnlGaXJzdFJlc3BvbnNlIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJRdWVyeU5leHRSZXF1ZXN0Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0eXBlPSJ0bnM6UmVxdWVzdEhlYWRl +ciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlJlbGVhc2VDb250aW51YXRpb25Qb2ludCIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ29udGludWF0aW9uUG9pbnQiIHR5cGU9 +InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJR +dWVyeU5leHRSZXF1ZXN0IiB0eXBlPSJ0bnM6UXVlcnlOZXh0UmVxdWVzdCIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iUXVlcnlOZXh0UmVzcG9uc2UiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9u +c2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJRdWVyeURhdGFTZXRzIiB0eXBlPSJ0bnM6TGlzdE9mUXVlcnlEYXRhU2V0IiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +UmV2aXNlZENvbnRpbnVhdGlvblBvaW50IiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUXVlcnlOZXh0UmVzcG9uc2UiIHR5cGU9InRu +czpRdWVyeU5leHRSZXNwb25zZSIgLz4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iVGltZXN0 +YW1wc1RvUmV0dXJuIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAg +ICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iU291cmNlXzAiIC8+DQogICAgICA8eHM6ZW51bWVy +YXRpb24gdmFsdWU9IlNlcnZlcl8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJC +b3RoXzIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik5laXRoZXJfMyIgLz4NCiAg +ICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iSW52YWxpZF80IiAvPg0KICAgIDwveHM6cmVzdHJp +Y3Rpb24+DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iVGltZXN0YW1w +c1RvUmV0dXJuIiB0eXBlPSJ0bnM6VGltZXN0YW1wc1RvUmV0dXJuIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJSZWFkVmFsdWVJZCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iTm9kZUlkIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBdHRyaWJ1dGVJZCIgdHlw +ZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkluZGV4UmFuZ2UiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGFFbmNvZGluZyIgdHlwZT0idWE6 +UXVhbGlmaWVkTmFtZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJSZWFk +VmFsdWVJZCIgdHlwZT0idG5zOlJlYWRWYWx1ZUlkIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBu +YW1lPSJMaXN0T2ZSZWFkVmFsdWVJZCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iUmVhZFZhbHVlSWQiIHR5cGU9InRuczpSZWFkVmFsdWVJZCIgbWluT2NjdXJz +PSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9m +UmVhZFZhbHVlSWQiIHR5cGU9InRuczpMaXN0T2ZSZWFkVmFsdWVJZCIgbmlsbGFibGU9InRydWUi +PjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmVhZFJlcXVlc3QiPg0K +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIi +IHR5cGU9InRuczpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4QWdlIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRpbWVzdGFtcHNUb1JldHVybiIg +dHlwZT0idG5zOlRpbWVzdGFtcHNUb1JldHVybiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iTm9kZXNUb1JlYWQiIHR5cGU9InRuczpMaXN0T2ZSZWFkVmFsdWVJZCIg +bWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8 +L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJSZWFkUmVxdWVzdCIgdHlwZT0i +dG5zOlJlYWRSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJSZWFkUmVzcG9u +c2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNl +SGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ1YTpMaXN0 +T2ZEYXRhVmFsdWUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJEaWFnbm9zdGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJ +bmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlYWRSZXNwb25zZSIg +dHlwZT0idG5zOlJlYWRSZXNwb25zZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iSGlz +dG9yeVJlYWRWYWx1ZUlkIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJOb2RlSWQiIHR5cGU9InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkluZGV4UmFuZ2UiIHR5cGU9InhzOnN0cmlu +ZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkRhdGFFbmNvZGluZyIgdHlwZT0idWE6UXVhbGlmaWVkTmFtZSIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNvbnRpbnVhdGlvblBv +aW50IiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1l +bnQgbmFtZT0iSGlzdG9yeVJlYWRWYWx1ZUlkIiB0eXBlPSJ0bnM6SGlzdG9yeVJlYWRWYWx1ZUlk +IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZIaXN0b3J5UmVhZFZhbHVlSWQi +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlSZWFk +VmFsdWVJZCIgdHlwZT0idG5zOkhpc3RvcnlSZWFkVmFsdWVJZCIgbWluT2NjdXJzPSIwIiBtYXhP +Y2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4N +CiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mSGlzdG9yeVJl +YWRWYWx1ZUlkIiB0eXBlPSJ0bnM6TGlzdE9mSGlzdG9yeVJlYWRWYWx1ZUlkIiBuaWxsYWJsZT0i +dHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJIaXN0b3J5UmVh +ZFJlc3VsdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Rh +dHVzQ29kZSIgdHlwZT0idWE6U3RhdHVzQ29kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iQ29udGludWF0aW9uUG9pbnQiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIg +bWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +Ikhpc3RvcnlEYXRhIiB0eXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4N +CiAgPHhzOmVsZW1lbnQgbmFtZT0iSGlzdG9yeVJlYWRSZXN1bHQiIHR5cGU9InRuczpIaXN0b3J5 +UmVhZFJlc3VsdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mSGlzdG9yeVJl +YWRSZXN1bHQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikhp +c3RvcnlSZWFkUmVzdWx0IiB0eXBlPSJ0bnM6SGlzdG9yeVJlYWRSZXN1bHQiIG1pbk9jY3Vycz0i +MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkhp +c3RvcnlSZWFkUmVzdWx0IiB0eXBlPSJ0bnM6TGlzdE9mSGlzdG9yeVJlYWRSZXN1bHQiIG5pbGxh +YmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikhpc3Rv +cnlSZWFkRGV0YWlscyI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgIDwveHM6c2VxdWVuY2U+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlSZWFkRGV0YWls +cyIgdHlwZT0idG5zOkhpc3RvcnlSZWFkRGV0YWlscyIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUg +bmFtZT0iUmVhZEV2ZW50RGV0YWlscyI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJm +YWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpIaXN0b3J5UmVhZERldGFpbHMi +Pg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTnVt +VmFsdWVzUGVyTm9kZSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFydFRpbWUiIHR5cGU9InhzOmRhdGVUaW1lIiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5kVGltZSIgdHlw +ZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJGaWx0ZXIiIHR5cGU9InRuczpFdmVudEZpbHRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9u +Pg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IlJlYWRFdmVudERldGFpbHMiIHR5cGU9InRuczpSZWFkRXZlbnREZXRhaWxz +IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJSZWFkUmF3TW9kaWZpZWREZXRhaWxzIj4N +CiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNp +b24gYmFzZT0idG5zOkhpc3RvcnlSZWFkRGV0YWlscyI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJc1JlYWRNb2RpZmllZCIgdHlwZT0ieHM6Ym9v +bGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXJ0 +VGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJFbmRUaW1lIiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIiAv +Pg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik51bVZhbHVlc1Blck5vZGUiIHR5cGU9Inhz +OnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iUmV0dXJuQm91bmRzIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBs +ZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJSZWFk +UmF3TW9kaWZpZWREZXRhaWxzIiB0eXBlPSJ0bnM6UmVhZFJhd01vZGlmaWVkRGV0YWlscyIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmVhZFByb2Nlc3NlZERldGFpbHMiPg0KICAgIDx4 +czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNl +PSJ0bnM6SGlzdG9yeVJlYWREZXRhaWxzIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXJ0VGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmRUaW1lIiB0eXBlPSJ4 +czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9 +IlByb2Nlc3NpbmdJbnRlcnZhbCIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQWdncmVnYXRlVHlwZSIgdHlwZT0idWE6TGlzdE9m +Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24iIHR5cGU9InRuczpBZ2dyZWdhdGVD +b25maWd1cmF0aW9uIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8 +L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29u +dGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUmVhZFByb2Nl +c3NlZERldGFpbHMiIHR5cGU9InRuczpSZWFkUHJvY2Vzc2VkRGV0YWlscyIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iUmVhZEF0VGltZURldGFpbHMiPg0KICAgIDx4czpjb21wbGV4Q29u +dGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6SGlzdG9y +eVJlYWREZXRhaWxzIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlJlcVRpbWVzIiB0eXBlPSJ1YTpMaXN0T2ZEYXRlVGltZSIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVc2VTaW1w +bGVCb3VuZHMiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPC94 +czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRl +bnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlYWRBdFRpbWVE +ZXRhaWxzIiB0eXBlPSJ0bnM6UmVhZEF0VGltZURldGFpbHMiIC8+DQoNCiAgPHhzOmNvbXBsZXhU +eXBlIG5hbWU9IlJlYWRBbm5vdGF0aW9uRGF0YURldGFpbHMiPg0KICAgIDx4czpjb21wbGV4Q29u +dGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6SGlzdG9y +eVJlYWREZXRhaWxzIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlJlcVRpbWVzIiB0eXBlPSJ1YTpMaXN0T2ZEYXRlVGltZSIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6 +ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IlJlYWRBbm5vdGF0aW9uRGF0YURldGFpbHMiIHR5cGU9InRu +czpSZWFkQW5ub3RhdGlvbkRhdGFEZXRhaWxzIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1l +PSJIaXN0b3J5RGF0YSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iRGF0YVZhbHVlcyIgdHlwZT0idWE6TGlzdE9mRGF0YVZhbHVlIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlEYXRhIiB0eXBlPSJ0bnM6SGlzdG9yeURhdGEi +IC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vZGlmaWNhdGlvbkluZm8iPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1vZGlmaWNhdGlvblRpbWUiIHR5 +cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJVcGRhdGVUeXBlIiB0eXBlPSJ0bnM6SGlzdG9yeVVwZGF0ZVR5cGUiIG1pbk9jY3Vycz0iMCIg +Lz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVzZXJOYW1lIiB0eXBlPSJ4czpzdHJpbmciIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94 +czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTW9kaWZpY2F0aW9uSW5mbyIgdHlw +ZT0idG5zOk1vZGlmaWNhdGlvbkluZm8iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxp +c3RPZk1vZGlmaWNhdGlvbkluZm8iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ik1vZGlmaWNhdGlvbkluZm8iIHR5cGU9InRuczpNb2RpZmljYXRpb25JbmZvIiBt +aW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJMaXN0T2ZNb2RpZmljYXRpb25JbmZvIiB0eXBlPSJ0bnM6TGlzdE9mTW9kaWZpY2F0aW9uSW5m +byIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iSGlzdG9yeU1vZGlmaWVkRGF0YSI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJm +YWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpIaXN0b3J5RGF0YSI+DQogICAg +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNb2RpZmljYXRp +b25JbmZvcyIgdHlwZT0idG5zOkxpc3RPZk1vZGlmaWNhdGlvbkluZm8iIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4 +dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJIaXN0b3J5TW9kaWZpZWREYXRhIiB0eXBlPSJ0bnM6SGlzdG9y +eU1vZGlmaWVkRGF0YSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iSGlzdG9yeUV2ZW50 +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFdmVudHMiIHR5 +cGU9InRuczpMaXN0T2ZIaXN0b3J5RXZlbnRGaWVsZExpc3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAg +PHhzOmVsZW1lbnQgbmFtZT0iSGlzdG9yeUV2ZW50IiB0eXBlPSJ0bnM6SGlzdG9yeUV2ZW50IiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJIaXN0b3J5UmVhZFJlcXVlc3QiPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9 +InRuczpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iSGlzdG9yeVJlYWREZXRhaWxzIiB0eXBlPSJ1YTpFeHRlbnNp +b25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJUaW1lc3RhbXBzVG9SZXR1cm4iIHR5cGU9InRuczpUaW1lc3RhbXBzVG9SZXR1 +cm4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlbGVhc2VDb250 +aW51YXRpb25Qb2ludHMiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9Ik5vZGVzVG9SZWFkIiB0eXBlPSJ0bnM6TGlzdE9mSGlzdG9yeVJl +YWRWYWx1ZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlS +ZWFkUmVxdWVzdCIgdHlwZT0idG5zOkhpc3RvcnlSZWFkUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29t +cGxleFR5cGUgbmFtZT0iSGlzdG9yeVJlYWRSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25z +ZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlJlc3VsdHMiIHR5cGU9InRuczpMaXN0T2ZIaXN0b3J5UmVhZFJlc3VsdCIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRp +YWdub3N0aWNJbmZvcyIgdHlwZT0idWE6TGlzdE9mRGlhZ25vc3RpY0luZm8iIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4 +VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iSGlzdG9yeVJlYWRSZXNwb25zZSIgdHlwZT0idG5z +Okhpc3RvcnlSZWFkUmVzcG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IldyaXRl +VmFsdWUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vZGVJ +ZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iQXR0cmlidXRlSWQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJbmRleFJhbmdlIiB0eXBl +PSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJWYWx1ZSIgdHlwZT0idWE6RGF0YVZhbHVlIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IldyaXRlVmFsdWUiIHR5cGU9InRuczpXcml0ZVZhbHVlIiAv +Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZXcml0ZVZhbHVlIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJXcml0ZVZhbHVlIiB0eXBlPSJ0bnM6 +V3JpdGVWYWx1ZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iTGlzdE9mV3JpdGVWYWx1ZSIgdHlwZT0idG5zOkxpc3RPZldyaXRlVmFs +dWUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9IldyaXRlUmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RIZWFkZXIiIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOb2Rlc1RvV3Jp +dGUiIHR5cGU9InRuczpMaXN0T2ZXcml0ZVZhbHVlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IldyaXRlUmVxdWVzdCIgdHlwZT0idG5zOldyaXRlUmVxdWVzdCIgLz4NCg0K +ICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iV3JpdGVSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNw +b25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlJlc3VsdHMiIHR5cGU9InVhOkxpc3RPZlN0YXR1c0NvZGUiIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEaWFnbm9z +dGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IldyaXRlUmVzcG9uc2UiIHR5cGU9InRuczpXcml0ZVJlc3Bv +bnNlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJIaXN0b3J5VXBkYXRlRGV0YWlscyI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTm9kZUlkIiB0eXBl +PSJ1YTpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iSGlzdG9y +eVVwZGF0ZURldGFpbHMiIHR5cGU9InRuczpIaXN0b3J5VXBkYXRlRGV0YWlscyIgLz4NCg0KICA8 +eHM6c2ltcGxlVHlwZSAgbmFtZT0iSGlzdG9yeVVwZGF0ZVR5cGUiPg0KICAgIDx4czpyZXN0cmlj +dGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJJbnNl +cnRfMSIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iUmVwbGFjZV8yIiAvPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJVcGRhdGVfMyIgLz4NCiAgICAgIDx4czplbnVtZXJh +dGlvbiB2YWx1ZT0iRGVsZXRlXzQiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94czpz +aW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJIaXN0b3J5VXBkYXRlVHlwZSIgdHlwZT0i +dG5zOkhpc3RvcnlVcGRhdGVUeXBlIiAvPg0KDQogIDx4czpzaW1wbGVUeXBlICBuYW1lPSJQZXJm +b3JtVXBkYXRlVHlwZSI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQog +ICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ikluc2VydF8xIiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJSZXBsYWNlXzIiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9 +IlVwZGF0ZV8zIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJSZW1vdmVfNCIgLz4N +CiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9IlBlcmZvcm1VcGRhdGVUeXBlIiB0eXBlPSJ0bnM6UGVyZm9ybVVwZGF0ZVR5cGUiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlVwZGF0ZURhdGFEZXRhaWxzIj4NCiAgICA8eHM6 +Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0i +dG5zOkhpc3RvcnlVcGRhdGVEZXRhaWxzIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlBlcmZvcm1JbnNlcnRSZXBsYWNlIiB0eXBlPSJ0bnM6UGVy +Zm9ybVVwZGF0ZVR5cGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJVcGRhdGVWYWx1ZXMiIHR5cGU9InVhOkxpc3RPZkRhdGFWYWx1ZSIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6 +ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9IlVwZGF0ZURhdGFEZXRhaWxzIiB0eXBlPSJ0bnM6VXBkYXRl +RGF0YURldGFpbHMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlVwZGF0ZVN0cnVjdHVy +ZURhdGFEZXRhaWxzIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAg +ICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOkhpc3RvcnlVcGRhdGVEZXRhaWxzIj4NCiAgICAg +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlBlcmZvcm1JbnNl +cnRSZXBsYWNlIiB0eXBlPSJ0bnM6UGVyZm9ybVVwZGF0ZVR5cGUiIG1pbk9jY3Vycz0iMCIgLz4N +CiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVcGRhdGVWYWx1ZXMiIHR5cGU9InVhOkxpc3RP +ZkRhdGFWYWx1ZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94 +czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRl +bnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlVwZGF0ZVN0cnVj +dHVyZURhdGFEZXRhaWxzIiB0eXBlPSJ0bnM6VXBkYXRlU3RydWN0dXJlRGF0YURldGFpbHMiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlVwZGF0ZUV2ZW50RGV0YWlscyI+DQogICAgPHhz +OmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9 +InRuczpIaXN0b3J5VXBkYXRlRGV0YWlscyI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQZXJmb3JtSW5zZXJ0UmVwbGFjZSIgdHlwZT0idG5zOlBl +cmZvcm1VcGRhdGVUeXBlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iRmlsdGVyIiB0eXBlPSJ0bnM6RXZlbnRGaWx0ZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXZlbnREYXRhIiB0eXBl +PSJ0bnM6TGlzdE9mSGlzdG9yeUV2ZW50RmllbGRMaXN0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+ +DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iVXBkYXRlRXZlbnREZXRhaWxzIiB0eXBlPSJ0bnM6VXBkYXRlRXZlbnREZXRh +aWxzIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZWxldGVSYXdNb2RpZmllZERldGFp +bHMiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4 +dGVuc2lvbiBiYXNlPSJ0bnM6SGlzdG9yeVVwZGF0ZURldGFpbHMiPg0KICAgICAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNEZWxldGVNb2RpZmllZCIgdHlw +ZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5h +bWU9IlN0YXJ0VGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmRUaW1lIiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+ +DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVs +ZW1lbnQgbmFtZT0iRGVsZXRlUmF3TW9kaWZpZWREZXRhaWxzIiB0eXBlPSJ0bnM6RGVsZXRlUmF3 +TW9kaWZpZWREZXRhaWxzIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZWxldGVBdFRp +bWVEZXRhaWxzIj4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNlIj4NCiAgICAg +IDx4czpleHRlbnNpb24gYmFzZT0idG5zOkhpc3RvcnlVcGRhdGVEZXRhaWxzIj4NCiAgICAgICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcVRpbWVzIiB0eXBl +PSJ1YTpMaXN0T2ZEYXRlVGltZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29t +cGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkRl +bGV0ZUF0VGltZURldGFpbHMiIHR5cGU9InRuczpEZWxldGVBdFRpbWVEZXRhaWxzIiAvPg0KDQog +IDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZWxldGVFdmVudERldGFpbHMiPg0KICAgIDx4czpjb21w +bGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6 +SGlzdG9yeVVwZGF0ZURldGFpbHMiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRXZlbnRJZHMiIHR5cGU9InVhOkxpc3RPZkJ5dGVTdHJpbmciIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQog +ICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEZWxldGVFdmVudERldGFpbHMiIHR5cGU9 +InRuczpEZWxldGVFdmVudERldGFpbHMiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikhp +c3RvcnlVcGRhdGVSZXN1bHQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlN0YXR1c0NvZGUiIHR5cGU9InVhOlN0YXR1c0NvZGUiIG1pbk9jY3Vycz0iMCIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik9wZXJhdGlvblJlc3VsdHMiIHR5cGU9InVhOkxpc3RP +ZlN0YXR1c0NvZGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJEaWFnbm9zdGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJ +bmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlVcGRhdGVS +ZXN1bHQiIHR5cGU9InRuczpIaXN0b3J5VXBkYXRlUmVzdWx0IiAvPg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJMaXN0T2ZIaXN0b3J5VXBkYXRlUmVzdWx0Ij4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJIaXN0b3J5VXBkYXRlUmVzdWx0IiB0eXBlPSJ0bnM6 +SGlzdG9yeVVwZGF0ZVJlc3VsdCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mSGlzdG9yeVVwZGF0ZVJlc3VsdCIgdHlwZT0i +dG5zOkxpc3RPZkhpc3RvcnlVcGRhdGVSZXN1bHQiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1l +bnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikhpc3RvcnlVcGRhdGVSZXF1ZXN0Ij4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0SGVhZGVyIiB0 +eXBlPSJ0bnM6UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlVcGRhdGVEZXRhaWxzIiB0eXBlPSJ1YTpM +aXN0T2ZFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iSGlzdG9yeVVwZGF0ZVJlcXVlc3QiIHR5cGU9InRuczpIaXN0b3J5VXBkYXRlUmVxdWVzdCIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iSGlzdG9yeVVwZGF0ZVJlc3BvbnNlIj4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNwb25zZUhlYWRlciIg +dHlwZT0idG5zOlJlc3BvbnNlSGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzdWx0cyIgdHlwZT0idG5zOkxpc3RPZkhpc3Rv +cnlVcGRhdGVSZXN1bHQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJEaWFnbm9zdGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdub3N0 +aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVu +Y2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlVcGRh +dGVSZXNwb25zZSIgdHlwZT0idG5zOkhpc3RvcnlVcGRhdGVSZXNwb25zZSIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iQ2FsbE1ldGhvZFJlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik9iamVjdElkIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNZXRo +b2RJZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSW5wdXRBcmd1bWVudHMiIHR5cGU9InVhOkxpc3RPZlZh +cmlhbnQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5j +ZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQ2FsbE1ldGhvZFJl +cXVlc3QiIHR5cGU9InRuczpDYWxsTWV0aG9kUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iTGlzdE9mQ2FsbE1ldGhvZFJlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IkNhbGxNZXRob2RSZXF1ZXN0IiB0eXBlPSJ0bnM6Q2FsbE1l +dGhvZFJlcXVlc3QiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9Ikxpc3RPZkNhbGxNZXRob2RSZXF1ZXN0IiB0eXBlPSJ0bnM6TGlzdE9m +Q2FsbE1ldGhvZFJlcXVlc3QiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9IkNhbGxNZXRob2RSZXN1bHQiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXR1c0NvZGUiIHR5cGU9InVhOlN0YXR1c0NvZGUi +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IklucHV0QXJndW1lbnRS +ZXN1bHRzIiB0eXBlPSJ1YTpMaXN0T2ZTdGF0dXNDb2RlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSW5wdXRBcmd1bWVudERpYWdub3N0 +aWNJbmZvcyIgdHlwZT0idWE6TGlzdE9mRGlhZ25vc3RpY0luZm8iIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJPdXRwdXRBcmd1bWVudHMi +IHR5cGU9InVhOkxpc3RPZlZhcmlhbnQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iQ2FsbE1ldGhvZFJlc3VsdCIgdHlwZT0idG5zOkNhbGxNZXRob2RSZXN1bHQiIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkNhbGxNZXRob2RSZXN1bHQiPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNhbGxNZXRob2RSZXN1bHQiIHR5 +cGU9InRuczpDYWxsTWV0aG9kUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu +ZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZDYWxsTWV0aG9kUmVzdWx0IiB0eXBl +PSJ0bnM6TGlzdE9mQ2FsbE1ldGhvZFJlc3VsdCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVu +dD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQ2FsbFJlcXVlc3QiPg0KICAgIDx4czpzZXF1 +ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpS +ZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iTWV0aG9kc1RvQ2FsbCIgdHlwZT0idG5zOkxpc3RPZkNhbGxNZXRob2RS +ZXF1ZXN0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVu +Y2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkNhbGxSZXF1ZXN0 +IiB0eXBlPSJ0bnM6Q2FsbFJlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNh +bGxSZXNwb25zZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +UmVzcG9uc2VIZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3VsdHMiIHR5cGU9 +InRuczpMaXN0T2ZDYWxsTWV0aG9kUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0luZm9zIiB0eXBlPSJ1YTpM +aXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJDYWxsUmVzcG9uc2UiIHR5cGU9InRuczpDYWxsUmVzcG9uc2UiIC8+DQoNCiAgPHhzOnNpbXBs +ZVR5cGUgIG5hbWU9Ik1vbml0b3JpbmdNb2RlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0i +eHM6c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRGlzYWJsZWRfMCIgLz4N +CiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iU2FtcGxpbmdfMSIgLz4NCiAgICAgIDx4czpl +bnVtZXJhdGlvbiB2YWx1ZT0iUmVwb3J0aW5nXzIiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4N +CiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNb25pdG9yaW5nTW9kZSIg +dHlwZT0idG5zOk1vbml0b3JpbmdNb2RlIiAvPg0KDQogIDx4czpzaW1wbGVUeXBlICBuYW1lPSJE +YXRhQ2hhbmdlVHJpZ2dlciI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+ +DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlN0YXR1c18wIiAvPg0KICAgICAgPHhzOmVu +dW1lcmF0aW9uIHZhbHVlPSJTdGF0dXNWYWx1ZV8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9u +IHZhbHVlPSJTdGF0dXNWYWx1ZVRpbWVzdGFtcF8yIiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+ +DQogIDwveHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YUNoYW5nZVRyaWdn +ZXIiIHR5cGU9InRuczpEYXRhQ2hhbmdlVHJpZ2dlciIgLz4NCg0KICA8eHM6c2ltcGxlVHlwZSAg +bmFtZT0iRGVhZGJhbmRUeXBlIj4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5n +Ij4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTm9uZV8wIiAvPg0KICAgICAgPHhzOmVu +dW1lcmF0aW9uIHZhbHVlPSJBYnNvbHV0ZV8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZh +bHVlPSJQZXJjZW50XzIiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4NCiAgPC94czpzaW1wbGVU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEZWFkYmFuZFR5cGUiIHR5cGU9InRuczpEZWFkYmFu +ZFR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vbml0b3JpbmdGaWx0ZXIiPg0K +ICAgIDx4czpzZXF1ZW5jZT4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNb25pdG9yaW5nRmlsdGVyIiB0eXBlPSJ0bnM6TW9uaXRv +cmluZ0ZpbHRlciIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGF0YUNoYW5nZUZpbHRl +ciI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0 +ZW5zaW9uIGJhc2U9InRuczpNb25pdG9yaW5nRmlsdGVyIj4NCiAgICAgICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlRyaWdnZXIiIHR5cGU9InRuczpEYXRhQ2hh +bmdlVHJpZ2dlciIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9 +IkRlYWRiYW5kVHlwZSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEZWFkYmFuZFZhbHVlIiB0eXBlPSJ4czpkb3VibGUi +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgIDwveHM6ZXh0 +ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQogIDwveHM6Y29tcGxleFR5cGU+DQog +IDx4czplbGVtZW50IG5hbWU9IkRhdGFDaGFuZ2VGaWx0ZXIiIHR5cGU9InRuczpEYXRhQ2hhbmdl +RmlsdGVyIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJFdmVudEZpbHRlciI+DQogICAg +PHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJh +c2U9InRuczpNb25pdG9yaW5nRmlsdGVyIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlNlbGVjdENsYXVzZXMiIHR5cGU9InRuczpMaXN0T2ZTaW1w +bGVBdHRyaWJ1dGVPcGVyYW5kIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgICAgIDx4czplbGVtZW50IG5hbWU9IldoZXJlQ2xhdXNlIiB0eXBlPSJ0bnM6Q29udGVudEZp +bHRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1 +ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkV2ZW50RmlsdGVyIiB0eXBl +PSJ0bnM6RXZlbnRGaWx0ZXIiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkFnZ3JlZ2F0 +ZUNvbmZpZ3VyYXRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzIiB0eXBlPSJ4czpib29sZWFuIiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUcmVhdFVuY2VydGFpbkFzQmFk +IiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJQZXJjZW50RGF0YUJhZCIgdHlwZT0ieHM6dW5zaWduZWRCeXRlIiBtaW5PY2N1cnM9IjAi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQZXJjZW50RGF0YUdvb2QiIHR5cGU9InhzOnVu +c2lnbmVkQnl0ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNl +U2xvcGVkRXh0cmFwb2xhdGlvbiIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9IkFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24iIHR5cGU9InRuczpBZ2dyZWdhdGVDb25maWd1cmF0 +aW9uIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJBZ2dyZWdhdGVGaWx0ZXIiPg0KICAg +IDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBi +YXNlPSJ0bnM6TW9uaXRvcmluZ0ZpbHRlciI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFydFRpbWUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQWdncmVnYXRlVHlwZSIg +dHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlByb2Nlc3NpbmdJbnRlcnZhbCIgdHlwZT0ieHM6ZG91Ymxl +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQWdncmVnYXRl +Q29uZmlndXJhdGlvbiIgdHlwZT0idG5zOkFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24iIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8 +L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhU +eXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJBZ2dyZWdhdGVGaWx0ZXIiIHR5cGU9InRuczpBZ2dy +ZWdhdGVGaWx0ZXIiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vbml0b3JpbmdGaWx0 +ZXJSZXN1bHQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNb25pdG9yaW5nRmlsdGVyUmVzdWx0 +IiB0eXBlPSJ0bnM6TW9uaXRvcmluZ0ZpbHRlclJlc3VsdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iRXZlbnRGaWx0ZXJSZXN1bHQiPg0KICAgIDx4czpjb21wbGV4Q29udGVudCBtaXhl +ZD0iZmFsc2UiPg0KICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0bnM6TW9uaXRvcmluZ0ZpbHRl +clJlc3VsdCI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJTZWxlY3RDbGF1c2VSZXN1bHRzIiB0eXBlPSJ1YTpMaXN0T2ZTdGF0dXNDb2RlIiBtaW5P +Y2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9 +IlNlbGVjdENsYXVzZURpYWdub3N0aWNJbmZvcyIgdHlwZT0idWE6TGlzdE9mRGlhZ25vc3RpY0lu +Zm8iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iV2hlcmVDbGF1c2VSZXN1bHQiIHR5cGU9InRuczpDb250ZW50RmlsdGVyUmVzdWx0 +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNl +Pg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAgPC94czpjb21wbGV4Q29udGVudD4NCiAgPC94 +czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRXZlbnRGaWx0ZXJSZXN1bHQiIHR5 +cGU9InRuczpFdmVudEZpbHRlclJlc3VsdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i +QWdncmVnYXRlRmlsdGVyUmVzdWx0Ij4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZh +bHNlIj4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOk1vbml0b3JpbmdGaWx0ZXJSZXN1 +bHQiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +UmV2aXNlZFN0YXJ0VGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXZpc2VkUHJvY2Vzc2luZ0ludGVydmFsIiB0eXBl +PSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJSZXZpc2VkQWdncmVnYXRlQ29uZmlndXJhdGlvbiIgdHlwZT0idG5zOkFnZ3JlZ2F0ZUNvbmZp +Z3VyYXRpb24iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICAgIDwveHM6 +c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAgICA8L3hzOmNvbXBsZXhDb250ZW50 +Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJBZ2dyZWdhdGVGaWx0 +ZXJSZXN1bHQiIHR5cGU9InRuczpBZ2dyZWdhdGVGaWx0ZXJSZXN1bHQiIC8+DQoNCiAgPHhzOmNv +bXBsZXhUeXBlIG5hbWU9Ik1vbml0b3JpbmdQYXJhbWV0ZXJzIj4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDbGllbnRIYW5kbGUiIHR5cGU9InhzOnVuc2lnbmVk +SW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTYW1wbGluZ0lu +dGVydmFsIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkZpbHRlciIgdHlwZT0idWE6RXh0ZW5zaW9uT2JqZWN0IiBtaW5PY2N1cnM9IjAi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUXVldWVTaXplIiB0 +eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iRGlzY2FyZE9sZGVzdCIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9Ik1vbml0b3JpbmdQYXJhbWV0ZXJzIiB0eXBlPSJ0bnM6TW9uaXRvcmluZ1BhcmFtZXRlcnMi +IC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vbml0b3JlZEl0ZW1DcmVhdGVSZXF1ZXN0 +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJdGVtVG9Nb25p +dG9yIiB0eXBlPSJ0bnM6UmVhZFZhbHVlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNb25pdG9yaW5nTW9kZSIgdHlwZT0idG5zOk1v +bml0b3JpbmdNb2RlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJS +ZXF1ZXN0ZWRQYXJhbWV0ZXJzIiB0eXBlPSJ0bnM6TW9uaXRvcmluZ1BhcmFtZXRlcnMiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTW9uaXRvcmVkSXRlbUNyZWF0ZVJlcXVl +c3QiIHR5cGU9InRuczpNb25pdG9yZWRJdGVtQ3JlYXRlUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29t +cGxleFR5cGUgbmFtZT0iTGlzdE9mTW9uaXRvcmVkSXRlbUNyZWF0ZVJlcXVlc3QiPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1vbml0b3JlZEl0ZW1DcmVhdGVS +ZXF1ZXN0IiB0eXBlPSJ0bnM6TW9uaXRvcmVkSXRlbUNyZWF0ZVJlcXVlc3QiIG1pbk9jY3Vycz0i +MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZk1v +bml0b3JlZEl0ZW1DcmVhdGVSZXF1ZXN0IiB0eXBlPSJ0bnM6TGlzdE9mTW9uaXRvcmVkSXRlbUNy +ZWF0ZVJlcXVlc3QiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBs +ZXhUeXBlIG5hbWU9Ik1vbml0b3JlZEl0ZW1DcmVhdGVSZXN1bHQiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXR1c0NvZGUiIHR5cGU9InVhOlN0YXR1c0Nv +ZGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1vbml0b3JlZEl0 +ZW1JZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlJldmlzZWRTYW1wbGluZ0ludGVydmFsIiB0eXBlPSJ4czpkb3VibGUiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJldmlzZWRRdWV1ZVNpemUi +IHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJGaWx0ZXJSZXN1bHQiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNb25pdG9yZWRJdGVtQ3JlYXRlUmVzdWx0IiB0 +eXBlPSJ0bnM6TW9uaXRvcmVkSXRlbUNyZWF0ZVJlc3VsdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5 +cGUgbmFtZT0iTGlzdE9mTW9uaXRvcmVkSXRlbUNyZWF0ZVJlc3VsdCI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTW9uaXRvcmVkSXRlbUNyZWF0ZVJlc3VsdCIg +dHlwZT0idG5zOk1vbml0b3JlZEl0ZW1DcmVhdGVSZXN1bHQiIG1pbk9jY3Vycz0iMCIgbWF4T2Nj +dXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZk1vbml0b3JlZEl0 +ZW1DcmVhdGVSZXN1bHQiIHR5cGU9InRuczpMaXN0T2ZNb25pdG9yZWRJdGVtQ3JlYXRlUmVzdWx0 +IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1l +PSJDcmVhdGVNb25pdG9yZWRJdGVtc1JlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVhZGVy +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iU3Vic2NyaXB0aW9uSWQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUaW1lc3RhbXBzVG9SZXR1cm4iIHR5cGU9InRuczpU +aW1lc3RhbXBzVG9SZXR1cm4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9Ikl0ZW1zVG9DcmVhdGUiIHR5cGU9InRuczpMaXN0T2ZNb25pdG9yZWRJdGVtQ3JlYXRlUmVx +dWVzdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNl +Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJDcmVhdGVNb25pdG9y +ZWRJdGVtc1JlcXVlc3QiIHR5cGU9InRuczpDcmVhdGVNb25pdG9yZWRJdGVtc1JlcXVlc3QiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNyZWF0ZU1vbml0b3JlZEl0ZW1zUmVzcG9uc2Ui +Pg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlSGVh +ZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ0bnM6TGlzdE9m +TW9uaXRvcmVkSXRlbUNyZWF0ZVJlc3VsdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRpYWdub3N0aWNJbmZvcyIgdHlwZT0idWE6TGlz +dE9mRGlhZ25vc3RpY0luZm8iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +PC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0i +Q3JlYXRlTW9uaXRvcmVkSXRlbXNSZXNwb25zZSIgdHlwZT0idG5zOkNyZWF0ZU1vbml0b3JlZEl0 +ZW1zUmVzcG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vbml0b3JlZEl0ZW1N +b2RpZnlSZXF1ZXN0Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJNb25pdG9yZWRJdGVtSWQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0ZWRQYXJhbWV0ZXJzIiB0eXBlPSJ0bnM6 +TW9uaXRvcmluZ1BhcmFtZXRlcnMiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iTW9uaXRvcmVkSXRlbU1vZGlmeVJlcXVlc3QiIHR5cGU9InRuczpNb25pdG9yZWRJdGVtTW9k +aWZ5UmVxdWVzdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mTW9uaXRvcmVk +SXRlbU1vZGlmeVJlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9Ik1vbml0b3JlZEl0ZW1Nb2RpZnlSZXF1ZXN0IiB0eXBlPSJ0bnM6TW9uaXRvcmVkSXRl +bU1vZGlmeVJlcXVlc3QiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQog +IDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZk1vbml0b3JlZEl0ZW1Nb2RpZnlSZXF1ZXN0IiB0eXBl +PSJ0bnM6TGlzdE9mTW9uaXRvcmVkSXRlbU1vZGlmeVJlcXVlc3QiIG5pbGxhYmxlPSJ0cnVlIj48 +L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vbml0b3JlZEl0ZW1Nb2Rp +ZnlSZXN1bHQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0 +YXR1c0NvZGUiIHR5cGU9InVhOlN0YXR1c0NvZGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlJldmlzZWRTYW1wbGluZ0ludGVydmFsIiB0eXBlPSJ4czpkb3VibGUi +IG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJldmlzZWRRdWV1ZVNp +emUiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJGaWx0ZXJSZXN1bHQiIHR5cGU9InVhOkV4dGVuc2lvbk9iamVjdCIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNb25pdG9yZWRJdGVtTW9kaWZ5UmVzdWx0 +IiB0eXBlPSJ0bnM6TW9uaXRvcmVkSXRlbU1vZGlmeVJlc3VsdCIgLz4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iTGlzdE9mTW9uaXRvcmVkSXRlbU1vZGlmeVJlc3VsdCI+DQogICAgPHhzOnNl +cXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTW9uaXRvcmVkSXRlbU1vZGlmeVJlc3Vs +dCIgdHlwZT0idG5zOk1vbml0b3JlZEl0ZW1Nb2RpZnlSZXN1bHQiIG1pbk9jY3Vycz0iMCIgbWF4 +T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZk1vbml0b3Jl +ZEl0ZW1Nb2RpZnlSZXN1bHQiIHR5cGU9InRuczpMaXN0T2ZNb25pdG9yZWRJdGVtTW9kaWZ5UmVz +dWx0IiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4VHlwZSBu +YW1lPSJNb2RpZnlNb25pdG9yZWRJdGVtc1JlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVh +ZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iU3Vic2NyaXB0aW9uSWQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUaW1lc3RhbXBzVG9SZXR1cm4iIHR5cGU9InRu +czpUaW1lc3RhbXBzVG9SZXR1cm4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9Ikl0ZW1zVG9Nb2RpZnkiIHR5cGU9InRuczpMaXN0T2ZNb25pdG9yZWRJdGVtTW9kaWZ5 +UmVxdWVzdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVl +bmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNb2RpZnlNb25p +dG9yZWRJdGVtc1JlcXVlc3QiIHR5cGU9InRuczpNb2RpZnlNb25pdG9yZWRJdGVtc1JlcXVlc3Qi +IC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vZGlmeU1vbml0b3JlZEl0ZW1zUmVzcG9u +c2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNl +SGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ0bnM6TGlz +dE9mTW9uaXRvcmVkSXRlbU1vZGlmeVJlc3VsdCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRpYWdub3N0aWNJbmZvcyIgdHlwZT0idWE6 +TGlzdE9mRGlhZ25vc3RpY0luZm8iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iTW9kaWZ5TW9uaXRvcmVkSXRlbXNSZXNwb25zZSIgdHlwZT0idG5zOk1vZGlmeU1vbml0b3Jl +ZEl0ZW1zUmVzcG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlNldE1vbml0b3Jp +bmdNb2RlUmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RIZWFkZXIiIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdWJzY3JpcHRpb25J +ZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ik1vbml0b3JpbmdNb2RlIiB0eXBlPSJ0bnM6TW9uaXRvcmluZ01vZGUiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1vbml0b3JlZEl0ZW1JZHMiIHR5 +cGU9InVhOkxpc3RPZlVJbnQzMiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1l +PSJTZXRNb25pdG9yaW5nTW9kZVJlcXVlc3QiIHR5cGU9InRuczpTZXRNb25pdG9yaW5nTW9kZVJl +cXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlNldE1vbml0b3JpbmdNb2RlUmVz +cG9uc2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3Bv +bnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFi +bGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ1YTpM +aXN0T2ZTdGF0dXNDb2RlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3RpY0luZm9zIiB0eXBlPSJ1YTpMaXN0T2ZEaWFnbm9z +dGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVl +bmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJTZXRNb25pdG9y +aW5nTW9kZVJlc3BvbnNlIiB0eXBlPSJ0bnM6U2V0TW9uaXRvcmluZ01vZGVSZXNwb25zZSIgLz4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iU2V0VHJpZ2dlcmluZ1JlcXVlc3QiPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9 +InRuczpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Vic2NyaXB0aW9uSWQiIHR5cGU9InhzOnVuc2lnbmVkSW50 +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUcmlnZ2VyaW5nSXRl +bUlkIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iTGlua3NUb0FkZCIgdHlwZT0idWE6TGlzdE9mVUludDMyIiBtaW5PY2N1cnM9 +IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTGlua3NUb1Jl +bW92ZSIgdHlwZT0idWE6TGlzdE9mVUludDMyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IlNldFRyaWdnZXJpbmdSZXF1ZXN0IiB0eXBlPSJ0bnM6U2V0VHJpZ2dlcmluZ1Jl +cXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlNldFRyaWdnZXJpbmdSZXNwb25z +ZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VI +ZWFkZXIiIHR5cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkFkZFJlc3VsdHMiIHR5cGU9InVhOkxp +c3RPZlN0YXR1c0NvZGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJBZGREaWFnbm9zdGljSW5mb3MiIHR5cGU9InVhOkxpc3RPZkRpYWdu +b3N0aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iUmVtb3ZlUmVzdWx0cyIgdHlwZT0idWE6TGlzdE9mU3RhdHVzQ29kZSIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJl +bW92ZURpYWdub3N0aWNJbmZvcyIgdHlwZT0idWE6TGlzdE9mRGlhZ25vc3RpY0luZm8iIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iU2V0VHJpZ2dlcmluZ1Jlc3BvbnNlIiB0 +eXBlPSJ0bnM6U2V0VHJpZ2dlcmluZ1Jlc3BvbnNlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBu +YW1lPSJEZWxldGVNb25pdG9yZWRJdGVtc1JlcXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVh +ZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iU3Vic2NyaXB0aW9uSWQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNb25pdG9yZWRJdGVtSWRzIiB0eXBlPSJ1YTpM +aXN0T2ZVSW50MzIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpz +ZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRGVsZXRl +TW9uaXRvcmVkSXRlbXNSZXF1ZXN0IiB0eXBlPSJ0bnM6RGVsZXRlTW9uaXRvcmVkSXRlbXNSZXF1 +ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZWxldGVNb25pdG9yZWRJdGVtc1Jl +c3BvbnNlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNw +b25zZUhlYWRlciIgdHlwZT0idG5zOlJlc3BvbnNlSGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzdWx0cyIgdHlwZT0idWE6 +TGlzdE9mU3RhdHVzQ29kZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IkRpYWdub3N0aWNJbmZvcyIgdHlwZT0idWE6TGlzdE9mRGlhZ25v +c3RpY0luZm8iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRGVsZXRlTW9u +aXRvcmVkSXRlbXNSZXNwb25zZSIgdHlwZT0idG5zOkRlbGV0ZU1vbml0b3JlZEl0ZW1zUmVzcG9u +c2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkNyZWF0ZVN1YnNjcmlwdGlvblJlcXVl +c3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RI +ZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0 +cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdGVkUHVibGlzaGluZ0ludGVy +dmFsIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlJlcXVlc3RlZExpZmV0aW1lQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0ZWRNYXhLZWVwQWxp +dmVDb3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9Ik1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoIiB0eXBlPSJ4czp1bnNp +Z25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHVibGlz +aGluZ0VuYWJsZWQiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlByaW9yaXR5IiB0eXBlPSJ4czp1bnNpZ25lZEJ5dGUiIG1pbk9jY3Vy +cz0iMCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6 +ZWxlbWVudCBuYW1lPSJDcmVhdGVTdWJzY3JpcHRpb25SZXF1ZXN0IiB0eXBlPSJ0bnM6Q3JlYXRl +U3Vic2NyaXB0aW9uUmVxdWVzdCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQ3JlYXRl +U3Vic2NyaXB0aW9uUmVzcG9uc2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlJlc3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdWJz +Y3JpcHRpb25JZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9IlJldmlzZWRQdWJsaXNoaW5nSW50ZXJ2YWwiIHR5cGU9InhzOmRv +dWJsZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmV2aXNlZExp +ZmV0aW1lQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJSZXZpc2VkTWF4S2VlcEFsaXZlQ291bnQiIHR5cGU9InhzOnVu +c2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpj +b21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iQ3JlYXRlU3Vic2NyaXB0aW9uUmVzcG9u +c2UiIHR5cGU9InRuczpDcmVhdGVTdWJzY3JpcHRpb25SZXNwb25zZSIgLz4NCg0KICA8eHM6Y29t +cGxleFR5cGUgbmFtZT0iTW9kaWZ5U3Vic2NyaXB0aW9uUmVxdWVzdCI+DQogICAgPHhzOnNlcXVl +bmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJl +cXVlc3RIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJTdWJzY3JpcHRpb25JZCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVlc3RlZFB1Ymxpc2hpbmdJ +bnRlcnZhbCIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJSZXF1ZXN0ZWRMaWZldGltZUNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIg +bWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdGVkTWF4S2Vl +cEFsaXZlQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJNYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaCIgdHlwZT0ieHM6 +dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlBy +aW9yaXR5IiB0eXBlPSJ4czp1bnNpZ25lZEJ5dGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJNb2Rp +ZnlTdWJzY3JpcHRpb25SZXF1ZXN0IiB0eXBlPSJ0bnM6TW9kaWZ5U3Vic2NyaXB0aW9uUmVxdWVz +dCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTW9kaWZ5U3Vic2NyaXB0aW9uUmVzcG9u +c2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNl +SGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXZpc2VkUHVibGlzaGluZ0ludGVy +dmFsIiB0eXBlPSJ4czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IlJldmlzZWRMaWZldGltZUNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmV2aXNlZE1heEtlZXBBbGl2ZUNv +dW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6c2Vx +dWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ik1vZGlmeVN1 +YnNjcmlwdGlvblJlc3BvbnNlIiB0eXBlPSJ0bnM6TW9kaWZ5U3Vic2NyaXB0aW9uUmVzcG9uc2Ui +IC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlNldFB1Ymxpc2hpbmdNb2RlUmVxdWVzdCI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRl +ciIgdHlwZT0idG5zOlJlcXVlc3RIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJsaXNoaW5nRW5hYmxlZCIgdHlwZT0ieHM6 +Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Vic2Ny +aXB0aW9uSWRzIiB0eXBlPSJ1YTpMaXN0T2ZVSW50MzIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iU2V0UHVibGlzaGluZ01vZGVSZXF1ZXN0IiB0eXBlPSJ0bnM6U2V0UHVi +bGlzaGluZ01vZGVSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJTZXRQdWJs +aXNoaW5nTW9kZVJlc3BvbnNlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJSZXNwb25zZUhlYWRlciIgdHlwZT0idG5zOlJlc3BvbnNlSGVhZGVyIiBtaW5PY2N1 +cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzdWx0 +cyIgdHlwZT0idWE6TGlzdE9mU3RhdHVzQ29kZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRpYWdub3N0aWNJbmZvcyIgdHlwZT0idWE6 +TGlzdE9mRGlhZ25vc3RpY0luZm8iIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFt +ZT0iU2V0UHVibGlzaGluZ01vZGVSZXNwb25zZSIgdHlwZT0idG5zOlNldFB1Ymxpc2hpbmdNb2Rl +UmVzcG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik5vdGlmaWNhdGlvbk1lc3Nh +Z2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcXVlbmNl +TnVtYmVyIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iUHVibGlzaFRpbWUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJOb3RpZmljYXRpb25EYXRhIiB0eXBlPSJ1 +YTpMaXN0T2ZFeHRlbnNpb25PYmplY3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTm90aWZpY2F0aW9uTWVzc2FnZSIgdHlwZT0idG5zOk5vdGlmaWNhdGlvbk1lc3NhZ2Ui +IC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik5vdGlmaWNhdGlvbkRhdGEiPg0KICAgIDx4 +czpzZXF1ZW5jZT4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJOb3RpZmljYXRpb25EYXRhIiB0eXBlPSJ0bnM6Tm90aWZpY2F0aW9u +RGF0YSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGF0YUNoYW5nZU5vdGlmaWNhdGlv +biI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0 +ZW5zaW9uIGJhc2U9InRuczpOb3RpZmljYXRpb25EYXRhIj4NCiAgICAgICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1vbml0b3JlZEl0ZW1zIiB0eXBlPSJ0bnM6 +TGlzdE9mTW9uaXRvcmVkSXRlbU5vdGlmaWNhdGlvbiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEaWFnbm9zdGljSW5mb3MiIHR5 +cGU9InVhOkxpc3RPZkRpYWdub3N0aWNJbmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVl +IiAvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgPC94czpleHRlbnNpb24+DQogICAg +PC94czpjb21wbGV4Q29udGVudD4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iRGF0YUNoYW5nZU5vdGlmaWNhdGlvbiIgdHlwZT0idG5zOkRhdGFDaGFuZ2VOb3RpZmlj +YXRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ik1vbml0b3JlZEl0ZW1Ob3RpZmlj +YXRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNsaWVu +dEhhbmRsZSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlZhbHVlIiB0eXBlPSJ1YTpEYXRhVmFsdWUiIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTW9uaXRvcmVkSXRlbU5vdGlmaWNhdGlvbiIgdHlwZT0i +dG5zOk1vbml0b3JlZEl0ZW1Ob3RpZmljYXRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ikxpc3RPZk1vbml0b3JlZEl0ZW1Ob3RpZmljYXRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1vbml0b3JlZEl0ZW1Ob3RpZmljYXRpb24iIHR5cGU9 +InRuczpNb25pdG9yZWRJdGVtTm90aWZpY2F0aW9uIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i +dW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZNb25pdG9yZWRJdGVtTm90 +aWZpY2F0aW9uIiB0eXBlPSJ0bnM6TGlzdE9mTW9uaXRvcmVkSXRlbU5vdGlmaWNhdGlvbiIgbmls +bGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRXZl +bnROb3RpZmljYXRpb25MaXN0Ij4NCiAgICA8eHM6Y29tcGxleENvbnRlbnQgbWl4ZWQ9ImZhbHNl +Ij4NCiAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idG5zOk5vdGlmaWNhdGlvbkRhdGEiPg0KICAg +ICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXZlbnRzIiB0 +eXBlPSJ0bnM6TGlzdE9mRXZlbnRGaWVsZExpc3QiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRy +dWUiIC8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICA8L3hzOmV4dGVuc2lvbj4NCiAg +ICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVu +dCBuYW1lPSJFdmVudE5vdGlmaWNhdGlvbkxpc3QiIHR5cGU9InRuczpFdmVudE5vdGlmaWNhdGlv +bkxpc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkV2ZW50RmllbGRMaXN0Ij4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDbGllbnRIYW5kbGUiIHR5 +cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJFdmVudEZpZWxkcyIgdHlwZT0idWE6TGlzdE9mVmFyaWFudCIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJFdmVudEZpZWxkTGlzdCIgdHlwZT0idG5zOkV2ZW50Rmll +bGRMaXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZFdmVudEZpZWxkTGlz +dCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXZlbnRGaWVs +ZExpc3QiIHR5cGU9InRuczpFdmVudEZpZWxkTGlzdCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9 +InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94 +czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mRXZlbnRGaWVsZExpc3Qi +IHR5cGU9InRuczpMaXN0T2ZFdmVudEZpZWxkTGlzdCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxl +bWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iSGlzdG9yeUV2ZW50RmllbGRMaXN0Ij4N +CiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFdmVudEZpZWxkcyIg +dHlwZT0idWE6TGlzdE9mVmFyaWFudCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJIaXN0b3J5RXZlbnRGaWVsZExpc3QiIHR5cGU9InRuczpIaXN0b3J5RXZlbnRGaWVsZExp +c3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZkhpc3RvcnlFdmVudEZpZWxk +TGlzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSGlzdG9y +eUV2ZW50RmllbGRMaXN0IiB0eXBlPSJ0bnM6SGlzdG9yeUV2ZW50RmllbGRMaXN0IiBtaW5PY2N1 +cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0 +T2ZIaXN0b3J5RXZlbnRGaWVsZExpc3QiIHR5cGU9InRuczpMaXN0T2ZIaXN0b3J5RXZlbnRGaWVs +ZExpc3QiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9IlN0YXR1c0NoYW5nZU5vdGlmaWNhdGlvbiI+DQogICAgPHhzOmNvbXBsZXhDb250ZW50 +IG1peGVkPSJmYWxzZSI+DQogICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRuczpOb3RpZmljYXRp +b25EYXRhIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czplbGVtZW50IG5h +bWU9IlN0YXR1cyIgdHlwZT0idWE6U3RhdHVzQ29kZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +ICAgIDx4czplbGVtZW50IG5hbWU9IkRpYWdub3N0aWNJbmZvIiB0eXBlPSJ1YTpEaWFnbm9zdGlj +SW5mbyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgICAgPC94czpzZXF1 +ZW5jZT4NCiAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQog +IDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlN0YXR1c0NoYW5nZU5vdGlm +aWNhdGlvbiIgdHlwZT0idG5zOlN0YXR1c0NoYW5nZU5vdGlmaWNhdGlvbiIgLz4NCg0KICA8eHM6 +Y29tcGxleFR5cGUgbmFtZT0iU3Vic2NyaXB0aW9uQWNrbm93bGVkZ2VtZW50Ij4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdWJzY3JpcHRpb25JZCIgdHlwZT0i +eHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IlNlcXVlbmNlTnVtYmVyIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0K +ICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5h +bWU9IlN1YnNjcmlwdGlvbkFja25vd2xlZGdlbWVudCIgdHlwZT0idG5zOlN1YnNjcmlwdGlvbkFj +a25vd2xlZGdlbWVudCIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mU3Vic2Ny +aXB0aW9uQWNrbm93bGVkZ2VtZW50Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJTdWJzY3JpcHRpb25BY2tub3dsZWRnZW1lbnQiIHR5cGU9InRuczpTdWJzY3Jp +cHRpb25BY2tub3dsZWRnZW1lbnQiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQi +IG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5 +cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZlN1YnNjcmlwdGlvbkFja25vd2xlZGdlbWVu +dCIgdHlwZT0idG5zOkxpc3RPZlN1YnNjcmlwdGlvbkFja25vd2xlZGdlbWVudCIgbmlsbGFibGU9 +InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUHVibGlzaFJl +cXVlc3QiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcXVl +c3RIZWFkZXIiIHR5cGU9InRuczpSZXF1ZXN0SGVhZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Vic2NyaXB0aW9uQWNrbm93bGVk +Z2VtZW50cyIgdHlwZT0idG5zOkxpc3RPZlN1YnNjcmlwdGlvbkFja25vd2xlZGdlbWVudCIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJsaXNoUmVxdWVzdCIgdHlwZT0i +dG5zOlB1Ymxpc2hSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJQdWJsaXNo +UmVzcG9uc2UiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJl +c3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVzcG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdWJzY3JpcHRpb25JZCIg +dHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IkF2YWlsYWJsZVNlcXVlbmNlTnVtYmVycyIgdHlwZT0idWE6TGlzdE9mVUludDMyIiBt +aW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +TW9yZU5vdGlmaWNhdGlvbnMiIHR5cGU9InhzOmJvb2xlYW4iIG1pbk9jY3Vycz0iMCIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9Ik5vdGlmaWNhdGlvbk1lc3NhZ2UiIHR5cGU9InRuczpOb3Rp +ZmljYXRpb25NZXNzYWdlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iUmVzdWx0cyIgdHlwZT0idWE6TGlzdE9mU3RhdHVzQ29kZSIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRp +YWdub3N0aWNJbmZvcyIgdHlwZT0idWE6TGlzdE9mRGlhZ25vc3RpY0luZm8iIG1pbk9jY3Vycz0i +MCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4 +VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUHVibGlzaFJlc3BvbnNlIiB0eXBlPSJ0bnM6UHVi +bGlzaFJlc3BvbnNlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJSZXB1Ymxpc2hSZXF1 +ZXN0Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXF1ZXN0 +SGVhZGVyIiB0eXBlPSJ0bnM6UmVxdWVzdEhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0i +dHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN1YnNjcmlwdGlvbklkIiB0eXBlPSJ4 +czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i +UmV0cmFuc21pdFNlcXVlbmNlTnVtYmVyIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJz +PSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IlJlcHVibGlzaFJlcXVlc3QiIHR5cGU9InRuczpSZXB1Ymxpc2hSZXF1ZXN0 +IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJSZXB1Ymxpc2hSZXNwb25zZSI+DQogICAg +PHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VIZWFkZXIiIHR5 +cGU9InRuczpSZXNwb25zZUhlYWRlciIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5vdGlmaWNhdGlvbk1lc3NhZ2UiIHR5cGU9InRuczpO +b3RpZmljYXRpb25NZXNzYWdlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +IDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +IlJlcHVibGlzaFJlc3BvbnNlIiB0eXBlPSJ0bnM6UmVwdWJsaXNoUmVzcG9uc2UiIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9IlRyYW5zZmVyUmVzdWx0Ij4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGF0dXNDb2RlIiB0eXBlPSJ1YTpTdGF0dXNDb2Rl +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBdmFpbGFibGVTZXF1 +ZW5jZU51bWJlcnMiIHR5cGU9InVhOkxpc3RPZlVJbnQzMiIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJUcmFuc2ZlclJlc3VsdCIgdHlwZT0idG5zOlRyYW5zZmVyUmVzdWx0 +IiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZUcmFuc2ZlclJlc3VsdCI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNmZXJSZXN1bHQi +IHR5cGU9InRuczpUcmFuc2ZlclJlc3VsdCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91 +bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21w +bGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mVHJhbnNmZXJSZXN1bHQiIHR5cGU9 +InRuczpMaXN0T2ZUcmFuc2ZlclJlc3VsdCIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4N +Cg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVHJhbnNmZXJTdWJzY3JpcHRpb25zUmVxdWVzdCI+ +DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRl +ciIgdHlwZT0idG5zOlJlcXVlc3RIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdWJzY3JpcHRpb25JZHMiIHR5cGU9InVhOkxp +c3RPZlVJbnQzMiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlNlbmRJbml0aWFsVmFsdWVzIiB0eXBlPSJ4czpib29sZWFuIiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iVHJhbnNmZXJTdWJzY3JpcHRpb25zUmVxdWVzdCIgdHlwZT0idG5zOlRy +YW5zZmVyU3Vic2NyaXB0aW9uc1JlcXVlc3QiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 +IlRyYW5zZmVyU3Vic2NyaXB0aW9uc1Jlc3BvbnNlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJSZXNwb25zZUhlYWRlciIgdHlwZT0idG5zOlJlc3BvbnNlSGVh +ZGVyIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUmVzdWx0cyIgdHlwZT0idG5zOkxpc3RPZlRyYW5zZmVyUmVzdWx0IiBtaW5PY2N1cnM9 +IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25vc3Rp +Y0luZm9zIiB0eXBlPSJ1YTpMaXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJUcmFuc2ZlclN1YnNjcmlwdGlvbnNSZXNwb25zZSIgdHlwZT0i +dG5zOlRyYW5zZmVyU3Vic2NyaXB0aW9uc1Jlc3BvbnNlIiAvPg0KDQogIDx4czpjb21wbGV4VHlw +ZSBuYW1lPSJEZWxldGVTdWJzY3JpcHRpb25zUmVxdWVzdCI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVxdWVzdEhlYWRlciIgdHlwZT0idG5zOlJlcXVlc3RI +ZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJTdWJzY3JpcHRpb25JZHMiIHR5cGU9InVhOkxpc3RPZlVJbnQzMiIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBs +ZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEZWxldGVTdWJzY3JpcHRpb25zUmVxdWVzdCIg +dHlwZT0idG5zOkRlbGV0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0IiAvPg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJEZWxldGVTdWJzY3JpcHRpb25zUmVzcG9uc2UiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlSGVhZGVyIiB0eXBlPSJ0bnM6UmVz +cG9uc2VIZWFkZXIiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJSZXN1bHRzIiB0eXBlPSJ1YTpMaXN0T2ZTdGF0dXNDb2RlIiBtaW5PY2N1 +cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGlhZ25v +c3RpY0luZm9zIiB0eXBlPSJ1YTpMaXN0T2ZEaWFnbm9zdGljSW5mbyIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBl +Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJEZWxldGVTdWJzY3JpcHRpb25zUmVzcG9uc2UiIHR5cGU9 +InRuczpEZWxldGVTdWJzY3JpcHRpb25zUmVzcG9uc2UiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9IkJ1aWxkSW5mbyI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iUHJvZHVjdFVyaSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWFudWZhY3R1cmVyTmFtZSIgdHlw +ZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iUHJvZHVjdE5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNvZnR3YXJlVmVy +c2lvbiIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQnVpbGROdW1iZXIiIHR5cGU9InhzOnN0cmluZyIgbWlu +T2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkJ1 +aWxkRGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNl +cXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJCdWlsZElu +Zm8iIHR5cGU9InRuczpCdWlsZEluZm8iIC8+DQoNCiAgPHhzOnNpbXBsZVR5cGUgIG5hbWU9IlJl +ZHVuZGFuY3lTdXBwb3J0Ij4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4N +CiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTm9uZV8wIiAvPg0KICAgICAgPHhzOmVudW1l +cmF0aW9uIHZhbHVlPSJDb2xkXzEiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ildh +cm1fMiIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iSG90XzMiIC8+DQogICAgICA8 +eHM6ZW51bWVyYXRpb24gdmFsdWU9IlRyYW5zcGFyZW50XzQiIC8+DQogICAgICA8eHM6ZW51bWVy +YXRpb24gdmFsdWU9IkhvdEFuZE1pcnJvcmVkXzUiIC8+DQogICAgPC94czpyZXN0cmljdGlvbj4N +CiAgPC94czpzaW1wbGVUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJSZWR1bmRhbmN5U3VwcG9y +dCIgdHlwZT0idG5zOlJlZHVuZGFuY3lTdXBwb3J0IiAvPg0KDQogIDx4czpzaW1wbGVUeXBlICBu +YW1lPSJTZXJ2ZXJTdGF0ZSI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+ +DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IlJ1bm5pbmdfMCIgLz4NCiAgICAgIDx4czpl +bnVtZXJhdGlvbiB2YWx1ZT0iRmFpbGVkXzEiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFs +dWU9Ik5vQ29uZmlndXJhdGlvbl8yIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJT +dXNwZW5kZWRfMyIgLz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iU2h1dGRvd25fNCIg +Lz4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iVGVzdF81IiAvPg0KICAgICAgPHhzOmVu +dW1lcmF0aW9uIHZhbHVlPSJDb21tdW5pY2F0aW9uRmF1bHRfNiIgLz4NCiAgICAgIDx4czplbnVt +ZXJhdGlvbiB2YWx1ZT0iVW5rbm93bl83IiAvPg0KICAgIDwveHM6cmVzdHJpY3Rpb24+DQogIDwv +eHM6c2ltcGxlVHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyU3RhdGUiIHR5cGU9InRu +czpTZXJ2ZXJTdGF0ZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmVkdW5kYW50U2Vy +dmVyRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IlNlcnZlcklkIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUi +IC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2aWNlTGV2ZWwiIHR5cGU9InhzOnVuc2ln +bmVkQnl0ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVy +U3RhdGUiIHR5cGU9InRuczpTZXJ2ZXJTdGF0ZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgIDwveHM6 +c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlJlZHVu +ZGFudFNlcnZlckRhdGFUeXBlIiB0eXBlPSJ0bnM6UmVkdW5kYW50U2VydmVyRGF0YVR5cGUiIC8+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlJlZHVuZGFudFNlcnZlckRhdGFUeXBl +Ij4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZWR1bmRhbnRT +ZXJ2ZXJEYXRhVHlwZSIgdHlwZT0idG5zOlJlZHVuZGFudFNlcnZlckRhdGFUeXBlIiBtaW5PY2N1 +cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hz +OnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0 +T2ZSZWR1bmRhbnRTZXJ2ZXJEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZlJlZHVuZGFudFNlcnZl +ckRhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJFbmRwb2ludFVybExpc3REYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5kcG9pbnRVcmxMaXN0IiB0eXBlPSJ1YTpMaXN0T2ZT +dHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5j +ZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRW5kcG9pbnRVcmxM +aXN0RGF0YVR5cGUiIHR5cGU9InRuczpFbmRwb2ludFVybExpc3REYXRhVHlwZSIgLz4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mRW5kcG9pbnRVcmxMaXN0RGF0YVR5cGUiPg0KICAg +IDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuZHBvaW50VXJsTGlzdERh +dGFUeXBlIiB0eXBlPSJ0bnM6RW5kcG9pbnRVcmxMaXN0RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIg +bWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVu +Y2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZkVuZHBv +aW50VXJsTGlzdERhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mRW5kcG9pbnRVcmxMaXN0RGF0YVR5 +cGUiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9Ik5ldHdvcmtHcm91cERhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJTZXJ2ZXJVcmkiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik5ldHdvcmtQYXRocyIg +dHlwZT0idG5zOkxpc3RPZkVuZHBvaW50VXJsTGlzdERhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG5p +bGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+ +DQogIDx4czplbGVtZW50IG5hbWU9Ik5ldHdvcmtHcm91cERhdGFUeXBlIiB0eXBlPSJ0bnM6TmV0 +d29ya0dyb3VwRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZk5l +dHdvcmtHcm91cERhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJOZXR3b3JrR3JvdXBEYXRhVHlwZSIgdHlwZT0idG5zOk5ldHdvcmtHcm91cERhdGFU +eXBlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVu +dCBuYW1lPSJMaXN0T2ZOZXR3b3JrR3JvdXBEYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZk5ldHdv +cmtHcm91cERhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJTYW1wbGluZ0ludGVydmFsRGlhZ25vc3RpY3NEYXRhVHlwZSI+DQog +ICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2FtcGxpbmdJbnRlcnZh +bCIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJNb25pdG9yZWRJdGVtQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNYXhNb25pdG9yZWRJdGVtQ291bnQiIHR5 +cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJEaXNhYmxlZE1vbml0b3JlZEl0ZW1Db3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJTYW1wbGluZ0ludGVydmFsRGlhZ25vc3RpY3NEYXRhVHlwZSIg +dHlwZT0idG5zOlNhbXBsaW5nSW50ZXJ2YWxEaWFnbm9zdGljc0RhdGFUeXBlIiAvPg0KDQogIDx4 +czpjb21wbGV4VHlwZSBuYW1lPSJMaXN0T2ZTYW1wbGluZ0ludGVydmFsRGlhZ25vc3RpY3NEYXRh +VHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2FtcGxp +bmdJbnRlcnZhbERpYWdub3N0aWNzRGF0YVR5cGUiIHR5cGU9InRuczpTYW1wbGluZ0ludGVydmFs +RGlhZ25vc3RpY3NEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlw +ZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mU2FtcGxpbmdJbnRlcnZhbERpYWdub3N0aWNz +RGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZTYW1wbGluZ0ludGVydmFsRGlhZ25vc3RpY3NEYXRh +VHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxleFR5cGUg +bmFtZT0iU2VydmVyRGlhZ25vc3RpY3NTdW1tYXJ5RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5j +ZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcnZlclZpZXdDb3VudCIgdHlwZT0ieHM6dW5z +aWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkN1cnJl +bnRTZXNzaW9uQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDdW11bGF0ZWRTZXNzaW9uQ291bnQiIHR5cGU9InhzOnVu +c2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZWN1 +cml0eVJlamVjdGVkU2Vzc2lvbkNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVqZWN0ZWRTZXNzaW9uQ291bnQiIHR5 +cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJTZXNzaW9uVGltZW91dENvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2Vzc2lvbkFib3J0Q291bnQiIHR5cGU9 +InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJDdXJyZW50U3Vic2NyaXB0aW9uQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDdW11bGF0ZWRTdWJzY3JpcHRpb25D +b3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlB1Ymxpc2hpbmdJbnRlcnZhbENvdW50IiB0eXBlPSJ4czp1bnNpZ25lZElu +dCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VjdXJpdHlSZWpl +Y3RlZFJlcXVlc3RzQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZWplY3RlZFJlcXVlc3RzQ291bnQiIHR5cGU9Inhz +OnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94 +czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iU2VydmVyRGlhZ25vc3RpY3NTdW1t +YXJ5RGF0YVR5cGUiIHR5cGU9InRuczpTZXJ2ZXJEaWFnbm9zdGljc1N1bW1hcnlEYXRhVHlwZSIg +Lz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iU2VydmVyU3RhdHVzRGF0YVR5cGUiPg0KICAg +IDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXJ0VGltZSIgdHlwZT0i +eHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkN1 +cnJlbnRUaW1lIiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iU3RhdGUiIHR5cGU9InRuczpTZXJ2ZXJTdGF0ZSIgbWluT2NjdXJzPSIw +IiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQnVpbGRJbmZvIiB0eXBlPSJ0bnM6QnVpbGRJ +bmZvIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iU2Vjb25kc1RpbGxTaHV0ZG93biIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vy +cz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNodXRkb3duUmVhc29uIiB0eXBlPSJ1 +YTpMb2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwv +eHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IlNl +cnZlclN0YXR1c0RhdGFUeXBlIiB0eXBlPSJ0bnM6U2VydmVyU3RhdHVzRGF0YVR5cGUiIC8+DQoN +CiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlNlc3Npb25EaWFnbm9zdGljc0RhdGFUeXBlIj4NCiAg +ICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXNzaW9uSWQiIHR5cGU9 +InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlNlc3Npb25OYW1lIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDbGllbnREZXNjcmlw +dGlvbiIgdHlwZT0idG5zOkFwcGxpY2F0aW9uRGVzY3JpcHRpb24iIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJ2ZXJVcmkiIHR5cGU9 +InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkVuZHBvaW50VXJsIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMb2NhbGVJZHMiIHR5 +cGU9InVhOkxpc3RPZlN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IkFjdHVhbFNlc3Npb25UaW1lb3V0IiB0eXBlPSJ4czpkb3Vi +bGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1heFJlc3BvbnNl +TWVzc2FnZVNpemUiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJDbGllbnRDb25uZWN0aW9uVGltZSIgdHlwZT0ieHM6ZGF0ZVRp +bWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNsaWVudExhc3RD +b250YWN0VGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IkN1cnJlbnRTdWJzY3JpcHRpb25zQ291bnQiIHR5cGU9InhzOnVuc2ln +bmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDdXJyZW50 +TW9uaXRvcmVkSXRlbXNDb3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIg +Lz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkN1cnJlbnRQdWJsaXNoUmVxdWVzdHNJblF1ZXVl +IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1l +bnQgbmFtZT0iVG90YWxSZXF1ZXN0Q291bnQiIHR5cGU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFU +eXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iVW5hdXRob3JpemVkUmVxdWVzdENvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWlu +T2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVhZENvdW50IiB0eXBlPSJ0 +bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIg +Lz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikhpc3RvcnlSZWFkQ291bnQiIHR5cGU9InRuczpT +ZXJ2aWNlQ291bnRlckRhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iV3JpdGVDb3VudCIgdHlwZT0idG5zOlNlcnZpY2VDb3Vu +dGVyRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6 +ZWxlbWVudCBuYW1lPSJIaXN0b3J5VXBkYXRlQ291bnQiIHR5cGU9InRuczpTZXJ2aWNlQ291bnRl +ckRhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVs +ZW1lbnQgbmFtZT0iQ2FsbENvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIg +bWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9 +IkNyZWF0ZU1vbml0b3JlZEl0ZW1zQ291bnQiIHR5cGU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFU +eXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iTW9kaWZ5TW9uaXRvcmVkSXRlbXNDb3VudCIgdHlwZT0idG5zOlNlcnZpY2VDb3VudGVy +RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJTZXRNb25pdG9yaW5nTW9kZUNvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNvdW50 +ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IlNldFRyaWdnZXJpbmdDb3VudCIgdHlwZT0idG5zOlNlcnZpY2VDb3VudGVy +RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJEZWxldGVNb25pdG9yZWRJdGVtc0NvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNv +dW50ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IkNyZWF0ZVN1YnNjcmlwdGlvbkNvdW50IiB0eXBlPSJ0bnM6U2Vydmlj +ZUNvdW50ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAg +IDx4czplbGVtZW50IG5hbWU9Ik1vZGlmeVN1YnNjcmlwdGlvbkNvdW50IiB0eXBlPSJ0bnM6U2Vy +dmljZUNvdW50ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlNldFB1Ymxpc2hpbmdNb2RlQ291bnQiIHR5cGU9InRuczpT +ZXJ2aWNlQ291bnRlckRhdGFUeXBlIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHVibGlzaENvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNv +dW50ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlJlcHVibGlzaENvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNvdW50ZXJE +YXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IlRyYW5zZmVyU3Vic2NyaXB0aW9uc0NvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNv +dW50ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IkRlbGV0ZVN1YnNjcmlwdGlvbnNDb3VudCIgdHlwZT0idG5zOlNlcnZp +Y2VDb3VudGVyRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJBZGROb2Rlc0NvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNvdW50 +ZXJEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkFkZFJlZmVyZW5jZXNDb3VudCIgdHlwZT0idG5zOlNlcnZpY2VDb3VudGVy +RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJEZWxldGVOb2Rlc0NvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRh +VHlwZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50 +IG5hbWU9IkRlbGV0ZVJlZmVyZW5jZXNDb3VudCIgdHlwZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0 +YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJCcm93c2VDb3VudCIgdHlwZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJC +cm93c2VOZXh0Q291bnQiIHR5cGU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFUeXBlIiBtaW5PY2N1 +cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNs +YXRlQnJvd3NlUGF0aHNUb05vZGVJZHNDb3VudCIgdHlwZT0idG5zOlNlcnZpY2VDb3VudGVyRGF0 +YVR5cGUiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJRdWVyeUZpcnN0Q291bnQiIHR5cGU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFUeXBl +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iUXVlcnlOZXh0Q291bnQiIHR5cGU9InRuczpTZXJ2aWNlQ291bnRlckRhdGFUeXBlIiBtaW5P +Y2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVn +aXN0ZXJOb2Rlc0NvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVucmVn +aXN0ZXJOb2Rlc0NvdW50IiB0eXBlPSJ0bnM6U2VydmljZUNvdW50ZXJEYXRhVHlwZSIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJTZXNzaW9uRGlhZ25vc3RpY3NEYXRhVHlw +ZSIgdHlwZT0idG5zOlNlc3Npb25EaWFnbm9zdGljc0RhdGFUeXBlIiAvPg0KDQogIDx4czpjb21w +bGV4VHlwZSBuYW1lPSJMaXN0T2ZTZXNzaW9uRGlhZ25vc3RpY3NEYXRhVHlwZSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2Vzc2lvbkRpYWdub3N0aWNzRGF0 +YVR5cGUiIHR5cGU9InRuczpTZXNzaW9uRGlhZ25vc3RpY3NEYXRhVHlwZSIgbWluT2NjdXJzPSIw +IiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1 +ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTGlzdE9mU2Vz +c2lvbkRpYWdub3N0aWNzRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZTZXNzaW9uRGlhZ25vc3Rp +Y3NEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KICA8eHM6Y29tcGxl +eFR5cGUgbmFtZT0iU2Vzc2lvblNlY3VyaXR5RGlhZ25vc3RpY3NEYXRhVHlwZSI+DQogICAgPHhz +OnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2Vzc2lvbklkIiB0eXBlPSJ1YTpO +b2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJDbGllbnRVc2VySWRPZlNlc3Npb24iIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNsaWVudFVz +ZXJJZEhpc3RvcnkiIHR5cGU9InVhOkxpc3RPZlN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJs +ZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkF1dGhlbnRpY2F0aW9uTWVjaGFu +aXNtIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmNvZGluZyIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1 +cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVHJhbnNw +b3J0UHJvdG9jb2wiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1 +ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlY3VyaXR5TW9kZSIgdHlwZT0idG5zOk1l +c3NhZ2VTZWN1cml0eU1vZGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IlNlY3VyaXR5UG9saWN5VXJpIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmls +bGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDbGllbnRDZXJ0aWZpY2F0 +ZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAv +Pg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50 +IG5hbWU9IlNlc3Npb25TZWN1cml0eURpYWdub3N0aWNzRGF0YVR5cGUiIHR5cGU9InRuczpTZXNz +aW9uU2VjdXJpdHlEaWFnbm9zdGljc0RhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBu +YW1lPSJMaXN0T2ZTZXNzaW9uU2VjdXJpdHlEaWFnbm9zdGljc0RhdGFUeXBlIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXNzaW9uU2VjdXJpdHlEaWFnbm9z +dGljc0RhdGFUeXBlIiB0eXBlPSJ0bnM6U2Vzc2lvblNlY3VyaXR5RGlhZ25vc3RpY3NEYXRhVHlw +ZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmlsbGFibGU9InRydWUiIC8+ +DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQg +bmFtZT0iTGlzdE9mU2Vzc2lvblNlY3VyaXR5RGlhZ25vc3RpY3NEYXRhVHlwZSIgdHlwZT0idG5z +Okxpc3RPZlNlc3Npb25TZWN1cml0eURpYWdub3N0aWNzRGF0YVR5cGUiIG5pbGxhYmxlPSJ0cnVl +Ij48L3hzOmVsZW1lbnQ+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlNlcnZpY2VDb3VudGVy +RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRv +dGFsQ291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8 +eHM6ZWxlbWVudCBuYW1lPSJFcnJvckNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9IlNlcnZpY2VDb3VudGVyRGF0YVR5cGUiIHR5cGU9InRuczpTZXJ2aWNl +Q291bnRlckRhdGFUeXBlIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1lPSJTdGF0dXNSZXN1 +bHQiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXR1c0Nv +ZGUiIHR5cGU9InVhOlN0YXR1c0NvZGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9IkRpYWdub3N0aWNJbmZvIiB0eXBlPSJ1YTpEaWFnbm9zdGljSW5mbyIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNv +bXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJTdGF0dXNSZXN1bHQiIHR5cGU9InRuczpT +dGF0dXNSZXN1bHQiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Ikxpc3RPZlN0YXR1c1Jl +c3VsdCI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhdHVz +UmVzdWx0IiB0eXBlPSJ0bnM6U3RhdHVzUmVzdWx0IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i +dW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hz +OmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJMaXN0T2ZTdGF0dXNSZXN1bHQiIHR5 +cGU9InRuczpMaXN0T2ZTdGF0dXNSZXN1bHQiIG5pbGxhYmxlPSJ0cnVlIj48L3hzOmVsZW1lbnQ+ +DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlN1YnNjcmlwdGlvbkRpYWdub3N0aWNzRGF0YVR5 +cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlc3Npb25J +ZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iU3Vic2NyaXB0aW9uSWQiIHR5cGU9InhzOnVuc2lnbmVkSW50 +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQcmlvcml0eSIgdHlw +ZT0ieHM6dW5zaWduZWRCeXRlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBu +YW1lPSJQdWJsaXNoaW5nSW50ZXJ2YWwiIHR5cGU9InhzOmRvdWJsZSIgbWluT2NjdXJzPSIwIiAv +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4S2VlcEFsaXZlQ291bnQiIHR5cGU9InhzOnVu +c2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNYXhM +aWZldGltZUNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2giIHR5cGU9Inhz +OnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQ +dWJsaXNoaW5nRW5hYmxlZCIgdHlwZT0ieHM6Ym9vbGVhbiIgbWluT2NjdXJzPSIwIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTW9kaWZ5Q291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBt +aW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmFibGVDb3VudCIgdHlw +ZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkRpc2FibGVDb3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlcHVibGlzaFJlcXVlc3RDb3VudCIgdHlwZT0ieHM6 +dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlJl +cHVibGlzaE1lc3NhZ2VSZXF1ZXN0Q291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZXB1Ymxpc2hNZXNzYWdlQ291bnQi +IHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVu +dCBuYW1lPSJUcmFuc2ZlclJlcXVlc3RDb3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRyYW5zZmVycmVkVG9BbHRDbGll +bnRDb3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4 +czplbGVtZW50IG5hbWU9IlRyYW5zZmVycmVkVG9TYW1lQ2xpZW50Q291bnQiIHR5cGU9InhzOnVu +c2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQdWJs +aXNoUmVxdWVzdENvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0K +ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YUNoYW5nZU5vdGlmaWNhdGlvbnNDb3VudCIgdHlw +ZT0ieHM6dW5zaWduZWRJbnQiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5h +bWU9IkV2ZW50Tm90aWZpY2F0aW9uc0NvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2Nj +dXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTm90aWZpY2F0aW9uc0NvdW50IiB0 +eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQg +bmFtZT0iTGF0ZVB1Ymxpc2hSZXF1ZXN0Q291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5P +Y2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDdXJyZW50S2VlcEFsaXZlQ291 +bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJDdXJyZW50TGlmZXRpbWVDb3VudCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVuYWNrbm93bGVkZ2VkTWVz +c2FnZUNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRGlzY2FyZGVkTWVzc2FnZUNvdW50IiB0eXBlPSJ4czp1bnNpZ25l +ZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTW9uaXRvcmVk +SXRlbUNvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iRGlzYWJsZWRNb25pdG9yZWRJdGVtQ291bnQiIHR5cGU9InhzOnVu +c2lnbmVkSW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNb25p +dG9yaW5nUXVldWVPdmVyZmxvd0NvdW50IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJz +PSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTmV4dFNlcXVlbmNlTnVtYmVyIiB0eXBl +PSJ4czp1bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iRXZlbnRRdWV1ZU92ZXJGbG93Q291bnQiIHR5cGU9InhzOnVuc2lnbmVkSW50IiBtaW5PY2N1 +cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iU3Vic2NyaXB0aW9uRGlhZ25vc3RpY3NEYXRhVHlwZSIgdHlwZT0idG5z +OlN1YnNjcmlwdGlvbkRpYWdub3N0aWNzRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZlN1YnNjcmlwdGlvbkRpYWdub3N0aWNzRGF0YVR5cGUiPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlN1YnNjcmlwdGlvbkRpYWdub3N0aWNz +RGF0YVR5cGUiIHR5cGU9InRuczpTdWJzY3JpcHRpb25EaWFnbm9zdGljc0RhdGFUeXBlIiBtaW5P +Y2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJM +aXN0T2ZTdWJzY3JpcHRpb25EaWFnbm9zdGljc0RhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mU3Vi +c2NyaXB0aW9uRGlhZ25vc3RpY3NEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVu +dD4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0iTW9kZWxDaGFuZ2VTdHJ1Y3R1cmVWZXJiTWFz +ayI+DQogICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICA8eHM6ZW51 +bWVyYXRpb24gdmFsdWU9Ik5vZGVBZGRlZF8xIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZh +bHVlPSJOb2RlRGVsZXRlZF8yIiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJSZWZl +cmVuY2VBZGRlZF80IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJSZWZlcmVuY2VE +ZWxldGVkXzgiIC8+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkRhdGFUeXBlQ2hhbmdl +ZF8xNiIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hzOnNpbXBsZVR5cGU+DQogIDx4 +czplbGVtZW50IG5hbWU9Ik1vZGVsQ2hhbmdlU3RydWN0dXJlVmVyYk1hc2siIHR5cGU9InRuczpN +b2RlbENoYW5nZVN0cnVjdHVyZVZlcmJNYXNrIiAvPg0KDQogIDx4czpjb21wbGV4VHlwZSBuYW1l +PSJNb2RlbENoYW5nZVN0cnVjdHVyZURhdGFUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJBZmZlY3RlZCIgdHlwZT0idWE6Tm9kZUlkIiBtaW5PY2N1cnM9 +IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQWZmZWN0ZWRU +eXBlIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJWZXJiIiB0eXBlPSJ4czp1bnNpZ25lZEJ5dGUiIG1pbk9j +Y3Vycz0iMCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8 +eHM6ZWxlbWVudCBuYW1lPSJNb2RlbENoYW5nZVN0cnVjdHVyZURhdGFUeXBlIiB0eXBlPSJ0bnM6 +TW9kZWxDaGFuZ2VTdHJ1Y3R1cmVEYXRhVHlwZSIgLz4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFt +ZT0iTGlzdE9mTW9kZWxDaGFuZ2VTdHJ1Y3R1cmVEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNl +Pg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTW9kZWxDaGFuZ2VTdHJ1Y3R1cmVEYXRhVHlwZSIg +dHlwZT0idG5zOk1vZGVsQ2hhbmdlU3RydWN0dXJlRGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4 +T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+ +DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9Ikxpc3RPZk1vZGVsQ2hh +bmdlU3RydWN0dXJlRGF0YVR5cGUiIHR5cGU9InRuczpMaXN0T2ZNb2RlbENoYW5nZVN0cnVjdHVy +ZURhdGFUeXBlIiBuaWxsYWJsZT0idHJ1ZSI+PC94czplbGVtZW50Pg0KDQogIDx4czpjb21wbGV4 +VHlwZSBuYW1lPSJTZW1hbnRpY0NoYW5nZVN0cnVjdHVyZURhdGFUeXBlIj4NCiAgICA8eHM6c2Vx +dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBZmZlY3RlZCIgdHlwZT0idWE6Tm9kZUlk +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iQWZmZWN0ZWRUeXBlIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9 +InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhz +OmVsZW1lbnQgbmFtZT0iU2VtYW50aWNDaGFuZ2VTdHJ1Y3R1cmVEYXRhVHlwZSIgdHlwZT0idG5z +OlNlbWFudGljQ2hhbmdlU3RydWN0dXJlRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBl +IG5hbWU9Ikxpc3RPZlNlbWFudGljQ2hhbmdlU3RydWN0dXJlRGF0YVR5cGUiPg0KICAgIDx4czpz +ZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlbWFudGljQ2hhbmdlU3RydWN0dXJl +RGF0YVR5cGUiIHR5cGU9InRuczpTZW1hbnRpY0NoYW5nZVN0cnVjdHVyZURhdGFUeXBlIiBtaW5P +Y2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICA8 +L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJM +aXN0T2ZTZW1hbnRpY0NoYW5nZVN0cnVjdHVyZURhdGFUeXBlIiB0eXBlPSJ0bnM6TGlzdE9mU2Vt +YW50aWNDaGFuZ2VTdHJ1Y3R1cmVEYXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVu +dD4NCg0KICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iUmFuZ2UiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IkxvdyIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9 +IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJIaWdoIiB0eXBlPSJ4czpkb3VibGUiIG1p +bk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0K +ICA8eHM6ZWxlbWVudCBuYW1lPSJSYW5nZSIgdHlwZT0idG5zOlJhbmdlIiAvPg0KDQogIDx4czpj +b21wbGV4VHlwZSBuYW1lPSJFVUluZm9ybWF0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJOYW1lc3BhY2VVcmkiIHR5cGU9InhzOnN0cmluZyIgbWluT2Nj +dXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlVuaXRJ +ZCIgdHlwZT0ieHM6aW50IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1l +PSJEaXNwbGF5TmFtZSIgdHlwZT0idWE6TG9jYWxpemVkVGV4dCIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkRlc2NyaXB0aW9uIiB0eXBl +PSJ1YTpMb2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +IDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9 +IkVVSW5mb3JtYXRpb24iIHR5cGU9InRuczpFVUluZm9ybWF0aW9uIiAvPg0KDQogIDx4czpzaW1w +bGVUeXBlICBuYW1lPSJBeGlzU2NhbGVFbnVtZXJhdGlvbiI+DQogICAgPHhzOnJlc3RyaWN0aW9u +IGJhc2U9InhzOnN0cmluZyI+DQogICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkxpbmVhcl8w +IiAvPg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJMb2dfMSIgLz4NCiAgICAgIDx4czpl +bnVtZXJhdGlvbiB2YWx1ZT0iTG5fMiIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8L3hz +OnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkF4aXNTY2FsZUVudW1lcmF0aW9uIiB0 +eXBlPSJ0bnM6QXhpc1NjYWxlRW51bWVyYXRpb24iIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5h +bWU9IkNvbXBsZXhOdW1iZXJUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJSZWFsIiB0eXBlPSJ4czpmbG9hdCIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iSW1hZ2luYXJ5IiB0eXBlPSJ4czpmbG9hdCIgbWluT2NjdXJzPSIw +IiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czplbGVt +ZW50IG5hbWU9IkNvbXBsZXhOdW1iZXJUeXBlIiB0eXBlPSJ0bnM6Q29tcGxleE51bWJlclR5cGUi +IC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRvdWJsZUNvbXBsZXhOdW1iZXJUeXBlIj4N +CiAgICA8eHM6c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJSZWFsIiB0eXBlPSJ4 +czpkb3VibGUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IkltYWdp +bmFyeSIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgPC94czpzZXF1ZW5j +ZT4NCiAgPC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iRG91YmxlQ29tcGxl +eE51bWJlclR5cGUiIHR5cGU9InRuczpEb3VibGVDb21wbGV4TnVtYmVyVHlwZSIgLz4NCg0KICA8 +eHM6Y29tcGxleFR5cGUgbmFtZT0iQXhpc0luZm9ybWF0aW9uIj4NCiAgICA8eHM6c2VxdWVuY2U+ +DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmdpbmVlcmluZ1VuaXRzIiB0eXBlPSJ0bnM6RVVJ +bmZvcm1hdGlvbiIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkVVUmFuZ2UiIHR5cGU9InRuczpSYW5nZSIgbWluT2NjdXJzPSIwIiBuaWxs +YWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9IlRpdGxlIiB0eXBlPSJ1YTpM +b2NhbGl6ZWRUZXh0IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhz +OmVsZW1lbnQgbmFtZT0iQXhpc1NjYWxlVHlwZSIgdHlwZT0idG5zOkF4aXNTY2FsZUVudW1lcmF0 +aW9uIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBeGlzU3RlcHMi +IHR5cGU9InVhOkxpc3RPZkRvdWJsZSIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4N +CiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBu +YW1lPSJBeGlzSW5mb3JtYXRpb24iIHR5cGU9InRuczpBeGlzSW5mb3JtYXRpb24iIC8+DQoNCiAg +PHhzOmNvbXBsZXhUeXBlIG5hbWU9IlhWVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAg +PHhzOmVsZW1lbnQgbmFtZT0iWCIgdHlwZT0ieHM6ZG91YmxlIiBtaW5PY2N1cnM9IjAiIC8+DQog +ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJWYWx1ZSIgdHlwZT0ieHM6ZmxvYXQiIG1pbk9jY3Vycz0i +MCIgLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxl +bWVudCBuYW1lPSJYVlR5cGUiIHR5cGU9InRuczpYVlR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhU +eXBlIG5hbWU9IlByb2dyYW1EaWFnbm9zdGljRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4N +CiAgICAgIDx4czplbGVtZW50IG5hbWU9IkNyZWF0ZVNlc3Npb25JZCIgdHlwZT0idWE6Tm9kZUlk +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iQ3JlYXRlQ2xpZW50TmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxh +YmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSW52b2NhdGlvbkNyZWF0aW9u +VGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ikxhc3RUcmFuc2l0aW9uVGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vy +cz0iMCIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikxhc3RNZXRob2RDYWxsIiB0eXBlPSJ4 +czpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxl +bWVudCBuYW1lPSJMYXN0TWV0aG9kU2Vzc2lvbklkIiB0eXBlPSJ1YTpOb2RlSWQiIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMYXN0TWV0 +aG9kSW5wdXRBcmd1bWVudHMiIHR5cGU9InRuczpMaXN0T2ZBcmd1bWVudCIgbWluT2NjdXJzPSIw +IiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikxhc3RNZXRob2RP +dXRwdXRBcmd1bWVudHMiIHR5cGU9InRuczpMaXN0T2ZBcmd1bWVudCIgbWluT2NjdXJzPSIwIiBu +aWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikxhc3RNZXRob2RDYWxs +VGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDx4czplbGVt +ZW50IG5hbWU9Ikxhc3RNZXRob2RSZXR1cm5TdGF0dXMiIHR5cGU9InRuczpTdGF0dXNSZXN1bHQi +IG1pbk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAg +PC94czpjb21wbGV4VHlwZT4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iUHJvZ3JhbURpYWdub3N0aWNE +YXRhVHlwZSIgdHlwZT0idG5zOlByb2dyYW1EaWFnbm9zdGljRGF0YVR5cGUiIC8+DQoNCiAgPHhz +OmNvbXBsZXhUeXBlIG5hbWU9IlByb2dyYW1EaWFnbm9zdGljMkRhdGFUeXBlIj4NCiAgICA8eHM6 +c2VxdWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDcmVhdGVTZXNzaW9uSWQiIHR5cGU9 +InVhOk5vZGVJZCIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czpl +bGVtZW50IG5hbWU9IkNyZWF0ZUNsaWVudE5hbWUiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJz +PSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ikludm9jYXRp +b25DcmVhdGlvblRpbWUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiIC8+DQogICAg +ICA8eHM6ZWxlbWVudCBuYW1lPSJMYXN0VHJhbnNpdGlvblRpbWUiIHR5cGU9InhzOmRhdGVUaW1l +IiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMYXN0TWV0aG9kQ2Fs +bCIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAg +ICAgPHhzOmVsZW1lbnQgbmFtZT0iTGFzdE1ldGhvZFNlc3Npb25JZCIgdHlwZT0idWE6Tm9kZUlk +IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxlPSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iTGFzdE1ldGhvZElucHV0QXJndW1lbnRzIiB0eXBlPSJ0bnM6TGlzdE9mQXJndW1lbnQiIG1p +bk9jY3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJM +YXN0TWV0aG9kT3V0cHV0QXJndW1lbnRzIiB0eXBlPSJ0bnM6TGlzdE9mQXJndW1lbnQiIG1pbk9j +Y3Vycz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMYXN0 +TWV0aG9kSW5wdXRWYWx1ZXMiIHR5cGU9InVhOkxpc3RPZlZhcmlhbnQiIG1pbk9jY3Vycz0iMCIg +bmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMYXN0TWV0aG9kT3V0 +cHV0VmFsdWVzIiB0eXBlPSJ1YTpMaXN0T2ZWYXJpYW50IiBtaW5PY2N1cnM9IjAiIG5pbGxhYmxl +PSJ0cnVlIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTGFzdE1ldGhvZENhbGxUaW1lIiB0 +eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgPHhzOmVsZW1lbnQgbmFt +ZT0iTGFzdE1ldGhvZFJldHVyblN0YXR1cyIgdHlwZT0idWE6U3RhdHVzQ29kZSIgbWluT2NjdXJz +PSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl +bGVtZW50IG5hbWU9IlByb2dyYW1EaWFnbm9zdGljMkRhdGFUeXBlIiB0eXBlPSJ0bnM6UHJvZ3Jh +bURpYWdub3N0aWMyRGF0YVR5cGUiIC8+DQoNCiAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkFubm90 +YXRpb24iPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1lc3Nh +Z2UiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIiBuaWxsYWJsZT0idHJ1ZSIgLz4NCiAg +ICAgIDx4czplbGVtZW50IG5hbWU9IlVzZXJOYW1lIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vy +cz0iMCIgbmlsbGFibGU9InRydWUiIC8+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBbm5vdGF0 +aW9uVGltZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICA8L3hzOnNl +cXVlbmNlPg0KICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJBbm5vdGF0 +aW9uIiB0eXBlPSJ0bnM6QW5ub3RhdGlvbiIgLz4NCg0KICA8eHM6c2ltcGxlVHlwZSAgbmFtZT0i +RXhjZXB0aW9uRGV2aWF0aW9uRm9ybWF0Ij4NCiAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6 +c3RyaW5nIj4NCiAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQWJzb2x1dGVWYWx1ZV8wIiAv +Pg0KICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJQZXJjZW50T2ZWYWx1ZV8xIiAvPg0KICAg +ICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJQZXJjZW50T2ZSYW5nZV8yIiAvPg0KICAgICAgPHhz +OmVudW1lcmF0aW9uIHZhbHVlPSJQZXJjZW50T2ZFVVJhbmdlXzMiIC8+DQogICAgICA8eHM6ZW51 +bWVyYXRpb24gdmFsdWU9IlVua25vd25fNCIgLz4NCiAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICA8 +L3hzOnNpbXBsZVR5cGU+DQogIDx4czplbGVtZW50IG5hbWU9IkV4Y2VwdGlvbkRldmlhdGlvbkZv +cm1hdCIgdHlwZT0idG5zOkV4Y2VwdGlvbkRldmlhdGlvbkZvcm1hdCIgLz4NCg0KPC94czpzY2hl +bWE+ + + + + NamespaceUri + + i=68 + i=8252 + + + http://opcfoundation.org/UA/2008/02/Types.xsd + + + + Deprecated + + i=68 + i=8252 + + + true + + + + Union + + i=69 + i=8252 + + + //xs:element[@name='Union'] + + + + KeyValuePair + + i=69 + i=8252 + + + //xs:element[@name='KeyValuePair'] + + + + AdditionalParametersType + + i=69 + i=8252 + + + //xs:element[@name='AdditionalParametersType'] + + + + EphemeralKeyType + + i=69 + i=8252 + + + //xs:element[@name='EphemeralKeyType'] + + + + EndpointType + + i=69 + i=8252 + + + //xs:element[@name='EndpointType'] + + + + RationalNumber + + i=69 + i=8252 + + + //xs:element[@name='RationalNumber'] + + + + Vector + + i=69 + i=8252 + + + //xs:element[@name='Vector'] + + + + 3DVector + + i=69 + i=8252 + + + //xs:element[@name='ThreeDVector'] + + + + CartesianCoordinates + + i=69 + i=8252 + + + //xs:element[@name='CartesianCoordinates'] + + + + 3DCartesianCoordinates + + i=69 + i=8252 + + + //xs:element[@name='ThreeDCartesianCoordinates'] + + + + Orientation + + i=69 + i=8252 + + + //xs:element[@name='Orientation'] + + + + 3DOrientation + + i=69 + i=8252 + + + //xs:element[@name='ThreeDOrientation'] + + + + Frame + + i=69 + i=8252 + + + //xs:element[@name='Frame'] + + + + 3DFrame + + i=69 + i=8252 + + + //xs:element[@name='ThreeDFrame'] + + + + IdentityMappingRuleType + + i=69 + i=8252 + + + //xs:element[@name='IdentityMappingRuleType'] + + + + CurrencyUnitType + + i=69 + i=8252 + + + //xs:element[@name='CurrencyUnitType'] + + + + TrustListDataType + + i=69 + i=8252 + + + //xs:element[@name='TrustListDataType'] + + + + DataTypeSchemaHeader + + i=69 + i=8252 + + + //xs:element[@name='DataTypeSchemaHeader'] + + + + DataTypeDescription + + i=69 + i=8252 + + + //xs:element[@name='DataTypeDescription'] + + + + StructureDescription + + i=69 + i=8252 + + + //xs:element[@name='StructureDescription'] + + + + EnumDescription + + i=69 + i=8252 + + + //xs:element[@name='EnumDescription'] + + + + SimpleTypeDescription + + i=69 + i=8252 + + + //xs:element[@name='SimpleTypeDescription'] + + + + UABinaryFileDataType + + i=69 + i=8252 + + + //xs:element[@name='UABinaryFileDataType'] + + + + DataSetMetaDataType + + i=69 + i=8252 + + + //xs:element[@name='DataSetMetaDataType'] + + + + FieldMetaData + + i=69 + i=8252 + + + //xs:element[@name='FieldMetaData'] + + + + ConfigurationVersionDataType + + i=69 + i=8252 + + + //xs:element[@name='ConfigurationVersionDataType'] + + + + PublishedDataSetDataType + + i=69 + i=8252 + + + //xs:element[@name='PublishedDataSetDataType'] + + + + PublishedDataSetSourceDataType + + i=69 + i=8252 + + + //xs:element[@name='PublishedDataSetSourceDataType'] + + + + PublishedVariableDataType + + i=69 + i=8252 + + + //xs:element[@name='PublishedVariableDataType'] + + + + PublishedDataItemsDataType + + i=69 + i=8252 + + + //xs:element[@name='PublishedDataItemsDataType'] + + + + PublishedEventsDataType + + i=69 + i=8252 + + + //xs:element[@name='PublishedEventsDataType'] + + + + DataSetWriterDataType + + i=69 + i=8252 + + + //xs:element[@name='DataSetWriterDataType'] + + + + DataSetWriterTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='DataSetWriterTransportDataType'] + + + + DataSetWriterMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='DataSetWriterMessageDataType'] + + + + PubSubGroupDataType + + i=69 + i=8252 + + + //xs:element[@name='PubSubGroupDataType'] + + + + WriterGroupDataType + + i=69 + i=8252 + + + //xs:element[@name='WriterGroupDataType'] + + + + WriterGroupTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='WriterGroupTransportDataType'] + + + + WriterGroupMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='WriterGroupMessageDataType'] + + + + PubSubConnectionDataType + + i=69 + i=8252 + + + //xs:element[@name='PubSubConnectionDataType'] + + + + ConnectionTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='ConnectionTransportDataType'] + + + + NetworkAddressDataType + + i=69 + i=8252 + + + //xs:element[@name='NetworkAddressDataType'] + + + + NetworkAddressUrlDataType + + i=69 + i=8252 + + + //xs:element[@name='NetworkAddressUrlDataType'] + + + + ReaderGroupDataType + + i=69 + i=8252 + + + //xs:element[@name='ReaderGroupDataType'] + + + + ReaderGroupTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='ReaderGroupTransportDataType'] + + + + ReaderGroupMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='ReaderGroupMessageDataType'] + + + + DataSetReaderDataType + + i=69 + i=8252 + + + //xs:element[@name='DataSetReaderDataType'] + + + + DataSetReaderTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='DataSetReaderTransportDataType'] + + + + DataSetReaderMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='DataSetReaderMessageDataType'] + + + + SubscribedDataSetDataType + + i=69 + i=8252 + + + //xs:element[@name='SubscribedDataSetDataType'] + + + + TargetVariablesDataType + + i=69 + i=8252 + + + //xs:element[@name='TargetVariablesDataType'] + + + + FieldTargetDataType + + i=69 + i=8252 + + + //xs:element[@name='FieldTargetDataType'] + + + + SubscribedDataSetMirrorDataType + + i=69 + i=8252 + + + //xs:element[@name='SubscribedDataSetMirrorDataType'] + + + + PubSubConfigurationDataType + + i=69 + i=8252 + + + //xs:element[@name='PubSubConfigurationDataType'] + + + + UadpWriterGroupMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='UadpWriterGroupMessageDataType'] + + + + UadpDataSetWriterMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='UadpDataSetWriterMessageDataType'] + + + + UadpDataSetReaderMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='UadpDataSetReaderMessageDataType'] + + + + JsonWriterGroupMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='JsonWriterGroupMessageDataType'] + + + + JsonDataSetWriterMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='JsonDataSetWriterMessageDataType'] + + + + JsonDataSetReaderMessageDataType + + i=69 + i=8252 + + + //xs:element[@name='JsonDataSetReaderMessageDataType'] + + + + DatagramConnectionTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='DatagramConnectionTransportDataType'] + + + + DatagramWriterGroupTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='DatagramWriterGroupTransportDataType'] + + + + BrokerConnectionTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='BrokerConnectionTransportDataType'] + + + + BrokerWriterGroupTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='BrokerWriterGroupTransportDataType'] + + + + BrokerDataSetWriterTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='BrokerDataSetWriterTransportDataType'] + + + + BrokerDataSetReaderTransportDataType + + i=69 + i=8252 + + + //xs:element[@name='BrokerDataSetReaderTransportDataType'] + + + + AliasNameDataType + + i=69 + i=8252 + + + //xs:element[@name='AliasNameDataType'] + + + + UnsignedRationalNumber + + i=69 + i=8252 + + + //xs:element[@name='UnsignedRationalNumber'] + + + + RolePermissionType + + i=69 + i=8252 + + + //xs:element[@name='RolePermissionType'] + + + + DataTypeDefinition + + i=69 + i=8252 + + + //xs:element[@name='DataTypeDefinition'] + + + + StructureField + + i=69 + i=8252 + + + //xs:element[@name='StructureField'] + + + + StructureDefinition + + i=69 + i=8252 + + + //xs:element[@name='StructureDefinition'] + + + + EnumDefinition + + i=69 + i=8252 + + + //xs:element[@name='EnumDefinition'] + + + + Argument + + i=69 + i=8252 + + + //xs:element[@name='Argument'] + + + + EnumValueType + + i=69 + i=8252 + + + //xs:element[@name='EnumValueType'] + + + + EnumField + + i=69 + i=8252 + + + //xs:element[@name='EnumField'] + + + + OptionSet + + i=69 + i=8252 + + + //xs:element[@name='OptionSet'] + + + + TimeZoneDataType + + i=69 + i=8252 + + + //xs:element[@name='TimeZoneDataType'] + + + + ApplicationDescription + + i=69 + i=8252 + + + //xs:element[@name='ApplicationDescription'] + + + + ServerOnNetwork + + i=69 + i=8252 + + + //xs:element[@name='ServerOnNetwork'] + + + + UserTokenPolicy + + i=69 + i=8252 + + + //xs:element[@name='UserTokenPolicy'] + + + + EndpointDescription + + i=69 + i=8252 + + + //xs:element[@name='EndpointDescription'] + + + + RegisteredServer + + i=69 + i=8252 + + + //xs:element[@name='RegisteredServer'] + + + + DiscoveryConfiguration + + i=69 + i=8252 + + + //xs:element[@name='DiscoveryConfiguration'] + + + + MdnsDiscoveryConfiguration + + i=69 + i=8252 + + + //xs:element[@name='MdnsDiscoveryConfiguration'] + + + + SignedSoftwareCertificate + + i=69 + i=8252 + + + //xs:element[@name='SignedSoftwareCertificate'] + + + + UserIdentityToken + + i=69 + i=8252 + + + //xs:element[@name='UserIdentityToken'] + + + + AnonymousIdentityToken + + i=69 + i=8252 + + + //xs:element[@name='AnonymousIdentityToken'] + + + + UserNameIdentityToken + + i=69 + i=8252 + + + //xs:element[@name='UserNameIdentityToken'] + + + + X509IdentityToken + + i=69 + i=8252 + + + //xs:element[@name='X509IdentityToken'] + + + + IssuedIdentityToken + + i=69 + i=8252 + + + //xs:element[@name='IssuedIdentityToken'] + + + + AddNodesItem + + i=69 + i=8252 + + + //xs:element[@name='AddNodesItem'] + + + + AddReferencesItem + + i=69 + i=8252 + + + //xs:element[@name='AddReferencesItem'] + + + + DeleteNodesItem + + i=69 + i=8252 + + + //xs:element[@name='DeleteNodesItem'] + + + + DeleteReferencesItem + + i=69 + i=8252 + + + //xs:element[@name='DeleteReferencesItem'] + + + + RelativePathElement + + i=69 + i=8252 + + + //xs:element[@name='RelativePathElement'] + + + + RelativePath + + i=69 + i=8252 + + + //xs:element[@name='RelativePath'] + + + + EndpointConfiguration + + i=69 + i=8252 + + + //xs:element[@name='EndpointConfiguration'] + + + + ContentFilterElement + + i=69 + i=8252 + + + //xs:element[@name='ContentFilterElement'] + + + + ContentFilter + + i=69 + i=8252 + + + //xs:element[@name='ContentFilter'] + + + + FilterOperand + + i=69 + i=8252 + + + //xs:element[@name='FilterOperand'] + + + + ElementOperand + + i=69 + i=8252 + + + //xs:element[@name='ElementOperand'] + + + + LiteralOperand + + i=69 + i=8252 + + + //xs:element[@name='LiteralOperand'] + + + + AttributeOperand + + i=69 + i=8252 + + + //xs:element[@name='AttributeOperand'] + + + + SimpleAttributeOperand + + i=69 + i=8252 + + + //xs:element[@name='SimpleAttributeOperand'] + + + + HistoryEvent + + i=69 + i=8252 + + + //xs:element[@name='HistoryEvent'] + + + + MonitoringFilter + + i=69 + i=8252 + + + //xs:element[@name='MonitoringFilter'] + + + + EventFilter + + i=69 + i=8252 + + + //xs:element[@name='EventFilter'] + + + + AggregateConfiguration + + i=69 + i=8252 + + + //xs:element[@name='AggregateConfiguration'] + + + + HistoryEventFieldList + + i=69 + i=8252 + + + //xs:element[@name='HistoryEventFieldList'] + + + + BuildInfo + + i=69 + i=8252 + + + //xs:element[@name='BuildInfo'] + + + + RedundantServerDataType + + i=69 + i=8252 + + + //xs:element[@name='RedundantServerDataType'] + + + + EndpointUrlListDataType + + i=69 + i=8252 + + + //xs:element[@name='EndpointUrlListDataType'] + + + + NetworkGroupDataType + + i=69 + i=8252 + + + //xs:element[@name='NetworkGroupDataType'] + + + + SamplingIntervalDiagnosticsDataType + + i=69 + i=8252 + + + //xs:element[@name='SamplingIntervalDiagnosticsDataType'] + + + + ServerDiagnosticsSummaryDataType + + i=69 + i=8252 + + + //xs:element[@name='ServerDiagnosticsSummaryDataType'] + + + + ServerStatusDataType + + i=69 + i=8252 + + + //xs:element[@name='ServerStatusDataType'] + + + + SessionDiagnosticsDataType + + i=69 + i=8252 + + + //xs:element[@name='SessionDiagnosticsDataType'] + + + + SessionSecurityDiagnosticsDataType + + i=69 + i=8252 + + + //xs:element[@name='SessionSecurityDiagnosticsDataType'] + + + + ServiceCounterDataType + + i=69 + i=8252 + + + //xs:element[@name='ServiceCounterDataType'] + + + + StatusResult + + i=69 + i=8252 + + + //xs:element[@name='StatusResult'] + + + + SubscriptionDiagnosticsDataType + + i=69 + i=8252 + + + //xs:element[@name='SubscriptionDiagnosticsDataType'] + + + + ModelChangeStructureDataType + + i=69 + i=8252 + + + //xs:element[@name='ModelChangeStructureDataType'] + + + + SemanticChangeStructureDataType + + i=69 + i=8252 + + + //xs:element[@name='SemanticChangeStructureDataType'] + + + + Range + + i=69 + i=8252 + + + //xs:element[@name='Range'] + + + + EUInformation + + i=69 + i=8252 + + + //xs:element[@name='EUInformation'] + + + + ComplexNumberType + + i=69 + i=8252 + + + //xs:element[@name='ComplexNumberType'] + + + + DoubleComplexNumberType + + i=69 + i=8252 + + + //xs:element[@name='DoubleComplexNumberType'] + + + + AxisInformation + + i=69 + i=8252 + + + //xs:element[@name='AxisInformation'] + + + + XVType + + i=69 + i=8252 + + + //xs:element[@name='XVType'] + + + + ProgramDiagnosticDataType + + i=69 + i=8252 + + + //xs:element[@name='ProgramDiagnosticDataType'] + + + + ProgramDiagnostic2DataType + + i=69 + i=8252 + + + //xs:element[@name='ProgramDiagnostic2DataType'] + + + + Annotation + + i=69 + i=8252 + + + //xs:element[@name='Annotation'] + + + + Default JSON + + i=12756 + i=76 + + + + Default JSON + + i=14533 + i=76 + + + + Default JSON + + i=16313 + i=76 + + + + Default JSON + + i=17548 + i=76 + + + + Default JSON + + i=15528 + i=76 + + + + Default JSON + + i=18806 + i=76 + + + + Default JSON + + i=18807 + i=76 + + + + Default JSON + + i=18808 + i=76 + + + + Default JSON + + i=18809 + i=76 + + + + Default JSON + + i=18810 + i=76 + + + + Default JSON + + i=18811 + i=76 + + + + Default JSON + + i=18812 + i=76 + + + + Default JSON + + i=18813 + i=76 + + + + Default JSON + + i=18814 + i=76 + + + + Default JSON + + i=15634 + i=76 + + + + Default JSON + + i=23498 + i=76 + + + + Default JSON + + i=12554 + i=76 + + + + Default JSON + + i=17861 + i=76 + + + + Default JSON + + i=15534 + i=76 + + + + Default JSON + + i=14525 + i=76 + + + + Default JSON + + i=15487 + i=76 + + + + Default JSON + + i=15488 + i=76 + + + + Default JSON + + i=15005 + i=76 + + + + Default JSON + + i=15006 + i=76 + + + + Default JSON + + i=14523 + i=76 + + + + Default JSON + + i=14524 + i=76 + + + + Default JSON + + i=14593 + i=76 + + + + Default JSON + + i=15578 + i=76 + + + + Default JSON + + i=15580 + i=76 + + + + Default JSON + + i=14273 + i=76 + + + + Default JSON + + i=15581 + i=76 + + + + Default JSON + + i=15582 + i=76 + + + + Default JSON + + i=15597 + i=76 + + + + Default JSON + + i=15598 + i=76 + + + + Default JSON + + i=15605 + i=76 + + + + Default JSON + + i=15609 + i=76 + + + + Default JSON + + i=15480 + i=76 + + + + Default JSON + + i=15611 + i=76 + + + + Default JSON + + i=15616 + i=76 + + + + Default JSON + + i=15617 + i=76 + + + + Default JSON + + i=15618 + i=76 + + + + Default JSON + + i=15502 + i=76 + + + + Default JSON + + i=15510 + i=76 + + + + Default JSON + + i=15520 + i=76 + + + + Default JSON + + i=15621 + i=76 + + + + Default JSON + + i=15622 + i=76 + + + + Default JSON + + i=15623 + i=76 + + + + Default JSON + + i=15628 + i=76 + + + + Default JSON + + i=15629 + i=76 + + + + Default JSON + + i=15630 + i=76 + + + + Default JSON + + i=15631 + i=76 + + + + Default JSON + + i=14744 + i=76 + + + + Default JSON + + i=15635 + i=76 + + + + Default JSON + + i=15530 + i=76 + + + + Default JSON + + i=15645 + i=76 + + + + Default JSON + + i=15652 + i=76 + + + + Default JSON + + i=15653 + i=76 + + + + Default JSON + + i=15657 + i=76 + + + + Default JSON + + i=15664 + i=76 + + + + Default JSON + + i=15665 + i=76 + + + + Default JSON + + i=17467 + i=76 + + + + Default JSON + + i=15532 + i=76 + + + + Default JSON + + i=15007 + i=76 + + + + Default JSON + + i=15667 + i=76 + + + + Default JSON + + i=15669 + i=76 + + + + Default JSON + + i=15670 + i=76 + + + + Default JSON + + i=23468 + i=76 + + + + Default JSON + + i=24107 + i=76 + + + + Default JSON + + i=96 + i=76 + + + + Default JSON + + i=97 + i=76 + + + + Default JSON + + i=101 + i=76 + + + + Default JSON + + i=99 + i=76 + + + + Default JSON + + i=100 + i=76 + + + + Default JSON + + i=258 + i=76 + + + + Default JSON + + i=11879 + i=76 + + + + Default JSON + + i=11880 + i=76 + + + + Default JSON + + i=261 + i=76 + + + + Default JSON + + i=264 + i=76 + + + + Default JSON + + i=267 + i=76 + + + + Default JSON + + i=270 + i=76 + + + + Default JSON + + i=273 + i=76 + + + + Default JSON + + i=276 + i=76 + + + + Default JSON + + i=279 + i=76 + + + + Default JSON + + i=282 + i=76 + + + + Default JSON + + i=285 + i=76 + + + + Default JSON + + i=296 + i=76 + + + + Default JSON + + i=7594 + i=76 + + + + Default JSON + + i=102 + i=76 + + + + Default JSON + + i=12755 + i=76 + + + + Default JSON + + i=8912 + i=76 + + + + Default JSON + + i=308 + i=76 + + + + Default JSON + + i=389 + i=76 + + + + Default JSON + + i=392 + i=76 + + + + Default JSON + + i=395 + i=76 + + + + Default JSON + + i=15901 + i=76 + + + + Default JSON + + i=20999 + i=76 + + + + Default JSON + + i=420 + i=76 + + + + Default JSON + + i=423 + i=76 + + + + Default JSON + + i=12189 + i=76 + + + + Default JSON + + i=12190 + i=76 + + + + Default JSON + + i=12191 + i=76 + + + + Default JSON + + i=304 + i=76 + + + + Default JSON + + i=312 + i=76 + + + + Default JSON + + i=426 + i=76 + + + + Default JSON + + i=429 + i=76 + + + + Default JSON + + i=432 + i=76 + + + + Default JSON + + i=435 + i=76 + + + + Default JSON + + i=438 + i=76 + + + + Default JSON + + i=12890 + i=76 + + + + Default JSON + + i=12891 + i=76 + + + + Default JSON + + i=12193 + i=76 + + + + Default JSON + + i=12194 + i=76 + + + + Default JSON + + i=441 + i=76 + + + + Default JSON + + i=444 + i=76 + + + + Default JSON + + i=447 + i=76 + + + + Default JSON + + i=450 + i=76 + + + + Default JSON + + i=453 + i=76 + + + + Default JSON + + i=344 + i=76 + + + + Default JSON + + i=456 + i=76 + + + + Default JSON + + i=459 + i=76 + + + + Default JSON + + i=462 + i=76 + + + + Default JSON + + i=316 + i=76 + + + + Default JSON + + i=319 + i=76 + + + + Default JSON + + i=322 + i=76 + + + + Default JSON + + i=325 + i=76 + + + + Default JSON + + i=938 + i=76 + + + + Default JSON + + i=465 + i=76 + + + + Default JSON + + i=468 + i=76 + + + + Default JSON + + i=471 + i=76 + + + + Default JSON + + i=474 + i=76 + + + + Default JSON + + i=477 + i=76 + + + + Default JSON + + i=480 + i=76 + + + + Default JSON + + i=349 + i=76 + + + + Default JSON + + i=352 + i=76 + + + + Default JSON + + i=355 + i=76 + + + + Default JSON + + i=358 + i=76 + + + + Default JSON + + i=361 + i=76 + + + + Default JSON + + i=364 + i=76 + + + + Default JSON + + i=367 + i=76 + + + + Default JSON + + i=370 + i=76 + + + + Default JSON + + i=373 + i=76 + + + + Default JSON + + i=17606 + i=76 + + + + Default JSON + + i=17607 + i=76 + + + + Default JSON + + i=376 + i=76 + + + + Default JSON + + i=483 + i=76 + + + + Default JSON + + i=486 + i=76 + + + + Default JSON + + i=489 + i=76 + + + + Default JSON + + i=379 + i=76 + + + + Default JSON + + i=492 + i=76 + + + + Default JSON + + i=495 + i=76 + + + + Default JSON + + i=382 + i=76 + + + + Default JSON + + i=498 + i=76 + + + + Default JSON + + i=501 + i=76 + + + + Default JSON + + i=385 + i=76 + + + + Default JSON + + i=504 + i=76 + + + + Default JSON + + i=507 + i=76 + + + + Default JSON + + i=511 + i=76 + + + + Default JSON + + i=514 + i=76 + + + + Default JSON + + i=518 + i=76 + + + + Default JSON + + i=522 + i=76 + + + + Default JSON + + i=525 + i=76 + + + + Default JSON + + i=528 + i=76 + + + + Default JSON + + i=531 + i=76 + + + + Default JSON + + i=534 + i=76 + + + + Default JSON + + i=537 + i=76 + + + + Default JSON + + i=540 + i=76 + + + + Default JSON + + i=543 + i=76 + + + + Default JSON + + i=546 + i=76 + + + + Default JSON + + i=549 + i=76 + + + + Default JSON + + i=552 + i=76 + + + + Default JSON + + i=555 + i=76 + + + + Default JSON + + i=558 + i=76 + + + + Default JSON + + i=561 + i=76 + + + + Default JSON + + i=564 + i=76 + + + + Default JSON + + i=567 + i=76 + + + + Default JSON + + i=331 + i=76 + + + + Default JSON + + i=570 + i=76 + + + + Default JSON + + i=573 + i=76 + + + + Default JSON + + i=577 + i=76 + + + + Default JSON + + i=580 + i=76 + + + + Default JSON + + i=583 + i=76 + + + + Default JSON + + i=586 + i=76 + + + + Default JSON + + i=589 + i=76 + + + + Default JSON + + i=592 + i=76 + + + + Default JSON + + i=595 + i=76 + + + + Default JSON + + i=598 + i=76 + + + + Default JSON + + i=601 + i=76 + + + + Default JSON + + i=604 + i=76 + + + + Default JSON + + i=607 + i=76 + + + + Default JSON + + i=610 + i=76 + + + + Default JSON + + i=613 + i=76 + + + + Default JSON + + i=616 + i=76 + + + + Default JSON + + i=619 + i=76 + + + + Default JSON + + i=622 + i=76 + + + + Default JSON + + i=626 + i=76 + + + + Default JSON + + i=629 + i=76 + + + + Default JSON + + i=632 + i=76 + + + + Default JSON + + i=635 + i=76 + + + + Default JSON + + i=638 + i=76 + + + + Default JSON + + i=641 + i=76 + + + + Default JSON + + i=644 + i=76 + + + + Default JSON + + i=647 + i=76 + + + + Default JSON + + i=650 + i=76 + + + + Default JSON + + i=653 + i=76 + + + + Default JSON + + i=23497 + i=76 + + + + Default JSON + + i=656 + i=76 + + + + Default JSON + + i=11216 + i=76 + + + + Default JSON + + i=11217 + i=76 + + + + Default JSON + + i=659 + i=76 + + + + Default JSON + + i=662 + i=76 + + + + Default JSON + + i=665 + i=76 + + + + Default JSON + + i=668 + i=76 + + + + Default JSON + + i=671 + i=76 + + + + Default JSON + + i=674 + i=76 + + + + Default JSON + + i=677 + i=76 + + + + Default JSON + + i=680 + i=76 + + + + Default JSON + + i=11295 + i=76 + + + + Default JSON + + i=683 + i=76 + + + + Default JSON + + i=686 + i=76 + + + + Default JSON + + i=689 + i=76 + + + + Default JSON + + i=692 + i=76 + + + + Default JSON + + i=695 + i=76 + + + + Default JSON + + i=698 + i=76 + + + + Default JSON + + i=701 + i=76 + + + + Default JSON + + i=704 + i=76 + + + + Default JSON + + i=707 + i=76 + + + + Default JSON + + i=710 + i=76 + + + + Default JSON + + i=713 + i=76 + + + + Default JSON + + i=719 + i=76 + + + + Default JSON + + i=722 + i=76 + + + + Default JSON + + i=725 + i=76 + + + + Default JSON + + i=948 + i=76 + + + + Default JSON + + i=728 + i=76 + + + + Default JSON + + i=731 + i=76 + + + + Default JSON + + i=734 + i=76 + + + + Default JSON + + i=737 + i=76 + + + + Default JSON + + i=740 + i=76 + + + + Default JSON + + i=743 + i=76 + + + + Default JSON + + i=746 + i=76 + + + + Default JSON + + i=749 + i=76 + + + + Default JSON + + i=752 + i=76 + + + + Default JSON + + i=755 + i=76 + + + + Default JSON + + i=758 + i=76 + + + + Default JSON + + i=761 + i=76 + + + + Default JSON + + i=764 + i=76 + + + + Default JSON + + i=767 + i=76 + + + + Default JSON + + i=770 + i=76 + + + + Default JSON + + i=773 + i=76 + + + + Default JSON + + i=776 + i=76 + + + + Default JSON + + i=779 + i=76 + + + + Default JSON + + i=782 + i=76 + + + + Default JSON + + i=785 + i=76 + + + + Default JSON + + i=788 + i=76 + + + + Default JSON + + i=791 + i=76 + + + + Default JSON + + i=794 + i=76 + + + + Default JSON + + i=797 + i=76 + + + + Default JSON + + i=800 + i=76 + + + + Default JSON + + i=803 + i=76 + + + + Default JSON + + i=945 + i=76 + + + + Default JSON + + i=809 + i=76 + + + + Default JSON + + i=806 + i=76 + + + + Default JSON + + i=914 + i=76 + + + + Default JSON + + i=917 + i=76 + + + + Default JSON + + i=920 + i=76 + + + + Default JSON + + i=818 + i=76 + + + + Default JSON + + i=821 + i=76 + + + + Default JSON + + i=824 + i=76 + + + + Default JSON + + i=827 + i=76 + + + + Default JSON + + i=830 + i=76 + + + + Default JSON + + i=833 + i=76 + + + + Default JSON + + i=836 + i=76 + + + + Default JSON + + i=839 + i=76 + + + + Default JSON + + i=842 + i=76 + + + + Default JSON + + i=845 + i=76 + + + + Default JSON + + i=848 + i=76 + + + + Default JSON + + i=338 + i=76 + + + + Default JSON + + i=853 + i=76 + + + + Default JSON + + i=11943 + i=76 + + + + Default JSON + + i=11944 + i=76 + + + + Default JSON + + i=856 + i=76 + + + + Default JSON + + i=859 + i=76 + + + + Default JSON + + i=862 + i=76 + + + + Default JSON + + i=865 + i=76 + + + + Default JSON + + i=868 + i=76 + + + + Default JSON + + i=871 + i=76 + + + + Default JSON + + i=299 + i=76 + + + + Default JSON + + i=874 + i=76 + + + + Default JSON + + i=877 + i=76 + + + + Default JSON + + i=897 + i=76 + + + + Default JSON + + i=884 + i=76 + + + + Default JSON + + i=887 + i=76 + + + + Default JSON + + i=12171 + i=76 + + + + Default JSON + + i=12172 + i=76 + + + + Default JSON + + i=12079 + i=76 + + + + Default JSON + + i=12080 + i=76 + + + + Default JSON + + i=894 + i=76 + + + + Default JSON + + i=24033 + i=76 + + + + Default JSON + + i=891 + i=76 + + + diff --git a/protocols/opcua/downloads/Opc.Ua.Types.bsd b/protocols/opcua/downloads/Opc.Ua.Types.bsd new file mode 100644 index 00000000000..d6407d884dc --- /dev/null +++ b/protocols/opcua/downloads/Opc.Ua.Types.bsd @@ -0,0 +1,3162 @@ + + + + + + + + + An XML element encoded as a UTF-8 string. + + + + + + The possible encodings for a NodeId value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An identifier for a node in a UA server address space. + + + + + + + + + + + + An identifier for a node in a UA server address space qualified with a complete namespace string. + + + + + + + + + + + + + + + A 32-bit status code value. + + + + A recursive structure containing diagnostic information associated with a status code. + + + + + + + + + + + + + + + + + + + A string qualified with a namespace index. + + + + + + A string qualified with a namespace index. + + + + + + + + + A value with an associated timestamp, and quality. + + + + + + + + + + + + + + + + + A serialized object prefixed with its data type identifier. + + + + + + + + + + + A union of several types. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/protocols/opcua/downloads/StatusCode.csv b/protocols/opcua/downloads/StatusCode.csv new file mode 100644 index 00000000000..5ff92120a57 --- /dev/null +++ b/protocols/opcua/downloads/StatusCode.csv @@ -0,0 +1,261 @@ +Good,0x00000000,"The operation succeeded." +Uncertain,0x40000000,"The operation was uncertain." +Bad,0x80000000,"The operation failed." +BadUnexpectedError,0x80010000,"An unexpected error occurred." +BadInternalError,0x80020000,"An internal error occurred as a result of a programming or configuration error." +BadOutOfMemory,0x80030000,"Not enough memory to complete the operation." +BadResourceUnavailable,0x80040000,"An operating system resource is not available." +BadCommunicationError,0x80050000,"A low level communication error occurred." +BadEncodingError,0x80060000,"Encoding halted because of invalid data in the objects being serialized." +BadDecodingError,0x80070000,"Decoding halted because of invalid data in the stream." +BadEncodingLimitsExceeded,0x80080000,"The message encoding/decoding limits imposed by the stack have been exceeded." +BadRequestTooLarge,0x80B80000,"The request message size exceeds limits set by the server." +BadResponseTooLarge,0x80B90000,"The response message size exceeds limits set by the client." +BadUnknownResponse,0x80090000,"An unrecognized response was received from the server." +BadTimeout,0x800A0000,"The operation timed out." +BadServiceUnsupported,0x800B0000,"The server does not support the requested service." +BadShutdown,0x800C0000,"The operation was cancelled because the application is shutting down." +BadServerNotConnected,0x800D0000,"The operation could not complete because the client is not connected to the server." +BadServerHalted,0x800E0000,"The server has stopped and cannot process any requests." +BadNothingToDo,0x800F0000,"There was nothing to do because the client passed a list of operations with no elements." +BadTooManyOperations,0x80100000,"The request could not be processed because it specified too many operations." +BadTooManyMonitoredItems,0x80DB0000,"The request could not be processed because there are too many monitored items in the subscription." +BadDataTypeIdUnknown,0x80110000,"The extension object cannot be (de)serialized because the data type id is not recognized." +BadCertificateInvalid,0x80120000,"The certificate provided as a parameter is not valid." +BadSecurityChecksFailed,0x80130000,"An error occurred verifying security." +BadCertificatePolicyCheckFailed,0x81140000,"The certificate does not meet the requirements of the security policy." +BadCertificateTimeInvalid,0x80140000,"The certificate has expired or is not yet valid." +BadCertificateIssuerTimeInvalid,0x80150000,"An issuer certificate has expired or is not yet valid." +BadCertificateHostNameInvalid,0x80160000,"The HostName used to connect to a server does not match a HostName in the certificate." +BadCertificateUriInvalid,0x80170000,"The URI specified in the ApplicationDescription does not match the URI in the certificate." +BadCertificateUseNotAllowed,0x80180000,"The certificate may not be used for the requested operation." +BadCertificateIssuerUseNotAllowed,0x80190000,"The issuer certificate may not be used for the requested operation." +BadCertificateUntrusted,0x801A0000,"The certificate is not trusted." +BadCertificateRevocationUnknown,0x801B0000,"It was not possible to determine if the certificate has been revoked." +BadCertificateIssuerRevocationUnknown,0x801C0000,"It was not possible to determine if the issuer certificate has been revoked." +BadCertificateRevoked,0x801D0000,"The certificate has been revoked." +BadCertificateIssuerRevoked,0x801E0000,"The issuer certificate has been revoked." +BadCertificateChainIncomplete,0x810D0000,"The certificate chain is incomplete." +BadUserAccessDenied,0x801F0000,"User does not have permission to perform the requested operation." +BadIdentityTokenInvalid,0x80200000,"The user identity token is not valid." +BadIdentityTokenRejected,0x80210000,"The user identity token is valid but the server has rejected it." +BadSecureChannelIdInvalid,0x80220000,"The specified secure channel is no longer valid." +BadInvalidTimestamp,0x80230000,"The timestamp is outside the range allowed by the server." +BadNonceInvalid,0x80240000,"The nonce does appear to be not a random value or it is not the correct length." +BadSessionIdInvalid,0x80250000,"The session id is not valid." +BadSessionClosed,0x80260000,"The session was closed by the client." +BadSessionNotActivated,0x80270000,"The session cannot be used because ActivateSession has not been called." +BadSubscriptionIdInvalid,0x80280000,"The subscription id is not valid." +BadRequestHeaderInvalid,0x802A0000,"The header for the request is missing or invalid." +BadTimestampsToReturnInvalid,0x802B0000,"The timestamps to return parameter is invalid." +BadRequestCancelledByClient,0x802C0000,"The request was cancelled by the client." +BadTooManyArguments,0x80E50000,"Too many arguments were provided." +BadLicenseExpired,0x810E0000,"The server requires a license to operate in general or to perform a service or operation, but existing license is expired." +BadLicenseLimitsExceeded,0x810F0000,"The server has limits on number of allowed operations / objects, based on installed licenses, and these limits where exceeded." +BadLicenseNotAvailable,0x81100000,"The server does not have a license which is required to operate in general or to perform a service or operation." +GoodSubscriptionTransferred,0x002D0000,"The subscription was transferred to another session." +GoodCompletesAsynchronously,0x002E0000,"The processing will complete asynchronously." +GoodOverload,0x002F0000,"Sampling has slowed down due to resource limitations." +GoodClamped,0x00300000,"The value written was accepted but was clamped." +BadNoCommunication,0x80310000,"Communication with the data source is defined, but not established, and there is no last known value available." +BadWaitingForInitialData,0x80320000,"Waiting for the server to obtain values from the underlying data source." +BadNodeIdInvalid,0x80330000,"The syntax of the node id is not valid." +BadNodeIdUnknown,0x80340000,"The node id refers to a node that does not exist in the server address space." +BadAttributeIdInvalid,0x80350000,"The attribute is not supported for the specified Node." +BadIndexRangeInvalid,0x80360000,"The syntax of the index range parameter is invalid." +BadIndexRangeNoData,0x80370000,"No data exists within the range of indexes specified." +BadDataEncodingInvalid,0x80380000,"The data encoding is invalid." +BadDataEncodingUnsupported,0x80390000,"The server does not support the requested data encoding for the node." +BadNotReadable,0x803A0000,"The access level does not allow reading or subscribing to the Node." +BadNotWritable,0x803B0000,"The access level does not allow writing to the Node." +BadOutOfRange,0x803C0000,"The value was out of range." +BadNotSupported,0x803D0000,"The requested operation is not supported." +BadNotFound,0x803E0000,"A requested item was not found or a search operation ended without success." +BadObjectDeleted,0x803F0000,"The object cannot be used because it has been deleted." +BadNotImplemented,0x80400000,"Requested operation is not implemented." +BadMonitoringModeInvalid,0x80410000,"The monitoring mode is invalid." +BadMonitoredItemIdInvalid,0x80420000,"The monitoring item id does not refer to a valid monitored item." +BadMonitoredItemFilterInvalid,0x80430000,"The monitored item filter parameter is not valid." +BadMonitoredItemFilterUnsupported,0x80440000,"The server does not support the requested monitored item filter." +BadFilterNotAllowed,0x80450000,"A monitoring filter cannot be used in combination with the attribute specified." +BadStructureMissing,0x80460000,"A mandatory structured parameter was missing or null." +BadEventFilterInvalid,0x80470000,"The event filter is not valid." +BadContentFilterInvalid,0x80480000,"The content filter is not valid." +BadFilterOperatorInvalid,0x80C10000,"An unrecognized operator was provided in a filter." +BadFilterOperatorUnsupported,0x80C20000,"A valid operator was provided, but the server does not provide support for this filter operator." +BadFilterOperandCountMismatch,0x80C30000,"The number of operands provided for the filter operator was less then expected for the operand provided." +BadFilterOperandInvalid,0x80490000,"The operand used in a content filter is not valid." +BadFilterElementInvalid,0x80C40000,"The referenced element is not a valid element in the content filter." +BadFilterLiteralInvalid,0x80C50000,"The referenced literal is not a valid value." +BadContinuationPointInvalid,0x804A0000,"The continuation point provide is longer valid." +BadNoContinuationPoints,0x804B0000,"The operation could not be processed because all continuation points have been allocated." +BadReferenceTypeIdInvalid,0x804C0000,"The reference type id does not refer to a valid reference type node." +BadBrowseDirectionInvalid,0x804D0000,"The browse direction is not valid." +BadNodeNotInView,0x804E0000,"The node is not part of the view." +BadNumericOverflow,0x81120000,"The number was not accepted because of a numeric overflow." +BadServerUriInvalid,0x804F0000,"The ServerUri is not a valid URI." +BadServerNameMissing,0x80500000,"No ServerName was specified." +BadDiscoveryUrlMissing,0x80510000,"No DiscoveryUrl was specified." +BadSempahoreFileMissing,0x80520000,"The semaphore file specified by the client is not valid." +BadRequestTypeInvalid,0x80530000,"The security token request type is not valid." +BadSecurityModeRejected,0x80540000,"The security mode does not meet the requirements set by the server." +BadSecurityPolicyRejected,0x80550000,"The security policy does not meet the requirements set by the server." +BadTooManySessions,0x80560000,"The server has reached its maximum number of sessions." +BadUserSignatureInvalid,0x80570000,"The user token signature is missing or invalid." +BadApplicationSignatureInvalid,0x80580000,"The signature generated with the client certificate is missing or invalid." +BadNoValidCertificates,0x80590000,"The client did not provide at least one software certificate that is valid and meets the profile requirements for the server." +BadIdentityChangeNotSupported,0x80C60000,"The server does not support changing the user identity assigned to the session." +BadRequestCancelledByRequest,0x805A0000,"The request was cancelled by the client with the Cancel service." +BadParentNodeIdInvalid,0x805B0000,"The parent node id does not to refer to a valid node." +BadReferenceNotAllowed,0x805C0000,"The reference could not be created because it violates constraints imposed by the data model." +BadNodeIdRejected,0x805D0000,"The requested node id was reject because it was either invalid or server does not allow node ids to be specified by the client." +BadNodeIdExists,0x805E0000,"The requested node id is already used by another node." +BadNodeClassInvalid,0x805F0000,"The node class is not valid." +BadBrowseNameInvalid,0x80600000,"The browse name is invalid." +BadBrowseNameDuplicated,0x80610000,"The browse name is not unique among nodes that share the same relationship with the parent." +BadNodeAttributesInvalid,0x80620000,"The node attributes are not valid for the node class." +BadTypeDefinitionInvalid,0x80630000,"The type definition node id does not reference an appropriate type node." +BadSourceNodeIdInvalid,0x80640000,"The source node id does not reference a valid node." +BadTargetNodeIdInvalid,0x80650000,"The target node id does not reference a valid node." +BadDuplicateReferenceNotAllowed,0x80660000,"The reference type between the nodes is already defined." +BadInvalidSelfReference,0x80670000,"The server does not allow this type of self reference on this node." +BadReferenceLocalOnly,0x80680000,"The reference type is not valid for a reference to a remote server." +BadNoDeleteRights,0x80690000,"The server will not allow the node to be deleted." +UncertainReferenceNotDeleted,0x40BC0000,"The server was not able to delete all target references." +BadServerIndexInvalid,0x806A0000,"The server index is not valid." +BadViewIdUnknown,0x806B0000,"The view id does not refer to a valid view node." +BadViewTimestampInvalid,0x80C90000,"The view timestamp is not available or not supported." +BadViewParameterMismatch,0x80CA0000,"The view parameters are not consistent with each other." +BadViewVersionInvalid,0x80CB0000,"The view version is not available or not supported." +UncertainNotAllNodesAvailable,0x40C00000,"The list of references may not be complete because the underlying system is not available." +GoodResultsMayBeIncomplete,0x00BA0000,"The server should have followed a reference to a node in a remote server but did not. The result set may be incomplete." +BadNotTypeDefinition,0x80C80000,"The provided Nodeid was not a type definition nodeid." +UncertainReferenceOutOfServer,0x406C0000,"One of the references to follow in the relative path references to a node in the address space in another server." +BadTooManyMatches,0x806D0000,"The requested operation has too many matches to return." +BadQueryTooComplex,0x806E0000,"The requested operation requires too many resources in the server." +BadNoMatch,0x806F0000,"The requested operation has no match to return." +BadMaxAgeInvalid,0x80700000,"The max age parameter is invalid." +BadSecurityModeInsufficient,0x80E60000,"The operation is not permitted over the current secure channel." +BadHistoryOperationInvalid,0x80710000,"The history details parameter is not valid." +BadHistoryOperationUnsupported,0x80720000,"The server does not support the requested operation." +BadInvalidTimestampArgument,0x80BD0000,"The defined timestamp to return was invalid." +BadWriteNotSupported,0x80730000,"The server does not support writing the combination of value, status and timestamps provided." +BadTypeMismatch,0x80740000,"The value supplied for the attribute is not of the same type as the attribute's value." +BadMethodInvalid,0x80750000,"The method id does not refer to a method for the specified object." +BadArgumentsMissing,0x80760000,"The client did not specify all of the input arguments for the method." +BadNotExecutable,0x81110000,"The executable attribute does not allow the execution of the method." +BadTooManySubscriptions,0x80770000,"The server has reached its maximum number of subscriptions." +BadTooManyPublishRequests,0x80780000,"The server has reached the maximum number of queued publish requests." +BadNoSubscription,0x80790000,"There is no subscription available for this session." +BadSequenceNumberUnknown,0x807A0000,"The sequence number is unknown to the server." +GoodRetransmissionQueueNotSupported,0x00DF0000,"The Server does not support retransmission queue and acknowledgement of sequence numbers is not available." +BadMessageNotAvailable,0x807B0000,"The requested notification message is no longer available." +BadInsufficientClientProfile,0x807C0000,"The client of the current session does not support one or more Profiles that are necessary for the subscription." +BadStateNotActive,0x80BF0000,"The sub-state machine is not currently active." +BadAlreadyExists,0x81150000,"An equivalent rule already exists." +BadTcpServerTooBusy,0x807D0000,"The server cannot process the request because it is too busy." +BadTcpMessageTypeInvalid,0x807E0000,"The type of the message specified in the header invalid." +BadTcpSecureChannelUnknown,0x807F0000,"The SecureChannelId and/or TokenId are not currently in use." +BadTcpMessageTooLarge,0x80800000,"The size of the message chunk specified in the header is too large." +BadTcpNotEnoughResources,0x80810000,"There are not enough resources to process the request." +BadTcpInternalError,0x80820000,"An internal error occurred." +BadTcpEndpointUrlInvalid,0x80830000,"The server does not recognize the QueryString specified." +BadRequestInterrupted,0x80840000,"The request could not be sent because of a network interruption." +BadRequestTimeout,0x80850000,"Timeout occurred while processing the request." +BadSecureChannelClosed,0x80860000,"The secure channel has been closed." +BadSecureChannelTokenUnknown,0x80870000,"The token has expired or is not recognized." +BadSequenceNumberInvalid,0x80880000,"The sequence number is not valid." +BadProtocolVersionUnsupported,0x80BE0000,"The applications do not have compatible protocol versions." +BadConfigurationError,0x80890000,"There is a problem with the configuration that affects the usefulness of the value." +BadNotConnected,0x808A0000,"The variable should receive its value from another variable, but has never been configured to do so." +BadDeviceFailure,0x808B0000,"There has been a failure in the device/data source that generates the value that has affected the value." +BadSensorFailure,0x808C0000,"There has been a failure in the sensor from which the value is derived by the device/data source." +BadOutOfService,0x808D0000,"The source of the data is not operational." +BadDeadbandFilterInvalid,0x808E0000,"The deadband filter is not valid." +UncertainNoCommunicationLastUsableValue,0x408F0000,"Communication to the data source has failed. The variable value is the last value that had a good quality." +UncertainLastUsableValue,0x40900000,"Whatever was updating this value has stopped doing so." +UncertainSubstituteValue,0x40910000,"The value is an operational value that was manually overwritten." +UncertainInitialValue,0x40920000,"The value is an initial value for a variable that normally receives its value from another variable." +UncertainSensorNotAccurate,0x40930000,"The value is at one of the sensor limits." +UncertainEngineeringUnitsExceeded,0x40940000,"The value is outside of the range of values defined for this parameter." +UncertainSubNormal,0x40950000,"The value is derived from multiple sources and has less than the required number of Good sources." +GoodLocalOverride,0x00960000,"The value has been overridden." +BadRefreshInProgress,0x80970000,"This Condition refresh failed, a Condition refresh operation is already in progress." +BadConditionAlreadyDisabled,0x80980000,"This condition has already been disabled." +BadConditionAlreadyEnabled,0x80CC0000,"This condition has already been enabled." +BadConditionDisabled,0x80990000,"Property not available, this condition is disabled." +BadEventIdUnknown,0x809A0000,"The specified event id is not recognized." +BadEventNotAcknowledgeable,0x80BB0000,"The event cannot be acknowledged." +BadDialogNotActive,0x80CD0000,"The dialog condition is not active." +BadDialogResponseInvalid,0x80CE0000,"The response is not valid for the dialog." +BadConditionBranchAlreadyAcked,0x80CF0000,"The condition branch has already been acknowledged." +BadConditionBranchAlreadyConfirmed,0x80D00000,"The condition branch has already been confirmed." +BadConditionAlreadyShelved,0x80D10000,"The condition has already been shelved." +BadConditionNotShelved,0x80D20000,"The condition is not currently shelved." +BadShelvingTimeOutOfRange,0x80D30000,"The shelving time not within an acceptable range." +BadNoData,0x809B0000,"No data exists for the requested time range or event filter." +BadBoundNotFound,0x80D70000,"No data found to provide upper or lower bound value." +BadBoundNotSupported,0x80D80000,"The server cannot retrieve a bound for the variable." +BadDataLost,0x809D0000,"Data is missing due to collection started/stopped/lost." +BadDataUnavailable,0x809E0000,"Expected data is unavailable for the requested time range due to an un-mounted volume, an off-line archive or tape, or similar reason for temporary unavailability." +BadEntryExists,0x809F0000,"The data or event was not successfully inserted because a matching entry exists." +BadNoEntryExists,0x80A00000,"The data or event was not successfully updated because no matching entry exists." +BadTimestampNotSupported,0x80A10000,"The client requested history using a timestamp format the server does not support (i.e requested ServerTimestamp when server only supports SourceTimestamp)." +GoodEntryInserted,0x00A20000,"The data or event was successfully inserted into the historical database." +GoodEntryReplaced,0x00A30000,"The data or event field was successfully replaced in the historical database." +UncertainDataSubNormal,0x40A40000,"The value is derived from multiple values and has less than the required number of Good values." +GoodNoData,0x00A50000,"No data exists for the requested time range or event filter." +GoodMoreData,0x00A60000,"The data or event field was successfully replaced in the historical database." +BadAggregateListMismatch,0x80D40000,"The requested number of Aggregates does not match the requested number of NodeIds." +BadAggregateNotSupported,0x80D50000,"The requested Aggregate is not support by the server." +BadAggregateInvalidInputs,0x80D60000,"The aggregate value could not be derived due to invalid data inputs." +BadAggregateConfigurationRejected,0x80DA0000,"The aggregate configuration is not valid for specified node." +GoodDataIgnored,0x00D90000,"The request specifies fields which are not valid for the EventType or cannot be saved by the historian." +BadRequestNotAllowed,0x80E40000,"The request was rejected by the server because it did not meet the criteria set by the server." +BadRequestNotComplete,0x81130000,"The request has not been processed by the server yet." +BadTicketRequired,0x811F0000,"The device identity needs a ticket before it can be accepted." +BadTicketInvalid,0x81200000,"The device identity needs a ticket before it can be accepted." +GoodEdited,0x00DC0000,"The value does not come from the real source and has been edited by the server." +GoodPostActionFailed,0x00DD0000,"There was an error in execution of these post-actions." +UncertainDominantValueChanged,0x40DE0000,"The related EngineeringUnit has been changed but the Variable Value is still provided based on the previous unit." +GoodDependentValueChanged,0x00E00000,"A dependent value has been changed but the change has not been applied to the device." +BadDominantValueChanged,0x80E10000,"The related EngineeringUnit has been changed but this change has not been applied to the device. The Variable Value is still dependent on the previous unit but its status is currently Bad." +UncertainDependentValueChanged,0x40E20000,"A dependent value has been changed but the change has not been applied to the device. The quality of the dominant variable is uncertain." +BadDependentValueChanged,0x80E30000,"A dependent value has been changed but the change has not been applied to the device. The quality of the dominant variable is Bad." +GoodEdited_DependentValueChanged,0x01160000,"It is delivered with a dominant Variable value when a dependent Variable has changed but the change has not been applied." +GoodEdited_DominantValueChanged,0x01170000,"It is delivered with a dependent Variable value when a dominant Variable has changed but the change has not been applied." +GoodEdited_DominantValueChanged_DependentValueChanged,0x01180000,"It is delivered with a dependent Variable value when a dominant or dependent Variable has changed but change has not been applied." +BadEdited_OutOfRange,0x81190000,"It is delivered with a Variable value when Variable has changed but the value is not legal." +BadInitialValue_OutOfRange,0x811A0000,"It is delivered with a Variable value when a source Variable has changed but the value is not legal." +BadOutOfRange_DominantValueChanged,0x811B0000,"It is delivered with a dependent Variable value when a dominant Variable has changed and the value is not legal." +BadEdited_OutOfRange_DominantValueChanged,0x811C0000,"It is delivered with a dependent Variable value when a dominant Variable has changed, the value is not legal and the change has not been applied." +BadOutOfRange_DominantValueChanged_DependentValueChanged,0x811D0000,"It is delivered with a dependent Variable value when a dominant or dependent Variable has changed and the value is not legal." +BadEdited_OutOfRange_DominantValueChanged_DependentValueChanged,0x811E0000,"It is delivered with a dependent Variable value when a dominant or dependent Variable has changed, the value is not legal and the change has not been applied." +GoodCommunicationEvent,0x00A70000,"The communication layer has raised an event." +GoodShutdownEvent,0x00A80000,"The system is shutting down." +GoodCallAgain,0x00A90000,"The operation is not finished and needs to be called again." +GoodNonCriticalTimeout,0x00AA0000,"A non-critical timeout occurred." +BadInvalidArgument,0x80AB0000,"One or more arguments are invalid." +BadConnectionRejected,0x80AC0000,"Could not establish a network connection to remote server." +BadDisconnect,0x80AD0000,"The server has disconnected from the client." +BadConnectionClosed,0x80AE0000,"The network connection has been closed." +BadInvalidState,0x80AF0000,"The operation cannot be completed because the object is closed, uninitialized or in some other invalid state." +BadEndOfStream,0x80B00000,"Cannot move beyond end of the stream." +BadNoDataAvailable,0x80B10000,"No data is currently available for reading from a non-blocking stream." +BadWaitingForResponse,0x80B20000,"The asynchronous operation is waiting for a response." +BadOperationAbandoned,0x80B30000,"The asynchronous operation was abandoned by the caller." +BadExpectedStreamToBlock,0x80B40000,"The stream did not return all data requested (possibly because it is a non-blocking stream)." +BadWouldBlock,0x80B50000,"Non blocking behaviour is required and the operation would block." +BadSyntaxError,0x80B60000,"A value had an invalid syntax." +BadMaxConnectionsReached,0x80B70000,"The operation could not be finished because all available connections are in use." +UncertainTransducerInManual,0x42080000,"The value may not be accurate because the transducer is in manual mode." +UncertainSimulatedValue,0x42090000,"The value is simulated." +UncertainSensorCalibration,0x420A0000,"The value may not be accurate due to a sensor calibration fault." +UncertainConfigurationError,0x420F0000,"The value may not be accurate due to a configuration issue." +GoodCascadeInitializationAcknowledged,0x04010000,"The value source supports cascade handshaking and the value has been Initialized based on an initialization request from a cascade secondary." +GoodCascadeInitializationRequest,0x04020000,"The value source supports cascade handshaking and is requesting initialization of a cascade primary." +GoodCascadeNotInvited,0x04030000,"The value source supports cascade handshaking, however, the source’s current state does not allow for cascade." +GoodCascadeNotSelected,0x04040000,"The value source supports cascade handshaking, however, the source has not selected the corresponding cascade primary for use." +GoodFaultStateActive,0x04070000,"There is a fault state condition active in the value source." +GoodInitiateFaultState,0x04080000,"A fault state condition is being requested of the destination." +GoodCascade,0x04090000,"The value is accurate, and the signal source supports cascade handshaking." \ No newline at end of file diff --git a/protocols/opcua/pom.xml b/protocols/opcua/pom.xml index c1fb9d1dd5a..61fca3c51a0 100644 --- a/protocols/opcua/pom.xml +++ b/protocols/opcua/pom.xml @@ -114,8 +114,9 @@ + - ${project.build.directory}/downloads + ${project.basedir}/downloads Opc.Ua.Types.bsd src/main/xslt/opc-services.xsl ${project.build.outputDirectory}/protocols/opcua @@ -131,7 +132,7 @@ servicesEnum - ${project.build.directory}/downloads/Opc.Ua.NodeIds.Services.csv + ${project.basedir}/downloads/Opc.Ua.NodeIds.Services.csv @@ -142,7 +143,7 @@ - ${project.build.directory}/downloads + ${project.basedir}/downloads Opc.Ua.Types.bsd src/main/xslt/opc-status.xsl ${project.build.outputDirectory}/protocols/opcua @@ -158,7 +159,7 @@ statusCodes - ${project.build.directory}/downloads/StatusCode.csv + ${project.basedir}/downloads/StatusCode.csv @@ -169,7 +170,7 @@ - ${project.build.directory}/downloads + ${project.basedir}/downloads Opc.Ua.Types.bsd src/main/xslt/opc-manual.xsl ${project.build.outputDirectory}/protocols/opcua @@ -185,7 +186,7 @@ services - ${project.build.directory}/downloads/Opc.Ua.NodeSet2.Services.xml + ${project.basedir}/downloads/Opc.Ua.NodeSet2.Services.xml @@ -196,7 +197,7 @@ - ${project.build.directory}/downloads + ${project.basedir}/downloads Opc.Ua.Types.bsd src/main/xslt/opc-types.xsl ${project.build.outputDirectory}/protocols/opcua @@ -219,11 +220,20 @@ net.sf.saxon Saxon-HE - 12.0 + + + org.apache.rat + apache-rat-plugin + + + **/downloads/** + + + diff --git a/protocols/open-protocol/pom.xml b/protocols/open-protocol/pom.xml index 761a8928ef0..6ba8760a003 100644 --- a/protocols/open-protocol/pom.xml +++ b/protocols/open-protocol/pom.xml @@ -38,12 +38,6 @@ plc4x-code-generation-protocol-base-mspec 0.11.0-SNAPSHOT - - - org.slf4j - slf4j-simple - test - \ No newline at end of file diff --git a/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec b/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec index 5bd7641b50e..6f48ecb49c4 100644 --- a/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec +++ b/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec @@ -175,14 +175,12 @@ ['WCHAR' STRING [simple string 16 value encoding='"UTF-16"'] ] - //['STRING' STRING - // [implicit uint 8 stringLength 'STR_LEN(value)' ] - // [simple vstring 'stringLength' value ] - //] - //['WSTRING' STRING - // [implicit uint 8 stringLength 'STR_LEN(value)' ] - // [simple vstring 'stringLength * 2' value encoding='"UTF-16"'] - //] + ['STRING' STRING + [manual vstring value 'STATIC_CALL("parseString", readBuffer, _type.encoding)' 'STATIC_CALL("serializeString", writeBuffer, _value, _type.encoding)' '(STR_LEN(_value) + 1) * 8'] + ] + ['WSTRING' STRING + [manual vstring value 'STATIC_CALL("parseString", readBuffer, _type.encoding)' 'STATIC_CALL("serializeString", writeBuffer, _value, _type.encoding)' '(STR_LEN(_value) + 1) * 16' encoding='"UTF-16"'] + ] // Times and Dates ['TIME' TIME diff --git a/protocols/pom.xml b/protocols/pom.xml index e076a77ff1f..37da46ab99a 100644 --- a/protocols/pom.xml +++ b/protocols/pom.xml @@ -177,6 +177,9 @@ <_removeheaders>Bnd-LastModified + + * + @@ -219,6 +222,12 @@ junit-jupiter-api test + + + org.slf4j + slf4j-simple + test + diff --git a/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec b/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec index 09fb0cbf4d0..95da70617a1 100644 --- a/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec +++ b/protocols/profinet/src/main/resources/protocols/profinet/profinet.mspec @@ -554,7 +554,6 @@ [padding uint 8 pad '0x00' 'STATIC_CALL("arrayLength", deviceVendorValue) % 2'] ] ['DEVICE_PROPERTIES_OPTION','2' PnDcp_Block_DevicePropertiesNameOfStation(uint 16 blockLength) - [reserved uint 16 '0x0000' ] [array byte nameOfStation count 'blockLength-2' ] [padding uint 8 pad '0x00' 'STATIC_CALL("arrayLength", nameOfStation) % 2'] ] diff --git a/protocols/s7/src/main/resources/protocols/s7/s7.mspec b/protocols/s7/src/main/resources/protocols/s7/s7.mspec index 85983b74c66..13aa1cbcede 100644 --- a/protocols/s7/src/main/resources/protocols/s7/s7.mspec +++ b/protocols/s7/src/main/resources/protocols/s7/s7.mspec @@ -523,7 +523,7 @@ ] ] -[dataIo DataItem(vstring dataProtocolId, int 32 stringLength) +[dataIo DataItem(vstring dataProtocolId, int 32 stringLength, vstring stringEncoding) [typeSwitch dataProtocolId // ----------------------------------------- // Bit @@ -599,18 +599,18 @@ // Characters & Strings // ----------------------------------------- ['"IEC61131_CHAR"' CHAR - [simple string 8 value encoding='"UTF-8"'] + [manual string 8 value 'STATIC_CALL("parseS7Char", readBuffer, _type.encoding, stringEncoding)' 'STATIC_CALL("serializeS7Char", writeBuffer, _value, _type.encoding, stringEncoding)' '8'] ] ['"IEC61131_WCHAR"' CHAR - [simple string 16 value encoding='"UTF-16"'] + [manual string 16 value 'STATIC_CALL("parseS7Char", readBuffer, _type.encoding, stringEncoding)' 'STATIC_CALL("serializeS7Char", writeBuffer, _value, _type.encoding, stringEncoding)' '16' encoding='"UTF-16"'] ] ['"IEC61131_STRING"' STRING // TODO: Fix this length - [manual vstring value 'STATIC_CALL("parseS7String", readBuffer, stringLength, _type.encoding)' 'STATIC_CALL("serializeS7String", writeBuffer, _value, stringLength, _type.encoding)' 'STR_LEN(_value) + 2' encoding='"UTF-8"'] + [manual vstring value 'STATIC_CALL("parseS7String", readBuffer, stringLength, _type.encoding, stringEncoding)' 'STATIC_CALL("serializeS7String", writeBuffer, _value, stringLength, _type.encoding, stringEncoding)' '(stringLength + 2) * 8'] ] ['"IEC61131_WSTRING"' STRING // TODO: Fix this length - [manual vstring value 'STATIC_CALL("parseS7String", readBuffer, stringLength, _type.encoding)' 'STATIC_CALL("serializeS7String", writeBuffer, _value, stringLength, _type.encoding)' '(STR_LEN(_value) * 2) + 2' encoding='"UTF-16"'] + [manual vstring value 'STATIC_CALL("parseS7String", readBuffer, stringLength, _type.encoding, stringEncoding)' 'STATIC_CALL("serializeS7String", writeBuffer, _value, stringLength, _type.encoding, stringEncoding)' '(stringLength + 2) * 16' encoding='"UTF-16"'] ] // ----------------------------------------- @@ -717,22 +717,22 @@ ['0x09' USINT ['0x02' , 'B' , '1' , 'INT' , 'BYTE_WORD_DWORD' , 'IEC61131_USINT' , 'false' , 'false' , 'true' , 'true' , 'true' ]] ['0x0A' DINT ['0x07' , 'D' , '4' , 'INT' , 'INTEGER' , 'IEC61131_DINT' , 'true' , 'true' , 'true' , 'true' , 'true' ]] ['0x0B' UDINT ['0x07' , 'D' , '4' , 'INT' , 'INTEGER' , 'IEC61131_UDINT' , 'false' , 'false' , 'true' , 'true' , 'true' ]] - ['0x0C' LINT ['0x00' , 'X' , '8' , 'INT' , 'null' , 'IEC61131_LINT' , 'false' , 'false' , 'false' , 'true' , 'false' ]] - ['0x0D' ULINT ['0x00' , 'X' , '16' , 'INT' , 'null' , 'IEC61131_ULINT' , 'false' , 'false' , 'false' , 'true' , 'false' ]] + ['0x0C' LINT ['0x00' , 'X' , '8' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_LINT' , 'false' , 'false' , 'false' , 'true' , 'false' ]] + ['0x0D' ULINT ['0x00' , 'X' , '16' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_ULINT' , 'false' , 'false' , 'false' , 'true' , 'false' ]] // Floating point values - ['0x0E' REAL ['0x08' , 'D' , '4' , 'null' , 'REAL' , 'IEC61131_REAL' , 'true' , 'true' , 'true' , 'true' , 'true' ]] - ['0x0F' LREAL ['0x30' , 'X' , '8' , 'REAL' , 'null' , 'IEC61131_LREAL' , 'false' , 'false' , 'true' , 'true' , 'false' ]] + ['0x0E' REAL ['0x08' , 'D' , '4' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_REAL' , 'true' , 'true' , 'true' , 'true' , 'true' ]] + ['0x0F' LREAL ['0x30' , 'X' , '8' , 'REAL' , 'BYTE_WORD_DWORD' , 'IEC61131_LREAL' , 'false' , 'false' , 'true' , 'true' , 'false' ]] // Characters and Strings ['0x10' CHAR ['0x03' , 'B' , '1' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_CHAR' , 'true' , 'true' , 'true' , 'true' , 'true' ]] - ['0x11' WCHAR ['0x13' , 'X' , '2' , 'null' , 'null' , 'IEC61131_WCHAR' , 'false' , 'false' , 'true' , 'true' , 'true' ]] + ['0x11' WCHAR ['0x13' , 'X' , '2' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_WCHAR' , 'false' , 'false' , 'true' , 'true' , 'true' ]] ['0x12' STRING ['0x03' , 'X' , '1' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_STRING' , 'true' , 'true' , 'true' , 'true' , 'true' ]] - ['0x13' WSTRING ['0x00' , 'X' , '2' , 'null' , 'null' , 'IEC61131_WSTRING' , 'false' , 'false' , 'true' , 'true' , 'true' ]] + ['0x13' WSTRING ['0x00' , 'X' , '2' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_WSTRING' , 'false' , 'false' , 'true' , 'true' , 'true' ]] // Dates and time values (Please note that we seem to have to rewrite queries for these types to reading bytes or we'll get "Data type not supported" errors) ['0x14' TIME ['0x0B' , 'X' , '4' , 'null' , 'null' , 'IEC61131_TIME' , 'true' , 'true' , 'true' , 'true' , 'true' ]] - //['0x15' S5TIME ['0x0C' , 'X' , '4' , 'null' , 'null' , 'S7_S5TIME' , 'true' , 'true' , 'true' , 'true' , 'true' ]] + //['0x15' S5TIME ['0x0C' , 'X' , '4' , 'null' , 'null' , 'S7_S5TIME' , 'true' , 'true' , 'true' , 'true' , 'true' ]] ['0x16' LTIME ['0x00' , 'X' , '8' , 'TIME' , 'null' , 'IEC61131_LTIME' , 'false' , 'false' , 'false' , 'true' , 'false' ]] ['0x17' DATE ['0x09' , 'X' , '2' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_DATE' , 'true' , 'true' , 'true' , 'true' , 'true' ]] ['0x18' TIME_OF_DAY ['0x06' , 'X' , '4' , 'null' , 'BYTE_WORD_DWORD' , 'IEC61131_TIME_OF_DAY' , 'true' , 'true' , 'true' , 'true' , 'true' ]] diff --git a/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml b/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml index 8d76a5ce141..97aab67eb6d 100644 --- a/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml +++ b/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml @@ -441,7 +441,7 @@ 240 true - 10 + 2 @@ -450,7 +450,7 @@ 50 1 0 - 10 + 2 14 0 @@ -508,7 +508,7 @@ 240 true - 0 + 2 @@ -517,7 +517,7 @@ 50 3 0 - 10 + 2 2 6 @@ -613,7 +613,7 @@ 240 true - 10 + 2 @@ -622,7 +622,7 @@ 50 1 0 - 10 + 2 14 0 @@ -680,7 +680,7 @@ 240 true - 0 + 2 @@ -689,7 +689,7 @@ 50 2 0 - 10 + 2 0 0