npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

push-orbita-utils

v1.2.1

Published

Componentes útiles y reutilizables para React con TypeScript

Readme

��#� �=؀� �p�k�g�-�f�r�o�n�t�e�n�d�-�u�t�i�l�s� � � � �U�n�a� �b�i�b�l�i�o�t�e�c�a� �c�o�m�p�l�e�t�a� �d�e� �u�t�i�l�i�d�a�d�e�s� �f�r�o�n�t�e�n�d� �p�a�r�a� �R�e�a�c�t� �q�u�e� �i�n�c�l�u�y�e� ��4� �f�e�a�t�u�r�e�s� �p�r�i�n�c�i�p�a�l�e�s�� �d�i�s�e���a�d�a�s� �p�a�r�a� �t�r�a�b�a�j�a�r� �j�u�n�t�a�s� �y� �c�r�e�a�r� �f�o�r�m�u�l�a�r�i�o�s� �d�i�n���m�i�c�o�s� �y� �p�o�t�e�n�t�e�s�.� � � � �#�#� �=��� �F�e�a�t�u�r�e�s� �P�r�i�n�c�i�p�a�l�e�s� � � � �#�#�#� �1�.� �<أ� ��H�o�o�k�s� �E�s�e�n�c�i�a�l�e�s�� �(��f�e�a�t�u�r�e�s�/�h�o�o�k�s��)� � �-� ��u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s�� �-� �M�a�n�e�j�o� �d�e� �o�p�c�i�o�n�e�s� �d�e� �s�e�l�e�c�t� � �-� ��u�s�e�F�o�r�m�H�a�n�d�l�e�r�� �-� �G�e�s�t�i���n� �d�e� �f�o�r�m�u�l�a�r�i�o�s� � �-� ��u�s�e�F�o�r�m�V�a�l�i�d�a�t�i�o�n�� �-� �V�a�l�i�d�a�c�i���n� �e�n� �t�i�e�m�p�o� �r�e�a�l� � �-� ��u�s�e�D�e�b�o�u�n�c�e�� �-� �O�p�t�i�m�i�z�a�c�i���n� �d�e� �p�e�r�f�o�r�m�a�n�c�e� � � � �#�#�#� �2�.� �=�� ��S�i�s�t�e�m�a� �d�e� �A�d�a�p�t�a�d�o�r�e�s�� �(��f�e�a�t�u�r�e�s�/�a�d�a�p�t�e�r�s��)� � �-� �T�r�a�n�s�f�o�r�m�a�c�i���n� �d�e� �d�a�t�o�s� �e�n�t�r�e� �d�i�f�e�r�e�n�t�e�s� �f�o�r�m�a�t�o�s� � �-� �A�d�a�p�t�a�d�o�r�e�s� �p�a�r�a� �A�P�I�s�,� �F�o�r�m�i�k�,� �y� �m���s� � �-� �C�o�n�f�i�g�u�r�a�c�i���n� �f�l�e�x�i�b�l�e� �d�e� �t�r�a�n�s�f�o�r�m�a�c�i�o�n�e�s� � � � �#�#�#� �3�.� �=��� ��S�i�s�t�e�m�a� �C�R�U�D� �C�o�m�p�l�e�t�o�� �(��f�e�a�t�u�r�e�s�/�c�r�u�d��)� � �-� �O�p�e�r�a�c�i�o�n�e�s� �C�R�U�D� �a�u�t�o�m�a�t�i�z�a�d�a�s� � �-� �T�a�b�l�a�s� �d�i�n���m�i�c�a�s� �c�o�n� �P�r�i�m�e�R�e�a�c�t� � �-� �G�e�s�t�i���n� �d�e� �e�s�t�a�d�o� �d�e� �t�a�b�l�a�s� � � � �#�#�#� �4�.� �=��� ��S�i�s�t�e�m�a� �d�e� �F�o�r�m�u�l�a�r�i�o�s� �D�i�n���m�i�c�o�s�� �(��f�e�a�t�u�r�e�s�/�f�o�r�m�s��)� � �-� �F�o�r�m�u�l�a�r�i�o�s� �b�a�s�a�d�o�s� �e�n� �c�o�n�f�i�g�u�r�a�c�i���n� �J�S�O�N� � �-� �V�a�l�i�d�a�c�i�o�n�e�s� �a�v�a�n�z�a�d�a�s� �c�o�n� �Y�u�p� � �-� �C�o�m�p�o�n�e�n�t�e�s� �P�r�i�m�e�R�e�a�c�t� �i�n�t�e�g�r�a�d�o�s� � �-� �A�r�r�a�y�s� �a�n�i�d�a�d�o�s� �y� �s�e�l�e�c�t�s� �d�e�p�e�n�d�i�e�n�t�e�s� � � � �-�-�-� � � � �#�#� �<د� ��E�j�e�m�p�l�o� �C�o�m�p�l�e�t�o�:� �F�o�r�m�u�l�a�r�i�o� �c�o�n� �S�e�l�e�c�t�� � � � �T�e� �m�o�s�t�r�a�r��� �c���m�o� �u�s�a�r� �l�a�s� ��4� �f�e�a�t�u�r�e�s� �j�u�n�t�a�s�� �p�a�r�a� �c�r�e�a�r� �u�n� �f�o�r�m�u�l�a�r�i�o� �c�o�m�p�l�e�j�o� �c�o�n� �s�e�l�e�c�t�s� �d�e�p�e�n�d�i�e�n�t�e�s�.� � � � �#�#�#� �=��� ��P�a�s�o� �1�:� �I�n�s�t�a�l�a�c�i���n�� � � � ��b�a�s�h� � �n�p�m� �i�n�s�t�a�l�l� �@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�h�o�o�k�s� �@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�a�d�a�p�t�e�r�s� �@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�c�r�u�d� �@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�f�o�r�m�s� � �� � � � �#�#�#� �=��� ��P�a�s�o� �2�:� �C�o�n�f�i�g�u�r�a�c�i���n� �d�e�l� �F�o�r�m�u�l�a�r�i�o�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �s�r�c�/�c�o�m�p�o�n�e�n�t�s�/�U�s�e�r�F�o�r�m�.�t�s�x� � �i�m�p�o�r�t� �R�e�a�c�t� �f�r�o�m� �'�r�e�a�c�t�'�;� � �i�m�p�o�r�t� �{� �F�o�r�m�i�k�,� �F�o�r�m� �}� �f�r�o�m� �'�f�o�r�m�i�k�'�;� � �i�m�p�o�r�t� �{� � � � � � � �D�y�n�a�m�i�c�F�o�r�m�F�i�e�l�d�s�,� � � � � � � �F�i�e�l�d�C�o�n�f�i�g� � � �}� �f�r�o�m� �'�@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�f�o�r�m�s�'�;� � �i�m�p�o�r�t� �{� � � � � � � �u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s� � � �}� �f�r�o�m� �'�@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�h�o�o�k�s�'�;� � �i�m�p�o�r�t� �{� � � � � � � �c�r�e�a�t�e�A�p�i�A�d�a�p�t�e�r� � � �}� �f�r�o�m� �'�@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�a�d�a�p�t�e�r�s�'�;� � �i�m�p�o�r�t� �{� � � � � � � �u�s�e�C�r�u�d�O�p�e�r�a�t�i�o�n�s� � � �}� �f�r�o�m� �'�@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�c�r�u�d�'�;� � � � �/�/� �C�o�n�f�i�g�u�r�a�c�i���n� �d�e�l� �f�o�r�m�u�l�a�r�i�o� � �c�o�n�s�t� �u�s�e�r�F�o�r�m�C�o�n�f�i�g�:� �F�i�e�l�d�C�o�n�f�i�g�[�]� �=� �[� � � � � � �{� � � � � � � � � � �n�a�m�e�:� �"�n�o�m�b�r�e�"�,� � � � � � � � � � �t�y�p�e�:� �"�t�e�x�t�"�,� � � � � � � � � � �l�a�b�e�l�:� �"�N�o�m�b�r�e�"�,� � � � � � � � � � �g�r�i�d�S�i�z�e�:� �"�m�e�d�i�u�m�"�,� � � � � � � � � � �v�a�l�i�d�a�t�i�o�n�:� �{� � � � � � � � � � � � � � � �r�e�q�u�i�r�e�d�:� �t�r�u�e�,� � � � � � � � � � � � � � � �m�i�n�L�e�n�g�t�h�:� �2� � � � � � � � � � � �}� � � � � � �}�,� � � � � � �{� � � � � � � � � � �n�a�m�e�:� �"�e�m�a�i�l�"�,� � � � � � � � � � �t�y�p�e�:� �"�e�m�a�i�l�"�,� � � � � � � � � � �l�a�b�e�l�:� �"�E�m�a�i�l�"�,� � � � � � � � � � �g�r�i�d�S�i�z�e�:� �"�m�e�d�i�u�m�"�,� � � � � � � � � � �v�a�l�i�d�a�t�i�o�n�:� �{� � � � � � � � � � � � � � � �r�e�q�u�i�r�e�d�:� �t�r�u�e�,� � � � � � � � � � � � � � � �e�m�a�i�l�:� �t�r�u�e� � � � � � � � � � � �}� � � � � � �}�,� � � � � � �{� � � � � � � � � � �n�a�m�e�:� �"�p�a�i�s�"�,� � � � � � � � � � �t�y�p�e�:� �"�s�e�l�e�c�t�"�,� � � � � � � � � � �l�a�b�e�l�:� �"�P�a���s�"�,� � � � � � � � � � �s�e�l�e�c�t�K�e�y�:� �"�p�a�i�s�e�s�"�,� � � � � � � � � � �g�r�i�d�S�i�z�e�:� �"�m�e�d�i�u�m�"� � � � � � �}�,� � � � � � �{� � � � � � � � � � �n�a�m�e�:� �"�d�e�p�a�r�t�a�m�e�n�t�o�"�,� � � � � � � � � � �t�y�p�e�:� �"�s�e�l�e�c�t�-�d�e�p�e�n�d�e�n�c�y�"�,� � � � � � � � � � �l�a�b�e�l�:� �"�D�e�p�a�r�t�a�m�e�n�t�o�"�,� � � � � � � � � � �d�e�p�e�n�d�e�n�c�y�F�i�e�l�d�:� �"�p�a�i�s�"�,� � � � � � � � � � �e�n�t�i�t�y�N�a�m�e�:� �"�d�e�p�a�r�t�a�m�e�n�t�o�s�B�y�P�a�i�s�"�,� � � � � � � � � � �g�r�i�d�S�i�z�e�:� �"�m�e�d�i�u�m�"� � � � � � �}�,� � � � � � �{� � � � � � � � � � �n�a�m�e�:� �"�c�i�u�d�a�d�"�,� � � � � � � � � � �t�y�p�e�:� �"�s�e�l�e�c�t�-�d�e�p�e�n�d�e�n�c�y�"�,� � � � � � � � � � �l�a�b�e�l�:� �"�C�i�u�d�a�d�"�,� � � � � � � � � � �d�e�p�e�n�d�e�n�c�y�F�i�e�l�d�:� �"�d�e�p�a�r�t�a�m�e�n�t�o�"�,� � � � � � � � � � �e�n�t�i�t�y�N�a�m�e�:� �"�c�i�u�d�a�d�e�s�B�y�D�e�p�a�r�t�a�m�e�n�t�o�"�,� � � � � � � � � � �g�r�i�d�S�i�z�e�:� �"�m�e�d�i�u�m�"� � � � � � �}�,� � � � � � �{� � � � � � � � � � �n�a�m�e�:� �"�r�o�l�e�s�"�,� � � � � � � � � � �t�y�p�e�:� �"�m�u�l�t�i�s�e�l�e�c�t�"�,� � � � � � � � � � �l�a�b�e�l�:� �"�R�o�l�e�s�"�,� � � � � � � � � � �s�e�l�e�c�t�K�e�y�:� �"�r�o�l�e�s�"�,� � � � � � � � � � �g�r�i�d�S�i�z�e�:� �"�f�u�l�l�"� � � � � � �}�,� � � � � � �{� � � � � � � � � � �n�a�m�e�:� �"�a�c�t�i�v�o�"�,� � � � � � � � � � �t�y�p�e�:� �"�c�h�e�c�k�b�o�x�"�,� � � � � � � � � � �l�a�b�e�l�:� �"�U�s�u�a�r�i�o� �A�c�t�i�v�o�"�,� � � � � � � � � � �g�r�i�d�S�i�z�e�:� �"�q�u�a�r�t�e�r�"� � � � � � �}� � �]�;� � � � �/�/� �C�o�m�p�o�n�e�n�t�e� �p�r�i�n�c�i�p�a�l� � �c�o�n�s�t� �U�s�e�r�F�o�r�m� �=� �(�)� �=�>� �{� � � � � � �/�/� �<أ� �H�o�o�k� �1�:� �u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s� �p�a�r�a� �o�p�c�i�o�n�e�s� �e�s�t���t�i�c�a�s� � � � � � �c�o�n�s�t� �{� �o�p�t�i�o�n�s�:� �p�a�i�s�e�s�O�p�t�i�o�n�s� �}� �=� �u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s�(�{� � � � � � � � � � �k�e�y�:� �'�p�a�i�s�e�s�'�,� � � � � � � � � � �a�p�i�S�e�r�v�i�c�e�:� �(�)� �=�>� �f�e�t�c�h�(�'�/�a�p�i�/�p�a�i�s�e�s�'�)�.�t�h�e�n�(�r�e�s� �=�>� �r�e�s�.�j�s�o�n�(�)�)� � � � � � �}�)�;� � � � � � � � �c�o�n�s�t� �{� �o�p�t�i�o�n�s�:� �r�o�l�e�s�O�p�t�i�o�n�s� �}� �=� �u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s�(�{� � � � � � � � � � �k�e�y�:� �'�r�o�l�e�s�'�,� � � � � � � � � � �a�p�i�S�e�r�v�i�c�e�:� �(�)� �=�>� �f�e�t�c�h�(�'�/�a�p�i�/�r�o�l�e�s�'�)�.�t�h�e�n�(�r�e�s� �=�>� �r�e�s�.�j�s�o�n�(�)�)� � � � � � �}�)�;� � � � � � � � �/�/� �=�� �A�d�a�p�t�e�r� �2�:� �C�r�e�a�r� �a�d�a�p�t�a�d�o�r� �p�a�r�a� �l�a� �A�P�I� � � � � � �c�o�n�s�t� �a�p�i�A�d�a�p�t�e�r� �=� �c�r�e�a�t�e�A�p�i�A�d�a�p�t�e�r�(�{� � � � � � � � � � �b�a�s�e�U�R�L�:� �'�/�a�p�i�'�,� � � � � � � � � � �t�r�a�n�s�f�o�r�m�R�e�s�p�o�n�s�e�:� �(�d�a�t�a�)� �=�>� �d�a�t�a�.�m�a�p�(�(�i�t�e�m�:� �a�n�y�)� �=�>� �(�{� � � � � � � � � � � � � � �v�a�l�u�e�:� �i�t�e�m�.�i�d�,� � � � � � � � � � � � � � �l�a�b�e�l�:� �i�t�e�m�.�n�o�m�b�r�e� � � � � � � � � � �}�)�)� � � � � � �}�)�;� � � � � � � � �/�/� �=��� �C�R�U�D� �3�:� �O�p�e�r�a�c�i�o�n�e�s� �C�R�U�D� �p�a�r�a� �u�s�u�a�r�i�o�s� � � � � � �c�o�n�s�t� �{� � � � � � � � � � � �c�r�e�a�t�e�:� �c�r�e�a�t�e�U�s�e�r�,� � � � � � � � � � � �u�p�d�a�t�e�:� �u�p�d�a�t�e�U�s�e�r�,� � � � � � � � � � �i�s�L�o�a�d�i�n�g� � � � � � � �}� �=� �u�s�e�C�r�u�d�O�p�e�r�a�t�i�o�n�s�(�{� � � � � � � � � � �e�n�t�i�t�y�:� �'�u�s�u�a�r�i�o�s�'�,� � � � � � � � � � �a�d�a�p�t�e�r�:� �a�p�i�A�d�a�p�t�e�r� � � � � � �}�)�;� � � � � � � � �/�/� �=��� �F�o�r�m�s� �4�:� �M�a�n�e�j�o� �d�e�l� �f�o�r�m�u�l�a�r�i�o� � � � � � �c�o�n�s�t� �h�a�n�d�l�e�S�u�b�m�i�t� �=� �a�s�y�n�c� �(�v�a�l�u�e�s�:� �a�n�y�)� �=�>� �{� � � � � � � � � � �t�r�y� �{� � � � � � � � � � � � � � �i�f� �(�v�a�l�u�e�s�.�i�d�)� �{� � � � � � � � � � � � � � � � � � �a�w�a�i�t� �u�p�d�a�t�e�U�s�e�r�(�v�a�l�u�e�s�)�;� � � � � � � � � � � � � � �}� �e�l�s�e� �{� � � � � � � � � � � � � � � � � � �a�w�a�i�t� �c�r�e�a�t�e�U�s�e�r�(�v�a�l�u�e�s�)�;� � � � � � � � � � � � � � �}� � � � � � � � � � � � � � �c�o�n�s�o�l�e�.�l�o�g�(�'�U�s�u�a�r�i�o� �g�u�a�r�d�a�d�o� �e�x�i�t�o�s�a�m�e�n�t�e�'�)�;� � � � � � � � � � �}� �c�a�t�c�h� �(�e�r�r�o�r�)� �{� � � � � � � � � � � � � � �c�o�n�s�o�l�e�.�e�r�r�o�r�(�'�E�r�r�o�r� �a�l� �g�u�a�r�d�a�r� �u�s�u�a�r�i�o�:�'�,� �e�r�r�o�r�)�;� � � � � � � � � � �}� � � � � � �}�;� � � � � � � � �r�e�t�u�r�n� �(� � � � � � � � � � �<�d�i�v� �c�l�a�s�s�N�a�m�e�=�"�u�s�e�r�-�f�o�r�m�-�c�o�n�t�a�i�n�e�r�"�>� � � � � � � � � � � � � � �<�h�2�>�F�o�r�m�u�l�a�r�i�o� �d�e� �U�s�u�a�r�i�o�<�/�h�2�>� � � � � � � � � � � � � � � � � � � � � � � � � � � � �<�F�o�r�m�i�k� � � � � � � � � � � � � � � � � � �i�n�i�t�i�a�l�V�a�l�u�e�s�=�{�{� � � � � � � � � � � � � � � � � � � � � � �n�o�m�b�r�e�:� �'�'�,� � � � � � � � � � � � � � � � � � � � � � �e�m�a�i�l�:� �'�'�,� � � � � � � � � � � � � � � � � � � � � � �p�a�i�s�:� �'�'�,� � � � � � � � � � � � � � � � � � � � � � �d�e�p�a�r�t�a�m�e�n�t�o�:� �'�'�,� � � � � � � � � � � � � � � � � � � � � � �c�i�u�d�a�d�:� �'�'�,� � � � � � � � � � � � � � � � � � � � � � �r�o�l�e�s�:� �[�]�,� � � � � � � � � � � � � � � � � � � � � � �a�c�t�i�v�o�:� �f�a�l�s�e� � � � � � � � � � � � � � � � � � �}�}� � � � � � � � � � � � � � � � � � �o�n�S�u�b�m�i�t�=�{�h�a�n�d�l�e�S�u�b�m�i�t�}� � � � � � � � � � � � � � �>� � � � � � � � � � � � � � � � � � �<�D�y�n�a�m�i�c�F�o�r�m�F�i�e�l�d�s� � � � � � � � � � � � � � � � � � � � � � �c�o�n�f�i�g�=�{�u�s�e�r�F�o�r�m�C�o�n�f�i�g�}� � � � � � � � � � � � � � � � � � � � � � �m�o�d�u�l�e�K�e�y�=�"�u�s�u�a�r�i�o�s�"� � � � � � � � � � � � � � � � � � � � � � �t�i�t�l�e�=�"�C�r�e�a�r�/�E�d�i�t�a�r� �U�s�u�a�r�i�o�"� � � � � � � � � � � � � � � � � � � � � � �o�n�C�a�n�c�e�l�=�{�(�)� �=�>� �c�o�n�s�o�l�e�.�l�o�g�(�'�C�a�n�c�e�l�a�d�o�'�)�}� � � � � � � � � � � � � � � � � � � � � � �t�=�{�(�k�e�y�)� �=�>� �k�e�y�}� �/�/� �F�u�n�c�i���n� �d�e� �t�r�a�d�u�c�c�i���n� � � � � � � � � � � � � � � � � � � � � � �g�e�t�L�a�n�g�M�e�s�s�a�g�e�=�{�(�m�o�d�u�l�e�K�e�y�,� �k�e�y�)� �=�>� ��$�{�m�o�d�u�l�e�K�e�y�}�.�$�{�k�e�y�}��}� � � � � � � � � � � � � � � � � � � � � � �u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s�=�{�u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s�}� � � � � � � � � � � � � � � � � � �/�>� � � � � � � � � � � � � � �<�/�F�o�r�m�i�k�>� � � � � � � � � � �<�/�d�i�v�>� � � � � � �)�;� � �}�;� � � � �e�x�p�o�r�t� �d�e�f�a�u�l�t� �U�s�e�r�F�o�r�m�;� � �� � � � �#�#�#� �=��� ��P�a�s�o� �3�:� �C�o�n�f�i�g�u�r�a�c�i���n� �d�e� �A�P�I�s�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �s�r�c�/�s�e�r�v�i�c�e�s�/�a�p�i�.�t�s� � �e�x�p�o�r�t� �c�o�n�s�t� �a�p�i�S�e�r�v�i�c�e� �=� �{� � � � � � �/�/� �O�b�t�e�n�e�r� �p�a���s�e�s� � � � � � �g�e�t�P�a�i�s�e�s�:� �(�)� �=�>� �f�e�t�c�h�(�'�/�a�p�i�/�p�a�i�s�e�s�'�)�.�t�h�e�n�(�r�e�s� �=�>� �r�e�s�.�j�s�o�n�(�)�)�,� � � � � � � � � � � � �/�/� �O�b�t�e�n�e�r� �d�e�p�a�r�t�a�m�e�n�t�o�s� �p�o�r� �p�a���s� � � � � � �g�e�t�D�e�p�a�r�t�a�m�e�n�t�o�s�B�y�P�a�i�s�:� �(�p�a�i�s�I�d�:� �s�t�r�i�n�g�)� �=�>� � � � � � � � � � � �f�e�t�c�h�(��/�a�p�i�/�d�e�p�a�r�t�a�m�e�n�t�o�s�?�p�a�i�s�I�d�=�$�{�p�a�i�s�I�d�}��)�.�t�h�e�n�(�r�e�s� �=�>� �r�e�s�.�j�s�o�n�(�)�)�,� � � � � � � � � � � � �/�/� �O�b�t�e�n�e�r� �c�i�u�d�a�d�e�s� �p�o�r� �d�e�p�a�r�t�a�m�e�n�t�o� � � � � � �g�e�t�C�i�u�d�a�d�e�s�B�y�D�e�p�a�r�t�a�m�e�n�t�o�:� �(�d�e�p�a�r�t�a�m�e�n�t�o�I�d�:� �s�t�r�i�n�g�)� �=�>� � � � � � � � � � � �f�e�t�c�h�(��/�a�p�i�/�c�i�u�d�a�d�e�s�?�d�e�p�a�r�t�a�m�e�n�t�o�I�d�=�$�{�d�e�p�a�r�t�a�m�e�n�t�o�I�d�}��)�.�t�h�e�n�(�r�e�s� �=�>� �r�e�s�.�j�s�o�n�(�)�)�,� � � � � � � � � � � � �/�/� �O�b�t�e�n�e�r� �r�o�l�e�s� � � � � � �g�e�t�R�o�l�e�s�:� �(�)� �=�>� �f�e�t�c�h�(�'�/�a�p�i�/�r�o�l�e�s�'�)�.�t�h�e�n�(�r�e�s� �=�>� �r�e�s�.�j�s�o�n�(�)�)� � �}�;� � �� � � � �#�#�#� �=��� ��P�a�s�o� �4�:� �C�o�n�f�i�g�u�r�a�c�i���n� �d�e� �A�d�a�p�t�a�d�o�r�e�s�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �s�r�c�/�c�o�n�f�i�g�/�a�d�a�p�t�e�r�s�.�t�s� � �i�m�p�o�r�t� �{� �c�r�e�a�t�e�A�p�i�A�d�a�p�t�e�r�,� �c�r�e�a�t�e�F�o�r�m�i�k�A�d�a�p�t�e�r� �}� �f�r�o�m� �'�@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�a�d�a�p�t�e�r�s�'�;� � � � �/�/� �A�d�a�p�t�a�d�o�r� �p�a�r�a� �A�P�I� � �e�x�p�o�r�t� �c�o�n�s�t� �a�p�i�A�d�a�p�t�e�r� �=� �c�r�e�a�t�e�A�p�i�A�d�a�p�t�e�r�(�{� � � � � � �b�a�s�e�U�R�L�:� �'�/�a�p�i�'�,� � � � � � �t�r�a�n�s�f�o�r�m�R�e�s�p�o�n�s�e�:� �(�d�a�t�a�)� �=�>� �d�a�t�a�.�m�a�p�(�(�i�t�e�m�:� �a�n�y�)� �=�>� �(�{� � � � � � � � � � �v�a�l�u�e�:� �i�t�e�m�.�i�d�,� � � � � � � � � � �l�a�b�e�l�:� �i�t�e�m�.�n�o�m�b�r�e� � � � � � �}�)�)�,� � � � � � �t�r�a�n�s�f�o�r�m�R�e�q�u�e�s�t�:� �(�d�a�t�a�)� �=�>� �(�{� � � � � � � � � � �.�.�.�d�a�t�a�,� � � � � � � � � � �c�r�e�a�t�e�d�A�t�:� �n�e�w� �D�a�t�e�(�)�.�t�o�I�S�O�S�t�r�i�n�g�(�)� � � � � � �}�)� � �}�)�;� � � � �/�/� �A�d�a�p�t�a�d�o�r� �p�a�r�a� �F�o�r�m�i�k� � �e�x�p�o�r�t� �c�o�n�s�t� �f�o�r�m�i�k�A�d�a�p�t�e�r� �=� �c�r�e�a�t�e�F�o�r�m�i�k�A�d�a�p�t�e�r�(�{� � � � � � �t�r�a�n�s�f�o�r�m�T�o�F�o�r�m�:� �(�d�a�t�a�)� �=�>� �(�{� � � � � � � � � � �.�.�.�d�a�t�a�,� � � � � � � � � � �r�o�l�e�s�:� �d�a�t�a�.�r�o�l�e�s�?�.�m�a�p�(�(�r�:� �a�n�y�)� �=�>� �r�.�i�d�)� �|�|� �[�]� � � � � � �}�)�,� � � � � � �t�r�a�n�s�f�o�r�m�F�r�o�m�F�o�r�m�:� �(�d�a�t�a�)� �=�>� �(�{� � � � � � � � � � �.�.�.�d�a�t�a�,� � � � � � � � � � �r�o�l�e�s�:� �d�a�t�a�.�r�o�l�e�s�?�.�m�a�p�(�(�i�d�:� �s�t�r�i�n�g�)� �=�>� �(�{� �i�d� �}�)�)� �|�|� �[�]� � � � � � �}�)� � �}�)�;� � �� � � � �#�#�#� �=��� ��P�a�s�o� �5�:� �C�o�n�f�i�g�u�r�a�c�i���n� �d�e� �V�a�l�i�d�a�c�i�o�n�e�s�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �s�r�c�/�c�o�n�f�i�g�/�v�a�l�i�d�a�t�i�o�n�s�.�t�s� � �i�m�p�o�r�t� �{� �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�,� �f�i�e�l�d�T�y�p�e�V�a�l�i�d�a�t�i�o�n�s� �}� �f�r�o�m� �'�@�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�/�f�o�r�m�s�'�;� � � � �e�x�p�o�r�t� �c�o�n�s�t� �u�s�e�r�V�a�l�i�d�a�t�i�o�n�s� �=� �{� � � � � � �n�o�m�b�r�e�:� �[� � � � � � � � � � �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�.�r�e�q�u�i�r�e�d�(�'�E�l� �n�o�m�b�r�e� �e�s� �o�b�l�i�g�a�t�o�r�i�o�'�)�,� � � � � � � � � � �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�.�m�i�n�L�e�n�g�t�h�(�2�,� �'�M���n�i�m�o� �2� �c�a�r�a�c�t�e�r�e�s�'�)�,� � � � � � � � � � �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�.�m�a�x�L�e�n�g�t�h�(�5�0�,� �'�M���x�i�m�o� �5�0� �c�a�r�a�c�t�e�r�e�s�'�)� � � � � � �]�,� � � � � � �e�m�a�i�l�:� �[� � � � � � � � � � �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�.�r�e�q�u�i�r�e�d�(�'�E�l� �e�m�a�i�l� �e�s� �o�b�l�i�g�a�t�o�r�i�o�'�)�,� � � � � � � � � � �f�i�e�l�d�T�y�p�e�V�a�l�i�d�a�t�i�o�n�s�.�e�m�a�i�l�(�'�E�m�a�i�l� �i�n�v���l�i�d�o�'�)� � � � � � �]�,� � � � � � �p�a�i�s�:� �[� � � � � � � � � � �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�.�r�e�q�u�i�r�e�d�(�'�D�e�b�e� �s�e�l�e�c�c�i�o�n�a�r� �u�n� �p�a���s�'�)� � � � � � �]�,� � � � � � �d�e�p�a�r�t�a�m�e�n�t�o�:� �[� � � � � � � � � � �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�.�r�e�q�u�i�r�e�d�(�'�D�e�b�e� �s�e�l�e�c�c�i�o�n�a�r� �u�n� �d�e�p�a�r�t�a�m�e�n�t�o�'�)� � � � � � �]�,� � � � � � �c�i�u�d�a�d�:� �[� � � � � � � � � � �c�o�m�m�o�n�V�a�l�i�d�a�t�i�o�n�s�.�r�e�q�u�i�r�e�d�(�'�D�e�b�e� �s�e�l�e�c�c�i�o�n�a�r� �u�n�a� �c�i�u�d�a�d�'�)� � � � � � �]� � �}�;� � �� � � � �-�-�-� � � � �#�#� �=�'� ��C�o�n�f�i�g�u�r�a�c�i���n� �A�v�a�n�z�a�d�a�� � � � �#�#�#� ��S�e�l�e�c�t�s� �D�e�p�e�n�d�i�e�n�t�e�s� �c�o�n� �C�a�c�h���� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �H�o�o�k� �p�e�r�s�o�n�a�l�i�z�a�d�o� �p�a�r�a� �s�e�l�e�c�t�s� �d�e�p�e�n�d�i�e�n�t�e�s� � �c�o�n�s�t� �u�s�e�D�e�p�e�n�d�e�n�t�S�e�l�e�c�t� �=� �(�d�e�p�e�n�d�e�n�c�y�V�a�l�u�e�:� �s�t�r�i�n�g�,� �e�n�t�i�t�y�N�a�m�e�:� �s�t�r�i�n�g�)� �=�>� �{� � � � � � �c�o�n�s�t� �{� �o�p�t�i�o�n�s�,� �l�o�a�d�i�n�g�,� �e�r�r�o�r� �}� �=� �u�s�e�S�e�l�e�c�t�O�p�t�i�o�n�s�(�{� � � � � � � � � � �k�e�y�:� ��$�{�e�n�t�i�t�y�N�a�m�e�}�_�$�{�d�e�p�e�n�d�e�n�c�y�V�a�l�u�e�}��,� � � � � � � � � � �a�p�i�S�e�r�v�i�c�e�:� �(�)� �=�>� �a�p�i�S�e�r�v�i�c�e�[�e�n�t�i�t�y�N�a�m�e�]�(�d�e�p�e�n�d�e�n�c�y�V�a�l�u�e�)�,� � � � � � � � � � �e�n�a�b�l�e�d�:� �!�!�d�e�p�e�n�d�e�n�c�y�V�a�l�u�e�,� � � � � � � � � � �c�a�c�h�e�T�i�m�e�:� �5� �*� �6�0� �*� �1�0�0�0� �/�/� �5� �m�i�n�u�t�o�s� � � � � � �}�)�;� � � � � � � � �r�e�t�u�r�n� �{� �o�p�t�i�o�n�s�,� �l�o�a�d�i�n�g�,� �e�r�r�o�r� �}�;� � �}�;� � �� � � � �#�#�#� ��T�r�a�n�s�f�o�r�m�a�c�i�o�n�e�s� �d�e� �D�a�t�o�s�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �T�r�a�n�s�f�o�r�m�a�r� �d�a�t�o�s� �a�n�t�e�s� �d�e� �e�n�v�i�a�r� � �c�o�n�s�t� �t�r�a�n�s�f�o�r�m�U�s�e�r�D�a�t�a� �=� �(�f�o�r�m�D�a�t�a�:� �a�n�y�)� �=�>� �{� � � � � � �r�e�t�u�r�n� �{� � � � � � � � � � �.�.�.�f�o�r�m�D�a�t�a�,� � � � � � � � � � �n�o�m�b�r�e�:� �f�o�r�m�D�a�t�a�.�n�o�m�b�r�e�.�t�o�U�p�p�e�r�C�a�s�e�(�)�,� � � � � � � � � � �r�o�l�e�s�:� �f�o�r�m�D�a�t�a�.�r�o�l�e�s�.�m�a�p�(�(�r�o�l�e�:� �a�n�y�)� �=�>� �r�o�l�e�.�i�d�)�,� � � � � � � � � � �f�e�c�h�a�C�r�e�a�c�i�o�n�:� �n�e�w� �D�a�t�e�(�)�.�t�o�I�S�O�S�t�r�i�n�g�(�)� � � � � � �}�;� � �}�;� � �� � � � �#�#�#� ��V�a�l�i�d�a�c�i���n� �e�n� �T�i�e�m�p�o� �R�e�a�l�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �V�a�l�i�d�a�c�i���n� �p�e�r�s�o�n�a�l�i�z�a�d�a� � �c�o�n�s�t� �c�u�s�t�o�m�V�a�l�i�d�a�t�i�o�n�s� �=� �{� � � � � � �e�m�a�i�l�U�n�i�c�o�:� �a�s�y�n�c� �(�e�m�a�i�l�:� �s�t�r�i�n�g�)� �=�>� �{� � � � � � � � � � �c�o�n�s�t� �r�e�s�p�o�n�s�e� �=� �a�w�a�i�t� �f�e�t�c�h�(��/�a�p�i�/�u�s�u�a�r�i�o�s�/�c�h�e�c�k�-�e�m�a�i�l�?�e�m�a�i�l�=�$�{�e�m�a�i�l�}��)�;� � � � � � � � � � �c�o�n�s�t� �{� �d�i�s�p�o�n�i�b�l�e� �}� �=� �a�w�a�i�t� �r�e�s�p�o�n�s�e�.�j�s�o�n�(�)�;� � � � � � � � � � �r�e�t�u�r�n� �d�i�s�p�o�n�i�b�l�e� �|�|� �'�E�s�t�e� �e�m�a�i�l� �y�a� �e�s�t��� �r�e�g�i�s�t�r�a�d�o�'�;� � � � � � �}� � �}�;� � �� � � � �-�-�-� � � � �#�#� �<ب� ��P�e�r�s�o�n�a�l�i�z�a�c�i���n� �d�e� �E�s�t�i�l�o�s�� � � � ��c�s�s� � �/�*� �s�r�c�/�s�t�y�l�e�s�/�f�o�r�m�s�.�c�s�s� �*�/� � �.�u�s�e�r�-�f�o�r�m�-�c�o�n�t�a�i�n�e�r� �{� � � � � � �m�a�x�-�w�i�d�t�h�:� �8�0�0�p�x�;� � � � � � �m�a�r�g�i�n�:� �0� �a�u�t�o�;� � � � � � �p�a�d�d�i�n�g�:� �2�0�p�x�;� � �}� � � � �.�f�o�r�m�-�g�r�i�d� �{� � � � � � �d�i�s�p�l�a�y�:� �g�r�i�d�;� � � � � � �g�r�i�d�-�t�e�m�p�l�a�t�e�-�c�o�l�u�m�n�s�:� �r�e�p�e�a�t�(�a�u�t�o�-�f�i�t�,� �m�i�n�m�a�x�(�3�0�0�p�x�,� �1�f�r�)�)�;� � � � � � �g�a�p�:� �2�0�p�x�;� � �}� � � � �.�f�o�r�m�-�f�i�e�l�d� �{� � � � � � �m�a�r�g�i�n�-�b�o�t�t�o�m�:� �1�5�p�x�;� � �}� � � � �.�f�o�r�m�-�f�i�e�l�d� �l�a�b�e�l� �{� � � � � � �d�i�s�p�l�a�y�:� �b�l�o�c�k�;� � � � � � �m�a�r�g�i�n�-�b�o�t�t�o�m�:� �5�p�x�;� � � � � � �f�o�n�t�-�w�e�i�g�h�t�:� �6�0�0�;� � � � � � �c�o�l�o�r�:� �#�3�3�3�;� � �}� � � � �.�f�o�r�m�-�f�i�e�l�d� �i�n�p�u�t�,� � �.�f�o�r�m�-�f�i�e�l�d� �s�e�l�e�c�t� �{� � � � � � �w�i�d�t�h�:� �1�0�0�%�;� � � � � � �p�a�d�d�i�n�g�:� �1�0�p�x�;� � � � � � �b�o�r�d�e�r�:� �1�p�x� �s�o�l�i�d� �#�d�d�d�;� � � � � � �b�o�r�d�e�r�-�r�a�d�i�u�s�:� �4�p�x�;� � � � � � �f�o�n�t�-�s�i�z�e�:� �1�4�p�x�;� � �}� � � � �.�f�o�r�m�-�f�i�e�l�d� �i�n�p�u�t�:�f�o�c�u�s�,� � �.�f�o�r�m�-�f�i�e�l�d� �s�e�l�e�c�t�:�f�o�c�u�s� �{� � � � � � �o�u�t�l�i�n�e�:� �n�o�n�e�;� � � � � � �b�o�r�d�e�r�-�c�o�l�o�r�:� �#�0�0�7�b�f�f�;� � � � � � �b�o�x�-�s�h�a�d�o�w�:� �0� �0� �0� �2�p�x� �r�g�b�a�(�0�,� �1�2�3�,� �2�5�5�,� �0�.�2�5�)�;� � �}� � � � �.�f�o�r�m�-�b�u�t�t�o�n�s� �{� � � � � � �d�i�s�p�l�a�y�:� �f�l�e�x�;� � � � � � �g�a�p�:� �1�0�p�x�;� � � � � � �j�u�s�t�i�f�y�-�c�o�n�t�e�n�t�:� �f�l�e�x�-�e�n�d�;� � � � � � �m�a�r�g�i�n�-�t�o�p�:� �2�0�p�x�;� � �}� � � � �.�b�t�n� �{� � � � � � �p�a�d�d�i�n�g�:� �1�0�p�x� �2�0�p�x�;� � � � � � �b�o�r�d�e�r�:� �n�o�n�e�;� � � � � � �b�o�r�d�e�r�-�r�a�d�i�u�s�:� �4�p�x�;� � � � � � �c�u�r�s�o�r�:� �p�o�i�n�t�e�r�;� � � � � � �f�o�n�t�-�s�i�z�e�:� �1�4�p�x�;� � � � � � �t�r�a�n�s�i�t�i�o�n�:� �b�a�c�k�g�r�o�u�n�d�-�c�o�l�o�r� �0�.�2�s�;� � �}� � � � �.�b�t�n�-�p�r�i�m�a�r�y� �{� � � � � � �b�a�c�k�g�r�o�u�n�d�-�c�o�l�o�r�:� �#�0�0�7�b�f�f�;� � � � � � �c�o�l�o�r�:� �w�h�i�t�e�;� � �}� � � � �.�b�t�n�-�p�r�i�m�a�r�y�:�h�o�v�e�r� �{� � � � � � �b�a�c�k�g�r�o�u�n�d�-�c�o�l�o�r�:� �#�0�0�5�6�b�3�;� � �}� � � � �.�b�t�n�-�s�e�c�o�n�d�a�r�y� �{� � � � � � �b�a�c�k�g�r�o�u�n�d�-�c�o�l�o�r�:� �#�6�c�7�5�7�d�;� � � � � � �c�o�l�o�r�:� �w�h�i�t�e�;� � �}� � � � �.�b�t�n�-�s�e�c�o�n�d�a�r�y�:�h�o�v�e�r� �{� � � � � � �b�a�c�k�g�r�o�u�n�d�-�c�o�l�o�r�:� �#�5�4�5�b�6�2�;� � �}� � �� � � � �-�-�-� � � � �#�#� �>��� ��T�e�s�t�i�n�g�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �s�r�c�/�c�o�m�p�o�n�e�n�t�s�/�_�_�t�e�s�t�s�_�_�/�U�s�e�r�F�o�r�m�.�t�e�s�t�.�t�s�x� � �i�m�p�o�r�t� �R�e�a�c�t� �f�r�o�m� �'�r�e�a�c�t�'�;� � �i�m�p�o�r�t� �{� �r�e�n�d�e�r�,� �s�c�r�e�e�n�,� �f�i�r�e�E�v�e�n�t�,� �w�a�i�t�F�o�r� �}� �f�r�o�m� �'�@�t�e�s�t�i�n�g�-�l�i�b�r�a�r�y�/�r�e�a�c�t�'�;� � �i�m�p�o�r�t� �{� �F�o�r�m�i�k� �}� �f�r�o�m� �'�f�o�r�m�i�k�'�;� � �i�m�p�o�r�t� �U�s�e�r�F�o�r�m� �f�r�o�m� �'�.�.�/�U�s�e�r�F�o�r�m�'�;� � � � �/�/� �M�o�c�k� �d�e� �l�a�s� �A�P�I�s� � �j�e�s�t�.�m�o�c�k�(�'�.�.�/�.�.�/�s�e�r�v�i�c�e�s�/�a�p�i�'�,� �(�)� �=�>� �(�{� � � � � � �a�p�i�S�e�r�v�i�c�e�:� �{� � � � � � � � � � �g�e�t�P�a�i�s�e�s�:� �j�e�s�t�.�f�n�(�(�)� �=�>� �P�r�o�m�i�s�e�.�r�e�s�o�l�v�e�(�[� � � � � � � � � � � � � � �{� �i�d�:� �'�1�'�,� �n�o�m�b�r�e�:� �'�C�o�l�o�m�b�i�a�'� �}�,� � � � � � � � � � � � � � �{� �i�d�:� �'�2�'�,� �n�o�m�b�r�e�:� �'�M���x�i�c�o�'� �}� � � � � � � � � � �]�)�)�,� � � � � � � � � � �g�e�t�D�e�p�a�r�t�a�m�e�n�t�o�s�B�y�P�a�i�s�:� �j�e�s�t�.�f�n�(�(�)� �=�>� �P�r�o�m�i�s�e�.�r�e�s�o�l�v�e�(�[� � � � � � � � � � � � � � �{� �i�d�:� �'�1�'�,� �n�o�m�b�r�e�:� �'�A�n�t�i�o�q�u�i�a�'� �}�,� � � � � � � � � � � � � � �{� �i�d�:� �'�2�'�,� �n�o�m�b�r�e�:� �'�C�u�n�d�i�n�a�m�a�r�c�a�'� �}� � � � � � � � � � �]�)�)�,� � � � � � � � � � �g�e�t�R�o�l�e�s�:� �j�e�s�t�.�f�n�(�(�)� �=�>� �P�r�o�m�i�s�e�.�r�e�s�o�l�v�e�(�[� � � � � � � � � � � � � � �{� �i�d�:� �'�1�'�,� �n�o�m�b�r�e�:� �'�A�d�m�i�n�'� �}�,� � � � � � � � � � � � � � �{� �i�d�:� �'�2�'�,� �n�o�m�b�r�e�:� �'�U�s�u�a�r�i�o�'� �}� � � � � � � � � � �]�)�)� � � � � � �}� � �}�)�)�;� � � � �d�e�s�c�r�i�b�e�(�'�U�s�e�r�F�o�r�m�'�,� �(�)� �=�>� �{� � � � � � �i�t�(�'�r�e�n�d�e�r�i�z�a� �e�l� �f�o�r�m�u�l�a�r�i�o� �c�o�r�r�e�c�t�a�m�e�n�t�e�'�,� �a�s�y�n�c� �(�)� �=�>� �{� � � � � � � � � � �r�e�n�d�e�r�(�<�U�s�e�r�F�o�r�m� �/�>�)�;� � � � � � � � � � � � � � � � � � � � �e�x�p�e�c�t�(�s�c�r�e�e�n�.�g�e�t�B�y�T�e�x�t�(�'�F�o�r�m�u�l�a�r�i�o� �d�e� �U�s�u�a�r�i�o�'�)�)�.�t�o�B�e�I�n�T�h�e�D�o�c�u�m�e�n�t�(�)�;� � � � � � � � � � �e�x�p�e�c�t�(�s�c�r�e�e�n�.�g�e�t�B�y�L�a�b�e�l�T�e�x�t�(�'�N�o�m�b�r�e�'�)�)�.�t�o�B�e�I�n�T�h�e�D�o�c�u�m�e�n�t�(�)�;� � � � � � � � � � �e�x�p�e�c�t�(�s�c�r�e�e�n�.�g�e�t�B�y�L�a�b�e�l�T�e�x�t�(�'�E�m�a�i�l�'�)�)�.�t�o�B�e�I�n�T�h�e�D�o�c�u�m�e�n�t�(�)�;� � � � � � � � � � �e�x�p�e�c�t�(�s�c�r�e�e�n�.�g�e�t�B�y�L�a�b�e�l�T�e�x�t�(�'�P�a���s�'�)�)�.�t�o�B�e�I�n�T�h�e�D�o�c�u�m�e�n�t�(�)�;� � � � � � �}�)�;� � � � � � � � �i�t�(�'�m�a�n�e�j�a� �s�e�l�e�c�t�s� �d�e�p�e�n�d�i�e�n�t�e�s�'�,� �a�s�y�n�c� �(�)� �=�>� �{� � � � � � � � � � �r�e�n�d�e�r�(�<�U�s�e�r�F�o�r�m� �/�>�)�;� � � � � � � � � � � � � � � � � � � � �/�/� �S�e�l�e�c�c�i�o�n�a�r� �p�a���s� � � � � � � � � � �c�o�n�s�t� �p�a�i�s�S�e�l�e�c�t� �=� �s�c�r�e�e�n�.�g�e�t�B�y�L�a�b�e�l�T�e�x�t�(�'�P�a���s�'�)�;� � � � � � � � � � �f�i�r�e�E�v�e�n�t�.�c�h�a�n�g�e�(�p�a�i�s�S�e�l�e�c�t�,� �{� �t�a�r�g�e�t�:� �{� �v�a�l�u�e�:� �'�1�'� �}� �}�)�;� � � � � � � � � � � � � � � � � � � � �/�/� �V�e�r�i�f�i�c�a�r� �q�u�e� �s�e� �c�a�r�g�a�n� �l�o�s� �d�e�p�a�r�t�a�m�e�n�t�o�s� � � � � � � � � � �a�w�a�i�t� �w�a�i�t�F�o�r�(�(�)� �=�>� �{� � � � � � � � � � � � � � �e�x�p�e�c�t�(�s�c�r�e�e�n�.�g�e�t�B�y�L�a�b�e�l�T�e�x�t�(�'�D�e�p�a�r�t�a�m�e�n�t�o�'�)�)�.�t�o�B�e�I�n�T�h�e�D�o�c�u�m�e�n�t�(�)�;� � � � � � � � � � �}�)�;� � � � � � �}�)�;� � � � � � � � �i�t�(�'�v�a�l�i�d�a� �c�a�m�p�o�s� �r�e�q�u�e�r�i�d�o�s�'�,� �a�s�y�n�c� �(�)� �=�>� �{� � � � � � � � � � �r�e�n�d�e�r�(�<�U�s�e�r�F�o�r�m� �/�>�)�;� � � � � � � � � � � � � � � � � � � � �c�o�n�s�t� �s�u�b�m�i�t�B�u�t�t�o�n� �=� �s�c�r�e�e�n�.�g�e�t�B�y�T�e�x�t�(�'�G�u�a�r�d�a�r�'�)�;� � � � � � � � � � �f�i�r�e�E�v�e�n�t�.�c�l�i�c�k�(�s�u�b�m�i�t�B�u�t�t�o�n�)�;� � � � � � � � � � � � � � � � � � � � �a�w�a�i�t� �w�a�i�t�F�o�r�(�(�)� �=�>� �{� � � � � � � � � � � � � � �e�x�p�e�c�t�(�s�c�r�e�e�n�.�g�e�t�B�y�T�e�x�t�(�'�E�l� �n�o�m�b�r�e� �e�s� �o�b�l�i�g�a�t�o�r�i�o�'�)�)�.�t�o�B�e�I�n�T�h�e�D�o�c�u�m�e�n�t�(�)�;� � � � � � � � � � � � � � �e�x�p�e�c�t�(�s�c�r�e�e�n�.�g�e�t�B�y�T�e�x�t�(�'�E�l� �e�m�a�i�l� �e�s� �o�b�l�i�g�a�t�o�r�i�o�'�)�)�.�t�o�B�e�I�n�T�h�e�D�o�c�u�m�e�n�t�(�)�;� � � � � � � � � � �}�)�;� � � � � � �}�)�;� � �}�)�;� � �� � � � �-�-�-� � � � �#�#� �=؀� ��E�j�e�c�u�t�a�r� �e�l� �P�r�o�y�e�c�t�o�� � � � ��b�a�s�h� � �#� �I�n�s�t�a�l�a�r� �d�e�p�e�n�d�e�n�c�i�a�s� � �n�p�m� �i�n�s�t�a�l�l� � � � �#� �E�j�e�c�u�t�a�r� �e�n� �m�o�d�o� �d�e�s�a�r�r�o�l�l�o� � �n�p�m� �r�u�n� �d�e�v� � � � �#� �E�j�e�c�u�t�a�r� �t�e�s�t�s� � �n�p�m� �t�e�s�t� � � � �#� �C�o�n�s�t�r�u�i�r� �p�a�r�a� �p�r�o�d�u�c�c�i���n� � �n�p�m� �r�u�n� �b�u�i�l�d� � �� � � � �-�-�-� � � � �#�#� �=�� ��S�i�s�t�e�m�a� �d�e� �C�o�n�t�r�o�l� �d�e� �A�c�c�e�s�o�� � � � ��p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�� �i�n�c�l�u�y�e� �u�n� �s�i�s�t�e�m�a� �d�e� �c�o�n�t�r�o�l� �d�e� �a�c�c�e�s�o� �q�u�e� �p�e�r�m�i�t�e� �r�e�s�t�r�i�n�g�i�r� �e�l� �u�s�o� �d�e�l� �p�a�q�u�e�t�e� �a� �u�s�u�a�r�i�o�s� �a�u�t�o�r�i�z�a�d�o�s� �m�e�d�i�a�n�t�e� �c�l�a�v�e�s� �d�e� �a�c�c�e�s�o�.� �E�s�t�o� �t�e� �p�e�r�m�i�t�e� �m�a�n�t�e�n�e�r� �e�l� �p�a�q�u�e�t�e� �p���b�l�i�c�o� �e�n� �n�p�m� �m�i�e�n�t�r�a�s� �c�o�n�t�r�o�l�a�s� �q�u�i���n� �p�u�e�d�e� �u�s�a�r�l�o�.� � � � �#�#�#� ��C�a�r�a�c�t�e�r���s�t�i�c�a�s� �d�e�l� �S�i�s�t�e�m�a�:�� � � � �-� �' ��C�o�n�t�r�o�l� �U�n�i�v�e�r�s�a�l��:� �T�o�d�o�s� �l�o�s� �c�o�m�p�o�n�e�n�t�e�s� �t�i�e�n�e�n� �v�e�r�s�i�o�n�e�s� �c�o�n� �y� �s�i�n� �a�c�c�e�s�s� �c�o�n�t�r�o�l� � �-� �' ��V�a�l�i�d�a�c�i���n� �A�u�t�o�m���t�i�c�a��:� �V�e�r�i�f�i�c�a�c�i���n� �a�u�t�o�m���t�i�c�a� �d�e� �c�l�a�v�e�s� �d�e� �a�c�c�e�s�o� � �-� �' ��M�a�n�e�j�o� �d�e� �E�r�r�o�r�e�s��:� �M�e�n�s�a�j�e�s� �c�l�a�r�o�s� �c�u�a�n�d�o� �e�l� �a�c�c�e�s�o� �e�s� �d�e�n�e�g�a�d�o� � �-� �' ��F�l�e�x�i�b�i�l�i�d�a�d��:� �C�o�n�f�i�g�u�r�a�c�i���n� �p�e�r�s�o�n�a�l�i�z�a�b�l�e� �d�e� �c�l�a�v�e�s� �y� �v�a�l�i�d�a�c�i�o�n�e�s� � � � �#�#�#� ��U�s�o� �B���s�i�c�o�:�� � � � ��t�y�p�e�s�c�r�i�p�t� � �/�/� �I�m�p�o�r�t�a�r� �u�t�i�l�i�d�a�d�e�s� �d�e� �a�c�c�e�s�s� �c�o�n�t�r�o�l� � �i�m�p�o�r�t� �{� � � � � �s�e�t�A�c�c�e�s�s�K�e�y�,� � � � � �v�a�l�i�d�a�t�e�A�c�c�e�s�s�,� � � � � �W�h�a�t�s�A�p�p�B�u�t�t�o�n�W�i�t�h�A�c�c�e�s�s� � � �}� �f�r�o�m� �'�p�u�s�h�-�o�r�b�i�t�a�-�u�t�i�l�s�'�;� � � � �/�/� �E�s�t�a�b�l�e�c�e�r� �c�l�a�v�e� �d�e� �a�c�c�e�s�o� � �s�e�t�A�c�c�e�s�s�K�e�y�(�'�m�a�u�r�o�_�t�e�s�t�_�k�e�y�'�)�;� � � � �/�/� �U�s�a�r� �c�o�m�p�o�n�e�n�t�e�s� �c�o�n� �a�c�c�e�s�s� �c�o�n�t�r�o�l� � �c�o�n�s�t� �A�p�p� �=� �(�)� �=�>� �{� � � � �r�e�t�u�r�n� �<�W�h�a�t�s�A�p�p�B�u�t�t�o�n�W�i�t�h�A�c�c�e�s�s� �p�h�o�n�e�N�u�m�b�e�r�=�"�1�2�3�4�5�6�7�8�9�"� �/�>�;� � �}�;� � �� � � � �#�#�#� ��=��� �[�D�o�c�u�m�e�n�t�a�c�i���n� �C�o�m�p�l�e�t�a� �d�e�l� �S�i�s�t�e�m�a� �d�e� �C�o�n�t�r�o�l� �d�e� �A�c�c�e�s�o�]�(�.�/�d�o�c�s�/�A�C�C�E�S�S�_�C�O�N�T�R�O�L�_�C�O�M�P�L�E�T�E�.�m�d�)�� � � � ���&� �I�M�P�O�R�T�A�N�T�E��:� �A�l� �f�i�n�a�l�i�z�a�r� �c�a�d�a� �f�e�a�t�u�r�e�,� �S�I�E�M�P�R�E�:� � �1�.� ��I�m�p�l�e�m�e�n�t�a�r� �e�l� �s�i�s�t�e�m�a� �d�e� �c�o�n�t�r�o�l� �d�e� �a�c�c�e�s�o�� � �2�.� ��C�r�e�a�r� �v�e�r�s�i���n� �s�e�g�u�r�a� �d�e�l� �c�o�m�p�o�n�e�n�t�e�/�h�o�o�k�/�a�d�a�p�t�a�d�o�r�� � �3�.� ��V�e�r�i�f�i�c�a�r� �q�u�e� �t�o�d�a�s� �l�a�s� �e�x�p�o�r�t�a�c�i�o�n�e�s� �e�s�t���n� �c�o�r�r�e�c�t�a�s�� � �4�.� ��E�j�e�c�u�t�a�r� ��n�p�m� �r�u�n� �b�u�i�l�d�� �p�a�r�a� �c�o�n�f�i�r�m�a�r� �q�u�e� �n�o� �h�a�y� �e�r�r�o�r�e�s�� � �5�.� ��P�r�o�b�a�r� �l�a�s� �i�m�p�o�r�t�a�c�i�o�n�e�s� �e�n� �u�n� �p�r�o�y�e�c�t�o� �d�e� �e�j�e�m�p�l�o�� � � � �-�-�-� � � � �#�#� �=��� ��D�o�c�u�m�e�n�t�a�c�i���n� �A�d�i�c�i�o�n�a�l�� � � � �-� �[�=��� �D�o�c�u�m�e�n�t�a�c�i���n� �d�e� �H�o�o�k�s�]�(�.�/�s�r�c�/�f�e�a�t�u�r�e�s�/�h�o�o�k�s�/�d�o�c�s�/�R�E�A�D�M�E�.�m�d�)� � �-� �[�=�� �D�o�c�u�m�e�n�t�a�c�i���n� �d�e� �A�d�a�p�t�a�d�o�r�e�s�]�(�.�/�s�r�c�/�f�e�a�t�u�r�e�s�/�a�d�a�p�t�e�r�s�/�d�o�c�s�/�R�E�A�D�M�E�.�m�d�)� � �-� �[�=��� �D�o�c�u�m�e�n�t�a�c�i���n� �d�e� �C�R�U�D�]�(�.�/�s�r�c�/�f�e�a�t�u�r�e�s�/�c�r�u�d�/�d�o�c�s�/�R�E�A�D�M�E�.�m�d�)� � �-� �[�=��� �D�o�c�u�m�e�n�t�a�c�i���n� �d�e� �F�o�r�m�u�l�a�r�i�o�s�]�(�.�/�s�r�c�/�f�e�a�t�u�r�e�s�/�f�o�r�m�s�/�d�o�c�s�/�R�E�A�D�M�E�.�m�d�)� � � � �-�-�-� � � � �#�#� �>�� ��C�o�n�t�r�i�b�u�c�i���n�� � � � �1�.� �F�o�r�k� �e�l� �r�e�p�o�s�i�t�o�r�i�o� � �2�.� �C�r�e�a� �u�n�a� �r�a�m�a� �p�a�r�a� �t�u� �f�e�a�t�u�r�e� �(��g�i�t� �c�h�e�c�k�o�u�t� �-�b� �f�e�a�t�u�r�e�/�A�m�a�z�i�n�g�F�e�a�t�u�r�e��)� � �3�.� �C�o�m�m�i�t� �t�u�s� �c�a�m�b�i�o�s� �(��g�i�t� �c�o�m�m�i�t� �-�m� �'�A�d�d� �s�o�m�e� �A�m�a�z�i�n�g�F�e�a�t�u�r�e�'��)� � �4�.� �P�u�s�h� �a� �l�a� �r�a�m�a� �(��g�i�t� �p�u�s�h� �o�r�i�g�i�n� �f�e�a�t�u�r�e�/�A�m�a�z�i�n�g�F�e�a�t�u�r�e��)� � �5�.� �A�b�r�e� �u�n� �P�u�l�l� �R�e�q�u�e�s�t� � � � �-�-�-� � � � �#�#� �=��� ��L�i�c�e�n�c�i�a�� � � � �E�s�t�e� �p�r�o�y�e�c�t�o� �e�s�t��� �b�a�j�o� �l�a� �l�i�c�e�n�c�i�a� �M�I�T�.� �V�e�r� �e�l� �a�r�c�h�i�v�o� �[�L�I�C�E�N�S�E�]�(�L�I�C�E�N�S�E�)� �p�a�r�a� �m���s� �d�e�t�a�l�l�e�s�.� � � � �-�-�-� � � � �#�#� �<ؘ� ��S�o�p�o�r�t�e�� � � � �S�i� �t�i�e�n�e�s� �a�l�g�u�n�a� �p�r�e�g�u�n�t�a� �o� �n�e�c�e�s�i�t�a�s� �a�y�u�d�a�:� � � � �-� �=��� �E�m�a�i�l�:� �s�o�p�o�r�t�e�@�p�u�s�h�-�o�r�b�i�t�a�.�c�o�m� � �-� �=ج� �D�i�s�c�o�r�d�:� �[�C�a�n�a�l� �d�e� �S�o�p�o�r�t�e�]�(�h�t�t�p�s�:�/�/�d�i�s�c�o�r�d�.�g�g�/�p�u�s�h�-�o�r�b�i�t�a�)� � �-� �=��� �D�o�c�u�m�e�n�t�a�c�i���n�:� �[�d�o�c�s�.�p�u�s�h�-�o�r�b�i�t�a�.�c�o�m�]�(�h�t�t�p�s�:�/�/�d�o�c�s�.�p�u�s�h�-�o�r�b�i�t�a�.�c�o�m�)� � � � �-�-�-� � � � ����D�i�s�f�r�u�t�a� �c�r�e�a�n�d�o� �f�o�r�m�u�l�a�r�i�o�s� �d�i�n���m�i�c�o�s� �y� �p�o�t�e�n�t�e�s� �c�o�n� �n�u�e�s�t�r�a�s� �4� �f�e�a�t�u�r�e�s� �i�n�t�e�g�r�a�d�a�s�!� �<؉�� � �