TodoList as CustomElement
Tags: dml, javascript
Published: 2021-08-10 11:05:58

Cherry on cake, we can create a customElement from our TodoApp in few lines :

```js
import Todo from './todoapp.js';

class TodoList extends HTMLElement {
  constructor() {
    super();
    const todoapp = Todo(this).init(["first todo"]);
    this.appendChild(todoapp);
  }
}

window.customElements.define("todo-list", TodoList);
```

```html
<pre style="font-size:1.2rem">
  TodoList as Custom Element
</pre>

<todo-list></todo-list>
<hr />
<todo-list></todo-list>

```

You can see it in action : [TodoListCE](https://flems.io/#0=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-g-NAoYey0rpHkHlQAQkcNKuQmgbD2BSB5K+CqHJzkIMGQGrATAgAkOIJJZ9tx2pVt+EW1JMiTToHQTIJqqRpQAAoAEksCGCwE5AAshyUQGA-XStaha1qaUJVkwtdNKw254AQCpBILGOFYB6SGGK3e3V1aJosNYFOWN82lGIJU6VrBCBFpmjqxecbAFUg6uIOtVgG0ZO-HQU8TaqQWokX9KAylKBdK7kqwGUAB0FMkbpEdnSKbqngDmidXEA2mEHUU+dY6ADErA0B0CrRKqkehp2sSHduxde7WCVr7YDRQZ7CmQUvVjHdKB3poCPfKKk0iraPtncOjpY7f2yL7TcPgmF4D-ovUBq9N7D19psLAV+0Gt2waxkh1+X6T2jE6duVDz70NaGvawVg8BQO5u-T0hQBG51EeoxRid0iCm0cA6OxdzHQLYdlBB2tG6Z0wfY1jakwFSQMHE4wDAdA0ArUo1SbcPGgSsZfeqH9bysBoDQHgDTWmdOSZk0eriFqiNcS-TI4zQmgIyKPfwYMp7TBEds8DONDGLMLqxgxo9ehcPkHww5yz3mqC+aPQNTmFrW1aR6n1ecg1SCGbTRIcLUkupReEwl8QR7EkWtfhMYg3VItpui4kr9D0wDZcqrl-LBbeqZtK0eyAMAjAbwq+rKrqX3yNcY2KySF4GtwCg6YISxNxJQh7jbard1elgEIIi2LZmtSJo4AoDjw8qpYBfLJqNogEK+YHUI6w23Ajbixt+F8WhTsXi0DgM74ExJfrTYQQ7u2N37cezt47WgUBna+5dh8N3SB3bjYQJ4VAglPb8+I174Osbrcu7D87-3Ae5vEJ1MH72kudQO+9rGENPtneu5d1TomJPiYwDgHAm2JVpt8Kj8HGOO3Q60H9y7uszu46J28knknyeU5wqQcme3+eVVHmrOKlBoA6A4FhuNPByB84Fy9oXi7UJxoB0GOIgvyaWDVxAOIWNmf1fhQAJQQrrvjkOlfa9N3rrQEMj1lMwhah3yEtCw8y87p36FylPTZ2dxwvvIZKrTd6r3jvTDO4ySr3NwPuqwFDaRHgFrbow4Erm26Se4lkVt6n6Vt0gikrbbEhPJQC845z2K26Rv0sZ+L3KdNqls+B6p1SeP8T8+sEL+ATPd0EAd8j+X5trfKxV-rzX+J2v0v96b5WNHR2LXXngPKZ4u97pXje0dst+i7i49xxd5m8OROc8YMfugGAUAU+RJYR+thV9Y4383EY2+A8I8u5YA-amxMn8k+fx0IU7++c30f0b2AL3zfzO0P0-xJzPwvybSEUMGPQYwAGp40ldkD19fNpU9AQp4D5dKo0DwdkDv1EDTBr1b1KMAg9BuQe4LUhtRIRsesbYetLAewAD1RfM6ZfMAc1AbY5JdAFYlIVIMN4IBpsJaQU1FAj0bAKoqCpJE0e4Ds5QeBngsZT9P040OkYgwAeAZCLw5CpJLA2IPtD06phI6CsYGCNp5CWCPsKBtwODtwuCj0esaDQhhtzCxs40esglhD4BVwikXDTCxJ3CpIeD5J+CR0aZ5AhCNItIh0nCe5vCNJvgxDyNE9BtXCzDRsQitBeCFIBChUG91IRDtJIJJDctnh7MQBrgbAgosYF8l8V8+DQJgZWYBxd4SQMNyiWjEkVCB9xAMQIoLVcZI8XpRBU168YcCcbYTC3Dm5Sh6ZmCxtwgotLApsZsYtOZQi+DFIIjJQG9QtlsbZk8mdy8ewsC4Dw82jaioQIALxl0QZQ8XcftkQ-90CPsd9vsztMMhpcDSArd1d1iDdN1CNLMSNSNWAXibhyYRdKwdBxcoAtBbtgZe8G8D1Twejbce1kRFNCBzBSBTJJwAcgRRIFBSRLA0T3hySe1ZNkQJwxVRJMIYg+AaRDBD05wKpWS8AH0NVoRA1aTPQGSqQmSaRa0aBBs+khhTAj5JSzBmkQAHJTEhQfQggIMhTmSLR6RgBxAMBCgghfNKoogkp6QMBCAYhFRZRSQNUsBHQ8TSRYZm5xxVThT4AlQFZyQdTgh9TSBDTQ56RtZBTnTCAaB4AmA6RoUtB6SnT1TDB4AVhFTvAghyQuS8AeA6RgBwzVwAdhZQhMyxJyQ6QAB+cQGgSMxk9UpgJwbWUstUmkAAMlrPgALPmirIDPVPrJ4ALL6nEDjICW8HJUKEAV0nzOAFhkMAAHl5QDgEoMAfRvUKBCgF4xzWB8yUzxzJzpyfQxztweA5zyAxRbg9A9pNg-lrZbSJwIAtByBFZUyVQzBezTBtYF4rzBYaAIAmB6z-MMRSAYhxgbhTBVVtYIB6zyRXymAYzQKMBByoB8y6QVgezJlvA8sqAkz7EMBIpgA3SKwMQIMBpnzuReywzaRYpJxSRULIp4KpYIy3Ibgi5xAuS0y6lDRMIHzDAnzFZxBgK20aBxBQz+S7hE9tSEBMJ9xkRbSLzYTNSJxSAYzOoAdxhuQOBFBNgQK3y6QMBNBiYBpUwMA0pTAxUMw3TgxyAJc6BtZDBdxdJfMaBSBQzgALKjtrKwK4sJxyBDBAhiBNCzgMAjY9VPJUwSA5Q1BWxiFkRyATTSBiBWLQK8Awq5BOkEJDBSRqpP5gBTLDBLBLAeB6z4Bsrqplo8B3LPL5AxByoMBllFAoAog1Zs1SRyBYLRhwQ3TIpwyjKJc6E4KvB4zxxyAEIoggkgkky3gbzTA4F0Y5RxgURRVXJzLKwjsMBCrPJvKvFfKzhUx5jngIw8BpL4B-R7LfN5qVUirtSfQVr5BCBvg9BfBmSjzBB-KyAIAgqIx6AHIIB1LRgY0U5HtyNgq8BXqGhSVWLfr1Fl0IA+ALU4qEYLw0pSAMB4JNB5A9oAhlZKwRhbhki8SLQIAtq6Q8BH9fBLh4FkZ4zqoMLgagwwaeB-RTBY9+kKLtpWpBq0yJxE9gB8VwzGzUw5cpyJqQBHzRR4F2KCzSQBK1Lo0HBOb1yea+axRnycrazhaYycaeATSU5WKla6QkBhaVbBi6LUy6bCpks5LaLkybyuqIBhzwzuypKYrDVcbDB1VkQ3Ssr5ba1czsy2EszhaspUUQAuaEoWK2LBY0y3SJzubtTuYTy1KhKW1RB3A6AmaBS1yw6MAI7TYcawbQ7pyh4rZI68BIrVVD1LaMA8SkgQJRBSRibNT87D0zzPQoND14AVA+Vo6RL4BEDEC6RizYBgymAmAAK+Ae7gL87HBHQ3TiA6QnaE67goNWbHblylRa67hyAHSbyJxa0eAaByAHJpLizCAWB4AaA97DBzbSB6rYBwQoMT6oqeBeKwrqxHs06VgGrtA764hy76R8ryAVgi6S6y6K7ezhzJ6Ry67DBZ63SF6bg7TPRl7YTV7PR17N7t6oq96uTD6wKT6z6L7j6w5r7b7Ya37H7n7Lz8GH6P6cav7F66YHT6QptcGYqSHy6pse7HRwyKHeybjxAgkDFIG6L0KnaRxYBHzCLNRtQ57haBHtZmqiLRHmbQG1gIAk7pzU76QtrFHxgU6gZI7RLIH7TYSIAp7Lzj6e7kQYbKxiBh4Ko-k6rgKN6t6oqt7YLwyeB9ahRDaQJxAFLjahq0z2bZL3Gkz2BOHuGqo3hizmB1aXHvADhjKeAxzX5GaMLlzVUpGRHvAMs3TVV6R2bkQ5xE9M71HU7TydGG4V6DHpKN63zsTHLwKbLv7pG0nInWYNR9BhzRyAApIJMcvaFWxQwyRSJM4cKgPACnVczZBR3maG1k7RqqCcLCoO4Bpe8CniypMU3mwwcgYC6Sken2pgVmuEMxixl02qukTZ1knGxwbWUgIW8MPoEAACjZ2sm5uU+5j8kALuF5+WngRA9ZnGhRuqpAL59Zup1JumRp9COcjUnx+p0wdQTQTwEARAnIA0PQfM4g1QbIOF5RLqodQas59M+px4QwUNfcWG3zS0hgSKPAYl8NHF8QJyMAOkTIMARp2UIkC2gl6lnU78gUfMxplgnhqFkFzl-lqqD+rqvgRUdloVsNMqyVsV9hwlZ6KV4izl64bcclvAeVhC7qqkJVzU8MzlzpXVugXls2ngE3SDQalMwV2KVVckFQSKesu18oPWrq8sAHSsK1m8y2h1ps6CdwDsrsxpyAHgBJg1mVkNxm4NvgUKXhm1sFTly8KNrqn0YNT1uN-FkFqDPaTQ+Uc5Sl8QAsxN9N+ipAWMlN2kUNWN+izN4i7N3N-NnGwtxNmNxmstxp64SsLx+NngYAXuOi8SWMjt2Nntxi3pgO-m58wt1STl2lukNFpRVYCt61Ed2t7UMdpCCdmWwW8kVit6zSi0cPKGmUiMLly4aqPAHNsAPN0VrKaCMF0gLM7OjUk2ntrQVqhEtKqKkMzs6CHuxp4HcgXCd+t98QFQOgAspYcoRwAsxwaCJyOl0kb8SwKwLVyiwD4DrAZVsFMDiDqD9wGDuDsDjANAAsoNOl1SRwN-JyXdqj+kBDxptx+SxSrlSFtdtJjAA5mISx1KYwPjiMIsk0s03QXp900SXQX1XSKSJc3j-j4hRAke6CIT800TwSiIcQSTiqC8GT0wPyeTkexpiqHCIkF97x4AKaiAExgl4mtMqanetWQgG2uJI6xz9ep1yz8x9kUgfGwQBBUkfR36wwPGgmvzmzjCwwQZ2AFM-0bU5ZWAFF0gGK2C+i3G+s2LvYeLsOJLuCs29OdiDWAAEQvnVjoXY9MAsHy9EHqVuFMFhL2u3H9FszTQ5BuHcQvH8B-NEG9RifEEIDjsa74E3ipBa5humyrY641m667b67oEadCGDTl0UqK83i0rfaa+G8KBhrgVIGxBpGKtmuk+XNMAW+wQlLpDjsabzR4F3jDYJY-a0C-cLYcG7K6sfzHKCoZS9YMYUfyfDs0a9umaga7AdP0YWcMYgEcuRHu7oAAvAq3qLMQbh4rOLLsdsaYBy-YagABypFOq8ftvjrB54F+q2pirtsi7wEEfVTwDBoYEisPQyZSeIu1NcBfngCSEvnkBCF0EUHOVMEKE6+q5+piBxvu+Z48lZ-Z7OC58lF5-ACfmXV8yITwGF9EvYZiDTuACgx2t9Hq7Qo57orbRjJ1LiVpGAuVivJrVpAAE13ANN-RUx+eNZBeWKjeF4hbtqPTOuXTnrvLSgzgAANLSG25WR3sYoM5gX3iAM4K35SDWnB5WcxqP+QQPvgYPyP6P2Pin-Hgqw6xa9CSXznsoHnqqPnyriqtKUQPAdVHGhary-P-X6X4vh3yrx+S+NKVgKv7Z2v4q+vqXov+mEvuXuBGINQCvzvmv3PuvmAAv8QRvgf1MWBEYVviUvADv6vnPjyxanCKAYWP+Dy0gQgG4JPVniMWCrqkD9MiLm2rGynjVbvsX5fmfuf2X0P8voYSv9f+-t6x-hv-vl-lvk-kMDX5d9J+xVFnpfCf5-9B+i-eACPzH6f9QBD-CXr-257z8bo8vZfu33H4b8jqkFCgtrQQDeUtQh-aSuKTJQUosW7DZcuhVgBm9YamgfXkV3IHTwL2pfTrpgLWau9+aQtRPCHzL7h8mA6fZPtrkC58CveAgoQeIBj7-MFaCfP3sIMS4KM5BSfKQZYDqrU8r+kVLGpXVfbABlaf8HEniTKx88iShAEkvAG-DQVTAiBcQAuwvDvBrBbdI9u8HjrKJhaxPFRoQHrJIVYAYULKMCyZ5lVp+KAmXoP1D7O8hgMQbAbF2CF99UBsvGAUdiV5RD1++4UIABwMTDJ9WBLGVCMDlTPAGGpIXIZS2KH5CMALdWOs9DoDAVuoFWVMAV2DRBBBYj7MdKUIpCgQ4mlUawg6XlBv1hkkYYhEqllTtDnghqHGsUI+rjs1mgdQtl-xOqpAzgF1X1NBXpD3tXu8oYcmsiNJn92GPofoexwjKSpy27DBoUEB9BBJvUJNcMm0IKTlDFAMdRpqcMfwXDcWpgJ4bSAuERhEm5IdwDcNAh3DhKogOkLUNuCpgkgLQxoLCUcFot3g+Q1ol21ph5s8MJKGwFxC0CfCQqRDW0siD+EFCKh7gDLHSAmG4jSWmiFhjkKOFlCKhjwxoRrGeAvC20FLC1Gm0XBIQ9EWwyhF8PDKnDzhlwukABQ4q1kQRRcN4Y0OaEUBF0uIyXPYHfAx5xAGsZmF3EQJODUYebDGhXBsEwjwgHeYXEqJ5EfC+R4wykSMIBEPC3WYxUCAyJrayN9RnDPkYFyLjkiQWpwukS8KJ6UsIAjTQFIYlo5cl0qGqNIiAG9G0IvhlDBRvTxUDpN26wdZciSIqEqA8Wwo+oWKMqgSisYUojyEFQRiwlrgagfoRmHlAFhngKwYkcaNuG5iL2uQVkvWVtEvD+RMZeskmNFFNDUxrQssaBGlHaBIAcohUSzGsFfNmoaom4I2gRYqjpQOoxdNYNrGGiAhYKOMfcP3CNM6RYqWXBVEAZHciATFL1NMMnbsUDGUGI2P5XghEInRdbTjjwAH4lRfAjQwGrGUtostksiNNcdkJBZf8-Yj4pGqa3YaP5sQBoOUL0IUB-IM20KDdsxR3HbtBYZvUBldFjI41yuktYKtLQFqQTayv3DRnoEjrF0bgpdDWP-QQpe0weSgmgDfTEaMUIo-5CLp3RNK0hfxNoGsBaCJ76NkQz9UmqYRu4ohT2v9XCcTT4bUCDGvAk0iJHYnIADKy5ANBF1NH7h9xEXH3oaDAAXsFGG9RwIILkkXJtSf8R-LuX3ItM3g+jOCstDgpNslx0yLxta0IluVEBS1J5LjzTpWcQWP4v8QqHol-IsaqZTVmVT2AVUqqHAaCgF09FusvEX3cyW+OWoLD5A+ZOycRWdr+UtxW7ZCR2VeqVhLx14oIBFyQCvVyqukbyTVVTI405aDkuiYBP84pd-J7DTKVACyHSTlxq4yFmI2KFEijhHksUFlOqrQVrYLEjJl-2356BhGxFe7iyEoDKwjWqYSLloG+AUEoQRSDUdqVbRRACijoLqfgPKnZS2pjjAlscO1ZipyplUg4cUILLFCmpXk1qfmSQCLSd+h0ocioxe7sMngrwIKeGW2lJRDxvDa1jsO1bgsKAagICboOVpcTy6xNG8m6VAnbikJz5VMjEOgqHi3grNV6cxPPraAgZvtBCXFLBnfdDAUMlMngDQnPs-kqZZ6o6Ahn+dMG2gQmRjJhkdMumPTJCPwS9r+C3plFFsFpO+lmdtSSUyqFeJvGbIPpe5ZmdazBaeSWpPk3mcNSRlh0KJMwxsQgFBFUwIRDpZaa1PWIKUD+dwEPADkEDLYdApMEcAiTzaXlkZIVMMaUzB7lNQK2JC6ZVWOlky1gp9WCoxzCmgg9Ayw7Dt4DmG0hceSwlYfTO2iFjWmddVcuIH9COBAeszKZmB1gi2CO6UGW6Ye3ERylTxYKDaZRR4CKhNEbaEemDwGwgAUQlDRPIeh4CRjkQXzSOd8wmYgAQYihIuORXP6OBbuILaOamBLBDBQmXswqKICw7ASCW9c4sFgDSjNzGmogb8LXOIpdzLU34XuZqxblChRAOAIeWChHnTzx5aHbaKIDQCzzvA88tAIvMnneBRAKANeWaDunFgUAW8-ubewOHzy5SE8jtvvJHmj8m5V8s2k8BpAJNZGI8y4NuPoqRSwU+giKoDWVrdQ20utADseJvnmgjxEGE+V1XWpBTzyhgEeXwDShE96QX87wH9W7AxlfqHbTQKAsPlVFNAi8j8c+P8FdUUoHcuuWAvSLBhIF7DaAPVAzavyKFaYEMFvJQV0wCBysWgmJAtSVh5imkZVKBEQUrA5wPCysPAAK4hhj6cYX6jwF4VxhJFIYVXtq0ICkKa24ZDkRaBUWRRt5kuTRW+3UX+ddF2i1nqQDoL7z9FGyLOTKWqLtE5AwmUYByBDCyJskt4A8A9yyRjFJ8biyGN7X0W0LQwcbbRQBMKChsyFw8xhUErkDULtWpACJSEpNrE9T6YPVyrEqTKn07aYVVqKwrvqUgzguPdhaSxqIkgLUmgEko4rSiEAClNiwMRK0P7DwFA5Su4R3kMAvg06uND0moGaWhQ3JFSjxaPgyUYJcYx9OwQ0t+Im4ASrFblsQH84up52R7BpYYJuDGDtgpg8wWSQpLMw0SAwmKg+M6g5K3kL0uBhWDgWMLW0ey3ufHO8DRTXqB7UmNmkqiUTNWwFV6s+zVqYKuqhKCDFAAlYIBfAyWPZTAobisU-l7CA5Rco+DiBaJ-45ycVPTK+YZspgRwOUtLS8xXidgb3L8VXw2xjF1hLGAfEIRHEPwvSjNOdghj9JcaNExyQBKOZY0PR98DWKqUvr3xuYI-Y+gdSNwuk5orK-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-xc5VCWywk28SXKW9xA-vb48CfBxsnH8VvNWtBG5PvZaTR-EwbxjhpnBlEJOt4vUZw52bcT4OFYLwu32g9CTfRysAMfLqvGujIx5fv4EZpUn1jvC-U4xO1MVKwjPTaY+1XpKiKVTsxnU+sb1PkADThJ4086dNN1NtjByhJXIzTJvcHNQICLY50S7AAUTsAXrRqgOLC4qeqpTGLNzNPeURj6pnchMZxow8PNkW2MxzRZODcB9hJnEqsrjaGn1KuEbPfdqzMhoZWfqTII4CfAJmozVzQk5oG2OZUXUeAVYm2dNOCmHTb1bYxJlNPFntUm3OhBrRcOxYiybx5s7RVbNYAuSHZ2c12abMJQ7TBOsM2l2RMcBfB9Z+Y7KCtN5UxUU5lU6owQ2XRaQBmwM+RpJ6hnNzEZvOrFlvNZn5g+VdM+WcwgIACTwJ3Mxe3zNZ7SSRZps6Wb-N2aKznLas7WfjqhHxzS5lszwDbPznMZ+jbs+aZGOHn+zO+wcy6WHPVRRz5RqC5OeXNWBYLs5zSBAE7M76kLiZ9Y4ee9MBd7ta52soSbDN5ViAEACKggBVO+nTz4gc80BOU1Y1rzVACM-lTVNjGNTqZ4s5SCmUHK2zDAP1NaVXObn1zPZpi9ud+O7nFjYqFi2xdM4IXOLdFzc6yrDP+gqehJp0y6beOSWvWMlvAHJYTP0XGLm55i7AFIBTczqqxyLSkd66GoVg4LHrgk2SM9cKl99cun22gh4BB2Bk64PF2VO8M9LdmsM0byMu+gTLbx5M5qe-PymorBgW01dPiuKWGLG55CqpctMaWsrMVizW5qgwBzfQAV6blHQXGx1sTbxsywfQj72DWrggnqZZruBpzsSDrJzdiWjGunRF+pg+jxQwDtXuKnV22Yfw7wxW-RJ55mtiTytUBErm54ywGNYoxc7NnlxziJfGODGEzuJq8uIGVNuT9LVAJS8hfWMqXizfx-c7NdOs5X7T119RKz31NhNBB9gz6xgC6u2kpqxq5iZGKc1v5mJ0Y8zpSDpiJViyIZCazYODIKcvrjLWcwoxAqw29A8NtuspN+vI3lrPZgAI5MkseDi4gLEFICXwPrPdCa5qypt6AELsFQk4TYQgA5csZNim86ZhtfWab6N7m4jepsw2+bPUlYHEZoucX-TfaoM8T2ACPmGApMCmA5lixpQcsYiPrEYeEufniDxV1tNiCiwZmelNwYs62loS8K9b5sCrIbd-MWhvGg5wCxqWAtvn4AlZklmBbrPFmwzqGpMuJmKtDnhxeVJNK8MsWjNxEokARQmotSrhQasAL4Q5dRNGAkFyJiwDGTRZKjbBR7JUZ6JIivBRW8S8Mcedy2EBdw8oxhmmTyzggoO5R1i55232n0XiRYnJn8CeicQaADZsCgXQJ3UX4lRPGu4WPZDPB674ILAE3ZbvZ9SANALM2BRwBaZ7tHdoapjNPpwUK8lILOxxYYDSUTzBd3eLhNB6l3tA5dyLZpcrvsXvT3duuzvcbuj3h7bdnEzPcxld3f8p9hu4PYvuxZW7q9sew7YntT35TN9onnff0mvdTUvs6ehZM35eUfK9svaANU9TdgfanqDMOGTQnKM1Kf0hWvgeVhP76JkD8RkMyQU+baDj00OJS0Tn01TUNp+mEA8FggPcB4D-VAjQGrFgDQNqTIHam3AOonUVIF1G6ndRwOZSvC+BwS0Qf-djSKDxPGg+okNbCpmqgauT1wcvH8qBDq23lK9FnrrRVm9wzHJHAtqnGnHBQNNj-mNNKAL8tRyPMoBaOCWytNYvo66qXbs0j+HLX6bPMBneLoQZMsAz25QBqtYidvrtqf1eOqkDC3BTY6gCP5vHV2p-WCuVra3dbpgFEqxr3YaUQ7FoTIE0CpA+0u4StDXTVQCMgAEA7jtKLk4qrVaJ5StRpjrg5s53saSS3Gln3siA9XKh6cgMDYqGhVwbtabJ-LqGBal+aYiMp2Sr5TBW-BqDeHhUpeUH0t6akZnX+hR4sBXKlzYCuafA1TodVg+l2hgFY6Qb5ndK7bJBmPqOglkhgU9YM8iqHPpnjoPgJk8hmoGqoa0kFrAEaZjLJgJmmRBQ6gyuzxAuPc6oeWUrIKmqdIShnMxoFqOxrL1ZcsrWXjLpQtlyyZ0O1e4GJl0Dz8gL6l0cvOqHi1eYbQ964XUbqtU35-84dKAuzVwLsRmC8WeQvQWGQ8QAi6edWwjHZqt5x86xffP+dXtPF7AzRkb1lmbpZ5aZrMqM8wUr1cF0s4YCeiKXCL0dfrqF30v7Znz7FxFOikb1Ybgr-HrBQiB6ABQ-ISirym6y0hcJNF3fXwG3B8Bd4UIHV+-XWDqzSYUEUwJyCSB3q8AYxM5Afwq2mBYjZwFDvzVMBiI4urWIKJkCOByAcm22A-rSEMDbruQlgB8MokzhukYa0xntvi1NLTwkABro112H5RyAL2cNODm8DhqD2iecNb8OlLgr7hbCYhuwuCIlGkh1wV43wN6nFE3BVU6MX5FjAAAk6ZFWr8hWDrhtFUkL4FtMIBqupLNbHwaSFVc8se9+Bt2pxw9p5l6QJhhVDxUdC5NDAKb417uW7HKxY8EUt0hcwkkVCDGbaDeswGYnultUFKdyVm4veUhZz2pAt8TNcjLkp3OZR9nmS0WsvLl7Lqaye9epnvp4QNS99cuvf-vKQesJ+vDMFhe0DJ5-Rh5yFpB2njZoDVsRTDC7WyXS1wfRBJFo2s02a1nU10mWAAWuAgYiG13a4dfkwZst5V1zNAXievqaGXH1ySD9eH9YI9K4N22jDcRuo3e6sYiEpSoZNtScbkt+wQGmEDhppgH5JqHWLWD6NvyLUdJ47eSfUNc2+Mg8ZhpIf6yaniEamChPaBZcdwcwJBHU0pkGYFbnhgp7iBKfWF2pf16GxQM6kePu7fA6YBU-ernyfetD1MDlrufhInnu0-lVID9yYPtIduTnd32a8IRmH-CWmVQ8+eMPKHtYK5Xph2F-ejQkqIw-ZWE3MLWS++AWB371IFA9KnZ2FzdI4BHydm3L3oAk9y1XUZXyLfl7iAxjUwLn0GYrG8-oeRgndeGGDzbQUzumcNUOIQdi8jBLPbX3z3q6EUchdXPjN6kN4tCDf2vxsZLKF7gpENNPlb0wOyoQiVevI2gbWCnfK-lRtvSYZLrFWampgSPrGqvhBYyW0gMvOdcQKcnJiphsQxAAaI9RlLeu8svrmz6vuolDkcaAX17vjZwTJhaQV1Jw9i+Fk76EPCbhb5F6lgk04KrCq1GoFg+0VECAAcgLL43DAQSJIEECSBRBfAdMTYFoG5BG4xywaHQMD96SL3uejQVrSVCSBG4kgk4fmiAm2DfKJSGPtStqgW+yb8JklaBjJR4xen1gawZXZsFLB3kEKqnmbwt40-y-fP5AZb1tQA40+uQtIAANJCOKniS6vbD88-w+goiPnDyCxR9o-yQaLbH0FwMRaAXI0IBIEqJVFaAggvqYNL6mJ+IriESv-RAL4R9C-gHgjjCSBXCaVJmvrFXccQz5+ef6y833z7Paxrz3tlQPkH2j-B9H29fSXMHubnyegMY-cXrD0j6dr1lg-uM+q4CLjoHu1Gf3EPx6vNyvQximgLuN1cocN0mnDVsG5HLjrzOS5bzT5ek9xrfNObmPi1Bj8QIcue6TATH6YAx+zid5QX9H6YBt-Bx7fUIGEM78QJKhffIwf3yb81LOf7yrnxWHygL8jB6yp-jz-oitZJ-suFPADrHvORtpFrIDXxUfu8OE6RgMof8d7UTw+gwdf8AcaBc--qFDoO5ai4oA+blGbqB2OMDkheKNsIxq9E3ijbRvyr2h-5mC0AJVDf+CoI6BhUSuiABEkNIGlD9KH6nbpFKpgCUoOKbfEMBhU42m8Di2n3Cr50U5nC1hIUt5o9i+YFrDSC3mhAbtA2gfjngAhs8wIIExsKEAwB4YSAGFQhs9rgliSBbXHgDPsBEPGb0MFvLoQMAsVKRino6gWba3ArWLABC0GgYpCGAKAOSoSO7akcwq+BBnKBnAYiDlh6BSKqIimA9RMvhdQnkpSA4Ui8BgFa4dgUhQJ6DeC9AYkUeM+YAUQFLWTpmlNL6DLq3aF9p-wZ2qFABcieI4AHoMQQxrtGbaC0q5ScfIYG6EJgQupG8sQV+CvMFEmAHsaaQfbwKMSQRSwg6VRi0oJBhgNEElBhAhxoZB3tCQGECWWE4H+4x7OQzVB+4BahVChMDQH5KHGgipuogwXxQ6A6zNEaggRSEhBRA8gpS7LmYKlAYMqgyhUq4w1HNkH0MvARxo9KaQZsEiwmgdsEMqT2tnqUKx+mQG2KS6KUqXwlSIQRUg96N0oUqkjlYzqUDKscGQY2AfKAj6+ij0GP4XAWZpyaNbGFR4YgNGFRqw6aBgphUI-F8oKAAIXlT0MMIUmAAhe-iSAk0bpCCG7Y7rEa6hsHOuciYh24DjR4hVUFIGVgRIQ2wkhbXK0FiACWOjIqGOIaSDEhtVDSHpo5IarqUhIbGyGc6UgTGzUhPgd1DV+KwZBiMamQMyGXgaguohkhoVG8GQYwwWkGVqiHOCEJYEoXhjUhvAfkpZYLSoqFtcEoRCFAiiBIYE9SHwTSD5KKJJWrZBPQeqEFBNQaFBChNILjDEy3XlMG8BuMKKE8hV4KSEeqdoY0HKwcQeSA0cSoemgqhvmGqEMqpoSmpahTkASEGhhwawAXgloWGEGCe5OaGxhRod6Fyh1eC0rehBxnBSIhagLCHwA8IX8Gkw24ACGK+8shGreh5DKU6iW9PmOQ8A2qHNDDkYqFqgcquqNK6FCH9Bhqbq0vNpoLkBGuhCohGbpqSCiFYbY6S2MThADqaawN2G9h9svQI6aBGo9rmaSJl0bLG1zo8pCi-qgrIThOTlOHeGGmilI9hZQH2ESacgl5xDhtnquFA6F4uzIpSFqMohYyCEvNSkooilpJ6GpILOEnh84bhr9hVoLVy6OwRsAA+gxvmiEHuforU45y1DOUatSWqkqBakpthrA+ScET5rniyUo0JfaAzh-Ts0awI-igRw4S9YbGKxgmboQvLPlQYaY5HOEYuC4X+GbuMAJeEM6jYtuFCyu4aUDThQmilKUR34dRG-hZ4fgxtoK4S4brh35kxFhqK0s46Ock4exEURVEYtS8Rump5yUgDEYRFsypABhoPh7KGhIVQ7APTDvhB5J+GcRskV5TyR-ND7RrEaUMBG0g+EVeGzMEEQqSmqVDBJQwRyEUjTwRgCs5HZoKETfRoRd4RhHKwWETc51suEVZGCR5RsJEkRMAGRF7OnoC2HZo9YeyrEauvK2ENoBerNT7UyUZyoQG+Bu+4RkGUe2EYu8EaOQthDYW2Fs80rl+7m8JUQ2jZUOXqVGP0sUT2rmspUfWQNR8UXVEoGBKBeBEodwCVo1gwSu8AfKukFz6oaeyu8ANA7wNHLvAI4HnSHqIUDihywlwOqTvAx6FxDvAzcChpLerMHgDWqdFM3gh4YMMtFvEeAIWLvAfistG-Ey0TrhxA6UMeJrR6iu8BSK7Il-pSoEZIkiXRy6GtG5gKwLSjBwDKMoA4ATgDgDfg7KBsDcowgPyi0oKkBcBXANFH4BMwjvokAY+8IFOD7ARwBj4zgshuzD9g0vILCdQFVJEAYauPBEiZaahidCwoAsKaT7k9yLVBzgKMXyD+wDnGpTwoRcKszsAystYjkApgLxSqIwFsxE1UKMfQheAfiLrweU8QGAAfOL4TpExy3QL2DNQ2MWUDQwkMQkBqAilKQDIA5PHSgggf0cIDPQBEFgCLAywGsCgxWwN5SLgSsQFrKA3UhEgh6UEJcZjgJmAybaYmmIwDQw30cMD0oUwMoCD2jgO9CrALAJyibAygOoqrAQAA)