diff --git a/l10n_mx_facturae/data/account_move.xml b/l10n_mx_facturae/data/account_move.xml
index 47fabd621762b77ced82d44b19745056dec81a05..4b2fd495bf7b1fb8392416cc66e77c84e4c80107 100644
--- a/l10n_mx_facturae/data/account_move.xml
+++ b/l10n_mx_facturae/data/account_move.xml
@@ -6,7 +6,7 @@
         <field name="name">Account Move CFDI XML</field>
         <field name="model">account.move</field>
         <field name="report_type">qweb-xml</field>
-        <field name="report_name">l10n_mx_facturae.account_move_template_cfdi_xml</field>
+        <field name="report_name">l10n_mx_facturae.account_move</field>
         <field name="xml_declaration">true</field>
         <field name="xsd_schema">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjx4czpzY2hlbWEgeG1sbnM6Y2ZkaT0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2NmZC80IiB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOmNhdENGREk9Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvY2F0YWxvZ29zIiB4bWxuczp0ZENGREk9Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvdGlwb0RhdG9zL3RkQ0ZESSIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vd3d3LnNhdC5nb2IubXgvY2ZkLzQiIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiPg0KCTx4czppbXBvcnQgbmFtZXNwYWNlPSJodHRwOi8vd3d3LnNhdC5nb2IubXgvc2l0aW9faW50ZXJuZXQvY2ZkL2NhdGFsb2dvcyIgc2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvY2F0YWxvZ29zL2NhdENGREkueHNkIi8+DQoJPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvdGlwb0RhdG9zL3RkQ0ZESSIgc2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvdGlwb0RhdG9zL3RkQ0ZESS90ZENGREkueHNkIi8+DQoJPHhzOmVsZW1lbnQgbmFtZT0iQ29tcHJvYmFudGUiPg0KCQk8eHM6YW5ub3RhdGlvbj4NCgkJCTx4czpkb2N1bWVudGF0aW9uPkVzdMOhbmRhciBkZSBDb21wcm9iYW50ZSBGaXNjYWwgRGlnaXRhbCBwb3IgSW50ZXJuZXQuPC94czpkb2N1bWVudGF0aW9uPg0KCQk8L3hzOmFubm90YXRpb24+DQoJCTx4czpjb21wbGV4VHlwZT4NCgkJCTx4czpzZXF1ZW5jZT4NCgkJCQk8eHM6ZWxlbWVudCBuYW1lPSJJbmZvcm1hY2lvbkdsb2JhbCIgbWluT2NjdXJzPSIwIj4NCgkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIGNvbmRpY2lvbmFsIHBhcmEgcHJlY2lzYXIgbGEgaW5mb3JtYWNpw7NuIHJlbGFjaW9uYWRhIGNvbiBlbCBjb21wcm9iYW50ZSBnbG9iYWwuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iUGVyaW9kaWNpZGFkIiB0eXBlPSJjYXRDRkRJOmNfUGVyaW9kaWNpZGFkIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgZXhwcmVzYXIgZWwgcGVyw61vZG8gYWwgcXVlIGNvcnJlc3BvbmRlIGxhIGluZm9ybWFjacOzbiBkZWwgY29tcHJvYmFudGUgZ2xvYmFsLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iTWVzZXMiIHR5cGU9ImNhdENGREk6Y19NZXNlcyIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGV4cHJlc2FyIGVsIG1lcyBvIGxvcyBtZXNlcyBhbCBxdWUgY29ycmVzcG9uZGUgbGEgaW5mb3JtYWNpw7NuIGRlbCBjb21wcm9iYW50ZSBnbG9iYWwuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJBw7FvIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgZXhwcmVzYXIgZWwgYcOxbyBhbCBxdWUgY29ycmVzcG9uZGUgbGEgaW5mb3JtYWNpw7NuIGRlbCBjb21wcm9iYW50ZSBnbG9iYWwuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnNob3J0Ij4NCgkJCQkJCQkJCTx4czptaW5JbmNsdXNpdmUgdmFsdWU9IjIwMjEiLz4NCgkJCQkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCTwveHM6ZWxlbWVudD4NCgkJCQk8eHM6ZWxlbWVudCBuYW1lPSJDZmRpUmVsYWNpb25hZG9zIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCgkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIG9wY2lvbmFsIHBhcmEgcHJlY2lzYXIgbGEgaW5mb3JtYWNpw7NuIGRlIGxvcyBjb21wcm9iYW50ZXMgcmVsYWNpb25hZG9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQk8eHM6Y29tcGxleFR5cGU+DQoJCQkJCQk8eHM6c2VxdWVuY2U+DQoJCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iQ2ZkaVJlbGFjaW9uYWRvIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQoJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+Tm9kbyByZXF1ZXJpZG8gcGFyYSBwcmVjaXNhciBsYSBpbmZvcm1hY2nDs24gZGUgbG9zIGNvbXByb2JhbnRlcyByZWxhY2lvbmFkb3MuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iVVVJRCIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHJlZ2lzdHJhciBlbCBmb2xpbyBmaXNjYWwgKFVVSUQpIGRlIHVuIENGREkgcmVsYWNpb25hZG8gY29uIGVsIHByZXNlbnRlIGNvbXByb2JhbnRlLCBwb3IgZWplbXBsbzogU2kgZWwgQ0ZESSByZWxhY2lvbmFkbyBlcyB1biBjb21wcm9iYW50ZSBkZSB0cmFzbGFkbyBxdWUgc2lydmUgcGFyYSByZWdpc3RyYXIgZWwgbW92aW1pZW50byBkZSBsYSBtZXJjYW5jw61hLiBTaSBlc3RlIGNvbXByb2JhbnRlIHNlIHVzYSBjb21vIG5vdGEgZGUgY3LDqWRpdG8gbyBub3RhIGRlIGTDqWJpdG8gZGVsIGNvbXByb2JhbnRlIHJlbGFjaW9uYWRvLiBTaSBlc3RlIGNvbXByb2JhbnRlIGVzIHVuYSBkZXZvbHVjacOzbiBzb2JyZSBlbCBjb21wcm9iYW50ZSByZWxhY2lvbmFkby4gU2kgw6lzdGUgc3VzdGl0dXllIGEgdW5hIGZhY3R1cmEgY2FuY2VsYWRhLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJCQkJCQkJPHhzOmxlbmd0aCB2YWx1ZT0iMzYiLz4NCgkJCQkJCQkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQkJCQkJCQkJPHhzOnBhdHRlcm4gdmFsdWU9IlthLWYwLTlBLUZdezh9LVthLWYwLTlBLUZdezR9LVthLWYwLTlBLUZdezR9LVthLWYwLTlBLUZdezR9LVthLWYwLTlBLUZdezEyfSIvPg0KCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCTwveHM6ZWxlbWVudD4NCgkJCQkJCTwveHM6c2VxdWVuY2U+DQoJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlRpcG9SZWxhY2lvbiIgdHlwZT0iY2F0Q0ZESTpjX1RpcG9SZWxhY2lvbiIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGluZGljYXIgbGEgY2xhdmUgZGUgbGEgcmVsYWNpw7NuIHF1ZSBleGlzdGUgZW50cmUgw6lzdGUgcXVlIHNlIGVzdMOhIGdlbmVyYW5kbyB5IGVsIG8gbG9zIENGREkgcHJldmlvcy48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCTwveHM6Y29tcGxleFR5cGU+DQoJCQkJPC94czplbGVtZW50Pg0KCQkJCTx4czplbGVtZW50IG5hbWU9IkVtaXNvciI+DQoJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+Tm9kbyByZXF1ZXJpZG8gcGFyYSBleHByZXNhciBsYSBpbmZvcm1hY2nDs24gZGVsIGNvbnRyaWJ1eWVudGUgZW1pc29yIGRlbCBjb21wcm9iYW50ZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJSZmMiIHR5cGU9InRkQ0ZESTp0X1JGQyIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHJlZ2lzdHJhciBsYSBDbGF2ZSBkZWwgUmVnaXN0cm8gRmVkZXJhbCBkZSBDb250cmlidXllbnRlcyBjb3JyZXNwb25kaWVudGUgYWwgY29udHJpYnV5ZW50ZSBlbWlzb3IgZGVsIGNvbXByb2JhbnRlLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iTm9tYnJlIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgcmVnaXN0cmFyIGVsIG5vbWJyZSwgZGVub21pbmFjacOzbiBvIHJhesOzbiBzb2NpYWwgZGVsIGNvbnRyaWJ1eWVudGUgaW5zY3JpdG8gZW4gZWwgUkZDLCBkZWwgZW1pc29yIGRlbCBjb21wcm9iYW50ZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjMwMCIvPg0KCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iW158XXsxLDMwMH0iLz4NCgkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iUmVnaW1lbkZpc2NhbCIgdHlwZT0iY2F0Q0ZESTpjX1JlZ2ltZW5GaXNjYWwiIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBpbmNvcnBvcmFyIGxhIGNsYXZlIGRlbCByw6lnaW1lbiBkZWwgY29udHJpYnV5ZW50ZSBlbWlzb3IgYWwgcXVlIGFwbGljYXLDoSBlbCBlZmVjdG8gZmlzY2FsIGRlIGVzdGUgY29tcHJvYmFudGUuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJGYWNBdHJBZHF1aXJlbnRlIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSBleHByZXNhciBlbCBuw7ptZXJvIGRlIG9wZXJhY2nDs24gcHJvcG9yY2lvbmFkbyBwb3IgZWwgU0FUIGN1YW5kbyBzZSB0cmF0ZSBkZSB1biBjb21wcm9iYW50ZSBhIHRyYXbDqXMgZGUgdW4gUENFQ0ZESSBvIHVuIFBDR0NGRElTUC48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQkJCQkJPHhzOmxlbmd0aCB2YWx1ZT0iMTAiLz4NCgkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbMC05XXsxMH0iLz4NCgkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJPHhzOmVsZW1lbnQgbmFtZT0iUmVjZXB0b3IiPg0KCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gcmVxdWVyaWRvIHBhcmEgcHJlY2lzYXIgbGEgaW5mb3JtYWNpw7NuIGRlbCBjb250cmlidXllbnRlIHJlY2VwdG9yIGRlbCBjb21wcm9iYW50ZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJSZmMiIHR5cGU9InRkQ0ZESTp0X1JGQyIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHJlZ2lzdHJhciBsYSBDbGF2ZSBkZWwgUmVnaXN0cm8gRmVkZXJhbCBkZSBDb250cmlidXllbnRlcyBjb3JyZXNwb25kaWVudGUgYWwgY29udHJpYnV5ZW50ZSByZWNlcHRvciBkZWwgY29tcHJvYmFudGUuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJOb21icmUiIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSByZWdpc3RyYXIgZWwgbm9tYnJlKHMpLCBwcmltZXIgYXBlbGxpZG8sIHNlZ3VuZG8gYXBlbGxpZG8sIHNlZ8O6biBjb3JyZXNwb25kYSwgZGVub21pbmFjacOzbiBvIHJhesOzbiBzb2NpYWwgZGVsIGNvbnRyaWJ1eWVudGUsIGluc2NyaXRvIGVuIGVsIFJGQywgZGVsIHJlY2VwdG9yIGRlbCBjb21wcm9iYW50ZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjMwMCIvPg0KCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iW158XXsxLDMwMH0iLz4NCgkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iRG9taWNpbGlvRmlzY2FsUmVjZXB0b3IiIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSByZWdpc3RyYXIgZWwgY8OzZGlnbyBwb3N0YWwgZGVsIGRvbWljaWxpbyBmaXNjYWwgZGVsIHJlY2VwdG9yIGRlbCBjb21wcm9iYW50ZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCTx4czpsZW5ndGggdmFsdWU9IjUiLz4NCgkJCQkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQkJCQkJPHhzOnBhdHRlcm4gdmFsdWU9IlswLTldezV9Ii8+DQoJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlJlc2lkZW5jaWFGaXNjYWwiIHR5cGU9ImNhdENGREk6Y19QYWlzIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSByZWdpc3RyYXIgbGEgY2xhdmUgZGVsIHBhw61zIGRlIHJlc2lkZW5jaWEgcGFyYSBlZmVjdG9zIGZpc2NhbGVzIGRlbCByZWNlcHRvciBkZWwgY29tcHJvYmFudGUsIGN1YW5kbyBzZSB0cmF0ZSBkZSB1biBleHRyYW5qZXJvLCB5IHF1ZSBlcyBjb25mb3JtZSBjb24gbGEgZXNwZWNpZmljYWNpw7NuIElTTyAzMTY2LTEgYWxwaGEtMy4gRXMgcmVxdWVyaWRvIGN1YW5kbyBzZSBpbmNsdXlhIGVsIGNvbXBsZW1lbnRvIGRlIGNvbWVyY2lvIGV4dGVyaW9yIG8gc2UgcmVnaXN0cmUgZWwgYXRyaWJ1dG8gTnVtUmVnSWRUcmliLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iTnVtUmVnSWRUcmliIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSBleHByZXNhciBlbCBuw7ptZXJvIGRlIHJlZ2lzdHJvIGRlIGlkZW50aWRhZCBmaXNjYWwgZGVsIHJlY2VwdG9yIGN1YW5kbyBzZWEgcmVzaWRlbnRlIGVuIGVsIGV4dHJhbmplcm8uIEVzIHJlcXVlcmlkbyBjdWFuZG8gc2UgaW5jbHV5YSBlbCBjb21wbGVtZW50byBkZSBjb21lcmNpbyBleHRlcmlvci48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjQwIi8+DQoJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iUmVnaW1lbkZpc2NhbFJlY2VwdG9yIiB0eXBlPSJjYXRDRkRJOmNfUmVnaW1lbkZpc2NhbCIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGluY29ycG9yYXIgbGEgY2xhdmUgZGVsIHLDqWdpbWVuIGZpc2NhbCBkZWwgY29udHJpYnV5ZW50ZSByZWNlcHRvciBhbCBxdWUgYXBsaWNhcsOhIGVsIGVmZWN0byBmaXNjYWwgZGUgZXN0ZSBjb21wcm9iYW50ZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlVzb0NGREkiIHR5cGU9ImNhdENGREk6Y19Vc29DRkRJIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgZXhwcmVzYXIgbGEgY2xhdmUgZGVsIHVzbyBxdWUgZGFyw6EgYSBlc3RhIGZhY3R1cmEgZWwgcmVjZXB0b3IgZGVsIENGREkuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCTwveHM6ZWxlbWVudD4NCgkJCQk8eHM6ZWxlbWVudCBuYW1lPSJDb25jZXB0b3MiPg0KCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gcmVxdWVyaWRvIHBhcmEgbGlzdGFyIGxvcyBjb25jZXB0b3MgY3ViaWVydG9zIHBvciBlbCBjb21wcm9iYW50ZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJPHhzOnNlcXVlbmNlPg0KCQkJCQkJCTx4czplbGVtZW50IG5hbWU9IkNvbmNlcHRvIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQoJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+Tm9kbyByZXF1ZXJpZG8gcGFyYSByZWdpc3RyYXIgbGEgaW5mb3JtYWNpw7NuIGRldGFsbGFkYSBkZSB1biBiaWVuIG8gc2VydmljaW8gYW1wYXJhZG8gZW4gZWwgY29tcHJvYmFudGUuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCTx4czpzZXF1ZW5jZT4NCgkJCQkJCQkJCQk8eHM6ZWxlbWVudCBuYW1lPSJJbXB1ZXN0b3MiIG1pbk9jY3Vycz0iMCI+DQoJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+Tm9kbyBjb25kaWNpb25hbCBwYXJhIGNhcHR1cmFyIGxvcyBpbXB1ZXN0b3MgYXBsaWNhYmxlcyBhbCBwcmVzZW50ZSBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJPHhzOnNlcXVlbmNlPg0KCQkJCQkJCQkJCQkJCTx4czplbGVtZW50IG5hbWU9IlRyYXNsYWRvcyIgbWluT2NjdXJzPSIwIj4NCgkJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIG9wY2lvbmFsIHBhcmEgYXNlbnRhciBsb3MgaW1wdWVzdG9zIHRyYXNsYWRhZG9zIGFwbGljYWJsZXMgYWwgcHJlc2VudGUgY29uY2VwdG8uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQkJCQkJCTx4czpzZXF1ZW5jZT4NCgkJCQkJCQkJCQkJCQkJCQk8eHM6ZWxlbWVudCBuYW1lPSJUcmFzbGFkbyIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KCQkJCQkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gcmVxdWVyaWRvIHBhcmEgYXNlbnRhciBsYSBpbmZvcm1hY2nDs24gZGV0YWxsYWRhIGRlIHVuIHRyYXNsYWRvIGRlIGltcHVlc3RvcyBhcGxpY2FibGUgYWwgcHJlc2VudGUgY29uY2VwdG8uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iQmFzZSIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHNlw7FhbGFyIGxhIGJhc2UgcGFyYSBlbCBjw6FsY3VsbyBkZWwgaW1wdWVzdG8sIGxhIGRldGVybWluYWNpw7NuIGRlIGxhIGJhc2Ugc2UgcmVhbGl6YSBkZSBhY3VlcmRvIGNvbiBsYXMgZGlzcG9zaWNpb25lcyBmaXNjYWxlcyB2aWdlbnRlcy4gTm8gc2UgcGVybWl0ZW4gdmFsb3JlcyBuZWdhdGl2b3MuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmRlY2ltYWwiPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmZyYWN0aW9uRGlnaXRzIHZhbHVlPSI2Ii8+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6bWluSW5jbHVzaXZlIHZhbHVlPSIwLjAwMDAwMSIvPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkltcHVlc3RvIiB0eXBlPSJjYXRDRkRJOmNfSW1wdWVzdG8iIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBzZcOxYWxhciBsYSBjbGF2ZSBkZWwgdGlwbyBkZSBpbXB1ZXN0byB0cmFzbGFkYWRvIGFwbGljYWJsZSBhbCBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlRpcG9GYWN0b3IiIHR5cGU9ImNhdENGREk6Y19UaXBvRmFjdG9yIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgc2XDsWFsYXIgbGEgY2xhdmUgZGVsIHRpcG8gZGUgZmFjdG9yIHF1ZSBzZSBhcGxpY2EgYSBsYSBiYXNlIGRlbCBpbXB1ZXN0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlRhc2FPQ3VvdGEiIHVzZT0ib3B0aW9uYWwiPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBjb25kaWNpb25hbCBwYXJhIHNlw7FhbGFyIGVsIHZhbG9yIGRlIGxhIHRhc2EgbyBjdW90YSBkZWwgaW1wdWVzdG8gcXVlIHNlIHRyYXNsYWRhIHBhcmEgZWwgcHJlc2VudGUgY29uY2VwdG8uIEVzIHJlcXVlcmlkbyBjdWFuZG8gZWwgYXRyaWJ1dG8gVGlwb0ZhY3RvciB0ZW5nYSB1bmEgY2xhdmUgcXVlIGNvcnJlc3BvbmRhIGEgVGFzYSBvIEN1b3RhLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpkZWNpbWFsIj4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpmcmFjdGlvbkRpZ2l0cyB2YWx1ZT0iNiIvPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOm1pbkluY2x1c2l2ZSB2YWx1ZT0iMC4wMDAwMDAiLz4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJJbXBvcnRlIiB0eXBlPSJ0ZENGREk6dF9JbXBvcnRlIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSBzZcOxYWxhciBlbCBpbXBvcnRlIGRlbCBpbXB1ZXN0byB0cmFzbGFkYWRvIHF1ZSBhcGxpY2EgYWwgY29uY2VwdG8uIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLiBFcyByZXF1ZXJpZG8gY3VhbmRvIFRpcG9GYWN0b3Igc2VhIFRhc2EgbyBDdW90YS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQkJCQkJCTwveHM6Y29tcGxleFR5cGU+DQoJCQkJCQkJCQkJCQkJCQkJPC94czplbGVtZW50Pg0KCQkJCQkJCQkJCQkJCQkJPC94czpzZXF1ZW5jZT4NCgkJCQkJCQkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iUmV0ZW5jaW9uZXMiIG1pbk9jY3Vycz0iMCI+DQoJCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+Tm9kbyBvcGNpb25hbCBwYXJhIGFzZW50YXIgbG9zIGltcHVlc3RvcyByZXRlbmlkb3MgYXBsaWNhYmxlcyBhbCBwcmVzZW50ZSBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJCQkJPHhzOnNlcXVlbmNlPg0KCQkJCQkJCQkJCQkJCQkJCTx4czplbGVtZW50IG5hbWU9IlJldGVuY2lvbiIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KCQkJCQkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gcmVxdWVyaWRvIHBhcmEgYXNlbnRhciBsYSBpbmZvcm1hY2nDs24gZGV0YWxsYWRhIGRlIHVuYSByZXRlbmNpw7NuIGRlIGltcHVlc3RvcyBhcGxpY2FibGUgYWwgcHJlc2VudGUgY29uY2VwdG8uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iQmFzZSIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHNlw7FhbGFyIGxhIGJhc2UgcGFyYSBlbCBjw6FsY3VsbyBkZSBsYSByZXRlbmNpw7NuLCBsYSBkZXRlcm1pbmFjacOzbiBkZSBsYSBiYXNlIHNlIHJlYWxpemEgZGUgYWN1ZXJkbyBjb24gbGFzIGRpc3Bvc2ljaW9uZXMgZmlzY2FsZXMgdmlnZW50ZXMuIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpkZWNpbWFsIj4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpmcmFjdGlvbkRpZ2l0cyB2YWx1ZT0iNiIvPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOm1pbkluY2x1c2l2ZSB2YWx1ZT0iMC4wMDAwMDEiLz4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJJbXB1ZXN0byIgdHlwZT0iY2F0Q0ZESTpjX0ltcHVlc3RvIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgc2XDsWFsYXIgbGEgY2xhdmUgZGVsIHRpcG8gZGUgaW1wdWVzdG8gcmV0ZW5pZG8gYXBsaWNhYmxlIGFsIGNvbmNlcHRvLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iVGlwb0ZhY3RvciIgdHlwZT0iY2F0Q0ZESTpjX1RpcG9GYWN0b3IiIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBzZcOxYWxhciBsYSBjbGF2ZSBkZWwgdGlwbyBkZSBmYWN0b3IgcXVlIHNlIGFwbGljYSBhIGxhIGJhc2UgZGVsIGltcHVlc3RvLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iVGFzYU9DdW90YSIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHNlw7FhbGFyIGxhIHRhc2EgbyBjdW90YSBkZWwgaW1wdWVzdG8gcXVlIHNlIHJldGllbmUgcGFyYSBlbCBwcmVzZW50ZSBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6ZGVjaW1hbCI+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czptaW5JbmNsdXNpdmUgdmFsdWU9IjAuMDAwMDAwIi8+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQk8eHM6ZnJhY3Rpb25EaWdpdHMgdmFsdWU9IjYiLz4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iSW1wb3J0ZSIgdHlwZT0idGRDRkRJOnRfSW1wb3J0ZSIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHNlw7FhbGFyIGVsIGltcG9ydGUgZGVsIGltcHVlc3RvIHJldGVuaWRvIHF1ZSBhcGxpY2EgYWwgY29uY2VwdG8uIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJCQkJCQkJCQk8L3hzOnNlcXVlbmNlPg0KCQkJCQkJCQkJCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJCTwveHM6ZWxlbWVudD4NCgkJCQkJCQkJCQkJCTwveHM6c2VxdWVuY2U+DQoJCQkJCQkJCQkJCTwveHM6Y29tcGxleFR5cGU+DQoJCQkJCQkJCQkJPC94czplbGVtZW50Pg0KCQkJCQkJCQkJCTx4czplbGVtZW50IG5hbWU9IkFDdWVudGFUZXJjZXJvcyIgbWluT2NjdXJzPSIwIj4NCgkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIG9wY2lvbmFsIHBhcmEgcmVnaXN0cmFyIGluZm9ybWFjacOzbiBkZWwgY29udHJpYnV5ZW50ZSBUZXJjZXJvLCBhIGN1ZW50YSBkZWwgcXVlIHNlIHJlYWxpemEgbGEgb3BlcmFjacOzbi48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJSZmNBQ3VlbnRhVGVyY2Vyb3MiIHR5cGU9InRkQ0ZESTp0X1JGQyIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHJlZ2lzdHJhciBsYSBDbGF2ZSBkZWwgUmVnaXN0cm8gRmVkZXJhbCBkZSBDb250cmlidXllbnRlcyBkZWwgY29udHJpYnV5ZW50ZSBUZXJjZXJvLCBhIGN1ZW50YSBkZWwgcXVlIHNlIHJlYWxpemEgbGEgb3BlcmFjacOzbi48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9Ik5vbWJyZUFDdWVudGFUZXJjZXJvcyIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHJlZ2lzdHJhciBlbCBub21icmUsIGRlbm9taW5hY2nDs24gbyByYXrDs24gc29jaWFsIGRlbCBjb250cmlidXllbnRlIFRlcmNlcm8gY29ycmVzcG9uZGllbnRlIGNvbiBlbCBSZmMsIGEgY3VlbnRhIGRlbCBxdWUgc2UgcmVhbGl6YSBsYSBvcGVyYWNpw7NuLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJCQkJCQkJCQkJPHhzOm1pbkxlbmd0aCB2YWx1ZT0iMSIvPg0KCQkJCQkJCQkJCQkJCQkJPHhzOm1heExlbmd0aCB2YWx1ZT0iMzAwIi8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbXnxdezEsMzAwfSIvPg0KCQkJCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJSZWdpbWVuRmlzY2FsQUN1ZW50YVRlcmNlcm9zIiB0eXBlPSJjYXRDRkRJOmNfUmVnaW1lbkZpc2NhbCIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGluY29ycG9yYXIgbGEgY2xhdmUgZGVsIHLDqWdpbWVuIGRlbCBjb250cmlidXllbnRlIFRlcmNlcm8sIGEgY3VlbnRhIGRlbCBxdWUgc2UgcmVhbGl6YSBsYSBvcGVyYWNpw7NuLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iRG9taWNpbGlvRmlzY2FsQUN1ZW50YVRlcmNlcm9zIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgaW5jb3Jwb3JhciBlbCBjw7NkaWdvIHBvc3RhbCBkZWwgZG9taWNpbGlvIGZpc2NhbCBkZWwgVGVyY2VybywgYSBjdWVudGEgZGVsIHF1ZSBzZSByZWFsaXphIGxhIG9wZXJhY2nDs24uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQoJCQkJCQkJCQkJCQkJCQk8eHM6bGVuZ3RoIHZhbHVlPSI1Ii8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbMC05XXs1fSIvPg0KCQkJCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCTwveHM6ZWxlbWVudD4NCgkJCQkJCQkJCQk8eHM6ZWxlbWVudCBuYW1lPSJJbmZvcm1hY2lvbkFkdWFuZXJhIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCgkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIG9wY2lvbmFsIHBhcmEgaW50cm9kdWNpciBsYSBpbmZvcm1hY2nDs24gYWR1YW5lcmEgYXBsaWNhYmxlIGN1YW5kbyBzZSB0cmF0ZSBkZSB2ZW50YXMgZGUgcHJpbWVyYSBtYW5vIGRlIG1lcmNhbmPDrWFzIGltcG9ydGFkYXMgbyBzZSB0cmF0ZSBkZSBvcGVyYWNpb25lcyBkZSBjb21lcmNpbyBleHRlcmlvciBjb24gYmllbmVzIG8gc2VydmljaW9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQk8eHM6Y29tcGxleFR5cGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9Ik51bWVyb1BlZGltZW50byIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGV4cHJlc2FyIGVsIG7Dum1lcm8gZGVsIHBlZGltZW50byBxdWUgYW1wYXJhIGxhIGltcG9ydGFjacOzbiBkZWwgYmllbiBxdWUgc2UgZXhwcmVzYSBlbiBlbCBzaWd1aWVudGUgZm9ybWF0bzogw7psdGltb3MgMiBkw61naXRvcyBkZWwgYcOxbyBkZSB2YWxpZGFjacOzbiBzZWd1aWRvcyBwb3IgZG9zIGVzcGFjaW9zLCAyIGTDrWdpdG9zIGRlIGxhIGFkdWFuYSBkZSBkZXNwYWNobyBzZWd1aWRvcyBwb3IgZG9zIGVzcGFjaW9zLCA0IGTDrWdpdG9zIGRlbCBuw7ptZXJvIGRlIGxhIHBhdGVudGUgc2VndWlkb3MgcG9yIGRvcyBlc3BhY2lvcywgMSBkw61naXRvIHF1ZSBjb3JyZXNwb25kZSBhbCDDumx0aW1vIGTDrWdpdG8gZGVsIGHDsW8gZW4gY3Vyc28sIHNhbHZvIHF1ZSBzZSB0cmF0ZSBkZSB1biBwZWRpbWVudG8gY29uc29saWRhZG8gaW5pY2lhZG8gZW4gZWwgYcOxbyBpbm1lZGlhdG8gYW50ZXJpb3IgbyBkZWwgcGVkaW1lbnRvIG9yaWdpbmFsIGRlIHVuYSByZWN0aWZpY2FjacOzbiwgc2VndWlkbyBkZSA2IGTDrWdpdG9zIGRlIGxhIG51bWVyYWNpw7NuIHByb2dyZXNpdmEgcG9yIGFkdWFuYS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCQkJCQkJCTx4czpsZW5ndGggdmFsdWU9IjIxIi8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iWzAtOV17Mn0gIFswLTldezJ9ICBbMC05XXs0fSAgWzAtOV17N30iLz4NCgkJCQkJCQkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iQ3VlbnRhUHJlZGlhbCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQoJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+Tm9kbyBvcGNpb25hbCBwYXJhIGFzZW50YXIgZWwgbsO6bWVybyBkZSBjdWVudGEgcHJlZGlhbCBjb24gZWwgcXVlIGZ1ZSByZWdpc3RyYWRvIGVsIGlubXVlYmxlLCBlbiBlbCBzaXN0ZW1hIGNhdGFzdHJhbCBkZSBsYSBlbnRpZGFkIGZlZGVyYXRpdmEgZGUgcXVlIHRyYXRlLCBvIGJpZW4gcGFyYSBpbmNvcnBvcmFyIGxvcyBkYXRvcyBkZSBpZGVudGlmaWNhY2nDs24gZGVsIGNlcnRpZmljYWRvIGRlIHBhcnRpY2lwYWNpw7NuIGlubW9iaWxpYXJpYSBubyBhbW9ydGl6YWJsZS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJOdW1lcm8iIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBwcmVjaXNhciBlbCBuw7ptZXJvIGRlIGxhIGN1ZW50YSBwcmVkaWFsIGRlbCBpbm11ZWJsZSBjdWJpZXJ0byBwb3IgZWwgcHJlc2VudGUgY29uY2VwdG8sIG8gYmllbiBwYXJhIGluY29ycG9yYXIgbG9zIGRhdG9zIGRlIGlkZW50aWZpY2FjacOzbiBkZWwgY2VydGlmaWNhZG8gZGUgcGFydGljaXBhY2nDs24gaW5tb2JpbGlhcmlhIG5vIGFtb3J0aXphYmxlLCB0cmF0w6FuZG9zZSBkZSBhcnJlbmRhbWllbnRvLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJCQkJCQkJCQkJPHhzOm1pbkxlbmd0aCB2YWx1ZT0iMSIvPg0KCQkJCQkJCQkJCQkJCQkJPHhzOm1heExlbmd0aCB2YWx1ZT0iMTUwIi8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbMC05YS16QS1aXXsxLDE1MH0iLz4NCgkJCQkJCQkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iQ29tcGxlbWVudG9Db25jZXB0byIgbWluT2NjdXJzPSIwIj4NCgkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIG9wY2lvbmFsIGRvbmRlIHNlIGluY2x1eWVuIGxvcyBub2RvcyBjb21wbGVtZW50YXJpb3MgZGUgZXh0ZW5zacOzbiBhbCBjb25jZXB0byBkZWZpbmlkb3MgcG9yIGVsIFNBVCwgZGUgYWN1ZXJkbyBjb24gbGFzIGRpc3Bvc2ljaW9uZXMgcGFydGljdWxhcmVzIHBhcmEgdW4gc2VjdG9yIG8gYWN0aXZpZGFkIGVzcGVjw61maWNhLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQk8eHM6Y29tcGxleFR5cGU+DQoJCQkJCQkJCQkJCQk8eHM6c2VxdWVuY2U+DQoJCQkJCQkJCQkJCQkJPHhzOmFueSBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQkJCQkJCQkJCQkJPC94czpzZXF1ZW5jZT4NCgkJCQkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iUGFydGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gb3BjaW9uYWwgcGFyYSBleHByZXNhciBsYXMgcGFydGVzIG8gY29tcG9uZW50ZXMgcXVlIGludGVncmFuIGxhIHRvdGFsaWRhZCBkZWwgY29uY2VwdG8gZXhwcmVzYWRvIGVuIGVsIGNvbXByb2JhbnRlIGZpc2NhbCBkaWdpdGFsIHBvciBJbnRlcm5ldC48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJPHhzOnNlcXVlbmNlPg0KCQkJCQkJCQkJCQkJCTx4czplbGVtZW50IG5hbWU9IkluZm9ybWFjaW9uQWR1YW5lcmEiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KCQkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gb3BjaW9uYWwgcGFyYSBpbnRyb2R1Y2lyIGxhIGluZm9ybWFjacOzbiBhZHVhbmVyYSBhcGxpY2FibGUgY3VhbmRvIHNlIHRyYXRlIGRlIHZlbnRhcyBkZSBwcmltZXJhIG1hbm8gZGUgbWVyY2FuY8OtYXMgaW1wb3J0YWRhcyBvIHNlIHRyYXRlIGRlIG9wZXJhY2lvbmVzIGRlIGNvbWVyY2lvIGV4dGVyaW9yIGNvbiBiaWVuZXMgbyBzZXJ2aWNpb3MuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iTnVtZXJvUGVkaW1lbnRvIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgZXhwcmVzYXIgZWwgbsO6bWVybyBkZWwgcGVkaW1lbnRvIHF1ZSBhbXBhcmEgbGEgaW1wb3J0YWNpw7NuIGRlbCBiaWVuIHF1ZSBzZSBleHByZXNhIGVuIGVsIHNpZ3VpZW50ZSBmb3JtYXRvOiDDumx0aW1vcyAyIGTDrWdpdG9zIGRlbCBhw7FvIGRlIHZhbGlkYWNpw7NuIHNlZ3VpZG9zIHBvciBkb3MgZXNwYWNpb3MsIDIgZMOtZ2l0b3MgZGUgbGEgYWR1YW5hIGRlIGRlc3BhY2hvIHNlZ3VpZG9zIHBvciBkb3MgZXNwYWNpb3MsIDQgZMOtZ2l0b3MgZGVsIG7Dum1lcm8gZGUgbGEgcGF0ZW50ZSBzZWd1aWRvcyBwb3IgZG9zIGVzcGFjaW9zLCAxIGTDrWdpdG8gcXVlIGNvcnJlc3BvbmRlIGFsIMO6bHRpbW8gZMOtZ2l0byBkZWwgYcOxbyBlbiBjdXJzbywgc2Fsdm8gcXVlIHNlIHRyYXRlIGRlIHVuIHBlZGltZW50byBjb25zb2xpZGFkbyBpbmljaWFkbyBlbiBlbCBhw7FvIGlubWVkaWF0byBhbnRlcmlvciBvIGRlbCBwZWRpbWVudG8gb3JpZ2luYWwgZGUgdW5hIHJlY3RpZmljYWNpw7NuLCBzZWd1aWRvIGRlIDYgZMOtZ2l0b3MgZGUgbGEgbnVtZXJhY2nDs24gcHJvZ3Jlc2l2YSBwb3IgYWR1YW5hLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJCQkJCQkJCQkJCQkJPHhzOmxlbmd0aCB2YWx1ZT0iMjEiLz4NCgkJCQkJCQkJCQkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbMC05XXsyfSAgWzAtOV17Mn0gIFswLTldezR9ICBbMC05XXs3fSIvPg0KCQkJCQkJCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCQkJCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJCTwveHM6ZWxlbWVudD4NCgkJCQkJCQkJCQkJCTwveHM6c2VxdWVuY2U+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkNsYXZlUHJvZFNlcnYiIHR5cGU9ImNhdENGREk6Y19DbGF2ZVByb2RTZXJ2IiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgZXhwcmVzYXIgbGEgY2xhdmUgZGVsIHByb2R1Y3RvIG8gZGVsIHNlcnZpY2lvIGFtcGFyYWRvIHBvciBsYSBwcmVzZW50ZSBwYXJ0ZS4gRXMgcmVxdWVyaWRvIHkgZGViZW4gdXRpbGl6YXIgbGFzIGNsYXZlcyBkZWwgY2F0w6Fsb2dvIGRlIHByb2R1Y3RvcyB5IHNlcnZpY2lvcywgY3VhbmRvIGxvcyBjb25jZXB0b3MgcXVlIHJlZ2lzdHJlbiBwb3Igc3VzIGFjdGl2aWRhZGVzIGNvcnJlc3BvbmRhbiBjb24gZGljaG9zIGNvbmNlcHRvcy48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9Ik5vSWRlbnRpZmljYWNpb24iIHVzZT0ib3B0aW9uYWwiPg0KCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBvcGNpb25hbCBwYXJhIGV4cHJlc2FyIGVsIG7Dum1lcm8gZGUgc2VyaWUsIG7Dum1lcm8gZGUgcGFydGUgZGVsIGJpZW4gbyBpZGVudGlmaWNhZG9yIGRlbCBwcm9kdWN0byBvIGRlbCBzZXJ2aWNpbyBhbXBhcmFkbyBwb3IgbGEgcHJlc2VudGUgcGFydGUuIE9wY2lvbmFsbWVudGUgc2UgcHVlZGUgdXRpbGl6YXIgY2xhdmVzIGRlbCBlc3TDoW5kYXIgR1RJTi48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCQkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCQkJCQkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjEwMCIvPg0KCQkJCQkJCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iW158XXsxLDEwMH0iLz4NCgkJCQkJCQkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iQ2FudGlkYWQiIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBwcmVjaXNhciBsYSBjYW50aWRhZCBkZSBiaWVuZXMgbyBzZXJ2aWNpb3MgZGVsIHRpcG8gcGFydGljdWxhciBkZWZpbmlkbyBwb3IgbGEgcHJlc2VudGUgcGFydGUuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmRlY2ltYWwiPg0KCQkJCQkJCQkJCQkJCQkJPHhzOmZyYWN0aW9uRGlnaXRzIHZhbHVlPSI2Ii8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6bWluSW5jbHVzaXZlIHZhbHVlPSIwLjAwMDAwMSIvPg0KCQkJCQkJCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlVuaWRhZCIgdXNlPSJvcHRpb25hbCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIG9wY2lvbmFsIHBhcmEgcHJlY2lzYXIgbGEgdW5pZGFkIGRlIG1lZGlkYSBwcm9waWEgZGUgbGEgb3BlcmFjacOzbiBkZWwgZW1pc29yLCBhcGxpY2FibGUgcGFyYSBsYSBjYW50aWRhZCBleHByZXNhZGEgZW4gbGEgcGFydGUuIExhIHVuaWRhZCBkZWJlIGNvcnJlc3BvbmRlciBjb24gbGEgZGVzY3JpcGNpw7NuIGRlIGxhIHBhcnRlLiA8L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCQkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCQkJCQkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjIwIi8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbXnxdezEsMjB9Ii8+DQoJCQkJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkRlc2NyaXBjaW9uIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgcHJlY2lzYXIgbGEgZGVzY3JpcGNpw7NuIGRlbCBiaWVuIG8gc2VydmljaW8gY3ViaWVydG8gcG9yIGxhIHByZXNlbnRlIHBhcnRlLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJCQkJCQkJCQkJPHhzOm1pbkxlbmd0aCB2YWx1ZT0iMSIvPg0KCQkJCQkJCQkJCQkJCQkJPHhzOm1heExlbmd0aCB2YWx1ZT0iMTAwMCIvPg0KCQkJCQkJCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iW158XXsxLDEwMDB9Ii8+DQoJCQkJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlZhbG9yVW5pdGFyaW8iIHR5cGU9InRkQ0ZESTp0X0ltcG9ydGUiIHVzZT0ib3B0aW9uYWwiPg0KCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBvcGNpb25hbCBwYXJhIHByZWNpc2FyIGVsIHZhbG9yIG8gcHJlY2lvIHVuaXRhcmlvIGRlbCBiaWVuIG8gc2VydmljaW8gY3ViaWVydG8gcG9yIGxhIHByZXNlbnRlIHBhcnRlLiBObyBzZSBwZXJtaXRlbiB2YWxvcmVzIG5lZ2F0aXZvcy48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkltcG9ydGUiIHR5cGU9InRkQ0ZESTp0X0ltcG9ydGUiIHVzZT0ib3B0aW9uYWwiPg0KCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBvcGNpb25hbCBwYXJhIHByZWNpc2FyIGVsIGltcG9ydGUgdG90YWwgZGUgbG9zIGJpZW5lcyBvIHNlcnZpY2lvcyBkZSBsYSBwcmVzZW50ZSBwYXJ0ZS4gRGViZSBzZXIgZXF1aXZhbGVudGUgYWwgcmVzdWx0YWRvIGRlIG11bHRpcGxpY2FyIGxhIGNhbnRpZGFkIHBvciBlbCB2YWxvciB1bml0YXJpbyBleHByZXNhZG8gZW4gbGEgcGFydGUuIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJCQk8L3hzOnNlcXVlbmNlPg0KCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDbGF2ZVByb2RTZXJ2IiB0eXBlPSJjYXRDRkRJOmNfQ2xhdmVQcm9kU2VydiIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGV4cHJlc2FyIGxhIGNsYXZlIGRlbCBwcm9kdWN0byBvIGRlbCBzZXJ2aWNpbyBhbXBhcmFkbyBwb3IgZWwgcHJlc2VudGUgY29uY2VwdG8uIEVzIHJlcXVlcmlkbyB5IGRlYmVuIHV0aWxpemFyIGxhcyBjbGF2ZXMgZGVsIGNhdMOhbG9nbyBkZSBwcm9kdWN0b3MgeSBzZXJ2aWNpb3MsIGN1YW5kbyBsb3MgY29uY2VwdG9zIHF1ZSByZWdpc3RyZW4gcG9yIHN1cyBhY3RpdmlkYWRlcyBjb3JyZXNwb25kYW4gY29uIGRpY2hvcyBjb25jZXB0b3MuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJOb0lkZW50aWZpY2FjaW9uIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gb3BjaW9uYWwgcGFyYSBleHByZXNhciBlbCBuw7ptZXJvIGRlIHBhcnRlLCBpZGVudGlmaWNhZG9yIGRlbCBwcm9kdWN0byBvIGRlbCBzZXJ2aWNpbywgbGEgY2xhdmUgZGUgcHJvZHVjdG8gbyBzZXJ2aWNpbywgU0tVIG8gZXF1aXZhbGVudGUsIHByb3BpYSBkZSBsYSBvcGVyYWNpw7NuIGRlbCBlbWlzb3IsIGFtcGFyYWRvIHBvciBlbCBwcmVzZW50ZSBjb25jZXB0by4gT3BjaW9uYWxtZW50ZSBzZSBwdWVkZSB1dGlsaXphciBjbGF2ZXMgZGVsIGVzdMOhbmRhciBHVElOLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQkJCQk8eHM6bWluTGVuZ3RoIHZhbHVlPSIxIi8+DQoJCQkJCQkJCQkJCQk8eHM6bWF4TGVuZ3RoIHZhbHVlPSIxMDAiLz4NCgkJCQkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbXnxdezEsMTAwfSIvPg0KCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCQkJCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDYW50aWRhZCIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHByZWNpc2FyIGxhIGNhbnRpZGFkIGRlIGJpZW5lcyBvIHNlcnZpY2lvcyBkZWwgdGlwbyBwYXJ0aWN1bGFyIGRlZmluaWRvIHBvciBlbCBwcmVzZW50ZSBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6ZGVjaW1hbCI+DQoJCQkJCQkJCQkJCQk8eHM6ZnJhY3Rpb25EaWdpdHMgdmFsdWU9IjYiLz4NCgkJCQkJCQkJCQkJCTx4czptaW5JbmNsdXNpdmUgdmFsdWU9IjAuMDAwMDAxIi8+DQoJCQkJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQkJCQkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iQ2xhdmVVbmlkYWQiIHR5cGU9ImNhdENGREk6Y19DbGF2ZVVuaWRhZCIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHByZWNpc2FyIGxhIGNsYXZlIGRlIHVuaWRhZCBkZSBtZWRpZGEgZXN0YW5kYXJpemFkYSBhcGxpY2FibGUgcGFyYSBsYSBjYW50aWRhZCBleHByZXNhZGEgZW4gZWwgY29uY2VwdG8uIExhIHVuaWRhZCBkZWJlIGNvcnJlc3BvbmRlciBjb24gbGEgZGVzY3JpcGNpw7NuIGRlbCBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlVuaWRhZCIgdXNlPSJvcHRpb25hbCI+DQoJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIG9wY2lvbmFsIHBhcmEgcHJlY2lzYXIgbGEgdW5pZGFkIGRlIG1lZGlkYSBwcm9waWEgZGUgbGEgb3BlcmFjacOzbiBkZWwgZW1pc29yLCBhcGxpY2FibGUgcGFyYSBsYSBjYW50aWRhZCBleHByZXNhZGEgZW4gZWwgY29uY2VwdG8uIExhIHVuaWRhZCBkZWJlIGNvcnJlc3BvbmRlciBjb24gbGEgZGVzY3JpcGNpw7NuIGRlbCBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCQkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCQkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjIwIi8+DQoJCQkJCQkJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCQkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbXnxdezEsMjB9Ii8+DQoJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkRlc2NyaXBjaW9uIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgcHJlY2lzYXIgbGEgZGVzY3JpcGNpw7NuIGRlbCBiaWVuIG8gc2VydmljaW8gY3ViaWVydG8gcG9yIGVsIHByZXNlbnRlIGNvbmNlcHRvLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCQkJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJCQkJCQkJPHhzOm1pbkxlbmd0aCB2YWx1ZT0iMSIvPg0KCQkJCQkJCQkJCQkJPHhzOm1heExlbmd0aCB2YWx1ZT0iMTAwMCIvPg0KCQkJCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iW158XXsxLDEwMDB9Ii8+DQoJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlZhbG9yVW5pdGFyaW8iIHR5cGU9InRkQ0ZESTp0X0ltcG9ydGUiIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBwcmVjaXNhciBlbCB2YWxvciBvIHByZWNpbyB1bml0YXJpbyBkZWwgYmllbiBvIHNlcnZpY2lvIGN1YmllcnRvIHBvciBlbCBwcmVzZW50ZSBjb25jZXB0by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkltcG9ydGUiIHR5cGU9InRkQ0ZESTp0X0ltcG9ydGUiIHVzZT0icmVxdWlyZWQiPg0KCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBwcmVjaXNhciBlbCBpbXBvcnRlIHRvdGFsIGRlIGxvcyBiaWVuZXMgbyBzZXJ2aWNpb3MgZGVsIHByZXNlbnRlIGNvbmNlcHRvLiBEZWJlIHNlciBlcXVpdmFsZW50ZSBhbCByZXN1bHRhZG8gZGUgbXVsdGlwbGljYXIgbGEgY2FudGlkYWQgcG9yIGVsIHZhbG9yIHVuaXRhcmlvIGV4cHJlc2FkbyBlbiBlbCBjb25jZXB0by4gTm8gc2UgcGVybWl0ZW4gdmFsb3JlcyBuZWdhdGl2b3MuIDwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iRGVzY3VlbnRvIiB0eXBlPSJ0ZENGREk6dF9JbXBvcnRlIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gb3BjaW9uYWwgcGFyYSByZXByZXNlbnRhciBlbCBpbXBvcnRlIGRlIGxvcyBkZXNjdWVudG9zIGFwbGljYWJsZXMgYWwgY29uY2VwdG8uIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iT2JqZXRvSW1wIiB0eXBlPSJjYXRDRkRJOmNfT2JqZXRvSW1wIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgZXhwcmVzYXIgc2kgbGEgb3BlcmFjacOzbiBjb21lcmNpYWwgZXMgb2JqZXRvIG8gbm8gZGUgaW1wdWVzdG8uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCTwveHM6ZWxlbWVudD4NCgkJCQkJCTwveHM6c2VxdWVuY2U+DQoJCQkJCTwveHM6Y29tcGxleFR5cGU+DQoJCQkJPC94czplbGVtZW50Pg0KCQkJCTx4czplbGVtZW50IG5hbWU9IkltcHVlc3RvcyIgbWluT2NjdXJzPSIwIj4NCgkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIGNvbmRpY2lvbmFsIHBhcmEgZXhwcmVzYXIgZWwgcmVzdW1lbiBkZSBsb3MgaW1wdWVzdG9zIGFwbGljYWJsZXMuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCTx4czpzZXF1ZW5jZT4NCgkJCQkJCQk8eHM6ZWxlbWVudCBuYW1lPSJSZXRlbmNpb25lcyIgbWluT2NjdXJzPSIwIj4NCgkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIGNvbmRpY2lvbmFsIHBhcmEgY2FwdHVyYXIgbG9zIGltcHVlc3RvcyByZXRlbmlkb3MgYXBsaWNhYmxlcy4gRXMgcmVxdWVyaWRvIGN1YW5kbyBlbiBsb3MgY29uY2VwdG9zIHNlIHJlZ2lzdHJlIGFsZ8O6biBpbXB1ZXN0byByZXRlbmlkby48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJPHhzOnNlcXVlbmNlPg0KCQkJCQkJCQkJCTx4czplbGVtZW50IG5hbWU9IlJldGVuY2lvbiIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gcmVxdWVyaWRvIHBhcmEgbGEgaW5mb3JtYWNpw7NuIGRldGFsbGFkYSBkZSB1bmEgcmV0ZW5jacOzbiBkZSBpbXB1ZXN0byBlc3BlY8OtZmljby48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJJbXB1ZXN0byIgdHlwZT0iY2F0Q0ZESTpjX0ltcHVlc3RvIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgc2XDsWFsYXIgbGEgY2xhdmUgZGVsIHRpcG8gZGUgaW1wdWVzdG8gcmV0ZW5pZG8uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJJbXBvcnRlIiB0eXBlPSJ0ZENGREk6dF9JbXBvcnRlIiB1c2U9InJlcXVpcmVkIj4NCgkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgc2XDsWFsYXIgZWwgbW9udG8gZGVsIGltcHVlc3RvIHJldGVuaWRvLiBObyBzZSBwZXJtaXRlbiB2YWxvcmVzIG5lZ2F0aXZvcy48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCQkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCTwveHM6Y29tcGxleFR5cGU+DQoJCQkJCQkJCQkJPC94czplbGVtZW50Pg0KCQkJCQkJCQkJPC94czpzZXF1ZW5jZT4NCgkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iVHJhc2xhZG9zIiBtaW5PY2N1cnM9IjAiPg0KCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPk5vZG8gY29uZGljaW9uYWwgcGFyYSBjYXB0dXJhciBsb3MgaW1wdWVzdG9zIHRyYXNsYWRhZG9zIGFwbGljYWJsZXMuIEVzIHJlcXVlcmlkbyBjdWFuZG8gZW4gbG9zIGNvbmNlcHRvcyBzZSByZWdpc3RyZSB1biBpbXB1ZXN0byB0cmFzbGFkYWRvLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQkJCQk8eHM6Y29tcGxleFR5cGU+DQoJCQkJCQkJCQk8eHM6c2VxdWVuY2U+DQoJCQkJCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iVHJhc2xhZG8iIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCgkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIHJlcXVlcmlkbyBwYXJhIGxhIGluZm9ybWFjacOzbiBkZXRhbGxhZGEgZGUgdW4gdHJhc2xhZG8gZGUgaW1wdWVzdG8gZXNwZWPDrWZpY28uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iQmFzZSIgdHlwZT0idGRDRkRJOnRfSW1wb3J0ZSIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHNlw7FhbGFyIGxhIHN1bWEgZGUgbG9zIGF0cmlidXRvcyBCYXNlIGRlIGxvcyBjb25jZXB0b3MgZGVsIGltcHVlc3RvIHRyYXNsYWRhZG8uIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iSW1wdWVzdG8iIHR5cGU9ImNhdENGREk6Y19JbXB1ZXN0byIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHNlw7FhbGFyIGxhIGNsYXZlIGRlbCB0aXBvIGRlIGltcHVlc3RvIHRyYXNsYWRhZG8uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJUaXBvRmFjdG9yIiB0eXBlPSJjYXRDRkRJOmNfVGlwb0ZhY3RvciIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJCQkJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIHNlw7FhbGFyIGxhIGNsYXZlIGRlbCB0aXBvIGRlIGZhY3RvciBxdWUgc2UgYXBsaWNhIGEgbGEgYmFzZSBkZWwgaW1wdWVzdG8uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQkJCQkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJUYXNhT0N1b3RhIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSBzZcOxYWxhciBlbCB2YWxvciBkZSBsYSB0YXNhIG8gY3VvdGEgZGVsIGltcHVlc3RvIHF1ZSBzZSB0cmFzbGFkYSBwb3IgbG9zIGNvbmNlcHRvcyBhbXBhcmFkb3MgZW4gZWwgY29tcHJvYmFudGUuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJCQkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJCQkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmRlY2ltYWwiPg0KCQkJCQkJCQkJCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQkJCQkJCQkJCQk8eHM6bWluSW5jbHVzaXZlIHZhbHVlPSIwLjAwMDAwMCIvPg0KCQkJCQkJCQkJCQkJCQkJPHhzOmZyYWN0aW9uRGlnaXRzIHZhbHVlPSI2Ii8+DQoJCQkJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJCQkJCQkJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJCQkJCQkJCQkJPC94czphdHRyaWJ1dGU+DQoJCQkJCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkltcG9ydGUiIHR5cGU9InRkQ0ZESTp0X0ltcG9ydGUiIHVzZT0ib3B0aW9uYWwiPg0KCQkJCQkJCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQkJCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBjb25kaWNpb25hbCBwYXJhIHNlw7FhbGFyIGxhIHN1bWEgZGVsIGltcG9ydGUgZGVsIGltcHVlc3RvIHRyYXNsYWRhZG8sIGFncnVwYWRvIHBvciBpbXB1ZXN0bywgVGlwb0ZhY3RvciB5IFRhc2FPQ3VvdGEuIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQkJCQkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJCQkJCQk8L3hzOnNlcXVlbmNlPg0KCQkJCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCQkJCTwveHM6ZWxlbWVudD4NCgkJCQkJCTwveHM6c2VxdWVuY2U+DQoJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlRvdGFsSW1wdWVzdG9zUmV0ZW5pZG9zIiB0eXBlPSJ0ZENGREk6dF9JbXBvcnRlIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSBleHByZXNhciBlbCB0b3RhbCBkZSBsb3MgaW1wdWVzdG9zIHJldGVuaWRvcyBxdWUgc2UgZGVzcHJlbmRlbiBkZSBsb3MgY29uY2VwdG9zIGV4cHJlc2Fkb3MgZW4gZWwgY29tcHJvYmFudGUgZmlzY2FsIGRpZ2l0YWwgcG9yIEludGVybmV0LiBObyBzZSBwZXJtaXRlbiB2YWxvcmVzIG5lZ2F0aXZvcy4gRXMgcmVxdWVyaWRvIGN1YW5kbyBlbiBsb3MgY29uY2VwdG9zIHNlIHJlZ2lzdHJlbiBpbXB1ZXN0b3MgcmV0ZW5pZG9zLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iVG90YWxJbXB1ZXN0b3NUcmFzbGFkYWRvcyIgdHlwZT0idGRDRkRJOnRfSW1wb3J0ZSIgdXNlPSJvcHRpb25hbCI+DQoJCQkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIGNvbmRpY2lvbmFsIHBhcmEgZXhwcmVzYXIgZWwgdG90YWwgZGUgbG9zIGltcHVlc3RvcyB0cmFzbGFkYWRvcyBxdWUgc2UgZGVzcHJlbmRlbiBkZSBsb3MgY29uY2VwdG9zIGV4cHJlc2Fkb3MgZW4gZWwgY29tcHJvYmFudGUgZmlzY2FsIGRpZ2l0YWwgcG9yIEludGVybmV0LiBObyBzZSBwZXJtaXRlbiB2YWxvcmVzIG5lZ2F0aXZvcy4gRXMgcmVxdWVyaWRvIGN1YW5kbyBlbiBsb3MgY29uY2VwdG9zIHNlIHJlZ2lzdHJlbiBpbXB1ZXN0b3MgdHJhc2xhZGFkb3MuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJCTwveHM6YXR0cmlidXRlPg0KCQkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJCTwveHM6ZWxlbWVudD4NCgkJCQk8eHM6ZWxlbWVudCBuYW1lPSJDb21wbGVtZW50byIgbWluT2NjdXJzPSIwIj4NCgkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIG9wY2lvbmFsIGRvbmRlIHNlIGluY2x1eWUgZWwgY29tcGxlbWVudG8gVGltYnJlIEZpc2NhbCBEaWdpdGFsIGRlIG1hbmVyYSBvYmxpZ2F0b3JpYSB5IGxvcyBub2RvcyBjb21wbGVtZW50YXJpb3MgZGV0ZXJtaW5hZG9zIHBvciBlbCBTQVQsIGRlIGFjdWVyZG8gY29uIGxhcyBkaXNwb3NpY2lvbmVzIHBhcnRpY3VsYXJlcyBwYXJhIHVuIHNlY3RvciBvIGFjdGl2aWRhZCBlc3BlY8OtZmljYS48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJCQkJPHhzOnNlcXVlbmNlPg0KCQkJCQkJCTx4czphbnkgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQkJCQkJPC94czpzZXF1ZW5jZT4NCgkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQk8L3hzOmVsZW1lbnQ+DQoJCQkJPHhzOmVsZW1lbnQgbmFtZT0iQWRkZW5kYSIgbWluT2NjdXJzPSIwIj4NCgkJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5Ob2RvIG9wY2lvbmFsIHBhcmEgcmVjaWJpciBsYXMgZXh0ZW5zaW9uZXMgYWwgcHJlc2VudGUgZm9ybWF0byBxdWUgc2VhbiBkZSB1dGlsaWRhZCBhbCBjb250cmlidXllbnRlLiBQYXJhIGxhcyByZWdsYXMgZGUgdXNvIGRlbCBtaXNtbywgcmVmZXJpcnNlIGFsIGZvcm1hdG8gb3JpZ2VuLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCQk8eHM6Y29tcGxleFR5cGU+DQoJCQkJCQk8eHM6c2VxdWVuY2U+DQoJCQkJCQkJPHhzOmFueSBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQkJCQkJPC94czpzZXF1ZW5jZT4NCgkJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCQk8L3hzOmVsZW1lbnQ+DQoJCQk8L3hzOnNlcXVlbmNlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJWZXJzaW9uIiB1c2U9InJlcXVpcmVkIiBmaXhlZD0iNC4wIj4NCgkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIGNvbiB2YWxvciBwcmVmaWphZG8gYSA0LjAgcXVlIGluZGljYSBsYSB2ZXJzacOzbiBkZWwgZXN0w6FuZGFyIGJham8gZWwgcXVlIHNlIGVuY3VlbnRyYSBleHByZXNhZG8gZWwgY29tcHJvYmFudGUuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQoJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCTx4czphdHRyaWJ1dGUgbmFtZT0iU2VyaWUiIHVzZT0ib3B0aW9uYWwiPg0KCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBvcGNpb25hbCBwYXJhIHByZWNpc2FyIGxhIHNlcmllIHBhcmEgY29udHJvbCBpbnRlcm5vIGRlbCBjb250cmlidXllbnRlLiBFc3RlIGF0cmlidXRvIGFjZXB0YSB1bmEgY2FkZW5hIGRlIGNhcmFjdGVyZXMuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQoJCQkJCQk8eHM6bWluTGVuZ3RoIHZhbHVlPSIxIi8+DQoJCQkJCQk8eHM6bWF4TGVuZ3RoIHZhbHVlPSIyNSIvPg0KCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iW158XXsxLDI1fSIvPg0KCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCTwveHM6YXR0cmlidXRlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJGb2xpbyIgdXNlPSJvcHRpb25hbCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIG9wY2lvbmFsIHBhcmEgY29udHJvbCBpbnRlcm5vIGRlbCBjb250cmlidXllbnRlIHF1ZSBleHByZXNhIGVsIGZvbGlvIGRlbCBjb21wcm9iYW50ZSwgYWNlcHRhIHVuYSBjYWRlbmEgZGUgY2FyYWN0ZXJlcy48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjQwIi8+DQoJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbXnxdezEsNDB9Ii8+DQoJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJPC94czphdHRyaWJ1dGU+DQoJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkZlY2hhIiB0eXBlPSJ0ZENGREk6dF9GZWNoYUgiIHVzZT0icmVxdWlyZWQiPg0KCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSBsYSBleHByZXNpw7NuIGRlIGxhIGZlY2hhIHkgaG9yYSBkZSBleHBlZGljacOzbiBkZWwgQ29tcHJvYmFudGUgRmlzY2FsIERpZ2l0YWwgcG9yIEludGVybmV0LiBTZSBleHByZXNhIGVuIGxhIGZvcm1hIEFBQUEtTU0tRERUaGg6bW06c3MgeSBkZWJlIGNvcnJlc3BvbmRlciBjb24gbGEgaG9yYSBsb2NhbCBkb25kZSBzZSBleHBpZGUgZWwgY29tcHJvYmFudGUuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCTwveHM6YXR0cmlidXRlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJTZWxsbyIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGNvbnRlbmVyIGVsIHNlbGxvIGRpZ2l0YWwgZGVsIGNvbXByb2JhbnRlIGZpc2NhbCwgYWwgcXVlIGhhY2VuIHJlZmVyZW5jaWEgbGFzIHJlZ2xhcyBkZSByZXNvbHVjacOzbiBtaXNjZWzDoW5lYSB2aWdlbnRlLiBFbCBzZWxsbyBkZWJlIHNlciBleHByZXNhZG8gY29tbyB1bmEgY2FkZW5hIGRlIHRleHRvIGVuIGZvcm1hdG8gQmFzZSA2NC48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCTwveHM6YXR0cmlidXRlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJGb3JtYVBhZ28iIHR5cGU9ImNhdENGREk6Y19Gb3JtYVBhZ28iIHVzZT0ib3B0aW9uYWwiPg0KCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBjb25kaWNpb25hbCBwYXJhIGV4cHJlc2FyIGxhIGNsYXZlIGRlIGxhIGZvcm1hIGRlIHBhZ28gZGUgbG9zIGJpZW5lcyBvIHNlcnZpY2lvcyBhbXBhcmFkb3MgcG9yIGVsIGNvbXByb2JhbnRlLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQk8L3hzOmFubm90YXRpb24+DQoJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCTx4czphdHRyaWJ1dGUgbmFtZT0iTm9DZXJ0aWZpY2FkbyIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGV4cHJlc2FyIGVsIG7Dum1lcm8gZGUgc2VyaWUgZGVsIGNlcnRpZmljYWRvIGRlIHNlbGxvIGRpZ2l0YWwgcXVlIGFtcGFyYSBhbCBjb21wcm9iYW50ZSwgZGUgYWN1ZXJkbyBjb24gZWwgYWN1c2UgY29ycmVzcG9uZGllbnRlIGEgMjAgcG9zaWNpb25lcyBvdG9yZ2FkbyBwb3IgZWwgc2lzdGVtYSBkZWwgU0FULjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQk8L3hzOmFubm90YXRpb24+DQoJCQkJPHhzOnNpbXBsZVR5cGU+DQoJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJPC94czphdHRyaWJ1dGU+DQoJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkNlcnRpZmljYWRvIiB1c2U9InJlcXVpcmVkIj4NCgkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHF1ZSBzaXJ2ZSBwYXJhIGluY29ycG9yYXIgZWwgY2VydGlmaWNhZG8gZGUgc2VsbG8gZGlnaXRhbCBxdWUgYW1wYXJhIGFsIGNvbXByb2JhbnRlLCBjb21vIHRleHRvIGVuIGZvcm1hdG8gYmFzZSA2NC48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KCQkJCTwveHM6c2ltcGxlVHlwZT4NCgkJCTwveHM6YXR0cmlidXRlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDb25kaWNpb25lc0RlUGFnbyIgdXNlPSJvcHRpb25hbCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIGNvbmRpY2lvbmFsIHBhcmEgZXhwcmVzYXIgbGFzIGNvbmRpY2lvbmVzIGNvbWVyY2lhbGVzIGFwbGljYWJsZXMgcGFyYSBlbCBwYWdvIGRlbCBjb21wcm9iYW50ZSBmaXNjYWwgZGlnaXRhbCBwb3IgSW50ZXJuZXQuIEVzdGUgYXRyaWJ1dG8gcHVlZGUgc2VyIGNvbmRpY2lvbmFkbyBtZWRpYW50ZSBhdHJpYnV0b3MgbyBjb21wbGVtZW50b3MuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQoJCQkJCQk8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCgkJCQkJCTx4czptaW5MZW5ndGggdmFsdWU9IjEiLz4NCgkJCQkJCTx4czptYXhMZW5ndGggdmFsdWU9IjEwMDAiLz4NCgkJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSJbXnxdezEsMTAwMH0iLz4NCgkJCQkJPC94czpyZXN0cmljdGlvbj4NCgkJCQk8L3hzOnNpbXBsZVR5cGU+DQoJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCTx4czphdHRyaWJ1dGUgbmFtZT0iU3ViVG90YWwiIHR5cGU9InRkQ0ZESTp0X0ltcG9ydGUiIHVzZT0icmVxdWlyZWQiPg0KCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byByZXF1ZXJpZG8gcGFyYSByZXByZXNlbnRhciBsYSBzdW1hIGRlIGxvcyBpbXBvcnRlcyBkZSBsb3MgY29uY2VwdG9zIGFudGVzIGRlIGRlc2N1ZW50b3MgZSBpbXB1ZXN0by4gTm8gc2UgcGVybWl0ZW4gdmFsb3JlcyBuZWdhdGl2b3MuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCTwveHM6YXR0cmlidXRlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJEZXNjdWVudG8iIHR5cGU9InRkQ0ZESTp0X0ltcG9ydGUiIHVzZT0ib3B0aW9uYWwiPg0KCQkJCTx4czphbm5vdGF0aW9uPg0KCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BdHJpYnV0byBjb25kaWNpb25hbCBwYXJhIHJlcHJlc2VudGFyIGVsIGltcG9ydGUgdG90YWwgZGUgbG9zIGRlc2N1ZW50b3MgYXBsaWNhYmxlcyBhbnRlcyBkZSBpbXB1ZXN0b3MuIE5vIHNlIHBlcm1pdGVuIHZhbG9yZXMgbmVnYXRpdm9zLiBTZSBkZWJlIHJlZ2lzdHJhciBjdWFuZG8gZXhpc3RhbiBjb25jZXB0b3MgY29uIGRlc2N1ZW50by48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJPC94czphdHRyaWJ1dGU+DQoJCQk8eHM6YXR0cmlidXRlIG5hbWU9Ik1vbmVkYSIgdHlwZT0iY2F0Q0ZESTpjX01vbmVkYSIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGlkZW50aWZpY2FyIGxhIGNsYXZlIGRlIGxhIG1vbmVkYSB1dGlsaXphZGEgcGFyYSBleHByZXNhciBsb3MgbW9udG9zLCBjdWFuZG8gc2UgdXNhIG1vbmVkYSBuYWNpb25hbCBzZSByZWdpc3RyYSBNWE4uIENvbmZvcm1lIGNvbiBsYSBlc3BlY2lmaWNhY2nDs24gSVNPIDQyMTcuPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCTwveHM6YXR0cmlidXRlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJUaXBvQ2FtYmlvIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSByZXByZXNlbnRhciBlbCB0aXBvIGRlIGNhbWJpbyBGSVggY29uZm9ybWUgY29uIGxhIG1vbmVkYSB1c2FkYS4gRXMgcmVxdWVyaWRvIGN1YW5kbyBsYSBjbGF2ZSBkZSBtb25lZGEgZXMgZGlzdGludGEgZGUgTVhOIHkgZGUgWFhYLiBFbCB2YWxvciBkZWJlIHJlZmxlamFyIGVsIG7Dum1lcm8gZGUgcGVzb3MgbWV4aWNhbm9zIHF1ZSBlcXVpdmFsZW4gYSB1bmEgdW5pZGFkIGRlIGxhIGRpdmlzYSBzZcOxYWxhZGEgZW4gZWwgYXRyaWJ1dG8gbW9uZWRhLiBTaSBlbCB2YWxvciBlc3TDoSBmdWVyYSBkZWwgcG9yY2VudGFqZSBhcGxpY2FibGUgYSBsYSBtb25lZGEgdG9tYWRvIGRlbCBjYXTDoWxvZ28gY19Nb25lZGEsIGVsIGVtaXNvciBkZWJlIG9idGVuZXIgZGVsIFBBQyBxdWUgdmF5YSBhIHRpbWJyYXIgZWwgQ0ZESSwgZGUgbWFuZXJhIG5vIGF1dG9tw6F0aWNhLCB1bmEgY2xhdmUgZGUgY29uZmlybWFjacOzbiBwYXJhIHJhdGlmaWNhciBxdWUgZWwgdmFsb3IgZXMgY29ycmVjdG8gZSBpbnRlZ3JhciBkaWNoYSBjbGF2ZSBlbiBlbCBhdHJpYnV0byBDb25maXJtYWNpb24uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCQk8eHM6c2ltcGxlVHlwZT4NCgkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmRlY2ltYWwiPg0KCQkJCQkJPHhzOmZyYWN0aW9uRGlnaXRzIHZhbHVlPSI2Ii8+DQoJCQkJCQk8eHM6bWluSW5jbHVzaXZlIHZhbHVlPSIwLjAwMDAwMSIvPg0KCQkJCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQoJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJPC94czphdHRyaWJ1dGU+DQoJCQk8eHM6YXR0cmlidXRlIG5hbWU9IlRvdGFsIiB0eXBlPSJ0ZENGREk6dF9JbXBvcnRlIiB1c2U9InJlcXVpcmVkIj4NCgkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgcmVwcmVzZW50YXIgbGEgc3VtYSBkZWwgc3VidG90YWwsIG1lbm9zIGxvcyBkZXNjdWVudG9zIGFwbGljYWJsZXMsIG3DoXMgbGFzIGNvbnRyaWJ1Y2lvbmVzIHJlY2liaWRhcyAoaW1wdWVzdG9zIHRyYXNsYWRhZG9zIC0gZmVkZXJhbGVzIHkvbyBsb2NhbGVzLCBkZXJlY2hvcywgcHJvZHVjdG9zLCBhcHJvdmVjaGFtaWVudG9zLCBhcG9ydGFjaW9uZXMgZGUgc2VndXJpZGFkIHNvY2lhbCwgY29udHJpYnVjaW9uZXMgZGUgbWVqb3JhcykgbWVub3MgbG9zIGltcHVlc3RvcyByZXRlbmlkb3MgZmVkZXJhbGVzIHkvbyBsb2NhbGVzLiBTaSBlbCB2YWxvciBlcyBzdXBlcmlvciBhbCBsw61taXRlIHF1ZSBlc3RhYmxlemNhIGVsIFNBVCBlbiBsYSBSZXNvbHVjacOzbiBNaXNjZWzDoW5lYSBGaXNjYWwgdmlnZW50ZSwgZWwgZW1pc29yIGRlYmUgb2J0ZW5lciBkZWwgUEFDIHF1ZSB2YXlhIGEgdGltYnJhciBlbCBDRkRJLCBkZSBtYW5lcmEgbm8gYXV0b23DoXRpY2EsIHVuYSBjbGF2ZSBkZSBjb25maXJtYWNpw7NuIHBhcmEgcmF0aWZpY2FyIHF1ZSBlbCB2YWxvciBlcyBjb3JyZWN0byBlIGludGVncmFyIGRpY2hhIGNsYXZlIGVuIGVsIGF0cmlidXRvIENvbmZpcm1hY2lvbi4gTm8gc2UgcGVybWl0ZW4gdmFsb3JlcyBuZWdhdGl2b3MuIDwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQk8L3hzOmFubm90YXRpb24+DQoJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCTx4czphdHRyaWJ1dGUgbmFtZT0iVGlwb0RlQ29tcHJvYmFudGUiIHR5cGU9ImNhdENGREk6Y19UaXBvRGVDb21wcm9iYW50ZSIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGV4cHJlc2FyIGxhIGNsYXZlIGRlbCBlZmVjdG8gZGVsIGNvbXByb2JhbnRlIGZpc2NhbCBwYXJhIGVsIGNvbnRyaWJ1eWVudGUgZW1pc29yLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQk8L3hzOmFubm90YXRpb24+DQoJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCTx4czphdHRyaWJ1dGUgbmFtZT0iRXhwb3J0YWNpb24iIHR5cGU9ImNhdENGREk6Y19FeHBvcnRhY2lvbiIgdXNlPSJyZXF1aXJlZCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIHJlcXVlcmlkbyBwYXJhIGV4cHJlc2FyIHNpIGVsIGNvbXByb2JhbnRlIGFtcGFyYSB1bmEgb3BlcmFjacOzbiBkZSBleHBvcnRhY2nDs24uPC94czpkb2N1bWVudGF0aW9uPg0KCQkJCTwveHM6YW5ub3RhdGlvbj4NCgkJCTwveHM6YXR0cmlidXRlPg0KCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJNZXRvZG9QYWdvIiB0eXBlPSJjYXRDRkRJOmNfTWV0b2RvUGFnbyIgdXNlPSJvcHRpb25hbCI+DQoJCQkJPHhzOmFubm90YXRpb24+DQoJCQkJCTx4czpkb2N1bWVudGF0aW9uPkF0cmlidXRvIGNvbmRpY2lvbmFsIHBhcmEgcHJlY2lzYXIgbGEgY2xhdmUgZGVsIG3DqXRvZG8gZGUgcGFnbyBxdWUgYXBsaWNhIHBhcmEgZXN0ZSBjb21wcm9iYW50ZSBmaXNjYWwgZGlnaXRhbCBwb3IgSW50ZXJuZXQsIGNvbmZvcm1lIGFsIEFydMOtY3VsbyAyOS1BIGZyYWNjacOzbiBWSUkgaW5jaXNvcyBhIHkgYiBkZWwgQ0ZGLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQk8L3hzOmFubm90YXRpb24+DQoJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCTx4czphdHRyaWJ1dGUgbmFtZT0iTHVnYXJFeHBlZGljaW9uIiB0eXBlPSJjYXRDRkRJOmNfQ29kaWdvUG9zdGFsIiB1c2U9InJlcXVpcmVkIj4NCgkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gcmVxdWVyaWRvIHBhcmEgaW5jb3Jwb3JhciBlbCBjw7NkaWdvIHBvc3RhbCBkZWwgbHVnYXIgZGUgZXhwZWRpY2nDs24gZGVsIGNvbXByb2JhbnRlIChkb21pY2lsaW8gZGUgbGEgbWF0cml6IG8gZGUgbGEgc3VjdXJzYWwpLjwveHM6ZG9jdW1lbnRhdGlvbj4NCgkJCQk8L3hzOmFubm90YXRpb24+DQoJCQk8L3hzOmF0dHJpYnV0ZT4NCgkJCTx4czphdHRyaWJ1dGUgbmFtZT0iQ29uZmlybWFjaW9uIiB1c2U9Im9wdGlvbmFsIj4NCgkJCQk8eHM6YW5ub3RhdGlvbj4NCgkJCQkJPHhzOmRvY3VtZW50YXRpb24+QXRyaWJ1dG8gY29uZGljaW9uYWwgcGFyYSByZWdpc3RyYXIgbGEgY2xhdmUgZGUgY29uZmlybWFjacOzbiBxdWUgZW50cmVndWUgZWwgUEFDIHBhcmEgZXhwZWRpciBlbCBjb21wcm9iYW50ZSBjb24gaW1wb3J0ZXMgZ3JhbmRlcywgY29uIHVuIHRpcG8gZGUgY2FtYmlvIGZ1ZXJhIGRlbCByYW5nbyBlc3RhYmxlY2lkbyBvIGNvbiBhbWJvcyBjYXNvcy4gRXMgcmVxdWVyaWRvIGN1YW5kbyBzZSByZWdpc3RyYSB1biB0aXBvIGRlIGNhbWJpbyBvIHVuIHRvdGFsIGZ1ZXJhIGRlbCByYW5nbyBlc3RhYmxlY2lkby48L3hzOmRvY3VtZW50YXRpb24+DQoJCQkJPC94czphbm5vdGF0aW9uPg0KCQkJCTx4czpzaW1wbGVUeXBlPg0KCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCQkJCTx4czp3aGl0ZVNwYWNlIHZhbHVlPSJjb2xsYXBzZSIvPg0KCQkJCQkJPHhzOmxlbmd0aCB2YWx1ZT0iNSIvPg0KCQkJCQkJPHhzOnBhdHRlcm4gdmFsdWU9IlswLTlhLXpBLVpdezV9Ii8+DQoJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQoJCQkJPC94czpzaW1wbGVUeXBlPg0KCQkJPC94czphdHRyaWJ1dGU+DQoJCTwveHM6Y29tcGxleFR5cGU+DQoJPC94czplbGVtZW50Pg0KPC94czpzY2hlbWE+DQo=</field>
     </record>
