logo ISTAC

26 de marzo de 2021

COMUNICACIÓN


Indicadores de Actividad del Sector Servicios (IASS). Base 2015. Canarias y España.

enero de 2021


La variación mensual de la cifra de negocios del Sector Servicios de Mercado es del -9,9% en Canarias, frente al -3,9% del conjunto nacional, una vez que se eliminan los efectos estacionales y de calendario

La tasa anual se sitúa en el -33,3% en la serie corregida de efectos estacionales y de calendario, frente al -14,6% en la serie corregida de efectos estacionales y de calendario del conjunto nacional

ANÁLISIS DE LA EVOLUCIÓN MENSUAL

La variación mensual del índice general de la cifra de negocios del Sector Servicios de Mercado entre los meses de enero y diciembre, eliminando los efectos estacionales y de calendario, es del -9,9%. Esta tasa es 12,5 puntos inferior a la de diciembre, y 6 puntos inferior a la del conjunto nacional (-3,9%).

Índice general de cifra de negocios del Sector Servicios de Mercado

Corregido de efectos estacionales y de calendario. Tasa mensual. Porcentaje

Si se eliminan los efectos estacionales y de calendario, el Comercio baja un -12,7% y Otros Servicios baja un -1,5%. En el grupo de Otros Servicios, Transporte y almacenamiento (-2,9%), Hostelería (-12,6%), Información y comunicaciones (0,7%), Actividades profesionales, científicas y técnicas (-15,8%), y Actividades administrativas y servicios auxiliares (-9%).

Índice cifra de negocios: General y por sectores.

Tasa mensual. Porcentaje.

enero de 2021

Canarias
España
Índice original Índice corregido de efectos estacionales y de calendario Índice original Índice corregido de efectos estacionales y de calendario
Índice general -22,6 -9,9 -19,1 -3,9
Comercio -23,0 -12,7 -18,0 -1,8
Transporte y almacenamiento -14,9 -2,9 -11,1 -4,9
Hostelería -24,1 -12,6 -26,8 -16,6
Información y comunicaciones -13,6 0,7 -20,4 -1,0
Actividades profesionales científicas y técnicas -32,1 -15,8 -32,8 -2,7
Actividades administrativas y servicios auxiliares -25,4 -9,0 -14,2 -3,1

ANÁLISIS DE LA EVOLUCIÓN ANUAL

El Índice general de cifra de negocios del Sector Servicios de Mercado corregido de efectos estacionales y de calendario experimenta una caída del 33,3% en enero respecto al mismo mes de 2020. Esta tasa es 6,7 puntos inferior a la registrada en diciembre, y 18,7 puntos por abajo de la registrada a nivel nacional (-14.6%). La serie original presenta una variación anual del -35,1%, lo que supone 8 puntos por abajo de la registrada en diciembre.

Índice general de cifra de negocios del Sector Servicios de Mercado. Canarias y España

Corregido de efectos estacionales y de calendario. Tasa anual. Porcentaje.

Si se eliminan los efectos estacionales y de calendario, el Comercio baja un -22,3% y Otros servicios baja un -47,7%. En el grupo de Otros Servicios, Transporte y almacenamiento (-28%), Hostelería (-71,9%), Información y comunicaciones (-1%), Actividades profesionales, científicas y técnicas (-33,2%), y Actividades administrativas y servicios auxiliares (-57,1%).

Índice cifra de negocios: General y por sectores.

Tasa anual. Porcentaje.

enero de 2021

Canarias
España
Índice original Índice corregido de efectos estacionales y de calendario Índice original Índice corregido de efectos estacionales y de calendario
Índice general -35,1 -33,3 -16,5 -14,6
Comercio -22,5 -22,3 -13,3 -10,3
Transporte y almacenamiento -31,2 -28,0 -19,1 -16,9
Hostelería -73,5 -71,9 -60,1 -60,5
Información y comunicaciones -1,1 -1,0 -10,4 -8,4
Actividades profesionales científicas y técnicas -33,6 -33,2 -10,2 -7,3
Actividades administrativas y servicios auxiliares -60,8 -57,1 -28,6 -27,5

ANÁLISIS COMPARADO POR CCAA

Índices de cifra de negocios

La tasa anual de la cifra de negocios del Sector Servicios de Mercado disminuye respecto a diciembre de 2020 en todas las comunidades autónomas. Canarias (-35,1%) y Islas Baleares (-34,9%) presentan los mayores descensos, mientras que País Vasco (-9,5%) y Región de Murcia (-10,3%) son las que presentan los menores descensos.

Índices generales cifra de negocios: nacional y por comunidades autónomas. Tasa anual. Porcentaje.

enero de 2021

Índices de ocupación

La tasa anual de ocupación del Sector Servicios de Mercado disminuye respecto a diciembre de 2020 en todas las comunidades autónomas. Canarias (-11,2%) y Islas Baleares (-10,9%) presentan los mayores descensos, mientras que Castilla - La Mancha (-3,1%) y Comunitat Valenciana (-3,3%) son las que presentan los menores descensos.

Índices generales de ocupación: nacional y por comunidades autónomas. Tasa anual. Porcentaje.

enero de 2021

REVISIONES Y ACTUALIZACIÓN DE DATOS

Se han actualizado los datos de las series de IASS correspondientes a los cinco últimos meses. En el caso de las series ajustadas de calendario y desestacionalizadas y ajustadas de calendario, siguiendo el estándar del INE se revisa la serie desde su comienzo.

NOTA METODOLÓGICA

La información de base de este indicador procede de una encuesta mensual a empresas que realiza el Instituto Nacional de Estadística (INE) y que recibe el ISTAC mediante acuerdo de intercambio de información entre ambos organismos para la publicación de un mayor detalle en la comunidad autónoma.

Este informe anticipa los trabajos que estamos desarrollando en el marco del proyecto “Métodos econométricos aplicados a series de coyuntura económica ECOMAC (MAC/5.11.a/004)”, realizado en colaboración con las oficinas de estadísticas de Azores y Madeira y financiado por el Programa de Cooperación INTERREG V-A España-Portugal MAC (Madeira-Azores-Canarias) 2014-2020.

El objetivo principal de este proyecto es la construcción de modelos econométricos que permitan ajustar las series de los principales indicadores de la coyuntura de los efectos de calendario y de la estacionalidad. Los resultados presentados en este informe permiten adelantar los trabajos que estamos desarrollando y que serán publicados a finales de 2020.

Más información

ISTAC - Comunicación

www.gobiernodecanarias.org/istac/noticias

922 92 28 41 - 928 29 32 71

@istac_es

Logo MAC - INTERREG

