22 de abril de 2021

COMUNICACIÓN


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

febrero de 2021


La variación mensual de la cifra de negocios del Sector Servicios de Mercado es del -0,8% en Canarias, frente al 4,4% 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 -11% 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 febrero y enero, eliminando los efectos estacionales y de calendario, es del -0,8%. Esta tasa es 9,1 puntos superior a la de enero, y 5,2 puntos inferior a la del conjunto nacional (4,4%).

Í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 sube un 0,4% y Otros Servicios baja un -4,3%. En el grupo de Otros Servicios, Transporte y almacenamiento (-0,6%), Hostelería (-8,4%), Información y comunicaciones (-1,4%), Actividades profesionales, científicas y técnicas (7,2%), y Actividades administrativas y servicios auxiliares (-9,5%).

Índice cifra de negocios: General y por sectores.

Tasa mensual. Porcentaje.

febrero 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 -2,7 -0,8 2,6 4,4
Comercio -2,9 0,4 2,4 2,5
Transporte y almacenamiento 3,4 -0,6 4,1 3,4
Hostelería -7,9 -8,4 -6,2 -3,7
Información y comunicaciones -4,4 -1,4 1,3 0,7
Actividades profesionales científicas y técnicas 5,6 7,2 6,9 0,8
Actividades administrativas y servicios auxiliares -7,7 -9,5 2,4 0,9

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 febrero respecto al mismo mes de 2020. Esta tasa es 0,1 puntos inferior a la registrada en enero, y 22,3 puntos por abajo de la registrada a nivel nacional (-11%). La serie original presenta una variación anual del -33,3%, lo que supone 2 puntos por encima de la registrada en enero.

Í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 -21,1% y Otros servicios baja un -49,4%. En el grupo de Otros Servicios, Transporte y almacenamiento (-28,6%), Hostelería (-72,7%), Información y comunicaciones (-4,8%), Actividades profesionales, científicas y técnicas (-18,5%), y Actividades administrativas y servicios auxiliares (-63,2%).

Índice cifra de negocios: General y por sectores.

Tasa anual. Porcentaje.

febrero 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 -33,3 -33,3 -12,1 -11,0
Comercio -17,9 -21,1 -7,5 -7,0
Transporte y almacenamiento -29,4 -28,6 -14,9 -14,2
Hostelería -75,3 -72,7 -63,1 -62,0
Información y comunicaciones -5,2 -4,8 -8,3 -7,1
Actividades profesionales científicas y técnicas -14,5 -18,5 -6,0 -6,4
Actividades administrativas y servicios auxiliares -65,4 -63,2 -28,2 -26,7

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 enero de 2020 en todas las comunidades autónomas. Islas Baleares (-35,1%) y Canarias (-33,1%) presentan los mayores descensos, mientras que Castilla - La Mancha (-6,8%) y Galicia (-7,4%) son las que presentan los menores descensos.

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

febrero de 2021

Índices de ocupación

La tasa anual de ocupación del Sector Servicios de Mercado disminuye respecto a enero de 2020 en todas las comunidades autónomas. Islas Baleares (-13,4%) y Canarias (-10,8%) presentan los mayores descensos, mientras que Castilla - La Mancha (-3,1%) y País Vasco (-3,3%) son las que presentan los menores descensos.

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

febrero 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