@@ -21,7 +21,7 @@
         <field name="report_file">l10n_mx_facturae/report/account_move.odt</field>
         <field name="in_format">oo-odt</field>
         <field name="out_format" ref="report_aeroo.report_mimetypes_pdf_odt"/>
-        <field name="parser_model">report.l10n_mx_qr</field>
+        <field name="parser_model">report.l10n_mx_facturae.account_move</field>
         <field name="styles_mode">default</field>
         <field name="preload_mode">static</field>
         <field name="deferred">off</field>
diff --git a/l10n_mx_facturae/data/account_payment.xml b/l10n_mx_facturae/data/account_payment.xml
index 83fecf0d4aa2883323f57b2f641ae7f175788656..f2d4733197eb5ed90bcf2bd5c21a5c9e37d5ad60 100644
--- a/l10n_mx_facturae/data/account_payment.xml
+++ b/l10n_mx_facturae/data/account_payment.xml
@@ -6,7 +6,7 @@
         <field name="name">Account Payment CFDI XML</field>
         <field name="model">account.payment</field>
         <field name="report_type">qweb-xml</field>
-        <field name="report_name">l10n_mx_facturae.account_payment_template_cfdi_xml</field>
+        <field name="report_name">l10n_mx_facturae.account_payment</field>
         <field name="xml_declaration">true</field>
         <field name="xsd_schema"></field>
     </record>