LS0tCnRpdGxlOiAnICcKcGFnZXRpdGxlOiBDb211bmljYWNpw7NuIElBU1MgMjAyMU0wMQpwYXJhbXM6CiAgZmVjaGE6IDI2IGRlIG1hcnpvIGRlIDIwMjEKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBjc3M6IEluZm9ybWVfSUFTUy5jc3MKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICBjc3M6IEluZm9ybWVfSUFTUy5jc3MKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tICAgCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KGZsZXhkYXNoYm9hcmQpCmBgYAoKPGRpdiBjbGFzcz0ibG9nby1pc3RhYyI+IAogIDxpbWcgc3JjPSIuLi9pbWFnZXMvbG9nb19pc3RhYy5qcGciIC8+CjwvZGl2PgpgYGB7ciBpbmNsdWRlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLG1lc3NhZ2U9RkFMU0V9Cm9wdGlvbnMoc2NpcGVuID0gOTk5KQoKbGlicmFyeSh4bHN4KQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KGRhdGEudGFibGUpCmxpYnJhcnkocGx5cikKbGlicmFyeSh6b28pCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShwbG90bHkpCmxpYnJhcnkoa2FibGVFeHRyYSkKbGlicmFyeShqc29ubGl0ZSkKCnNvdXJjZSgiLi4vc2NyL0Z1bmN0aW9ucy5SIikKCiMgTEVDVFVSQSBERSBEQVRPUyBKU09OIERFIExBIEFQSSBERUwgSU5FCiMgw41uZGljZSBnZW5lcmFsIGRlIENpZnJhcyBkZSBOZWdvY2lvcyBOYWNpb25hbCB5IHBvciBDQ0FBCkNOX2pzb24gPC0gZnJvbUpTT04oImh0dHBzOi8vc2VydmljaW9zLmluZS5lcy93c3RlbXB1cy9qcy9FUy9EQVRPU19UQUJMQS8yNTg5Nz9kYXRlPTIwMTkwMTAxOiIpCiMgw41uZGljZSBkZSBDaWZyYXMgZGUgTmVnb2Npb3MgYWp1c3RhZG8gZGUgZXN0YWNpb25hbGlkYWQgeSBjYWxlbmRhcmlvIEVTIChJLiBnZW5lcmFsIHkgc2VjdG9yZXMpCkNOX3NhY19qc29uIDwtIGZyb21KU09OKCJodHRwczovL3NlcnZpY2lvcy5pbmUuZXMvd3N0ZW1wdXMvanMvRVMvREFUT1NfVEFCTEEvMjU4OTM/ZGF0ZT0yMDE5MDEwMToiKQojIMONbmRpY2UgZGUgQ2lmcmFzIGRlIE5lZ29jaW9zIEVTIChJLiBnZW5lcmFsIHkgc2VjdG9yZXMpCkNOX3NlY3RvcmVzX2pzb24gPC0gZnJvbUpTT04oImh0dHBzOi8vc2VydmljaW9zLmluZS5lcy93c3RlbXB1cy9qcy9FUy9EQVRPU19UQUJMQS8yNTg5MT9kYXRlPTIwMTkwMTAxOiIpCiMgw41uZGljZSBkZSBPY3VwYWNpw7NuIGFqdXN0YWRvIGRlIGVzdGFjaW9uYWxpZGFkIHBvciBDQ0FBCk9DX2pzb24gPC0gZnJvbUpTT04oImh0dHBzOi8vc2VydmljaW9zLmluZS5lcy93c3RlbXB1cy9qcy9FUy9EQVRPU19UQUJMQS8yNTg5OT9kYXRlPTIwMTkwMTAxOiIpCgoKCiMgRVhUUkFDQ0nDk04gREUgTE9TIERBVEEuRlJBTUUgREUgTE9TIEpTT04KQ04gPC0gRXh0cmFjdF9kZihDTl9qc29uKQpDTl9zYWMgPC0gRXh0cmFjdF9kZihDTl9zYWNfanNvbikgJT4lIGZpbHRlcihTZWN0b3IgJWluJSBjKCJUb3RhbCBzZXJ2aWNpb3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21lcmNpbyBhbCBwb3IgbWF5b3IgeSBhbCBwb3IgbWVub3I7IHJlcGFyYWNpw7NuIGRlIHZlaMOtY3Vsb3MgZGUgbW90b3IgeSBtb3RvY2ljbGV0YXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFuc3BvcnRlIHkgYWxtYWNlbmFtaWVudG8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIb3N0ZWxlcsOtYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm9ybWFjacOzbiB5IGNvbXVuaWNhY2lvbmVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0aXZpZGFkZXMgcHJvZmVzaW9uYWxlcywgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMiKSkKCkNOX3NlY3RvcmVzIDwtIEV4dHJhY3RfZGYoQ05fc2VjdG9yZXNfanNvbiklPiUgZmlsdGVyKFNlY3RvciAlaW4lIGMoIlRvdGFsIHNlcnZpY2lvcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbWVyY2lvIGFsIHBvciBtYXlvciB5IGFsIHBvciBtZW5vcjsgcmVwYXJhY2nDs24gZGUgdmVow61jdWxvcyBkZSBtb3RvciB5IG1vdG9jaWNsZXRhcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhvc3RlbGVyw61hIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mb3JtYWNpw7NuIHkgY29tdW5pY2FjaW9uZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmlkYWRlcyBwcm9mZXNpb25hbGVzLCBjaWVudMOtZmljYXMgeSB0w6ljbmljYXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmlkYWRlcyBhZG1pbmlzdHJhdGl2YXMgeSBzZXJ2aWNpb3MgYXV4aWxpYXJlcyIpKQpPQyA8LSBFeHRyYWN0X2RmKE9DX2pzb24pCgojIEPDgUxDVUxPIERFIExBUyBUQVNBUwojIFRWQQpZX1RWQSA8LSBjYmluZChhcy5EYXRlKFkkRkVDSEEpLGFzLmRhdGEuZnJhbWUoVFZBKHN1YnNldChZLHNlbGVjdCA9IC1GRUNIQSksMTIpKSkKY29sbmFtZXMoWV9UVkEpIDwtIGNvbG5hbWVzKFkpCgojIFRWTQpZX1RWTSA8LSBjYmluZChhcy5EYXRlKFkkRkVDSEEpLGFzLmRhdGEuZnJhbWUoVFZNKHN1YnNldChZLHNlbGVjdCA9IC1GRUNIQSkpKSkKY29sbmFtZXMoWV9UVk0pIDwtIGNvbG5hbWVzKFkpCgojIExlbmd0aApuIDwtIG5yb3coZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gbWVuc3VhbCIpKQoKIyBGZWNoYQptZXMgPC0gZm9ybWF0KGFzLnllYXJtb24odGltZShZWywyXSlbbnJvdyhZKV0pLCIlQiIpCm1lc19wcmV2IDwtIGZvcm1hdChhcy55ZWFybW9uKHRpbWUoWVssMl0pW25yb3coWSktMV0pLCIlQiIpCmFueW8gPC0gZm9ybWF0KGFzLnllYXJtb24odGltZShZWywyXSlbbnJvdyhZKV0pLCIlWSIpCmFueW9fcHJldiA8LSBmb3JtYXQoYXMueWVhcm1vbih0aW1lKFlbLDJdKVtucm93KFkpLTEyXSksIiVZIikKCmBgYAoKPGRpdiBjbGFzcz0idGl0bGUtY29udGFpbmVyIj4KICA8c3BhbiBjbGFzcz0iZGF0ZSI+KipgciBwYXJhbXMkZmVjaGFgKio8L3NwYW4+CiAgPGgxPioqQ09NVU5JQ0FDScOTTioqPC9oMT4KPC9kaXY+CioqKgo8aDI+CiAgSW5kaWNhZG9yZXMgZGUgQWN0aXZpZGFkIGRlbCBTZWN0b3IgU2VydmljaW9zIChJQVNTKS4gQmFzZSAyMDE1LiBDYW5hcmlhcyB5IEVzcGHDsWEuIDxkaXYgY2xhc3M9ImxldCI+PHA+ICoqYHIgTWVzX25vbWJyZShDTiRNRVNbbnJvdyhDTildKWAgZGUgYHIgQ04kQU5ZT1tucm93KENOKV1gKiogIDwvcD48L2Rpdj4KPC9oMj4KKioqCjxoMiBzdHlsZT0ibWFyZ2luLXRvcDogOTBweDsiIGNsYXNzPSJjZW50ZXJlZCI+ICoqTGEgdmFyaWFjacOzbiBtZW5zdWFsIGRlIGxhIGNpZnJhIGRlIG5lZ29jaW9zIGRlbCBTZWN0b3IgU2VydmljaW9zIGRlIE1lcmNhZG8gZXMgZGVsIGByIGZvcm1hdChyb3VuZChZX1RWTSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWTSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlIGVuIENhbmFyaWFzLCBmcmVudGUgYWwgYHIgIGZvcm1hdChyb3VuZChmaWx0ZXIoQ05fc2FjLCBTZWN0b3IgPT0gIlRvdGFsIHNlcnZpY2lvcyIgJiBHRU8gPT0gIlRvdGFsIE5hY2lvbmFsIiAmIE1FRElEQSA9PSAiVmFyaWFjacOzbiBtZW5zdWFsIikkVkFMT1Jbbl0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUgZGVsIGNvbmp1bnRvIG5hY2lvbmFsLCB1bmEgdmV6IHF1ZSBzZSBlbGltaW5hbiBsb3MgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvICoqPC9oMj4gCgo8aDIgc3R5bGU9Im1hcmdpbi10b3A6IDMwcHg7IiBjbGFzcz0iY2VudGVyZWQiPiAqKkxhIHRhc2EgYW51YWwgc2Ugc2l0w7phIGVuIGVsIGByIGZvcm1hdChyb3VuZChZX1RWQSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlIGVuIGxhIHNlcmllIGNvcnJlZ2lkYSBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8sIGZyZW50ZSBhbCBgciBmb3JtYXQocm91bmQoZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiKSRWQUxPUltuXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSBlbiBsYSBzZXJpZSBjb3JyZWdpZGEgZGUgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvIGRlbCBjb25qdW50byBuYWNpb25hbCAqKjwvaDI+IAoKCjxkaXYgY2xhc3M9ImJveEJvcmRlciI+PHAgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4KICAqKkFOw4FMSVNJUyBERSBMQSBFVk9MVUNJw5NOIE1FTlNVQUwqKgo8L3A+PC9kaXY+Cgo8cD5MYSB2YXJpYWNpw7NuIG1lbnN1YWwgZGVsIMOtbmRpY2UgZ2VuZXJhbCBkZSBsYSBjaWZyYSBkZSBuZWdvY2lvcyBkZWwgU2VjdG9yIFNlcnZpY2lvcyBkZQpNZXJjYWRvIGVudHJlIGxvcyBtZXNlcyBkZSBgciBtZXNgIHkgYHIgbWVzX3ByZXZgLCBlbGltaW5hbmRvIGxvcyBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIApjYWxlbmRhcmlvLCBlcyBkZWwgYHIgZm9ybWF0KHJvdW5kKFlfVFZNJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUuIEVzdGEgdGFzYSBlcyBgciBmb3JtYXQoYWJzKHJvdW5kKFlfVFZNJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZNKV0tWV9UVk0kSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVk0pLTFdLDEpKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgIHB1bnRvcyBgciBzdXBfaW5mKHJvdW5kKFlfVFZNJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZNKV0tWV9UVk0kSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVk0pLTFdLDEpKWAgYSBsYSBkZSBgciBtZXNfcHJldmAsIHkgYHIgZm9ybWF0KGFicyhyb3VuZChZX1RWTSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWTSldLXJvdW5kKGZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiKSRWQUxPUltuXSwxKSwxKSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCBwdW50b3MKYHIgc3VwX2luZihyb3VuZChZX1RWTSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWTSldLWZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiKSRWQUxPUltuXSwxKSlgIGEgbGEgZGVsIGNvbmp1bnRvIG5hY2lvbmFsIChgciAgZm9ybWF0KHJvdW5kKGZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiKSRWQUxPUltuXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkuPC9wPgoKPGgzPiAqKsONbmRpY2UgZ2VuZXJhbCBkZSBjaWZyYSBkZSBuZWdvY2lvcyBkZWwgU2VjdG9yIFNlcnZpY2lvcyBkZSBNZXJjYWRvKioKICA8cD5Db3JyZWdpZG8gZGUgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvLiBUYXNhIG1lbnN1YWwuIFBvcmNlbnRhamU8L3A+CjwvaDM+CgpgYGB7ciBlY2hvID0gRkFMU0UsIGZpZy53aWR0aCA9IDEwLCBmaWcuaGVpZ2h0ID0gNiwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlPUZBTFNFLCBvdXQud2lkdGg9IjEwMCUifQpFU1AgPC0gZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gbWVuc3VhbCIpCkVTUCA8LSBzdWJzZXQoRVNQLCBzZWxlY3QgPSBjKEdFTyxNRVMsQU5ZTyxWQUxPUikgKQpFU1AkR0VPIDwtICJFc3Bhw7FhIgpDQU4gPC0gY2JpbmQoR0VPID0gIkNhbmFyaWFzIixNRVMgPSBFU1AkTUVTLEFOWU8gPSBFU1AkQU5ZTyxWQUxPUiA9IFlfVFZNWyhucm93KFlfVFZNKS1ucm93KEVTUCkrMSk6bnJvdyhZX1RWTSksIklORElDRS5HRU5FUkFMX1NBQyJdKQoKRVNQIDwtIEVTUFsobnJvdyhFU1ApLTEyKTpucm93KEVTUCksXQpDQU4gPC0gQ0FOWyhucm93KENBTiktMTIpOm5yb3coQ0FOKSxdCgpEYXRhIDwtIHJiaW5kKEVTUCxDQU4pCiNEYXRhJFZBTE9SIDwtIGFzLm51bWVyaWMoRGF0YSRWQUxPUikKRGF0YSRWQUxPUiA8LXJvdW5kKGFzLm51bWVyaWMoRGF0YSRWQUxPUiksMSkKRGF0YSA8LSByZW5hbWUoRGF0YSwgVmFsb3IgPSBWQUxPUikKCkZlY2hhIDwtIGFzLmZhY3Rvcihmb3JtYXQoYXMueWVhcm1vbihZX1RWQVsobnJvdyhZX1RWQSktbnJvdyhFU1ApKzEpOm5yb3coWV9UVkEpLCJGRUNIQSJdKSwiJWIgJVkiKSkKCkRhdGEgPC0gY2JpbmQoRGF0YSxGZWNoYSA9IEZlY2hhKQoKRGF0YTIgPC0gRGF0YSAKRGF0YTJbRGF0YSRBTllPICE9IENOJEFOWU9bbnJvdyhDTildIHwgRGF0YSRNRVMgIT0gQ04kTUVTW25yb3coQ04pXSxdJFZhbG9yIDwtTkEKZm9yIChpIGluIDE6bnJvdyhEYXRhMikpewogIGlmIChpcy5uYShEYXRhMiRWYWxvcltpXSk9PUYpe0RhdGEyJFZhbG9yW2ldPC1wYXN0ZTAoRGF0YTIkVmFsb3JbaV0sIiAlIil9Cn0KCgpEYXRhJEZlY2hhIDwtIGZhY3RvcihEYXRhJEZlY2hhLCBsZXZlbHMgPSAgdW5pcXVlKERhdGEkRmVjaGEpKQoKcCA8LSBnZ3Bsb3QoZGF0YSA9IERhdGEsIGFlcyh4ID0gRmVjaGEsIHkgPSBWYWxvciwgZ3JvdXAgPSBHRU8sIGZpbGwgPSBHRU8pKSsKICBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIsIHBvc2l0aW9uPSJkb2RnZSIpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHlsYWIoIiAiKSArCiAgeGxhYigiICIpICsKICBsYWJzKGNvbG91ciA9ICIgIikgKwogIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIiAiKSkgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gInNvbGlkIiwgY29sb3IgPSAiYmxhY2siLCBzaXplID0gMC4yNSkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJFc3Bhw7FhIj0iIzdCMjQxQyIsIkNhbmFyaWFzIj0iIzAwOGJkMCIpKSsKICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGU9OTApLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSkrIAogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwLCB2anVzdCA9ICJlbmUgMjAxOSIsIGZhY2UgPSAiYm9sZCIpKSsKICBnZW9tX3RleHQoYWVzKGxhYmVsID0gRGF0YTIkVmFsb3IpLCAKICAgICNwb3NpdGlvbj1wb3NpdGlvbl9zdGFjayh2anVzdCA9IDApLCAKICAgIG51ZGdlX3kgPSBjKC0xLjUsIC0yKSwKICAgIG51ZGdlX3ggPSBjKDAuMjUsIC0wLjIpLAogICAgc2l6ZSA9Mi41LAogICAgaW5oZXJpdC5hZXMgPSBUUlVFKSAKCmdncGxvdGx5KHAsIHRvb2x0aXAgPSBjICgiY29sb3VyIiwgInkiLCAieCIpKSAlPiUgCiAgY29uZmlnKGRpc3BsYXlsb2dvID0gRkFMU0UpCgpgYGAKCjxwIHN0eWxlPSJtYXJnaW4tdG9wOiA3MHB4OyI+IFNpIHNlIGVsaW1pbmFuIGxvcyBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8sIGVsIENvbWVyY2lvIGByIGJhamFfc3ViZShZX1RWTSRDT01FUkNJT19TQUNbbnJvdyhZX1RWTSldKWAgdW4gYHIgZm9ybWF0KHJvdW5kKFlfVFZNJENPTUVSQ0lPX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUgeSBPdHJvcyBTZXJ2aWNpb3MgYHIgYmFqYV9zdWJlKFlfVFZNJE9UUk9TLlNFUlZJQ0lPU19TQUNbbnJvdyhZX1RWTSldKWAgdW4gYHIgZm9ybWF0KHJvdW5kKFlfVFZNJE9UUk9TLlNFUlZJQ0lPU19TQUNbbnJvdyhZX1RWTSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlLiBFbiBlbCBncnVwbyBkZSBPdHJvcyBTZXJ2aWNpb3MsIFRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byAoYHIgZm9ybWF0KHJvdW5kKFlfVFZNJFRSQU5TUE9SVEUuWS5BTE1BQ0VOQU1JRU5UT19TQUNbbnJvdyhZX1RWTSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSwgSG9zdGVsZXLDrWEgKGByIGZvcm1hdChyb3VuZChZX1RWTSRIT1NURUxFUklBX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpLCBJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyAoYHIgZm9ybWF0KHJvdW5kKFlfVFZNJElORk9STUFDSU9OLlkuQ09NVU5JQ0FDSU9ORVNfU0FDW25yb3coWV9UVk0pXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSksIEFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMsIGNpZW50w61maWNhcyB5IHTDqWNuaWNhcyAoYHIgZm9ybWF0KHJvdW5kKFlfVFZNJEFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBU19TQUNbbnJvdyhZX1RWTSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSwgeSBBY3RpdmlkYWRlcyBhZG1pbmlzdHJhdGl2YXMgeSBzZXJ2aWNpb3MgYXV4aWxpYXJlcyAoYHIgZm9ybWF0KHJvdW5kKFlfVFZNJEFDVElWSURBREVTLkFETUlOSVNUUkFUSVZBUy5ZLlNFUlZJQ0lPUy5BVVhJTElBUkVTX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpLgo8L3A+Cgo8aDM+ICoqw41uZGljZSBjaWZyYSBkZSBuZWdvY2lvczogR2VuZXJhbCB5IHBvciBzZWN0b3Jlcy4qKgogIDxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAtNXB4Ij5UYXNhIG1lbnN1YWwuIFBvcmNlbnRhamUuPC9wPiAKICA8ZGl2IGNsYXNzPSJsZXQiPjxwPmByIE1lc19ub21icmUoQ04kTUVTW25yb3coQ04pXSlgIGRlIGByIENOJEFOWU9bbnJvdyhDTildYCAgPC9wPjwvZGl2Pgo8L2gzPgoKYGBge3IgZWNobyA9IEZBTFNFLCByZXN1bHRzID0gJ2FzaXMnLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2U9RkFMU0V9CmRhdGEgPC0gc3Vic2V0KFlfVFZNW25yb3coWV9UVk0pLF0sc2VsZWN0ID0gYygiSU5ESUNFLkdFTkVSQUwiLCJDT01FUkNJTyIsIlRSQU5TUE9SVEUuWS5BTE1BQ0VOQU1JRU5UTyIgICwiSE9TVEVMRVJJQSIsIklORk9STUFDSU9OLlkuQ09NVU5JQ0FDSU9ORVMiLCJBQ1RJVklEQURFUy5QUk9GRVNJT05BTEVTLkNJRU5USUZJQ0FTLlkuVEVDTklDQVMiLCJBQ1RJVklEQURFUy5BRE1JTklTVFJBVElWQVMuWS5TRVJWSUNJT1MuQVVYSUxJQVJFUyIpKQpjb2xuYW1lcyhkYXRhKSA8LSBjKCLDjW5kaWNlIGdlbmVyYWwiLCJDb21lcmNpbyIsIlRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byIsIkhvc3RlbGVyw61hIiwiSW5mb3JtYWNpw7NuIHkgY29tdW5pY2FjaW9uZXMiLCJBY3RpdmlkYWRlcyBwcm9mZXNpb25hbGVzIGNpZW50w61maWNhcyB5IHTDqWNuaWNhcyIsIkFjdGl2aWRhZGVzIGFkbWluaXN0cmF0aXZhcyB5IHNlcnZpY2lvcyBhdXhpbGlhcmVzIikKZGF0YSA8LSB0KHJvdW5kKGRhdGEsMSkpCmRhdGFfc2FjIDwtIHN1YnNldChZX1RWTVtucm93KFlfVFZNKSxdLHNlbGVjdCA9IGMoIklORElDRS5HRU5FUkFMX1NBQyIsIkNPTUVSQ0lPX1NBQyIsIlRSQU5TUE9SVEUuWS5BTE1BQ0VOQU1JRU5UT19TQUMiICAsIkhPU1RFTEVSSUFfU0FDIiwiSU5GT1JNQUNJT04uWS5DT01VTklDQUNJT05FU19TQUMiLCJBQ1RJVklEQURFUy5QUk9GRVNJT05BTEVTLkNJRU5USUZJQ0FTLlkuVEVDTklDQVNfU0FDIiwiQUNUSVZJREFERVMuQURNSU5JU1RSQVRJVkFTLlkuU0VSVklDSU9TLkFVWElMSUFSRVNfU0FDIikpCmNvbG5hbWVzKGRhdGFfc2FjKSA8LSBjKCLDjW5kaWNlIGdlbmVyYWwiLCJDb21lcmNpbyIsIlRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byIsIkhvc3RlbGVyw61hIiwiSW5mb3JtYWNpw7NuIHkgY29tdW5pY2FjaW9uZXMiLCJBY3RpdmlkYWRlcyBwcm9mZXNpb25hbGVzLCBjaWVudMOtZmljYXMgeSB0w6ljbmljYXMiLCJBY3RpdmlkYWRlcyBhZG1pbmlzdHJhdGl2YXMgeSBzZXJ2aWNpb3MgYXV4aWxpYXJlcyIpCmRhdGFfc2FjIDwtIHQocm91bmQoZGF0YV9zYWMsMSkpCgpEQVRBIDwtIGNiaW5kKGRhdGEsZGF0YV9zYWMpCmNvbG5hbWVzKERBVEEpIDwtIGMoIiIsIiIpCgpFU1Bfc2FjIDwtIGZpbHRlcihDTl9zYWMsIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiICYgCiAgICAgICAgICAgICAgICAgICAgICBNRVMgPT0gQ04kTUVTW25yb3coQ04pXSAmIEFOWU8gPT1DTiRBTllPW25yb3coQ04pXSkKIyBSZWNvZGlmaWNhbW9zIGxvcyBzZWN0b3JlcyBwYXJhIHF1ZSBjb2luY2lkYW4gbG9zIG5vbWJyZXMKRVNQX3NhY1tFU1Bfc2FjJFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIixdJFNlY3RvciA8LSBhcy5jaGFyYWN0ZXIoIsONbmRpY2UgZ2VuZXJhbCIpCkVTUF9zYWNbRVNQX3NhYyRTZWN0b3IgPT0gIkNvbWVyY2lvIGFsIHBvciBtYXlvciB5IGFsIHBvciBtZW5vcjsgcmVwYXJhY2nDs24gZGUgdmVow61jdWxvcyBkZSBtb3RvciB5IG1vdG9jaWNsZXRhcyIsXSRTZWN0b3IgPC0gYXMuY2hhcmFjdGVyKCJDb21lcmNpbyIpCgpyb3duYW1lcyhFU1Bfc2FjKSA8LSBFU1Bfc2FjJFNlY3RvcgpFU1Bfc2FjIDwtIHN1YnNldChFU1Bfc2FjLCBzZWxlY3QgPSBjKFZBTE9SKSkKY29sbmFtZXMoRVNQX3NhYykgPC0gYygiIikKCkVTUCA8LSBmaWx0ZXIoQ05fc2VjdG9yZXMsIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiICYgCiAgICAgICAgICAgICAgICAgICAgICBNRVMgPT0gQ04kTUVTW25yb3coQ04pXSAmIEFOWU8gPT1DTiRBTllPW25yb3coQ04pXSkgCiMgUmVjb2RpZmljYW1vcyBsb3Mgc2VjdG9yZXMgcGFyYSBxdWUgY29pbmNpZGFuIGxvcyBub21icmVzCkVTUFtFU1AkU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiLF0kU2VjdG9yIDwtIGFzLmNoYXJhY3Rlcigiw41uZGljZSBnZW5lcmFsIikKRVNQW0VTUCRTZWN0b3IgPT0gIkNvbWVyY2lvIGFsIHBvciBtYXlvciB5IGFsIHBvciBtZW5vcjsgcmVwYXJhY2nDs24gZGUgdmVow61jdWxvcyBkZSBtb3RvciB5IG1vdG9jaWNsZXRhcyIsXSRTZWN0b3IgPC0gYXMuY2hhcmFjdGVyKCJDb21lcmNpbyIpCgpyb3duYW1lcyhFU1ApIDwtIEVTUCRTZWN0b3IKRVNQIDwtIHN1YnNldChFU1AsIHNlbGVjdCA9IGMoVkFMT1IpKQpjb2xuYW1lcyhFU1ApIDwtIGMoIiIpCgpEQVRBIDwtIGNiaW5kKERBVEEsRVNQLEVTUF9zYWMpCmNvbG5hbWVzKERBVEEpIDwtIGMoIsONbmRpY2Ugb3JpZ2luYWwiLCAiw41uZGljZSBjb3JyZWdpZG8gZGUgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvIiwKICAgICAgICAgICAgICAgICAgICAiw41uZGljZSBvcmlnaW5hbCIsICLDjW5kaWNlIGNvcnJlZ2lkbyBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8iKQoKdGFibGFzX0VDKGZvcm1hdChEQVRBLGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcmsgPSAiLCIpLDEpCmBgYAoKPGRpdiBjbGFzcz0iYm94Qm9yZGVyIj48cCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPgogICoqQU7DgUxJU0lTIERFIExBIEVWT0xVQ0nDk04gQU5VQUwqKgo8L3A+PC9kaXY+Cgo8cD5FbCDDjW5kaWNlIGdlbmVyYWwgZGUgY2lmcmEgZGUgbmVnb2Npb3MgZGVsIFNlY3RvciBTZXJ2aWNpb3MgZGUgTWVyY2FkbyBjb3JyZWdpZG8gZGUgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvIGV4cGVyaW1lbnRhIHVuYSBgciBjYWlkYV9zdWJpZGEoWV9UVkEkSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVkEpXSlgIGRlbCBgciBmb3JtYXQoYWJzKHJvdW5kKFlfVFZBJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZBKV0sMSkpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlIGVuIGByIG1lc2AgcmVzcGVjdG8gYWwgbWlzbW8gbWVzIGRlIGByIGFueW9fcHJldmAuIEVzdGEgdGFzYSBlcyBgciBmb3JtYXQoYWJzKHJvdW5kKFlfVFZBJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZBKV0tWV9UVkEkSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVkEpLTFdLDEpKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgIHB1bnRvcyBgciBzdXBfaW5mKHJvdW5kKFlfVFZBJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZBKV0tWV9UVkEkSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVkEpLTFdLDEpKWAgYSBsYSByZWdpc3RyYWRhIGVuIGByIG1lc19wcmV2YCwgeSBgciBmb3JtYXQoYWJzKHJvdW5kKFlfVFZBJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZBKV0tZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiKSRWQUxPUltuXSwxKSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCBwdW50b3MgcG9yIGByIGFiYWpvX2VuY2ltYShZX1RWQSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWQSldLWZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIGFudWFsIikkVkFMT1Jbbl0pYCBkZSBsYSByZWdpc3RyYWRhIGEgbml2ZWwgbmFjaW9uYWwgKGByIGZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIGFudWFsIikkVkFMT1Jbbl1gJSkuIExhIHNlcmllIG9yaWdpbmFsIHByZXNlbnRhIHVuYSB2YXJpYWNpw7NuIGFudWFsIGRlbCBgciAgZm9ybWF0KHJvdW5kKFlfVFZBJElORElDRS5HRU5FUkFMW25yb3coWV9UVkEpXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSwgbG8gcXVlIHN1cG9uZSBgciAgZm9ybWF0KGFicyhyb3VuZChZX1RWQSRJTkRJQ0UuR0VORVJBTFtucm93KFlfVFZBKV0tWV9UVkEkSU5ESUNFLkdFTkVSQUxbbnJvdyhZX1RWQSktMV0sMSkpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAgcHVudG9zIHBvciBgciBhYmFqb19lbmNpbWEoWV9UVkEkSU5ESUNFLkdFTkVSQUxbbnJvdyhZX1RWQSldLVlfVFZBJElORElDRS5HRU5FUkFMW25yb3coWV9UVkEpLTFdKWAgZGUgbGEgcmVnaXN0cmFkYSBlbiBgciBtZXNfcHJldmAuPC9wPgoKIDxoMz4KICAqKsONbmRpY2UgZ2VuZXJhbCBkZSBjaWZyYSBkZSBuZWdvY2lvcyBkZWwgU2VjdG9yIFNlcnZpY2lvcyBkZSBNZXJjYWRvLiBDYW5hcmlhcyB5IEVzcGHDsWEqKgogIDxwPkNvcnJlZ2lkbyBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8uIFRhc2EgYW51YWwuIFBvcmNlbnRhamUuPC9wPgo8L2gzPiAKCmBgYHtyIGVjaG8gPSBGQUxTRSwgZmlnLndpZHRoID0gMTAsIGZpZy5oZWlnaHQgPSA2LCB3YXJuaW5nID0gRkFMU0V9CkVTUCA8LSBmaWx0ZXIoQ05fc2FjLCBTZWN0b3IgPT0gIlRvdGFsIHNlcnZpY2lvcyIgJiBHRU8gPT0gIlRvdGFsIE5hY2lvbmFsIiAmIE1FRElEQSA9PSAiVmFyaWFjacOzbiBhbnVhbCIpCkVTUCA8LSBzdWJzZXQoRVNQLCBzZWxlY3QgPSBjKEdFTyxNRVMsQU5ZTyxWQUxPUikgKQpFU1AkR0VPIDwtICJFc3Bhw7FhIgpDQU4gPC0gY2JpbmQoR0VPID0gIkNhbmFyaWFzIixNRVMgPSBFU1AkTUVTLEFOWU8gPSBFU1AkQU5ZTyxWQUxPUiA9IFlfVFZBWyhucm93KFlfVFZBKS1ucm93KEVTUCkrMSk6bnJvdyhZX1RWQSksIklORElDRS5HRU5FUkFMX1NBQyJdKQoKRGF0YSA8LSByYmluZChFU1AsQ0FOKQpEYXRhJFZBTE9SIDwtIGFzLm51bWVyaWMoRGF0YSRWQUxPUikKCiNGZWNoYSA8LSBhcy5mYWN0b3IocGFzdGUwKGZvcm1hdChhcy55ZWFybW9uKFlfVFZBWyhucm93KFlfVFZBKS1ucm93KEVTUCkrMSk6bnJvdyhZX1RWQSksIkZFQ0hBIl0pLCIlYiIpLCBEYXRhJEFOWU8pKQpGZWNoYSA8LSBhcy5mYWN0b3IoZm9ybWF0KGFzLnllYXJtb24oWV9UVkFbKG5yb3coWV9UVkEpLW5yb3coRVNQKSsxKTpucm93KFlfVFZBKSwiRkVDSEEiXSksIiViICVZIikpCgpEYXRhIDwtIGNiaW5kKERhdGEsRmVjaGEgPSBGZWNoYSkKRGF0YSA8LSByZW5hbWUoRGF0YSwgVmFsb3IgPSBWQUxPUikKCiNkYXRlIDwtIGMoYXMuRGF0ZShZX1RWQVsobnJvdyhZX1RWQSktbnJvdyhFU1ApKzEpOm5yb3coWV9UVkEpLCJGRUNIQSJdKSxhcy5EYXRlKFlfVFZBWyhucm93KFlfVFZBKS1ucm93KEVTUCkrMSk6bnJvdyhZX1RWQSksIkZFQ0hBIl0pKQoKI0RhdGEgPC0gY2JpbmQoRGF0YSxkYXRlID0gZGF0ZSkKCiN4ID0gIGZhY3Rvcihhcy5jaGFyYWN0ZXIoRGF0YSRmZWNoYSksIGxldmVsID0gRGF0YSRmZWNoYSkKCkRhdGEkRmVjaGEgPC0gZmFjdG9yKERhdGEkRmVjaGEsIGxldmVscyA9ICB1bmlxdWUoRGF0YSRGZWNoYSkpCgpEYXRhMiA8LSBEYXRhIApEYXRhMiRWYWxvciA8LSByb3VuZChEYXRhMiRWYWxvciwxKQpEYXRhMltEYXRhJEFOWU8gIT0gQ04kQU5ZT1tucm93KENOKV0gfCBEYXRhJE1FUyAhPSBDTiRNRVNbbnJvdyhDTildLF0kVmFsb3IgPC1OQQoKCnAgPC0gZ2dwbG90KGRhdGEgPSBEYXRhLCBhZXMoeCA9IEZlY2hhLCB5ID0gVmFsb3IsIGdyb3VwID0gR0VPLCBjb2xvdXIgPSBHRU8pKSsKICBnZW9tX2xpbmUoc2l6ZSA9IDAuOCkgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gInNvbGlkIiwgY29sb3IgPSAiYmxhY2siLCBzaXplID0gMC4yNSkgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IEZlY2hhWzFdLCBsaW5ldHlwZSA9ICJzb2xpZCIsIGNvbG9yID0gImJsYWNrIikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSwKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vci54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgbGVnZW5kLnRpdGxlPWVsZW1lbnRfYmxhbmsoKSkgKwogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwLCB2anVzdCA9ICJlbmUgMjAxOSIsIGZhY2UgPSAiYm9sZCIpKSArCiAgeWxhYigiICIpICArCiAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiICIpKSsKICBzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcz1jKCJFc3Bhw7FhIj0iIzdCMjQxQyIsIkNhbmFyaWFzIj0iIzAwOGJkMCIpKSsKICBnZW9tX3RleHQoYWVzKGxhYmVsID0gYXMuY2hhcmFjdGVyKERhdGEyJFZhbG9yKSwgCiAgICAgICAgICAgIHggPSBEYXRhMiRGZWNoYVtucm93KERhdGEyKV0KICApLCBzaXplID0gMywgdmp1c3QgPSAxLCBudWRnZV95ID0gNSkgIAoKCmdncGxvdGx5KHAsIHRvb2x0aXAgPSBjICgiY29sb3VyIiwgInkiLCAieCIpKSAlPiUgCiAgY29uZmlnKGRpc3BsYXlsb2dvID0gRkFMU0UpCmBgYAoKPHAgc3R5bGU9Im1hcmdpbi10b3A9NzBweDsiPiBTaSBzZSBlbGltaW5hbiBsb3MgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvLCBlbCBDb21lcmNpbyBgciBiYWphX3N1YmUoWV9UVkEkQ09NRVJDSU9fU0FDW25yb3coWV9UVkEpXSlgIHVuIGByIGZvcm1hdChyb3VuZChZX1RWQSRDT01FUkNJT19TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlIHkgT3Ryb3Mgc2VydmljaW9zIGByIGJhamFfc3ViZShZX1RWQSRPVFJPUy5TRVJWSUNJT1NfU0FDW25yb3coWV9UVkEpXSlgIHVuIGByIGZvcm1hdChyb3VuZChZX1RWQSRPVFJPUy5TRVJWSUNJT1NfU0FDW25yb3coWV9UVkEpXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJS4gRW4gZWwgZ3J1cG8gZGUgT3Ryb3MgU2VydmljaW9zLCBUcmFuc3BvcnRlIHkgYWxtYWNlbmFtaWVudG8gKGByIGZvcm1hdChyb3VuZChZX1RWQSRUUkFOU1BPUlRFLlkuQUxNQUNFTkFNSUVOVE9fU0FDW25yb3coWV9UVkEpXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSksIEhvc3RlbGVyw61hIChgciBmb3JtYXQocm91bmQoWV9UVkEkSE9TVEVMRVJJQV9TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSwgSW5mb3JtYWNpw7NuIHkgY29tdW5pY2FjaW9uZXMgKGByIGZvcm1hdChyb3VuZChZX1RWQSRJTkZPUk1BQ0lPTi5ZLkNPTVVOSUNBQ0lPTkVTX1NBQ1tucm93KFlfVFZBKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpLCBBY3RpdmlkYWRlcyBwcm9mZXNpb25hbGVzLCBjaWVudMOtZmljYXMgeSB0w6ljbmljYXMgKGByIGZvcm1hdChyb3VuZChZX1RWQSRBQ1RJVklEQURFUy5QUk9GRVNJT05BTEVTLkNJRU5USUZJQ0FTLlkuVEVDTklDQVNfU0FDW25yb3coWV9UVkEpXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSksIHkgQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMgKGByIGZvcm1hdChyb3VuZChZX1RWQSRBQ1RJVklEQURFUy5BRE1JTklTVFJBVElWQVMuWS5TRVJWSUNJT1MuQVVYSUxJQVJFU19TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKS4KPC9wPgoKPGgzPiAKICAqKsONbmRpY2UgY2lmcmEgZGUgbmVnb2Npb3M6IEdlbmVyYWwgeSBwb3Igc2VjdG9yZXMuKioKICA8cCBzdHlsZT0ibWFyZ2luLWJvdHRvbTogLTVweCI+VGFzYSBhbnVhbC4gUG9yY2VudGFqZS48L3A+CiAgPGRpdiBjbGFzcz0ibGV0Ij48cD5gciBNZXNfbm9tYnJlKENOJE1FU1tucm93KENOKV0pYCBkZSBgciBDTiRBTllPW25yb3coQ04pXWAgIDwvcD48L2Rpdj4KPC9oMz4gCgpgYGB7ciBlY2hvID0gRkFMU0UsIGV2YWwgPSBGQUxTRSwgcmVzdWx0cyA9ICdhc2lzJ30KCmRhdGEgPC0gc3Vic2V0KFlfVFZBW25yb3coWV9UVkEpLF0sc2VsZWN0ID0gYygiSU5ESUNFLkdFTkVSQUwiLCJDT01FUkNJTyIsIlRSQU5TUE9SVEUuWS5BTE1BQ0VOQU1JRU5UTyIgICwiSE9TVEVMRVJJQSIsIklORk9STUFDSU9OLlkuQ09NVU5JQ0FDSU9ORVMiLCJBQ1RJVklEQURFUy5QUk9GRVNJT05BTEVTLkNJRU5USUZJQ0FTLlkuVEVDTklDQVMiLCJBQ1RJVklEQURFUy5BRE1JTklTVFJBVElWQVMuWS5TRVJWSUNJT1MuQVVYSUxJQVJFUyIpKQpjb2xuYW1lcyhkYXRhKSA8LSBjKCLDjW5kaWNlIGdlbmVyYWwiLCJDb21lcmNpbyIsIlRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byIsIkhvc3RlbGVyw61hIiwiSW5mb3JtYWNpw7NuIHkgY29tdW5pY2FjaW9uZXMiLCJBY3RpdmlkYWRlcyBwcm9mZXNpb25hbGVzIGNpZW50w61maWNhcyB5IHTDqWNuaWNhcyIsIkFjdGl2aWRhZGVzIGFkbWluaXN0cmF0aXZhcyB5IHNlcnZpY2lvcyBhdXhpbGlhcmVzIikKZGF0YSA8LSB0KHJvdW5kKGRhdGEsMSkpCmRhdGFfc2FjIDwtIHN1YnNldChZX1RWQVtucm93KFlfVFZBKSxdLHNlbGVjdCA9IGMoIklORElDRS5HRU5FUkFMX1NBQyIsIkNPTUVSQ0lPX1NBQyIsIlRSQU5TUE9SVEUuWS5BTE1BQ0VOQU1JRU5UT19TQUMiICAsIkhPU1RFTEVSSUFfU0FDIiwiSU5GT1JNQUNJT04uWS5DT01VTklDQUNJT05FU19TQUMiLCJBQ1RJVklEQURFUy5QUk9GRVNJT05BTEVTLkNJRU5USUZJQ0FTLlkuVEVDTklDQVNfU0FDIiwiQUNUSVZJREFERVMuQURNSU5JU1RSQVRJVkFTLlkuU0VSVklDSU9TLkFVWElMSUFSRVNfU0FDIikpCmNvbG5hbWVzKGRhdGFfc2FjKSA8LSBjKCLDjW5kaWNlIGdlbmVyYWwiLCJDb21lcmNpbyIsIlRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byIsIkhvc3RlbGVyw61hIiwiSW5mb3JtYWNpw7NuIHkgY29tdW5pY2FjaW9uZXMiLCJBY3RpdmlkYWRlcyBwcm9mZXNpb25hbGVzIGNpZW50w61maWNhcyB5IHTDqWNuaWNhcyIsIkFjdGl2aWRhZGVzIGFkbWluaXN0cmF0aXZhcyB5IHNlcnZpY2lvcyBhdXhpbGlhcmVzIikKZGF0YV9zYWMgPC0gdChyb3VuZChkYXRhX3NhYywxKSkKCkRBVEEgPC0gY2JpbmQoZGF0YSxkYXRhX3NhYykKY29sbmFtZXMoREFUQSkgPC0gYygiIiwiIikKCnRhYmxhcyhmb3JtYXQoREFUQSxiaWcubWFyaz0iLiIsZGVjaW1hbC5tYXJrID0gIiwiKSwxKQpgYGAKCgpgYGB7ciBlY2hvID0gRkFMU0UsIHJlc3VsdHMgPSAnYXNpcycsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZT1GQUxTRX0KZGF0YSA8LSBzdWJzZXQoWV9UVkFbbnJvdyhZX1RWQSksXSxzZWxlY3QgPSBjKCJJTkRJQ0UuR0VORVJBTCIsIkNPTUVSQ0lPIiwiVFJBTlNQT1JURS5ZLkFMTUFDRU5BTUlFTlRPIiAgLCJIT1NURUxFUklBIiwiSU5GT1JNQUNJT04uWS5DT01VTklDQUNJT05FUyIsIkFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBUyIsIkFDVElWSURBREVTLkFETUlOSVNUUkFUSVZBUy5ZLlNFUlZJQ0lPUy5BVVhJTElBUkVTIikpCmNvbG5hbWVzKGRhdGEpIDwtIGMoIsONbmRpY2UgZ2VuZXJhbCIsIkNvbWVyY2lvIiwiVHJhbnNwb3J0ZSB5IGFsbWFjZW5hbWllbnRvIiwiSG9zdGVsZXLDrWEiLCJJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyIsIkFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIiwiQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMiKQpkYXRhIDwtIHQocm91bmQoZGF0YSwxKSkKZGF0YV9zYWMgPC0gc3Vic2V0KFlfVFZBW25yb3coWV9UVkEpLF0sc2VsZWN0ID0gYygiSU5ESUNFLkdFTkVSQUxfU0FDIiwiQ09NRVJDSU9fU0FDIiwiVFJBTlNQT1JURS5ZLkFMTUFDRU5BTUlFTlRPX1NBQyIgICwiSE9TVEVMRVJJQV9TQUMiLCJJTkZPUk1BQ0lPTi5ZLkNPTVVOSUNBQ0lPTkVTX1NBQyIsIkFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBU19TQUMiLCJBQ1RJVklEQURFUy5BRE1JTklTVFJBVElWQVMuWS5TRVJWSUNJT1MuQVVYSUxJQVJFU19TQUMiKSkKY29sbmFtZXMoZGF0YV9zYWMpIDwtIGMoIsONbmRpY2UgZ2VuZXJhbCIsIkNvbWVyY2lvIiwiVHJhbnNwb3J0ZSB5IGFsbWFjZW5hbWllbnRvIiwiSG9zdGVsZXLDrWEiLCJJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyIsIkFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIiwiQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMiKQpkYXRhX3NhYyA8LSB0KHJvdW5kKGRhdGFfc2FjLDEpKQoKREFUQSA8LSBjYmluZChkYXRhLGRhdGFfc2FjKQpjb2xuYW1lcyhEQVRBKSA8LSBjKCIiLCIiKQoKRVNQX3NhYyA8LSBmaWx0ZXIoQ05fc2FjLCBHRU8gPT0gIlRvdGFsIE5hY2lvbmFsIiAmIE1FRElEQSA9PSAiVmFyaWFjacOzbiBhbnVhbCIgJiAKICAgICAgICAgICAgICAgICAgICAgIE1FUyA9PSBDTiRNRVNbbnJvdyhDTildICYgQU5ZTyA9PUNOJEFOWU9bbnJvdyhDTildKQojIFJlY29kaWZpY2Ftb3MgbG9zIHNlY3RvcmVzIHBhcmEgcXVlIGNvaW5jaWRhbiBsb3Mgbm9tYnJlcwpFU1Bfc2FjW0VTUF9zYWMkU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiLF0kU2VjdG9yIDwtIGFzLmNoYXJhY3Rlcigiw41uZGljZSBnZW5lcmFsIikKRVNQX3NhY1tFU1Bfc2FjJFNlY3RvciA9PSAiQ29tZXJjaW8gYWwgcG9yIG1heW9yIHkgYWwgcG9yIG1lbm9yOyByZXBhcmFjacOzbiBkZSB2ZWjDrWN1bG9zIGRlIG1vdG9yIHkgbW90b2NpY2xldGFzIixdJFNlY3RvciA8LSBhcy5jaGFyYWN0ZXIoIkNvbWVyY2lvIikKCnJvd25hbWVzKEVTUF9zYWMpIDwtIEVTUF9zYWMkU2VjdG9yCkVTUF9zYWMgPC0gc3Vic2V0KEVTUF9zYWMsIHNlbGVjdCA9IGMoVkFMT1IpKQpjb2xuYW1lcyhFU1Bfc2FjKSA8LSBjKCIiKQoKRVNQIDwtIGZpbHRlcihDTl9zZWN0b3JlcywgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiICYgCiAgICAgICAgICAgICAgICAgICAgICBNRVMgPT0gQ04kTUVTW25yb3coQ04pXSAmIEFOWU8gPT1DTiRBTllPW25yb3coQ04pXSkgCiMgUmVjb2RpZmljYW1vcyBsb3Mgc2VjdG9yZXMgcGFyYSBxdWUgY29pbmNpZGFuIGxvcyBub21icmVzCkVTUFtFU1AkU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiLF0kU2VjdG9yIDwtIGFzLmNoYXJhY3Rlcigiw41uZGljZSBnZW5lcmFsIikKRVNQW0VTUCRTZWN0b3IgPT0gIkNvbWVyY2lvIGFsIHBvciBtYXlvciB5IGFsIHBvciBtZW5vcjsgcmVwYXJhY2nDs24gZGUgdmVow61jdWxvcyBkZSBtb3RvciB5IG1vdG9jaWNsZXRhcyIsXSRTZWN0b3IgPC0gYXMuY2hhcmFjdGVyKCJDb21lcmNpbyIpCgpyb3duYW1lcyhFU1ApIDwtIEVTUCRTZWN0b3IKRVNQIDwtIHN1YnNldChFU1AsIHNlbGVjdCA9IGMoVkFMT1IpKQpjb2xuYW1lcyhFU1ApIDwtIGMoIiIpCgpEQVRBIDwtIGNiaW5kKERBVEEsRVNQLEVTUF9zYWMpCmNvbG5hbWVzKERBVEEpIDwtIGMoIsONbmRpY2Ugb3JpZ2luYWwiLCAiw41uZGljZSBjb3JyZWdpZG8gZGUgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvIiwKICAgICAgICAgICAgICAgICAgICAiw41uZGljZSBvcmlnaW5hbCIsICLDjW5kaWNlIGNvcnJlZ2lkbyBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8iKQoKdGFibGFzX0VDKGZvcm1hdChEQVRBLGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcmsgPSAiLCIpLDEpCmBgYAoKPGRpdiBjbGFzcz0iYm94Qm9yZGVyIj48cCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPgogICoqQU7DgUxJU0lTIENPTVBBUkFETyBQT1IgQ0NBQSoqCjwvcD48L2Rpdj4KCjxoND4gKirDjW5kaWNlcyBkZSBjaWZyYSBkZSBuZWdvY2lvcyoqIDwvaDQ+IAoKYGBge3IgaW5jbHVkZT1GQUxTRX0KQ0NBQV9UVkFfbGFzdCA8LSAgZmlsdGVyKENOLCBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiICYgTUVTID09IENOJE1FU1tucm93KENOKV0gJiBBTllPID09IGFueW8pCkNDQUFfVFZBX2xhc3QkU2VjdG9yIDwtIGFzLmZhY3RvcihDQ0FBX1RWQV9sYXN0JFNlY3RvcikKbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKVtsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpPT0iQmFsZWFycywgSWxsZXMiXSA8LSAiSXNsYXMgQmFsZWFyZXMiCmxldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3RvcilbbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKT09Ik11cmNpYSwgUmVnacOzbiBkZSJdIDwtICJSZWdpw7NuIGRlIE11cmNpYSIKbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKVtsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpPT0iQXN0dXJpYXMsIFByaW5jaXBhZG8gZGUiXSA8LSAiUHJpbmNpcGFkbyBkZSBBc3R1cmlhcyIKbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKVtsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpPT0iTWFkcmlkLCBDb211bmlkYWQgZGUiXSA8LSAiQ29tdW5pZGFkIGRlIE1hZHJpZCIKbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKVtsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpPT0iTmF2YXJyYSwgQ29tdW5pZGFkIEZvcmFsIGRlIl0gPC0gIkNvbXVuaWRhZCBGb3JhbCBkZSBOYXZhcnJhIgpsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpW2xldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3Rvcik9PSJSaW9qYSwgTGEiXSA8LSAiTGEgUmlvamEiCmxldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3RvcilbbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKT09IlRvdGFsIHNlcnZpY2lvcyJdIDwtICJOQUNJT05BTCIKCgoKCkNDQUFfVFZBX2xhc3QgPC0gYXJyYW5nZShDQ0FBX1RWQV9sYXN0LGRlc2MoVkFMT1IpKQpgYGAKCjxwPkxhIHRhc2EgYW51YWwgZGUgbGEgY2lmcmEgZGUgbmVnb2Npb3MgZGVsIFNlY3RvciBTZXJ2aWNpb3MgZGUgTWVyY2FkbyBgciBjcmVjX2NjYWEoQ0NBQV9UVkFfbGFzdCRWQUxPUilbLDFdYCByZXNwZWN0byBhIGByIG1lc19wcmV2YCBkZSBgciBhbnlvX3ByZXZgIGByIGNyZWNfY2NhYShDQ0FBX1RWQV9sYXN0JFZBTE9SKVssMl1gIGxhcyBjb211bmlkYWRlcyBhdXTDs25vbWFzLiBgciBDQ0FBX1RWQV9sYXN0JFNlY3Rvcltucm93KENDQUFfVFZBX2xhc3QpXWAgKGByIGZvcm1hdChyb3VuZChDQ0FBX1RWQV9sYXN0JFZBTE9SW25yb3coQ0NBQV9UVkFfbGFzdCldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSB5IGByIENDQUFfVFZBX2xhc3QkU2VjdG9yW25yb3coQ0NBQV9UVkFfbGFzdCktMV1gIChgciBmb3JtYXQocm91bmQoQ0NBQV9UVkFfbGFzdCRWQUxPUltucm93KENDQUFfVFZBX2xhc3QpLTFdLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSBwcmVzZW50YW4gbG9zIG1heW9yZXMgYHIgZGVzY19pbmNyKG1pbihDQ0FBX1RWQV9sYXN0JFZBTE9SKSlgLCBtaWVudHJhcyBxdWUgYHIgQ0NBQV9UVkFfbGFzdCRTZWN0b3JbMV1gIChgciBmb3JtYXQocm91bmQoQ0NBQV9UVkFfbGFzdCRWQUxPUlsxXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkgeSBgciBDQ0FBX1RWQV9sYXN0JFNlY3RvclsyXWAgKGByIGZvcm1hdChyb3VuZChDQ0FBX1RWQV9sYXN0JFZBTE9SWzJdLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSBzb24gbGFzIHF1ZSBgciBtYXhfc3ViX2JhaihtYXgoQ0NBQV9UVkFfbGFzdCRWQUxPUikpYC4gPC9wPiAKCgo8aDM+CiAgKirDjW5kaWNlcyBnZW5lcmFsZXMgY2lmcmEgZGUgbmVnb2Npb3M6IG5hY2lvbmFsIHkgcG9yIGNvbXVuaWRhZGVzIGF1dMOzbm9tYXMuIFRhc2EgYW51YWwuIFBvcmNlbnRhamUuKiogCiAgPGRpdiBjbGFzcz0ibGV0Ij48cD4qKmByIE1lc19ub21icmUoQ04kTUVTW25yb3coQ04pXSlgKiogKipkZSBgciBDTiRBTllPW25yb3coQ04pXWAqKjwvcD48L2Rpdj4KPC9oMz4KCmBgYHtyIGVjaG8gPSBGQUxTRSwgZmlnLndpZHRoID0gMTAsIGZpZy5oZWlnaHQgPSA2LCB3YXJuaW5nID0gRkFMU0UsIGNvbW1lbnQ9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CkRhdGEgPC0gc3Vic2V0KENDQUFfVFZBX2xhc3QsIHNlbGVjdCA9IGMoU2VjdG9yLFZBTE9SKSkKY29sbmFtZXMoRGF0YSkgPC0gYygiQ0NBQSIsIlZhbG9yIikKCnAgPC0gZ2dwbG90KGRhdGEgPSBEYXRhLCBhZXMoeCA9IHJlb3JkZXIoQ0NBQSxWYWxvciksIHkgPSBWYWxvciwgZmlsbCA9IENDQUEpKSArCiAgZ2VvbV9iYXIoc3RhdD0iaWRlbnRpdHkiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB5bGFiKCIgIikgKwogIHhsYWIoIiAiKSArCiAgbGFicyhjb2xvdXIgPSAiICIpICsKICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICIgIikpICsgY29vcmRfZmxpcCgpICsKICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzPWMoIk5BQ0lPTkFMIiAgID0gIiM3QjI0MUMiLCAiQW5kYWx1Y8OtYSIgICA9ICIjRDBEM0Q0IiwgICAgICAgICAgICAgIAoiQXJhZ8OzbiIgICA9ICIjRDBEM0Q0IiwgIlByaW5jaXBhZG8gZGUgQXN0dXJpYXMiICAgPSAiI0QwRDNENCIsICAgICAgIAoiSXNsYXMgQmFsZWFyZXMiICAgPSAiI0QwRDNENCIsICJDYW5hcmlhcyIgICA9ICIjMDA4YmQwIiwgICAgICAgICAgICAgICAgICAgICAKIkNhbnRhYnJpYSIgICA9ICIjRDBEM0Q0IiwgIkNhc3RpbGxhIHkgTGXDs24iICAgPSAiI0QwRDNENCIsICAgICAgICAgICAgICAKIkNhc3RpbGxhIC0gTGEgTWFuY2hhIiAgID0gIiNEMEQzRDQiLCAiQ2F0YWx1w7FhIiAgID0gIiNEMEQzRDQiLCAgICAgICAgICAgICAgICAgICAgIAoiQ29tdW5pdGF0IFZhbGVuY2lhbmEiICAgPSAiI0QwRDNENCIsICJFeHRyZW1hZHVyYSIgICA9ICIjRDBEM0Q0IiwgICAgICAgICAgICAgICAgICAKIkdhbGljaWEiICAgPSAiI0QwRDNENCIsICJDb211bmlkYWQgZGUgTWFkcmlkIiAgICA9ICIjRDBEM0Q0IiwgICAgICAgIAoiUmVnacOzbiBkZSBNdXJjaWEiICAgPSAiI0QwRDNENCIsICJDb211bmlkYWQgRm9yYWwgZGUgTmF2YXJyYSIgICA9ICIjRDBEM0Q0IiwgICAKIlBhw61zIFZhc2NvIiAgID0gIiNEMEQzRDQiLCAiTGEgUmlvamEiICAgPSAiI0QwRDNENCIgICAgICkpICsKICBnZW9tX3RleHQoYWVzKGxhYmVsID0gcGFzdGUwKFZhbG9yLCIlIikpLCAKICAgIG51ZGdlX3kgPSAtMiwgc2l6ZSA9IDMsCiAgICBpbmhlcml0LmFlcyA9IFRSVUUKICApCmdncGxvdGx5KHAsdG9vbHRpcCA9IGMgKCJDQ0FBIiwgIlZhbG9yIikpICU+JSAKICBjb25maWcoZGlzcGxheWxvZ28gPSBGQUxTRSkKYGBgCgo8aDQ+ICoqw41uZGljZXMgZGUgb2N1cGFjacOzbioqIDwvaDQ+IAoKYGBge3IgaW5jbHVkZT1GQUxTRX0KQ0NBQV9PQ19UVkFfbGFzdCA8LSAgZmlsdGVyKE9DLCBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiICYgTUVTID09IENOJE1FU1tucm93KENOKV0gJiBBTllPID09IGFueW8pCkNDQUFfT0NfVFZBX2xhc3QkR0VPIDwtIGFzLmZhY3RvcihDQ0FBX09DX1RWQV9sYXN0JEdFTykKbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKVtsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pPT0iQmFsZWFycywgSWxsZXMiXSA8LSAiSXNsYXMgQmFsZWFyZXMiCmxldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTylbbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKT09Ik11cmNpYSwgUmVnacOzbiBkZSJdIDwtICJSZWdpw7NuIGRlIE11cmNpYSIKbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKVtsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pPT0iQXN0dXJpYXMsIFByaW5jaXBhZG8gZGUiXSA8LSAiUHJpbmNpcGFkbyBkZSBBc3R1cmlhcyIKbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKVtsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pPT0iTWFkcmlkLCBDb211bmlkYWQgZGUiXSA8LSAiQ29tdW5pZGFkIGRlIE1hZHJpZCIKbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKVtsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pPT0iTmF2YXJyYSwgQ29tdW5pZGFkIEZvcmFsIGRlIl0gPC0gIkNvbXVuaWRhZCBGb3JhbCBkZSBOYXZhcnJhIgpsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pW2xldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTyk9PSJSaW9qYSwgTGEiXSA8LSAiTGEgUmlvamEiCmxldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTylbbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKT09IlRvdGFsIE5hY2lvbmFsIl0gPC0gIk5BQ0lPTkFMIgoKCgoKQ0NBQV9PQ19UVkFfbGFzdCA8LSBhcnJhbmdlKENDQUFfT0NfVFZBX2xhc3QsZGVzYyhWQUxPUikpCmBgYAoKPHA+TGEgdGFzYSBhbnVhbCBkZSBvY3VwYWNpw7NuIGRlbCBTZWN0b3IgU2VydmljaW9zIGRlIE1lcmNhZG8gYHIgY3JlY19jY2FhKENDQUFfT0NfVFZBX2xhc3QkVkFMT1IpWywxXWAgcmVzcGVjdG8gYSBgciBtZXNfcHJldmAgZGUgYHIgYW55b19wcmV2YCBgciBjcmVjX2NjYWEoQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUilbLDJdYCBsYXMgY29tdW5pZGFkZXMgYXV0w7Nub21hcy4gYHIgQ0NBQV9PQ19UVkFfbGFzdCRHRU9bbnJvdyhDQ0FBX1RWQV9sYXN0KV1gIChgciBmb3JtYXQocm91bmQoQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUltucm93KENDQUFfT0NfVFZBX2xhc3QpXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkgeSBgciBDQ0FBX09DX1RWQV9sYXN0JEdFT1tucm93KENDQUFfT0NfVFZBX2xhc3QpLTFdYCAoYHIgZm9ybWF0KHJvdW5kKENDQUFfT0NfVFZBX2xhc3QkVkFMT1JbbnJvdyhDQ0FBX09DX1RWQV9sYXN0KS0xXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkgcHJlc2VudGFuIGxvcyBtYXlvcmVzIGByIGRlc2NfaW5jcihtaW4oQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUikpYCwgbWllbnRyYXMgcXVlIGByIENDQUFfT0NfVFZBX2xhc3QkR0VPWzFdYCAoYHIgZm9ybWF0KHJvdW5kKENDQUFfT0NfVFZBX2xhc3QkVkFMT1JbMV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpIHkgYHIgQ0NBQV9PQ19UVkFfbGFzdCRHRU9bMl1gIChgciBmb3JtYXQocm91bmQoQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUlsyXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkgc29uIGxhcyBxdWUgYHIgbWF4X3N1Yl9iYWoobWF4KENDQUFfT0NfVFZBX2xhc3QkVkFMT1IpKWAuIDwvcD4KCjxoMz4KICAqKsONbmRpY2VzIGdlbmVyYWxlcyBkZSBvY3VwYWNpw7NuOiBuYWNpb25hbCB5IHBvciBjb211bmlkYWRlcyBhdXTDs25vbWFzLiBUYXNhIGFudWFsLiBQb3JjZW50YWplLioqICAgICAgPGRpdiBjbGFzcz0ibGV0Ij48cD4qKmByIE1lc19ub21icmUoQ04kTUVTW25yb3coQ04pXSlgKiogKipkZSBgciBDTiRBTllPW25yb3coQ04pXWAqKjwvcD48L2Rpdj4KPC9oMz4gCgpgYGB7ciBlY2hvID0gRkFMU0UsIGZpZy53aWR0aCA9IDEwLCBmaWcuaGVpZ2h0ID0gNiwgd2FybmluZyA9IEZBTFNFLCBjb21tZW50PUZBTFNFLCBtZXNzYWdlPUZBTFNFfQpEYXRhIDwtIHN1YnNldChDQ0FBX09DX1RWQV9sYXN0LCBzZWxlY3QgPSBjKEdFTyxWQUxPUikpCmNvbG5hbWVzKERhdGEpIDwtIGMoIkNDQUEiLCJWYWxvciIpCgpwIDwtIGdncGxvdChkYXRhID0gRGF0YSwgYWVzKHggPSByZW9yZGVyKENDQUEsVmFsb3IpLCB5ID0gVmFsb3IsIGZpbGwgPSBDQ0FBKSkgKwogIGdlb21fYmFyKHN0YXQ9ImlkZW50aXR5IikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgeWxhYigiICIpICsKICB4bGFiKCIgIikgKwogIGxhYnMoY29sb3VyID0gIiAiKSArCiAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiICIpKSArIGNvb3JkX2ZsaXAoKSArCiAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJOQUNJT05BTCIgICA9ICIjN0IyNDFDIiwgIkFuZGFsdWPDrWEiICAgPSAiI0QwRDNENCIsICAgICAgICAgICAgICAKIkFyYWfDs24iICAgPSAiI0QwRDNENCIsICJQcmluY2lwYWRvIGRlIEFzdHVyaWFzIiAgID0gIiNEMEQzRDQiLCAgICAgICAKIklzbGFzIEJhbGVhcmVzIiAgID0gIiNEMEQzRDQiLCAiQ2FuYXJpYXMiICAgPSAiIzAwOGJkMCIsICAgICAgICAgICAgICAgICAgICAgCiJDYW50YWJyaWEiICAgPSAiI0QwRDNENCIsICJDYXN0aWxsYSB5IExlw7NuIiAgID0gIiNEMEQzRDQiLCAgICAgICAgICAgICAgCiJDYXN0aWxsYSAtIExhIE1hbmNoYSIgICA9ICIjRDBEM0Q0IiwgIkNhdGFsdcOxYSIgICA9ICIjRDBEM0Q0IiwgICAgICAgICAgICAgICAgICAgICAKIkNvbXVuaXRhdCBWYWxlbmNpYW5hIiAgID0gIiNEMEQzRDQiLCAiRXh0cmVtYWR1cmEiICAgPSAiI0QwRDNENCIsICAgICAgICAgICAgICAgICAgCiJHYWxpY2lhIiAgID0gIiNEMEQzRDQiLCAiQ29tdW5pZGFkIGRlIE1hZHJpZCIgICAgPSAiI0QwRDNENCIsICAgICAgICAKIlJlZ2nDs24gZGUgTXVyY2lhIiAgID0gIiNEMEQzRDQiLCAiQ29tdW5pZGFkIEZvcmFsIGRlIE5hdmFycmEiICAgPSAiI0QwRDNENCIsICAgCiJQYcOtcyBWYXNjbyIgICA9ICIjRDBEM0Q0IiwgIkxhIFJpb2phIiAgID0gIiNEMEQzRDQiICAgICApKSArCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHBhc3RlMChWYWxvciwiJSIpKSwgCiAgICBudWRnZV95ID0gLTEsIHNpemUgPSAzLAogICAgaW5oZXJpdC5hZXMgPSBUUlVFCiAgKQpnZ3Bsb3RseShwLHRvb2x0aXAgPSBjICgiQ0NBQSIsICJWYWxvciIpKSAlPiUgCiAgY29uZmlnKGRpc3BsYXlsb2dvID0gRkFMU0UpCmBgYAoKPGRpdiBjbGFzcz0iYm94Qm9yZGVyIj48cCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPgogICoqUkVWSVNJT05FUyBZIEFDVFVBTElaQUNJw5NOIERFIERBVE9TKioKPC9wPjwvZGl2PgoKPHAgc3R5bGU9Im1hcmdpbi10b3A6IDM1cHg7Ij4gU2UgaGFuIGFjdHVhbGl6YWRvIGxvcyBkYXRvcyBkZSBsYXMgc2VyaWVzIGRlIElBU1MgY29ycmVzcG9uZGllbnRlcyBhIGxvcyBjaW5jbyDDumx0aW1vcyBtZXNlcy4gRW4gZWwgY2FzbyBkZSBsYXMgc2VyaWVzIGFqdXN0YWRhcyBkZSBjYWxlbmRhcmlvIHkgZGVzZXN0YWNpb25hbGl6YWRhcyB5IGFqdXN0YWRhcyBkZSBjYWxlbmRhcmlvLCBzaWd1aWVuZG8gZWwgZXN0w6FuZGFyIGRlbCBJTkUgc2UgcmV2aXNhIGxhIHNlcmllIGRlc2RlIHN1IGNvbWllbnpvLjwvcD4KCjxkaXYgY2xhc3M9ImJveEJvcmRlciI+PHAgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4KICAqKk5PVEEgTUVUT0RPTMOTR0lDQSoqCjwvcD48L2Rpdj4KCjxwPiBMYSBpbmZvcm1hY2nDs24gZGUgYmFzZSBkZSBlc3RlIGluZGljYWRvciBwcm9jZWRlIGRlIHVuYSBlbmN1ZXN0YSBtZW5zdWFsIGEgZW1wcmVzYXMgcXVlIHJlYWxpemEgZWwgSW5zdGl0dXRvIE5hY2lvbmFsIGRlIEVzdGFkw61zdGljYSAoSU5FKSB5IHF1ZSByZWNpYmUgZWwgSVNUQUMgbWVkaWFudGUgYWN1ZXJkbyBkZSBpbnRlcmNhbWJpbyBkZSBpbmZvcm1hY2nDs24gZW50cmUgYW1ib3Mgb3JnYW5pc21vcyBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB1biBtYXlvciBkZXRhbGxlIGVuIGxhIGNvbXVuaWRhZCBhdXTDs25vbWEuIDwvcD4KCjxwPiBFc3RlIGluZm9ybWUgYW50aWNpcGEgbG9zIHRyYWJham9zIHF1ZSBlc3RhbW9zIGRlc2Fycm9sbGFuZG8gZW4gZWwgbWFyY28gZGVsIHByb3llY3RvIOKAnE3DqXRvZG9zIGVjb25vbcOpdHJpY29zIGFwbGljYWRvcyBhIHNlcmllcyBkZSBjb3l1bnR1cmEgZWNvbsOzbWljYSBFQ09NQUMgKE1BQy81LjExLmEvMDA0KeKAnSwgcmVhbGl6YWRvIGVuIGNvbGFib3JhY2nDs24gY29uIGxhcyBvZmljaW5hcyBkZSBlc3RhZMOtc3RpY2FzIGRlIEF6b3JlcyB5IE1hZGVpcmEgeSBmaW5hbmNpYWRvIHBvciBlbCBQcm9ncmFtYSBkZSBDb29wZXJhY2nDs24gSU5URVJSRUcgVi1BIEVzcGHDsWEtUG9ydHVnYWwgTUFDIChNYWRlaXJhLUF6b3Jlcy1DYW5hcmlhcykgMjAxNC0yMDIwLiA8L3A+Cgo8cD4gRWwgb2JqZXRpdm8gcHJpbmNpcGFsIGRlIGVzdGUgcHJveWVjdG8gZXMgbGEgY29uc3RydWNjacOzbiBkZSBtb2RlbG9zIGVjb25vbcOpdHJpY29zIHF1ZSBwZXJtaXRhbiBhanVzdGFyIGxhcyBzZXJpZXMgZGUgbG9zIHByaW5jaXBhbGVzIGluZGljYWRvcmVzIGRlIGxhIGNveXVudHVyYSBkZSBsb3MgZWZlY3RvcyBkZSBjYWxlbmRhcmlvIHkgZGUgbGEgZXN0YWNpb25hbGlkYWQuIExvcyByZXN1bHRhZG9zIHByZXNlbnRhZG9zIGVuIGVzdGUgaW5mb3JtZSBwZXJtaXRlbiBhZGVsYW50YXIgbG9zIHRyYWJham9zIHF1ZSBlc3RhbW9zIGRlc2Fycm9sbGFuZG8geSBxdWUgc2Vyw6FuIHB1YmxpY2Fkb3MgYSBmaW5hbGVzIGRlIDIwMjAuIDwvcD4KCjxoNSBzdHlsZT0ibWFyZ2luLXRvcDogMzVweDsiPioqTcOhcyBpbmZvcm1hY2nDs24qKjwvaDU+CgpJU1RBQyAtIENvbXVuaWNhY2nDs24gCgpbd3d3LmdvYmllcm5vZGVjYW5hcmlhcy5vcmcvaXN0YWMvbm90aWNpYXNdKGh0dHA6Ly93d3cuZ29iaWVybm9kZWNhbmFyaWFzLm9yZy9pc3RhYy9ub3RpY2lhcy8pCgppc3RhY0Bnb2JpZXJub2RlY2FuYXJpYXMgCgo5MjIgOTIgMjggNDEgLSA5MjggMjkgMzIgNzEgCgpAaXN0YWNfZXMKCjxpbWcgc3JjPSJodHRwOi8vd3d3LmdvYmllcm5vZGVjYW5hcmlhcy5vcmcvaXN0YWMvZ2FsZXJpYXMvaW1hZ2VuZXMvbWFjL21hYy1pbnRlcnJlZy5wbmciIGFsaWduPSJyaWdodCIgc3R5bGU9Im1hcmdpbjogMzVweCAwOyIgYWx0PSJMb2dvIE1BQyAtIElOVEVSUkVHIi8+Cg==