LS0tCnRpdGxlOiAnICcKcGFnZXRpdGxlOiBDb211bmljYWNpw7NuIElBU1MgMjAyMU0wMgpwYXJhbXM6CiAgZmVjaGE6IDIyIGRlIGFicmlsIGRlIDIwMjEKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBjc3M6IEluZm9ybWVfSUFTUy5jc3MKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICBjc3M6IEluZm9ybWVfSUFTUy5jc3MKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tICAgCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KGZsZXhkYXNoYm9hcmQpCmBgYAoKPGRpdiBjbGFzcz0ibG9nby1pc3RhYyI+IAogIDxpbWcgc3JjPSIuLi9pbWFnZXMvbG9nb19pc3RhYy5qcGciIC8+CjwvZGl2PgpgYGB7ciBpbmNsdWRlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLG1lc3NhZ2U9RkFMU0V9Cm9wdGlvbnMoc2NpcGVuID0gOTk5KQoKbGlicmFyeSh4bHN4KQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KGRhdGEudGFibGUpCmxpYnJhcnkocGx5cikKbGlicmFyeSh6b28pCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShwbG90bHkpCmxpYnJhcnkoa2FibGVFeHRyYSkKbGlicmFyeShqc29ubGl0ZSkKCnNvdXJjZSgiLi4vc2NyL0Z1bmN0aW9ucy5SIikKCiMgTEVDVFVSQSBERSBEQVRPUyBKU09OIERFIExBIEFQSSBERUwgSU5FCiMgw41uZGljZSBnZW5lcmFsIGRlIENpZnJhcyBkZSBOZWdvY2lvcyBOYWNpb25hbCB5IHBvciBDQ0FBCkNOX2pzb24gPC0gZnJvbUpTT04oImh0dHBzOi8vc2VydmljaW9zLmluZS5lcy93c3RlbXB1cy9qcy9FUy9EQVRPU19UQUJMQS8yNTg5Nz9kYXRlPTIwMTkwMTAxOiIpCiMgw41uZGljZSBkZSBDaWZyYXMgZGUgTmVnb2Npb3MgYWp1c3RhZG8gZGUgZXN0YWNpb25hbGlkYWQgeSBjYWxlbmRhcmlvIEVTIChJLiBnZW5lcmFsIHkgc2VjdG9yZXMpCkNOX3NhY19qc29uIDwtIGZyb21KU09OKCJodHRwczovL3NlcnZpY2lvcy5pbmUuZXMvd3N0ZW1wdXMvanMvRVMvREFUT1NfVEFCTEEvMjU4OTM/ZGF0ZT0yMDE5MDEwMToiKQojIMONbmRpY2UgZGUgQ2lmcmFzIGRlIE5lZ29jaW9zIEVTIChJLiBnZW5lcmFsIHkgc2VjdG9yZXMpCkNOX3NlY3RvcmVzX2pzb24gPC0gZnJvbUpTT04oImh0dHBzOi8vc2VydmljaW9zLmluZS5lcy93c3RlbXB1cy9qcy9FUy9EQVRPU19UQUJMQS8yNTg5MT9kYXRlPTIwMTkwMTAxOiIpCiMgw41uZGljZSBkZSBPY3VwYWNpw7NuIGFqdXN0YWRvIGRlIGVzdGFjaW9uYWxpZGFkIHBvciBDQ0FBCk9DX2pzb24gPC0gZnJvbUpTT04oImh0dHBzOi8vc2VydmljaW9zLmluZS5lcy93c3RlbXB1cy9qcy9FUy9EQVRPU19UQUJMQS8yNTg5OT9kYXRlPTIwMTkwMTAxOiIpCgoKCiMgRVhUUkFDQ0nDk04gREUgTE9TIERBVEEuRlJBTUUgREUgTE9TIEpTT04KQ04gPC0gRXh0cmFjdF9kZihDTl9qc29uKQpDTl9zYWMgPC0gRXh0cmFjdF9kZihDTl9zYWNfanNvbikgJT4lIGZpbHRlcihTZWN0b3IgJWluJSBjKCJUb3RhbCBzZXJ2aWNpb3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21lcmNpbyBhbCBwb3IgbWF5b3IgeSBhbCBwb3IgbWVub3I7IHJlcGFyYWNpw7NuIGRlIHZlaMOtY3Vsb3MgZGUgbW90b3IgeSBtb3RvY2ljbGV0YXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFuc3BvcnRlIHkgYWxtYWNlbmFtaWVudG8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIb3N0ZWxlcsOtYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm9ybWFjacOzbiB5IGNvbXVuaWNhY2lvbmVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0aXZpZGFkZXMgcHJvZmVzaW9uYWxlcywgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMiKSkKCkNOX3NlY3RvcmVzIDwtIEV4dHJhY3RfZGYoQ05fc2VjdG9yZXNfanNvbiklPiUgZmlsdGVyKFNlY3RvciAlaW4lIGMoIlRvdGFsIHNlcnZpY2lvcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbWVyY2lvIGFsIHBvciBtYXlvciB5IGFsIHBvciBtZW5vcjsgcmVwYXJhY2nDs24gZGUgdmVow61jdWxvcyBkZSBtb3RvciB5IG1vdG9jaWNsZXRhcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhvc3RlbGVyw61hIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mb3JtYWNpw7NuIHkgY29tdW5pY2FjaW9uZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmlkYWRlcyBwcm9mZXNpb25hbGVzLCBjaWVudMOtZmljYXMgeSB0w6ljbmljYXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmlkYWRlcyBhZG1pbmlzdHJhdGl2YXMgeSBzZXJ2aWNpb3MgYXV4aWxpYXJlcyIpKQpPQyA8LSBFeHRyYWN0X2RmKE9DX2pzb24pCgojIEPDgUxDVUxPIERFIExBUyBUQVNBUwojIFRWQQpZX1RWQSA8LSBjYmluZChhcy5EYXRlKFkkRkVDSEEpLGFzLmRhdGEuZnJhbWUoVFZBKHN1YnNldChZLHNlbGVjdCA9IC1GRUNIQSksMTIpKSkKY29sbmFtZXMoWV9UVkEpIDwtIGNvbG5hbWVzKFkpCgojIFRWTQpZX1RWTSA8LSBjYmluZChhcy5EYXRlKFkkRkVDSEEpLGFzLmRhdGEuZnJhbWUoVFZNKHN1YnNldChZLHNlbGVjdCA9IC1GRUNIQSkpKSkKY29sbmFtZXMoWV9UVk0pIDwtIGNvbG5hbWVzKFkpCgojIExlbmd0aApuIDwtIG5yb3coZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gbWVuc3VhbCIpKQoKIyBGZWNoYQptZXMgPC0gZm9ybWF0KGFzLnllYXJtb24odGltZShZWywyXSlbbnJvdyhZKV0pLCIlQiIpCm1lc19wcmV2IDwtIGZvcm1hdChhcy55ZWFybW9uKHRpbWUoWVssMl0pW25yb3coWSktMV0pLCIlQiIpCmFueW8gPC0gZm9ybWF0KGFzLnllYXJtb24odGltZShZWywyXSlbbnJvdyhZKV0pLCIlWSIpCmFueW9fcHJldiA8LSBmb3JtYXQoYXMueWVhcm1vbih0aW1lKFlbLDJdKVtucm93KFkpLTEyXSksIiVZIikKCmBgYAoKPGRpdiBjbGFzcz0idGl0bGUtY29udGFpbmVyIj4KICA8c3BhbiBjbGFzcz0iZGF0ZSI+KipgciBwYXJhbXMkZmVjaGFgKio8L3NwYW4+CiAgPGgxPioqQ09NVU5JQ0FDScOTTioqPC9oMT4KPC9kaXY+CioqKgo8aDI+CiAgSW5kaWNhZG9yZXMgZGUgQWN0aXZpZGFkIGRlbCBTZWN0b3IgU2VydmljaW9zIChJQVNTKS4gQmFzZSAyMDE1LiBDYW5hcmlhcyB5IEVzcGHDsWEuIDxkaXYgY2xhc3M9ImxldCI+PHA+ICoqYHIgTWVzX25vbWJyZShDTiRNRVNbbnJvdyhDTildKWAgZGUgYHIgQ04kQU5ZT1tucm93KENOKV1gKiogIDwvcD48L2Rpdj4KPC9oMj4KKioqCjxoMiBzdHlsZT0ibWFyZ2luLXRvcDogOTBweDsiIGNsYXNzPSJjZW50ZXJlZCI+ICoqTGEgdmFyaWFjacOzbiBtZW5zdWFsIGRlIGxhIGNpZnJhIGRlIG5lZ29jaW9zIGRlbCBTZWN0b3IgU2VydmljaW9zIGRlIE1lcmNhZG8gZXMgZGVsIGByIGZvcm1hdChyb3VuZChZX1RWTSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWTSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlIGVuIENhbmFyaWFzLCBmcmVudGUgYWwgYHIgIGZvcm1hdChyb3VuZChmaWx0ZXIoQ05fc2FjLCBTZWN0b3IgPT0gIlRvdGFsIHNlcnZpY2lvcyIgJiBHRU8gPT0gIlRvdGFsIE5hY2lvbmFsIiAmIE1FRElEQSA9PSAiVmFyaWFjacOzbiBtZW5zdWFsIikkVkFMT1Jbbl0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUgZGVsIGNvbmp1bnRvIG5hY2lvbmFsLCB1bmEgdmV6IHF1ZSBzZSBlbGltaW5hbiBsb3MgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvICoqPC9oMj4gCgo8aDIgc3R5bGU9Im1hcmdpbi10b3A6IDMwcHg7IiBjbGFzcz0iY2VudGVyZWQiPiAqKkxhIHRhc2EgYW51YWwgc2Ugc2l0w7phIGVuIGVsIGByIGZvcm1hdChyb3VuZChZX1RWQSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlIGVuIGxhIHNlcmllIGNvcnJlZ2lkYSBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8sIGZyZW50ZSBhbCBgciBmb3JtYXQocm91bmQoZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiKSRWQUxPUltuXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSBlbiBsYSBzZXJpZSBjb3JyZWdpZGEgZGUgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvIGRlbCBjb25qdW50byBuYWNpb25hbCAqKjwvaDI+IAoKCjxkaXYgY2xhc3M9ImJveEJvcmRlciI+PHAgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4KICAqKkFOw4FMSVNJUyBERSBMQSBFVk9MVUNJw5NOIE1FTlNVQUwqKgo8L3A+PC9kaXY+Cgo8cD5MYSB2YXJpYWNpw7NuIG1lbnN1YWwgZGVsIMOtbmRpY2UgZ2VuZXJhbCBkZSBsYSBjaWZyYSBkZSBuZWdvY2lvcyBkZWwgU2VjdG9yIFNlcnZpY2lvcyBkZQpNZXJjYWRvIGVudHJlIGxvcyBtZXNlcyBkZSBgciBtZXNgIHkgYHIgbWVzX3ByZXZgLCBlbGltaW5hbmRvIGxvcyBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIApjYWxlbmRhcmlvLCBlcyBkZWwgYHIgZm9ybWF0KHJvdW5kKFlfVFZNJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUuIEVzdGEgdGFzYSBlcyBgciBmb3JtYXQoYWJzKHJvdW5kKFlfVFZNJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZNKV0tWV9UVk0kSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVk0pLTFdLDEpKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgIHB1bnRvcyBgciBzdXBfaW5mKHJvdW5kKFlfVFZNJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZNKV0tWV9UVk0kSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVk0pLTFdLDEpKWAgYSBsYSBkZSBgciBtZXNfcHJldmAsIHkgYHIgZm9ybWF0KGFicyhyb3VuZChZX1RWTSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWTSldLXJvdW5kKGZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiKSRWQUxPUltuXSwxKSwxKSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCBwdW50b3MKYHIgc3VwX2luZihyb3VuZChZX1RWTSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWTSldLWZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiKSRWQUxPUltuXSwxKSlgIGEgbGEgZGVsIGNvbmp1bnRvIG5hY2lvbmFsIChgciAgZm9ybWF0KHJvdW5kKGZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIG1lbnN1YWwiKSRWQUxPUltuXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkuPC9wPgoKPGgzPiAqKsONbmRpY2UgZ2VuZXJhbCBkZSBjaWZyYSBkZSBuZWdvY2lvcyBkZWwgU2VjdG9yIFNlcnZpY2lvcyBkZSBNZXJjYWRvKioKICA8cD5Db3JyZWdpZG8gZGUgZWZlY3RvcyBlc3RhY2lvbmFsZXMgeSBkZSBjYWxlbmRhcmlvLiBUYXNhIG1lbnN1YWwuIFBvcmNlbnRhamU8L3A+CjwvaDM+CgpgYGB7ciBlY2hvID0gRkFMU0UsIGZpZy53aWR0aCA9IDEwLCBmaWcuaGVpZ2h0ID0gNiwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlPUZBTFNFLCBvdXQud2lkdGg9IjEwMCUifQpFU1AgPC0gZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gbWVuc3VhbCIpCkVTUCA8LSBzdWJzZXQoRVNQLCBzZWxlY3QgPSBjKEdFTyxNRVMsQU5ZTyxWQUxPUikgKQpFU1AkR0VPIDwtICJFc3Bhw7FhIgpDQU4gPC0gY2JpbmQoR0VPID0gIkNhbmFyaWFzIixNRVMgPSBFU1AkTUVTLEFOWU8gPSBFU1AkQU5ZTyxWQUxPUiA9IFlfVFZNWyhucm93KFlfVFZNKS1ucm93KEVTUCkrMSk6bnJvdyhZX1RWTSksIklORElDRS5HRU5FUkFMX1NBQyJdKQoKRVNQIDwtIEVTUFsobnJvdyhFU1ApLTEyKTpucm93KEVTUCksXQpDQU4gPC0gQ0FOWyhucm93KENBTiktMTIpOm5yb3coQ0FOKSxdCgpEYXRhIDwtIHJiaW5kKEVTUCxDQU4pCiNEYXRhJFZBTE9SIDwtIGFzLm51bWVyaWMoRGF0YSRWQUxPUikKRGF0YSRWQUxPUiA8LXJvdW5kKGFzLm51bWVyaWMoRGF0YSRWQUxPUiksMSkKRGF0YSA8LSByZW5hbWUoRGF0YSwgVmFsb3IgPSBWQUxPUikKCkZlY2hhIDwtIGFzLmZhY3Rvcihmb3JtYXQoYXMueWVhcm1vbihZX1RWQVsobnJvdyhZX1RWQSktbnJvdyhFU1ApKzEpOm5yb3coWV9UVkEpLCJGRUNIQSJdKSwiJWIgJVkiKSkKCkRhdGEgPC0gY2JpbmQoRGF0YSxGZWNoYSA9IEZlY2hhKQoKRGF0YTIgPC0gRGF0YSAKRGF0YTJbRGF0YSRBTllPICE9IENOJEFOWU9bbnJvdyhDTildIHwgRGF0YSRNRVMgIT0gQ04kTUVTW25yb3coQ04pXSxdJFZhbG9yIDwtTkEKZm9yIChpIGluIDE6bnJvdyhEYXRhMikpewogIGlmIChpcy5uYShEYXRhMiRWYWxvcltpXSk9PUYpe0RhdGEyJFZhbG9yW2ldPC1wYXN0ZTAoRGF0YTIkVmFsb3JbaV0sIiAlIil9Cn0KCgpEYXRhJEZlY2hhIDwtIGZhY3RvcihEYXRhJEZlY2hhLCBsZXZlbHMgPSAgdW5pcXVlKERhdGEkRmVjaGEpKQoKcCA8LSBnZ3Bsb3QoZGF0YSA9IERhdGEsIGFlcyh4ID0gRmVjaGEsIHkgPSBWYWxvciwgZ3JvdXAgPSBHRU8sIGZpbGwgPSBHRU8pKSsKICBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIsIHBvc2l0aW9uPSJkb2RnZSIpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHlsYWIoIiAiKSArCiAgeGxhYigiICIpICsKICBsYWJzKGNvbG91ciA9ICIgIikgKwogIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIiAiKSkgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gInNvbGlkIiwgY29sb3IgPSAiYmxhY2siLCBzaXplID0gMC4yNSkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJFc3Bhw7FhIj0iIzdCMjQxQyIsIkNhbmFyaWFzIj0iIzAwOGJkMCIpKSsKICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGU9OTApLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSkrIAogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwLCB2anVzdCA9ICJlbmUgMjAxOSIsIGZhY2UgPSAiYm9sZCIpKSsKICBnZW9tX3RleHQoYWVzKGxhYmVsID0gRGF0YTIkVmFsb3IpLCAKICAgICNwb3NpdGlvbj1wb3NpdGlvbl9zdGFjayh2anVzdCA9IDApLCAKICAgIG51ZGdlX3kgPSBjKDEuNSwgLTIpLAogICAgbnVkZ2VfeCA9IGMoMC4yNSwgLTAuMSksCiAgICBzaXplID0yLjUsCiAgICBpbmhlcml0LmFlcyA9IFRSVUUpIAoKZ2dwbG90bHkocCwgdG9vbHRpcCA9IGMgKCJjb2xvdXIiLCAieSIsICJ4IikpICU+JSAKICBjb25maWcoZGlzcGxheWxvZ28gPSBGQUxTRSkKCmBgYAoKPHAgc3R5bGU9Im1hcmdpbi10b3A6IDcwcHg7Ij4gU2kgc2UgZWxpbWluYW4gbG9zIGVmZWN0b3MgZXN0YWNpb25hbGVzIHkgZGUgY2FsZW5kYXJpbywgZWwgQ29tZXJjaW8gYHIgYmFqYV9zdWJlKFlfVFZNJENPTUVSQ0lPX1NBQ1tucm93KFlfVFZNKV0pYCB1biBgciBmb3JtYXQocm91bmQoWV9UVk0kQ09NRVJDSU9fU0FDW25yb3coWV9UVk0pXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSB5IE90cm9zIFNlcnZpY2lvcyBgciBiYWphX3N1YmUoWV9UVk0kT1RST1MuU0VSVklDSU9TX1NBQ1tucm93KFlfVFZNKV0pYCB1biBgciBmb3JtYXQocm91bmQoWV9UVk0kT1RST1MuU0VSVklDSU9TX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUuIEVuIGVsIGdydXBvIGRlIE90cm9zIFNlcnZpY2lvcywgVHJhbnNwb3J0ZSB5IGFsbWFjZW5hbWllbnRvIChgciBmb3JtYXQocm91bmQoWV9UVk0kVFJBTlNQT1JURS5ZLkFMTUFDRU5BTUlFTlRPX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpLCBIb3N0ZWxlcsOtYSAoYHIgZm9ybWF0KHJvdW5kKFlfVFZNJEhPU1RFTEVSSUFfU0FDW25yb3coWV9UVk0pXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSksIEluZm9ybWFjacOzbiB5IGNvbXVuaWNhY2lvbmVzIChgciBmb3JtYXQocm91bmQoWV9UVk0kSU5GT1JNQUNJT04uWS5DT01VTklDQUNJT05FU19TQUNbbnJvdyhZX1RWTSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSwgQWN0aXZpZGFkZXMgcHJvZmVzaW9uYWxlcywgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIChgciBmb3JtYXQocm91bmQoWV9UVk0kQUNUSVZJREFERVMuUFJPRkVTSU9OQUxFUy5DSUVOVElGSUNBUy5ZLlRFQ05JQ0FTX1NBQ1tucm93KFlfVFZNKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpLCB5IEFjdGl2aWRhZGVzIGFkbWluaXN0cmF0aXZhcyB5IHNlcnZpY2lvcyBhdXhpbGlhcmVzIChgciBmb3JtYXQocm91bmQoWV9UVk0kQUNUSVZJREFERVMuQURNSU5JU1RSQVRJVkFTLlkuU0VSVklDSU9TLkFVWElMSUFSRVNfU0FDW25yb3coWV9UVk0pXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkuCjwvcD4KCjxoMz4gKirDjW5kaWNlIGNpZnJhIGRlIG5lZ29jaW9zOiBHZW5lcmFsIHkgcG9yIHNlY3RvcmVzLioqCiAgPHAgc3R5bGU9Im1hcmdpbi1ib3R0b206IC01cHgiPlRhc2EgbWVuc3VhbC4gUG9yY2VudGFqZS48L3A+IAogIDxkaXYgY2xhc3M9ImxldCI+PHA+YHIgTWVzX25vbWJyZShDTiRNRVNbbnJvdyhDTildKWAgZGUgYHIgQ04kQU5ZT1tucm93KENOKV1gICA8L3A+PC9kaXY+CjwvaDM+CgpgYGB7ciBlY2hvID0gRkFMU0UsIHJlc3VsdHMgPSAnYXNpcycsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZT1GQUxTRX0KZGF0YSA8LSBzdWJzZXQoWV9UVk1bbnJvdyhZX1RWTSksXSxzZWxlY3QgPSBjKCJJTkRJQ0UuR0VORVJBTCIsIkNPTUVSQ0lPIiwiVFJBTlNQT1JURS5ZLkFMTUFDRU5BTUlFTlRPIiAgLCJIT1NURUxFUklBIiwiSU5GT1JNQUNJT04uWS5DT01VTklDQUNJT05FUyIsIkFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBUyIsIkFDVElWSURBREVTLkFETUlOSVNUUkFUSVZBUy5ZLlNFUlZJQ0lPUy5BVVhJTElBUkVTIikpCmNvbG5hbWVzKGRhdGEpIDwtIGMoIsONbmRpY2UgZ2VuZXJhbCIsIkNvbWVyY2lvIiwiVHJhbnNwb3J0ZSB5IGFsbWFjZW5hbWllbnRvIiwiSG9zdGVsZXLDrWEiLCJJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyIsIkFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIiwiQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMiKQpkYXRhIDwtIHQocm91bmQoZGF0YSwxKSkKZGF0YV9zYWMgPC0gc3Vic2V0KFlfVFZNW25yb3coWV9UVk0pLF0sc2VsZWN0ID0gYygiSU5ESUNFLkdFTkVSQUxfU0FDIiwiQ09NRVJDSU9fU0FDIiwiVFJBTlNQT1JURS5ZLkFMTUFDRU5BTUlFTlRPX1NBQyIgICwiSE9TVEVMRVJJQV9TQUMiLCJJTkZPUk1BQ0lPTi5ZLkNPTVVOSUNBQ0lPTkVTX1NBQyIsIkFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBU19TQUMiLCJBQ1RJVklEQURFUy5BRE1JTklTVFJBVElWQVMuWS5TRVJWSUNJT1MuQVVYSUxJQVJFU19TQUMiKSkKY29sbmFtZXMoZGF0YV9zYWMpIDwtIGMoIsONbmRpY2UgZ2VuZXJhbCIsIkNvbWVyY2lvIiwiVHJhbnNwb3J0ZSB5IGFsbWFjZW5hbWllbnRvIiwiSG9zdGVsZXLDrWEiLCJJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyIsIkFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMsIGNpZW50w61maWNhcyB5IHTDqWNuaWNhcyIsIkFjdGl2aWRhZGVzIGFkbWluaXN0cmF0aXZhcyB5IHNlcnZpY2lvcyBhdXhpbGlhcmVzIikKZGF0YV9zYWMgPC0gdChyb3VuZChkYXRhX3NhYywxKSkKCkRBVEEgPC0gY2JpbmQoZGF0YSxkYXRhX3NhYykKY29sbmFtZXMoREFUQSkgPC0gYygiIiwiIikKCkVTUF9zYWMgPC0gZmlsdGVyKENOX3NhYywgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gbWVuc3VhbCIgJiAKICAgICAgICAgICAgICAgICAgICAgIE1FUyA9PSBDTiRNRVNbbnJvdyhDTildICYgQU5ZTyA9PUNOJEFOWU9bbnJvdyhDTildKQojIFJlY29kaWZpY2Ftb3MgbG9zIHNlY3RvcmVzIHBhcmEgcXVlIGNvaW5jaWRhbiBsb3Mgbm9tYnJlcwpFU1Bfc2FjW0VTUF9zYWMkU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiLF0kU2VjdG9yIDwtIGFzLmNoYXJhY3Rlcigiw41uZGljZSBnZW5lcmFsIikKRVNQX3NhY1tFU1Bfc2FjJFNlY3RvciA9PSAiQ29tZXJjaW8gYWwgcG9yIG1heW9yIHkgYWwgcG9yIG1lbm9yOyByZXBhcmFjacOzbiBkZSB2ZWjDrWN1bG9zIGRlIG1vdG9yIHkgbW90b2NpY2xldGFzIixdJFNlY3RvciA8LSBhcy5jaGFyYWN0ZXIoIkNvbWVyY2lvIikKCnJvd25hbWVzKEVTUF9zYWMpIDwtIEVTUF9zYWMkU2VjdG9yCkVTUF9zYWMgPC0gc3Vic2V0KEVTUF9zYWMsIHNlbGVjdCA9IGMoVkFMT1IpKQpjb2xuYW1lcyhFU1Bfc2FjKSA8LSBjKCIiKQoKRVNQIDwtIGZpbHRlcihDTl9zZWN0b3JlcywgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gbWVuc3VhbCIgJiAKICAgICAgICAgICAgICAgICAgICAgIE1FUyA9PSBDTiRNRVNbbnJvdyhDTildICYgQU5ZTyA9PUNOJEFOWU9bbnJvdyhDTildKSAKIyBSZWNvZGlmaWNhbW9zIGxvcyBzZWN0b3JlcyBwYXJhIHF1ZSBjb2luY2lkYW4gbG9zIG5vbWJyZXMKRVNQW0VTUCRTZWN0b3IgPT0gIlRvdGFsIHNlcnZpY2lvcyIsXSRTZWN0b3IgPC0gYXMuY2hhcmFjdGVyKCLDjW5kaWNlIGdlbmVyYWwiKQpFU1BbRVNQJFNlY3RvciA9PSAiQ29tZXJjaW8gYWwgcG9yIG1heW9yIHkgYWwgcG9yIG1lbm9yOyByZXBhcmFjacOzbiBkZSB2ZWjDrWN1bG9zIGRlIG1vdG9yIHkgbW90b2NpY2xldGFzIixdJFNlY3RvciA8LSBhcy5jaGFyYWN0ZXIoIkNvbWVyY2lvIikKCnJvd25hbWVzKEVTUCkgPC0gRVNQJFNlY3RvcgpFU1AgPC0gc3Vic2V0KEVTUCwgc2VsZWN0ID0gYyhWQUxPUikpCmNvbG5hbWVzKEVTUCkgPC0gYygiIikKCkRBVEEgPC0gY2JpbmQoREFUQSxFU1AsRVNQX3NhYykKY29sbmFtZXMoREFUQSkgPC0gYygiw41uZGljZSBvcmlnaW5hbCIsICLDjW5kaWNlIGNvcnJlZ2lkbyBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8iLAogICAgICAgICAgICAgICAgICAgICLDjW5kaWNlIG9yaWdpbmFsIiwgIsONbmRpY2UgY29ycmVnaWRvIGRlIGVmZWN0b3MgZXN0YWNpb25hbGVzIHkgZGUgY2FsZW5kYXJpbyIpCgp0YWJsYXNfRUMoZm9ybWF0KERBVEEsYmlnLm1hcms9Ii4iLGRlY2ltYWwubWFyayA9ICIsIiksMSkKYGBgCgo8ZGl2IGNsYXNzPSJib3hCb3JkZXIiPjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+CiAgKipBTsOBTElTSVMgREUgTEEgRVZPTFVDScOTTiBBTlVBTCoqCjwvcD48L2Rpdj4KCjxwPkVsIMONbmRpY2UgZ2VuZXJhbCBkZSBjaWZyYSBkZSBuZWdvY2lvcyBkZWwgU2VjdG9yIFNlcnZpY2lvcyBkZSBNZXJjYWRvIGNvcnJlZ2lkbyBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8gZXhwZXJpbWVudGEgdW5hIGByIGNhaWRhX3N1YmlkYShZX1RWQSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWQSldKWAgZGVsIGByIGZvcm1hdChhYnMocm91bmQoWV9UVkEkSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVkEpXSwxKSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUgZW4gYHIgbWVzYCByZXNwZWN0byBhbCBtaXNtbyBtZXMgZGUgYHIgYW55b19wcmV2YC4gRXN0YSB0YXNhIGVzIGByIGZvcm1hdChhYnMocm91bmQoWV9UVkEkSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVkEpXS1ZX1RWQSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWQSktMV0sMSkpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAgcHVudG9zIGByIHN1cF9pbmYocm91bmQoWV9UVkEkSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVkEpXS1ZX1RWQSRJTkRJQ0UuR0VORVJBTF9TQUNbbnJvdyhZX1RWQSktMV0sMSkpYCBhIGxhIHJlZ2lzdHJhZGEgZW4gYHIgbWVzX3ByZXZgLCB5IGByIGZvcm1hdChhYnMocm91bmQoWV9UVkEkSU5ESUNFLkdFTkVSQUxfU0FDW25yb3coWV9UVkEpXS1maWx0ZXIoQ05fc2FjLCBTZWN0b3IgPT0gIlRvdGFsIHNlcnZpY2lvcyIgJiBHRU8gPT0gIlRvdGFsIE5hY2lvbmFsIiAmIE1FRElEQSA9PSAiVmFyaWFjacOzbiBhbnVhbCIpJFZBTE9SW25dLDEpKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgIHB1bnRvcyBwb3IgYHIgYWJham9fZW5jaW1hKFlfVFZBJElORElDRS5HRU5FUkFMX1NBQ1tucm93KFlfVFZBKV0tZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiKSRWQUxPUltuXSlgIGRlIGxhIHJlZ2lzdHJhZGEgYSBuaXZlbCBuYWNpb25hbCAoYHIgZmlsdGVyKENOX3NhYywgU2VjdG9yID09ICJUb3RhbCBzZXJ2aWNpb3MiICYgR0VPID09ICJUb3RhbCBOYWNpb25hbCIgJiBNRURJREEgPT0gIlZhcmlhY2nDs24gYW51YWwiKSRWQUxPUltuXWAlKS4gTGEgc2VyaWUgb3JpZ2luYWwgcHJlc2VudGEgdW5hIHZhcmlhY2nDs24gYW51YWwgZGVsIGByICBmb3JtYXQocm91bmQoWV9UVkEkSU5ESUNFLkdFTkVSQUxbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlLCBsbyBxdWUgc3Vwb25lIGByICBmb3JtYXQoYWJzKHJvdW5kKFlfVFZBJElORElDRS5HRU5FUkFMW25yb3coWV9UVkEpXS1ZX1RWQSRJTkRJQ0UuR0VORVJBTFtucm93KFlfVFZBKS0xXSwxKSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCBwdW50b3MgcG9yIGByIGFiYWpvX2VuY2ltYShZX1RWQSRJTkRJQ0UuR0VORVJBTFtucm93KFlfVFZBKV0tWV9UVkEkSU5ESUNFLkdFTkVSQUxbbnJvdyhZX1RWQSktMV0pYCBkZSBsYSByZWdpc3RyYWRhIGVuIGByIG1lc19wcmV2YC48L3A+CgogPGgzPgogICoqw41uZGljZSBnZW5lcmFsIGRlIGNpZnJhIGRlIG5lZ29jaW9zIGRlbCBTZWN0b3IgU2VydmljaW9zIGRlIE1lcmNhZG8uIENhbmFyaWFzIHkgRXNwYcOxYSoqCiAgPHA+Q29ycmVnaWRvIGRlIGVmZWN0b3MgZXN0YWNpb25hbGVzIHkgZGUgY2FsZW5kYXJpby4gVGFzYSBhbnVhbC4gUG9yY2VudGFqZS48L3A+CjwvaDM+IAoKYGBge3IgZWNobyA9IEZBTFNFLCBmaWcud2lkdGggPSAxMCwgZmlnLmhlaWdodCA9IDYsIHdhcm5pbmcgPSBGQUxTRX0KRVNQIDwtIGZpbHRlcihDTl9zYWMsIFNlY3RvciA9PSAiVG90YWwgc2VydmljaW9zIiAmIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIGFudWFsIikKRVNQIDwtIHN1YnNldChFU1AsIHNlbGVjdCA9IGMoR0VPLE1FUyxBTllPLFZBTE9SKSApCkVTUCRHRU8gPC0gIkVzcGHDsWEiCkNBTiA8LSBjYmluZChHRU8gPSAiQ2FuYXJpYXMiLE1FUyA9IEVTUCRNRVMsQU5ZTyA9IEVTUCRBTllPLFZBTE9SID0gWV9UVkFbKG5yb3coWV9UVkEpLW5yb3coRVNQKSsxKTpucm93KFlfVFZBKSwiSU5ESUNFLkdFTkVSQUxfU0FDIl0pCgpEYXRhIDwtIHJiaW5kKEVTUCxDQU4pCkRhdGEkVkFMT1IgPC0gYXMubnVtZXJpYyhEYXRhJFZBTE9SKQoKI0ZlY2hhIDwtIGFzLmZhY3RvcihwYXN0ZTAoZm9ybWF0KGFzLnllYXJtb24oWV9UVkFbKG5yb3coWV9UVkEpLW5yb3coRVNQKSsxKTpucm93KFlfVFZBKSwiRkVDSEEiXSksIiViIiksIERhdGEkQU5ZTykpCkZlY2hhIDwtIGFzLmZhY3Rvcihmb3JtYXQoYXMueWVhcm1vbihZX1RWQVsobnJvdyhZX1RWQSktbnJvdyhFU1ApKzEpOm5yb3coWV9UVkEpLCJGRUNIQSJdKSwiJWIgJVkiKSkKCkRhdGEgPC0gY2JpbmQoRGF0YSxGZWNoYSA9IEZlY2hhKQpEYXRhIDwtIHJlbmFtZShEYXRhLCBWYWxvciA9IFZBTE9SKQoKI2RhdGUgPC0gYyhhcy5EYXRlKFlfVFZBWyhucm93KFlfVFZBKS1ucm93KEVTUCkrMSk6bnJvdyhZX1RWQSksIkZFQ0hBIl0pLGFzLkRhdGUoWV9UVkFbKG5yb3coWV9UVkEpLW5yb3coRVNQKSsxKTpucm93KFlfVFZBKSwiRkVDSEEiXSkpCgojRGF0YSA8LSBjYmluZChEYXRhLGRhdGUgPSBkYXRlKQoKI3ggPSAgZmFjdG9yKGFzLmNoYXJhY3RlcihEYXRhJGZlY2hhKSwgbGV2ZWwgPSBEYXRhJGZlY2hhKQoKRGF0YSRGZWNoYSA8LSBmYWN0b3IoRGF0YSRGZWNoYSwgbGV2ZWxzID0gIHVuaXF1ZShEYXRhJEZlY2hhKSkKCkRhdGEyIDwtIERhdGEgCkRhdGEyJFZhbG9yIDwtIHJvdW5kKERhdGEyJFZhbG9yLDEpCkRhdGEyW0RhdGEkQU5ZTyAhPSBDTiRBTllPW25yb3coQ04pXSB8IERhdGEkTUVTICE9IENOJE1FU1tucm93KENOKV0sXSRWYWxvciA8LU5BCgoKcCA8LSBnZ3Bsb3QoZGF0YSA9IERhdGEsIGFlcyh4ID0gRmVjaGEsIHkgPSBWYWxvciwgZ3JvdXAgPSBHRU8sIGNvbG91ciA9IEdFTykpKwogIGdlb21fbGluZShzaXplID0gMC44KSArCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCwgbGluZXR5cGUgPSAic29saWQiLCBjb2xvciA9ICJibGFjayIsIHNpemUgPSAwLjI1KSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gRmVjaGFbMV0sIGxpbmV0eXBlID0gInNvbGlkIiwgY29sb3IgPSAiYmxhY2siKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGU9OTApLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBsZWdlbmQudGl0bGU9ZWxlbWVudF9ibGFuaygpKSArCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTAsIHZqdXN0ID0gImVuZSAyMDE5IiwgZmFjZSA9ICJib2xkIikpICsKICB5bGFiKCIgIikgICsKICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICIgIikpKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzPWMoIkVzcGHDsWEiPSIjN0IyNDFDIiwiQ2FuYXJpYXMiPSIjMDA4YmQwIikpKwogIGdlb21fdGV4dChhZXMobGFiZWwgPSBhcy5jaGFyYWN0ZXIoRGF0YTIkVmFsb3IpLCAKICAgICAgICAgICAgeCA9IERhdGEyJEZlY2hhW25yb3coRGF0YTIpXQogICksIHNpemUgPSAzLCB2anVzdCA9IDEsIG51ZGdlX3kgPSA1KSAgCgoKZ2dwbG90bHkocCwgdG9vbHRpcCA9IGMgKCJjb2xvdXIiLCAieSIsICJ4IikpICU+JSAKICBjb25maWcoZGlzcGxheWxvZ28gPSBGQUxTRSkKYGBgCgo8cCBzdHlsZT0ibWFyZ2luLXRvcD03MHB4OyI+IFNpIHNlIGVsaW1pbmFuIGxvcyBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8sIGVsIENvbWVyY2lvIGByIGJhamFfc3ViZShZX1RWQSRDT01FUkNJT19TQUNbbnJvdyhZX1RWQSldKWAgdW4gYHIgZm9ybWF0KHJvdW5kKFlfVFZBJENPTUVSQ0lPX1NBQ1tucm93KFlfVFZBKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUgeSBPdHJvcyBzZXJ2aWNpb3MgYHIgYmFqYV9zdWJlKFlfVFZBJE9UUk9TLlNFUlZJQ0lPU19TQUNbbnJvdyhZX1RWQSldKWAgdW4gYHIgZm9ybWF0KHJvdW5kKFlfVFZBJE9UUk9TLlNFUlZJQ0lPU19TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlLiBFbiBlbCBncnVwbyBkZSBPdHJvcyBTZXJ2aWNpb3MsIFRyYW5zcG9ydGUgeSBhbG1hY2VuYW1pZW50byAoYHIgZm9ybWF0KHJvdW5kKFlfVFZBJFRSQU5TUE9SVEUuWS5BTE1BQ0VOQU1JRU5UT19TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSwgSG9zdGVsZXLDrWEgKGByIGZvcm1hdChyb3VuZChZX1RWQSRIT1NURUxFUklBX1NBQ1tucm93KFlfVFZBKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpLCBJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyAoYHIgZm9ybWF0KHJvdW5kKFlfVFZBJElORk9STUFDSU9OLlkuQ09NVU5JQ0FDSU9ORVNfU0FDW25yb3coWV9UVkEpXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSksIEFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMsIGNpZW50w61maWNhcyB5IHTDqWNuaWNhcyAoYHIgZm9ybWF0KHJvdW5kKFlfVFZBJEFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBU19TQUNbbnJvdyhZX1RWQSldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSwgeSBBY3RpdmlkYWRlcyBhZG1pbmlzdHJhdGl2YXMgeSBzZXJ2aWNpb3MgYXV4aWxpYXJlcyAoYHIgZm9ybWF0KHJvdW5kKFlfVFZBJEFDVElWSURBREVTLkFETUlOSVNUUkFUSVZBUy5ZLlNFUlZJQ0lPUy5BVVhJTElBUkVTX1NBQ1tucm93KFlfVFZBKV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpLgo8L3A+Cgo8aDM+IAogICoqw41uZGljZSBjaWZyYSBkZSBuZWdvY2lvczogR2VuZXJhbCB5IHBvciBzZWN0b3Jlcy4qKgogIDxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAtNXB4Ij5UYXNhIGFudWFsLiBQb3JjZW50YWplLjwvcD4KICA8ZGl2IGNsYXNzPSJsZXQiPjxwPmByIE1lc19ub21icmUoQ04kTUVTW25yb3coQ04pXSlgIGRlIGByIENOJEFOWU9bbnJvdyhDTildYCAgPC9wPjwvZGl2Pgo8L2gzPiAKCmBgYHtyIGVjaG8gPSBGQUxTRSwgZXZhbCA9IEZBTFNFLCByZXN1bHRzID0gJ2FzaXMnfQoKZGF0YSA8LSBzdWJzZXQoWV9UVkFbbnJvdyhZX1RWQSksXSxzZWxlY3QgPSBjKCJJTkRJQ0UuR0VORVJBTCIsIkNPTUVSQ0lPIiwiVFJBTlNQT1JURS5ZLkFMTUFDRU5BTUlFTlRPIiAgLCJIT1NURUxFUklBIiwiSU5GT1JNQUNJT04uWS5DT01VTklDQUNJT05FUyIsIkFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBUyIsIkFDVElWSURBREVTLkFETUlOSVNUUkFUSVZBUy5ZLlNFUlZJQ0lPUy5BVVhJTElBUkVTIikpCmNvbG5hbWVzKGRhdGEpIDwtIGMoIsONbmRpY2UgZ2VuZXJhbCIsIkNvbWVyY2lvIiwiVHJhbnNwb3J0ZSB5IGFsbWFjZW5hbWllbnRvIiwiSG9zdGVsZXLDrWEiLCJJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyIsIkFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIiwiQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMiKQpkYXRhIDwtIHQocm91bmQoZGF0YSwxKSkKZGF0YV9zYWMgPC0gc3Vic2V0KFlfVFZBW25yb3coWV9UVkEpLF0sc2VsZWN0ID0gYygiSU5ESUNFLkdFTkVSQUxfU0FDIiwiQ09NRVJDSU9fU0FDIiwiVFJBTlNQT1JURS5ZLkFMTUFDRU5BTUlFTlRPX1NBQyIgICwiSE9TVEVMRVJJQV9TQUMiLCJJTkZPUk1BQ0lPTi5ZLkNPTVVOSUNBQ0lPTkVTX1NBQyIsIkFDVElWSURBREVTLlBST0ZFU0lPTkFMRVMuQ0lFTlRJRklDQVMuWS5URUNOSUNBU19TQUMiLCJBQ1RJVklEQURFUy5BRE1JTklTVFJBVElWQVMuWS5TRVJWSUNJT1MuQVVYSUxJQVJFU19TQUMiKSkKY29sbmFtZXMoZGF0YV9zYWMpIDwtIGMoIsONbmRpY2UgZ2VuZXJhbCIsIkNvbWVyY2lvIiwiVHJhbnNwb3J0ZSB5IGFsbWFjZW5hbWllbnRvIiwiSG9zdGVsZXLDrWEiLCJJbmZvcm1hY2nDs24geSBjb211bmljYWNpb25lcyIsIkFjdGl2aWRhZGVzIHByb2Zlc2lvbmFsZXMgY2llbnTDrWZpY2FzIHkgdMOpY25pY2FzIiwiQWN0aXZpZGFkZXMgYWRtaW5pc3RyYXRpdmFzIHkgc2VydmljaW9zIGF1eGlsaWFyZXMiKQpkYXRhX3NhYyA8LSB0KHJvdW5kKGRhdGFfc2FjLDEpKQoKREFUQSA8LSBjYmluZChkYXRhLGRhdGFfc2FjKQpjb2xuYW1lcyhEQVRBKSA8LSBjKCIiLCIiKQoKdGFibGFzKGZvcm1hdChEQVRBLGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcmsgPSAiLCIpLDEpCmBgYAoKCmBgYHtyIGVjaG8gPSBGQUxTRSwgcmVzdWx0cyA9ICdhc2lzJywgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlPUZBTFNFfQpkYXRhIDwtIHN1YnNldChZX1RWQVtucm93KFlfVFZBKSxdLHNlbGVjdCA9IGMoIklORElDRS5HRU5FUkFMIiwiQ09NRVJDSU8iLCJUUkFOU1BPUlRFLlkuQUxNQUNFTkFNSUVOVE8iICAsIkhPU1RFTEVSSUEiLCJJTkZPUk1BQ0lPTi5ZLkNPTVVOSUNBQ0lPTkVTIiwiQUNUSVZJREFERVMuUFJPRkVTSU9OQUxFUy5DSUVOVElGSUNBUy5ZLlRFQ05JQ0FTIiwiQUNUSVZJREFERVMuQURNSU5JU1RSQVRJVkFTLlkuU0VSVklDSU9TLkFVWElMSUFSRVMiKSkKY29sbmFtZXMoZGF0YSkgPC0gYygiw41uZGljZSBnZW5lcmFsIiwiQ29tZXJjaW8iLCJUcmFuc3BvcnRlIHkgYWxtYWNlbmFtaWVudG8iLCJIb3N0ZWxlcsOtYSIsIkluZm9ybWFjacOzbiB5IGNvbXVuaWNhY2lvbmVzIiwiQWN0aXZpZGFkZXMgcHJvZmVzaW9uYWxlcyBjaWVudMOtZmljYXMgeSB0w6ljbmljYXMiLCJBY3RpdmlkYWRlcyBhZG1pbmlzdHJhdGl2YXMgeSBzZXJ2aWNpb3MgYXV4aWxpYXJlcyIpCmRhdGEgPC0gdChyb3VuZChkYXRhLDEpKQpkYXRhX3NhYyA8LSBzdWJzZXQoWV9UVkFbbnJvdyhZX1RWQSksXSxzZWxlY3QgPSBjKCJJTkRJQ0UuR0VORVJBTF9TQUMiLCJDT01FUkNJT19TQUMiLCJUUkFOU1BPUlRFLlkuQUxNQUNFTkFNSUVOVE9fU0FDIiAgLCJIT1NURUxFUklBX1NBQyIsIklORk9STUFDSU9OLlkuQ09NVU5JQ0FDSU9ORVNfU0FDIiwiQUNUSVZJREFERVMuUFJPRkVTSU9OQUxFUy5DSUVOVElGSUNBUy5ZLlRFQ05JQ0FTX1NBQyIsIkFDVElWSURBREVTLkFETUlOSVNUUkFUSVZBUy5ZLlNFUlZJQ0lPUy5BVVhJTElBUkVTX1NBQyIpKQpjb2xuYW1lcyhkYXRhX3NhYykgPC0gYygiw41uZGljZSBnZW5lcmFsIiwiQ29tZXJjaW8iLCJUcmFuc3BvcnRlIHkgYWxtYWNlbmFtaWVudG8iLCJIb3N0ZWxlcsOtYSIsIkluZm9ybWFjacOzbiB5IGNvbXVuaWNhY2lvbmVzIiwiQWN0aXZpZGFkZXMgcHJvZmVzaW9uYWxlcyBjaWVudMOtZmljYXMgeSB0w6ljbmljYXMiLCJBY3RpdmlkYWRlcyBhZG1pbmlzdHJhdGl2YXMgeSBzZXJ2aWNpb3MgYXV4aWxpYXJlcyIpCmRhdGFfc2FjIDwtIHQocm91bmQoZGF0YV9zYWMsMSkpCgpEQVRBIDwtIGNiaW5kKGRhdGEsZGF0YV9zYWMpCmNvbG5hbWVzKERBVEEpIDwtIGMoIiIsIiIpCgpFU1Bfc2FjIDwtIGZpbHRlcihDTl9zYWMsIEdFTyA9PSAiVG90YWwgTmFjaW9uYWwiICYgTUVESURBID09ICJWYXJpYWNpw7NuIGFudWFsIiAmIAogICAgICAgICAgICAgICAgICAgICAgTUVTID09IENOJE1FU1tucm93KENOKV0gJiBBTllPID09Q04kQU5ZT1tucm93KENOKV0pCiMgUmVjb2RpZmljYW1vcyBsb3Mgc2VjdG9yZXMgcGFyYSBxdWUgY29pbmNpZGFuIGxvcyBub21icmVzCkVTUF9zYWNbRVNQX3NhYyRTZWN0b3IgPT0gIlRvdGFsIHNlcnZpY2lvcyIsXSRTZWN0b3IgPC0gYXMuY2hhcmFjdGVyKCLDjW5kaWNlIGdlbmVyYWwiKQpFU1Bfc2FjW0VTUF9zYWMkU2VjdG9yID09ICJDb21lcmNpbyBhbCBwb3IgbWF5b3IgeSBhbCBwb3IgbWVub3I7IHJlcGFyYWNpw7NuIGRlIHZlaMOtY3Vsb3MgZGUgbW90b3IgeSBtb3RvY2ljbGV0YXMiLF0kU2VjdG9yIDwtIGFzLmNoYXJhY3RlcigiQ29tZXJjaW8iKQoKcm93bmFtZXMoRVNQX3NhYykgPC0gRVNQX3NhYyRTZWN0b3IKRVNQX3NhYyA8LSBzdWJzZXQoRVNQX3NhYywgc2VsZWN0ID0gYyhWQUxPUikpCmNvbG5hbWVzKEVTUF9zYWMpIDwtIGMoIiIpCgpFU1AgPC0gZmlsdGVyKENOX3NlY3RvcmVzLCBHRU8gPT0gIlRvdGFsIE5hY2lvbmFsIiAmIE1FRElEQSA9PSAiVmFyaWFjacOzbiBhbnVhbCIgJiAKICAgICAgICAgICAgICAgICAgICAgIE1FUyA9PSBDTiRNRVNbbnJvdyhDTildICYgQU5ZTyA9PUNOJEFOWU9bbnJvdyhDTildKSAKIyBSZWNvZGlmaWNhbW9zIGxvcyBzZWN0b3JlcyBwYXJhIHF1ZSBjb2luY2lkYW4gbG9zIG5vbWJyZXMKRVNQW0VTUCRTZWN0b3IgPT0gIlRvdGFsIHNlcnZpY2lvcyIsXSRTZWN0b3IgPC0gYXMuY2hhcmFjdGVyKCLDjW5kaWNlIGdlbmVyYWwiKQpFU1BbRVNQJFNlY3RvciA9PSAiQ29tZXJjaW8gYWwgcG9yIG1heW9yIHkgYWwgcG9yIG1lbm9yOyByZXBhcmFjacOzbiBkZSB2ZWjDrWN1bG9zIGRlIG1vdG9yIHkgbW90b2NpY2xldGFzIixdJFNlY3RvciA8LSBhcy5jaGFyYWN0ZXIoIkNvbWVyY2lvIikKCnJvd25hbWVzKEVTUCkgPC0gRVNQJFNlY3RvcgpFU1AgPC0gc3Vic2V0KEVTUCwgc2VsZWN0ID0gYyhWQUxPUikpCmNvbG5hbWVzKEVTUCkgPC0gYygiIikKCkRBVEEgPC0gY2JpbmQoREFUQSxFU1AsRVNQX3NhYykKY29sbmFtZXMoREFUQSkgPC0gYygiw41uZGljZSBvcmlnaW5hbCIsICLDjW5kaWNlIGNvcnJlZ2lkbyBkZSBlZmVjdG9zIGVzdGFjaW9uYWxlcyB5IGRlIGNhbGVuZGFyaW8iLAogICAgICAgICAgICAgICAgICAgICLDjW5kaWNlIG9yaWdpbmFsIiwgIsONbmRpY2UgY29ycmVnaWRvIGRlIGVmZWN0b3MgZXN0YWNpb25hbGVzIHkgZGUgY2FsZW5kYXJpbyIpCgp0YWJsYXNfRUMoZm9ybWF0KERBVEEsYmlnLm1hcms9Ii4iLGRlY2ltYWwubWFyayA9ICIsIiksMSkKYGBgCgo8ZGl2IGNsYXNzPSJib3hCb3JkZXIiPjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+CiAgKipBTsOBTElTSVMgQ09NUEFSQURPIFBPUiBDQ0FBKioKPC9wPjwvZGl2PgoKPGg0PiAqKsONbmRpY2VzIGRlIGNpZnJhIGRlIG5lZ29jaW9zKiogPC9oND4gCgpgYGB7ciBpbmNsdWRlPUZBTFNFfQpDQ0FBX1RWQV9sYXN0IDwtICBmaWx0ZXIoQ04sIE1FRElEQSA9PSAiVmFyaWFjacOzbiBhbnVhbCIgJiBNRVMgPT0gQ04kTUVTW25yb3coQ04pXSAmIEFOWU8gPT0gYW55bykKQ0NBQV9UVkFfbGFzdCRTZWN0b3IgPC0gYXMuZmFjdG9yKENDQUFfVFZBX2xhc3QkU2VjdG9yKQpsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpW2xldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3Rvcik9PSJCYWxlYXJzLCBJbGxlcyJdIDwtICJJc2xhcyBCYWxlYXJlcyIKbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKVtsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpPT0iTXVyY2lhLCBSZWdpw7NuIGRlIl0gPC0gIlJlZ2nDs24gZGUgTXVyY2lhIgpsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpW2xldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3Rvcik9PSJBc3R1cmlhcywgUHJpbmNpcGFkbyBkZSJdIDwtICJQcmluY2lwYWRvIGRlIEFzdHVyaWFzIgpsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpW2xldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3Rvcik9PSJNYWRyaWQsIENvbXVuaWRhZCBkZSJdIDwtICJDb211bmlkYWQgZGUgTWFkcmlkIgpsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpW2xldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3Rvcik9PSJOYXZhcnJhLCBDb211bmlkYWQgRm9yYWwgZGUiXSA8LSAiQ29tdW5pZGFkIEZvcmFsIGRlIE5hdmFycmEiCmxldmVscyhDQ0FBX1RWQV9sYXN0JFNlY3RvcilbbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKT09IlJpb2phLCBMYSJdIDwtICJMYSBSaW9qYSIKbGV2ZWxzKENDQUFfVFZBX2xhc3QkU2VjdG9yKVtsZXZlbHMoQ0NBQV9UVkFfbGFzdCRTZWN0b3IpPT0iVG90YWwgc2VydmljaW9zIl0gPC0gIk5BQ0lPTkFMIgoKCgoKQ0NBQV9UVkFfbGFzdCA8LSBhcnJhbmdlKENDQUFfVFZBX2xhc3QsZGVzYyhWQUxPUikpCmBgYAoKPHA+TGEgdGFzYSBhbnVhbCBkZSBsYSBjaWZyYSBkZSBuZWdvY2lvcyBkZWwgU2VjdG9yIFNlcnZpY2lvcyBkZSBNZXJjYWRvIGByIGNyZWNfY2NhYShDQ0FBX1RWQV9sYXN0JFZBTE9SKVssMV1gIHJlc3BlY3RvIGEgYHIgbWVzX3ByZXZgIGRlIGByIGFueW9fcHJldmAgYHIgY3JlY19jY2FhKENDQUFfVFZBX2xhc3QkVkFMT1IpWywyXWAgbGFzIGNvbXVuaWRhZGVzIGF1dMOzbm9tYXMuIGByIENDQUFfVFZBX2xhc3QkU2VjdG9yW25yb3coQ0NBQV9UVkFfbGFzdCldYCAoYHIgZm9ybWF0KHJvdW5kKENDQUFfVFZBX2xhc3QkVkFMT1JbbnJvdyhDQ0FBX1RWQV9sYXN0KV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpIHkgYHIgQ0NBQV9UVkFfbGFzdCRTZWN0b3JbbnJvdyhDQ0FBX1RWQV9sYXN0KS0xXWAgKGByIGZvcm1hdChyb3VuZChDQ0FBX1RWQV9sYXN0JFZBTE9SW25yb3coQ0NBQV9UVkFfbGFzdCktMV0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpIHByZXNlbnRhbiBsb3MgbWF5b3JlcyBgciBkZXNjX2luY3IobWluKENDQUFfVFZBX2xhc3QkVkFMT1IpKWAsIG1pZW50cmFzIHF1ZSBgciBDQ0FBX1RWQV9sYXN0JFNlY3RvclsxXWAgKGByIGZvcm1hdChyb3VuZChDQ0FBX1RWQV9sYXN0JFZBTE9SWzFdLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSB5IGByIENDQUFfVFZBX2xhc3QkU2VjdG9yWzJdYCAoYHIgZm9ybWF0KHJvdW5kKENDQUFfVFZBX2xhc3QkVkFMT1JbMl0sMSksZGVjaW1hbC5tYXJrPSIsIixiaWcubWFyaz0iLiIpYCUpIHNvbiBsYXMgcXVlIGByIG1heF9zdWJfYmFqKG1heChDQ0FBX1RWQV9sYXN0JFZBTE9SKSlgLiA8L3A+IAoKCjxoMz4KICAqKsONbmRpY2VzIGdlbmVyYWxlcyBjaWZyYSBkZSBuZWdvY2lvczogbmFjaW9uYWwgeSBwb3IgY29tdW5pZGFkZXMgYXV0w7Nub21hcy4gVGFzYSBhbnVhbC4gUG9yY2VudGFqZS4qKiAKICA8ZGl2IGNsYXNzPSJsZXQiPjxwPioqYHIgTWVzX25vbWJyZShDTiRNRVNbbnJvdyhDTildKWAqKiAqKmRlIGByIENOJEFOWU9bbnJvdyhDTildYCoqPC9wPjwvZGl2Pgo8L2gzPgoKYGBge3IgZWNobyA9IEZBTFNFLCBmaWcud2lkdGggPSAxMCwgZmlnLmhlaWdodCA9IDYsIHdhcm5pbmcgPSBGQUxTRSwgY29tbWVudD1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KRGF0YSA8LSBzdWJzZXQoQ0NBQV9UVkFfbGFzdCwgc2VsZWN0ID0gYyhTZWN0b3IsVkFMT1IpKQpjb2xuYW1lcyhEYXRhKSA8LSBjKCJDQ0FBIiwiVmFsb3IiKQoKcCA8LSBnZ3Bsb3QoZGF0YSA9IERhdGEsIGFlcyh4ID0gcmVvcmRlcihDQ0FBLFZhbG9yKSwgeSA9IFZhbG9yLCBmaWxsID0gQ0NBQSkpICsKICBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHlsYWIoIiAiKSArCiAgeGxhYigiICIpICsKICBsYWJzKGNvbG91ciA9ICIgIikgKwogIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIiAiKSkgKyBjb29yZF9mbGlwKCkgKwogIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vci54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXM9YygiTkFDSU9OQUwiICAgPSAiIzdCMjQxQyIsICJBbmRhbHVjw61hIiAgID0gIiNEMEQzRDQiLCAgICAgICAgICAgICAgCiJBcmFnw7NuIiAgID0gIiNEMEQzRDQiLCAiUHJpbmNpcGFkbyBkZSBBc3R1cmlhcyIgICA9ICIjRDBEM0Q0IiwgICAgICAgCiJJc2xhcyBCYWxlYXJlcyIgICA9ICIjRDBEM0Q0IiwgIkNhbmFyaWFzIiAgID0gIiMwMDhiZDAiLCAgICAgICAgICAgICAgICAgICAgIAoiQ2FudGFicmlhIiAgID0gIiNEMEQzRDQiLCAiQ2FzdGlsbGEgeSBMZcOzbiIgICA9ICIjRDBEM0Q0IiwgICAgICAgICAgICAgIAoiQ2FzdGlsbGEgLSBMYSBNYW5jaGEiICAgPSAiI0QwRDNENCIsICJDYXRhbHXDsWEiICAgPSAiI0QwRDNENCIsICAgICAgICAgICAgICAgICAgICAgCiJDb211bml0YXQgVmFsZW5jaWFuYSIgICA9ICIjRDBEM0Q0IiwgIkV4dHJlbWFkdXJhIiAgID0gIiNEMEQzRDQiLCAgICAgICAgICAgICAgICAgIAoiR2FsaWNpYSIgICA9ICIjRDBEM0Q0IiwgIkNvbXVuaWRhZCBkZSBNYWRyaWQiICAgID0gIiNEMEQzRDQiLCAgICAgICAgCiJSZWdpw7NuIGRlIE11cmNpYSIgICA9ICIjRDBEM0Q0IiwgIkNvbXVuaWRhZCBGb3JhbCBkZSBOYXZhcnJhIiAgID0gIiNEMEQzRDQiLCAgIAoiUGHDrXMgVmFzY28iICAgPSAiI0QwRDNENCIsICJMYSBSaW9qYSIgICA9ICIjRDBEM0Q0IiAgICAgKSkgKwogIGdlb21fdGV4dChhZXMobGFiZWwgPSBwYXN0ZTAoVmFsb3IsIiUiKSksIAogICAgbnVkZ2VfeSA9IC0yLCBzaXplID0gMywKICAgIGluaGVyaXQuYWVzID0gVFJVRQogICkKZ2dwbG90bHkocCx0b29sdGlwID0gYyAoIkNDQUEiLCAiVmFsb3IiKSkgJT4lIAogIGNvbmZpZyhkaXNwbGF5bG9nbyA9IEZBTFNFKQpgYGAKCjxoND4gKirDjW5kaWNlcyBkZSBvY3VwYWNpw7NuKiogPC9oND4gCgpgYGB7ciBpbmNsdWRlPUZBTFNFfQpDQ0FBX09DX1RWQV9sYXN0IDwtICBmaWx0ZXIoT0MsIE1FRElEQSA9PSAiVmFyaWFjacOzbiBhbnVhbCIgJiBNRVMgPT0gQ04kTUVTW25yb3coQ04pXSAmIEFOWU8gPT0gYW55bykKQ0NBQV9PQ19UVkFfbGFzdCRHRU8gPC0gYXMuZmFjdG9yKENDQUFfT0NfVFZBX2xhc3QkR0VPKQpsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pW2xldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTyk9PSJCYWxlYXJzLCBJbGxlcyJdIDwtICJJc2xhcyBCYWxlYXJlcyIKbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKVtsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pPT0iTXVyY2lhLCBSZWdpw7NuIGRlIl0gPC0gIlJlZ2nDs24gZGUgTXVyY2lhIgpsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pW2xldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTyk9PSJBc3R1cmlhcywgUHJpbmNpcGFkbyBkZSJdIDwtICJQcmluY2lwYWRvIGRlIEFzdHVyaWFzIgpsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pW2xldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTyk9PSJNYWRyaWQsIENvbXVuaWRhZCBkZSJdIDwtICJDb211bmlkYWQgZGUgTWFkcmlkIgpsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pW2xldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTyk9PSJOYXZhcnJhLCBDb211bmlkYWQgRm9yYWwgZGUiXSA8LSAiQ29tdW5pZGFkIEZvcmFsIGRlIE5hdmFycmEiCmxldmVscyhDQ0FBX09DX1RWQV9sYXN0JEdFTylbbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKT09IlJpb2phLCBMYSJdIDwtICJMYSBSaW9qYSIKbGV2ZWxzKENDQUFfT0NfVFZBX2xhc3QkR0VPKVtsZXZlbHMoQ0NBQV9PQ19UVkFfbGFzdCRHRU8pPT0iVG90YWwgTmFjaW9uYWwiXSA8LSAiTkFDSU9OQUwiCgoKCgpDQ0FBX09DX1RWQV9sYXN0IDwtIGFycmFuZ2UoQ0NBQV9PQ19UVkFfbGFzdCxkZXNjKFZBTE9SKSkKYGBgCgo8cD5MYSB0YXNhIGFudWFsIGRlIG9jdXBhY2nDs24gZGVsIFNlY3RvciBTZXJ2aWNpb3MgZGUgTWVyY2FkbyBgciBjcmVjX2NjYWEoQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUilbLDFdYCByZXNwZWN0byBhIGByIG1lc19wcmV2YCBkZSBgciBhbnlvX3ByZXZgIGByIGNyZWNfY2NhYShDQ0FBX09DX1RWQV9sYXN0JFZBTE9SKVssMl1gIGxhcyBjb211bmlkYWRlcyBhdXTDs25vbWFzLiBgciBDQ0FBX09DX1RWQV9sYXN0JEdFT1tucm93KENDQUFfVFZBX2xhc3QpXWAgKGByIGZvcm1hdChyb3VuZChDQ0FBX09DX1RWQV9sYXN0JFZBTE9SW25yb3coQ0NBQV9PQ19UVkFfbGFzdCldLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSB5IGByIENDQUFfT0NfVFZBX2xhc3QkR0VPW25yb3coQ0NBQV9PQ19UVkFfbGFzdCktMV1gIChgciBmb3JtYXQocm91bmQoQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUltucm93KENDQUFfT0NfVFZBX2xhc3QpLTFdLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSBwcmVzZW50YW4gbG9zIG1heW9yZXMgYHIgZGVzY19pbmNyKG1pbihDQ0FBX09DX1RWQV9sYXN0JFZBTE9SKSlgLCBtaWVudHJhcyBxdWUgYHIgQ0NBQV9PQ19UVkFfbGFzdCRHRU9bMV1gIChgciBmb3JtYXQocm91bmQoQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUlsxXSwxKSxkZWNpbWFsLm1hcms9IiwiLGJpZy5tYXJrPSIuIilgJSkgeSBgciBDQ0FBX09DX1RWQV9sYXN0JEdFT1syXWAgKGByIGZvcm1hdChyb3VuZChDQ0FBX09DX1RWQV9sYXN0JFZBTE9SWzJdLDEpLGRlY2ltYWwubWFyaz0iLCIsYmlnLm1hcms9Ii4iKWAlKSBzb24gbGFzIHF1ZSBgciBtYXhfc3ViX2JhaihtYXgoQ0NBQV9PQ19UVkFfbGFzdCRWQUxPUikpYC4gPC9wPgoKPGgzPgogICoqw41uZGljZXMgZ2VuZXJhbGVzIGRlIG9jdXBhY2nDs246IG5hY2lvbmFsIHkgcG9yIGNvbXVuaWRhZGVzIGF1dMOzbm9tYXMuIFRhc2EgYW51YWwuIFBvcmNlbnRhamUuKiogICAgICA8ZGl2IGNsYXNzPSJsZXQiPjxwPioqYHIgTWVzX25vbWJyZShDTiRNRVNbbnJvdyhDTildKWAqKiAqKmRlIGByIENOJEFOWU9bbnJvdyhDTildYCoqPC9wPjwvZGl2Pgo8L2gzPiAKCmBgYHtyIGVjaG8gPSBGQUxTRSwgZmlnLndpZHRoID0gMTAsIGZpZy5oZWlnaHQgPSA2LCB3YXJuaW5nID0gRkFMU0UsIGNvbW1lbnQ9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CkRhdGEgPC0gc3Vic2V0KENDQUFfT0NfVFZBX2xhc3QsIHNlbGVjdCA9IGMoR0VPLFZBTE9SKSkKY29sbmFtZXMoRGF0YSkgPC0gYygiQ0NBQSIsIlZhbG9yIikKCnAgPC0gZ2dwbG90KGRhdGEgPSBEYXRhLCBhZXMoeCA9IHJlb3JkZXIoQ0NBQSxWYWxvciksIHkgPSBWYWxvciwgZmlsbCA9IENDQUEpKSArCiAgZ2VvbV9iYXIoc3RhdD0iaWRlbnRpdHkiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB5bGFiKCIgIikgKwogIHhsYWIoIiAiKSArCiAgbGFicyhjb2xvdXIgPSAiICIpICsKICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICIgIikpICsgY29vcmRfZmxpcCgpICsKICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzPWMoIk5BQ0lPTkFMIiAgID0gIiM3QjI0MUMiLCAiQW5kYWx1Y8OtYSIgICA9ICIjRDBEM0Q0IiwgICAgICAgICAgICAgIAoiQXJhZ8OzbiIgICA9ICIjRDBEM0Q0IiwgIlByaW5jaXBhZG8gZGUgQXN0dXJpYXMiICAgPSAiI0QwRDNENCIsICAgICAgIAoiSXNsYXMgQmFsZWFyZXMiICAgPSAiI0QwRDNENCIsICJDYW5hcmlhcyIgICA9ICIjMDA4YmQwIiwgICAgICAgICAgICAgICAgICAgICAKIkNhbnRhYnJpYSIgICA9ICIjRDBEM0Q0IiwgIkNhc3RpbGxhIHkgTGXDs24iICAgPSAiI0QwRDNENCIsICAgICAgICAgICAgICAKIkNhc3RpbGxhIC0gTGEgTWFuY2hhIiAgID0gIiNEMEQzRDQiLCAiQ2F0YWx1w7FhIiAgID0gIiNEMEQzRDQiLCAgICAgICAgICAgICAgICAgICAgIAoiQ29tdW5pdGF0IFZhbGVuY2lhbmEiICAgPSAiI0QwRDNENCIsICJFeHRyZW1hZHVyYSIgICA9ICIjRDBEM0Q0IiwgICAgICAgICAgICAgICAgICAKIkdhbGljaWEiICAgPSAiI0QwRDNENCIsICJDb211bmlkYWQgZGUgTWFkcmlkIiAgICA9ICIjRDBEM0Q0IiwgICAgICAgIAoiUmVnacOzbiBkZSBNdXJjaWEiICAgPSAiI0QwRDNENCIsICJDb211bmlkYWQgRm9yYWwgZGUgTmF2YXJyYSIgICA9ICIjRDBEM0Q0IiwgICAKIlBhw61zIFZhc2NvIiAgID0gIiNEMEQzRDQiLCAiTGEgUmlvamEiICAgPSAiI0QwRDNENCIgICAgICkpICsKICBnZW9tX3RleHQoYWVzKGxhYmVsID0gcGFzdGUwKFZhbG9yLCIlIikpLCAKICAgIG51ZGdlX3kgPSAtMSwgc2l6ZSA9IDMsCiAgICBpbmhlcml0LmFlcyA9IFRSVUUKICApCmdncGxvdGx5KHAsdG9vbHRpcCA9IGMgKCJDQ0FBIiwgIlZhbG9yIikpICU+JSAKICBjb25maWcoZGlzcGxheWxvZ28gPSBGQUxTRSkKYGBgCgo8ZGl2IGNsYXNzPSJib3hCb3JkZXIiPjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+CiAgKipSRVZJU0lPTkVTIFkgQUNUVUFMSVpBQ0nDk04gREUgREFUT1MqKgo8L3A+PC9kaXY+Cgo8cCBzdHlsZT0ibWFyZ2luLXRvcDogMzVweDsiPiBTZSBoYW4gYWN0dWFsaXphZG8gbG9zIGRhdG9zIGRlIGxhcyBzZXJpZXMgZGUgSUFTUyBjb3JyZXNwb25kaWVudGVzIGEgbG9zIGNpbmNvIMO6bHRpbW9zIG1lc2VzLiBFbiBlbCBjYXNvIGRlIGxhcyBzZXJpZXMgYWp1c3RhZGFzIGRlIGNhbGVuZGFyaW8geSBkZXNlc3RhY2lvbmFsaXphZGFzIHkgYWp1c3RhZGFzIGRlIGNhbGVuZGFyaW8sIHNpZ3VpZW5kbyBlbCBlc3TDoW5kYXIgZGVsIElORSBzZSByZXZpc2EgbGEgc2VyaWUgZGVzZGUgc3UgY29taWVuem8uPC9wPgoKPGRpdiBjbGFzcz0iYm94Qm9yZGVyIj48cCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPgogICoqTk9UQSBNRVRPRE9Mw5NHSUNBKioKPC9wPjwvZGl2PgoKPHA+IExhIGluZm9ybWFjacOzbiBkZSBiYXNlIGRlIGVzdGUgaW5kaWNhZG9yIHByb2NlZGUgZGUgdW5hIGVuY3Vlc3RhIG1lbnN1YWwgYSBlbXByZXNhcyBxdWUgcmVhbGl6YSBlbCBJbnN0aXR1dG8gTmFjaW9uYWwgZGUgRXN0YWTDrXN0aWNhIChJTkUpIHkgcXVlIHJlY2liZSBlbCBJU1RBQyBtZWRpYW50ZSBhY3VlcmRvIGRlIGludGVyY2FtYmlvIGRlIGluZm9ybWFjacOzbiBlbnRyZSBhbWJvcyBvcmdhbmlzbW9zIHBhcmEgbGEgcHVibGljYWNpw7NuIGRlIHVuIG1heW9yIGRldGFsbGUgZW4gbGEgY29tdW5pZGFkIGF1dMOzbm9tYS4gPC9wPgoKPHA+IEVzdGUgaW5mb3JtZSBhbnRpY2lwYSBsb3MgdHJhYmFqb3MgcXVlIGVzdGFtb3MgZGVzYXJyb2xsYW5kbyBlbiBlbCBtYXJjbyBkZWwgcHJveWVjdG8g4oCcTcOpdG9kb3MgZWNvbm9tw6l0cmljb3MgYXBsaWNhZG9zIGEgc2VyaWVzIGRlIGNveXVudHVyYSBlY29uw7NtaWNhIEVDT01BQyAoTUFDLzUuMTEuYS8wMDQp4oCdLCByZWFsaXphZG8gZW4gY29sYWJvcmFjacOzbiBjb24gbGFzIG9maWNpbmFzIGRlIGVzdGFkw61zdGljYXMgZGUgQXpvcmVzIHkgTWFkZWlyYSB5IGZpbmFuY2lhZG8gcG9yIGVsIFByb2dyYW1hIGRlIENvb3BlcmFjacOzbiBJTlRFUlJFRyBWLUEgRXNwYcOxYS1Qb3J0dWdhbCBNQUMgKE1hZGVpcmEtQXpvcmVzLUNhbmFyaWFzKSAyMDE0LTIwMjAuIDwvcD4KCjxwPiBFbCBvYmpldGl2byBwcmluY2lwYWwgZGUgZXN0ZSBwcm95ZWN0byBlcyBsYSBjb25zdHJ1Y2Npw7NuIGRlIG1vZGVsb3MgZWNvbm9tw6l0cmljb3MgcXVlIHBlcm1pdGFuIGFqdXN0YXIgbGFzIHNlcmllcyBkZSBsb3MgcHJpbmNpcGFsZXMgaW5kaWNhZG9yZXMgZGUgbGEgY295dW50dXJhIGRlIGxvcyBlZmVjdG9zIGRlIGNhbGVuZGFyaW8geSBkZSBsYSBlc3RhY2lvbmFsaWRhZC4gTG9zIHJlc3VsdGFkb3MgcHJlc2VudGFkb3MgZW4gZXN0ZSBpbmZvcm1lIHBlcm1pdGVuIGFkZWxhbnRhciBsb3MgdHJhYmFqb3MgcXVlIGVzdGFtb3MgZGVzYXJyb2xsYW5kbyB5IHF1ZSBzZXLDoW4gcHVibGljYWRvcyBhIGZpbmFsZXMgZGUgMjAyMC4gPC9wPgoKPGg1IHN0eWxlPSJtYXJnaW4tdG9wOiAzNXB4OyI+KipNw6FzIGluZm9ybWFjacOzbioqPC9oNT4KCklTVEFDIC0gQ29tdW5pY2FjacOzbiAKClt3d3cuZ29iaWVybm9kZWNhbmFyaWFzLm9yZy9pc3RhYy9ub3RpY2lhc10oaHR0cDovL3d3dy5nb2JpZXJub2RlY2FuYXJpYXMub3JnL2lzdGFjL25vdGljaWFzLykKCmlzdGFjQGdvYmllcm5vZGVjYW5hcmlhcyAKCjkyMiA5MiAyOCA0MSAtIDkyOCAyOSAzMiA3MSAKCkBpc3RhY19lcwoKPGltZyBzcmM9Imh0dHA6Ly93d3cuZ29iaWVybm9kZWNhbmFyaWFzLm9yZy9pc3RhYy9nYWxlcmlhcy9pbWFnZW5lcy9tYWMvbWFjLWludGVycmVnLnBuZyIgYWxpZ249InJpZ2h0IiBzdHlsZT0ibWFyZ2luOiAzNXB4IDA7IiBhbHQ9IkxvZ28gTUFDIC0gSU5URVJSRUciLz4K