@@ -21,7 +21,7 @@
         <field name="report_file">l10n_mx_facturae/report/account_payment.odt</field>
         <field name="in_format">oo-odt</field>
         <field name="out_format" ref="report_aeroo.report_mimetypes_pdf_odt"/>
-        <field name="parser_model">report.l10n_mx_facturae.account_payment_template_cfdi_xml</field>
+        <field name="parser_model">report.l10n_mx_facturae.account_payment</field>
         <field name="styles_mode">default</field>
         <field name="preload_mode">static</field>
         <field name="deferred">off</field>
diff --git a/l10n_mx_facturae/data/ir_attachment_facturae_config.xml b/l10n_mx_facturae/data/ir_attachment_facturae_config.xml
index db90752145e5d59ded18f11a9100fccb9c0538d5..45397483037e90a0ce92c1a8e8a1f0464bc9de83 100644
--- a/l10n_mx_facturae/data/ir_attachment_facturae_config.xml
+++ b/l10n_mx_facturae/data/ir_attachment_facturae_config.xml
@@ -5,7 +5,7 @@
         model="ir.attachment.facturae.mx.config">
         <field name="model">account.move</field>
         <field name="version">4.0</field>
-        <field name="template_xml_sign">l10n_mx_facturae.account_move_template_cfdi_xml</field>
+        <field name="template_xml_sign">l10n_mx_facturae.account_move</field>
         <field name="template_xml_cancel">Aun.no.hay.uno</field>
         <field name="template_pdf_sign">l10n_mx_facturae.account_move_template_cfdi_pdf</field>
         <field name="template_pdf_cancel">l10n_mx_facturae.account_move_template_cfdi_pdf</field>
@@ -16,7 +16,7 @@
         model="ir.attachment.facturae.mx.config">
         <field name="model">account.payment</field>
         <field name="version">4.0</field>
-        <field name="template_xml_sign">l10n_mx_facturae.account_payment_template_cfdi_xml</field>
+        <field name="template_xml_sign">l10n_mx_facturae.account_payment</field>
         <field name="template_xml_cancel">Aun.no.hay.uno</field>
         <field name="template_pdf_sign">l10n_mx_facturae.account_payment_template_cfdi_pdf</field>
         <field name="template_pdf_cancel"><!--l10n_mx_facturae.account_payment_template_cfdi_pdf--></field>
diff --git a/l10n_mx_facturae/demo/demo_res_partner.xml b/l10n_mx_facturae/demo/demo_res_partner.xml
index 941161b955a589aea6dd09eaa3500d875b498485..2ec790f9f7fdcd69663ba2ebead84d34b870f0ab 100644
--- a/l10n_mx_facturae/demo/demo_res_partner.xml
+++ b/l10n_mx_facturae/demo/demo_res_partner.xml
@@ -25,4 +25,31 @@
         <field name="payment_method_id" ref="l10n_mx_base.cfdi_payment_method_1"/>
     </record>
 
+    <record id="l10n_mx_ir_attachment_facturae.demo_partner_company_mx_frontier" model="res.partner">
+        <field name="cfdi_fiscal_regime_id" ref="l10n_mx_base.regime_fiscal_601"/>
+        <field name="cfdi_use_id" ref="l10n_mx_base.cfdi_use_S01"/>
+    </record>
+
+    <record id="l10n_mx_ir_attachment_facturae.res_company_mx_frontier" model="res.company">
+        <field name="cfdi_fiscal_regime_id" ref="l10n_mx_base.regime_fiscal_601"/>
+        <field name="cfdi_use_id" ref="l10n_mx_base.cfdi_use_S01"/>
+    </record>
+
+   <record id="res_partner_2024" model="res.partner">
+        <field name="name">Maria Olivia Martinez Sagaz</field>
+        <field name="is_company">1</field>
+        <field name="street">45 10 oriente</field>
+        <field name="city">Culiacán</field>
+        <field name="state_id" ref="base.state_mx_sin"/>
+        <field name="zip">80290</field>
+        <field name="vat">MXMASO451221PM4</field>
+        <field name="phone">(870)-931-0505</field>
+        <field name="country_id" ref="base.mx"/>
+        <field name="email">maria.martinez@example.com</field>
+        <field name="company_id" ref="l10n_mx_ir_attachment_facturae.res_company_mx_frontier"/>
+        <field name="cfdi_fiscal_regime_id" ref="l10n_mx_base.regime_fiscal_616"/>
+        <field name="cfdi_use_id" ref="l10n_mx_base.cfdi_use_S01"/>
+        <field name="payment_method_id" ref="l10n_mx_base.cfdi_payment_method_1"/>
+   </record>
+
 </odoo>
diff --git a/l10n_mx_facturae/models/account_move.py b/l10n_mx_facturae/models/account_move.py
index 063bb5549bf2a6e95cd9a6b20900c749ade05c24..3bdc1422f9a7cfa8fde90a8892abf32638ac5324 100644
--- a/l10n_mx_facturae/models/account_move.py
+++ b/l10n_mx_facturae/models/account_move.py
@@ -124,10 +124,6 @@ class AccountMove(models.Model):
         "cfdi.use", "CFDI use", readonly=True, states={"draft": [("readonly", False)]}
     )
     cfdi_relation_type = fields.Many2one("cfdi.relation.type", "CFDI Relation type")
-    state = fields.Selection(
-        selection_add=[("waiting", _("To cancel"))],
-        ondelete={'waiting': 'cascade'}
-    )
     l10n_mx_edi_to_cancel = fields.Char(
         #compute="_compute_l10n_mx_edi_to_cancel",
         #search="_search_l10n_mx_edi_to_cancel",
@@ -316,10 +312,9 @@ class AccountMove(models.Model):
                 # Create new CFDI object for this invoice
                 account_invoice.create_cfdi()
 
-    def action_cancel(self):
-        """Extend `AccountMove.action_cancel()`; Cancels the CFDI related to the
-        invoice
-        """
+    def l10n_mx_action_cancel(self):
+        """Cancels the CFDI related to the invoice"""
+
         # Get only invoices with related cfdi to cancel cfdi before cancel invoice
         cfdis = self.filtered(
             lambda i:
@@ -327,38 +322,46 @@ class AccountMove(models.Model):
                 and i.cfdi_id
                 and i.cfdi_id.state not in ["draft", "cancel"]
         )
+
         for invoice in cfdis:
-            # Ensure we can cancel this invoice
-            invoice.check_if_can_cancel()
-            # If l10n_mx_edi_original_invoice is set save uuid to send info to PAC
-            # while cancel invoice
-            invoice.cfdi_id.substitute_cfdi_uuid = (
-                invoice.l10n_mx_edi_original_invoice.cfdi_id.uuid
+            invoice.message_post(
+                body=_("Cancellation request sent")
             )
-            cancelacion = invoice.cancel_cfdi()[0]
+            cancelacion = invoice.cancel_cfdi()
             if cancelacion:
                 # CFDI cancelled (cancelacion == True) must cancel invoice too
-                super(AccountMove, invoice).action_cancel()
+                invoice.button_draft()
+                invoice.button_cancel()
             elif cancelacion is None:
                 # CFDI set to approval (cancelacion == None) must set invoice
                 # to waiting too
-                invoice.write({"state": "waiting"})
+                invoice.write({"state": "posted"})
+                invoice.message_post(
+                    body=_("Awaiting cancellation")
+                )
             elif cancelacion is False:
                 # CFDI cancel denied (cancelacion == False) must get back invoice
                 # to open state
                 self.undo_waiting_state()
-
-        # Call super only with invoices without CFDI
-        invoices = self - cfdis
-        return super(AccountMove, invoices).action_cancel()
+                invoice.message_post(
+                    body=_("Denied cancellation")
+                )
 
     def undo_waiting_state(self):
         """When cancel is negate revert invoice to open and post account_move"""
         for record in self:
-            to_update = record.filtered(lambda i: i.state == "waiting")
-            to_update.write({"state": "open"})
+            to_update = record.filtered(lambda i: i.cfdi_state == "waiting")
+            to_update.write({"state": "posted"})
             to_update.mapped("move_id").post()
 
+    @api.depends("state", "cfdi_state")
+    def _compute_show_reset_to_draft_button(self):
+        super()._compute_show_reset_to_draft_button()
+
+        for move in self:
+            if move.state in ("posted", "cancel") and move.cfdi_state in ("signed", "done", "waiting", "cancel"):
+                move.show_reset_to_draft_button = False
+
     def action_consult_cancellation_status(self):
         """Verify cancellation status"""
         # TODO: Is this really needed? Maybe we can reuse the action_cancel
@@ -520,7 +523,6 @@ class AccountMove(models.Model):
 
         return res
 
-
 class AccountMoveLine(models.Model):
     _inherit = "account.move.line"
 
diff --git a/l10n_mx_facturae/models/account_payment.py b/l10n_mx_facturae/models/account_payment.py
index 9c6646fd93b50239ed9f319dab1a11a5ccb61620..5acacfaa4131fab54be3610859362f683416dcde 100644
--- a/l10n_mx_facturae/models/account_payment.py
+++ b/l10n_mx_facturae/models/account_payment.py
@@ -154,18 +154,9 @@ class AccountPayment(models.Model):
         or will use the default behavior"""
         self.ensure_one()
         # We need to give the date in the context to get proper rate
-        voucher_currency = self.journal_id.currency or self.company_id.currency_id
+        voucher_currency = self.journal_id.currency_id or self.company_id.currency_id
         voucher_currency = voucher_currency.with_context(date=self.date)
-        voucher_currency = voucher_currency.with_context(
-            special_currency_rate=(
-                voucher_currency.rate * self.payment_rate
-            ),
-            special_currency=(
-                self.payment_rate_currency_id
-                and self.payment_rate_currency_id.id
-                or False
-            ),
-        )
+
         res = float_round(
             voucher_currency.compute(1.0, self.company_id.currency_id, round=False),
             precision_digits=6,
@@ -300,12 +291,12 @@ class AccountPayment(models.Model):
             if invoice.currency_id == company_currency:
                 # When invoice is in company currency we are going to use payment rate
                 voucher_currency = voucher_currency.with_context(
-                    special_currency_rate=(1 / self.payment_rate),
+                    special_currency_rate=(1 / voucher_currency.rate),
                     special_currency=voucher_currency.id,
                 )
             else:
                 voucher_currency = voucher_currency.with_context(
-                    special_currency_rate=(1 / invoice.currency_rate),
+                    special_currency_rate=(1 / invoice.currency_id.rate),
                     special_currency=invoice.currency_id.id,
                 )
 
@@ -354,20 +345,8 @@ class AccountPayment(models.Model):
             tax_group = tax_rep_lines.mapped("tag_ids")
             key = tax_group.name + str(line["tax_id"].amount)
 
-            if company_currency != voucher_currency:
-                company_currency = company_currency.with_context(
-                    special_currency_rate=self.currency_rate(),
-                    special_currency=voucher_currency.id,
-                )
-                tax_totals["importe" + key] = company_currency.compute(
-                    line["importe"], voucher_currency,
-                )
-                tax_totals["base" + key] = company_currency.compute(
-                    line["tax_base"], voucher_currency,
-                )
-            else:
-                tax_totals["importe" + key] = line["importe"]
-                tax_totals["base" + key] = line["tax_base"]
+            tax_totals["importe" + key] = line["importe"]
+            tax_totals["base" + key] = line["tax_base"]
 
         return tax_totals
 
@@ -387,35 +366,11 @@ class AccountPayment(models.Model):
                         importe=0.0,
                     )
 
-                if tax_move.currency_id != voucher_currency:
-                    invoice_currency = (
-                        tax_move.currency_id
-                        if tax_move.currency_id else company_currency
-                    )
-                    invoice_currency = invoice_currency.with_context(date=self.date)
-                    if invoice_currency != company_currency:
-                        invoice_currency = invoice_currency.with_context(
-                            special_currency_rate=self.tipocambiodr(invoice),
-                            special_currency=invoice_currency.id,
-                        )
-                    else:
-                        invoice_currency = invoice_currency.with_context(
-                            special_currency_rate=(1 / self.tipocambiodr(invoice)),
-                            special_currency=voucher_currency.id,
-                        )
-                    tax_base = invoice_currency.compute(
-                        tax_move.tax_base, voucher_currency, round=False,
-                    )
-                    # Force rounding 6 decimals to use as many decimal as possible and
-                    # avoid rounding errors when validating XML
-                    tax_base = float_round(
-                        tax_base, precision_digits=2, rounding_method="DOWN",
-                    )
-                else:
-                    tax_base = tax_move.tax_base_amount
+                tax_base = self._l10n_mx_tax_base_dr(invoice, tax_move)
+                importe = self._l10n_mx_tax_importe_dr(invoice, tax_move)
 
                 tax_totals[tax_move.tax_line_id.id]["tax_base"] += tax_base
-                tax_totals[tax_move.tax_line_id.id]["importe"] += abs(tax_move.balance)
+                tax_totals[tax_move.tax_line_id.id]["importe"] += importe
 
         return [line for line in tax_totals.values()]
 
@@ -438,3 +393,27 @@ class AccountPayment(models.Model):
             domain.append(("tax_line_id.amount_type", "=", "percent"))
 
         return domain
+
+    def _l10n_mx_tax_base_dr(self, invoice, tax_move):
+        amount = tax_move.tax_base_amount
+
+        if invoice.currency_id != self.company_id.currency_id:
+            account = (
+                tax_move.company_id.account_cash_basis_base_account_id or
+                tax_move.account_id
+            )
+            base_line = tax_move.move_id.line_ids.filtered(
+                lambda l:
+                    l.id != tax_move.id and l.account_id == account and l.tax_ids
+            )
+            amount = -1 * base_line.amount_currency
+
+        return amount
+
+    def _l10n_mx_tax_importe_dr(self, invoice, tax_move):
+        amount = tax_move.balance
+
+        if invoice.currency_id != self.company_id.currency_id:
+            amount = tax_move.amount_currency
+
+        return -1 * amount
diff --git a/l10n_mx_facturae/report/__init__.py b/l10n_mx_facturae/report/__init__.py
index d564ba5da1de21bcce17c7c98dec5302c8820fd6..dd3fb58358d6362b7384006875e04733600719d5 100644
--- a/l10n_mx_facturae/report/__init__.py
+++ b/l10n_mx_facturae/report/__init__.py
@@ -1,3 +1,4 @@
 # -*- coding: utf-8 -*-
 
+from . import account_move
 from . import account_payment
diff --git a/l10n_mx_facturae/report/account_move.py b/l10n_mx_facturae/report/account_move.py
new file mode 100644
index 0000000000000000000000000000000000000000..91e1bf36d52cb2c255d8006cd94ad3fbad4d6739
--- /dev/null
+++ b/l10n_mx_facturae/report/account_move.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+
+from odoo import api, models
+
+
+class Parser(models.AbstractModel):
+    _inherit = "report.l10n_mx_cfdi"
+    _description = "report.l10n_mx_facturae.account_move"
+    _name = "report.l10n_mx_facturae.account_move"
+
+    def _get_report_values(self, docids, data=None):
+        res = super()._get_report_values(docids, data=data)
+        docs = self.env["account.move"].browse(docids)
+        # return a custom rendering context
+        res.update(
+            {
+                "doc_ids": docids,
+                "doc_model": "account.move",
+                "docs": docs,
+            }
+        )
+        return res
diff --git a/l10n_mx_facturae/report/account_payment.py b/l10n_mx_facturae/report/account_payment.py
index 325f895f3099bfa4c5f1b7c48a6fe897e02f66d6..1cd16ae961618a584178506178e2da3a41465830 100644
--- a/l10n_mx_facturae/report/account_payment.py
+++ b/l10n_mx_facturae/report/account_payment.py
@@ -4,34 +4,32 @@ from odoo import api, models
 
 
 class Parser(models.AbstractModel):
-    _inherit = ["report.report_xml.abstract", "report.l10n_mx_qr", "report.report_aeroo.abstract"]
-    _description = "report.l10n_mx_facturae.account_payment_template_cfdi_xml"
-    _name = "report.l10n_mx_facturae.account_payment_template_cfdi_xml"
+    _inherit = "report.l10n_mx_cfdi"
+    _description = "report.l10n_mx_facturae.account_payment"
+    _name = "report.l10n_mx_facturae.account_payment"
 
     @api.model
     def aeroo_report(self, docids, data):
         self = self.with_context(
-            format_float = self._format_float,
-            format_impuesto = self._format_impuesto,
-            format_tasaocuota = self._format_tasaocuota,
+            format_impuesto=self._format_impuesto,
+            format_tasaocuota=self._format_tasaocuota,
         )
         return super(Parser, self).aeroo_report(docids, data)
 
     def _get_report_values(self, docids, data=None):
+        res = super()._get_report_values(docids, data=data)
         docs = self.env["account.payment"].browse(docids)
         # return a custom rendering context
-        return {
-            "doc_ids": docids,
-            "doc_model": "account.payment",
-            "docs": docs,
-            "format_float": self._format_float,
-            "format_impuesto": self._format_impuesto,
-            "format_tasaocuota": self._format_tasaocuota,
-        }
-
-    def _format_float(self, amount, decimals):
-        """Format any amount to a given number of decimals"""
-        return "{:.{}f}".format(amount, decimals)
+        res.update(
+            {
+                "doc_ids": docids,
+                "doc_model": "account.payment",
+                "docs": docs,
+                "format_impuesto": self._format_impuesto,
+                "format_tasaocuota": self._format_tasaocuota,
+            }
+        )
+        return res
 
     def _format_impuesto(self, tax):
         tax_types = {
diff --git a/l10n_mx_facturae/templates/account_move.xml b/l10n_mx_facturae/templates/account_move.xml
index 220244120131b15ea46e75ff0ff3c6bd542b7d78..b0a4a8b7c20106ec9b0da29b33abb0cbafd3fb0b 100644
--- a/l10n_mx_facturae/templates/account_move.xml
+++ b/l10n_mx_facturae/templates/account_move.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <odoo>
-    <template id="account_move_template_cfdi_xml">
+    <template id="account_move">
         <t t-set="move" t-value="docs[0]" />
         <t t-set="taxes" t-value="move.impuestos" />
         <t t-set="total_traslados" t-value="move.l10n_mx_facturae_compute_total_traslados(taxes)" />
@@ -68,7 +68,7 @@
 				        <cfdi:Traslados t-if="line.impuestos['traslados']">
                             <t t-set="impuestos" t-value="line.impuestos"/>
 				            <cfdi:Traslado t-foreach="impuestos['traslados']" t-as="tax"
-				                t-attf-Base="{{ tax.base }}"
+				                t-att-Base="format_float(tax.base, o.currency_id.decimal_places)"
                                 t-attf-Impuesto="{{ tax.xml_name }}"
                                 t-attf-TipoFactor="{{ tax.type }}"
 				                t-attf-TasaOCuota="{{ tax.TasaOCuota }}"
@@ -76,7 +76,7 @@
 				        </cfdi:Traslados>
 				        <cfdi:Retenciones t-if="impuestos['retenciones']">
 				            <cfdi:Retencion t-foreach="impuestos['retenciones']" t-as="tax"
-				                t-attf-Base="{{ tax.base }}"
+				                t-att-Base="format_float(tax.base, o.currency_id.decimal_places)"
                                 t-attf-Impuesto="{{ tax.xml_name }}"
                                 t-attf-TipoFactor="{{ tax.type }}"
 				                t-attf-TasaOCuota="{{ tax.TasaOCuota }}"
@@ -101,7 +101,7 @@
                 </cfdi:Retenciones>
                 <cfdi:Traslados t-if="taxes['traslados']">
                     <cfdi:Traslado t-foreach="taxes['traslados']" t-as="tax"
-                        t-attf-Base="{{ tax.base }}"
+                        t-att-Base="format_float(tax.base, o.currency_id.decimal_places)"
                         t-attf-Impuesto="{{ tax.xml_name }}"
                         t-attf-TipoFactor="{{ tax.type }}"
                         t-attf-TasaOCuota="{{ tax.TasaOCuota }}"
diff --git a/l10n_mx_facturae/templates/account_payment.xml b/l10n_mx_facturae/templates/account_payment.xml
index 4203c948b307d5d78aacbbf16fd57f9f544573f1..eeec6bff4712c47cf2fa61b702326edda8cf65ce 100644
--- a/l10n_mx_facturae/templates/account_payment.xml
+++ b/l10n_mx_facturae/templates/account_payment.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <odoo>
-    <template id="account_payment_template_cfdi_xml">
+    <template id="account_payment">
         <t t-set="payment" t-value="docs[0]" />
         <t t-set="residenciaFiscal" t-value="payment.l10n_mx_facturae_payment_compute_residencia_fiscal()"/>
         <t t-set="regimenTrib" t-value="payment.l10n_mx_facturae_payment_compute_regimen_tributario()"/>
@@ -54,12 +54,12 @@
                     <pago20:Totales
                         t-attf-MontoTotalPagos="{{ o.l10n_mx_facturae_payment_montototalpagos() }}"
                         t-att-TotalTrasladosBaseIVAExento="traslados.get('baseIVAExento', False)"
-                        t-att-TotalTrasladosBaseIVA16="traslados.get('baseIVA16.0', False)"
-                        t-att-TotalTrasladosImpuestoIVA16="traslados.get('importeIVA16.0', False)"
-                        t-att-TotalTrasladosBaseIVA8="traslados.get('baseIVA8.0', False)"
-                        t-att-TotalTrasladosImpuestoIVA8="traslados.get('importeIVA8.0', False)"
-                        t-att-TotalTrasladosBaseIVA0="traslados.get('baseIVA0.0', False)"
-                        t-att-TotalTrasladosImpuestoIVA0="traslados.get('importeIVA0.0', False)"
+                        t-att-TotalTrasladosBaseIVA16="format_float(traslados.get('baseIVA16.0'), o.currency_id.decimal_places) if traslados.get('baseIVA16.0', False) else False"
+                        t-att-TotalTrasladosImpuestoIVA16="format_float(traslados.get('importeIVA16.0'), o.currency_id.decimal_places) if traslados.get('importeIVA16.0', False) else False"
+                        t-att-TotalTrasladosBaseIVA8="format_float(traslados.get('baseIVA8.0'), o.currency_id.decimal_places) if traslados.get('baseIVA8.0', False) else False"
+                        t-att-TotalTrasladosImpuestoIVA8="format_float(traslados.get('importeIVA8.0'), o.currency_id.decimal_places) if traslados.get('importeIVA8.0', False) else False"
+                        t-att-TotalTrasladosBaseIVA0="format_float(traslados.get('baseIVA0.0'), o.currency_id.decimal_places) if traslados.get('baseIVA0.0', False) else False"
+                        t-att-TotalTrasladosImpuestoIVA0="format_float(traslados.get('importeIVA0.0'), o.currency_id.decimal_places) if traslados.get('importeIVA0.0', False) else False"
                         t-att-TotalRetencionesIVA="retenciones.get('importeIVA', False)"
                         t-att-TotalRetencionesISR="retenciones.get('importeISR', False)"
                         t-att-TotalRetencionesIEPS="retenciones.get('importeIEPS', False)" />
@@ -92,9 +92,9 @@
                                 </pago20:RetencionesDR>
                                 <pago20:TrasladosDR>
                                     <pago20:TrasladoDR t-foreach="o.impuestos_dr(invoice)" t-as="tax_move"
-                                        t-att-BaseDR="format_float(tax_move.tax_base_amount, invoice.currency_id.decimal_places)"
+                                        t-att-BaseDR="format_float(o._l10n_mx_tax_base_dr(invoice, tax_move), invoice.currency_id.decimal_places)"
                                         t-att-ImpuestoDR="format_impuesto(tax_move.tax_line_id)"
-                                        t-att-ImporteDR="format_float(abs(tax_move.balance), invoice.currency_id.decimal_places)"
+                                        t-att-ImporteDR="format_float(abs(o._l10n_mx_tax_importe_dr(invoice, tax_move)), invoice.currency_id.decimal_places)"
                                         t-att-TasaOCuotaDR="format_tasaocuota(tax_move.tax_line_id)"
                                         t-att-TipoFactorDR="tax_move.tax_line_id.l10n_mx_tax_type" />
                                 </pago20:TrasladosDR>
diff --git a/l10n_mx_facturae/views/account_move.xml b/l10n_mx_facturae/views/account_move.xml
index f7d429a9fef886ac2a9b461559f94711a6428e31..fd284480637fc124b089289351b9e171176c8648 100644
--- a/l10n_mx_facturae/views/account_move.xml
+++ b/l10n_mx_facturae/views/account_move.xml
@@ -31,6 +31,15 @@
         <field name="inherit_id" ref="account.view_move_form"/>
         <field name="arch" type="xml">
             <button name="button_cancel" position="before">
+                <button name="l10n_mx_action_cancel"
+                    string="Cancel CFDI"
+                    type="object"
+                    class="btn-primary"
+                    attrs="{'invisible': [
+                        '&amp;',
+                        ('state', '!=', 'posted'),
+                        ('cfdi_state', '!=', 'done')
+                    ]}"/>
                 <field name="is_cfdi_candidate" invisible="1" />
             </button>
             <xpath expr="//header" position="after">