<?xml version="1.0" encoding="UTF-8"?><UModel version="8"><Settings ReadJavaDocs="true" WriteJavaDocs="true"/><OpenDiagrams activeDiagram="ec9f6a51-3681-480d-9893-34bb4d8a483d"><OpenDiagramEntry>b1ded86f-cd68-4f78-a0aa-ff762c2240d9</OpenDiagramEntry><OpenDiagramEntry>bdb91ec2-6692-4ab3-84a8-aa54712e77d7</OpenDiagramEntry><OpenDiagramEntry>2e8e659d-f7e8-404f-bcff-8bd073ed9a00</OpenDiagramEntry><OpenDiagramEntry>1084f357-4cd6-44cd-8b48-34881e13646d</OpenDiagramEntry><OpenDiagramEntry>23fb6097-38fa-4604-86e6-43ec6f76fa4d</OpenDiagramEntry><OpenDiagramEntry>c2820cc2-ddab-4040-92df-7919899d3f52</OpenDiagramEntry><OpenDiagramEntry>748c723d-5319-4dec-9565-fe94f6e3ae76</OpenDiagramEntry><OpenDiagramEntry>46283dc7-218a-4542-a566-25bec1336faa</OpenDiagramEntry><OpenDiagramEntry>923f9c24-d247-48f9-bd48-dc21c4b24971</OpenDiagramEntry><OpenDiagramEntry>2ed311c6-44e5-46a8-a5c3-940ac1aa84e2</OpenDiagramEntry><OpenDiagramEntry>0c04fd52-734b-4cbc-88b9-f26d37bf3ec1</OpenDiagramEntry><OpenDiagramEntry>a7d1b996-7548-4839-a01c-2be03be417ac</OpenDiagramEntry><OpenDiagramEntry>0f891fbb-6c3b-45d0-b10b-f06032193d77</OpenDiagramEntry><OpenDiagramEntry>82289f50-6391-4df9-a699-14ad7492443c</OpenDiagramEntry><OpenDiagramEntry>ec9f6a51-3681-480d-9893-34bb4d8a483d</OpenDiagramEntry></OpenDiagrams><Model><Package uuid="00000001-7510-11d9-86f2-000476a22f44" name="Root" visibility="public"><ownedComment><Comment uuid="3e4b09e2-b6a9-4221-90c2-3b9f49756dbe" body="Initialisé au démarrage puis plus jamais modifié.
Permet les accés concurrent.
RuleChecker permet de trouver si une règle valide un header HTTP."><annotatedElement idref="6f4941b9-a065-4996-b298-f878423dd6b2"/></Comment></ownedComment><packagedElement><Package uuid="00000003-7510-11d9-86f2-000476a22f44" name="Component View" visibility="public"><ownedComment><Comment uuid="6227f180-5b70-40d1-94e5-05d94ba92189" body="Règles QoS émission/reception différentes"><annotatedElement idref="eea8970d-e7d2-4cca-98e3-843ea444b42e"/></Comment><Comment uuid="4c593fc2-123f-447b-bd7a-5714fe38abe0" body="Si indéfinit, le proxy filtre la requete et retourne une erreur."><annotatedElement idref="53ae50d8-1586-4213-a7db-ce22cfa73fd8"/></Comment><Comment uuid="c2ba0c3f-4839-41c8-825e-cbaf015e5464" body="Simple fichier. (Unix like)"><annotatedElement idref="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/></Comment><Comment uuid="004110ad-6188-403a-9663-3bc5c2508033" body="L&apos;ordres des règles QoS est
importante. (Comme NetFilter)"><annotatedElement idref="eea8970d-e7d2-4cca-98e3-843ea444b42e"/></Comment><Comment uuid="dd7565b6-161b-4130-8952-fb037d1d5fc8" body="Si ressources semble périmée, demande au
serveur."><annotatedElement idref="319c572e-fa3d-401c-874a-20d63dced51b"/></Comment><Comment uuid="960e8b56-dd5c-4032-9985-611a4c4015d1" body="Elements le moins utilisé supprimé en premier."><annotatedElement idref="d0a38e71-d9bd-44c1-a785-6d2220c6240f"/></Comment><Comment uuid="7d537039-95ed-4f7c-8b47-39fb67ca886a" body="Requête multicast"><annotatedElement idref="8e94b40e-f2a8-483b-92be-4d415c09f825"/></Comment></ownedComment><packagedElement><Component uuid="4a3f7144-1308-420e-ad49-49f38d4f7746" name="cache" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\cache"><realization><ComponentRealization uuid="b1ddf3f8-2306-442a-95f3-953e305760f2" visibility="public" realizingClassifier="577b6386-052f-4b41-a12e-dc413d128bdb"/><ComponentRealization uuid="22bcfebf-355b-40dc-bec7-11420aa3f0c2" visibility="public" realizingClassifier="e44596f5-84fe-4ede-85b2-d4360328ef30"/><ComponentRealization uuid="183c316a-5161-4200-9429-be7a411f8944" visibility="public" realizingClassifier="9ba1afce-c166-4940-b987-d5033d97422f"/><ComponentRealization uuid="65f62cfa-8859-4c1f-82a4-f81bb5fa9741" visibility="public" realizingClassifier="b4fbbb5e-ccb3-4e67-8a33-2a7156362c09"/><ComponentRealization uuid="58bc43d7-a7f7-4e50-ae3d-8e33bb2b3655" visibility="public" realizingClassifier="f24bb013-bc15-4380-8dcd-7d3afadf49da"/><ComponentRealization uuid="3e61f09f-24c0-4533-aff4-db15bbd4fc43" visibility="public" realizingClassifier="4cbd4b4f-70f2-4e0e-8e31-1867bdc95e67"/></realization></Component><Component uuid="062a1084-835f-4903-bebd-9401ba761e82" name="communication" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\communication"><realization><ComponentRealization uuid="d9cdb18b-78ce-4f79-ac95-90f16108c4d5" visibility="public" realizingClassifier="0b3153ed-1fe4-4739-a92c-22aef6084880"/><ComponentRealization uuid="b2a8931b-c475-457e-8beb-bcc1e24f2792" visibility="public" realizingClassifier="ae1de26b-4144-4410-8eb5-276e998c7c7b"/><ComponentRealization uuid="a2c69441-ef69-4262-8c97-ccf410a752bd" visibility="public" realizingClassifier="198256f8-6f68-40c6-8818-e9e32eb46cbb"/><ComponentRealization uuid="9e4f19f1-1db5-4ac6-b592-bacf3a505509" visibility="public" realizingClassifier="6ab96bec-6356-4ab8-99c2-86062c2a87b4"/></realization></Component><Component uuid="255aab19-cf61-4aa8-89cc-945cec70b166" name="transfer" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\communication\transfer"><realization><ComponentRealization uuid="0f517401-b134-45d7-b198-45179d410bd5" visibility="public" realizingClassifier="c23aa30f-f714-44bb-861f-46617e2d21bf"/><ComponentRealization uuid="be55587c-b52d-47bd-8e7a-ad840a1440ba" visibility="public" realizingClassifier="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"/><ComponentRealization uuid="d815f8c0-37af-4111-8d9c-f2e57b3e3f13" visibility="public" realizingClassifier="9fa974e1-051f-4a36-acb7-f7116a577746"/><ComponentRealization uuid="f1f8e885-5e5e-48e3-afaf-eef97aa2bb4d" visibility="public" realizingClassifier="901fab39-5ad6-4f60-8a3a-998010e22b26"/></realization></Component><Component uuid="72cc3317-2f6d-4a30-a2a9-9d870c9f06d6" name="http" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\http"><realization><ComponentRealization uuid="b8b2dc88-9a7e-4eed-b6d3-eb9853c159f0" visibility="public" realizingClassifier="5508e5af-23d7-4ef4-9edd-271a111046a7"/><ComponentRealization uuid="d454b494-37c0-4b8e-b053-1a75a71ce8da" visibility="public" realizingClassifier="2458fe88-04c5-40d6-ae8c-75bc48716877"/><ComponentRealization uuid="a4fed928-83bf-48fb-9360-94bf8f3ce9c5" visibility="public" realizingClassifier="566b0c6f-cb93-41a5-a2d2-6afbb79e36f8"/><ComponentRealization uuid="59a5b32a-ff10-40c6-b08c-25a38ba95cc5" visibility="public" realizingClassifier="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ComponentRealization uuid="84116851-a084-4e6b-9b12-11df81f04251" visibility="public" realizingClassifier="da3a924a-f230-4204-9d41-9644faea3cf9"/><ComponentRealization uuid="0ebc5be9-af29-464e-bab5-d028962bccba" visibility="public" realizingClassifier="4bf56833-9631-46bf-a82b-2c51f93433f3"/></realization></Component><Component uuid="58e89e94-9ee5-4bd5-90b1-11e9fd576e3f" name="rules" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\rules"><realization><ComponentRealization uuid="36b80aa5-760f-40fc-b2bc-f553d30bbfa7" visibility="public" realizingClassifier="13b04fce-67a2-4c3e-8332-1a0abded9174"/><ComponentRealization uuid="07780a70-04c5-42da-8cef-fb1b0fc6ab94" visibility="public" realizingClassifier="050cecf9-589d-4a8e-8705-ad03fd6542c5"/><ComponentRealization uuid="764ee72e-e528-4c55-b492-255e3ef3e22c" visibility="public" realizingClassifier="51b56fa0-2f71-4d48-b767-6cd8f21a8846"/></realization></Component><Association uuid="53a03f50-5cc3-4e16-b6b9-74e8f99e851e" visibility="public"><ownedEnd><Property uuid="01db5ff3-58d7-4ef2-9b56-8c34fa0aadf8" visibility="protected" type="6a3b798a-bc4f-407d-9eea-3147fc8fbbad"/><Property uuid="40bf561a-1bb8-4d6e-88cb-0b3a24606fe8" visibility="protected" type="ef96a864-6ef0-4844-be9b-3326a90b9f25"/></ownedEnd></Association><Association uuid="924571c6-bf9c-42e2-96b5-54e1f3264cca" visibility="public"><ownedEnd><Property uuid="b4430e2c-f489-4350-aeb0-7209ed4018c0" visibility="protected" type="17cae621-671b-443a-b7f9-9670609dd834"/><Property uuid="2266f444-0364-46fe-a9c8-feed815b32d0" visibility="protected" type="6a3b798a-bc4f-407d-9eea-3147fc8fbbad"/></ownedEnd></Association><Association uuid="56b8172e-3c6c-4de5-a4fc-90949a8034b2" visibility="public"><ownedEnd><Property uuid="7edac197-f3bf-4ad4-938a-6c7007287490" visibility="protected" type="d730f6c0-8139-4dcf-8f3d-3ad57ba46ca0"/><Property uuid="bd8d115d-4a04-4f77-b0ef-23795b2bde56" visibility="protected" type="17d6a6eb-4cfd-424c-9dde-a5b32b5a2989"/></ownedEnd></Association><Association uuid="e3691432-f245-4d5c-b09b-15185469befa" visibility="public"><ownedEnd><Property uuid="84485e3f-5bd6-484d-87ac-e304bb756306" visibility="protected" type="f46392e6-ddc2-49f6-975f-ca21c64079b5"/><Property uuid="c550408f-ef1c-48b7-a7d6-e417fd34258b" visibility="protected" type="17d6a6eb-4cfd-424c-9dde-a5b32b5a2989"/></ownedEnd></Association><Association uuid="6d6938e6-7f14-42eb-adf0-99666d788de9" visibility="public"><ownedEnd><Property uuid="d9d1ccd7-5bae-4127-9bb1-8baee83a91c2" visibility="protected" type="eea8970d-e7d2-4cca-98e3-843ea444b42e"/><Property uuid="b7d44c4c-3e02-4075-8836-a947d033e17e" visibility="protected" type="d730f6c0-8139-4dcf-8f3d-3ad57ba46ca0"/></ownedEnd></Association><Association uuid="65f7a0e9-ccf0-44d2-8451-5217ff3370f0" visibility="public"><ownedEnd><Property uuid="fb59d89e-d133-4ba2-a4b1-a7a33d3f3ab1" visibility="protected" type="eea8970d-e7d2-4cca-98e3-843ea444b42e"/><Property uuid="8ec52974-498d-4893-801a-5fd26fb009fb" visibility="protected" type="f46392e6-ddc2-49f6-975f-ca21c64079b5"/></ownedEnd></Association><Association uuid="672d3a15-a60a-4fce-bf2a-71eb022a966e" visibility="public"><ownedEnd><Property uuid="6f966edb-1145-4e85-a903-f12113c43b7f" visibility="protected" type="eea8970d-e7d2-4cca-98e3-843ea444b42e"/><Property uuid="0306854f-d09f-436b-b6f9-9fc20d1c5829" visibility="protected" type="4381c9c7-ebcf-4aee-96a5-bbd751c48d76"/></ownedEnd></Association><Association uuid="6c96ffd0-baab-4a5b-a732-c06b117e8311" visibility="public"><ownedEnd><Property uuid="65b81733-7daf-46e8-971a-f352f5203558" visibility="protected" type="a4bc929a-20da-4031-940a-50f5260966d7"/><Property uuid="c9624ae1-a087-4d93-8774-1f737400dcae" visibility="protected" type="eea8970d-e7d2-4cca-98e3-843ea444b42e"/></ownedEnd></Association><Association uuid="1deaf6d2-47d8-4a06-ad2c-6f19504083de" visibility="public"><ownedEnd><Property uuid="e2583c4e-b914-4c7e-aff1-9318f7f011e2" visibility="protected" type="eea8970d-e7d2-4cca-98e3-843ea444b42e"/><Property uuid="da04629d-e092-4d96-9eb2-c4e881ac3a61" visibility="protected" type="53ae50d8-1586-4213-a7db-ce22cfa73fd8"/></ownedEnd></Association><Association uuid="a8754b27-772d-463c-8bfc-824458230ec3" visibility="public"><ownedEnd><Property uuid="41b93bd3-5e69-4015-b4de-f3ef8f1d4f37" visibility="protected" type="652f9c70-9bc9-465f-8676-09a485330d30"/><Property uuid="9ef5e82d-2f28-42f9-8ba4-5472355ca9d1" visibility="protected" type="eea8970d-e7d2-4cca-98e3-843ea444b42e"/></ownedEnd></Association><Association uuid="efb9fac7-06c9-4322-bcd6-eb8cfb2377da" visibility="public"><ownedEnd><Property uuid="5e554913-bea9-444f-af32-96c56af7947f" visibility="protected" type="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/><Property uuid="69557566-8ea7-4971-a188-4320f413a5ba" visibility="protected" type="e20521f8-542a-460b-af78-7a48fab92319"/></ownedEnd></Association><Association uuid="9a7e64b0-7bfb-4d75-8dc9-937504b1a21e" visibility="public"><ownedEnd><Property uuid="84713d5d-6e46-4120-babd-59f18ca5e387" visibility="protected" type="4381c9c7-ebcf-4aee-96a5-bbd751c48d76"/><Property uuid="0630df6e-e608-4c1f-8159-e4318f3481fe" visibility="protected" type="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/></ownedEnd></Association><Association uuid="ffbb3276-9de4-4d07-b745-95dfe9cdaeda" visibility="public"><ownedEnd><Property uuid="9d8db0ee-f3e9-4ce8-965d-37d96b3c4255" visibility="protected" type="a4bc929a-20da-4031-940a-50f5260966d7"/><Property uuid="dbf364c8-d020-4943-854a-a6151e80822c" visibility="protected" type="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/></ownedEnd></Association><Association uuid="4aded2fd-df48-415b-8765-8e0beb573c10" visibility="public"><ownedEnd><Property uuid="3c70855b-e5bd-4388-a34b-303e38e01dc1" visibility="protected" type="53ae50d8-1586-4213-a7db-ce22cfa73fd8"/><Property uuid="f3544137-dd5d-4ae7-b028-48a2ab65bc10" visibility="protected" type="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/></ownedEnd></Association><Association uuid="f8d333c9-150b-42e1-b60b-d3959ccaea50" visibility="public"><ownedEnd><Property uuid="39db2267-3eeb-4532-ad62-87e970ed73b8" visibility="protected" type="652f9c70-9bc9-465f-8676-09a485330d30"/><Property uuid="6a45e768-cb2b-4b08-9b67-845875ffbae5" visibility="protected" type="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/></ownedEnd></Association><Association uuid="9e55ce09-b406-49e0-897b-6ecfec973309" visibility="public"><ownedEnd><Property uuid="e229d483-43ac-466e-9c3d-d0872c3b9a58" visibility="protected" type="8a98bf31-f03a-433a-99a9-d0dcf391ddd6"/><Property uuid="b81de225-3ec7-4afd-aad2-da347773ab45" visibility="protected" type="b687a885-6c10-4f34-8546-70c5eedf78c1"/></ownedEnd></Association><Association uuid="0e4cbef7-a29a-4b89-9f5a-17fe4da676a1" visibility="public"><ownedEnd><Property uuid="af5ec65f-3160-413a-91de-0dee31d472d0" visibility="protected" type="418062aa-96f1-4628-9304-16797890cc00"/><Property uuid="a31e9d84-2933-40e6-9aa4-8c751da79c13" visibility="protected" type="b687a885-6c10-4f34-8546-70c5eedf78c1"/></ownedEnd></Association><Association uuid="4d512d0c-ae58-4c64-b2f3-c21e74bdbd40" visibility="public"><ownedEnd><Property uuid="eed9baf1-1318-4e80-9767-91065e409cd5" visibility="protected" type="b1d00397-f445-4737-a832-5181de9987b3"/><Property uuid="0c972e33-682c-4fb0-ad64-bc0b605b7f14" visibility="protected" type="418062aa-96f1-4628-9304-16797890cc00"/></ownedEnd></Association><Association uuid="bd16ffe9-54cd-4356-82f1-687ce29e9c1b" visibility="public"><ownedEnd><Property uuid="a9dc63ca-9442-4612-9a9c-c2b23e335471" visibility="protected" type="4e650f65-c46e-40ca-8567-f5c9363f25e3"/><Property uuid="42df9a41-64ee-4437-a99d-8f91daa4d86e" visibility="protected" type="b1d00397-f445-4737-a832-5181de9987b3"/></ownedEnd></Association><Association uuid="649f9d11-183f-498c-9e87-25f77a784be2" visibility="public"><ownedEnd><Property uuid="8f3fe573-921e-4d80-8d7d-8c4b4b7ad420" visibility="protected" type="b1d00397-f445-4737-a832-5181de9987b3"/><Property uuid="134473ea-d31f-4fe5-ba9d-a3bda1f448aa" visibility="protected" type="c62695d7-65fa-4660-9cc0-fb7c3bab4eb1"/></ownedEnd></Association><Association uuid="632af30d-3149-4b1e-a819-7c9d26a5608e" visibility="public"><ownedEnd><Property uuid="63471fd2-c63b-4411-b5f9-813f81d30616" visibility="protected" type="d0a38e71-d9bd-44c1-a785-6d2220c6240f"/><Property uuid="f7752ec6-9920-46cb-b45f-51224f07ca3e" visibility="protected" type="418062aa-96f1-4628-9304-16797890cc00"/></ownedEnd></Association><Association uuid="b46ebb67-8f3f-47cf-b4e4-1b8dca20e2af" visibility="public"><ownedEnd><Property uuid="e2206412-09be-44eb-bbb2-30526c6b2d32" visibility="protected" type="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/><Property uuid="e92f3c52-a2dc-47de-9e61-28333e0242b8" visibility="protected" type="b1d00397-f445-4737-a832-5181de9987b3"/></ownedEnd></Association><Association uuid="6fed4fc4-7aab-491f-aa3b-a98271e15053" visibility="public"><ownedEnd><Property uuid="1ef2a2fb-b0a1-4c77-a27a-934cda5816cf" visibility="protected" type="8e94b40e-f2a8-483b-92be-4d415c09f825"/><Property uuid="4f7dbb2c-c9d9-492d-8cd1-7a7846a4cad4" visibility="protected" type="d9d0150f-7790-4a35-90d5-f08731584765"/></ownedEnd></Association><Association uuid="3a4535ae-bec0-471a-9360-c458c26b1f8e" visibility="public"><ownedEnd><Property uuid="59d25fe3-ca53-4652-bb6b-4a08348f8c6c" visibility="protected" type="325de3aa-b7c8-47b3-b3ba-083cebe54233"/><Property uuid="ff684ed2-d5e2-40b4-8fd1-38e4811383b3" visibility="protected" type="8e94b40e-f2a8-483b-92be-4d415c09f825"/></ownedEnd></Association><Association uuid="b93f08c1-50ab-4ee2-bd26-0d11a6e70dd9" visibility="public"><ownedEnd><Property uuid="879e0dd5-4d80-4783-9645-83da113b759e" visibility="protected" type="b1d00397-f445-4737-a832-5181de9987b3"/><Property uuid="71e5d3da-f1fa-4924-b7a5-7d2df420baa0" visibility="protected" type="79751463-d87f-444b-b164-91b1911940b1"/></ownedEnd></Association><Association uuid="44b8ffc7-d501-4d29-a188-4ddccdc660a5" visibility="public"><ownedEnd><Property uuid="be79b785-d8a3-47d0-9b8e-ae85a3f54e76" visibility="protected" type="f414604b-d19a-45c7-8796-370fdf50917e"/><Property uuid="41417a97-12a2-405c-a6f9-5a3a568d3bd1" visibility="protected" type="e20521f8-542a-460b-af78-7a48fab92319"/></ownedEnd></Association><Association uuid="d09f4e6c-4268-48b0-8754-1f70eeb1e2ee" visibility="public"><ownedEnd><Property uuid="1f7f5edd-aac6-42ac-95f3-4c4b4e2955b9" visibility="protected" type="f414604b-d19a-45c7-8796-370fdf50917e"/><Property uuid="3d351b12-2227-4dd1-83bf-b9a124ad0163" visibility="protected" type="d37128c3-aea6-488f-9dfa-a9fed431b799"/></ownedEnd></Association><Association uuid="4bc3d86e-ae17-4d48-8854-c6de7420a2d2" visibility="public"><ownedEnd><Property uuid="fdd0a5f1-476d-42d6-a8d6-52e487d5eaf0" visibility="protected" type="46d35208-a1f1-4f96-98e4-136e80ef4986"/><Property uuid="24658c05-2d66-45b7-be89-3406ed08530f" visibility="protected" type="f414604b-d19a-45c7-8796-370fdf50917e"/></ownedEnd></Association><Association uuid="f8e6bd5a-a5be-41f9-a63d-c0a7abc551d8" visibility="public"><ownedEnd><Property uuid="8bc28d84-526e-437e-9eee-bd8736dd77ac" visibility="protected" type="cad5dcee-f5c3-446b-b558-28d7b7444243"/><Property uuid="4d01f950-23c5-40ad-928e-78feba32d91d" visibility="protected" type="f414604b-d19a-45c7-8796-370fdf50917e"/></ownedEnd></Association><Association uuid="370e0a16-3482-42f5-959d-5ea00408fd04" visibility="public"><ownedEnd><Property uuid="9fa739b3-a84a-4cac-be1d-2254a442d9aa" visibility="protected" type="0d248faf-1d9d-4220-8c9a-8c5134f28fbe"/><Property uuid="d002caad-d990-426e-9b9c-7ee1c01314f5" visibility="protected" type="e20521f8-542a-460b-af78-7a48fab92319"/></ownedEnd></Association></packagedElement></Package><Package uuid="75acf7ff-7c86-4a1c-88c0-d8423f2e777c" name="Use cases" visibility="public"><ownedComment><Comment uuid="5f37648e-e887-4206-a5ba-5cea17ce65cd" body="Voir Cache local"><annotatedElement idref="b687a885-6c10-4f34-8546-70c5eedf78c1"/><textHyperlink><CommentTextHyperlink uuid="10aad36b-caa2-451b-87a4-12fdb94e016e" startPos="5" length="11"><ownedHyperlink><Hyperlink2GuiElement uuid="2739a1a5-7166-4304-a1f2-255219e81289" hyperlinkedGuiElement="b1ded86f-cd68-4f78-a0aa-ff762c2240d9"/></ownedHyperlink></CommentTextHyperlink></textHyperlink></Comment><Comment uuid="2c1c985f-e0ab-4958-93b3-82e0ce85c3c6" body="RFC HTTP 1.1 QoS (que l&apos;on fait)"><annotatedElement idref="6eb21384-34b7-4ca4-83cf-b01d315750a7"/></Comment><Comment uuid="889feaa2-1035-45f3-ad2d-effb3f051d79" body="TCP Unicast"><annotatedElement idref="cb69f661-de3d-4b35-a543-827ff9e3e4c8"/></Comment></ownedComment><packagedElement><UseCase uuid="b687a885-6c10-4f34-8546-70c5eedf78c1" name="Cache local" visibility="public"/><UseCase uuid="6a3b798a-bc4f-407d-9eea-3147fc8fbbad" name="Communique" visibility="public"><include><Include uuid="08f25bbf-67a4-427a-ab1c-4bc7ec3f0f76" addition="17d6a6eb-4cfd-424c-9dde-a5b32b5a2989"/><Include uuid="d3eb620a-5af5-498a-a01d-d37edb812198" addition="b687a885-6c10-4f34-8546-70c5eedf78c1"/></include></UseCase><UseCase uuid="f8128733-d029-4faf-9c8f-6d468d36561f" name="Compression" visibility="public"/><UseCase uuid="5ecf2657-5fd3-4154-bb96-6437aadc1fff" name="Configure" visibility="public"/><UseCase uuid="53ae50d8-1586-4213-a7db-ce22cfa73fd8" name="Debit maximale" visibility="public"/><UseCase uuid="a4bc929a-20da-4031-940a-50f5260966d7" name="Debit minimal garanti" visibility="public"/><UseCase uuid="8e94b40e-f2a8-483b-92be-4d415c09f825" name="Demande de cache" visibility="public"><include><Include uuid="55f9bc2f-1571-4f9e-a363-3de57a0f40f2" addition="4b0cc687-f76e-43e9-8424-1636efa4a0fb"/><Include uuid="11dbab39-d8a2-472d-b864-0f0c98dcf6bc" addition="cb69f661-de3d-4b35-a543-827ff9e3e4c8"/></include></UseCase><UseCase uuid="d730f6c0-8139-4dcf-8f3d-3ad57ba46ca0" name="Emission" visibility="public"/><UseCase uuid="cad5dcee-f5c3-446b-b558-28d7b7444243" name="Etat d&apos;occupation du cache" visibility="public"><include><Include uuid="2bccc221-4d0c-4a84-8415-a93bcb6f2c42" addition="738b1f62-f823-4d44-b532-7b98e9cf9f3f"/></include></UseCase><UseCase uuid="46d35208-a1f1-4f96-98e4-136e80ef4986" name="Etat de la QoS" visibility="public"/><UseCase uuid="debbf243-6bb7-48d2-a38e-542c649dfd96" name="Expression régulière sur l&apos;URL" visibility="public"><extend><Extend uuid="2b44a793-11a8-4dd3-9493-796fb762cc48" extendedCase="4381c9c7-ebcf-4aee-96a5-bbd751c48d76"/><Extend uuid="ab327a21-04c6-4aa3-845d-5745e1452318" extendedCase="4e650f65-c46e-40ca-8567-f5c9363f25e3"/></extend></UseCase><UseCase uuid="4e650f65-c46e-40ca-8567-f5c9363f25e3" name="Identification" visibility="public"/><UseCase uuid="4381c9c7-ebcf-4aee-96a5-bbd751c48d76" name="Identification règle" visibility="public"/><UseCase uuid="d37128c3-aea6-488f-9dfa-a9fed431b799" name="Parametres de configurations" visibility="public"/><UseCase uuid="652f9c70-9bc9-465f-8676-09a485330d30" name="Poids de priorité" visibility="public"/><UseCase uuid="17d6a6eb-4cfd-424c-9dde-a5b32b5a2989" name="QoS" visibility="public"/><UseCase uuid="f46392e6-ddc2-49f6-975f-ca21c64079b5" name="Reception" visibility="public"/><UseCase uuid="738b1f62-f823-4d44-b532-7b98e9cf9f3f" name="Ressources caches" visibility="public"/><UseCase uuid="8a98bf31-f03a-433a-99a9-d0dcf391ddd6" name="Ressources stockées" visibility="public"/><UseCase uuid="b1d00397-f445-4737-a832-5181de9987b3" name="Règle de stockage" visibility="public"/><UseCase uuid="eea8970d-e7d2-4cca-98e3-843ea444b42e" name="Règles QoS" visibility="public"/><UseCase uuid="79751463-d87f-444b-b164-91b1911940b1" name="Status Données privées" visibility="public"/><UseCase uuid="418062aa-96f1-4628-9304-16797890cc00" name="Stockage de l&apos;élément dans le cache" visibility="public"><include><Include uuid="e88b2db8-8b82-43e3-ae50-ba49e961b349" addition="f8128733-d029-4faf-9c8f-6d468d36561f"/></include></UseCase><UseCase uuid="d0a38e71-d9bd-44c1-a785-6d2220c6240f" name="Suppression ancien elements" visibility="public"/><UseCase uuid="c62695d7-65fa-4660-9cc0-fb7c3bab4eb1" name="Taille maximale du cache" visibility="public"/><UseCase uuid="cb69f661-de3d-4b35-a543-827ff9e3e4c8" name="Téléchargement du cache local" visibility="public"/><UseCase uuid="4b0cc687-f76e-43e9-8424-1636efa4a0fb" name="URI Cryptée du cache ayant la ressource" visibility="public"/><UseCase uuid="6eb21384-34b7-4ca4-83cf-b01d315750a7" name="Valeur du champs d&apos;en tête" visibility="public"><extend><Extend uuid="d9e53cfd-7acb-4d27-b96e-07359d049679" extendedCase="4381c9c7-ebcf-4aee-96a5-bbd751c48d76"/></extend></UseCase><UseCase uuid="319c572e-fa3d-401c-874a-20d63dced51b" name="Validité de la ressource" visibility="public"><include><Include uuid="badf6a9f-f5f7-45a8-9884-7029b0d52ac7" addition="8a98bf31-f03a-433a-99a9-d0dcf391ddd6"/></include></UseCase><UseCase uuid="0d248faf-1d9d-4220-8c9a-8c5134f28fbe" name="Vider le cache" visibility="public"><include><Include uuid="5e5e5061-eb07-49da-9524-25745f3192b8" addition="738b1f62-f823-4d44-b532-7b98e9cf9f3f"/></include></UseCase><UseCase uuid="f414604b-d19a-45c7-8796-370fdf50917e" name="Visualiser" visibility="public"/><Actor uuid="e20521f8-542a-460b-af78-7a48fab92319" name="Admin" visibility="public"/><Actor uuid="fff26580-7710-4536-a013-6e9b355dbf6f" name="Autres Qroxy" visibility="public"/><Actor uuid="ef96a864-6ef0-4844-be9b-3326a90b9f25" name="Client" visibility="public"/><Actor uuid="d9d0150f-7790-4a35-90d5-f08731584765" name="Qroxy1" visibility="public"/><Actor uuid="325de3aa-b7c8-47b3-b3ba-083cebe54233" name="Qroxy2" visibility="public"/><Actor uuid="17cae621-671b-443a-b7f9-9670609dd834" name="WEB" visibility="public"/><UseCase uuid="0aaedfae-9336-41ca-a776-fc34c44ff206" name="Forbiden" visibility="public"/><Association uuid="620e0800-6568-4323-b30b-a84b524c8189" visibility="public"><ownedEnd><Property uuid="20e0119d-8f41-4ea8-bfb0-270f05514222" visibility="protected" type="5ecf2657-5fd3-4154-bb96-6437aadc1fff"/><Property uuid="b9e0834b-28bf-4057-a626-8fd753988f4a" visibility="protected" type="0aaedfae-9336-41ca-a776-fc34c44ff206"/></ownedEnd></Association><Association uuid="d37038ac-43a2-4463-8315-4fe7afb28382" visibility="public"><ownedEnd><Property uuid="229761d6-6708-47c1-9b37-66810ce8a5b4" visibility="protected" type="eea8970d-e7d2-4cca-98e3-843ea444b42e"/><Property uuid="2accea40-aa47-476f-952d-ec886abf9100" visibility="protected" type="0aaedfae-9336-41ca-a776-fc34c44ff206"/></ownedEnd></Association></packagedElement></Package><Package uuid="85d54268-48b9-4db2-a8c2-098ab5b9653b" name="State machines" visibility="public"><packagedElement><StateMachine uuid="70bdaba1-ef2d-493e-9140-5a6a9e64d47e" name="QoS" visibility="public"><region><Region uuid="50c35ea4-b304-4bf8-95d0-8df3ce55419b" name="Region1"><subvertex><Pseudostate kind="entryPoint" uuid="72ec7809-e132-40c7-883c-1c5420b1cef3" name="Trame et information QoS"/><State uuid="1a1200de-07f5-4a6c-9146-f7de9e0c7f05" name="Enregistrement de la date +
la taille de la trame"/><State uuid="0f9b2dc1-a9d5-4cba-ab09-f4669688ad27" name="Calcul du débit de la communication"/><Pseudostate kind="choice" uuid="4b63d2e0-cc50-4463-a867-1773e597b4a5"/><Pseudostate kind="exitPoint" uuid="605f4dfb-4df9-4c19-8a08-e066d7d654c3" name="Fin QoS"/><Pseudostate kind="choice" uuid="025ff32d-c427-49c7-87ab-f440db69bba4"/><Pseudostate kind="choice" uuid="dbcbef2f-a0f2-4341-a370-1e5849726027"/></subvertex><transition><Transition uuid="e12a1869-60c8-43c2-a2c5-c2475b66242a" source="72ec7809-e132-40c7-883c-1c5420b1cef3" target="1a1200de-07f5-4a6c-9146-f7de9e0c7f05"><trigger><Trigger uuid="e4153a39-4842-4aad-8472-5f5967b3f469" name="Trame"/></trigger></Transition><Transition uuid="8b18b31c-0705-4e6b-a159-6e278e3dac78" source="1a1200de-07f5-4a6c-9146-f7de9e0c7f05" target="0f9b2dc1-a9d5-4cba-ab09-f4669688ad27"><trigger><Trigger uuid="eead729e-edee-4339-bafa-88cf05c16966" name="Informations de la trame enregistrées"/></trigger></Transition><Transition uuid="a30260f2-5139-4f58-8931-7b031d1ac310" source="0f9b2dc1-a9d5-4cba-ab09-f4669688ad27" target="4b63d2e0-cc50-4463-a867-1773e597b4a5"><trigger><Trigger uuid="e28e20f5-e200-49a6-b3c3-1a84407d039c" name="Débit calculé"/></trigger></Transition><Transition uuid="d3aab61a-93e6-43c7-9f43-26a3a6eaa7a1" source="4b63d2e0-cc50-4463-a867-1773e597b4a5" target="605f4dfb-4df9-4c19-8a08-e066d7d654c3"><trigger><Trigger uuid="ceba503a-f0b7-4648-9889-b3833a5c5181" name="Débit non déterminé"/></trigger></Transition><Transition uuid="d009abd3-bacf-41b8-a122-e9fd8aff569b" source="4b63d2e0-cc50-4463-a867-1773e597b4a5" target="025ff32d-c427-49c7-87ab-f440db69bba4"><trigger><Trigger uuid="3fe4da68-d2cd-4780-a90d-f28e02168fe7" name="Débit déterminé"/></trigger></Transition><Transition uuid="93f723e1-1ff4-4648-9e82-3e758a4387e0" source="025ff32d-c427-49c7-87ab-f440db69bba4" target="dbcbef2f-a0f2-4341-a370-1e5849726027"><trigger><Trigger uuid="75a945e0-8f12-4efe-8d9a-9878b0d1e105" name="Debit minimal respecté (ou pas de débit minimal)"/></trigger></Transition></transition><ownedComment><Comment uuid="954c321b-7c53-49f6-827b-865e726cff4c" body="Débit déterminé sur 3 secondes.
Suppression des éléments supérieurs à 3 secondes. (Liste chainée!)"><annotatedElement idref="0f9b2dc1-a9d5-4cba-ab09-f4669688ad27"/></Comment><Comment uuid="41ec7c69-026f-4f21-96bc-604c667b2523" body="La QoS consiste à utiliser des sleep pour ralentir
la communication."/></ownedComment></Region></region></StateMachine><StateMachine uuid="5e49dcd9-0db1-462a-a331-2cc43ff2f276" name="Connexion" visibility="public"><region><Region uuid="507fde65-5fca-4315-b7a8-be44da1ded62" name="Region1"><subvertex><Pseudostate kind="entryPoint" uuid="95402424-8250-4325-a97d-180a18c38ff8" name="Reception d&apos;une communication HTTP (Sens Client-&gt;Exterieur)"/><State uuid="bc465c69-43d1-49eb-b526-fc424c6dcadc" name="Identification de la ressource"/><Pseudostate kind="choice" uuid="bdc7fc77-a45e-4e93-b3d4-515fb3ed0197"/><State uuid="e370c107-f311-412e-bb89-6692ae83f75c" name="Envoie d&apos;une réponse HTTP
indiquant le refus"/><Pseudostate kind="exitPoint" uuid="47af5721-9cc9-44e6-85e6-2424088b9ad4" name="Fin communication"/><State uuid="f70ef4c1-5abf-4737-a3c0-3d088f49d469" name="Connexion au serveur"/><Pseudostate kind="choice" uuid="3665ff88-ae67-4cb5-92cc-cd197649e482"/><State uuid="11b633e8-8c08-4d95-add3-8f6a0013d142" name="Communication" submachine="6e22c2c7-7fd0-4599-a45c-4505ef2caf5c"><hyperlink><Hyperlink2GuiElement uuid="b42c80f9-9d60-49d7-8054-f2337cd7cfef" hyperlinkedGuiElement="748c723d-5319-4dec-9565-fe94f6e3ae76"/></hyperlink></State></subvertex><transition><Transition uuid="0f0d2b31-5b56-456e-8f55-5c2f1e70d007" source="95402424-8250-4325-a97d-180a18c38ff8" target="bc465c69-43d1-49eb-b526-fc424c6dcadc"/><Transition uuid="589727c7-4038-489b-8e6c-44cf9ca52d20" source="bc465c69-43d1-49eb-b526-fc424c6dcadc" target="bdc7fc77-a45e-4e93-b3d4-515fb3ed0197"><trigger><Trigger uuid="2085550a-88c7-49d9-9f45-7078d789cd87" name="Ressource identifiée"/></trigger></Transition><Transition uuid="d208a49f-7fd8-43df-ad64-3782172e5e96" source="bdc7fc77-a45e-4e93-b3d4-515fb3ed0197" target="e370c107-f311-412e-bb89-6692ae83f75c"><trigger><Trigger uuid="e4b9072e-eb31-4c6c-a7c8-e7157f6751fb" name="Communication rejetée"/></trigger></Transition><Transition uuid="3c91035f-40ba-4748-b6b8-becf97d67fb6" source="e370c107-f311-412e-bb89-6692ae83f75c" target="47af5721-9cc9-44e6-85e6-2424088b9ad4"/><Transition uuid="f240c9f4-25bd-435d-9580-306de0a9f0e1" source="bdc7fc77-a45e-4e93-b3d4-515fb3ed0197" target="f70ef4c1-5abf-4737-a3c0-3d088f49d469"><trigger><Trigger uuid="a9a01aa9-8856-4d20-ab78-384041ed9129" name="Communication autorisée"/></trigger></Transition><Transition uuid="e8fb1a5e-ae9c-48c3-99b6-9ed0e6f96fe2" source="f70ef4c1-5abf-4737-a3c0-3d088f49d469" target="3665ff88-ae67-4cb5-92cc-cd197649e482"><trigger><Trigger uuid="990eec18-127e-4d12-98dd-ca58ff24142f" name="Tentative connexion au serveur"/></trigger></Transition><Transition uuid="5fbdd8ca-9a61-43f7-9613-4117b8a96ae0" source="3665ff88-ae67-4cb5-92cc-cd197649e482" target="47af5721-9cc9-44e6-85e6-2424088b9ad4"><trigger><Trigger uuid="bf02d82a-7c62-4f90-af77-2012a119d625" name="Timeout"/><Trigger uuid="051929f8-557f-4a81-be35-01fd946a1c88" name="aucune réponse"/></trigger></Transition><Transition uuid="03e6e526-b513-42b8-bf25-01cc001fe2f9" source="3665ff88-ae67-4cb5-92cc-cd197649e482" target="11b633e8-8c08-4d95-add3-8f6a0013d142"><trigger><Trigger uuid="952848e3-a634-4d33-9651-55b9f8b67d43" name="Connecté"/></trigger></Transition><Transition uuid="41fb1505-213e-4f95-8162-3d62eb02e45f" source="11b633e8-8c08-4d95-add3-8f6a0013d142" target="47af5721-9cc9-44e6-85e6-2424088b9ad4"><trigger><Trigger uuid="39582dec-187a-4d8e-97f2-e449b8ecfa2b" name="Communication terminée"/></trigger></Transition></transition></Region></region></StateMachine><StateMachine uuid="5745c3f1-b58c-49f2-aa8d-72f5208dd9b7" name="Cache" visibility="public"><region><Region uuid="982d1099-aedb-4be2-a7a4-bdb9070cfd02" name="Region1"><subvertex><Pseudostate kind="entryPoint" uuid="9342d5e7-7fe3-4cad-84c6-bf0e42903fe2" name="Requete HTTP"/><Pseudostate kind="choice" uuid="5f8393e0-6ee7-481d-a9cc-78fb812d9eb4"/><State uuid="ad90b780-a354-4e72-8162-e6bdc1bb5e31" name="Vérification de la validité du cache" submachine="5745c3f1-b58c-49f2-aa8d-72f5208dd9b7"/><Pseudostate kind="choice" uuid="e70acb27-a8d4-491e-b8de-5b3305324ed8"/><State uuid="edb6fcbc-ee31-4b6d-b3d3-c01509ee1ded" name="Obtention de l&apos;URI provenant du cache local"/><Pseudostate kind="exitPoint" uuid="02f681de-3617-4b41-a81f-9749636f0a0c" name="URI de la ressource à télécharger"/><State uuid="20a95934-9259-4deb-8a5c-cbcdf7a02685" name="Demande de ressource"><region><Region uuid="88628c44-22c4-4082-a2bf-bd74656dbbfa" name="Region1"><subvertex><State uuid="d3a9f819-76ba-413a-9a70-5f570d187b1a" name="Hachage de l&apos;URI"/><State uuid="c323828b-4ac5-440a-96d8-bbb51c3a2980" name="Demande aux autres caches"/><Pseudostate kind="choice" uuid="9811f65d-fd8f-430f-b069-049ebac7f9d4"/><State uuid="d24ba7b3-d937-4762-9683-c76c84b21066" name="Obtention de l&apos;URI depuis
l&apos;autre cache"/><State uuid="fb25008f-7c15-4049-b0e4-df97f1936245" name="Génération d&apos;une URI distante"/></subvertex><transition><Transition uuid="35ae7c7c-03e6-42ab-a9be-41ff300d4f23" source="5cd551f4-59b5-4549-a598-f37b9b1d55b8" target="d3a9f819-76ba-413a-9a70-5f570d187b1a"><trigger><Trigger uuid="196059be-211f-4764-985e-4c3112108b42" name="Requette HTTP"/></trigger></Transition><Transition uuid="8615626d-6c7e-40cb-bc6b-80833a92bd65" source="d3a9f819-76ba-413a-9a70-5f570d187b1a" target="c323828b-4ac5-440a-96d8-bbb51c3a2980"><trigger><Trigger uuid="d5d06c53-9045-485e-aafb-cedd09bfbec8" name="URI hachée"/></trigger></Transition><Transition uuid="acd11b6d-bfef-468d-b142-1fc4dc1d8587" source="c323828b-4ac5-440a-96d8-bbb51c3a2980" target="9811f65d-fd8f-430f-b069-049ebac7f9d4"><trigger><Trigger uuid="b71fea4d-5639-4449-ac0d-ffe7ad2b3cad" name="Demande envoyée"/></trigger></Transition><Transition uuid="c44a3bc9-43ae-4f8d-995c-d2f869af10a9" source="9811f65d-fd8f-430f-b069-049ebac7f9d4" target="d24ba7b3-d937-4762-9683-c76c84b21066"><trigger><Trigger uuid="c9a53253-b704-45dc-9f16-595165b2e181" name="Réponse (pas de timeout)"/></trigger></Transition><Transition uuid="4a860862-f48d-492a-8815-fb031789c6a2" source="d24ba7b3-d937-4762-9683-c76c84b21066" target="31fe1687-49fe-414a-a12c-3cdf19eb1630"><trigger><Trigger uuid="88883126-afcc-41a3-8f12-6cabbfbf6327" name="URI cache"/></trigger></Transition><Transition uuid="38f2734e-4243-4e6f-8bd4-8a66d7d6efcd" source="9811f65d-fd8f-430f-b069-049ebac7f9d4" target="fb25008f-7c15-4049-b0e4-df97f1936245"><trigger><Trigger uuid="0665d4a9-e65c-4ab8-85b6-9cade26fb9d9" name="Pas de réponse"/><Trigger uuid="8083c437-6df8-4047-b3cd-7fa2bfae9bfa" name="Timeout."/></trigger></Transition><Transition uuid="d01f46f7-3755-4035-aa49-2aa7d79def07" source="fb25008f-7c15-4049-b0e4-df97f1936245" target="31fe1687-49fe-414a-a12c-3cdf19eb1630"><trigger><Trigger uuid="ead66037-c1d7-4982-baa8-c5f6145a03f2" name="URI distante"/></trigger></Transition></transition></Region></region><connectionPoint><Pseudostate kind="entryPoint" uuid="5cd551f4-59b5-4549-a598-f37b9b1d55b8"/><Pseudostate kind="exitPoint" uuid="31fe1687-49fe-414a-a12c-3cdf19eb1630"/></connectionPoint></State><State uuid="7654ce5d-6a93-41db-9a7a-cc3a1b4b7e19" name="Mise à jour du cache local"><region><Region uuid="a85572f9-ca28-4487-bcac-8b75191f3904" name="Region1"><subvertex><Pseudostate kind="choice" uuid="84ad7d1a-867d-40ed-b71a-5661fb936f36"/><State uuid="7cd2f6e8-8ae2-4d3c-9a4f-cdf03d798775" name="Suppression de l&apos;élément
le plus ancien"/><State uuid="8910470d-7733-491b-ba8d-16f068259b5c" name="Stockage des données dans le 
cache local"/></subvertex><transition><Transition uuid="d4e20c3b-c3e0-4203-8171-4492abc544b1" source="d07bdbfa-abcb-4bd3-9fb4-2d5471f6795b" target="84ad7d1a-867d-40ed-b71a-5661fb936f36"><trigger><Trigger uuid="ce83089f-915a-478b-8a8a-8cc8f30290f9" name="Données"/></trigger></Transition><Transition uuid="14591504-da98-41e8-bce6-ba50f9a67e07" source="84ad7d1a-867d-40ed-b71a-5661fb936f36" target="7cd2f6e8-8ae2-4d3c-9a4f-cdf03d798775"><trigger><Trigger uuid="d9050382-02e1-49b2-8eef-b926bccafd64" name="Débordement du cache"/></trigger></Transition><Transition uuid="6d0144dd-96a4-427d-8a9b-f92dea5b8f9c" source="7cd2f6e8-8ae2-4d3c-9a4f-cdf03d798775" target="84ad7d1a-867d-40ed-b71a-5661fb936f36"><trigger><Trigger uuid="bb22ccd0-66a4-4cf1-bcee-772ed1e2c83c" name="Element supprimé"/></trigger></Transition><Transition uuid="a969e9ae-bdb4-4fc0-b275-3652e6fc0e2c" source="84ad7d1a-867d-40ed-b71a-5661fb936f36" target="8910470d-7733-491b-ba8d-16f068259b5c"><trigger><Trigger uuid="d5efe2c8-23df-4254-83ab-1ccb18398f58" name="Stockage"/></trigger></Transition><Transition uuid="6a7b3f9a-4ae0-4db3-b30a-6423ed12213c" source="8910470d-7733-491b-ba8d-16f068259b5c" target="a2a66857-f6d6-47ef-b476-34067c2e2d71"><trigger><Trigger uuid="ca581f6a-cd06-41e5-b262-4d99130a177f" name="Element stocké"/></trigger></Transition></transition></Region></region><connectionPoint><Pseudostate kind="entryPoint" uuid="d07bdbfa-abcb-4bd3-9fb4-2d5471f6795b"/><Pseudostate kind="exitPoint" uuid="a2a66857-f6d6-47ef-b476-34067c2e2d71"/></connectionPoint></State><State uuid="3f9b180b-39d1-4b97-bd41-e7a0319bd81c" name="Suppression de l&apos;élément
du cache"/><Pseudostate kind="choice" uuid="de156772-954c-4bd6-972c-f4262f000c06"/><State uuid="7328715a-8621-4a33-a6c0-d6ecbf892fab" name="Génération d&apos;une URI distante privée"/></subvertex><transition><Transition uuid="de5d5dfb-76ee-4c6b-aa5f-28d9d34e95b4" source="5f8393e0-6ee7-481d-a9cc-78fb812d9eb4" target="ad90b780-a354-4e72-8162-e6bdc1bb5e31"><trigger><Trigger uuid="98273d35-a30b-49fb-99ea-c0387e83d451" name="Page demandée en cache"/></trigger></Transition><Transition uuid="a37a0480-3fb8-4d76-947e-c827ee2e1954" source="ad90b780-a354-4e72-8162-e6bdc1bb5e31" target="e70acb27-a8d4-491e-b8de-5b3305324ed8"><trigger><Trigger uuid="01b17dc1-1bf0-4f7e-9d36-8516b5339895" name="Validité du cache"/></trigger></Transition><Transition uuid="7c60c48c-52fa-478c-8c2e-112598be5d58" source="e70acb27-a8d4-491e-b8de-5b3305324ed8" target="edb6fcbc-ee31-4b6d-b3d3-c01509ee1ded"><trigger><Trigger uuid="71a1ded3-c74d-4041-ab08-9005e8176c6f" name="Cache valide"/></trigger></Transition><Transition uuid="19ee23fa-fc4e-4174-833a-c584439c4870" source="edb6fcbc-ee31-4b6d-b3d3-c01509ee1ded" target="02f681de-3617-4b41-a81f-9749636f0a0c"><trigger><Trigger uuid="c75ab0a8-2222-45af-bb26-9ce3e6b5dfff" name="URI cache local"/></trigger></Transition><Transition uuid="b43853bc-9334-4785-bfdb-34687c7b744b" source="5f8393e0-6ee7-481d-a9cc-78fb812d9eb4" target="20a95934-9259-4deb-8a5c-cbcdf7a02685"><trigger><Trigger uuid="e282f22f-084e-432b-9e4e-806d198cbdcd" name="Page non disponible dans le cache"/></trigger></Transition><Transition uuid="bae050ba-d180-413c-b045-c7aaadb79d67" source="e70acb27-a8d4-491e-b8de-5b3305324ed8" target="3f9b180b-39d1-4b97-bd41-e7a0319bd81c"><trigger><Trigger uuid="15001ddb-f32e-4188-a630-81a243e62e7f" name="Cache invalide"/></trigger></Transition><Transition uuid="36232051-6c92-4cc2-82fd-48af4f96b0fd" source="3f9b180b-39d1-4b97-bd41-e7a0319bd81c" target="20a95934-9259-4deb-8a5c-cbcdf7a02685"><trigger><Trigger uuid="0100b9c1-08e7-44a1-be89-c09b0c3c819b" name="Element supprimé du cache"/></trigger></Transition><Transition uuid="c06aecc1-4f6f-40ee-8b49-27c70eeda9de" source="9342d5e7-7fe3-4cad-84c6-bf0e42903fe2" target="de156772-954c-4bd6-972c-f4262f000c06"/><Transition uuid="82cb4b87-5bba-4e86-a798-660959d7b302" source="de156772-954c-4bd6-972c-f4262f000c06" target="5f8393e0-6ee7-481d-a9cc-78fb812d9eb4"><trigger><Trigger uuid="21e64fc2-03cb-4f72-9d6c-b9cefc75661c" name="Donnée non privée"/></trigger></Transition><Transition uuid="999f404d-7b8c-4c88-bce6-4bb49bfff8ef" source="31fe1687-49fe-414a-a12c-3cdf19eb1630" target="02f681de-3617-4b41-a81f-9749636f0a0c"><trigger><Trigger uuid="19c3291a-614e-4d19-8b49-161f77cc0982" name="URI distante"/></trigger></Transition><Transition uuid="348bb2ce-2111-4d28-890d-c45828c707ff" source="de156772-954c-4bd6-972c-f4262f000c06" target="7328715a-8621-4a33-a6c0-d6ecbf892fab"><trigger><Trigger uuid="9b89598d-04da-445c-b37e-376dc95631ca" name="Donnée privée"/></trigger></Transition><Transition uuid="d7eb381c-5506-48cb-b228-ba50c859cc84" source="7328715a-8621-4a33-a6c0-d6ecbf892fab" target="02f681de-3617-4b41-a81f-9749636f0a0c"><trigger><Trigger uuid="379c0b1f-6bfd-4926-8e26-fdbc4ab266b3" name="URI distante marquée privé"/></trigger></Transition></transition><ownedComment><Comment uuid="be9f47ce-05fd-41fe-8624-280992b6573a" body="Multicast"><annotatedElement idref="c323828b-4ac5-440a-96d8-bbb51c3a2980"/></Comment><Comment uuid="0f988d89-9c6d-4246-8e47-136b629928be" body="Le serveur répondant
le plus rapidement
est choisie."><annotatedElement idref="c44a3bc9-43ae-4f8d-995c-d2f869af10a9"/></Comment><Comment uuid="52a8d257-995c-4dd2-b9fe-886122df3d34" body="Le qroxy répond uniquement
si son cache est à jour."><annotatedElement idref="20a95934-9259-4deb-8a5c-cbcdf7a02685"/></Comment><Comment uuid="f45428de-0f91-4345-a8bf-22caef007be0" body="Si la ressource ne peut
etre stockée, on ne la stocke
pas et on log une erreur."><annotatedElement idref="8910470d-7733-491b-ba8d-16f068259b5c"/></Comment></ownedComment></Region></region><connectionPoint><Pseudostate kind="entryPoint" uuid="ba104a3e-f00d-4fd4-a5da-991edf05edf9" name="Requete HTTP"/></connectionPoint></StateMachine><StateMachine uuid="2f9b9446-0908-4a81-b4e4-6d52085ff73c" name="StateMachine2" visibility="public"><region><Region uuid="68520c84-590a-4f4f-b911-5295820499e3" name="Region1"/></region></StateMachine><StateMachine uuid="6e22c2c7-7fd0-4599-a45c-4505ef2caf5c" name="Communication" visibility="public"><region><Region uuid="81bb860c-8308-4069-8491-3ef83cdd9f1f" name="Region1"><subvertex><Pseudostate kind="entryPoint" uuid="8f80eaf2-28db-4e0a-b252-40a69ba8dd38" name="Communications entre le serveur et le client"/><State uuid="61b81e81-2c39-4c05-98fe-07867ee286aa" name="Envoie de la trame au serveur ou 
utilisation du cache" submachine="5745c3f1-b58c-49f2-aa8d-72f5208dd9b7"/><State uuid="11ef8b4f-db30-473d-8fc9-a4f1f91daaa5" name="Gestion de la QoS émission" submachine="70bdaba1-ef2d-493e-9140-5a6a9e64d47e"/><State uuid="ce567f7a-81e0-4eb8-81a2-a3720e326106" name="Gestion de la QoS reception" submachine="70bdaba1-ef2d-493e-9140-5a6a9e64d47e"/><State uuid="c1d39ea4-e20e-48fc-a3f8-ff10fbcb0264" name="Transmission de la réponse au client "/><Pseudostate kind="choice" uuid="6f3c79ad-bb43-4762-8c0f-c2f77b9fe8db"/><Pseudostate kind="exitPoint" uuid="39c5cdaa-a238-4b16-adcc-d5647e95ab51" name="Fin communication"/><State uuid="031a7f91-e020-4e86-bf2b-cde2d0a03b39" name="Reception nouvelle requete"/><State uuid="8df53ca8-79d5-417b-867f-468497a8ec96" name="Parsing de la nouvelle requete"/><State uuid="7a233271-de65-4065-adb7-628af310b3d2" name="Téléchargement d&apos;un fragment de donnée"/></subvertex><transition><Transition uuid="5449445d-8458-4e89-a93e-4f86aadd61f7" source="11ef8b4f-db30-473d-8fc9-a4f1f91daaa5" target="61b81e81-2c39-4c05-98fe-07867ee286aa"><trigger><Trigger uuid="39de3bae-861a-4cb0-940c-3d50f66885d0" name="QoS traitée"/></trigger></Transition><Transition uuid="aa1762da-a6d2-492e-aac2-60dcb95834fb" source="ce567f7a-81e0-4eb8-81a2-a3720e326106" target="c1d39ea4-e20e-48fc-a3f8-ff10fbcb0264"><trigger><Trigger uuid="f33387e1-b46b-49f9-8b33-31acf19219b9" name="QoS traitée"/></trigger></Transition><Transition uuid="076f4bd8-75d5-4bb6-a7bc-ba5965e2c55c" source="c1d39ea4-e20e-48fc-a3f8-ff10fbcb0264" target="6f3c79ad-bb43-4762-8c0f-c2f77b9fe8db"><trigger><Trigger uuid="a354d898-2ea1-4848-bf91-90f34f5205b7" name="Trame transmise"/></trigger></Transition><Transition uuid="ba42c714-cdba-4666-9e31-83bfd62f691f" source="6f3c79ad-bb43-4762-8c0f-c2f77b9fe8db" target="39c5cdaa-a238-4b16-adcc-d5647e95ab51"><trigger><Trigger uuid="bb792fa7-986a-4fb7-bd86-fc7eec265089" name="Pas de keepalive"/></trigger></Transition><Transition uuid="849ebfcc-f4c4-43a4-b67e-314470bee0d7" source="6f3c79ad-bb43-4762-8c0f-c2f77b9fe8db" target="031a7f91-e020-4e86-bf2b-cde2d0a03b39"><trigger><Trigger uuid="dcf9dfe9-fabc-4dfa-9500-526db00d235c" name="Keepalive"/></trigger></Transition><Transition uuid="e148126e-6416-4e67-adf6-b490ae0a6858" source="031a7f91-e020-4e86-bf2b-cde2d0a03b39" target="8df53ca8-79d5-417b-867f-468497a8ec96"><trigger><Trigger uuid="15277792-c475-4a01-8820-37edfd34891b" name="Nouvelle requête"/></trigger></Transition><Transition uuid="f537148e-c3d8-4fb8-922f-7016ce7bb539" source="8f80eaf2-28db-4e0a-b252-40a69ba8dd38" target="11ef8b4f-db30-473d-8fc9-a4f1f91daaa5"><trigger><Trigger uuid="23aa763d-4253-4427-a3a1-1f97752bdc38" name="Requete HTTP"/></trigger></Transition><Transition uuid="5850f54e-ae20-4f99-9f2a-72f7af29cecf" source="61b81e81-2c39-4c05-98fe-07867ee286aa" target="ce567f7a-81e0-4eb8-81a2-a3720e326106"><trigger><Trigger uuid="1228c8be-005f-49e6-9cd0-d85d88140f29" name="URI des données à télécharger"/></trigger></Transition><Transition uuid="7af84d37-f159-4980-9a7e-3ea9bbfe5c55" source="8df53ca8-79d5-417b-867f-468497a8ec96" target="11ef8b4f-db30-473d-8fc9-a4f1f91daaa5"><trigger><Trigger uuid="39f3980e-c12f-4539-9e8f-724c1031545d" name="Requete HTTP"/></trigger></Transition></transition><ownedComment><Comment uuid="09b4f9a6-8bc1-4d35-b1ed-970219969cb3" body="2 sockets en gros + la requete HTTP parsée. (QoS à définir etc...)"><annotatedElement idref="8f80eaf2-28db-4e0a-b252-40a69ba8dd38"/></Comment><Comment uuid="d7449424-b7d2-422f-a1fd-351cfc21e1b1" body="Possibilité de mettre à jour le QoS !"><annotatedElement idref="8df53ca8-79d5-417b-867f-468497a8ec96"/></Comment><Comment uuid="a7e856ae-69b0-4db4-ba5c-2715b724ab1b" body="Si une trame n&apos;as pas d&apos;information de QoS, le niveau est 
par défaut défini à Moyen (normal)."/></ownedComment></Region></region></StateMachine><StateMachine uuid="fcf9db65-f5f7-41c7-a3e8-565f6b27031d" name="Transmission" visibility="public"><region><Region uuid="8c673141-3ab7-4e85-8696-bb36967528b9" name="Region1"><subvertex><Pseudostate kind="entryPoint" uuid="6b617870-58cc-4b96-9f08-0afafe945784" name="Données"/><State uuid="4a0c2a5a-3e0c-49f2-ae2a-fc9756d3e750" name="Envoie d&apos;un fragment de données"/><State uuid="714ccc86-a304-4b3f-b84d-06a393a92ca3" name="Lecture du sleep QoS"/><Pseudostate kind="choice" uuid="9f07c4a8-50e2-4a31-88c5-6a600abc9064"/><Pseudostate kind="choice" uuid="3e0c8153-564d-49d7-8e60-dceb1bdadea6"/><State uuid="74ffe897-fc69-46fe-abf5-f01e9061f6ac" name="Attente"/><Pseudostate kind="exitPoint" uuid="40c3d205-b181-487e-9095-7adbad0c07ee" name="Données envoyées"/><State uuid="51a1a782-bf9b-4146-bd20-a9907c585df5" name="Détermination fin de la trame"/><State uuid="8517459d-feb7-4f1b-a192-b5c3aca73a5b" name="Enregistrement quantité de données à
envoyer et l&apos;heure"/><State uuid="78b85641-685f-4682-a36f-b5289b0ed9c1" name="Envoie à la tache QoS l&apos;information
de débit "/></subvertex><transition><Transition uuid="da99de25-c84b-4ba4-9a9c-618d79c2bc52" source="6b617870-58cc-4b96-9f08-0afafe945784" target="8517459d-feb7-4f1b-a192-b5c3aca73a5b"><trigger><Trigger uuid="44d8f102-7cb6-40ca-b580-083e5751e544" name="Données"/></trigger></Transition><Transition uuid="707cbd56-0893-46e0-baf4-64db2e085dd6" source="4a0c2a5a-3e0c-49f2-ae2a-fc9756d3e750" target="714ccc86-a304-4b3f-b84d-06a393a92ca3"><trigger><Trigger uuid="cb679f61-1542-465f-b39a-1686adfd3132" name="Données envoyées"/></trigger></Transition><Transition uuid="206a9840-c301-43e6-a6a8-7f9ce35daa11" source="714ccc86-a304-4b3f-b84d-06a393a92ca3" target="9f07c4a8-50e2-4a31-88c5-6a600abc9064"><trigger><Trigger uuid="0a1f45b8-9827-47e5-ab7c-17eda9067333" name="Temps en microsecondes à attendre"/></trigger></Transition><Transition uuid="c3f921ae-c6a6-4c3e-9b55-bc23740c9c70" source="9f07c4a8-50e2-4a31-88c5-6a600abc9064" target="78b85641-685f-4682-a36f-b5289b0ed9c1"><trigger><Trigger uuid="b2e2e6a4-3f88-4f67-b778-19ad70e33c00" name="Pas de temps d&apos;attente"/></trigger></Transition><Transition uuid="fcc252ec-0282-42d8-81eb-4120a110c2e5" source="9f07c4a8-50e2-4a31-88c5-6a600abc9064" target="74ffe897-fc69-46fe-abf5-f01e9061f6ac"><trigger><Trigger uuid="5970f463-c66c-4667-8f81-aad7e9f0ad38" name="Temps d&apos;attente"/></trigger></Transition><Transition uuid="6f6f41a8-bf80-43e3-9402-3941486c9b9e" source="74ffe897-fc69-46fe-abf5-f01e9061f6ac" target="78b85641-685f-4682-a36f-b5289b0ed9c1"><trigger><Trigger uuid="7b4e3ab2-e431-4aad-9cb7-4b58d8e75c8b" name="Attente terminée"/></trigger></Transition><Transition uuid="b4c4ca8e-2a83-46cd-ba7f-c209189ab828" source="3e0c8153-564d-49d7-8e60-dceb1bdadea6" target="40c3d205-b181-487e-9095-7adbad0c07ee"><trigger><Trigger uuid="b705f3f9-5161-4c7b-8804-2d37afd6ad37" name="Plus de donnée disponibles"/></trigger></Transition><Transition uuid="c3bc1d98-ec6d-440d-ae0a-807b12404ab2" source="3e0c8153-564d-49d7-8e60-dceb1bdadea6" target="4a0c2a5a-3e0c-49f2-ae2a-fc9756d3e750"><trigger><Trigger uuid="1707121c-5fd6-4af7-aa7b-569eefc5a5ed" name="Données disponibles"/></trigger></Transition><Transition uuid="e50f2dc8-1121-4a87-96f4-2cb8491e2a18" source="51a1a782-bf9b-4146-bd20-a9907c585df5" target="3e0c8153-564d-49d7-8e60-dceb1bdadea6"><trigger><Trigger uuid="cf96fd1f-1c96-4402-ae3e-204fa8b5ed9e" name="Détermination"/></trigger></Transition><Transition uuid="8e7122a1-a68a-43e6-83f2-15a14f800f12" source="8517459d-feb7-4f1b-a192-b5c3aca73a5b" target="4a0c2a5a-3e0c-49f2-ae2a-fc9756d3e750"><trigger><Trigger uuid="f56141f1-2ad9-43dc-862d-b04d56a22ba7" name="Informations enregistrée"/></trigger></Transition><Transition uuid="95d15365-dff5-4226-be76-6f8269f814ca" source="78b85641-685f-4682-a36f-b5289b0ed9c1" target="51a1a782-bf9b-4146-bd20-a9907c585df5"><trigger><Trigger uuid="e9aca172-2807-433d-a440-903875d58379" name="Information envoyée"/></trigger></Transition></transition><ownedComment><Comment uuid="279e4284-8f0a-4c21-b03d-b339df83e4cf" body="Schema pour l&apos;émission de données"/><Comment uuid="575690dd-eb6f-4412-8dea-f511710163dd" body="Dictionnaire QoS. Appel inter-thread."><annotatedElement idref="714ccc86-a304-4b3f-b84d-06a393a92ca3"/></Comment><Comment uuid="dd335b6d-e834-45b7-8e44-640f7451cd2d" body="Attente obligatoire. Permet d&apos;éviter les DOS
de type j&apos;envoie plein de petit paquet."><annotatedElement idref="74ffe897-fc69-46fe-abf5-f01e9061f6ac"/></Comment></ownedComment></Region></region></StateMachine><StateMachine uuid="c9e7329d-3b84-4fdb-89ce-8fe790bc6cc1" name="Reception" visibility="public"><region><Region uuid="8fd0eb59-6bbe-4df0-970c-2c0828506a51" name="Region1"><subvertex><Pseudostate kind="entryPoint" uuid="b2c359cd-df2f-4de9-8a9c-c8157ac0232e" name="URI à télécharger"/><Pseudostate kind="choice" uuid="1228c43e-07a1-4cbb-8cee-50217587dc85"/><State uuid="e42793e9-d287-42fc-8d9c-ad25ea324362" name="Transmission au client
 du cache local" submachine="fcf9db65-f5f7-41c7-a3e8-565f6b27031d"><hyperlink><Hyperlink2GuiElement uuid="2756ff9b-032e-4345-9092-0b85ed0a156e" hyperlinkedGuiElement="2ed311c6-44e5-46a8-a5c3-940ac1aa84e2"/></hyperlink></State><Pseudostate kind="exitPoint" uuid="365efd41-c352-4430-bcac-1ac6c11fff67" name="ExitPoint1"/></subvertex><transition><Transition uuid="2213c343-3a00-405c-8909-55f1c1c8142c" source="b2c359cd-df2f-4de9-8a9c-c8157ac0232e" target="1228c43e-07a1-4cbb-8cee-50217587dc85"><trigger><Trigger uuid="5f609b17-a129-4939-a2f3-5147ee91ba14" name="URI"/></trigger></Transition><Transition uuid="fb72522f-a382-4137-9a1c-4e1b70a4a8a7" source="1228c43e-07a1-4cbb-8cee-50217587dc85" target="e42793e9-d287-42fc-8d9c-ad25ea324362"><trigger><Trigger uuid="2f2b4233-a3c1-4a67-9268-f2260a1fad21" name="URI cache local"/></trigger></Transition></transition></Region></region></StateMachine><StateMachine uuid="501db4ea-0ce2-45dd-b806-414802bd259d" name="Détermination des sleep QoS" visibility="public"><region><Region uuid="de59a15e-9261-4a43-a799-3b4a6f0382bd" name="Region1"><subvertex><Pseudostate kind="entryPoint" uuid="5229e146-56e3-47b8-b127-e4aa47ee5543" name="Détermination des sleep QoS"/><State uuid="1d494544-b936-4717-9759-4e50fdb53e2e" name="Calcul du débit des communications
avec les dernières info de débits"/><State uuid="ef29b95a-6064-48a7-9f25-9c35af12bf4d" name="State1"/></subvertex><transition><Transition uuid="ce5261ce-fb3b-44f2-b5c3-f8236c9b3245" source="5229e146-56e3-47b8-b127-e4aa47ee5543" target="1d494544-b936-4717-9759-4e50fdb53e2e"/></transition><ownedComment><Comment uuid="129f16d2-9cfb-4307-9b55-cd024be1d96f" body="La tache QoS détermine les sleeps à appliquer pour chaque communication.
Cette tâche met à jour un dictionnaire qui contient toutes les communications, ce dictionnaire (thread safe)
permettra aux tâches de savoir combien de temps elle doivent sleep pour avoir de la QoS."/><Comment uuid="ad7e26a8-0010-4d76-a378-5fe73e073700" body="Voir transmission"><annotatedElement idref="1d494544-b936-4717-9759-4e50fdb53e2e"/><textHyperlink><CommentTextHyperlink uuid="1c63dedc-17d4-4212-924a-ce2c4d99e13a" startPos="5" length="12"><ownedHyperlink><Hyperlink2GuiElement uuid="d83523ed-cd96-45d6-b5ef-80f9de30f1e8" hyperlinkedGuiElement="2ed311c6-44e5-46a8-a5c3-940ac1aa84e2"/></ownedHyperlink></CommentTextHyperlink></textHyperlink></Comment></ownedComment></Region></region></StateMachine></packagedElement></Package><Class uuid="225beba8-ffe1-40ea-886f-624853e4b2fb" name="Rule" visibility="public"><ownedAttribute><Property uuid="9afde1a4-da2d-4455-be71-5dbcd6c6063b" name="minimalSpeed" visibility="private"/><Property uuid="1b5dca47-deff-4a71-ba03-6b2c8c785442" name="maximalSpeed" visibility="private"/><Property uuid="4938ca44-ac44-4e7e-ae59-8107337d8f14" name="weight" visibility="private"/><Property uuid="541b781a-d829-4d3f-89c4-6d542a57ec78" name="urlPattern" visibility="private"/><Property uuid="daa3aa00-6d69-4b7a-8b2e-fb432774b3ed" name="httpHeaders" visibility="private"/><Property uuid="adf67bcf-1598-4fb1-a8b3-6d7e131ef84b" name="forbidenRequest" visibility="private"/></ownedAttribute><ownedOperation><Operation uuid="553e88d4-a44d-4a7b-bcad-10613a8aa998" name="Rule" visibility="public"><ownedParameter><Parameter uuid="8f4dd1e6-1c0e-49ee-89f9-72801f396c1c" name="minimalSpeed"/><Parameter uuid="67e5c7d7-4747-4cdc-ab15-741b56b93315" name="maximalSpeed"/><Parameter uuid="358f2d64-cd81-4962-aeef-ffdf1bcba01c" name="weight"/><Parameter uuid="fe424f0e-c46f-41ee-b9f8-ca99bda9ac8d" name="urlPattern"/><Parameter uuid="9a16d0cd-6324-4cf6-88c6-410efe13df51" name="httpHeaders"/></ownedParameter></Operation><Operation uuid="56b5c2fe-35fb-4e5c-8432-450685d65615" name="getMinimalSpeed" visibility="public"><ownedParameter><Parameter uuid="9fc5f5cc-6ef3-4a84-b8f8-b76dd1787ef6" name="return" direction="return"/></ownedParameter></Operation><Operation uuid="4eea33a6-5960-4e1d-9113-c3f650374531" name="getMaximalSpeed" visibility="public"><ownedParameter><Parameter uuid="0969ea56-892f-4039-a508-6e2ceb405db9" name="return" direction="return"/></ownedParameter></Operation><Operation uuid="29f6230f-6cae-40b6-bd43-f2577d9f0dfd" name="getWeight" visibility="public"><ownedParameter><Parameter uuid="731a9878-54ab-44d9-b608-a3268db51d10" name="return" direction="return"/></ownedParameter></Operation><Operation uuid="65d5e50d-b1ce-4175-b227-4682af64a1ad" name="validate" visibility="public"><ownedParameter><Parameter uuid="965a9dd0-a51b-43e9-b89a-e3021a624134" name="return" direction="return"/><Parameter uuid="190f24eb-28fe-48c1-9e26-7fe35a7b372e" name="header" type="d9f09d4b-2e35-47f3-af4f-19ed21d3c2c6"/></ownedParameter></Operation><Operation uuid="8c4a5e47-8f00-4217-936f-d58d3868e0d5" name="getUrlPattern" visibility="public"><ownedParameter><Parameter uuid="2d4f37b3-ad10-4278-bddb-7dfffc157649" name="return" direction="return"/></ownedParameter></Operation><Operation uuid="adabb148-71d9-449a-8f12-664856ba14d1" name="getHttpHeaders" visibility="public"><ownedParameter><Parameter uuid="b088d187-5b3c-4781-a16d-c527fb70f550" name="return" direction="return"/></ownedParameter></Operation><Operation uuid="7bcd6be0-9b11-4bef-8266-47c9086a2f0e" name="getForbidenRequest" visibility="public"><ownedParameter><Parameter uuid="e43a6554-ce74-4746-a11c-4454317e4dde" name="return" direction="return"/></ownedParameter></Operation></ownedOperation></Class><Package uuid="00000004-7510-11d9-86f2-000476a22f44" name="Unknown Externals" visibility="public" editable="false"/><Class uuid="6f4941b9-a065-4996-b298-f878423dd6b2" name="RuleChecker" visibility="public"><ownedAttribute><Property uuid="064270a4-fb95-40bc-91af-b8c8786561df" name="rules" visibility="private" isStatic="true"/></ownedAttribute><ownedOperation><Operation uuid="c45bef92-2235-4d59-9ebb-659a9aaa5401" name="lookup" visibility="public" isStatic="true"><ownedParameter><Parameter uuid="d2f1155f-417e-477e-ad0f-e2eb086a6d9d" name="return" direction="return" type="225beba8-ffe1-40ea-886f-624853e4b2fb"/><Parameter uuid="f71991c6-d6c2-4a2c-b6bb-67c5f28fb52a" name="header" type="d9f09d4b-2e35-47f3-af4f-19ed21d3c2c6"/></ownedParameter></Operation><Operation uuid="c59cc2c9-8b89-4c2a-b614-29a946d8d499" name="parseRulesFromFile" visibility="public" isStatic="true"><ownedParameter><Parameter uuid="83acd9c8-44c5-4580-b996-f54bba16d999" name="file"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="d9f09d4b-2e35-47f3-af4f-19ed21d3c2c6" name="HeaderHTTP" visibility="public"><ownedAttribute><Property uuid="fc91fd38-87af-4eaf-8a47-16ac325647ff" name="properties" visibility="private"/><Property uuid="dcd802cc-811e-4a19-bd0e-7dcbb96286e6" name="endInBuffer" visibility="private"/><Property uuid="c5bab581-0b46-4b47-89ba-713901cd73e6" name="uri" visibility="private"/></ownedAttribute><ownedOperation><Operation uuid="542b08d9-ae62-4138-8f0d-e88eadbdb449" name="HeaderHTTP" visibility="public"><ownedParameter><Parameter uuid="30241c08-f2ba-428f-a96b-8979f7bd3e6e" name="uri"/><Parameter uuid="898c92d2-edf0-482e-a206-21c2fc05ab57" name="buffer"/></ownedParameter></Operation><Operation uuid="acaa5a49-9e95-4339-b140-be865f2c680c" name="getProperties" visibility="public"><ownedParameter><Parameter uuid="2e67c092-9199-4847-b854-7799284a9d4d" name="return" direction="return"/></ownedParameter></Operation><Operation uuid="4838e8fd-3198-4206-86c7-c743fa2940d2" name="getUri" visibility="public"><ownedParameter><Parameter uuid="e961466e-5e63-4b4f-a277-8556643900a2" name="return" direction="return"/></ownedParameter></Operation><Operation uuid="e78558e2-e533-4630-bc01-b0842afaaecf" name="getEndInBuffer" visibility="public"><ownedParameter><Parameter uuid="e6cc6ac1-0520-4783-ae09-42055332cf84" name="return" direction="return"/></ownedParameter></Operation></ownedOperation></Class><Package uuid="4eed00d1-546d-464d-9ba0-d894b3cb9629" name="src" visibility="public"><hyperlink><Hyperlink2GuiElement uuid="4040dd62-7393-4fc7-97d9-12892f4dc089" hyperlinkedGuiElement="a7d1b996-7548-4839-a01c-2be03be417ac"/></hyperlink><packagedElement><Package uuid="f2bb7e02-9531-46f7-81bc-9b0fe049acd3" name="fr" visibility="public"><appliedStereotype><StereotypeApplication uuid="cc73e491-9205-4cb0-bddd-893751d0bace" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Package uuid="0bccb938-5861-4067-bd93-71be4b74b901" name="umlv" visibility="public"><appliedStereotype><StereotypeApplication uuid="f208a191-31c1-48a0-959c-cb33b94b0cba" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Package uuid="9161fa6a-e3e0-4255-9fef-79656bab03d3" name="qroxy" visibility="public"><appliedStereotype><StereotypeApplication uuid="8a0da029-3c0a-4ac4-a889-482e84d8d30a" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Package uuid="d81da90a-f38c-48bf-911a-98508cb4b8b1" name="cache" visibility="public"><appliedStereotype><StereotypeApplication uuid="8f290fe6-3dce-474a-ac11-1a7935bc0843" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Class uuid="577b6386-052f-4b41-a12e-dc413d128bdb" name="CacheInfo" visibility="public" usedForCodeSyncronization="true" DocComment="47577f7b-df0b-4c09-9761-ee555c64dc9d"><codeFileName><CodeFileName name="CacheInfo.java"/></codeFileName><ownedComment><Comment uuid="47577f7b-df0b-4c09-9761-ee555c64dc9d" body="
 Information about a cache entry.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="577b6386-052f-4b41-a12e-dc413d128bdb"/></Comment></ownedComment><ownedAttribute><Property uuid="dd4dffe5-771b-4006-930e-cdeaa78d822e" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="bbb48942-f941-4722-875f-f664a4f1cec0" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="ca944c14-bee6-44a3-98a9-2edf06e16bf4" name="expirationDate" visibility="private" isLeaf="true" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Property uuid="1ce0e9bf-a83f-4370-b3fc-fd9afdfba47e" name="contentType" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="6f2c5706-6d06-4ad5-b7b4-c225186ddc3c" name="contentLength" visibility="private" isLeaf="true" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Property uuid="af32127a-f2f2-4108-9c02-8fb8d787a21b" name="eTag" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="0283cd23-2d5d-482e-86c0-0b41c88d5826" name="mustRevalidate" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedAttribute><ownedOperation><Operation uuid="d2adb0d4-99f2-4cb2-8643-8279425744c5" name="CacheInfo" visibility="private"><appliedStereotype><StereotypeApplication uuid="bff67507-e18e-4f1a-8a2f-5dda5e2f29d5" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="eae0e549-55bb-4315-891d-b09975e507f8" name="expirationDate" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="4621c2cd-94aa-4620-a2ea-8cbf52699720" name="contentType" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="7f75a0db-c234-43ce-ac74-8746f082fa41" name="contentLength" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="19bdbd36-468a-49ad-a57f-f554b81c62f7" name="eTag" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="67babd34-d5db-4863-92cf-9764dd887b5f" name="mustRevalidate" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="9c019c46-9196-4423-bbc4-cf6647781152" name="getContentLength" visibility="public"><ownedParameter><Parameter uuid="6981ab8b-9062-442c-9744-19e70465f79e" name="return" direction="return" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="487bfa87-1ed1-4cc1-8319-75af2bec9459" name="getContentType" visibility="public"><ownedParameter><Parameter uuid="10fb24d2-d3ba-4aa9-9e24-0b1ff07ed824" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="56ca190c-55d5-4cf8-87ac-ab68119cee39" name="geteTag" visibility="public"><ownedParameter><Parameter uuid="bf81cb81-fdcf-495c-ad54-6e12290f6702" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="4c4346c2-2fb6-45c7-9517-f5486d83f6fb" name="getExpirationDate" visibility="public"><ownedParameter><Parameter uuid="f911f9a1-bc96-4dac-81ce-65a43b9ac8ec" name="return" direction="return" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="0deef3cd-33fd-430e-af8b-0919a826f637" name="isMustRevalidate" visibility="public"><ownedParameter><Parameter uuid="a421cca1-ddb1-42ce-871e-9df40e444742" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="66225d75-89e4-4d8e-be59-3e7c1af1b5ff" name="getCacheInfo" visibility="public" isStatic="true" DocComment="87144fc2-be9e-4d3c-88d0-1485aa159985"><ownedComment><Comment uuid="87144fc2-be9e-4d3c-88d0-1485aa159985" body="
 Gets the informations from a bytebuffer.

 @param buffer The buffer to read data from. (Must be well positioned!)

 @return The cache info.
"><annotatedElement idref="66225d75-89e4-4d8e-be59-3e7c1af1b5ff"/></Comment></ownedComment><ownedParameter><Parameter uuid="3821c075-07c2-4faa-b9d2-ec7562704862" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="acd6a7e1-b088-4ac2-8ff2-bd6976e6172e" name="return" direction="return" type="577b6386-052f-4b41-a12e-dc413d128bdb"/></ownedParameter></Operation><Operation uuid="cf6cf683-89ac-40c0-a576-7d097b2e5706" name="getCacheInfo" visibility="public" isStatic="true" DocComment="b089d300-0a5a-4d40-a613-c58b3b1b4d21"><ownedComment><Comment uuid="b089d300-0a5a-4d40-a613-c58b3b1b4d21" body="
 Gets the informations about a cache entry.

 @param fileInfo File information.
 @param fileData Data.
 @return The CacheInfo that contains all informations. Null if there is a
 problem.
"><annotatedElement idref="cf6cf683-89ac-40c0-a576-7d097b2e5706"/></Comment></ownedComment><ownedParameter><Parameter uuid="e8f41d36-1248-4570-8c81-6d40ad7ff64e" name="fileInfo" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="6827d0a2-a294-4ccb-9632-fd350449228c" name="fileData" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="40ce0524-bdde-4376-90ea-0d29c246959a" name="return" direction="return" type="577b6386-052f-4b41-a12e-dc413d128bdb"/></ownedParameter></Operation><Operation uuid="c4961335-e65d-49ea-82ec-6e033af3227b" name="writeCacheInfo" visibility="public" isStatic="true" DocComment="3f1fc806-2c9d-4e80-ad77-5837944d8536"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="3f1fc806-2c9d-4e80-ad77-5837944d8536" body="
 Writes to the channel a valid cache info file from the header http.

 @param channel Channel where to write data.
 @param headerHttp Header http to write.
"><annotatedElement idref="c4961335-e65d-49ea-82ec-6e033af3227b"/></Comment></ownedComment><ownedParameter><Parameter uuid="5645bf02-6367-4d61-b6e8-3065e8bf703a" name="channel" type="7be588c1-7d6a-40fe-b9e5-f3617e90db3c"/><Parameter uuid="a69b5a53-204d-4b16-84be-bf966ce72372" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="339b740f-04d5-4848-a1f4-6c684415cb5e" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="e44596f5-84fe-4ede-85b2-d4360328ef30" name="CacheRequest" visibility="public" usedForCodeSyncronization="true" DocComment="bae1f010-205f-4b79-89d6-bca863d397cb"><codeFileName><CodeFileName name="CacheRequest.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="d067d0c6-83ad-4326-953b-9766d9c6f80d" visibility="public" contract="0b3153ed-1fe4-4739-a92c-22aef6084880"/></interfaceRealization><ownedComment><Comment uuid="bae1f010-205f-4b79-89d6-bca863d397cb" body="
 Handles a network cache operation.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="e44596f5-84fe-4ede-85b2-d4360328ef30"/></Comment></ownedComment><ownedAttribute><Property uuid="c052094e-9bdb-420c-a811-1948b1406272" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="d9aa670b-efb7-48b6-837f-162c2c2c098f" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="5a81c1de-0595-498d-b018-d972b29be836" name="LOOPBACK_ADDRESS" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="26982fcf-f062-4f74-bdd0-5e0ed08254fb" visibility="public" value="new InetSocketAddress(&quot;127.0.0.1&quot;, 5000)"/></defaultValue></Property><Property uuid="7cb7ac13-be26-4ce7-b259-1f46d565dc07" name="MULTICAST_ADDRESS" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="8f1939ba-1097-4fc8-9f3f-7e4f7ea25662" visibility="public" value="new InetSocketAddress(&quot;239.252.0.0&quot;, 5001)"/></defaultValue></Property><Property uuid="ec1a7870-38ad-4a9c-beb5-4ebfd8a9345f" name="PORT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="ed3ea156-4d71-48c4-984f-79b5fc9aa0cf" visibility="public" value="5000"/></defaultValue></Property><Property uuid="df691d69-75f8-4dd5-a2e8-1fc2289d675a" name="MULTICAST_TTL" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="34f7f3a3-ffa4-4b54-9218-c076937a5744" visibility="public" value="1"/></defaultValue></Property><Property uuid="6581a0cb-50f8-495a-bfeb-7f4ec6ffc41c" name="PORT_RANGE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="9d7b29fa-e686-49a2-90ff-4a42093d2b97" visibility="public" value="5000"/></defaultValue></Property><Property uuid="0d052732-9498-47b6-b8a3-955aa845a3cb" name="PORT_START" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="2fb24919-1de0-46d8-9ab2-c57cc26dc9b6" visibility="public" value="50000"/></defaultValue></Property><Property uuid="2523b88e-d291-4d9e-bfe0-1640c5e07f1a" name="EXPIRATION_TIME" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="04c58eea-969f-4c02-b531-33ecce44e5df" visibility="public" value="1000"/></defaultValue></Property><Property uuid="ef32bced-920b-4930-8eef-e0275972da39" name="selector" visibility="private" isLeaf="true" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Property uuid="e0144025-6679-40a0-8816-4e62691abf90" name="connection" visibility="private" isLeaf="true" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/><Property uuid="4b771e1d-686d-45a7-9699-4bbec9574994" name="urlHashed" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="7c645ff8-110b-4451-8ef9-ceaf1e9b3577" name="serverSocketChannel" visibility="private" type="007f1311-d0cf-4005-b7fb-5940096d639d"/><Property uuid="09d3752c-3a84-432c-bcea-24f174644919" name="clientSocketChannel" visibility="private" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="d2176c62-25bb-4b7a-b553-77336ccfa37a" name="cacheSelectionKey" visibility="private" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Property uuid="9d36c294-bc54-47d2-aad9-dc10dfc6fe44" name="requestPort" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="2beec8af-f503-4c70-9aec-b22e70c80af7" visibility="public" value="0"/></defaultValue></Property><Property uuid="a1291d83-689e-4600-b55d-94c25c741197" name="socketRequestTimeout" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="a98c7921-d4de-4fa6-9e32-a1da96f1b315" visibility="public" value="0"/></defaultValue></Property><Property uuid="38b33071-a208-4ef5-8540-48a1fd851454" name="isTimeout" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="b987d5a3-8ee0-400f-9e1c-d9a9fcd5b122" visibility="public" value="true"/></defaultValue></Property><Property uuid="8d09401c-4fe9-4893-b485-97bd84a484bf" name="headerRead" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="299d4a26-928f-4794-8ca7-d5bd71d8c19f" visibility="public" value="false"/></defaultValue></Property><Property uuid="813b33da-1523-4222-8119-63fc0aabd147" name="headerSize" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="e17b6139-81f2-4a9a-a368-fa9b470765f8" visibility="public" value="-1"/></defaultValue></Property><Property uuid="3b9c7ff8-9e07-42a4-870d-3f0a031d8a4d" name="headerBuffer" visibility="private" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"><defaultValue><LiteralString uuid="666a0894-c4d8-4953-b83f-32ab4ba27f1b" visibility="public" value="ByteBuffer.allocate(1024)"/></defaultValue></Property></ownedAttribute><ownedOperation><Operation uuid="9afef74d-b52c-4634-a89b-115785b2ec59" name="CacheRequest" visibility="public" DocComment="5c8bb415-2f1b-402c-82af-6636b2e3823e"><ownedComment><Comment uuid="5c8bb415-2f1b-402c-82af-6636b2e3823e" body="
 Performs a cache request on the network.

 @param selector Selector.
 @param connection Connection that request a ressource.
 @param url Url requested.
"><annotatedElement idref="9afef74d-b52c-4634-a89b-115785b2ec59"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="a535133f-a832-453b-80cb-32fa34d6073f" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="726f0eef-8305-4466-a423-60fd069edd1f" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="9998d099-9977-495a-b7ac-80183e8b0f95" name="connection" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/><Parameter uuid="e6c8e15f-e376-4be9-9716-dc0bf51ef1f4" name="urlHashed" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="4a32260f-96f3-45a7-8ec6-37abb2bf945c" name="sendRequest" visibility="public" DocComment="24dfd461-ceba-421c-a218-89072832e9e7"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="24dfd461-ceba-421c-a218-89072832e9e7" body="
 Send a unicast/multicast request to the network and opens the specified
 port in order to wait the answer.
"><annotatedElement idref="4a32260f-96f3-45a7-8ec6-37abb2bf945c"/></Comment></ownedComment><ownedParameter><Parameter uuid="bddde5e7-bc62-4dbc-8bf6-82333218de09" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="16a7494b-5007-4d87-aaea-27c2e5a90412" name="getConnection" visibility="public" DocComment="73979380-5048-431e-8c08-9ef5c5a2f418"><ownedComment><Comment uuid="73979380-5048-431e-8c08-9ef5c5a2f418" body="
 Returns the connection that instancied this cache operation.

 @return The connection.
"><annotatedElement idref="16a7494b-5007-4d87-aaea-27c2e5a90412"/></Comment></ownedComment><ownedParameter><Parameter uuid="bdc3febe-bf4a-4f22-86ca-9d240a111dbb" name="return" direction="return" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedParameter></Operation><Operation uuid="04297113-ad15-411c-815c-6f70f8ff4c2b" name="getUrlHashed" visibility="public" DocComment="ec68e7ad-a9d6-4f3b-9fbb-8b94255a2f39"><ownedComment><Comment uuid="ec68e7ad-a9d6-4f3b-9fbb-8b94255a2f39" body="
 Returns the url hashed.
"><annotatedElement idref="04297113-ad15-411c-815c-6f70f8ff4c2b"/></Comment></ownedComment><ownedParameter><Parameter uuid="6058c98b-0e37-4d99-93d0-fff4ce85b4db" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="c2b2c39a-2001-4776-a354-f7bb216a1fe7" name="isTimeout" visibility="public" DocComment="2f94574b-d11a-44e1-b4cb-db58c9baa7df"><ownedComment><Comment uuid="2f94574b-d11a-44e1-b4cb-db58c9baa7df" body="
 Returns true if the cache request is valid.

 @return False if the cache request has timeout or has still not received any connection.
"><annotatedElement idref="c2b2c39a-2001-4776-a354-f7bb216a1fe7"/></Comment></ownedComment><ownedParameter><Parameter uuid="dbc6d8dd-ddb7-40ba-95e4-abf880d68133" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="09aa1362-24f2-4928-b9c4-ade557148c86" name="close" visibility="public"><appliedStereotype><StereotypeApplication uuid="439c01dd-b39c-461b-8851-9a21f3d71f06" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="d09e92d9-715e-48f3-b97a-370c74fd9307" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="756e9f2a-b15f-41ed-8655-14e8c02a29ba" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="8baafed5-748e-46a1-8b19-ac7f1d5d4445" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6da46266-ad33-4778-b9b4-ad496bf4e4dd" name="handleRead" visibility="public"><appliedStereotype><StereotypeApplication uuid="545c2036-6d51-44f6-ae84-6abbe59a7225" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="e276c816-04e8-48df-9275-7323a8eb7f68" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="3617fdb8-25a1-4ab0-966d-33fb28b3a387" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="669ae1be-b042-4756-b9e5-7e96974b55dc" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="dfb7e869-b4d0-4a06-bdb6-0565fb3a856c" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="34608cfa-6b60-4f42-9d4c-3a24c0d995f0" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="adc833b6-12f3-4712-bfaa-5e9754431853" name="handleWrite" visibility="public"><appliedStereotype><StereotypeApplication uuid="69cd628d-52bd-4149-a8fe-dd0c15f3c3c4" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="6e686b41-1209-46b3-a98e-ae5d8abc32f2" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="638f8aec-570b-4196-bbe3-809e50b053cb" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="59ccdf40-9323-4e18-b7ba-5f88a869ebde" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="c21c8c81-fba8-465a-8b7d-0936355b2209" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="37d4a2fe-6022-4e77-835f-0ee05298ab29" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="bbd75f88-5942-4865-bf63-ffe82b716768" name="handleAccept" visibility="public"><appliedStereotype><StereotypeApplication uuid="15e78ea6-9f10-4d26-9152-a9402e22cc62" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="09987a89-a10b-440e-9c7f-32a69611fddb" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="198716be-f534-4480-b06f-ea6954bcbc10" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="57e53007-a022-4cdc-b561-d33628dc8d2e" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="da913fc1-e17d-4d97-9706-e20cb3df4de0" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="c418d3c4-1148-4d5f-8282-5dca9a5ac631" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="21505148-0894-4c8b-b9b2-2063593e4c75" name="handleConnect" visibility="public"><appliedStereotype><StereotypeApplication uuid="2d2a142b-7575-4fb7-9ebe-bb4af5e20d37" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="b0ed167d-ffd0-44b5-b07f-c056e57a521c" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="92a7fbf8-f131-4aef-8676-b02b44369316" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="1463bd70-f147-4690-8c13-22407642b830" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="f59c3e16-5438-48ed-827f-80bf6880ea7d" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="9b4d2b72-a51d-471a-a6d0-c80331c193f1" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="ea72062d-71b5-4b1e-aea6-3142336c31d7" name="requestData" visibility="public" DocComment="ed46d3b0-4cbd-4491-a1fc-d29940234a0f"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="ed46d3b0-4cbd-4491-a1fc-d29940234a0f" body="
 Send to the server that he can send the cache data.
"><annotatedElement idref="ea72062d-71b5-4b1e-aea6-3142336c31d7"/></Comment></ownedComment><ownedParameter><Parameter uuid="39262eaa-e817-49f7-895e-a4456006a3ca" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="9ba1afce-c166-4940-b987-d5033d97422f" name="CacheServer" visibility="public" usedForCodeSyncronization="true" DocComment="0ba45609-9770-4f59-8c5e-e5db98e03152"><codeFileName><CodeFileName name="CacheServer.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="6f2ec207-5171-4c6a-9170-4dc76eb7638b" visibility="public" contract="97532499-b594-4c32-9fb2-85b9cfaa23fd"/></interfaceRealization><ownedComment><Comment uuid="0ba45609-9770-4f59-8c5e-e5db98e03152" body="
 Listens for the cache requests.

 Listens for loopback request and multicast requests.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="9ba1afce-c166-4940-b987-d5033d97422f"/></Comment></ownedComment><ownedAttribute><Property uuid="e3c52867-d230-4ad5-92c0-026e55f2efa4" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="69485164-ddf8-4a55-9ddc-fe8fc8ae1f37" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="a0a72678-6611-4e85-8df9-73678b8f08a7" name="LOOPBACK_PORT" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="532da9ad-b9a1-4cb0-afe9-7a88ebd9d17f" visibility="public" value="new InetSocketAddress(5000)"/></defaultValue></Property><Property uuid="21dbae5c-27bc-4a48-bedb-4963def949f4" name="MULTICAST_ADDRESS" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="a23e6095-cb70-4614-87b5-32f3aeebb2e7" visibility="public" value="new InetSocketAddress(&quot;239.252.0.0&quot;, 5001)"/></defaultValue></Property><Property uuid="a43e9a15-390b-43bd-ba71-402cb512810b" name="cacheDirectory" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="61fa6ca1-bd34-4704-8c0d-e3c2ee7bc4f9" name="socket" visibility="private" isLeaf="true" type="72528084-cfa8-48bf-b03c-91abbc5c1813"/><Property uuid="1d942c8a-80fe-41fb-9455-f8c23d2cf572" name="requestBuffer" visibility="private" isLeaf="true" type="80bf4906-7a11-45fc-b6ec-40ebe7fdbd38"><lowerValue><LiteralString uuid="e1d5c8d7-97ad-4b33-84a8-f017e4f5aec1" visibility="public" value="*"/></lowerValue><upperValue><LiteralString uuid="d4379ae4-9a56-41df-9c7b-f2ec8f14543c" visibility="public" value="*"/></upperValue><defaultValue><LiteralString uuid="4e26d262-e46a-4b7b-92ae-4b11716426c9" visibility="public" value="new byte[1024]"/></defaultValue></Property><Property uuid="422d9b38-82aa-4ddf-91b6-cbede0c90dce" name="httpDateFormat" visibility="private" isLeaf="true" type="cbe6ae13-0fd0-4384-a96a-9c3c16fa9f44"><defaultValue><LiteralString uuid="95294ed8-163f-4d5a-b6bd-b3913c494d18" visibility="public" value="new SimpleDateFormat(&quot;EEE, dd MMM yyyy HH:mm:ss zzz&quot;, Locale.US)"/></defaultValue></Property><Property uuid="00470ab8-5f34-49d6-b7c9-10c5a671b4d8" name="encoder" visibility="private" isLeaf="true" type="bda4944c-0431-4e56-a20a-3f4aad466d8f"><defaultValue><LiteralString uuid="58d364fd-02eb-4cfa-8e41-9f3016ee0bc6" visibility="public" value="Charset.forName(&quot;ISO-8859-1&quot;).newEncoder()"/></defaultValue></Property></ownedAttribute><ownedOperation><Operation uuid="8ced967b-1d4d-4d4d-b076-b1b708e1552b" name="CacheServer" visibility="private" DocComment="9290075d-ed83-49e0-8db6-dfa26d0bc75a"><ownedComment><Comment uuid="9290075d-ed83-49e0-8db6-dfa26d0bc75a" body="
 Creates a cache server object listening the socket socket.

 @param socket Socket to listen.
"><annotatedElement idref="8ced967b-1d4d-4d4d-b076-b1b708e1552b"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="4d4bb37d-9bb9-449d-ade3-ceeeebf719aa" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="ad4186d0-1f8d-4080-83db-65e2a9d04aee" name="socket" type="72528084-cfa8-48bf-b03c-91abbc5c1813"/><Parameter uuid="9f91f7a8-42dc-4d4c-818a-cf27cb429e9b" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="e2a8dcf1-25b1-4e84-9bfd-1bf23a3f380f" name="run" visibility="public"><appliedStereotype><StereotypeApplication uuid="4d5c6d79-c062-4bf0-bd11-f2ec25c1d8c8" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="3f30bdc2-010f-45c1-99e2-0697b115fe2d" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="3559a1a3-6fdf-4930-a066-f525d55e39ae" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="90f42dab-6772-4458-9215-cd9623124fd8" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="9d084170-6ae6-480a-9b13-444fe34e55a5" name="serve" visibility="public" isStatic="true" DocComment="8287bd7e-6012-4eb0-ba61-2bafbc493827"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="8287bd7e-6012-4eb0-ba61-2bafbc493827" body="
 Launch the cache server.

 @param nbConnections Max number of connections to handle.
"><annotatedElement idref="9d084170-6ae6-480a-9b13-444fe34e55a5"/></Comment></ownedComment><ownedParameter><Parameter uuid="e197da58-c96c-4807-96c1-bd31bcb7137c" name="nbConnections" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="b0027e20-2e2b-4b6f-aa0d-ab5459467683" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="eaa5e5c6-216d-450a-b6d8-b90442873890" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="b4fbbb5e-ccb3-4e67-8a33-2a7156362c09" name="CacheUtilities" visibility="public" usedForCodeSyncronization="true" DocComment="a938341f-7f74-4ea7-ae62-b1c64e375552"><codeFileName><CodeFileName name="CacheUtilities.java"/></codeFileName><ownedComment><Comment uuid="a938341f-7f74-4ea7-ae62-b1c64e375552" body="
 Utilities for cache management.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="b4fbbb5e-ccb3-4e67-8a33-2a7156362c09"/></Comment></ownedComment><ownedOperation><Operation uuid="0c74e82d-582b-498f-ae9e-c076264d8657" name="isRequestedDataCanBeCached" visibility="public" isStatic="true" DocComment="43fb621b-ddf4-4da2-a806-c1e04a2d0b00"><ownedComment><Comment uuid="43fb621b-ddf4-4da2-a806-c1e04a2d0b00" body="
 Determines if the http request is cachable or not.

 @return true if a cache operation can be made.
"><annotatedElement idref="0c74e82d-582b-498f-ae9e-c076264d8657"/></Comment></ownedComment><ownedParameter><Parameter uuid="a6257269-ede2-4e3e-8e69-694951aeead6" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="3bf77427-421c-4335-9766-e4cc15c21f9a" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="65acd79b-e900-43ef-98f9-fc5f0fcbdc7a" name="hashUrl" visibility="public" isStatic="true" DocComment="d50b7732-b54f-4f3d-a55e-1d2377758a4d"><raisedException idref="8ca8eb9d-99e1-491d-9455-b2263b91a587"/><ownedComment><Comment uuid="d50b7732-b54f-4f3d-a55e-1d2377758a4d" body="
 Hash an URL using the SHA256 algorithm.

 @param url The URL.
 @return The hashed url using SHA256.

 @throws NoSuchAlgorithmException If SHA-256 isn&apos;t available on the
 system.
"><annotatedElement idref="65acd79b-e900-43ef-98f9-fc5f0fcbdc7a"/></Comment></ownedComment><ownedParameter><Parameter uuid="b66cfbfa-d3ec-4158-b133-1c2b7accaa7b" name="url" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="011a8da3-23ce-464e-8cf8-6f749fe6f083" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="da8289c7-116c-4c1d-9ec1-3cde061260ed" name="getCacheHeaderHttpValue" visibility="public" isStatic="true" DocComment="10999c3c-19e9-4f4b-b15c-2d1b95873b1d"><ownedComment><Comment uuid="10999c3c-19e9-4f4b-b15c-2d1b95873b1d" body="
 Returns the value of the cache-control field.

 @return Null if the field cannot be parsed.
"><annotatedElement idref="da8289c7-116c-4c1d-9ec1-3cde061260ed"/></Comment></ownedComment><ownedParameter><Parameter uuid="a6c4032d-3409-4a1a-91fb-80c92042370f" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="177b9993-5a34-4572-8626-c7aa3bed0f45" name="return" direction="return" type="288644bd-0f93-4890-8831-b1048deb82de"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="f24bb013-bc15-4380-8dcd-7d3afadf49da" name="CacheWriter" visibility="public" usedForCodeSyncronization="true" DocComment="d0d452a1-b559-4594-afb0-d6246f25aef3"><codeFileName><CodeFileName name="CacheWriter.java"/></codeFileName><ownedComment><Comment uuid="d0d452a1-b559-4594-afb0-d6246f25aef3" body="
 Writes received data to the local cache.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></Comment></ownedComment><ownedAttribute><Property uuid="7189d328-9af2-42a8-85c6-8b28a029186e" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="37a3c369-3a31-4922-bf2f-99b1b2851cdc" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="cb6f7101-ebcf-4a64-9ffe-1c26ed1ca34d" name="totalWrite" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="172dfcb6-b7fc-4117-aab8-6576647de597" visibility="public" value="0"/></defaultValue></Property><Property uuid="d3c43a4c-f207-4326-8a71-f5b6c743fd6d" name="headerHttp" visibility="private" isLeaf="true" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Property uuid="30ade970-1b6c-4b83-a393-2f8ebd8f3148" name="fileInfo" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="4ade3f29-c4fb-4014-a5fe-6e773b176580" name="fileData" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="3525a2ff-abc7-4d16-9fba-f586ce5e3535" name="fileInfoChannel" visibility="private" isLeaf="true" type="14305e17-d114-4ada-91cd-3cde9ec56681"/><Property uuid="f96cf3db-c545-4d73-a3aa-d8d2c9431946" name="fileDataChannel" visibility="private" isLeaf="true" type="14305e17-d114-4ada-91cd-3cde9ec56681"/><Property uuid="d49b5b63-52e8-4419-ac9a-d2bde757b08c" name="fileInfoLock" visibility="private" isLeaf="true" type="413346c5-ceaa-4f36-8166-ca18b56975a4"/><Property uuid="7193fd89-fb1c-4492-a2c4-e89b372bf3ba" name="fileDataLock" visibility="private" isLeaf="true" type="413346c5-ceaa-4f36-8166-ca18b56975a4"/></ownedAttribute><ownedOperation><Operation uuid="4e1d19eb-fcb7-4777-8e0c-198043bc3cae" name="CacheWriter" visibility="public" DocComment="fbe69ad6-ecbc-4a50-b420-50b8388486f1"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="fbe69ad6-ecbc-4a50-b420-50b8388486f1" body="
 Creates a cache writer objects.

 Once the writer is created, the files are locked by the OS. You must call
 close() to release the files.

 @param urlHashed Hasched url of the data to write.
 @param cacheDirectory Cache directory where to place cache files.
"><annotatedElement idref="4e1d19eb-fcb7-4777-8e0c-198043bc3cae"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="74acad7a-9344-4769-b7cf-9d5073e93d7f" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="d87c62bc-270e-483a-9d1f-c545fc6b2216" name="urlHashed" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="13d4afac-d3ba-4189-8e20-26e68eb3ba8b" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="61a60902-134e-4b3d-b1e0-107946a93eb5" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/></ownedParameter></Operation><Operation uuid="5a3c40e1-a57f-4381-a06c-cacf984b4ec9" name="write" visibility="public" DocComment="4001f6b8-469f-49e8-a835-f9a19c79f173"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="4001f6b8-469f-49e8-a835-f9a19c79f173" body="
 Performs a write operation to the file.

 @param buffer The buffer to write. Write from the position to the limit.
"><annotatedElement idref="5a3c40e1-a57f-4381-a06c-cacf984b4ec9"/></Comment></ownedComment><ownedParameter><Parameter uuid="14963d4e-0cf6-483a-b90f-e0a1a02d9cf8" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="0e6a7fb0-3bdc-42a3-890a-6569ef97dd49" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="2f65cd77-0539-467d-bb9d-8b70705acf37" name="close" visibility="public" DocComment="4a1026e1-2d8d-4c52-8354-a14619ff2813"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="4a1026e1-2d8d-4c52-8354-a14619ff2813" body="
 Closes the file, writes the metadata file and unlock everything.

 @param cancelCacheOperation Set to true to cancel the cache operation.
"><annotatedElement idref="2f65cd77-0539-467d-bb9d-8b70705acf37"/></Comment></ownedComment><ownedParameter><Parameter uuid="6f5c4158-749b-4270-af97-f4d476e4c0e0" name="cancelCacheOperation" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="99dd521d-2923-4a4f-8019-bdc863695471" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="25b80fe7-2ff8-4ba7-bec9-52a08ea12b14" name="isDataCachable" visibility="public" isStatic="true" DocComment="2ef4e7b6-2f06-4a08-a8cd-bfd1db4661a2"><ownedComment><Comment uuid="2ef4e7b6-2f06-4a08-a8cd-bfd1db4661a2" body="
 Returns if the header http is cachable.

 @param headerHttp The header http to checks.

 @return True if cachable, false otherwise.
"><annotatedElement idref="25b80fe7-2ff8-4ba7-bec9-52a08ea12b14"/></Comment></ownedComment><ownedParameter><Parameter uuid="c3ffb14e-d9fd-493f-96fc-e44d77cb72e7" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="b082b18e-57a5-40a6-9927-2421a0d316f2" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="4cbd4b4f-70f2-4e0e-8e31-1867bdc95e67" name="LocalCache_Old" visibility="public" usedForCodeSyncronization="true" DocComment="08a15f3d-52a9-48a3-a2fd-e3f0194a4280"><codeFileName><CodeFileName name="LocalCache_Old.java"/></codeFileName><ownedComment><Comment uuid="08a15f3d-52a9-48a3-a2fd-e3f0194a4280" body="
 Handles a local cache operation.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="4cbd4b4f-70f2-4e0e-8e31-1867bdc95e67"/></Comment></ownedComment><ownedAttribute><Property uuid="c2961b7f-b5a9-4b8e-a34f-5426f74200ba" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="018e9c80-acc6-4ef3-bd0a-fb7b9c066f4d" visibility="public" value="Logger.getLogger(LocalCache_Old.class.getName())"/></defaultValue></Property><Property uuid="529b4ef6-7bf1-4cc1-908f-d5e9b9d3ce00" name="httpDateFormat" visibility="private" isLeaf="true" isStatic="true" type="82e38df7-3690-4455-b404-75d4987796cd"><defaultValue><LiteralString uuid="418fd74f-4f20-43ae-97af-09afedaf321b" visibility="public" value="new SimpleDateFormat(&quot;EEE, dd MMM yyyy HH:mm:ss zzz&quot;, Locale.US)"/></defaultValue></Property><Property uuid="98b0be8e-5f59-4765-9f41-062b49ab94e1" name="LOCAL_CACHE_PATH" visibility="public" isLeaf="true" isStatic="true" type="81530a39-1176-47d7-add3-8da2cacba49c" DocComment="dd3b7b84-a573-46e6-ab61-a843f180fecc"><ownedComment><Comment uuid="dd3b7b84-a573-46e6-ab61-a843f180fecc" body="
 Local cache path.

 This folder must exists before starting qroxy.
"><annotatedElement idref="98b0be8e-5f59-4765-9f41-062b49ab94e1"/></Comment></ownedComment><defaultValue><LiteralString uuid="b940e7a2-a895-47e4-a8bb-242096137998" visibility="public" value="&quot;C:/Cache&quot;"/></defaultValue></Property><Property uuid="a1b09f7b-eb43-4ac6-a3d3-560ab158cdf3" name="urlHashed" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="9b2ef8e0-0691-4093-8ecb-ce797b837512" name="contentType" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="a2419c48-21cf-4da1-b1e7-51e2300ed5b4" name="canRead" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="96f2c39f-235f-49ea-aa25-5b068da7cead" name="canWrite" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="8cc3e487-17cc-486a-92df-174561851815" name="fileChannel" visibility="private" type="14305e17-d114-4ada-91cd-3cde9ec56681"><defaultValue><LiteralString uuid="70438614-0882-4f57-9825-c6028400fe21" visibility="public" value="null"/></defaultValue></Property><Property uuid="5dd46d0c-71ef-4054-80f0-e5898559d47a" name="filePath" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="5fac0dc7-f500-4886-9cae-7a15de735bf4" name="infoFilePath" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="2bd182cb-af21-49db-90fe-504f2316ff99" name="cacheSize" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedAttribute><ownedOperation><Operation uuid="61c34177-2849-4c93-942b-0a3b50601118" name="LocalCache_Old" visibility="private" DocComment="f48bd1ef-b635-4bb7-8c39-0ccfe4d75040"><ownedComment><Comment uuid="f48bd1ef-b635-4bb7-8c39-0ccfe4d75040" body="
 Create the cache object.
"><annotatedElement idref="61c34177-2849-4c93-942b-0a3b50601118"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="32cdb885-7fb0-44a5-8bc1-532f2dc3ba61" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="1943c13d-5558-442a-ae2b-76ec80e9c65d" name="urlHashed" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="27394bde-7b4c-4633-bb87-22b448b62eee" name="cacheFilePath" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="c222e081-fd3a-4ba5-a70e-b705743ff4a2" name="cacheInfoFilePath" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="34a2b74f-eff0-4ede-9516-95f2708c8195" name="cacheSize" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="e7702d0e-1d77-4378-837c-2773a0a7b78f" name="canRead" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="e258cf4b-e9f3-4f86-aaef-3e4e8018820d" name="canWrite" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="91d24804-ab6f-43b4-8712-240f133e28af" name="contentType" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="2992f526-12bb-469a-9810-cf51b94050f8" name="read" visibility="public" DocComment="ab5c81c0-ebd9-44e4-9e58-de2ecc50d2c8"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="ab5c81c0-ebd9-44e4-9e58-de2ecc50d2c8" body="
 Reads data from the cache file.

 @param buffer Data where to place read data.

 @return See FileChannel.read()
"><annotatedElement idref="2992f526-12bb-469a-9810-cf51b94050f8"/></Comment></ownedComment><ownedParameter><Parameter uuid="dde26f56-bc3b-4a88-9409-8e6770d6adc6" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="73dec421-0fb4-405e-a625-36bec3192b56" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="164a568d-a18c-4e68-8898-8713b25b7019" name="write" visibility="public" DocComment="743c613a-bee9-423a-a37f-ce714962fe27"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="743c613a-bee9-423a-a37f-ce714962fe27" body="
 Write data to the cache.

 @param buffer Data to write. Will write data from position to the limits.

 @return See FileChannel.write()
"><annotatedElement idref="164a568d-a18c-4e68-8898-8713b25b7019"/></Comment></ownedComment><ownedParameter><Parameter uuid="c103416b-caad-46fe-b1d7-89658e2a6f39" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="3028c8c8-eb01-4613-ad2d-2f362a849208" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="20d8f4f1-f743-4515-a151-cd7eb1400f8c" name="cancel" visibility="public" DocComment="f7877a43-0696-4129-95b4-2992fdd5af67"><ownedComment><Comment uuid="f7877a43-0696-4129-95b4-2992fdd5af67" body="
 Cancels this cache.

 Deletes all the cache files associated.
"><annotatedElement idref="20d8f4f1-f743-4515-a151-cd7eb1400f8c"/></Comment></ownedComment><ownedParameter><Parameter uuid="51af9471-d66d-4b18-909e-05c4527f1e14" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="4fc33661-48d8-4b35-9c16-2ab260673a2f" name="close" visibility="public" DocComment="a6c710b1-8d3d-4261-b452-e02655c221ce"><ownedComment><Comment uuid="a6c710b1-8d3d-4261-b452-e02655c221ce" body="
 Closes the cache.

 Writes the cache header information file.
"><annotatedElement idref="4fc33661-48d8-4b35-9c16-2ab260673a2f"/></Comment></ownedComment><ownedParameter><Parameter uuid="d68a71e1-c6ea-4335-8fd1-d8475f9b5d8f" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="449eb3f8-8ed5-4fdf-97b0-031200902699" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="a5742ec2-118d-4a7f-abff-fa97fabe021d" name="canWrite" visibility="public" DocComment="8162715d-800e-42dd-9d6d-3c7779d27a3a"><ownedComment><Comment uuid="8162715d-800e-42dd-9d6d-3c7779d27a3a" body="
 Parses the header http and updates the cache object depending the result.

 @return The reference of the cache object, or null if the cache object is
 useless and must be destroyed.
"><annotatedElement idref="a5742ec2-118d-4a7f-abff-fa97fabe021d"/></Comment></ownedComment><ownedParameter><Parameter uuid="131bba03-1358-44d6-81e6-2b4a8e41cac4" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="e5930f7b-eef4-4e5d-b3e7-0d588c7c1435" name="canRead" visibility="public"><ownedParameter><Parameter uuid="16bc2c13-2d0d-40d3-be0f-539f0a2222ea" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="4ede2fed-1592-4060-9169-28a516a6323f" name="getCacheSize" visibility="public"><ownedParameter><Parameter uuid="05297576-2518-42c8-8358-79f92f7cbc67" name="return" direction="return" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="0cbf94a7-93dd-43b2-bcbf-0a1a6880536d" name="requireValidation" visibility="public"><ownedParameter><Parameter uuid="7b36b4ed-2382-4f1f-b95a-1f994214f527" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="d06bdb67-73b8-4c6a-a210-9e2d0567eb6e" name="getFilePath" visibility="public"><ownedParameter><Parameter uuid="0d2fe2a8-d7cd-4d46-a7d7-c6a9bfb35e7d" name="return" direction="return" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="288644bd-0f93-4890-8831-b1048deb82de" visibility="public"><templateBinding><TemplateBinding uuid="3d018a26-7bd7-4382-b580-7b2e18e7dd12" signature="623c5447-d650-4c69-b650-517dbb9141ff"><parameterSubstitution><TemplateParameterSubstitution uuid="0a7059d1-517a-4537-8f80-17464533f4e8" formal="36b0e09c-4aed-44fa-ac25-ef70b83d7187" actual="81530a39-1176-47d7-add3-8da2cacba49c"/></parameterSubstitution></TemplateBinding></templateBinding></Class></packagedElement></Package><Package uuid="727c732a-5b1d-4916-9460-2087c8f15ba1" name="communication" visibility="public"><appliedStereotype><StereotypeApplication uuid="042ad21d-44eb-4f93-a1b4-c1f46577fab8" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Interface uuid="0b3153ed-1fe4-4739-a92c-22aef6084880" name="Communicable" visibility="public" usedForCodeSyncronization="true" DocComment="5653b4b2-0fba-4992-8874-01cc41bad92b"><codeFileName><CodeFileName name="Communicable.java"/></codeFileName><ownedComment><Comment uuid="5653b4b2-0fba-4992-8874-01cc41bad92b" body="
 Interface that allow communications.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="0b3153ed-1fe4-4739-a92c-22aef6084880"/></Comment></ownedComment><ownedOperation><Operation uuid="e95a9c8f-102f-44d5-9d3a-cb879054bff6" name="handleRead" visibility="public" DocComment="c57c4db1-2f21-4b51-a026-c13361b93206"><ownedComment><Comment uuid="c57c4db1-2f21-4b51-a026-c13361b93206" body="
 Handles a read operation.

 @param channel Channel selected.
"><annotatedElement idref="e95a9c8f-102f-44d5-9d3a-cb879054bff6"/></Comment></ownedComment><ownedParameter><Parameter uuid="16dbd5f5-c74f-4a30-9bf3-00595998459b" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="5b83b829-d6b9-4127-80e7-2bf5a95b9161" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="b059df2e-3368-47e0-a7ef-29f22505573f" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="40bc90c0-5eaf-4040-87d8-50b77f14b66d" name="handleWrite" visibility="public" DocComment="15e7940b-d86f-4d75-876b-8a4cbb077100"><ownedComment><Comment uuid="15e7940b-d86f-4d75-876b-8a4cbb077100" body="
 Handles a write operation.

 @param channel Channel selected.
"><annotatedElement idref="40bc90c0-5eaf-4040-87d8-50b77f14b66d"/></Comment></ownedComment><ownedParameter><Parameter uuid="f592a39b-c897-476c-9eb8-91255368293f" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="f7ce8e8b-0450-4978-b6fb-202bba79acc6" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="38c06382-ca0d-425a-b291-73c7dc988655" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="f6b8f7b2-6e92-4c17-92a3-4a597fd83cc3" name="handleAccept" visibility="public" DocComment="86c95f12-4a45-4d93-8135-bd97eda42357"><ownedComment><Comment uuid="86c95f12-4a45-4d93-8135-bd97eda42357" body="
 Handles an accept operation.

 @param channel Channel selected.
"><annotatedElement idref="f6b8f7b2-6e92-4c17-92a3-4a597fd83cc3"/></Comment></ownedComment><ownedParameter><Parameter uuid="f06e3ac3-d3b2-4509-87d2-c783e52d973d" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="e4e24c4a-0e7c-46cd-85ec-7ad9c83939e4" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="99acc04f-ff6b-4b3d-bc89-72d740ff5e0b" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="f4d15e43-5d9f-4dc5-89ed-09f0885c33bb" name="handleConnect" visibility="public" DocComment="7036a0a6-654a-4270-8a55-4cdd9121ba7d"><ownedComment><Comment uuid="7036a0a6-654a-4270-8a55-4cdd9121ba7d" body="
 Handles a connect operation.

 @param channel Channel selected.
"><annotatedElement idref="f4d15e43-5d9f-4dc5-89ed-09f0885c33bb"/></Comment></ownedComment><ownedParameter><Parameter uuid="fce1a7b1-003d-486e-bfe5-7be6459ee1bf" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="599f30eb-949c-4f15-816d-2d0d177eea1f" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="9a8eea67-f5ff-4d31-82a0-138290216420" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="c867945e-0666-42ae-a9bf-07847371bb1d" name="close" visibility="public" DocComment="e45c4015-459e-40b6-bd30-8f3c77dde6d0"><ownedComment><Comment uuid="e45c4015-459e-40b6-bd30-8f3c77dde6d0" body="
 Closes the communication.
"><annotatedElement idref="c867945e-0666-42ae-a9bf-07847371bb1d"/></Comment></ownedComment><ownedParameter><Parameter uuid="007075ae-ccba-4e49-9338-c8bd877e5714" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Interface><Class uuid="ae1de26b-4144-4410-8eb5-276e998c7c7b" name="Connection" visibility="public" usedForCodeSyncronization="true" DocComment="289c2fcf-8585-44de-9fd8-0a33aa69692c"><codeFileName><CodeFileName name="Connection.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="3ced1828-d003-4a04-a6e8-9bec9a7e7f18" visibility="public" contract="0b3153ed-1fe4-4739-a92c-22aef6084880"/></interfaceRealization><ownedComment><Comment uuid="289c2fcf-8585-44de-9fd8-0a33aa69692c" body="
 Connection between a client and the proxy.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></Comment></ownedComment><ownedAttribute><Property uuid="61e1b97a-05f8-4f1c-9d27-a466dee6408e" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="2ab23975-9bc7-4f12-bac0-a2e9254e8903" visibility="public" value="Logger.getLogger(Connection.class.getName())"/></defaultValue></Property><Property uuid="de416865-bdfa-4fb7-9c56-38973ef7f8d2" name="FRAGMENT_SIZE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="1091cd8e-8d36-4eea-bcdb-a6e518c1995a"><ownedComment><Comment uuid="1091cd8e-8d36-4eea-bcdb-a6e518c1995a" body="
 Size of the fragment to be read/sent on the network.
"><annotatedElement idref="de416865-bdfa-4fb7-9c56-38973ef7f8d2"/></Comment></ownedComment><defaultValue><LiteralString uuid="e2948d69-ba3a-454b-a446-a72889c63cdd" visibility="public" value="16384 * 8"/></defaultValue></Property><Property uuid="50909eb7-9729-4549-9233-c063a7184caa" name="clientEmissionBuffer" visibility="private" isLeaf="true" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"><defaultValue><LiteralString uuid="b4b0fafe-2be1-4e3c-bb92-929deebe0d07" visibility="public" value="ByteBuffer.allocateDirect(FRAGMENT_SIZE)"/></defaultValue></Property><Property uuid="463ca737-0ca9-4790-813f-f86a1550efbf" name="serverEmissionBuffer" visibility="private" isLeaf="true" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"><defaultValue><LiteralString uuid="67452a4a-3ced-47bf-a690-9b8e998fe31e" visibility="public" value="ByteBuffer.allocateDirect(FRAGMENT_SIZE)"/></defaultValue></Property><Property uuid="b4d145d3-9907-4823-b5b5-7027675e8d86" name="clientChannel" visibility="private" isLeaf="true" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="ff734775-b58e-46fa-bb23-a41672107fc3" name="serverChannel" visibility="private" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="4230b6a7-338f-4254-b3c4-238e9fd1b399" name="clientSelectionKey" visibility="private" isLeaf="true" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Property uuid="93390089-5d27-46d3-b235-eebccbf5a89f" name="serverSelectionKey" visibility="private" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Property uuid="8a4eee94-5187-480b-995b-204bc35f1080" name="requestHeaderHttp" visibility="private" type="13b04fce-67a2-4c3e-8332-1a0abded9174"><defaultValue><LiteralString uuid="f464dc5f-d1ba-4a30-8829-d7e91f0ce90d" visibility="public" value="null"/></defaultValue></Property><Property uuid="cb01fc9e-6943-49fc-b253-e1c3ede93c99" name="answerHeaderHttp" visibility="private" type="13b04fce-67a2-4c3e-8332-1a0abded9174"><defaultValue><LiteralString uuid="c91b5965-faf1-4fc6-bab7-a5c916be3b3c" visibility="public" value="null"/></defaultValue></Property><Property uuid="1d749d34-6fec-455e-8a71-b179515cad94" name="clientRule" visibility="private" type="050cecf9-589d-4a8e-8705-ad03fd6542c5"><defaultValue><LiteralString uuid="8804a7e7-3262-42ed-a413-56ebcd518574" visibility="public" value="null"/></defaultValue></Property><Property uuid="af9b43d4-42cf-4cc9-9537-0882d124fc97" name="serverRule" visibility="private" type="050cecf9-589d-4a8e-8705-ad03fd6542c5"><defaultValue><LiteralString uuid="30fdd9d7-b3a9-4078-aa21-3cea103eb19d" visibility="public" value="null"/></defaultValue></Property><Property uuid="e0344500-2bbc-4e1d-81e8-4dd27313e1cb" name="clientToServerTransfer" visibility="private" type="9fa974e1-051f-4a36-acb7-f7116a577746"/><Property uuid="45e07359-339e-4205-9274-5ec32cce3077" name="serverToClientTransfer" visibility="private" type="9fa974e1-051f-4a36-acb7-f7116a577746"/><Property uuid="7a3d0105-e788-474f-ab5a-50518cebaa63" name="cacheDirectory" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="6bb24c0d-3d3f-4898-862e-fb850b5d7ac0" name="isRequestedDataCanBeCached" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="233ce88e-1ff0-4d0c-9496-f456a37fc76f" name="cacheHashedUrl" visibility="private" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="4e968b1c-677d-452e-a030-7b9bede87270" name="cacheRequest" visibility="private" type="e44596f5-84fe-4ede-85b2-d4360328ef30"/><Property uuid="3c36d4ef-e283-4f1a-9a69-669f39fb7f93" name="cacheInfo" visibility="private" type="577b6386-052f-4b41-a12e-dc413d128bdb"/><Property uuid="cc5bc3c0-ac23-4400-925b-865ce1ed2c60" name="cacheSocketChannel" visibility="private" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="7ae87f33-2c55-45b3-ab76-ec30f47231d3" name="cacheWriter" visibility="private" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/><Property uuid="20612a53-1d0e-45b8-8abc-43bdbb2762c5" name="httpDateFormat" visibility="private" type="82e38df7-3690-4455-b404-75d4987796cd"><defaultValue><LiteralString uuid="9858335d-9030-4ac8-8780-62e9b702282d" visibility="public" value="new SimpleDateFormat(&quot;EEE, dd MMM yyyy HH:mm:ss zzz&quot;, Locale.US)"/></defaultValue></Property><Property uuid="757fe1ba-1151-4428-90a9-f3c07cd40843" name="timeoutTime" visibility="private" type="f9cd5aab-9322-4fad-b431-9f53dc036d15"><defaultValue><LiteralString uuid="1e6ca2d5-0b16-4e1e-86b8-158d81042081" visibility="public" value="null"/></defaultValue></Property><Property uuid="ded84ffe-cd15-4ffa-bffd-3829cad0e91c" name="closed" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="e6c44794-e75d-4c00-b650-2edcb441deba" visibility="public" value="false"/></defaultValue></Property></ownedAttribute><ownedOperation><Operation uuid="41337e13-5d7d-44a3-9dbe-a8b465135134" name="Connection" visibility="public" DocComment="3da37588-cfc1-44c9-b427-da087cbc83e0"><ownedComment><Comment uuid="3da37588-cfc1-44c9-b427-da087cbc83e0" body="
 Creates a new proxy connection.

 @param clientChannel SocketChannel of the client with the proxy server.
 @param clientSelectionKey Selection key, used to register interesting
 event. (READ/WRITE)
"><annotatedElement idref="41337e13-5d7d-44a3-9dbe-a8b465135134"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="fbe214f6-96db-4390-a20f-592abe6e6399" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="6ba1464b-ab18-4a0f-bd77-e5546cd4dd5b" name="clientChannel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="a7b12bf8-044d-4628-8f5c-608ec47d1632" name="clientSelectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="d590570e-423e-49b3-acd4-907f051b9c13" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="505faca1-a8c6-49ca-baad-aa73c696f5b0" name="close" visibility="public" DocComment="228b24d7-14fa-42ca-8d7d-ca79c13cf30b"><ownedComment><Comment uuid="228b24d7-14fa-42ca-8d7d-ca79c13cf30b" body="
 Closes this connection.
"><annotatedElement idref="505faca1-a8c6-49ca-baad-aa73c696f5b0"/></Comment></ownedComment><ownedParameter><Parameter uuid="5d021b4a-c8ab-42d9-8b1f-e6ba261b4100" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="e5a24350-e442-43de-ad3b-fcbd1eb88d7f" name="close" visibility="public" DocComment="cea25aee-03ed-4a72-8860-db885394aba2"><ownedComment><Comment uuid="cea25aee-03ed-4a72-8860-db885394aba2" body="
 Closes this connection.

 @param message Message to send to the client.
"><annotatedElement idref="e5a24350-e442-43de-ad3b-fcbd1eb88d7f"/></Comment></ownedComment><ownedParameter><Parameter uuid="ec1031a5-f6b2-49e9-a870-1eb5de36ad65" name="message" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="6393fcc6-bbeb-46de-b075-929009cb7d7e" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="596e84d8-2fa5-43e4-9b71-6ed2e61eb3a7" name="receiveHttpHeader" visibility="private" DocComment="b87b395a-f8d1-457a-96d4-6300bfae09b0"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ownedComment><Comment uuid="b87b395a-f8d1-457a-96d4-6300bfae09b0" body="
 Receive and parse an http header on a bytebuffer stream.

 This method allow to be called multiple time on the same buffer!

 @param channel Channel to read data from.
 @param buffer Buffer to place data in.
 @param useOnlyBuffer Do not read from the channel and use only data
 contained in the buffer.

 @return An HTTP Header or null if there was not enough data to parse an
 http header.
"><annotatedElement idref="596e84d8-2fa5-43e4-9b71-6ed2e61eb3a7"/></Comment></ownedComment><ownedParameter><Parameter uuid="807e1b9a-c659-4a10-b2fb-108c4cb2fc9b" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="81a04be5-67cf-48bf-bbc4-cbc8ea66304e" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="83896f34-d5be-43ba-a77b-2dc5e2b8d523" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="c3811846-1442-4f43-840d-ebeb7776fe70" name="return" direction="return" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/></ownedParameter></Operation><Operation uuid="48e9297b-d897-4bd6-a4f0-20b4a8526147" name="performClientRead" visibility="public" DocComment="b8f21805-ca3f-4fbd-b4b8-521ad4c73b4f"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="b8f21805-ca3f-4fbd-b4b8-521ad4c73b4f" body="
 Reads the data from the client.

 Parses the HTTP request, connects to the distant server and do other
 things.

 @param selector The selector in order to register the newly created
 connection.
 @param useOnlyBuffer Do not read from the channel and use only data
 contained in the buffer.
"><annotatedElement idref="48e9297b-d897-4bd6-a4f0-20b4a8526147"/></Comment></ownedComment><ownedParameter><Parameter uuid="8e3f8e10-50b0-434a-abcb-9e09b4886a1f" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="6b25c45b-4d99-4dbd-8a6e-be51507ef59e" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="4ccc9ebe-6134-43ce-9ea7-a813cffb05e1" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6823abda-3679-4486-b02b-c791251fa414" name="performServerRead" visibility="public" DocComment="5518d964-e922-44ba-a00d-32b0c5b663b4"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="5518d964-e922-44ba-a00d-32b0c5b663b4" body="
 Reads the data from the server.

 And place them to the buffer to be sent to the client.
"><annotatedElement idref="6823abda-3679-4486-b02b-c791251fa414"/></Comment></ownedComment><ownedParameter><Parameter uuid="9aed91e8-4f61-4dd2-a6c7-c68166324736" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="bb97d9ee-b6ff-4efb-a8ac-783424ac60a0" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="508849ff-befd-4896-9dfd-0d2e63fa36df" name="performServerWrite" visibility="public" DocComment="79c68fdd-16ba-42bc-a48e-841755bf39d2"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="79c68fdd-16ba-42bc-a48e-841755bf39d2" body="
 Writes the available datas to the server.

 @return True if the buffer is not empty and data must be parsed in order
 to be sent.
"><annotatedElement idref="508849ff-befd-4896-9dfd-0d2e63fa36df"/></Comment></ownedComment><ownedParameter><Parameter uuid="5da70a77-e092-40ba-b22a-3b2b3730e79b" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="48e25126-4cf8-4e48-bcfe-184f9ba476f4" name="performClientWrite" visibility="public" DocComment="2422bb63-9ee6-4b63-ab9c-2422a6b03abd"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="2422bb63-9ee6-4b63-ab9c-2422a6b03abd" body="
 Writes the available datas to the client.

 @return True if the buffer is not empty and data must be parsed in order
 to be sent.
"><annotatedElement idref="48e25126-4cf8-4e48-bcfe-184f9ba476f4"/></Comment></ownedComment><ownedParameter><Parameter uuid="9497d0b8-f5d4-4a35-b018-2920add831a8" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="1a9da6b9-e7c0-4cb8-a3b9-be2d00938e21" name="getClientChannel" visibility="public" DocComment="c1d07b37-ea06-4f3f-8476-e6aeb33c6005"><ownedComment><Comment uuid="c1d07b37-ea06-4f3f-8476-e6aeb33c6005" body="
 Gets the client channel.

 @return The client channel.
"><annotatedElement idref="1a9da6b9-e7c0-4cb8-a3b9-be2d00938e21"/></Comment></ownedComment><ownedParameter><Parameter uuid="b3a9959e-3dbc-4458-893a-9716b1a22351" name="return" direction="return" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/></ownedParameter></Operation><Operation uuid="fa1d2083-2890-4649-9fc3-f1dc372485a5" name="getServerChannel" visibility="public" DocComment="f32e2031-7a5c-4d6a-9bc8-74ec993b71d3"><ownedComment><Comment uuid="f32e2031-7a5c-4d6a-9bc8-74ec993b71d3" body="
 Gets the server channel.

 @return The server channel.
"><annotatedElement idref="fa1d2083-2890-4649-9fc3-f1dc372485a5"/></Comment></ownedComment><ownedParameter><Parameter uuid="4280283f-21c4-4084-a7b6-af20f9aaaaf7" name="return" direction="return" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/></ownedParameter></Operation><Operation uuid="585e59d5-7a2b-437f-8ad6-4ee35fe18f1f" name="getTimeoutTime" visibility="public" DocComment="696a5bf8-2183-448e-bf4f-4022a81ca4f4"><ownedComment><Comment uuid="696a5bf8-2183-448e-bf4f-4022a81ca4f4" body="
 Gets the communication timeout time.

 @return The timeout time.s
"><annotatedElement idref="585e59d5-7a2b-437f-8ad6-4ee35fe18f1f"/></Comment></ownedComment><ownedParameter><Parameter uuid="9312bc09-3bb3-4c54-8b30-cb4fcb46ba85" name="return" direction="return" type="f9cd5aab-9322-4fad-b431-9f53dc036d15"/></ownedParameter></Operation><Operation uuid="55939506-7d4c-4500-a9da-7ccc3a0092d9" name="debugPrintBuffer" visibility="public" isStatic="true"><ownedParameter><Parameter uuid="5cc87d1f-4efd-4942-8c67-8c710b4d1c38" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="c6a7d946-0516-4f42-abf0-26030a9a499e" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="528e7df2-3580-47e4-9475-c2661699bb48" name="handleRead" visibility="public"><appliedStereotype><StereotypeApplication uuid="843e4cbf-d383-46b3-b14d-94dbeab09d37" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="e6c14fa2-112c-411d-ac59-449fb7be5147" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="73fa26e1-7ebc-411c-9a61-16dee1e76451" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="b498e58c-b191-4acd-aa81-69ff55f997f3" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="88436b55-c33e-4546-965c-0e6fc1224bf7" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="a3257a6d-2f98-4482-ab21-b62c25ee5951" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6cce1829-7b7e-4c1d-96a2-dba52d4f6079" name="handleWrite" visibility="public"><appliedStereotype><StereotypeApplication uuid="3b78652e-066e-438e-9477-c72da301feab" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="c3355263-a3c3-4329-b1df-81d46b211fc4" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="1abcfebe-960c-44e9-82c5-2adfb3a8d4b4" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="bfc6c619-6758-4d5e-86f0-09b7d222c8a7" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="36d893bc-2d9f-4a1a-bd60-3c568de33311" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="296d5d47-7d24-4262-973a-3976bb4fa96d" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="32903c92-f9e5-49a7-9822-1c5341da5d98" name="handleAccept" visibility="public"><appliedStereotype><StereotypeApplication uuid="aaa9c3f9-29d5-4517-9127-f762f9538b36" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="90c854f9-02eb-4c3b-8bf3-a8640c3054f5" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="32b4b512-2012-4cb2-bca1-77cc69452361" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="98bdf1af-e5c2-4d95-9e2d-773dd148c1cc" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="2be516bc-4041-47e5-9d67-e0298fd04cfe" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="c39acd62-611c-4ca3-821e-98a164830123" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="3d6930fa-7472-4bb9-96e1-9a78ea7b58dd" name="handleConnect" visibility="public"><appliedStereotype><StereotypeApplication uuid="44b9f20f-db04-4dbd-b193-d752a592a462" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="47e67f9c-7ca9-4037-92ae-320b3ff11d24" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="a8f82c40-5fe0-4bbf-8e44-e3009c0806ea" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="3a96b02e-ffa4-4c0b-b53f-4f2fb195c174" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="8e8ed358-5b33-40cf-b7cd-667534ecf2cc" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="5c061fb0-8a5e-420b-b661-66b04aeeed17" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6c0abfad-e206-4e89-9f16-ccce30250811" name="setCache" visibility="public" DocComment="699d69cd-4aee-4e05-a523-7596fe4ba536"><ownedComment><Comment uuid="699d69cd-4aee-4e05-a523-7596fe4ba536" body="
 Specify a cache connection.

 @param cacheInfo The informations about the received cache.
 @param clientSocketChannel The socket channel used to receive data from
 the cache.
"><annotatedElement idref="6c0abfad-e206-4e89-9f16-ccce30250811"/></Comment></ownedComment><ownedParameter><Parameter uuid="6db4497f-54e2-4f66-a53c-152f3740d908" name="cacheInfo" type="577b6386-052f-4b41-a12e-dc413d128bdb"/><Parameter uuid="786601ec-84d9-42d2-9c41-8a246d6a7e6f" name="cacheSocketChannel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="e6777600-99a9-444e-a791-2b10effbb110" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="198256f8-6f68-40c6-8818-e9e32eb46cbb" name="Qroxy" visibility="public" usedForCodeSyncronization="true" DocComment="03d049d7-f9de-4dc1-8c53-a484b0f07ff7"><codeFileName><CodeFileName name="Qroxy.java"/></codeFileName><ownedComment><Comment uuid="03d049d7-f9de-4dc1-8c53-a484b0f07ff7" body="
 Main class of Qroxy.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="198256f8-6f68-40c6-8818-e9e32eb46cbb"/></Comment></ownedComment><ownedOperation><Operation uuid="c19b65df-d7f3-4dee-9390-866735b3dcf6" name="main" visibility="public" isStatic="true"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedParameter><Parameter uuid="622d2a27-223e-420f-8045-ae352b288fca" name="args" type="81530a39-1176-47d7-add3-8da2cacba49c"><lowerValue><LiteralString uuid="85ca9f9f-3919-46fa-9c89-47602f5350a5" visibility="public" value="*"/></lowerValue><upperValue><LiteralString uuid="ad392674-159e-4738-b928-4872e72ec337" visibility="public" value="*"/></upperValue></Parameter><Parameter uuid="ae09f75f-9d2b-4bbb-92eb-8c12c3bea527" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="6ab96bec-6356-4ab8-99c2-86062c2a87b4" name="Server" visibility="public" usedForCodeSyncronization="true" DocComment="5aad7226-0ec8-4a82-a5a0-4da849714e6f"><codeFileName><CodeFileName name="Server.java"/></codeFileName><ownedComment><Comment uuid="5aad7226-0ec8-4a82-a5a0-4da849714e6f" body="
 Qroxy single thread server.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="6ab96bec-6356-4ab8-99c2-86062c2a87b4"/></Comment></ownedComment><ownedAttribute><Property uuid="d1c745d5-5039-4905-b6f9-8675dadd83bc" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="655dd587-72ae-4693-a03d-eecd690745e6" visibility="public" value="Logger.getLogger(Server.class.getName())"/></defaultValue></Property><Property uuid="d731cb07-4432-4163-8a99-865f707992e6" name="port" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="dc4f5ce6-cb57-4916-aee3-f940c287380f" name="cacheDirectory" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedAttribute><ownedOperation><Operation uuid="4025adc3-9ca8-4408-af04-0bc5be5ea8df" name="Server" visibility="public" DocComment="aee4dc77-5504-478c-b09d-de3aef733cfe"><ownedComment><Comment uuid="aee4dc77-5504-478c-b09d-de3aef733cfe" body="
 Qroxy proxy server.

 @param port Port to bind to.
"><annotatedElement idref="4025adc3-9ca8-4408-af04-0bc5be5ea8df"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="162730b0-3d8e-4def-bfe6-e6368f5ffee0" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="f65d84fa-6462-41a3-a6e9-c93b67718577" name="port" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="3f7b900b-1cfc-49c5-9a1b-bc28aa8b4380" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="83a6b5c9-b0bf-4ce7-8c94-2b297917e7e7" name="run" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedParameter><Parameter uuid="53ed7aae-537a-4d35-b3a6-965927a47b14" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Package uuid="83b1d5a1-2af8-405f-bc13-198cb6913fcc" name="transfer" visibility="public"><appliedStereotype><StereotypeApplication uuid="a65b615a-e47f-4e01-87ae-1a2926d05a3e" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Class uuid="c23aa30f-f714-44bb-861f-46617e2d21bf" name="ChunkedTransfer" visibility="public" usedForCodeSyncronization="true" DocComment="f7bb550d-a147-4716-ba15-1e26571618ba"><codeFileName><CodeFileName name="ChunkedTransfer.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="104b6f7d-d199-4541-b6ab-0779dc6d44ee" visibility="public" contract="9fa974e1-051f-4a36-acb7-f7116a577746"/></interfaceRealization><ownedComment><Comment uuid="f7bb550d-a147-4716-ba15-1e26571618ba" body="
 Chunked transfer operation.

 To use when the Content-length is not known and transfer mode is chunked.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="c23aa30f-f714-44bb-861f-46617e2d21bf"/></Comment></ownedComment><ownedAttribute><Property uuid="d9224a4a-227e-4fd8-816a-862e4bf04d9e" name="headerEndPosition" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="8c376dde-1f77-46c3-a76f-c1bd24c67154" name="chunkHeader" visibility="private" type="2970790b-ffc3-48bc-95c4-4ad48fae6880"><defaultValue><LiteralString uuid="f4dc0b1c-b507-440e-8db4-59c351860b37" visibility="public" value="new ChunkHeader(-1, -1)"/></defaultValue></Property><Property uuid="3346d3cb-603b-4519-ba02-953608321301" name="totalRead" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="441037d6-38c6-4e61-96df-6a24d57ea975" visibility="public" value="0"/></defaultValue></Property><Property uuid="6c50e716-804b-4eb0-9fdb-d1269680e363" name="totalWrite" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="bf56118c-823d-41e1-a2af-daed93549c5a" visibility="public" value="0"/></defaultValue></Property><Property uuid="ac1dc67f-a913-4156-aca3-5defa5921d4c" name="chunkRead" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="b4082ebd-d55c-483e-8537-f83f53dc4483" visibility="public" value="0"/></defaultValue></Property><Property uuid="71ebdea6-a507-4fb7-92d1-f969abf58b45" name="chunkWrite" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="f6025840-3bbe-4396-8caf-e6cd49753f42" visibility="public" value="0"/></defaultValue></Property><Property uuid="9579c0de-b5b4-49d9-81d7-4ac6c88c87c8" name="firstRead" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="2942cdd1-cb26-4f8e-9d3f-70282a2f7874" visibility="public" value="true"/></defaultValue></Property><Property uuid="1e983b79-b3fd-4d7b-8426-8ed7a804e563" name="cacheWriter" visibility="private" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedAttribute><nestedClassifier><Class uuid="2970790b-ffc3-48bc-95c4-4ad48fae6880" name="ChunkHeader" visibility="private" usedForCodeSyncronization="true"><ownedAttribute><Property uuid="e23c6a9b-f14c-4f0c-b758-2926adf1c784" name="chunkLength" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="d7823c60-c029-4811-b115-2b2f8159d456" name="dataLength" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedAttribute><ownedOperation><Operation uuid="9d1c4359-5ca7-49ea-b6cf-ef774c59ef50" name="ChunkHeader" visibility="public"><appliedStereotype><StereotypeApplication uuid="73da130d-a68a-408f-942a-2d359dea6987" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="4a3440c2-4fce-480d-80ce-38e08500ebb9" name="chunkLength" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="dac75234-2440-49a6-9b28-7e556ecdedd3" name="dataLength" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation></ownedOperation></Class></nestedClassifier><ownedOperation><Operation uuid="058144e9-606f-46e7-b31b-aeef5e93e3ab" name="ChunkedTransfer" visibility="public" DocComment="2b4d6dc3-6b94-499d-8b96-54d04221feb4"><ownedComment><Comment uuid="2b4d6dc3-6b94-499d-8b96-54d04221feb4" body="
 Chunked Transfer.

 @param headerEndPosition End position of the HTTP header in the buffer.
"><annotatedElement idref="058144e9-606f-46e7-b31b-aeef5e93e3ab"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="6dc886f2-2080-455a-a879-1e23bfc34d59" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="57459b35-1975-49f5-8882-a869b978a201" name="headerEndPosition" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="fac158c3-09b2-4156-a4f3-57f515fecbe8" name="ChunkedTransfer" visibility="public" DocComment="71b5ee25-b116-45fb-817f-83ff9ee251fc"><ownedComment><Comment uuid="71b5ee25-b116-45fb-817f-83ff9ee251fc" body="
 Chunked Transfer.

 @param headerEndPosition End position of the HTTP header in the buffer.
"><annotatedElement idref="fac158c3-09b2-4156-a4f3-57f515fecbe8"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="13c38f29-ebb9-4611-afb1-ba231d34e591" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="5e68ffcd-3585-41e3-bed6-4f9a34df67fb" name="headerEndPosition" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="c734ca4f-eea6-4dff-a10d-d3b287c127b4" name="cacheWriter" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedParameter></Operation><Operation uuid="6ade1cf1-06bc-4baf-8a78-76e446716650" name="read" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><appliedStereotype><StereotypeApplication uuid="dbc2362c-5539-481b-8474-83bff167430f" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="90926a26-d572-44ae-9232-2cbd1187ced2" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="697e7149-e957-4581-af2d-ee275a3fff9d" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="471ae644-775f-48f0-be63-1e753ed85f90" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="338f748a-dfca-43f3-b36d-f724a92772a5" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="0e5eb54d-8d99-41ac-8656-e2dc88b0b598" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="96fef432-9d00-44a2-9203-e008dae3de45" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="692200dd-9994-447e-be71-c8766b9b735a" name="write" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><appliedStereotype><StereotypeApplication uuid="e660d239-4daf-4dd4-b055-c9b00f519ed2" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="a631117e-4197-422d-849e-85fbe8463cf3" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="cd75e3f8-9705-4152-9bdf-f7cd93b41a17" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="7ea7af85-2c05-476a-bc70-657c5c519c78" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="b13bb960-8732-41f4-843a-3214b86b9bb8" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="4052d573-147b-4a75-ad70-3efe8c1cde15" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="8f191ff0-f9ec-455b-b55e-4b2353421687" name="readChunkHeader" visibility="private" DocComment="60810170-467f-4f00-8c01-34623c7fbc68"><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedComment><Comment uuid="60810170-467f-4f00-8c01-34623c7fbc68" body="
 Returns the chunk header size.

 @param buffer Buffer where to read the chunk header.
 @param limit Limit of the reading operation.
 @param readCRLF Set to true if there is a crlf before the chunk header.

 The buffer position is set after to the first data of the chunk.

 @return -1 if header is incomplete.
"><annotatedElement idref="8f191ff0-f9ec-455b-b55e-4b2353421687"/></Comment></ownedComment><ownedParameter><Parameter uuid="204ae068-cc49-44e1-b0c4-8effa427b598" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="85383676-ba9a-43ca-bef3-02b782719c92" name="limit" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="305c83ed-3129-4085-a0e5-89c7ed655a86" name="readCRLF" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="dd341735-a849-4f8c-8aed-9e91bc1139d9" name="return" direction="return" type="2970790b-ffc3-48bc-95c4-4ad48fae6880"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="1fd4326e-0df3-45bf-8f7a-e6f0a0174167" name="FixedTransfer" visibility="public" usedForCodeSyncronization="true" DocComment="1f9ded5d-0ddc-4288-ac90-2121ad3a527b"><codeFileName><CodeFileName name="FixedTransfer.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="7912bbc0-335a-4601-aaea-766812ed6dcb" visibility="public" contract="9fa974e1-051f-4a36-acb7-f7116a577746"/></interfaceRealization><ownedComment><Comment uuid="1f9ded5d-0ddc-4288-ac90-2121ad3a527b" body="
 Fixed transfer operation.

 To use when the Content-length is known.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"/></Comment></ownedComment><ownedAttribute><Property uuid="edafce5f-1dee-41df-966f-4aaa7b28c5d2" name="size" visibility="private" isLeaf="true" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Property uuid="5c063d9f-2896-428f-afbb-3296d67aa134" name="headerHttpSize" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="f9378c18-6d7e-450f-8931-a921d67601ac" name="totalRead" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="4c210f0b-3f17-44e1-8fe2-e852a85c81a5" visibility="public" value="0"/></defaultValue></Property><Property uuid="90309696-3d6b-4f56-af75-6f6ae1a35106" name="totalWrite" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="eb932953-8588-4da6-9bc6-e5a4aa88ce8d" visibility="public" value="0"/></defaultValue></Property><Property uuid="f63ab2a1-97d3-413f-b0eb-ee59067f5c54" name="cacheWriter" visibility="private" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedAttribute><ownedOperation><Operation uuid="537c438d-de22-492f-ab6a-6c301a1a9eeb" name="FixedTransfer" visibility="public" DocComment="10f368b2-bb32-4c6e-a1ea-487086469409"><ownedComment><Comment uuid="10f368b2-bb32-4c6e-a1ea-487086469409" body="
 Fixed transfer.

 @param size Size, amount of data to read and write. Do not forget to
 include the size of the HTTP header. Example: httpHeaderSize + Content
 Length
"><annotatedElement idref="537c438d-de22-492f-ab6a-6c301a1a9eeb"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="560c9c04-ff73-4a9e-b2ed-ad30f9011a7e" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="ed833325-426a-47cd-88e2-158fb4b89dea" name="size" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="fd0574c2-e0ce-4322-8c1f-d6045c3900b4" name="FixedTransfer" visibility="public" DocComment="3def9372-adb1-4e73-a00a-440d1ee2a971"><ownedComment><Comment uuid="3def9372-adb1-4e73-a00a-440d1ee2a971" body="
 Fixed transfer.

 @param size Size, amount of data to read and write. Do not forget to
 include the size of the HTTP header. Example: httpHeaderSize + Content
 Length
 @param
"><annotatedElement idref="fd0574c2-e0ce-4322-8c1f-d6045c3900b4"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="1ab95a19-baae-474b-b70a-cbce5249d8f2" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="6f7c1e45-7ef6-4f7f-8789-e679b77a46c7" name="size" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="1af1cf8c-e7ce-452e-ba21-c36368d27044" name="headerHttpSize" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="971cf26d-8be4-4cd4-9f2b-dd57d286d1d9" name="cacheWriter" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedParameter></Operation><Operation uuid="a4ccc971-9352-4090-99d2-962bed28991c" name="read" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><appliedStereotype><StereotypeApplication uuid="67aaf779-4783-468e-a311-fee2ebd62e3c" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="31cac25c-dcca-4107-aa0a-4364e2545387" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="c8ff0fba-c4cd-413c-b894-2c23f10be3e3" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="1389bf89-ebf1-45cc-80dc-de0a2c170103" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="2ed4eea1-fd11-4a47-b2c2-7d8ec7532134" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="de742119-3214-4627-a522-e46ab8565a13" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="5de36151-18f9-479a-a3df-769bd17b9488" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="f472a05b-ea03-46b5-bc45-371e5b40ab58" name="write" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><appliedStereotype><StereotypeApplication uuid="17d49cc6-2bd9-4a00-b4c6-5c2083c8c490" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="2d5ddb50-ab77-44d2-9a63-fba25f3541e3" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="acbe6278-035c-41f3-b09e-4619404cf739" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="494c034e-3cef-4f15-a6b8-f304c00a44df" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="d9693a6d-9c6c-43a0-9585-48bf2a0c124f" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="6945a175-2459-47e5-9cfa-ce40d9e02e6e" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation></ownedOperation></Class><Interface uuid="9fa974e1-051f-4a36-acb7-f7116a577746" name="Transfer" visibility="public" usedForCodeSyncronization="true" DocComment="abe801a5-b490-42f2-889e-53d9a23efdf3"><codeFileName><CodeFileName name="Transfer.java"/></codeFileName><ownedComment><Comment uuid="abe801a5-b490-42f2-889e-53d9a23efdf3" body="
 HTTP data transfer methods.

 The idea behind this class is to transfer all datas from one channel
 to another.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="9fa974e1-051f-4a36-acb7-f7116a577746"/></Comment></ownedComment><ownedOperation><Operation uuid="b28230a3-e18e-4ef2-8158-9d194310dcd7" name="read" visibility="public" DocComment="a3fda140-2b93-48ff-be3a-e249bb6cccc5"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ownedComment><Comment uuid="a3fda140-2b93-48ff-be3a-e249bb6cccc5" body="
 Reads data.

 @param channel Channel where to read data.
 @param buffer Buffer where to append new read data.
 @param useOnlyBuffer Do not read from the channel and use only data
 contained in the buffer.

 @return Number of bytes read and status if read data can be sent.
"><annotatedElement idref="b28230a3-e18e-4ef2-8158-9d194310dcd7"/></Comment></ownedComment><ownedParameter><Parameter uuid="48008f51-dad6-4b29-bb2b-bd4dbc2c8357" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="96030b65-3033-49d3-bbbb-e41a01906249" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="97b5073b-a7f6-4b83-85c2-1b644888e89a" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="e05baf2c-2ede-49f7-b0eb-964519ca2b9b" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="18737dca-c802-4b3b-9777-de0aceba3142" name="write" visibility="public" DocComment="ff709c52-b707-40ff-8ee1-7f8951b4040e"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="ff709c52-b707-40ff-8ee1-7f8951b4040e" body="
 Writes data.

 @param channel Channel where to write data.
 @param buffer Buffer where to read data to write.

 @return Number of bytes read and status if all datas were written.
"><annotatedElement idref="18737dca-c802-4b3b-9777-de0aceba3142"/></Comment></ownedComment><ownedParameter><Parameter uuid="13676be3-eebb-4f21-b701-71e1c90ede6a" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="7745cff2-fa77-4892-9261-7227c6a7cb3e" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="7433b7ea-4779-4c46-a64f-27792e7b5232" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation></ownedOperation></Interface><Class uuid="901fab39-5ad6-4f60-8a3a-998010e22b26" name="TransferResult" visibility="public" usedForCodeSyncronization="true" DocComment="31150afe-3b95-4edb-949f-713b986490b4"><codeFileName><CodeFileName name="TransferResult.java"/></codeFileName><ownedComment><Comment uuid="31150afe-3b95-4edb-949f-713b986490b4" body="
 Result of a transfer operation.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="901fab39-5ad6-4f60-8a3a-998010e22b26"/></Comment></ownedComment><ownedAttribute><Property uuid="03249acd-da05-492e-96c0-1028593ed182" name="count" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="d66afdca-cb08-45aa-aa0a-01ab82c0737c" name="finished" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="58ee05fb-9720-452b-8643-72cbde3a6915" name="moreDataToWrite" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedAttribute><ownedOperation><Operation uuid="dc0613f6-0786-4ae2-9a41-0a2244ac02c2" name="TransferResult" visibility="public"><appliedStereotype><StereotypeApplication uuid="94aa0bda-2d63-40df-83f5-ca15478e7f8d" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="b139d72d-476f-4374-81de-01900f3b296f" name="count" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="a02440fb-c2d8-4ec0-a257-3ff209163c45" name="finished" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="05b45c6b-f8fc-4de0-8020-835b16c0f25d" name="TransferResult" visibility="public"><appliedStereotype><StereotypeApplication uuid="1e79490b-25d6-4d52-a42a-180bca1626ca" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="eff456dc-70e1-4aec-ba7c-20fb809660ed" name="count" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="ba3f3b1d-ef43-4772-bf5c-13c3fd205e2e" name="finished" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="c43188bc-16e9-468b-ad53-513fdb341d84" name="moreDataToWrite" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="429b9a80-bd60-45bd-a2a6-87420a07e2c8" name="getCount" visibility="public" DocComment="8aae46cf-18bf-46e1-b076-e19768d5bebf"><ownedComment><Comment uuid="8aae46cf-18bf-46e1-b076-e19768d5bebf" body="
 Number of bytes read or write.

 @return Number of bytes.
"><annotatedElement idref="429b9a80-bd60-45bd-a2a6-87420a07e2c8"/></Comment></ownedComment><ownedParameter><Parameter uuid="e92e7040-1471-44fa-8ab8-02bb48ea23bb" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="ba9a9250-91d2-4b6e-8600-2b1699bdd04f" name="isFinished" visibility="public" DocComment="42c3adf7-41a0-4590-9372-e670f561c6cb"><ownedComment><Comment uuid="42c3adf7-41a0-4590-9372-e670f561c6cb" body="
 Does the transfer operation is finished?

 @return True if transfer of all data has been made.
"><annotatedElement idref="ba9a9250-91d2-4b6e-8600-2b1699bdd04f"/></Comment></ownedComment><ownedParameter><Parameter uuid="f062a08f-1127-41ee-bb02-b3321d8462e8" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="c3f3dcb5-886b-4a3d-b131-73db0f839340" name="hasMoreDataToWrite" visibility="public" DocComment="a9d16987-e8c3-4d0d-ac8c-472ee0a47c3d"><ownedComment><Comment uuid="a9d16987-e8c3-4d0d-ac8c-472ee0a47c3d" body="
 Does there is more data to be write?

 @return True if there is more data to be write.
"><annotatedElement idref="c3f3dcb5-886b-4a3d-b131-73db0f839340"/></Comment></ownedComment><ownedParameter><Parameter uuid="cddb4709-f784-40e4-9462-822517fcc434" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation></ownedOperation></Class><Usage uuid="170672e7-4f85-444e-b4a0-cd9db7f53343" visibility="public"><supplier idref="901fab39-5ad6-4f60-8a3a-998010e22b26"/><client idref="c23aa30f-f714-44bb-861f-46617e2d21bf"/></Usage><Usage uuid="34b39087-cd42-4c8d-b686-bfcfe3ff5d7f" visibility="public"><supplier idref="901fab39-5ad6-4f60-8a3a-998010e22b26"/><client idref="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"/></Usage></packagedElement></Package></packagedElement></Package><Package uuid="07d9b354-5e78-4220-a66e-7ffbd5a4edb6" name="http" visibility="public"><appliedStereotype><StereotypeApplication uuid="4d637071-6c1c-4c10-9319-7363b331e254" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Enumeration uuid="5508e5af-23d7-4ef4-9edd-271a111046a7" name="HttpCloseRules" visibility="public" usedForCodeSyncronization="true" DocComment="330736b8-8bdb-44cd-bbc0-df8541a3867f"><codeFileName><CodeFileName name="HttpCloseRules.java"/></codeFileName><ownedComment><Comment uuid="330736b8-8bdb-44cd-bbc0-df8541a3867f" body="
 Connection closing rules.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="5508e5af-23d7-4ef4-9edd-271a111046a7"/></Comment></ownedComment><ownedLiteral><EnumerationLiteral uuid="2b95951f-6148-4433-b19c-b3fff0ea707f" name="KEEPALIVE_TIMEOUT" visibility="public" DocComment="6b390c61-00a9-4ed3-a159-9eff9026b1d7"><ownedComment><Comment uuid="6b390c61-00a9-4ed3-a159-9eff9026b1d7" body="
 Keepalive connection, timeout constant specified
"><annotatedElement idref="2b95951f-6148-4433-b19c-b3fff0ea707f"/></Comment></ownedComment></EnumerationLiteral><EnumerationLiteral uuid="d2133ad9-f6df-446a-95df-9da9f4b5b58c" name="CONNECTION_CLOSE_AFTER" visibility="public"/></ownedLiteral></Enumeration><Enumeration uuid="2458fe88-04c5-40d6-ae8c-75bc48716877" name="HttpCodes" visibility="public" usedForCodeSyncronization="true" DocComment="71fc60db-0fb8-433d-9414-b14c31174cf0"><codeFileName><CodeFileName name="HttpCodes.java"/></codeFileName><ownedComment><Comment uuid="71fc60db-0fb8-433d-9414-b14c31174cf0" body="
 Commons HTTP commands used by the server.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="2458fe88-04c5-40d6-ae8c-75bc48716877"/></Comment></ownedComment><ownedAttribute><Property uuid="1af637b0-52a8-4798-9ed0-05adcc226012" name="code" visibility="private" isLeaf="true" type="490655c1-c6f7-43b8-acee-a7840393d336"/><Property uuid="18860f87-c917-44e0-9087-1e790f8ee636" name="description" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedAttribute><ownedOperation><Operation uuid="ab321952-84af-43b1-b19a-41de044da4b4" name="HttpCodes" visibility="private"><appliedStereotype><StereotypeApplication uuid="173cf847-e2ec-43d1-aea0-8c22e42e43a4" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="784981d3-a79d-4c50-98cc-06f5f863a3fb" name="code" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="d67ff990-a1f3-44b3-856d-d81ba718065c" name="description" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="dc59e518-66e7-453a-bcb8-f8a3b20fba69" name="getCode" visibility="public"><ownedParameter><Parameter uuid="4d4e06c8-5141-4354-a049-88a2d4519f2b" name="return" direction="return" type="490655c1-c6f7-43b8-acee-a7840393d336"/></ownedParameter></Operation><Operation uuid="0f5d3182-5b62-4295-be7a-4f289c1d7541" name="getDescription" visibility="public"><ownedParameter><Parameter uuid="ad5009cf-0d05-4bde-b448-84037d4176d9" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="b1134ae9-ae96-403c-9013-ef8c06d1ce41" name="getPage" visibility="public"><ownedParameter><Parameter uuid="692cd484-08c0-4ad8-aa6f-2a2b4d4be2a8" name="return" direction="return" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/></ownedParameter></Operation><Operation uuid="b55d29bb-bd7d-40a7-95af-5fd5bad3f614" name="toString" visibility="public"><appliedStereotype><StereotypeApplication uuid="18e886c5-c4ab-4f44-96e3-2c2dfc812408" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="28dd5a6f-a1d1-402d-8105-9fc87540d2dc" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="92a49a8b-4601-42f7-9fd9-239952459f96" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="c38412c1-7436-48da-bca9-2c270855b59f" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation></ownedOperation><ownedLiteral><EnumerationLiteral uuid="3776970d-f0d5-4592-9aaa-e25f55e9a3d8" name="HTTP_ENTITY_TOO_LARGE" visibility="public" defaultValue="413, &quot;Request Entity Too Large&quot;"/><EnumerationLiteral uuid="88fe1ed1-d99c-43a8-be3f-9a053ff05fbf" name="HTTP_BAD_REQUEST" visibility="public" defaultValue="400, &quot;Bad Request &quot;"/><EnumerationLiteral uuid="024874c4-e979-488e-9ad1-f79967813b3d" name="HTTP_CLIENT_TIMEOUT" visibility="public" defaultValue="408, &quot;Request Time-out&quot;"/><EnumerationLiteral uuid="2502ea3e-f0e6-498c-96e3-65e5559f5e2a" name="HTTP_FORBIDDEN" visibility="public" defaultValue="403, &quot;Forbidden&quot;"/><EnumerationLiteral uuid="57556834-0de1-4c38-8ffa-19034820b7e7" name="HTTP_BAD_METHOD" visibility="public" defaultValue="405, &quot;Method Not Allowed&quot;"/><EnumerationLiteral uuid="654bbd7a-24d8-4a8c-b395-cfb628eb3119" name="HTTP_VERSION" visibility="public" defaultValue="505, &quot;HTTP Version Not Supported.&quot;"/><EnumerationLiteral uuid="87430358-8c8a-4cf9-be70-3ff313f0a134" name="HTTP_GATEWAY_TIMEOUT" visibility="public" defaultValue="504, &quot;Gateway Timeout.&quot;"/><EnumerationLiteral uuid="4297c629-10b4-479b-8525-2bbedb9f3a01" name="HTTP_BAD_GATEWAY" visibility="public" defaultValue="502, &quot;Bad Gateway.&quot;"/><EnumerationLiteral uuid="d565894c-ceef-4868-a564-b788c876a2a7" name="LENGTH_REQUIRED" visibility="public" defaultValue="411, &quot;Lenght required&quot;"/><EnumerationLiteral uuid="56dc6da1-42fa-4842-812e-7fdad64bf38a" name="HTTP_SERVER_ERROR" visibility="public" defaultValue="500, &quot;Server error&quot;"/><EnumerationLiteral uuid="0025246e-b3c0-4cf6-8be5-7a07c55c5a3e" name="HTTP_UNIMPLEMENTED" visibility="public" defaultValue="501, &quot;Unimplemented&quot;"/><EnumerationLiteral uuid="8ce91509-65a9-43ca-8a51-c7aea359c30f" name="HTTP_TEAPOT" visibility="public" defaultValue="418, &quot;I am a teapot.&quot;"/></ownedLiteral></Enumeration><Class uuid="566b0c6f-cb93-41a5-a2d2-6afbb79e36f8" name="HttpConstants" visibility="public" usedForCodeSyncronization="true" DocComment="4bbda45d-6f9e-4633-99b0-411c0d14787a"><codeFileName><CodeFileName name="HttpConstants.java"/></codeFileName><ownedComment><Comment uuid="4bbda45d-6f9e-4633-99b0-411c0d14787a" body="
 Class holdings some constants.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="566b0c6f-cb93-41a5-a2d2-6afbb79e36f8"/></Comment></ownedComment><ownedAttribute><Property uuid="01d40ba5-a47d-44be-8d55-4404f2644318" name="HTTP_KEEPALIVE_TIMEOUT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="1e421395-1ee4-451f-bcd4-d7709ece2b7c"><ownedComment><Comment uuid="1e421395-1ee4-451f-bcd4-d7709ece2b7c" body="
 Timeout of a keepalive connection.

 In milliseconds.
"><annotatedElement idref="01d40ba5-a47d-44be-8d55-4404f2644318"/></Comment></ownedComment><defaultValue><LiteralString uuid="3cc4f213-9715-437a-8b2e-dc36f6a1c496" visibility="public" value="5000"/></defaultValue></Property><Property uuid="bbf4e481-f9e5-4511-a070-b0151cac4a11" name="HTTP_HEADER_MAX_SIZE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="413117ff-3cbc-49ac-879c-68627e665e42"><ownedComment><Comment uuid="413117ff-3cbc-49ac-879c-68627e665e42" body="
 Maximal size of the HTTP Header.
"><annotatedElement idref="bbf4e481-f9e5-4511-a070-b0151cac4a11"/></Comment></ownedComment><defaultValue><LiteralString uuid="7bb4cecb-df5d-4f36-874d-853c9247042b" visibility="public" value="16384 * 8"/></defaultValue></Property><Property uuid="2c54df74-bc04-4afc-a044-5aa0e0791dad" name="HTTP_DECHUNK_BUFFER_SIZE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="e3e85ccb-b962-486e-a7cf-4f1c0606adb1"><ownedComment><Comment uuid="e3e85ccb-b962-486e-a7cf-4f1c0606adb1" body="
 Maximal size of the dechunker.
"><annotatedElement idref="2c54df74-bc04-4afc-a044-5aa0e0791dad"/></Comment></ownedComment><defaultValue><LiteralString uuid="8f0e9cea-2e75-4740-9da3-d2d7c7658303" visibility="public" value="1048576 * 8"/></defaultValue></Property><Property uuid="33eb65c5-d404-4157-b03e-401449c8d587" name="HTTP_MAJOR_VERSION_SUPPORT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="ac947ddd-dd35-40ea-85d5-15865a9d6383"><ownedComment><Comment uuid="ac947ddd-dd35-40ea-85d5-15865a9d6383" body="
 Major version number of the supported HTTP version.

 HTTP_MAJOR_VERSION_SUPPORT.HTTP_MINOR_VERSION_SUPPORT
"><annotatedElement idref="33eb65c5-d404-4157-b03e-401449c8d587"/></Comment></ownedComment><defaultValue><LiteralString uuid="f6003306-30d6-49b2-af47-04e3a4c8abc2" visibility="public" value="1"/></defaultValue></Property><Property uuid="a483061f-50ad-4f46-ba07-5f3a74b66345" name="HTTP_MINOR_VERSION_SUPPORT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="e29eba09-b249-40d0-9bd5-aa237d1ee741"><ownedComment><Comment uuid="e29eba09-b249-40d0-9bd5-aa237d1ee741" body="
 Minor version number of the supported HTTP version.

 HTTP_MAJOR_VERSION_SUPPORT.HTTP_MINOR_VERSION_SUPPORT
"><annotatedElement idref="a483061f-50ad-4f46-ba07-5f3a74b66345"/></Comment></ownedComment><defaultValue><LiteralString uuid="aef41088-e6d0-4a46-97ff-36505be54f6d" visibility="public" value="1"/></defaultValue></Property></ownedAttribute></Class><Class uuid="370d0768-7e30-4c6d-89eb-02e797aeee19" name="HttpException" visibility="public" usedForCodeSyncronization="true" DocComment="07b0cc25-4d21-496c-b835-efe23e38b3e0"><codeFileName><CodeFileName name="HttpException.java"/></codeFileName><ownedComment><Comment uuid="07b0cc25-4d21-496c-b835-efe23e38b3e0" body="

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/></Comment></ownedComment><generalization><Generalization uuid="447f10a5-5171-4b40-a50a-6f1da8c48552" general="d10013c7-d190-4c74-a2b3-d267d8da8131"/></generalization><ownedAttribute><Property uuid="2a28462b-1746-4b7f-9d38-28b5749337cb" name="httpCode" visibility="private" isLeaf="true" type="2458fe88-04c5-40d6-ae8c-75bc48716877"/></ownedAttribute><ownedOperation><Operation uuid="b5aebae7-b59a-494f-9e31-bff8211f4cd3" name="HttpException" visibility="public" DocComment="e3680e8d-cab2-4b24-a1cc-179d1e618506"><ownedComment><Comment uuid="e3680e8d-cab2-4b24-a1cc-179d1e618506" body="
 Creates a new HTTP Exception.

 @param httpCommand The http command.
 @param message The message associated to this exception.
"><annotatedElement idref="b5aebae7-b59a-494f-9e31-bff8211f4cd3"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="7e82e112-2ad6-4288-83d2-298ec79f58dc" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="0a268c02-fc27-41af-b076-d2b43a55f002" name="httpCode" type="2458fe88-04c5-40d6-ae8c-75bc48716877"/><Parameter uuid="a4d7c8ad-fd04-46fb-8fdf-17451715a2de" name="message" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="05006d47-9277-451e-bf4f-2fd310c317f8" name="getPage" visibility="public"><ownedParameter><Parameter uuid="9df985a6-e960-4ee3-b758-3d1c88cd9d0b" name="return" direction="return" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/></ownedParameter></Operation><Operation uuid="2de5d37e-b17b-4c28-9ab2-b09dce3b76bf" name="getHttpCode" visibility="public" DocComment="f0d39c59-df1b-4b60-95df-0a91e9d54434"><ownedComment><Comment uuid="f0d39c59-df1b-4b60-95df-0a91e9d54434" body="
 The HTTP error code.
"><annotatedElement idref="2de5d37e-b17b-4c28-9ab2-b09dce3b76bf"/></Comment></ownedComment><ownedParameter><Parameter uuid="c2b89e85-6bf6-426e-8c51-5bb49da279cf" name="return" direction="return" type="2458fe88-04c5-40d6-ae8c-75bc48716877"/></ownedParameter></Operation><Operation uuid="204fd712-ba9a-477d-9d98-f68ca49ec59f" name="toString" visibility="public"><appliedStereotype><StereotypeApplication uuid="79cf71c2-0a12-4e49-9ed2-5aaeeee571ac" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="fdba4612-6907-484b-91ea-35b04d556561" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="d127f4ff-4a98-4fba-818e-c7952c9453ab" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="55ea8bc3-dc32-4819-a373-97019d97916a" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation></ownedOperation></Class><Enumeration uuid="da3a924a-f230-4204-9d41-9644faea3cf9" name="HttpMethods" visibility="public" usedForCodeSyncronization="true" DocComment="ff66af88-12f8-4bd0-9f74-8167c50ebe05"><codeFileName><CodeFileName name="HttpMethods.java"/></codeFileName><ownedComment><Comment uuid="ff66af88-12f8-4bd0-9f74-8167c50ebe05" body="
 Supported Http methods.

 Qroxy support only RFC 1945.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="da3a924a-f230-4204-9d41-9644faea3cf9"/></Comment></ownedComment><ownedLiteral><EnumerationLiteral uuid="78c1213b-5b48-4468-9f45-0c2a0901b367" name="GET" visibility="public"/><EnumerationLiteral uuid="4df0d579-a142-415b-8e72-bf7cea01aa53" name="POST" visibility="public"/><EnumerationLiteral uuid="c965af4b-d096-4f85-a4ba-4fafdcb0e99e" name="HEAD" visibility="public"/><EnumerationLiteral uuid="2924b854-666e-45eb-837b-82d2d4cbcfd6" name="LINK" visibility="public"/><EnumerationLiteral uuid="521f8a2f-1af2-4e4e-a5e6-f7637741096e" name="DELETE" visibility="public"/><EnumerationLiteral uuid="216ace95-db37-4cec-9d65-ccdc904c3c89" name="HTTP" visibility="public"/></ownedLiteral></Enumeration><Enumeration uuid="4bf56833-9631-46bf-a82b-2c51f93433f3" name="HttpTransferMethods" visibility="public" usedForCodeSyncronization="true" DocComment="786126af-a038-4b36-890e-5310fba0e3c6"><codeFileName><CodeFileName name="HttpTransferMethods.java"/></codeFileName><ownedComment><Comment uuid="786126af-a038-4b36-890e-5310fba0e3c6" body="
 Transfer methods.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="4bf56833-9631-46bf-a82b-2c51f93433f3"/></Comment></ownedComment><ownedLiteral><EnumerationLiteral uuid="02023597-3b48-4c2b-8332-6ddcb5ea53d5" name="CHUNKED" visibility="public" DocComment="9b93d06c-bafb-4d78-97cf-fbfeceb1d24a"><ownedComment><Comment uuid="9b93d06c-bafb-4d78-97cf-fbfeceb1d24a" body="
 Chunked communication.
"><annotatedElement idref="02023597-3b48-4c2b-8332-6ddcb5ea53d5"/></Comment></ownedComment></EnumerationLiteral><EnumerationLiteral uuid="5de19adb-b4e9-432b-86b0-a64841c1a158" name="FIXED" visibility="public" DocComment="61c9e545-5f0d-4d2a-837c-9670790a39ea"><ownedComment><Comment uuid="61c9e545-5f0d-4d2a-837c-9670790a39ea" body="
 Fixed communication.
"><annotatedElement idref="5de19adb-b4e9-432b-86b0-a64841c1a158"/></Comment></ownedComment></EnumerationLiteral></ownedLiteral></Enumeration></packagedElement></Package><Package uuid="7b933f39-34fe-4c53-8cef-05030f0e2c03" name="rules" visibility="public"><appliedStereotype><StereotypeApplication uuid="5ce5239a-ebce-4b91-ba2f-c9b1ea72a373" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Class uuid="13b04fce-67a2-4c3e-8332-1a0abded9174" name="HeaderHttp" visibility="public" usedForCodeSyncronization="true" DocComment="97667e5e-66d4-45cc-8ac5-65975819a948"><codeFileName><CodeFileName name="HeaderHttp.java"/></codeFileName><ownedComment><Comment uuid="97667e5e-66d4-45cc-8ac5-65975819a948" body="
 HTTP Header.

 Parses a ByteBuffer and generate an usable HTTP header.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
 @author Sebastien BAUDRAND &lt;sebbaudrand@gmail.com&gt;
"><annotatedElement idref="13b04fce-67a2-4c3e-8332-1a0abded9174"/></Comment></ownedComment><ownedAttribute><Property uuid="cd674e21-64c6-4fe8-897a-65afa5fb4fd7" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="4dd44030-6816-41d0-8ca5-0450b2721ea5" visibility="public" value="Logger.getLogger(HeaderHttp.class.getName())"/></defaultValue></Property><Property uuid="fbb14f15-4759-420b-befa-dd0fc14f9f11" name="httpHeaderCharset" visibility="private" isLeaf="true" isStatic="true" type="46865992-0056-45bd-bdb7-e0f4bc5dad74"><defaultValue><LiteralString uuid="0b4ba101-02c6-4941-8fdc-a5a398d18796" visibility="public" value="Charset.forName(&quot;ISO-8859-1&quot;)"/></defaultValue></Property><Property uuid="12dc96e2-8f12-42cc-8c47-79588d33e27d" name="properties" visibility="private" isLeaf="true" type="02c55ab6-279d-4cab-9b75-49417dc892c7"><defaultValue><LiteralString uuid="6e71b375-5f36-4427-88c9-6e8f62ee32bf" visibility="public" value="new TreeMap&lt;String, String&gt;(String.CASE_INSENSITIVE_ORDER)"/></defaultValue></Property><Property uuid="8b12b403-8785-44b1-8bc2-64cb336f6fe8" name="httpHeaderFirstLine" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="c0612728-d498-48c6-b46f-4354e3a28056" name="urlToCall" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="b0e49ccc-37d0-4d6b-9f5b-f80578877574" name="uri" visibility="private" isLeaf="true" type="0299fbc4-c575-4698-9a9e-4034d75dc22e"/><Property uuid="aab25435-bf9e-4fe0-b0a5-a762fa4d2f61" name="httpMethod" visibility="private" isLeaf="true" type="da3a924a-f230-4204-9d41-9644faea3cf9"/><Property uuid="96ddb4b5-3a88-42b7-8533-0d3d5947f366" name="httpCode" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="7e2c3696-87cc-404e-a384-ae23bfb79bfd" name="endOfHeaderInBuffer" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="8dde5272-367d-4251-abef-7d51235b01b3" name="closeRule" visibility="private" type="5508e5af-23d7-4ef4-9edd-271a111046a7"><defaultValue><LiteralString uuid="404736b3-bdb5-4575-9caf-0e6f4f2a07c7" visibility="public" value="null"/></defaultValue></Property><Property uuid="85fa544a-8e43-466d-84e8-cd3b70a427eb" name="transferMethod" visibility="private" type="4bf56833-9631-46bf-a82b-2c51f93433f3"><defaultValue><LiteralString uuid="fe564a41-87d2-42e1-9cc9-fc0a46d53447" visibility="public" value="null"/></defaultValue></Property><Property uuid="c3382693-9453-4718-9c47-e299e2e4a1c0" name="contentLength" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="2810dba8-e7e4-4f54-b4c3-ef5aed884e0b" name="httpVersionMinor" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="5279cd60-9e12-48d0-b0c4-da88046213ba" name="httpVersionMajor" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedAttribute><ownedOperation><Operation uuid="f2e61bc6-185c-4c97-8d0f-16a5e7bf43bb" name="HeaderHttp" visibility="public" DocComment="a76d169b-f31e-49e9-9178-6829c2cfbfe2"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="26181390-1056-4c61-b659-94a413dd4931"/><ownedComment><Comment uuid="a76d169b-f31e-49e9-9178-6829c2cfbfe2" body="
 Parse the buffer in order to create an usable Http header.

 @param buffer Buffer to parse.
 @param endOfHeaderInBuffer Position where the header stop in the buffer.

 @throws HttpException HTTP error when parsing the header.
"><annotatedElement idref="f2e61bc6-185c-4c97-8d0f-16a5e7bf43bb"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="f82f5e45-8e8f-487f-8839-f767b2665975" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="823b79d7-859a-4e06-bf42-a45e1bf430e5" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="46ceeed7-0022-4be9-87b7-a0443186f5ac" name="endOfHeaderInBuffer" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="940bfd28-fda1-462c-b383-aff564cb3a60" name="readHttpVersion" visibility="private" DocComment="ca19ced7-2896-47c5-bb41-6b2bec5bdb98"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ownedComment><Comment uuid="ca19ced7-2896-47c5-bb41-6b2bec5bdb98" body="
 Helpers that read the HTTP version.

 @param httpVerToken HTTP/X.X string.
 @throws HttpException If the http version is not supported.
"><annotatedElement idref="940bfd28-fda1-462c-b383-aff564cb3a60"/></Comment></ownedComment><ownedParameter><Parameter uuid="8f96a764-e96f-4eba-9852-6c7676c3ec22" name="httpVerToken" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="dda0ed0d-9298-4672-8b49-12a470646054" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="1d1fae67-e6d6-498c-83a1-65bc5f15c1b5" name="getProperties" visibility="public" DocComment="20dbb216-cf7a-4435-ab79-968afb81ab06"><ownedComment><Comment uuid="20dbb216-cf7a-4435-ab79-968afb81ab06" body="
 Get the properties initialized with the constructor.

 @return The property.
"><annotatedElement idref="1d1fae67-e6d6-498c-83a1-65bc5f15c1b5"/></Comment></ownedComment><ownedParameter><Parameter uuid="465dfbd7-02ff-48c0-85a3-b4afdd9b01bc" name="return" direction="return" type="02c55ab6-279d-4cab-9b75-49417dc892c7"/></ownedParameter></Operation><Operation uuid="37d51d73-3e40-4202-8d0f-a7623a522ca0" name="getHttpMethod" visibility="public" DocComment="da8dc0ed-b108-426e-b126-46c0b77e6334"><ownedComment><Comment uuid="da8dc0ed-b108-426e-b126-46c0b77e6334" body="
 Returns the HTTP method.

 @return The HTTP method.
"><annotatedElement idref="37d51d73-3e40-4202-8d0f-a7623a522ca0"/></Comment></ownedComment><ownedParameter><Parameter uuid="600f9977-2689-4121-8d7c-4b6a70c6f14c" name="return" direction="return" type="da3a924a-f230-4204-9d41-9644faea3cf9"/></ownedParameter></Operation><Operation uuid="d716d52f-f5b9-4875-a009-b72e5c53b774" name="getUrlToCall" visibility="public" DocComment="8090776a-112e-491c-9f68-482fe4ea1e03"><ownedComment><Comment uuid="8090776a-112e-491c-9f68-482fe4ea1e03" body="
 Returns the url to call on the server.

 @return The Url.
"><annotatedElement idref="d716d52f-f5b9-4875-a009-b72e5c53b774"/></Comment></ownedComment><ownedParameter><Parameter uuid="14f9a125-1a5f-42d0-ae49-2e3b71e385f4" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="526381d4-dc1d-47c7-8004-a0bcbbd40f1f" name="getUri" visibility="public" DocComment="46619d63-a5d0-4bf2-ad55-44f9054d62ff"><ownedComment><Comment uuid="46619d63-a5d0-4bf2-ad55-44f9054d62ff" body="
 Returns the uri to call.

 @return the uri object.
"><annotatedElement idref="526381d4-dc1d-47c7-8004-a0bcbbd40f1f"/></Comment></ownedComment><ownedParameter><Parameter uuid="a79ffb06-8cf4-46d5-b0e7-3e7d6f1dfbcd" name="return" direction="return" type="0299fbc4-c575-4698-9a9e-4034d75dc22e"/></ownedParameter></Operation><Operation uuid="b305351d-4fbf-40cb-b740-811a6d22c014" name="getContentLength" visibility="public" DocComment="63c13899-a20c-411e-b4b7-5ef7c4d866f4"><ownedComment><Comment uuid="63c13899-a20c-411e-b4b7-5ef7c4d866f4" body="
 Gets the content-length.

 @return The content length value of this http header. -1 means that datas
 are in chunked mode.
"><annotatedElement idref="b305351d-4fbf-40cb-b740-811a6d22c014"/></Comment></ownedComment><ownedParameter><Parameter uuid="aa06ad4a-2be9-4958-8f71-95f9d0c991a3" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="a07109f1-0eb1-4841-85cc-59f4d412640e" name="getHttpCode" visibility="public" DocComment="e39cbde4-1a64-4eaa-9a88-36d574e4fd72"><ownedComment><Comment uuid="e39cbde4-1a64-4eaa-9a88-36d574e4fd72" body="
 Gets the http code. (eg. 404)
"><annotatedElement idref="a07109f1-0eb1-4841-85cc-59f4d412640e"/></Comment></ownedComment><ownedParameter><Parameter uuid="30c54095-a726-4367-b4c1-f3e6c46c0d68" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="e4995380-011b-42e9-b9e7-ea247edb4355" name="getCloseRule" visibility="public" DocComment="985a4fc1-fdc3-4868-9daf-7c8ee35f5a9d"><ownedComment><Comment uuid="985a4fc1-fdc3-4868-9daf-7c8ee35f5a9d" body="
 Gets the HTTP close rule.
"><annotatedElement idref="e4995380-011b-42e9-b9e7-ea247edb4355"/></Comment></ownedComment><ownedParameter><Parameter uuid="ecd08240-c623-49a7-9110-1e172609e3e3" name="return" direction="return" type="5508e5af-23d7-4ef4-9edd-271a111046a7"/></ownedParameter></Operation><Operation uuid="39ece367-9c24-4349-90d1-ee1f9947b16b" name="getEndOfHeaderInBuffer" visibility="public" DocComment="f7397d18-4068-43ac-bd48-0fcba183ed03"><ownedComment><Comment uuid="f7397d18-4068-43ac-bd48-0fcba183ed03" body="
 Gets the position where the header ends in the buffer.
"><annotatedElement idref="39ece367-9c24-4349-90d1-ee1f9947b16b"/></Comment></ownedComment><ownedParameter><Parameter uuid="63cd266f-16e4-4fef-85ef-264282bb1906" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="579a4f89-5563-4644-9597-d563f99373b9" name="getTransferMethod" visibility="public" DocComment="a3f10e4e-f66e-4179-a9a4-126f8bb87c7f"><ownedComment><Comment uuid="a3f10e4e-f66e-4179-a9a4-126f8bb87c7f" body="
 Gets the transfer method.
"><annotatedElement idref="579a4f89-5563-4644-9597-d563f99373b9"/></Comment></ownedComment><ownedParameter><Parameter uuid="631b0671-05a7-45b9-9336-26cefe888830" name="return" direction="return" type="4bf56833-9631-46bf-a82b-2c51f93433f3"/></ownedParameter></Operation><Operation uuid="29fc8290-0c2d-4854-ad20-85c02597c1df" name="setContentLength" visibility="public" DocComment="398bec4a-0940-45ab-9c0a-32537d3bc157"><ownedComment><Comment uuid="398bec4a-0940-45ab-9c0a-32537d3bc157" body="
 Set the content length.

 Usefull for chunked connection.
"><annotatedElement idref="29fc8290-0c2d-4854-ad20-85c02597c1df"/></Comment></ownedComment><ownedParameter><Parameter uuid="29db3f11-fe46-48f3-b7ad-76f3ef1aeccb" name="contentLength" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="ca7b40ee-2fea-4bcd-a9dc-1c4aa7248ab3" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="c3e8ca9b-4f31-4f10-badf-f3b124cfc121" name="writeHeaderHttpToBuffer" visibility="public" DocComment="42966ef8-d626-4047-b22c-2fcba8e7d23a"><raisedException idref="49da3bf9-975b-4f50-bbbe-0fb39793b91f"/><raisedException idref="26181390-1056-4c61-b659-94a413dd4931"/><ownedComment><Comment uuid="42966ef8-d626-4047-b22c-2fcba8e7d23a" body="
 Writes this Http header to the buffer.

 @param buffer The buffer to append the data.

 @throws BufferOverflowException The buffer is not large enough to hold the HTTP header. (Clear it before calling this method!)
"><annotatedElement idref="c3e8ca9b-4f31-4f10-badf-f3b124cfc121"/></Comment></ownedComment><ownedParameter><Parameter uuid="0813c3b0-9bba-4e8d-a082-de6a50dda6e0" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="93ab4ca9-35dd-469b-ae10-9747b6d5f00c" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="c3c59ee9-7f18-48d5-988e-70e05443a573" name="bufferHaveHttpHeader" visibility="public" isStatic="true" DocComment="d111137d-98cf-436a-b2eb-259c2fffeb7c"><raisedException idref="26181390-1056-4c61-b659-94a413dd4931"/><ownedComment><Comment uuid="d111137d-98cf-436a-b2eb-259c2fffeb7c" body="
 Returns the position of the end of the http buffer.

 @param buffer The buffer to check.

 @return -1 if the buffer does not contains an http header.
"><annotatedElement idref="c3c59ee9-7f18-48d5-988e-70e05443a573"/></Comment></ownedComment><ownedParameter><Parameter uuid="4a308f04-6d9d-4d17-a7a9-16d171d44b07" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="d6894eff-bf18-42b6-888c-96b2f69c6d8c" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="050cecf9-589d-4a8e-8705-ad03fd6542c5" name="Rule" visibility="public" usedForCodeSyncronization="true"><codeFileName><CodeFileName name="Rule.java"/></codeFileName><ownedAttribute><Property uuid="aa7d26ca-5c7d-446a-8190-1bb13b8ee416" name="minimalSpeed" visibility="private" isLeaf="true" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Property uuid="d34da920-5172-4557-9bb7-691b4b3ed829" name="maximalSpeed" visibility="private" isLeaf="true" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Property uuid="6bb6d243-a1fd-4aee-9175-e4f689a9e376" name="weight" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="7cfea18f-0256-490e-8b6d-be1511733f9c" name="maxCacheSize" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="924bcf76-3df9-4364-82b8-62984dedbd22" name="urlPattern" visibility="private" isLeaf="true" type="4afce311-4676-4cf0-a3a3-6c4fd064447e"/><Property uuid="1af2eea8-3fef-4aae-bd82-a80248148cab" name="httpHeaders" visibility="private" isLeaf="true" type="e48d10ae-8474-41c5-8632-22b962350904"/><Property uuid="73e9fedf-6aec-4ca3-ba66-852c787db970" name="nameRule" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="820c8628-7666-4619-a77f-b7150de886f9" name="forbidenRequest" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="927731ad-379c-4fa6-a4d6-e1fa564bd8f4" name="privateData" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="d5add58a-677b-45b9-82e2-205f3b63a967" name="privateCache" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedAttribute><ownedOperation><Operation uuid="2bbc530e-5057-4f55-b822-f4376fb8f89d" name="Rule" visibility="private" DocComment="907f1023-2690-4d84-beb7-80ef510384b0"><ownedComment><Comment uuid="907f1023-2690-4d84-beb7-80ef510384b0" body="
 Create an object Rule.
 This object definite a rule and values who can be used by the proxy.

 @param minimalSpeed
 @param maximalSpeed
 @param weight
 @param urlPattern
 @param htttpHeader
 @param forbidenRequest
"><annotatedElement idref="2bbc530e-5057-4f55-b822-f4376fb8f89d"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="77f9f30e-a837-4b4a-8885-703c89b48093" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="6ebe1765-d1fc-40b9-ac34-39b883520c00" name="minimalSpeed" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Parameter uuid="306d9a64-ad4e-45a9-8e15-b9738945a01a" name="maximalSpeed" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Parameter uuid="5b546bf7-0ff3-432f-a966-ff2bb8fb3d63" name="weight" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="db25b713-b43d-41ba-9490-8add1407964d" name="urlPattern" type="4afce311-4676-4cf0-a3a3-6c4fd064447e"/><Parameter uuid="f3142668-e0c6-4ed9-9a54-e1d271dbec12" name="htttpHeader" type="e48d10ae-8474-41c5-8632-22b962350904"/><Parameter uuid="37547521-db7b-4ff6-97db-a44e09b3193f" name="forbidenRequest" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="5ec3f7a0-8984-45ea-b8b4-c3e3aa8211ca" name="nameRule" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="9a0a46a4-fac9-4a5e-8e10-576d8f1ab4d2" name="maxCacheSize" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="b369045e-67f0-450f-942d-6344bcb6b77f" name="privateData" type="5be727cb-80e6-4856-947f-4861ea87eb2a"/><Parameter uuid="1dba636d-9742-4654-adcf-97f2a11057d5" name="privateCache" type="5be727cb-80e6-4856-947f-4861ea87eb2a"/></ownedParameter></Operation><Operation uuid="9e290df4-1568-411b-a43f-56f38e17b78d" name="createRulesFromFile" visibility="public" isStatic="true" DocComment="f89a71fc-e5d5-4c47-927f-2421658015b8"><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedComment><Comment uuid="f89a71fc-e5d5-4c47-927f-2421658015b8" body="
 Parses a configuration file to retrieve the rules to apply. Create all
 rules contains in the configuration file. If you change the configuration
 file when qroxy is started, you can restart qroxy.

 @param file
"><annotatedElement idref="9e290df4-1568-411b-a43f-56f38e17b78d"/></Comment></ownedComment><ownedParameter><Parameter uuid="cf70d7f3-f0cb-4406-997f-9f92357a4f8c" name="file" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="6006081e-8912-4924-9bd9-3862d33892a1" name="return" direction="return" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/></ownedParameter></Operation><Operation uuid="501d33c5-3bad-4ff5-8162-6feec214780b" name="validate" visibility="public" DocComment="f1c4f746-8099-4a8a-98e4-72a5f0c4b59f"><ownedComment><Comment uuid="f1c4f746-8099-4a8a-98e4-72a5f0c4b59f" body="
 Validates an http header.
 Return true if it is valide, else return false.

 @param header
 @return true if the rule match the header http
"><annotatedElement idref="501d33c5-3bad-4ff5-8162-6feec214780b"/></Comment></ownedComment><ownedParameter><Parameter uuid="c1657df4-96dd-478f-a959-6f5a8c6cbc1a" name="header" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="020c56ec-91ab-4af7-8c44-601eab2ce672" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="d2ef243b-66c4-4f91-bd55-912072b54d73" name="validateRules" visibility="private" isStatic="true" DocComment="108244d2-3220-4c97-88da-e6aaf6a67302"><ownedComment><Comment uuid="108244d2-3220-4c97-88da-e6aaf6a67302" body="
 Check if a rules is correct

 @param index
 @return true if the minimum values is informed
"><annotatedElement idref="d2ef243b-66c4-4f91-bd55-912072b54d73"/></Comment></ownedComment><ownedParameter><Parameter uuid="030530dc-0ad5-43be-b9a2-841218491a21" name="rules" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/><Parameter uuid="265a0081-8409-4e6f-96ab-c5d77d1f10ac" name="return" direction="return" type="5be727cb-80e6-4856-947f-4861ea87eb2a"/></ownedParameter></Operation><Operation uuid="01f3bfaf-e6be-41a1-8fb9-ea925c664df3" name="getMaximalSpeed" visibility="public" DocComment="a69da44f-c7d6-4872-ac87-1d4e7785eaa6"><ownedComment><Comment uuid="a69da44f-c7d6-4872-ac87-1d4e7785eaa6" body="
 Get the maximal speed of the current rules.

 @return double the maximal rate
"><annotatedElement idref="01f3bfaf-e6be-41a1-8fb9-ea925c664df3"/></Comment></ownedComment><ownedParameter><Parameter uuid="bdcc3e07-d0f0-4f81-b335-b28513932463" name="return" direction="return" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/></ownedParameter></Operation><Operation uuid="5ef6f74e-2180-48e0-b09b-887aae3e3392" name="getMinimalSpeed" visibility="public" DocComment="b396facc-51f1-4508-bf15-3f5188b682ca"><ownedComment><Comment uuid="b396facc-51f1-4508-bf15-3f5188b682ca" body="
 Get the minimal speed of the current rules.

 @return double the minnimal rate
"><annotatedElement idref="5ef6f74e-2180-48e0-b09b-887aae3e3392"/></Comment></ownedComment><ownedParameter><Parameter uuid="0e29669e-37b3-42ce-96f5-d940c99f5b7a" name="return" direction="return" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/></ownedParameter></Operation><Operation uuid="9f283081-feeb-42f9-8d9e-0fcbf4a7cfb9" name="getWeight" visibility="public" DocComment="063c6292-1b77-4ca3-ac3c-9734a39e89a4"><ownedComment><Comment uuid="063c6292-1b77-4ca3-ac3c-9734a39e89a4" body="
 Get the weight of the current rules.
 The wheight is priority number of a rules.

 @return int the weight
"><annotatedElement idref="9f283081-feeb-42f9-8d9e-0fcbf4a7cfb9"/></Comment></ownedComment><ownedParameter><Parameter uuid="0f6c2ac0-5002-4b62-8e4c-8080aef12c78" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="abe599f6-40da-430c-a115-850f81015145" name="getMaxCacheSize" visibility="public" DocComment="5c553974-68a6-4459-a863-0ca88d4b8e51"><ownedComment><Comment uuid="5c553974-68a6-4459-a863-0ca88d4b8e51" body="
 Get the maximal cache size of the current rules.
 The wheight is priority number of a rules.

 @return int
"><annotatedElement idref="abe599f6-40da-430c-a115-850f81015145"/></Comment></ownedComment><ownedParameter><Parameter uuid="8ea51800-4b3b-4d83-830e-bbf6daf4b3dd" name="return" direction="return" type="490655c1-c6f7-43b8-acee-a7840393d336"/></ownedParameter></Operation><Operation uuid="a97b5e07-022b-4ded-b6c9-3dec185f8555" name="getNameRule" visibility="public" DocComment="c28f3192-1669-46ce-8fde-af15d6bda383"><ownedComment><Comment uuid="c28f3192-1669-46ce-8fde-af15d6bda383" body="
 Get rule name of the current rules.
 The wheight is priority number of a rules.

 @return int the weight
"><annotatedElement idref="a97b5e07-022b-4ded-b6c9-3dec185f8555"/></Comment></ownedComment><ownedParameter><Parameter uuid="50134715-89db-4185-bd28-7741a068c24e" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="a50b62fe-caa1-4774-8c34-705501c5fe94" name="getUrlPattern" visibility="public" DocComment="9e0971b9-7756-437e-bd7f-66e6caca3940"><ownedComment><Comment uuid="9e0971b9-7756-437e-bd7f-66e6caca3940" body="
 Get the url of the rule

 @return Pattern url
"><annotatedElement idref="a50b62fe-caa1-4774-8c34-705501c5fe94"/></Comment></ownedComment><ownedParameter><Parameter uuid="473a672d-a689-49f0-af7b-ecfb70ca12f7" name="return" direction="return" type="4afce311-4676-4cf0-a3a3-6c4fd064447e"/></ownedParameter></Operation><Operation uuid="a9ae83ff-1820-4b85-8a10-14c0f1a8f534" name="getHttpHeaders" visibility="public" DocComment="085a0ce4-9061-4424-a845-bb9f05298073"><ownedComment><Comment uuid="085a0ce4-9061-4424-a845-bb9f05298073" body="
 Get the properties of the rule

 @return HashMap&lt;String, Pattern&gt; key is the command, value is the pattern
"><annotatedElement idref="a9ae83ff-1820-4b85-8a10-14c0f1a8f534"/></Comment></ownedComment><ownedParameter><Parameter uuid="5854b73e-dcfc-4eec-b04c-411cf1f3cc53" name="return" direction="return" type="e48d10ae-8474-41c5-8632-22b962350904"/></ownedParameter></Operation><Operation uuid="15afd01e-629c-4848-8d9e-8c78cc82d94e" name="getForbidenRequest" visibility="public" DocComment="ecf17d0c-9271-4c29-9d64-b637d51a12d6"><ownedComment><Comment uuid="ecf17d0c-9271-4c29-9d64-b637d51a12d6" body="
 Get if a reuest is valide or not.

 @return true if the request is valid
"><annotatedElement idref="15afd01e-629c-4848-8d9e-8c78cc82d94e"/></Comment></ownedComment><ownedParameter><Parameter uuid="7b07893e-326e-45e1-81de-80a7d4c43ee5" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="3d7897e2-b33d-426f-92c8-b8c411c055ee" name="getPrivateData" visibility="public" DocComment="d247ae20-1877-4dcb-aced-1453dc592334"><ownedComment><Comment uuid="d247ae20-1877-4dcb-aced-1453dc592334" body="


 @return
"><annotatedElement idref="3d7897e2-b33d-426f-92c8-b8c411c055ee"/></Comment></ownedComment><ownedParameter><Parameter uuid="8cc3dba8-1b7b-4317-930d-20db309cc17f" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="3bff9e67-4b77-4253-8dc2-db62e03a9cf1" name="getPrivateCache" visibility="public" DocComment="72a12df1-1bcc-48bf-8743-0697bc1b841e"><ownedComment><Comment uuid="72a12df1-1bcc-48bf-8743-0697bc1b841e" body="
 Get if a request

 @return
"><annotatedElement idref="3bff9e67-4b77-4253-8dc2-db62e03a9cf1"/></Comment></ownedComment><ownedParameter><Parameter uuid="e6508fcd-ff14-4c06-99a8-4b607f84036c" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="5f25542c-fc18-4b24-abab-6c532349ce53" name="toString" visibility="public"><appliedStereotype><StereotypeApplication uuid="7768f570-60d4-40d6-90e7-4fa73d62a564" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="5cfd024c-2091-4756-aae2-7272691fb83c" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="bc71a517-bf27-49fc-bde7-8ee09f0126e6" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="aadc8253-9a71-4ca2-8925-d2e9783e2ec6" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="51b56fa0-2f71-4d48-b767-6cd8f21a8846" name="RuleChecker" visibility="public" usedForCodeSyncronization="true"><codeFileName><CodeFileName name="RuleChecker.java"/></codeFileName><ownedAttribute><Property uuid="77a22c7e-dd8c-4496-8833-aa0f5fdc30a2" name="rules" visibility="private" collectionType="050cecf9-589d-4a8e-8705-ad03fd6542c5" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/></ownedAttribute><ownedOperation><Operation uuid="1eefa3cb-fcf0-42ba-88a2-aa9e4400462d" name="RuleChecker" visibility="public"><appliedStereotype><StereotypeApplication uuid="86bca9b7-d379-4dda-8270-4076c5749338" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype></Operation><Operation uuid="5af0168f-839c-43c1-81fd-3c1fa65d1219" name="RulelookUp" visibility="public" DocComment="7fee66c4-e6ed-4c33-96a6-0b36f4b06640"><ownedComment><Comment uuid="7fee66c4-e6ed-4c33-96a6-0b36f4b06640" body="
 Test an http header. You can pass an http header an return the rule if it
 exist.

 @param headerHttp
 @return Rule
"><annotatedElement idref="5af0168f-839c-43c1-81fd-3c1fa65d1219"/></Comment></ownedComment><ownedParameter><Parameter uuid="9698a13b-c527-4f1e-934d-6c6cc677d314" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="183d5ef5-6749-4d0a-a3f3-eb9700a76190" name="return" direction="return" type="050cecf9-589d-4a8e-8705-ad03fd6542c5"/></ownedParameter></Operation><Operation uuid="9d008701-6b7a-4211-95a2-59e23be0814a" name="addRuleFile" visibility="public"><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedParameter><Parameter uuid="46e6f05d-ad35-4a80-a11c-6cee570008f7" name="f" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="7cc3ea6c-0308-4987-ac48-20965054b64b" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="9d426d71-9e32-4888-85ad-2121a9ad74f0" name="getRules" visibility="public"><ownedParameter><Parameter uuid="1242e637-9d25-4cf0-a5e2-5ef5e694f1ae" name="return" direction="return" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/></ownedParameter></Operation></ownedOperation></Class><Interface uuid="02c55ab6-279d-4cab-9b75-49417dc892c7" visibility="public"><templateBinding><TemplateBinding uuid="45495617-a4b8-43f1-938e-76d20b5ad91b" signature="f14a3a6e-30a5-464d-a37a-1df48ce1282b"><parameterSubstitution><TemplateParameterSubstitution uuid="6b032b19-a8ca-4135-9731-02e72c9013c7" formal="1594b3a2-afc7-4b28-a2ed-9e9b7fd58653" actual="81530a39-1176-47d7-add3-8da2cacba49c"/><TemplateParameterSubstitution uuid="2aeee2ed-6c0e-4145-b292-e94badea30de" formal="462f7f29-c270-454c-b092-f2ab4589aaec" actual="81530a39-1176-47d7-add3-8da2cacba49c"/></parameterSubstitution></TemplateBinding></templateBinding></Interface><Class uuid="e48d10ae-8474-41c5-8632-22b962350904" visibility="public"><templateBinding><TemplateBinding uuid="ca0f059d-164d-4195-a004-54a2c2d637a5" signature="fee98030-ee84-48cc-8f83-ac6d9230a1ce"><parameterSubstitution><TemplateParameterSubstitution uuid="37dbcd6c-d58d-494c-aca7-77baffb824cf" formal="0a8bbce5-4278-43e0-b00d-4fc238301676" actual="81530a39-1176-47d7-add3-8da2cacba49c"/><TemplateParameterSubstitution uuid="7778bf75-3821-4f19-842e-66a19e1e5eb7" formal="f383850f-fe4b-4cbd-8d81-ae0c84bed4fb" actual="4afce311-4676-4cf0-a3a3-6c4fd064447e"/></parameterSubstitution></TemplateBinding></templateBinding></Class><Class uuid="fbef049e-98ee-4896-9ed8-5540bfcd4ab0" visibility="public"><templateBinding><TemplateBinding uuid="5c9ab336-23fa-4260-9844-fbb1ed3c340d" signature="623c5447-d650-4c69-b650-517dbb9141ff"><parameterSubstitution><TemplateParameterSubstitution uuid="c923bab1-bc14-4ec6-8e28-2876c24f0804" formal="36b0e09c-4aed-44fa-ac25-ef70b83d7187" actual="050cecf9-589d-4a8e-8705-ad03fd6542c5"/></parameterSubstitution></TemplateBinding></templateBinding></Class></packagedElement></Package></packagedElement></Package></packagedElement></Package></packagedElement></Package><Association uuid="4c5547d9-dec9-44c6-ba54-56131d3b794f" visibility="public"><memberEnd idref="1e983b79-b3fd-4d7b-8426-8ed7a804e563"/><ownedEnd><Property uuid="fc480269-3bd2-4c8e-864e-e2f92a4f4014" type="c23aa30f-f714-44bb-861f-46617e2d21bf"/></ownedEnd></Association><Association uuid="337fe5fc-d1e0-400f-a049-fa1fdfb6cae9" visibility="public"><memberEnd idref="f63ab2a1-97d3-413f-b0eb-ee59067f5c54"/><ownedEnd><Property uuid="20226ee7-50a2-4eb4-85d2-882bbb823708" type="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"/></ownedEnd></Association><Association uuid="31e8f802-f472-429f-a22b-bc228945fc9d" visibility="public"><memberEnd idref="e0144025-6679-40a0-8816-4e62691abf90"/><ownedEnd><Property uuid="fab2fbf8-1e5b-4891-b705-3d39fa27a51a" type="e44596f5-84fe-4ede-85b2-d4360328ef30"/></ownedEnd></Association><Association uuid="40e9947e-a4f4-4216-865b-1c2e0cfda4d8" visibility="public"><memberEnd idref="e0344500-2bbc-4e1d-81e8-4dd27313e1cb"/><ownedEnd><Property uuid="daaebca8-ad4f-4252-ae4a-747692206c28" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="9d53037c-a542-41e9-91cc-ef395435fbd9" visibility="public"><memberEnd idref="45e07359-339e-4205-9274-5ec32cce3077"/><ownedEnd><Property uuid="c6980672-c22a-4756-9bf3-e382373a72e3" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="f637b78a-739c-4310-95bf-d69e4de4b8b3" visibility="public"><memberEnd idref="4e968b1c-677d-452e-a030-7b9bede87270"/><ownedEnd><Property uuid="a7e0a5db-717d-43a7-b1ac-7923bb85ac6c" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="b96ec92c-bbd5-409c-ab9a-d065f5ae7f26" visibility="public"><memberEnd idref="3c36d4ef-e283-4f1a-9a69-669f39fb7f93"/><ownedEnd><Property uuid="931a9114-8b3b-41d7-a0de-569ea12cea0b" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="81e9ed6a-f4f3-4e3c-8259-d52e9c6a8509" visibility="public"><memberEnd idref="7ae87f33-2c55-45b3-ab76-ec30f47231d3"/><ownedEnd><Property uuid="aca92401-fe95-47a4-8590-21f87e47dc5a" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="00029b89-64e4-427a-a5d0-22e51d88a439" visibility="public"><memberEnd idref="2a28462b-1746-4b7f-9d38-28b5749337cb"/><ownedEnd><Property uuid="f6074ef3-0cfc-47c5-bcc4-2ca51535df3d" type="370d0768-7e30-4c6d-89eb-02e797aeee19"/></ownedEnd></Association><Association uuid="4c26e1b6-7066-47d7-a255-1706dd76c6c5" visibility="public"><memberEnd idref="d3c43a4c-f207-4326-8a71-f5b6c743fd6d"/><ownedEnd><Property uuid="a36b39e4-0824-4d6e-8cee-2ef2c3bb67b8" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedEnd></Association><Association uuid="6de5d861-1288-47d7-ae85-cd653df845ea" visibility="public"><memberEnd idref="8a4eee94-5187-480b-995b-204bc35f1080"/><ownedEnd><Property uuid="43234b06-98ff-4a92-b316-fa4c7a987e97" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="abcaf06f-2651-4717-b171-2bafe5d218d2" visibility="public"><memberEnd idref="cb01fc9e-6943-49fc-b253-e1c3ede93c99"/><ownedEnd><Property uuid="54390f23-c184-4811-8969-450fd852eac9" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="d915fff8-d663-491b-bfdb-21821ebe69cb" visibility="public"><memberEnd idref="aab25435-bf9e-4fe0-b0a5-a762fa4d2f61"/><ownedEnd><Property uuid="0c67d12d-6185-40d4-9641-f112686e0d39" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/></ownedEnd></Association><Association uuid="5e1d27d6-7f3b-4365-baa9-5b849f141483" visibility="public"><memberEnd idref="8dde5272-367d-4251-abef-7d51235b01b3"/><ownedEnd><Property uuid="5423f498-bc2d-4b6a-aeb2-f19eff4e684f" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/></ownedEnd></Association><Association uuid="61d2e691-ad0b-438d-9111-0c37b942e3bb" visibility="public"><memberEnd idref="85fa544a-8e43-466d-84e8-cd3b70a427eb"/><ownedEnd><Property uuid="eb4b80a1-a9d2-47c6-88f3-614fa1c9821c" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/></ownedEnd></Association><Association uuid="fec40076-6ee6-449d-ac4a-b1e938561267" visibility="public"><memberEnd idref="1d749d34-6fec-455e-8a71-b179515cad94"/><ownedEnd><Property uuid="ed2c76c1-4c5a-4a1e-8be2-015a51443d8e" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="13218f51-84f8-48a3-9b61-ea95fac2d94f" visibility="public"><memberEnd idref="af9b43d4-42cf-4cc9-9537-0882d124fc97"/><ownedEnd><Property uuid="5a43c08a-ff84-4926-ad65-933bd2fc1d9a" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedEnd></Association><Association uuid="6fb6ef58-b621-46a3-94f6-b68ab70d00ca" visibility="public"><memberEnd idref="77a22c7e-dd8c-4496-8833-aa0f5fdc30a2"/><ownedEnd><Property uuid="19e434d1-2c56-4d6a-a475-d6cabf9762ea" type="51b56fa0-2f71-4d48-b767-6cd8f21a8846"/></ownedEnd></Association></packagedElement><profileApplication><ProfileApplication uuid="8f6f85c5-381d-4533-8239-ec152a0639d5" appliedProfile="00000102-7510-11d9-86f2-000476a22f44"/></profileApplication></Package><Profile href="Java Profile.ump#00000102-7510-11d9-86f2-000476a22f44" editable="false"/><Package href="Java6.0\Java JDK 6 (types only).ump#94ec1fc9-9a46-443e-8616-aa362b8594bc" editable="false"/><Usage uuid="1c4738c2-9ed2-40fe-ad85-e55bc137cb93" visibility="public"><supplier idref="d9f09d4b-2e35-47f3-af4f-19ed21d3c2c6"/><client idref="225beba8-ffe1-40ea-886f-624853e4b2fb"/></Usage></packagedElement></Package></Model><Diagrams><RootElement uuid="00000002-7510-11d9-86f2-000476a22f44"><guiRootGuiDiagram><UseCaseDiagram uuid="b1ded86f-cd68-4f78-a0aa-ff762c2240d9" name="Cache local" guiDiagramLinkedOwner="75acf7ff-7c86-4a1c-88c0-d8423f2e777c"><guiDiagramGuiLink><Note uuid="bf1ff31c-2714-48c2-85d2-e57067a34488" noteText="Section 13 de la RFC 2616"><nodeRect Left="390" Top="150" Right="538" Bottom="171"/><guiNoteTextHyperlink><TextHyperlink uuid="72dd4353-727f-432e-9b90-89df93515006" length="10"><ownedHyperlink><GuiHyperlink2File uuid="bd81f385-6934-4104-941b-21d4ebe611ba" linkAddress="http://http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13"/></ownedHyperlink></TextHyperlink></guiNoteTextHyperlink></Note><NodeLink uuid="60f9cfcb-5e88-4166-9530-01709275c23f" guiLink_Element="ef96a864-6ef0-4844-be9b-3326a90b9f25"><nodeRect Left="45" Top="60" Right="88" Bottom="141"/></NodeLink><NodeLink uuid="f6b61e10-a15e-40c1-a2e4-98491a1544dd" guiLink_Element="17cae621-671b-443a-b7f9-9670609dd834"><nodeRect Left="525" Top="60" Right="559" Bottom="128"/></NodeLink><NodeLink uuid="d02593fc-de23-4d8c-ba10-654c6ac2c29a" guiLink_Element="6a3b798a-bc4f-407d-9eea-3147fc8fbbad"><style showextpoint="0"/><nodeRect Left="255" Top="75" Right="350" Bottom="116"/></NodeLink><LineLink uuid="56cfc978-0055-4454-a01e-72841190d5e0" guiLink_Element="53a03f50-5cc3-4e16-b6b9-74e8f99e851e" guiLineLink_LineBegin="d02593fc-de23-4d8c-ba10-654c6ac2c29a" guiLineLink_LineEnd="60f9cfcb-5e88-4166-9530-01709275c23f"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="901ace18-04b2-4161-b7aa-d7aded70379a"><pos X="161" Y="97"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="e823f21f-7489-4d80-936f-f4bff2b73c13" alignment="1"><pos X="255" Y="95"/></EndWaypoint><EndWaypoint uuid="1bce702e-e4f5-4dc1-96fc-0dd1270972d6" alignment="4"><pos X="67" Y="100"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="a3ae4a06-1dab-4fed-909c-ea7b07aa697c" guiLink_Element="924571c6-bf9c-42e2-96b5-54e1f3264cca" guiLineLink_LineBegin="d02593fc-de23-4d8c-ba10-654c6ac2c29a" guiLineLink_LineEnd="f6b61e10-a15e-40c1-a2e4-98491a1544dd"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="9ba3649d-efa7-4f03-beea-a1b0c8c552b7"><pos X="444" Y="94"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="8c28be02-5e60-4f39-bf04-563263971942" alignment="4"><pos X="348" Y="94"/></EndWaypoint><EndWaypoint uuid="9da34b4c-575d-4615-b277-861bd17d31c2" alignment="1"><pos X="541" Y="94"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="b18441cb-cada-4b46-8fc3-5364b0ed4d59" guiLink_Element="b687a885-6c10-4f34-8546-70c5eedf78c1"><style showextpoint="0"/><nodeRect Left="255" Top="165" Right="337" Bottom="203"/></NodeLink><LineLink uuid="b0c42c83-a494-4308-af2a-58cfbb223e7e" guiLink_Element="d3eb620a-5af5-498a-a01d-d37edb812198" guiLineLink_LineBegin="d02593fc-de23-4d8c-ba10-654c6ac2c29a" guiLineLink_LineEnd="b18441cb-cada-4b46-8fc3-5364b0ed4d59"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="b91d87bb-8170-4a86-aa50-a430e7eab80a"><pos X="296" Y="139"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="aaab2a29-78b5-4682-9e56-7f73ef92d52c" textLabel="12" guiTextLabel_Element="d3eb620a-5af5-498a-a01d-d37edb812198"><pos X="-23" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="ed216ac5-a7f4-41bd-918f-06ab9b2c14c7" alignment="3"><pos X="296" Y="114"/></EndWaypoint><EndWaypoint uuid="225c4e71-0b1c-423f-8ba7-693ac9ab6d7b" alignment="2"><pos X="296" Y="165"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="f6fb688e-e100-475f-b574-6d2930a3e241" guiLink_Element="8a98bf31-f03a-433a-99a9-d0dcf391ddd6"><style showextpoint="0"/><nodeRect Left="105" Top="240" Right="247" Bottom="290"/></NodeLink><LineLink uuid="fcb85163-54b6-492d-bd66-5e96d91007aa" guiLink_Element="9e55ce09-b406-49e0-897b-6ecfec973309" guiLineLink_LineBegin="b18441cb-cada-4b46-8fc3-5364b0ed4d59" guiLineLink_LineEnd="f6fb688e-e100-475f-b574-6d2930a3e241"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5575ee9e-a9be-4080-a8f1-7ff5c4202c99"><pos X="240" Y="220"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6ad3d93e-17f9-4bb9-a909-fbab68518d4d" alignment="1"><pos X="271" Y="199"/></EndWaypoint><EndWaypoint uuid="b491a720-6f2b-44ed-a950-b18b624d3d99" alignment="4"><pos X="208" Y="242"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="0cb9fe0b-57d6-4ad3-87d9-18cdf7503e0c" guiLink_Element="319c572e-fa3d-401c-874a-20d63dced51b"><style showextpoint="0"/><nodeRect Left="90" Top="330" Right="240" Bottom="382"/></NodeLink><LineLink uuid="acd6b43b-9470-4171-ba89-316f765db771" guiLink_Element="badf6a9f-f5f7-45a8-9884-7029b0d52ac7" guiLineLink_LineBegin="0cb9fe0b-57d6-4ad3-87d9-18cdf7503e0c" guiLineLink_LineEnd="f6fb688e-e100-475f-b574-6d2930a3e241"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="e7fdd830-9dd7-426a-b451-63c580e52266"><pos X="168" Y="310"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="c2d943e6-c49b-41b8-8f7b-9b81d42d9e0f" textLabel="12" guiTextLabel_Element="badf6a9f-f5f7-45a8-9884-7029b0d52ac7"><pos X="-23" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="d6627ff7-86be-4886-8e80-9f51dbeb3af5" alignment="2"><pos X="167" Y="330"/></EndWaypoint><EndWaypoint uuid="9698c976-9e0a-44bd-afc0-f0852bace3ed" alignment="3"><pos X="171" Y="289"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="c0ddaf6f-1a1a-4b59-b191-e64f9a41eb13" guiLink_Element="dd7565b6-161b-4130-8952-fb037d1d5fc8"><nodeRect Left="60" Top="405" Right="294" Bottom="441"/></NodeLink><NoteLink uuid="a24ab748-037d-4136-85cf-e8d128cd7ee6" guiLineLink_LineBegin="c0ddaf6f-1a1a-4b59-b191-e64f9a41eb13" guiLineLink_LineEnd="0cb9fe0b-57d6-4ad3-87d9-18cdf7503e0c"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="8a0a271e-e4c6-4f40-8653-6d3c0d423fab"><pos X="165" Y="394"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6202c3e8-ee97-47f3-950a-4fa6c38c9600" alignment="2"><pos X="165" Y="405"/></EndWaypoint><EndWaypoint uuid="55aefd5d-c2d8-4551-bb21-a4722c90c223" alignment="3"><pos X="165" Y="382"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="aab2a02f-a6d6-41a4-ae15-591d35e78794" guiLink_Element="418062aa-96f1-4628-9304-16797890cc00"><style showextpoint="0"/><nodeRect Left="345" Top="225" Right="566" Bottom="288"/></NodeLink><LineLink uuid="a5b59e38-13bd-432f-9d31-4c1d68e13ed0" guiLink_Element="0e4cbef7-a29a-4b89-9f5a-17fe4da676a1" guiLineLink_LineBegin="b18441cb-cada-4b46-8fc3-5364b0ed4d59" guiLineLink_LineEnd="aab2a02f-a6d6-41a4-ae15-591d35e78794"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="62173b9c-c38c-429b-b6ba-8246097feb4a"><pos X="360" Y="212"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b1b3bfed-20c1-45f9-860a-70190948d923" alignment="4"><pos X="325" Y="197"/></EndWaypoint><EndWaypoint uuid="3a6dd579-99a6-4f23-a444-e40fbc0f619d" alignment="1"><pos X="396" Y="229"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="040a87d8-7a62-41df-b477-33ee66937076" guiLink_Element="b1d00397-f445-4737-a832-5181de9987b3"><style showextpoint="0"/><nodeRect Left="405" Top="315" Right="527" Bottom="361"/></NodeLink><LineLink uuid="3db14312-dc2c-41b3-966a-a263d0511527" guiLink_Element="4d512d0c-ae58-4c64-b2f3-c21e74bdbd40" guiLineLink_LineBegin="aab2a02f-a6d6-41a4-ae15-591d35e78794" guiLineLink_LineEnd="040a87d8-7a62-41df-b477-33ee66937076"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="7773f6c6-2367-4ebb-843d-9fd057f6b91d"><pos X="466" Y="300"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="f9aeb464-1a4d-4456-bed5-dfda215d7a79" alignment="3"><pos X="466" Y="286"/></EndWaypoint><EndWaypoint uuid="1bbdbd4f-b211-4947-9c77-f2531323ea60" alignment="2"><pos X="466" Y="315"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="7e775705-9735-47f3-8513-5c8b956ce760" guiLink_Element="4e650f65-c46e-40ca-8567-f5c9363f25e3"><style showextpoint="0"/><nodeRect Left="600" Top="315" Right="691" Bottom="355"/></NodeLink><LineLink uuid="91eefb27-a17e-4c4d-b063-2332ed35729f" guiLink_Element="bd16ffe9-54cd-4356-82f1-687ce29e9c1b" guiLineLink_LineBegin="040a87d8-7a62-41df-b477-33ee66937076" guiLineLink_LineEnd="7e775705-9735-47f3-8513-5c8b956ce760"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="85f8264e-3023-49f4-8810-81e563d08455"><pos X="563" Y="335"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="3157bdae-e7a8-41a4-a356-0a2f5c57afc5" alignment="4"><pos X="526" Y="335"/></EndWaypoint><EndWaypoint uuid="a5a758bc-49f7-4424-9ab1-ca4216d6b9f8" alignment="1"><pos X="600" Y="335"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="581fd376-4863-4558-85c9-7e4a5b15f095" guiLink_Element="debbf243-6bb7-48d2-a38e-542c649dfd96"><style showextpoint="0"/><nodeRect Left="765" Top="300" Right="953" Bottom="358"/></NodeLink><LineLink uuid="262f2ff0-3692-451f-a0e6-147a5fcd4744" guiLink_Element="ab327a21-04c6-4aa3-845d-5745e1452318" guiLineLink_LineBegin="581fd376-4863-4558-85c9-7e4a5b15f095" guiLineLink_LineEnd="7e775705-9735-47f3-8513-5c8b956ce760"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="0d39c493-fa46-4106-a869-095f70e790b1"><pos X="727" Y="331"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="e78669cb-c400-45a4-b224-b26cebdfff74" textLabel="13" guiTextLabel_Element="ab327a21-04c6-4aa3-845d-5745e1452318"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="48371d85-86f9-4477-807d-f0aca0ee210f" alignment="1"><pos X="765" Y="330"/></EndWaypoint><EndWaypoint uuid="f54b93ed-533b-43d6-acda-a1a04b5c036c" alignment="4"><pos X="689" Y="332"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="14d900ba-2016-4a38-9517-b005741e2bbc" guiLink_Element="c62695d7-65fa-4660-9cc0-fb7c3bab4eb1"><style showextpoint="0"/><nodeRect Left="585" Top="405" Right="741" Bottom="458"/></NodeLink><LineLink uuid="a419e412-efbe-466e-8ed1-96ffb5132276" guiLink_Element="649f9d11-183f-498c-9e87-25f77a784be2" guiLineLink_LineBegin="14d900ba-2016-4a38-9517-b005741e2bbc" guiLineLink_LineEnd="040a87d8-7a62-41df-b477-33ee66937076"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="55c4c847-5842-4b31-bd08-b5c325495776"><pos X="562" Y="383"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="8b5c59cb-cfc5-4886-bd09-cfceb4f7ff67" alignment="1"><pos X="618" Y="409"/></EndWaypoint><EndWaypoint uuid="55004f85-a444-4f03-802b-6ea5ecf6c6a1" alignment="4"><pos X="505" Y="355"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NoteLink uuid="b5992ef6-a432-41f7-85b1-271b69266714" guiLineLink_LineBegin="bf1ff31c-2714-48c2-85d2-e57067a34488" guiLineLink_LineEnd="b18441cb-cada-4b46-8fc3-5364b0ed4d59"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="d3ef6928-ef88-4224-b972-e08898d941fc"><pos X="363" Y="174"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="c5b43ade-e67a-419e-90bc-4fba6cfb8761" alignment="1"><pos X="390" Y="171"/></EndWaypoint><EndWaypoint uuid="6b493a74-9a0a-40cc-9c30-d1834e1e0e7d" alignment="4"><pos X="335" Y="178"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="9d3191ea-598d-4707-b12c-98eec9a599b4" guiLink_Element="f8128733-d029-4faf-9c8f-6d468d36561f"><style showextpoint="0"/><nodeRect Left="630" Top="225" Right="726" Bottom="266"/></NodeLink><LineLink uuid="ab1f22af-c4e8-4bc0-81f0-9f9a1d9d517a" guiLink_Element="e88b2db8-8b82-43e3-ae50-ba49e961b349" guiLineLink_LineBegin="aab2a02f-a6d6-41a4-ae15-591d35e78794" guiLineLink_LineEnd="9d3191ea-598d-4707-b12c-98eec9a599b4"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="c7497dbe-e532-4946-97d0-65f978895df4"><pos X="596" Y="247"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="5ebedc9c-e829-403a-84a7-80996420c091" textLabel="12" guiTextLabel_Element="e88b2db8-8b82-43e3-ae50-ba49e961b349"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="12dd2118-17bc-48b5-b370-22a4cdc8f2eb" alignment="4"><pos X="562" Y="248"/></EndWaypoint><EndWaypoint uuid="6025cd9b-e199-4ec5-8f14-ac97bf23ca24" alignment="1"><pos X="630" Y="246"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="141c055a-f384-4f36-a797-53b8cd366114" guiLink_Element="d0a38e71-d9bd-44c1-a785-6d2220c6240f"><style showextpoint="0"/><nodeRect Left="615" Top="135" Right="801" Bottom="193"/></NodeLink><LineLink uuid="31d34804-0364-4df2-b14f-d3a58e46a0ec" guiLink_Element="632af30d-3149-4b1e-a819-7c9d26a5608e" guiLineLink_LineBegin="aab2a02f-a6d6-41a4-ae15-591d35e78794" guiLineLink_LineEnd="141c055a-f384-4f36-a797-53b8cd366114"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="2096b659-9e4c-43b7-81fe-8bd1fe55bf62"><pos X="583" Y="208"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="06dec7d1-32b5-4c91-9d8d-15259fbe94be" alignment="3"><pos X="521" Y="231"/></EndWaypoint><EndWaypoint uuid="47d01c68-8e95-4e9b-ab83-1de26353140f" alignment="2"><pos X="645" Y="185"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="ea08e8e4-751a-4dfd-9630-0297e87c7b73" guiLink_Element="960e8b56-dd5c-4032-9985-611a4c4015d1"><nodeRect Left="765" Top="75" Right="1004" Bottom="96"/></NodeLink><NoteLink uuid="04239096-fc65-424d-8149-94034de47366" guiLineLink_LineBegin="ea08e8e4-751a-4dfd-9630-0297e87c7b73" guiLineLink_LineEnd="141c055a-f384-4f36-a797-53b8cd366114"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="091b2136-4af6-4c0c-bd25-df65be18c907"><pos X="810" Y="117"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6d28a2c9-e385-4977-bdef-833f40501a4f" alignment="1"><pos X="859" Y="96"/></EndWaypoint><EndWaypoint uuid="c8df2f26-9a89-4855-968d-ac3b845d6bee" alignment="4"><pos X="760" Y="139"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="f8bf98df-0098-49e8-9ced-0a24abc62801" guiLink_Element="e20521f8-542a-460b-af78-7a48fab92319"><nodeRect Left="285" Top="495" Right="332" Bottom="582"/></NodeLink><NodeLink uuid="96f9bbf0-77c4-42fe-b3f6-f0efa5479860" guiLink_Element="5ecf2657-5fd3-4154-bb96-6437aadc1fff"><style showextpoint="0"/><nodeRect Left="375" Top="450" Right="450" Bottom="486"/></NodeLink><LineLink uuid="5b25cdd8-397b-458f-9170-b634cfc1caad" guiLink_Element="efb9fac7-06c9-4322-bcd6-eb8cfb2377da" guiLineLink_LineBegin="96f9bbf0-77c4-42fe-b3f6-f0efa5479860" guiLineLink_LineEnd="f8bf98df-0098-49e8-9ced-0a24abc62801"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="c41af0b2-8ded-402d-a6e0-fd47b66e28f8"><pos X="350" Y="509"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="8782cdda-07ce-43d0-b162-b46c21546710" alignment="1"><pos X="389" Y="482"/></EndWaypoint><EndWaypoint uuid="8273a60a-5666-4bd5-af43-137d7d66f1b2" alignment="4"><pos X="310" Y="537"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="e860aec6-bf2d-4334-8fd8-aafd3d4c1aed" guiLink_Element="b46ebb67-8f3f-47cf-b4e4-1b8dca20e2af" guiLineLink_LineBegin="040a87d8-7a62-41df-b477-33ee66937076" guiLineLink_LineEnd="96f9bbf0-77c4-42fe-b3f6-f0efa5479860"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1bee431a-b544-4889-99c1-f2b776df6170"><pos X="437" Y="405"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b7669489-909a-4e67-ac30-6b3391365a6a" alignment="3"><pos X="455" Y="360"/></EndWaypoint><EndWaypoint uuid="85a0de14-8544-477a-973a-cab0d3881bb0" alignment="2"><pos X="419" Y="450"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="2cbf8c59-c6ef-42e6-96f9-b29e88021328" guiLink_Element="79751463-d87f-444b-b164-91b1911940b1"><style showextpoint="0"/><nodeRect Left="585" Top="495" Right="737" Bottom="547"/></NodeLink><LineLink uuid="fb38bcdc-7df2-4cc5-bc5f-6917b157fa93" guiLink_Element="b93f08c1-50ab-4ee2-bd26-0d11a6e70dd9" guiLineLink_LineBegin="2cbf8c59-c6ef-42e6-96f9-b29e88021328" guiLineLink_LineEnd="040a87d8-7a62-41df-b477-33ee66937076"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="893fd3ff-9811-40a0-87a7-cb5c7158d17a"><pos X="561" Y="428"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="726ec243-58b6-4e7e-8292-929bca632206" alignment="1"><pos X="634" Y="496"/></EndWaypoint><EndWaypoint uuid="5d62ab0a-12c5-45ba-8244-59fe2744a78c" alignment="4"><pos X="488" Y="359"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="ca79fed9-7fa4-4c08-809d-bb5125bd597d" name="Default"/></guiDiagramLayer></UseCaseDiagram><UseCaseDiagram uuid="bdb91ec2-6692-4ab3-84a8-aa54712e77d7" name="Interface Web" guiDiagramLinkedOwner="75acf7ff-7c86-4a1c-88c0-d8423f2e777c"><guiDiagramGuiLink><NodeLink uuid="3dc727e4-9430-46e7-82e5-2bf99aa850c3" guiLink_Element="e20521f8-542a-460b-af78-7a48fab92319"><nodeRect Left="30" Top="75" Right="77" Bottom="162"/></NodeLink><NodeLink uuid="0f5ea02e-2249-4dd2-97c7-ed7f94eec0db" guiLink_Element="f414604b-d19a-45c7-8796-370fdf50917e"><style showextpoint="0"/><nodeRect Left="135" Top="105" Right="212" Bottom="141"/></NodeLink><LineLink uuid="4b73bf9d-84e1-4f91-a11f-282c444fa5a2" guiLink_Element="44b8ffc7-d501-4d29-a188-4ddccdc660a5" guiLineLink_LineBegin="3dc727e4-9430-46e7-82e5-2bf99aa850c3" guiLineLink_LineEnd="0f5ea02e-2249-4dd2-97c7-ed7f94eec0db"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="a96d4f92-93ff-4368-a3c7-b3f6ec767832"><pos X="97" Y="123"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="2d57784f-71ad-493b-b439-0eecde09bd02" alignment="4"><pos X="59" Y="123"/></EndWaypoint><EndWaypoint uuid="738fa833-dd1e-4ada-ae77-b8b8f5ae01f8" alignment="1"><pos X="135" Y="123"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="18c9ff54-bb4c-45ba-899a-43e294bffe40" guiLink_Element="d37128c3-aea6-488f-9dfa-a9fed431b799"><style showextpoint="0"/><nodeRect Left="285" Top="30" Right="470" Bottom="87"/></NodeLink><LineLink uuid="80f64ba7-1146-4c27-8faa-bfd45625b5cd" guiLink_Element="d09f4e6c-4268-48b0-8754-1f70eeb1e2ee" guiLineLink_LineBegin="18c9ff54-bb4c-45ba-899a-43e294bffe40" guiLineLink_LineEnd="0f5ea02e-2249-4dd2-97c7-ed7f94eec0db"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="954a803f-df3f-4cc1-80fb-142c9a0c66b1"><pos X="259" Y="94"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6e886517-6a91-4d82-ade7-77cba980792e" alignment="1"><pos X="312" Y="78"/></EndWaypoint><EndWaypoint uuid="e988860b-8c31-477e-8b29-431a1f9c1a7a" alignment="4"><pos X="204" Y="112"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="ad046c3f-54d9-466f-83a6-5f22ac0e8a79" guiLink_Element="46d35208-a1f1-4f96-98e4-136e80ef4986"><style showextpoint="0"/><nodeRect Left="330" Top="135" Right="424" Bottom="175"/></NodeLink><LineLink uuid="be77e980-35f7-4473-807c-c26838283685" guiLink_Element="4bc3d86e-ae17-4d48-8854-c6de7420a2d2" guiLineLink_LineBegin="0f5ea02e-2249-4dd2-97c7-ed7f94eec0db" guiLineLink_LineEnd="ad046c3f-54d9-466f-83a6-5f22ac0e8a79"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="368a6d95-cd68-437c-8c40-a6c50b3cabba"><pos X="270" Y="137"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="41d37896-0ae7-4720-b62b-a7ac73c6a02c" alignment="4"><pos X="209" Y="128"/></EndWaypoint><EndWaypoint uuid="11ebcb8c-0738-44e5-b49e-1a0aff3843d5" alignment="1"><pos X="333" Y="147"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="ee2c43d4-0d72-493f-9eae-ad0f53be0743" guiLink_Element="cad5dcee-f5c3-446b-b558-28d7b7444243"><style showextpoint="0"/><nodeRect Left="300" Top="210" Right="465" Bottom="264"/></NodeLink><LineLink uuid="13b652f0-75fa-488d-9c4e-ced1b8c0282c" guiLink_Element="f8e6bd5a-a5be-41f9-a63d-c0a7abc551d8" guiLineLink_LineBegin="0f5ea02e-2249-4dd2-97c7-ed7f94eec0db" guiLineLink_LineEnd="ee2c43d4-0d72-493f-9eae-ad0f53be0743"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="6aaef9cb-7680-4625-9e37-4c8abf93d292"><pos X="268" Y="174"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b2f591cf-e888-4b3b-b12a-fd2ed234fe35" alignment="4"><pos X="198" Y="136"/></EndWaypoint><EndWaypoint uuid="02f6eda7-03ce-4d8d-8780-2eecb2493a92" alignment="1"><pos X="339" Y="213"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="67ecc1d1-1029-4996-9835-c3418d6287fd" guiLink_Element="0d248faf-1d9d-4220-8c9a-8c5134f28fbe"><style showextpoint="0"/><nodeRect Left="120" Top="300" Right="218" Bottom="341"/></NodeLink><LineLink uuid="6d611e90-9ce2-4151-a8b1-306497e6ef60" guiLink_Element="370e0a16-3482-42f5-959d-5ea00408fd04" guiLineLink_LineBegin="3dc727e4-9430-46e7-82e5-2bf99aa850c3" guiLineLink_LineEnd="67ecc1d1-1029-4996-9835-c3418d6287fd"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1ab2f883-1a27-4d45-b231-7f759bba1c68"><pos X="107" Y="214"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="9cfb3bed-089c-41a9-b9de-22afd6d11d27" alignment="3"><pos X="59" Y="129"/></EndWaypoint><EndWaypoint uuid="3b003e33-455a-43b6-9023-04231273e08e" alignment="2"><pos X="157" Y="300"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="780ab5f8-b20c-4a65-8ff3-2fe92eb8f0d7" guiLink_Element="738b1f62-f823-4d44-b532-7b98e9cf9f3f"><style showextpoint="0"/><nodeRect Left="330" Top="345" Right="459" Bottom="393"/></NodeLink><LineLink uuid="01bbe951-211f-4978-a61c-59748315dc1f" guiLink_Element="2bccc221-4d0c-4a84-8415-a93bcb6f2c42" guiLineLink_LineBegin="ee2c43d4-0d72-493f-9eae-ad0f53be0743" guiLineLink_LineEnd="780ab5f8-b20c-4a65-8ff3-2fe92eb8f0d7"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5bfdf882-3a2e-4bcb-bf83-16c6ba739bbd"><pos X="374" Y="304"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="ed44a2bd-0258-44a7-a922-24c74bb5d3e0" textLabel="12" guiTextLabel_Element="2bccc221-4d0c-4a84-8415-a93bcb6f2c42"><pos X="-23" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="7bf86545-fa93-41f8-b5bf-29130c73b208" alignment="3"><pos X="374" Y="263"/></EndWaypoint><EndWaypoint uuid="6f903689-60f1-4796-9248-9bb9bb2e4628" alignment="2"><pos X="374" Y="346"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="c115dbd7-9ce1-4f99-bd6b-2b1ce66c0712" guiLink_Element="5e5e5061-eb07-49da-9524-25745f3192b8" guiLineLink_LineBegin="67ecc1d1-1029-4996-9835-c3418d6287fd" guiLineLink_LineEnd="780ab5f8-b20c-4a65-8ff3-2fe92eb8f0d7"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="777b80a4-6683-4298-8c3a-2192bb33f8e0"><pos X="275" Y="342"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="426fd326-8465-432d-b9e1-0e8bbc1d525a" textLabel="12" guiTextLabel_Element="5e5e5061-eb07-49da-9524-25745f3192b8"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="73c30afc-f8f5-4f51-89cb-2ba1682bb84a" alignment="4"><pos X="212" Y="329"/></EndWaypoint><EndWaypoint uuid="470ae4ce-377d-4111-887a-d925438b8bb0" alignment="1"><pos X="338" Y="356"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="de324f56-dc60-40bb-8348-91c2306c6a99" name="Default"/></guiDiagramLayer></UseCaseDiagram><UseCaseDiagram uuid="2e8e659d-f7e8-404f-bcff-8bd073ed9a00" name="Partage cache local" guiDiagramLinkedOwner="75acf7ff-7c86-4a1c-88c0-d8423f2e777c"><guiDiagramGuiLink><NodeLink uuid="293060a7-5db1-4490-8575-9f05cb7b72fd" guiLink_Element="d9d0150f-7790-4a35-90d5-f08731584765"><nodeRect Left="60" Top="60" Right="109" Bottom="150"/></NodeLink><NodeLink uuid="29f0fd1f-0b33-418e-ab6e-13cb25b9ddd7" guiLink_Element="325de3aa-b7c8-47b3-b3ba-083cebe54233"><nodeRect Left="585" Top="60" Right="634" Bottom="150"/></NodeLink><NodeLink uuid="4ed834df-164c-4a9a-8ace-99eba1c4aac0" guiLink_Element="8e94b40e-f2a8-483b-92be-4d415c09f825"><style showextpoint="0"/><nodeRect Left="255" Top="90" Right="379" Bottom="137"/></NodeLink><LineLink uuid="6ecc6195-cf0d-480c-a92e-f8954b8c2f7c" guiLink_Element="6fed4fc4-7aab-491f-aa3b-a98271e15053" guiLineLink_LineBegin="293060a7-5db1-4490-8575-9f05cb7b72fd" guiLineLink_LineEnd="4ed834df-164c-4a9a-8ace-99eba1c4aac0"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="199dd041-3ff8-4d23-b0ea-441b02debaac"><pos X="172" Y="113"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="c8f37bad-aea5-4965-a9a4-a3f1de9a9402" alignment="4"><pos X="90" Y="113"/></EndWaypoint><EndWaypoint uuid="df231efe-70ab-43f1-a224-55a9d79b67fa" alignment="1"><pos X="255" Y="113"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="c1d3143c-4d0e-4e84-ae1b-a7e6e538a69d" guiLink_Element="3a4535ae-bec0-471a-9360-c458c26b1f8e" guiLineLink_LineBegin="4ed834df-164c-4a9a-8ace-99eba1c4aac0" guiLineLink_LineEnd="29f0fd1f-0b33-418e-ab6e-13cb25b9ddd7"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="8d96aa41-b590-4163-900f-88934a0a84c6"><pos X="491" Y="113"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="f79e2602-a7d8-48cf-957a-13081219dc9b" alignment="4"><pos X="379" Y="113"/></EndWaypoint><EndWaypoint uuid="5641c227-f56f-4521-8dc1-4beec67b3b3d" alignment="1"><pos X="603" Y="113"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="cebcd633-31d9-49c0-b378-4ba82cb4929b" guiLink_Element="7d537039-95ed-4f7c-8b47-39fb67ca886a"><nodeRect Left="405" Top="45" Right="511" Bottom="66"/></NodeLink><NoteLink uuid="181c4b7a-9fc3-41e1-9474-445106562138" guiLineLink_LineBegin="cebcd633-31d9-49c0-b378-4ba82cb4929b" guiLineLink_LineEnd="4ed834df-164c-4a9a-8ace-99eba1c4aac0"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="e836dc38-8bc1-445d-aefa-2cb7007b67e2"><pos X="395" Y="80"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="36a8967e-7d8c-4590-ac5d-81934345b7d1" alignment="1"><pos X="431" Y="66"/></EndWaypoint><EndWaypoint uuid="524aa82a-1ef9-451d-98ce-0e782bbf4d6e" alignment="4"><pos X="358" Y="95"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="d6e59b8d-a34f-43f7-b025-301e55a59421" guiLink_Element="4b0cc687-f76e-43e9-8424-1636efa4a0fb"><style showextpoint="0"/><nodeRect Left="90" Top="195" Right="331" Bottom="261"/></NodeLink><LineLink uuid="ec66c62b-6c96-4008-b552-d3beee4f7f5a" guiLink_Element="55f9bc2f-1571-4f9e-a363-3de57a0f40f2" guiLineLink_LineBegin="4ed834df-164c-4a9a-8ace-99eba1c4aac0" guiLineLink_LineEnd="d6e59b8d-a34f-43f7-b025-301e55a59421"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="26bd02fb-5c4f-4ca9-a426-a9f763f05b43"><pos X="267" Y="164"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="6aa34c7d-95b8-4076-b857-5fae3ebc247e" textLabel="12" guiTextLabel_Element="55f9bc2f-1571-4f9e-a363-3de57a0f40f2"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="7fcc0ecd-6c6a-40e4-b7e4-e85a9f389a4a" alignment="1"><pos X="295" Y="134"/></EndWaypoint><EndWaypoint uuid="89c8ef37-44e8-4875-84b9-cbb6131e2a78" alignment="4"><pos X="239" Y="195"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="95916f2e-9874-471e-8482-1d3223ab2a2f" guiLink_Element="cb69f661-de3d-4b35-a543-827ff9e3e4c8"><style showextpoint="0"/><nodeRect Left="360" Top="195" Right="551" Bottom="253"/></NodeLink><LineLink uuid="453d8aac-1d02-406c-a8d6-39c7c3ef484d" guiLink_Element="11dbab39-d8a2-472d-b864-0f0c98dcf6bc" guiLineLink_LineBegin="4ed834df-164c-4a9a-8ace-99eba1c4aac0" guiLineLink_LineEnd="95916f2e-9874-471e-8482-1d3223ab2a2f"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1b66126a-bfbf-4836-a5d6-12a84eaa246e"><pos X="382" Y="164"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="54d4652c-1222-496b-9268-b3c670b9ef30" textLabel="12" guiTextLabel_Element="11dbab39-d8a2-472d-b864-0f0c98dcf6bc"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="2c18b9f2-911a-4f94-92d0-8d2a22ea69eb" alignment="4"><pos X="343" Y="133"/></EndWaypoint><EndWaypoint uuid="acf8bcb5-3f3f-4de0-bc13-68d8c1bc7bfe" alignment="1"><pos X="421" Y="196"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="71e232ee-ba7f-431f-9ff1-daf15d4bb3c7" guiLink_Element="889feaa2-1035-45f3-ad2d-effb3f051d79"><nodeRect Left="480" Top="270" Right="560" Bottom="291"/></NodeLink><NoteLink uuid="214e8ffe-1bce-4752-bab8-10eb02fe78a9" guiLineLink_LineBegin="71e232ee-ba7f-431f-9ff1-daf15d4bb3c7" guiLineLink_LineEnd="95916f2e-9874-471e-8482-1d3223ab2a2f"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="d9595676-70ea-47f9-bcda-ca9218ef47cf"><pos X="498" Y="261"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="55919eae-d3c6-4181-9bfc-a4ee26ba8b9e" alignment="1"><pos X="508" Y="270"/></EndWaypoint><EndWaypoint uuid="a0e8f8d8-d46f-4e88-b064-a05339040042" alignment="4"><pos X="486" Y="251"/></EndWaypoint></guiLineLinkWaypoint></NoteLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="07f10570-0445-4255-aa78-3633f1e2c63e" name="Default"/></guiDiagramLayer></UseCaseDiagram><UseCaseDiagram uuid="1084f357-4cd6-44cd-8b48-34881e13646d" name="Proxy (QoS)" guiDiagramLinkedOwner="75acf7ff-7c86-4a1c-88c0-d8423f2e777c"><guiDiagramGuiLink><NodeLink uuid="388b2eb3-e053-4820-820f-c02096a366c5" guiLink_Element="ef96a864-6ef0-4844-be9b-3326a90b9f25"><nodeRect Left="60" Top="75" Right="103" Bottom="156"/></NodeLink><NodeLink uuid="0500dc25-4dbc-4bec-87c3-547e0b1f1c09" guiLink_Element="17cae621-671b-443a-b7f9-9670609dd834"><nodeRect Left="615" Top="75" Right="649" Bottom="143"/></NodeLink><NodeLink uuid="f58f7ffc-fcd0-41b0-8ed9-c1fa5fab1797" guiLink_Element="6a3b798a-bc4f-407d-9eea-3147fc8fbbad"><style showextpoint="0"/><nodeRect Left="270" Top="105" Right="365" Bottom="146"/></NodeLink><LineLink uuid="9c346e55-42c3-4ed5-9f80-0feaef12f8f6" guiLink_Element="53a03f50-5cc3-4e16-b6b9-74e8f99e851e" guiLineLink_LineBegin="388b2eb3-e053-4820-820f-c02096a366c5" guiLineLink_LineEnd="f58f7ffc-fcd0-41b0-8ed9-c1fa5fab1797"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="9e85dd91-7bdf-4a65-b104-8cb144115ac4"><pos X="177" Y="125"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="3ec2e06c-2885-4a4f-935f-6aa2ded638d4" alignment="4"><pos X="85" Y="125"/></EndWaypoint><EndWaypoint uuid="56efdb35-2319-4cb3-beba-9725572c7696" alignment="1"><pos X="270" Y="125"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="641760e8-c8f8-4e41-9e25-025c55427252" guiLink_Element="924571c6-bf9c-42e2-96b5-54e1f3264cca" guiLineLink_LineBegin="f58f7ffc-fcd0-41b0-8ed9-c1fa5fab1797" guiLineLink_LineEnd="0500dc25-4dbc-4bec-87c3-547e0b1f1c09"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="6578f7f3-7510-40e6-a3d8-dd742ca543c6"><pos X="495" Y="124"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="60001077-1935-4738-916f-d1da295ac354" alignment="4"><pos X="363" Y="124"/></EndWaypoint><EndWaypoint uuid="d88cc1a1-cc20-4c6a-80c2-df076e909bff" alignment="1"><pos X="628" Y="124"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="962f2579-7aaf-4e5c-9f79-79731a5bfb60" guiLink_Element="17d6a6eb-4cfd-424c-9dde-a5b32b5a2989"><style showextpoint="0"/><nodeRect Left="300" Top="195" Right="343" Bottom="223"/></NodeLink><LineLink uuid="e506cd03-922a-4a5c-9636-d852a94b6f3c" guiLink_Element="08f25bbf-67a4-427a-ab1c-4bc7ec3f0f76" guiLineLink_LineBegin="f58f7ffc-fcd0-41b0-8ed9-c1fa5fab1797" guiLineLink_LineEnd="962f2579-7aaf-4e5c-9f79-79731a5bfb60"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="ba1c57ae-3660-4510-a834-abaf1267c070"><pos X="321" Y="169"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="17d2ea76-938e-465b-854c-06a1260cc2a9" textLabel="12" guiTextLabel_Element="08f25bbf-67a4-427a-ab1c-4bc7ec3f0f76"><pos X="-23" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="a0b6719d-2c34-449d-be14-93baf36fae33" alignment="3"><pos X="321" Y="144"/></EndWaypoint><EndWaypoint uuid="01b4cfbe-1617-4d56-8c34-b912a1cdcf36" alignment="2"><pos X="321" Y="195"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="68939e54-875f-4b97-b3d7-a2241bf564ac" guiLink_Element="d730f6c0-8139-4dcf-8f3d-3ad57ba46ca0"><style showextpoint="0"/><nodeRect Left="180" Top="240" Right="251" Bottom="275"/></NodeLink><NodeLink uuid="cc27c50f-2dd7-4668-9bd4-e37e7c5d8318" guiLink_Element="f46392e6-ddc2-49f6-975f-ca21c64079b5"><style showextpoint="0"/><nodeRect Left="375" Top="240" Right="450" Bottom="276"/></NodeLink><LineLink uuid="8a10b873-a162-4fde-b4f0-c0dd28baf69e" guiLink_Element="56b8172e-3c6c-4de5-a4fc-90949a8034b2" guiLineLink_LineBegin="962f2579-7aaf-4e5c-9f79-79731a5bfb60" guiLineLink_LineEnd="68939e54-875f-4b97-b3d7-a2241bf564ac"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="3d7be5a2-9f82-4a6a-a86c-11e1bea89b29"><pos X="271" Y="230"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="69ff91ca-6c23-4640-9b76-ff20dd91dddb" alignment="1"><pos X="302" Y="216"/></EndWaypoint><EndWaypoint uuid="d394cee6-8ced-41ef-bc47-9e7dce0685c5" alignment="4"><pos X="240" Y="245"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="d6aaf8e2-cb4f-425b-a754-eabb72a0a1b6" guiLink_Element="e3691432-f245-4d5c-b09b-15185469befa" guiLineLink_LineBegin="962f2579-7aaf-4e5c-9f79-79731a5bfb60" guiLineLink_LineEnd="cc27c50f-2dd7-4668-9bd4-e37e7c5d8318"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="c1a29ea4-cd21-4f7e-a55a-0e8c9292e0bd"><pos X="362" Y="230"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="5b5bbf90-eb60-4c7f-a80b-0ca0c738e2e7" alignment="4"><pos X="337" Y="217"/></EndWaypoint><EndWaypoint uuid="fb5d9a7a-d6ce-4ed4-9682-9a6245d793ab" alignment="1"><pos X="387" Y="244"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="2ccc5066-89e9-4529-9c3e-293e09ecf766" guiLink_Element="eea8970d-e7d2-4cca-98e3-843ea444b42e"><style showextpoint="0"/><nodeRect Left="270" Top="300" Right="353" Bottom="338"/></NodeLink><NodeLink uuid="3b3ca4b4-2c52-40cb-90d1-d611c01e6df6" guiLink_Element="e20521f8-542a-460b-af78-7a48fab92319"><style autosize="1"/><nodeRect Left="60" Top="405" Right="107" Bottom="492"/></NodeLink><NodeLink uuid="596f2c51-af1a-4f49-aa9d-b87ea9298b42" guiLink_Element="debbf243-6bb7-48d2-a38e-542c649dfd96"><style showextpoint="0"/><nodeRect Left="570" Top="330" Right="758" Bottom="388"/></NodeLink><NodeLink uuid="d621d7e9-50b0-4719-9a2b-365c56a37011" guiLink_Element="6eb21384-34b7-4ca4-83cf-b01d315750a7"><style showextpoint="0"/><nodeRect Left="570" Top="420" Right="741" Bottom="475"/></NodeLink><LineLink uuid="1706a583-36b1-4dbf-80f1-b96df425b4f0" guiLink_Element="6d6938e6-7f14-42eb-adf0-99666d788de9" guiLineLink_LineBegin="68939e54-875f-4b97-b3d7-a2241bf564ac" guiLineLink_LineEnd="2ccc5066-89e9-4529-9c3e-293e09ecf766"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="8a62126f-3a4c-4a2d-bbf4-e7766c0c73e6"><pos X="261" Y="286"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="242c976c-9961-4702-a1b5-8d23d199f6bd" alignment="4"><pos X="236" Y="270"/></EndWaypoint><EndWaypoint uuid="fff401e5-ae8a-4299-8279-9309bf1b2c3c" alignment="1"><pos X="287" Y="303"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="ab30bd6a-0ec2-40e1-996c-f5fed6b9157f" guiLink_Element="65f7a0e9-ccf0-44d2-8451-5217ff3370f0" guiLineLink_LineBegin="cc27c50f-2dd7-4668-9bd4-e37e7c5d8318" guiLineLink_LineEnd="2ccc5066-89e9-4529-9c3e-293e09ecf766"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="b9f8570e-da1a-4bff-bcb8-8b220ae39956"><pos X="362" Y="286"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="af4230ac-4a9f-4168-8a3e-0394a4eecf2a" alignment="1"><pos X="387" Y="271"/></EndWaypoint><EndWaypoint uuid="c60fcc4d-d6ea-402a-8f91-650f1c156eba" alignment="4"><pos X="335" Y="303"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="6ddfdb49-e8a9-4239-b4ac-82f2ec96ba7c" guiLink_Element="6227f180-5b70-40d1-94e5-05d94ba92189"><nodeRect Left="465" Top="285" Right="692" Bottom="306"/></NodeLink><NoteLink uuid="e5f9e51f-4100-46fe-a7da-45ab145f65d4" guiLineLink_LineBegin="6ddfdb49-e8a9-4239-b4ac-82f2ec96ba7c" guiLineLink_LineEnd="2ccc5066-89e9-4529-9c3e-293e09ecf766"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="15c647ce-1ff2-485c-87a3-06deae2ecf77"><pos X="408" Y="309"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="74ee04d6-f515-4809-9660-8c9d7cd22651" alignment="1"><pos X="465" Y="305"/></EndWaypoint><EndWaypoint uuid="126f646f-ca9a-46e1-a364-4bdaa3e6e31a" alignment="4"><pos X="351" Y="314"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="79cbcc32-dba0-4279-afd3-080cc4b865c2" guiLink_Element="4381c9c7-ebcf-4aee-96a5-bbd751c48d76"><style showextpoint="0"/><nodeRect Left="405" Top="375" Right="528" Bottom="421"/></NodeLink><LineLink uuid="518d0be0-309e-449e-8685-db1bf4658025" guiLink_Element="672d3a15-a60a-4fce-bf2a-71eb022a966e" guiLineLink_LineBegin="79cbcc32-dba0-4279-afd3-080cc4b865c2" guiLineLink_LineEnd="2ccc5066-89e9-4529-9c3e-293e09ecf766"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="7a631e6e-4751-412f-a65a-2dbf28f3ef09"><pos X="384" Y="357"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="5d4ccc90-186f-43bf-ab0e-e0c7965ef569" alignment="1"><pos X="429" Y="379"/></EndWaypoint><EndWaypoint uuid="f006c16f-0ba7-466b-936d-3de2b9626f32" alignment="4"><pos X="338" Y="333"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="a7641971-9a55-465f-9ca2-3eda79ed641e" guiLink_Element="2b44a793-11a8-4dd3-9493-796fb762cc48" guiLineLink_LineBegin="596f2c51-af1a-4f49-aa9d-b87ea9298b42" guiLineLink_LineEnd="79cbcc32-dba0-4279-afd3-080cc4b865c2"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5c627327-3bea-4569-913f-bc6a5c5566fc"><pos X="550" Y="379"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="62823382-e233-4bf2-9873-523739cf3ae6" textLabel="13" guiTextLabel_Element="2b44a793-11a8-4dd3-9493-796fb762cc48"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b815de05-e79a-4541-bb8b-155a472029dc" alignment="1"><pos X="581" Y="373"/></EndWaypoint><EndWaypoint uuid="a07a4add-cd47-4299-86eb-8b9cef40e81f" alignment="4"><pos X="518" Y="385"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="52cb6123-5ce5-45fe-8c12-6d8d9f08a1f0" guiLink_Element="d9e53cfd-7acb-4d27-b96e-07359d049679" guiLineLink_LineBegin="d621d7e9-50b0-4719-9a2b-365c56a37011" guiLineLink_LineEnd="79cbcc32-dba0-4279-afd3-080cc4b865c2"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="55268b71-5297-4267-96ee-a6778fc86d84"><pos X="554" Y="420"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="96ce8ea4-5429-4e99-9ccb-705a219d8cef" textLabel="13" guiTextLabel_Element="d9e53cfd-7acb-4d27-b96e-07359d049679"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="15c865d6-9754-4236-b334-56146513852c" alignment="1"><pos X="590" Y="429"/></EndWaypoint><EndWaypoint uuid="82441ba5-9cbc-4da9-a06b-e23032c98685" alignment="4"><pos X="517" Y="410"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="e4ecfb7e-eea7-4738-810a-7dbf6fd9adef" guiLink_Element="a4bc929a-20da-4031-940a-50f5260966d7"><style showextpoint="0"/><nodeRect Left="405" Top="465" Right="541" Bottom="514"/></NodeLink><LineLink uuid="8de47814-4835-4704-a358-dbbe2f7249cf" guiLink_Element="6c96ffd0-baab-4a5b-a732-c06b117e8311" guiLineLink_LineBegin="2ccc5066-89e9-4529-9c3e-293e09ecf766" guiLineLink_LineEnd="e4ecfb7e-eea7-4738-810a-7dbf6fd9adef"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="e69a92d4-7b0b-4faa-9488-22f3e544dc4d"><pos X="388" Y="400"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b533e78f-88e0-40b7-a523-96a38a70627c" alignment="3"><pos X="327" Y="336"/></EndWaypoint><EndWaypoint uuid="234a5bef-ad62-4e48-8109-747204a3c8f5" alignment="2"><pos X="451" Y="466"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="affb3f02-a9b4-42bf-8a07-d883a1458c3b" guiLink_Element="53ae50d8-1586-4213-a7db-ce22cfa73fd8"><style showextpoint="0"/><nodeRect Left="420" Top="555" Right="524" Bottom="598"/></NodeLink><LineLink uuid="682910ca-d97b-4e40-bc90-954f4c52b9dd" guiLink_Element="1deaf6d2-47d8-4a06-ad2c-6f19504083de" guiLineLink_LineBegin="affb3f02-a9b4-42bf-8a07-d883a1458c3b" guiLineLink_LineEnd="2ccc5066-89e9-4529-9c3e-293e09ecf766"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1cb99739-277e-4885-b20a-66b0ab2a1ca8"><pos X="360" Y="464"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="ba5840e5-c85a-4106-b6b0-df35bf4add7e" alignment="2"><pos X="442" Y="558"/></EndWaypoint><Waypoint uuid="f820cd5f-cbf6-4697-9fe7-05780530669a"><pos X="380" Y="522"/></Waypoint><EndWaypoint uuid="e2820e94-893a-4b7e-b9d4-1aba1231987b" alignment="3"><pos X="317" Y="337"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="fefe17c7-cfe1-4976-9499-bd4a8d9dff78" guiLink_Element="4c593fc2-123f-447b-bd7a-5714fe38abe0"><nodeRect Left="600" Top="540" Right="902" Bottom="561"/></NodeLink><NoteLink uuid="d63aa9b9-87fd-420b-a6e9-f927b83061b1" guiLineLink_LineBegin="fefe17c7-cfe1-4976-9499-bd4a8d9dff78" guiLineLink_LineEnd="affb3f02-a9b4-42bf-8a07-d883a1458c3b"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="4cd40e1f-7eab-4d77-861d-7dda56707198"><pos X="578" Y="565"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="914245b5-bdc1-4075-bb7d-6512ce4bfdd7" alignment="1"><pos X="633" Y="561"/></EndWaypoint><EndWaypoint uuid="295dfe0a-6eca-4a40-8b09-96c904364466" alignment="4"><pos X="522" Y="570"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="da76e34a-6fe5-4689-9126-56e39d28e3ae" guiLink_Element="652f9c70-9bc9-465f-8676-09a485330d30"><style showextpoint="0"/><nodeRect Left="420" Top="630" Right="532" Bottom="674"/></NodeLink><LineLink uuid="cd6d6162-d8a1-45f6-85e8-c964d31302a5" guiLink_Element="a8754b27-772d-463c-8bfc-824458230ec3" guiLineLink_LineBegin="2ccc5066-89e9-4529-9c3e-293e09ecf766" guiLineLink_LineEnd="da76e34a-6fe5-4689-9126-56e39d28e3ae"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="786d26b8-66f1-496c-b0b2-55472b43ce32"><pos X="342" Y="510"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="ac40fa4a-adca-4d75-b76d-dd6631247a17" alignment="3"><pos X="314" Y="337"/></EndWaypoint><Waypoint uuid="aed67b24-1727-48aa-a710-07750e8966e6"><pos X="356" Y="591"/></Waypoint><EndWaypoint uuid="907f2682-19eb-4e4c-95a2-f866c09e4723" alignment="2"><pos X="441" Y="634"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="beb3683f-3dcb-44f5-88d2-d27decdd8734" guiLink_Element="5ecf2657-5fd3-4154-bb96-6437aadc1fff"><style showextpoint="0"/><nodeRect Left="165" Top="450" Right="240" Bottom="486"/></NodeLink><LineLink uuid="3d0ffa2f-fef5-4290-b513-19f5552a0b6e" guiLink_Element="efb9fac7-06c9-4322-bcd6-eb8cfb2377da" guiLineLink_LineBegin="3b3ca4b4-2c52-40cb-90d1-d611c01e6df6" guiLineLink_LineEnd="beb3683f-3dcb-44f5-88d2-d27decdd8734"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="beed73d3-53fb-457f-9db7-31c0d5edee8a"><pos X="127" Y="468"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6533a11e-ee40-4024-b1e8-98daf603da1c" alignment="4"><pos X="89" Y="468"/></EndWaypoint><EndWaypoint uuid="91b4affc-e179-4752-8d15-123563a2f54e" alignment="1"><pos X="165" Y="468"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="66ef4d58-beb2-4c8a-ba0e-a487891d0be0" guiLink_Element="9a7e64b0-7bfb-4d75-8dc9-937504b1a21e" guiLineLink_LineBegin="beb3683f-3dcb-44f5-88d2-d27decdd8734" guiLineLink_LineEnd="79cbcc32-dba0-4279-afd3-080cc4b865c2"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="8ddad0b9-7dba-449f-b275-b7c4d7e9a8e4"><pos X="324" Y="435"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="bce707e3-a3ed-49e3-a9a6-b10062c760da" alignment="4"><pos X="234" Y="458"/></EndWaypoint><EndWaypoint uuid="e2e15b96-fc32-4c05-b82f-a36424ae7ab3" alignment="1"><pos X="415" Y="411"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="0db15f1a-03ac-4295-b561-91698f2a3144" guiLink_Element="ffbb3276-9de4-4d07-b745-95dfe9cdaeda" guiLineLink_LineBegin="beb3683f-3dcb-44f5-88d2-d27decdd8734" guiLineLink_LineEnd="e4ecfb7e-eea7-4738-810a-7dbf6fd9adef"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="d13b1a77-b46a-4e6f-b60d-6009433cf287"><pos X="322" Y="476"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="0050feae-441d-4f9f-8257-9bc85250095e" alignment="4"><pos X="238" Y="470"/></EndWaypoint><EndWaypoint uuid="2a69a4ab-46df-4953-b169-0063007a23f8" alignment="1"><pos X="406" Y="483"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="b51a1bc2-728c-40d5-bef6-803ff41827b3" guiLink_Element="4aded2fd-df48-415b-8765-8e0beb573c10" guiLineLink_LineBegin="beb3683f-3dcb-44f5-88d2-d27decdd8734" guiLineLink_LineEnd="affb3f02-a9b4-42bf-8a07-d883a1458c3b"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="31712fd6-d2e5-47dc-9ed4-73f9417f7f5a"><pos X="332" Y="520"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="7c1f48af-f8d9-46d3-9c65-f7e79243e562" alignment="4"><pos X="230" Y="479"/></EndWaypoint><EndWaypoint uuid="c1182bd0-3c4b-49cf-a082-14e1b4f1320f" alignment="1"><pos X="435" Y="561"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="56d18848-637e-41f9-95e9-4eed69b8011c" guiLink_Element="f8d333c9-150b-42e1-b60b-d3959ccaea50" guiLineLink_LineBegin="beb3683f-3dcb-44f5-88d2-d27decdd8734" guiLineLink_LineEnd="da76e34a-6fe5-4689-9126-56e39d28e3ae"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="6d3c74ea-3820-48c0-be1c-1cec6335c430"><pos X="335" Y="557"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="c654885e-7876-44a8-aa33-e9cf38623fe8" alignment="4"><pos X="223" Y="482"/></EndWaypoint><EndWaypoint uuid="ded34284-dcad-4dec-b1ce-47134ebd6041" alignment="1"><pos X="447" Y="633"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="02d6ffc1-ff63-4c08-9d57-8d286efe5735" guiLink_Element="c2ba0c3f-4839-41c8-825e-cbaf015e5464"><nodeRect Left="75" Top="525" Right="212" Bottom="546"/></NodeLink><NoteLink uuid="bb827e7d-716e-4005-8b8f-2d3386270096" guiLineLink_LineBegin="02d6ffc1-ff63-4c08-9d57-8d286efe5735" guiLineLink_LineEnd="beb3683f-3dcb-44f5-88d2-d27decdd8734"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="b522d78b-7daf-4982-bede-ba1f2002d3ea"><pos X="189" Y="505"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="8ca6923f-c437-4fcf-97cd-11f76d8955f0" alignment="2"><pos X="189" Y="525"/></EndWaypoint><EndWaypoint uuid="f39770e2-fb72-417c-9a1f-b74d00a0eb6b" alignment="3"><pos X="189" Y="484"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="91b6cf9a-8477-43a1-bdba-90c1d2c9a431" guiLink_Element="004110ad-6188-403a-9663-3bc5c2508033"><nodeRect Left="45" Top="330" Right="211" Bottom="366"/></NodeLink><NoteLink uuid="2e9432ad-628b-46a1-a754-f63b15559c0b" guiLineLink_LineBegin="91b6cf9a-8477-43a1-bdba-90c1d2c9a431" guiLineLink_LineEnd="2ccc5066-89e9-4529-9c3e-293e09ecf766"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="ec9c8a37-5d3e-4062-8100-3f182d107f26"><pos X="241" Y="331"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="af8f78db-4a0e-4a6d-b872-78457c441ccb" alignment="4"><pos X="211" Y="335"/></EndWaypoint><EndWaypoint uuid="6cf1fd40-b630-4307-b211-f4bae85a9082" alignment="1"><pos X="272" Y="325"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="5c3b24d9-68ac-4ce4-8b04-7965d5f6b51b" guiLink_Element="b687a885-6c10-4f34-8546-70c5eedf78c1"><style showextpoint="0"/><nodeRect Left="270" Top="30" Right="352" Bottom="68"/></NodeLink><LineLink uuid="75fe7128-6ad5-44c1-9622-d3d874022b16" guiLink_Element="d3eb620a-5af5-498a-a01d-d37edb812198" guiLineLink_LineBegin="f58f7ffc-fcd0-41b0-8ed9-c1fa5fab1797" guiLineLink_LineEnd="5c3b24d9-68ac-4ce4-8b04-7965d5f6b51b"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="ba3f3725-9c9b-4869-85c1-8b6400529eb9"><pos X="314" Y="86"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="6c90115a-115f-458d-892b-b61d7b3b20a1" textLabel="12" guiTextLabel_Element="d3eb620a-5af5-498a-a01d-d37edb812198"><pos X="-23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="55f4a721-070d-447e-b900-1b24dae37291" alignment="4"><pos X="315" Y="105"/></EndWaypoint><EndWaypoint uuid="b3c75099-9612-4ed5-bef5-093c9b5b2a83" alignment="1"><pos X="312" Y="67"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="6a1f5b32-fb18-4eb5-8307-cf3dca942d2b" guiLink_Element="5f37648e-e887-4206-a5ba-5cea17ce65cd"><nodeRect Left="405" Top="15" Right="504" Bottom="36"/></NodeLink><NoteLink uuid="ad94b8c8-11b1-477d-a1b9-e101fe49d608" guiLineLink_LineBegin="6a1f5b32-fb18-4eb5-8307-cf3dca942d2b" guiLineLink_LineEnd="5c3b24d9-68ac-4ce4-8b04-7965d5f6b51b"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="9e6d42d3-8228-4bf6-b03e-1e337dfa7149"><pos X="377" Y="37"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="47b6f205-6314-4dfe-9285-f1d91244cf36" alignment="1"><pos X="405" Y="33"/></EndWaypoint><EndWaypoint uuid="dfbb7a2f-bc2b-4f8a-b83a-13ee9886e7ae" alignment="4"><pos X="349" Y="41"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="6a86f98c-2aed-4256-9e67-4529e642cf34" guiLink_Element="2c1c985f-e0ab-4958-93b3-82e0ce85c3c6"><nodeRect Left="765" Top="405" Right="942" Bottom="426"/></NodeLink><NoteLink uuid="d7e3ae98-123d-439a-baad-a54efb751349" guiLineLink_LineBegin="6a86f98c-2aed-4256-9e67-4529e642cf34" guiLineLink_LineEnd="d621d7e9-50b0-4719-9a2b-365c56a37011"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="ed3281f5-e3c2-476d-9cfa-c54d29e9790e"><pos X="758" Y="429"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="e5e0d2ff-5706-4488-89e7-9eb384d3f84e" alignment="1"><pos X="785" Y="426"/></EndWaypoint><EndWaypoint uuid="a70629e5-a0e9-482b-a764-2bba5ff759a9" alignment="4"><pos X="730" Y="434"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><NodeLink uuid="550f292f-a0d1-4502-a0dc-4bc6f9607bc2" guiLink_Element="0aaedfae-9336-41ca-a776-fc34c44ff206"><style showextpoint="0"/><nodeRect Left="435" Top="705" Right="504" Bottom="739"/></NodeLink><LineLink uuid="a321f8be-783f-405d-97e1-cf25f8389211" guiLink_Element="620e0800-6568-4323-b30b-a84b524c8189" guiLineLink_LineBegin="550f292f-a0d1-4502-a0dc-4bc6f9607bc2" guiLineLink_LineEnd="beb3683f-3dcb-44f5-88d2-d27decdd8734"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="e533bc8c-51af-4fb9-9e88-882361309a95"><pos X="336" Y="596"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="0a1281b3-a4d2-49c3-b93b-ad32d85464d5" alignment="1"><pos X="453" Y="706"/></EndWaypoint><EndWaypoint uuid="2c8462c9-e072-4e4d-9e9c-0a59a979e83c" alignment="4"><pos X="218" Y="484"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="40f82eb1-f4dd-4906-9929-e64ed6d2e569" guiLink_Element="d37038ac-43a2-4463-8315-4fe7afb28382" guiLineLink_LineBegin="550f292f-a0d1-4502-a0dc-4bc6f9607bc2" guiLineLink_LineEnd="2ccc5066-89e9-4529-9c3e-293e09ecf766"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="9f7267fc-77e3-4ee4-9a90-7a04ba6dd198"><pos X="267" Y="575"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="ce40e779-1b57-40c3-a310-fcdee1e48a39" alignment="2"><pos X="446" Y="709"/></EndWaypoint><Waypoint uuid="31a7dcf7-74c8-4f1f-b136-1b31249e8497"><pos X="263" Y="603"/></Waypoint><EndWaypoint uuid="3397fac3-d9d6-4792-a206-d2ad0d47618f" alignment="3"><pos X="306" Y="337"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="d146f093-ba09-49da-bf21-47d9ca266ac8" name="Default"/></guiDiagramLayer></UseCaseDiagram><StateMachineDiagram uuid="923f9c24-d247-48f9-bd48-dc21c4b24971" name="Reception communication" guiDiagramLinkedOwner="5e49dcd9-0db1-462a-a331-2cc43ff2f276"><guiDiagramGuiLink><Note uuid="6467017b-9ee7-4d24-947b-d7ef75158ee1" noteText="Demander le comportement que cela
doit avoir. Pour l&apos;instant on ferme juste
la communication."><nodeRect Left="120" Top="390" Right="326" Bottom="441"/></Note><ConstrainedNode uuid="e1576905-5813-4bb2-b9dc-b167e30961dd" constrainingAreaIndex="-1" guiLink_Element="95402424-8250-4325-a97d-180a18c38ff8"><nodeRect Left="135" Top="60" Right="155" Bottom="80"/><attached><AttachedNode uuid="f6c30e7f-5f37-4798-a359-dac2344a31b7" attachedNodeKind="13"><nodeRect Left="180" Top="45" Right="478" Bottom="60"/></AttachedNode></attached></ConstrainedNode><SeparatedNodeLink uuid="cb2ae4cb-a967-4e53-9687-616f3c411f8d" guiLink_Element="bc465c69-43d1-49eb-b526-fc424c6dcadc"><nodeRect Left="60" Top="120" Right="247" Bottom="153"/></SeparatedNodeLink><LineLink uuid="26690235-df29-4e24-9067-ca6ff871ce2a" guiLink_Element="0f0d2b31-5b56-456e-8f55-5c2f1e70d007" guiLineLink_LineBegin="e1576905-5813-4bb2-b9dc-b167e30961dd" guiLineLink_LineEnd="cb2ae4cb-a967-4e53-9687-616f3c411f8d"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="15eff3d3-73fc-48bd-bdd5-558c03e1f046"><pos X="148" Y="99"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="a61670ee-b44a-4198-9a8c-9ebeb586f197" alignment="3"><pos X="146" Y="79"/></EndWaypoint><EndWaypoint uuid="659843bf-0e7a-4957-9a2f-f68fbc685082" alignment="2"><pos X="151" Y="120"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="cd7f1105-1804-4da5-930f-24f0f0989412" constrainingAreaIndex="-1" guiLink_Element="bdc7fc77-a45e-4e93-b3d4-515fb3ed0197"><nodeRect Left="135" Top="195" Right="167" Bottom="227"/></ConstrainedNode><LineLink uuid="134e2916-523b-4aeb-91fd-930ef2e0e2bc" guiLink_Element="589727c7-4038-489b-8e6c-44cf9ca52d20" guiLineLink_LineBegin="cb2ae4cb-a967-4e53-9687-616f3c411f8d" guiLineLink_LineEnd="cd7f1105-1804-4da5-930f-24f0f0989412"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="d480e415-ec60-40b3-845a-2e590aa39608"><pos X="151" Y="174"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="1b5ce8c4-ef57-43d1-9508-637425d7c41d" textLabel="23" guiTextLabel_Element="589727c7-4038-489b-8e6c-44cf9ca52d20"><pos X="9" Y="-8"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="45c6c612-ebbe-46c4-b87e-2301433cb8f8" alignment="3"><pos X="151" Y="153"/></EndWaypoint><EndWaypoint uuid="de18ee5c-00e2-4985-858e-06d1c8f3bcb4" alignment="2"><pos X="151" Y="195"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="b6058138-09cf-4562-93a2-0d04cb5a2126" guiLink_Element="e370c107-f311-412e-bb89-6692ae83f75c"><nodeRect Top="255" Right="177" Bottom="302"/></SeparatedNodeLink><LineLink uuid="50b91ed5-2d3c-42b2-b3ef-1cd99fd0bafe" guiLink_Element="d208a49f-7fd8-43df-ad64-3782172e5e96" guiLineLink_LineBegin="cd7f1105-1804-4da5-930f-24f0f0989412" guiLineLink_LineEnd="b6058138-09cf-4562-93a2-0d04cb5a2126"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="06171bba-c8a7-43fd-8679-e1267466ee67"><pos X="83" Y="211"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="be7071d1-a3be-41e1-b5e6-9b9b427615a1" textLabel="23" guiTextLabel_Element="d208a49f-7fd8-43df-ad64-3782172e5e96"><pos X="-70" Y="-25"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="2f97fc4d-be9a-46da-aaaf-7426a9bbc16b" alignment="3"><pos X="135" Y="211"/></EndWaypoint><Waypoint uuid="c96948d5-f19b-4218-afb5-25dd8b5bfe65"><pos X="74" Y="211"/></Waypoint><EndWaypoint uuid="21fc31d4-fa23-4a1a-a4b1-ff09dc9efa3f" alignment="2"><pos X="74" Y="255"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="854ec437-4a16-49f4-aef9-ec8293f6613e" constrainingAreaIndex="-1" guiLink_Element="47af5721-9cc9-44e6-85e6-2424088b9ad4"><nodeRect Left="60" Top="360" Right="80" Bottom="380"/><attached><AttachedNode uuid="23724d26-de86-4320-8233-6ae324fcdd61" attachedNodeKind="13"><nodeRect Left="-45" Top="375" Right="44" Bottom="390"/></AttachedNode></attached></ConstrainedNode><LineLink uuid="76958dc5-8261-489d-9659-7eb3bf2759c4" guiLink_Element="3c91035f-40ba-4748-b6b8-becf97d67fb6" guiLineLink_LineBegin="b6058138-09cf-4562-93a2-0d04cb5a2126" guiLineLink_LineEnd="854ec437-4a16-49f4-aef9-ec8293f6613e"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="2cc1a72a-1eb5-4650-b3f3-415ced1e498f"><pos X="70" Y="331"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b9da7a37-2a15-4ef0-9927-147747c009e5" alignment="3"><pos X="70" Y="302"/></EndWaypoint><EndWaypoint uuid="bc20027c-ec64-4c40-b12a-88aed7db42fb" alignment="2"><pos X="70" Y="360"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="0812acac-1037-4466-ae2b-94d6765ad912" guiLink_Element="f70ef4c1-5abf-4737-a3c0-3d088f49d469"><nodeRect Left="270" Top="255" Right="419" Bottom="288"/></SeparatedNodeLink><LineLink uuid="760a5530-bc0e-4bfd-bd59-bf93bc383b4c" guiLink_Element="f240c9f4-25bd-435d-9580-306de0a9f0e1" guiLineLink_LineBegin="cd7f1105-1804-4da5-930f-24f0f0989412" guiLineLink_LineEnd="0812acac-1037-4466-ae2b-94d6765ad912"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="05f488fc-7ac4-4ddf-8c37-4f5a92af6338"><pos X="272" Y="211"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="d0ea37e4-c59c-46f7-9953-f61ebd545678" textLabel="23" guiTextLabel_Element="f240c9f4-25bd-435d-9580-306de0a9f0e1"><pos X="-5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="d31fcc9f-e403-414e-b45d-10905bdab126" alignment="4"><pos X="167" Y="211"/></EndWaypoint><Waypoint uuid="6561df54-0a9f-458a-9950-6f4abb12ee7b"><pos X="334" Y="211"/></Waypoint><EndWaypoint uuid="d32310a4-7979-4d60-a81c-ad0c1077ca1b" alignment="1"><pos X="334" Y="255"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="d9f4c6b1-437d-4f02-8b22-7a454eef53c7" constrainingAreaIndex="-1" guiLink_Element="3665ff88-ae67-4cb5-92cc-cd197649e482"><nodeRect Left="330" Top="315" Right="362" Bottom="347"/></ConstrainedNode><LineLink uuid="04da2cad-1656-408a-85a6-b7febbccc176" guiLink_Element="e8fb1a5e-ae9c-48c3-99b6-9ed0e6f96fe2" guiLineLink_LineBegin="0812acac-1037-4466-ae2b-94d6765ad912" guiLineLink_LineEnd="d9f4c6b1-437d-4f02-8b22-7a454eef53c7"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="302127d8-5be4-4207-8921-a954843119ce"><pos X="346" Y="301"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="7483e830-0531-464d-88b0-a86ab45d2dba" textLabel="23" guiTextLabel_Element="e8fb1a5e-ae9c-48c3-99b6-9ed0e6f96fe2"><pos X="11" Y="-4"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="9b1f9844-7601-4d8d-8152-4956e4d9f8e0" alignment="3"><pos X="346" Y="288"/></EndWaypoint><EndWaypoint uuid="cd7974d0-a909-4379-bb27-6d81785b2ebc" alignment="2"><pos X="346" Y="315"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="b2dac836-33fc-4102-b01f-0bac8ee37e24" guiLink_Element="5fbdd8ca-9a61-43f7-9613-4117b8a96ae0" guiLineLink_LineBegin="d9f4c6b1-437d-4f02-8b22-7a454eef53c7" guiLineLink_LineEnd="854ec437-4a16-49f4-aef9-ec8293f6613e"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="a642e56a-7ce2-45e9-a1ea-8b8528420ac6"><pos X="207" Y="350"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="5c285d6f-1cb3-4159-89fc-d26dd2b18e6e" textLabel="23" guiTextLabel_Element="5fbdd8ca-9a61-43f7-9613-4117b8a96ae0"><pos X="-70" Y="-23"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="a0b6687d-4290-4fef-aec7-868dd5ce9a63" alignment="1"><pos X="334" Y="335"/></EndWaypoint><EndWaypoint uuid="816236c5-b589-4599-bd2d-595c7f84ae9a" alignment="4"><pos X="79" Y="367"/></EndWaypoint></guiLineLinkWaypoint><guiLineConnectionWaypoint><LineConnectionWaypoint uuid="7562008a-f7cd-4de9-a5f7-7eb2dd014d83" distanceFromBegin="0.478773"><pos X="211" Y="350"/></LineConnectionWaypoint></guiLineConnectionWaypoint></LineLink><NoteLink uuid="5a8ce5d1-e84a-4bd5-a757-cb78d9259b34" guiLineLink_LineBegin="6467017b-9ee7-4d24-947b-d7ef75158ee1" guiLineLink_LineEnd="7562008a-f7cd-4de9-a5f7-7eb2dd014d83"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="a701fa01-29e6-4327-b8e2-7494c6d09567"><pos X="215" Y="370"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="44316313-b615-4091-87ec-fcc082c17cc1"><pos X="218" Y="390"/></EndWaypoint><LineConnectionWaypoint idref="7562008a-f7cd-4de9-a5f7-7eb2dd014d83"/></guiLineLinkWaypoint></NoteLink><SeparatedNodeLink uuid="50720b67-d7e4-4c48-b627-b7fc9afc24e6" guiLink_Element="11b633e8-8c08-4d95-add3-8f6a0013d142"><nodeRect Left="435" Top="405" Right="668" Bottom="444"/></SeparatedNodeLink><LineLink uuid="1347c11b-317b-474e-a0f2-f560e833c673" guiLink_Element="03e6e526-b513-42b8-bf25-01cc001fe2f9" guiLineLink_LineBegin="d9f4c6b1-437d-4f02-8b22-7a454eef53c7" guiLineLink_LineEnd="50720b67-d7e4-4c48-b627-b7fc9afc24e6"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5c15ac1f-178d-469c-8617-920f4d906f98"><pos X="398" Y="378"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="4ffca820-168d-46d9-899a-2219f8efd6f2" textLabel="23" guiTextLabel_Element="03e6e526-b513-42b8-bf25-01cc001fe2f9"><pos X="16" Y="-16"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="29b41282-b270-4411-a6b4-4d3761a9931e" alignment="4"><pos X="362" Y="331"/></EndWaypoint><Waypoint uuid="802d5e5a-1bbe-4586-9bbb-cf058b63b36a"><pos X="398" Y="331"/></Waypoint><Waypoint uuid="5605a5db-ba24-4d73-a364-873d7cd65829"><pos X="398" Y="424"/></Waypoint><EndWaypoint uuid="0305ff69-40dd-4c2b-9d51-58527ee9b1e9" alignment="1"><pos X="435" Y="424"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="7ffacfff-0134-4cbd-8546-210a22e7ed71" guiLink_Element="41fb1505-213e-4f95-8162-3d62eb02e45f" guiLineLink_LineBegin="50720b67-d7e4-4c48-b627-b7fc9afc24e6" guiLineLink_LineEnd="854ec437-4a16-49f4-aef9-ec8293f6613e"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="c08db931-81f0-4af2-aa03-12c39d28536a"><pos X="274" Y="491"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="88e90f67-4a65-4ee2-8861-a808242a5d0f" textLabel="23" guiTextLabel_Element="41fb1505-213e-4f95-8162-3d62eb02e45f"><pos X="-5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="35296945-a491-4b45-bcbf-6968773096da" alignment="1"><pos X="542" Y="444"/></EndWaypoint><Waypoint uuid="0d92ef7f-e625-436c-bc04-a0d257a0486a"><pos X="542" Y="491"/></Waypoint><Waypoint uuid="ffb72856-f9c3-4e0c-a1e3-232455a54818"><pos X="80" Y="491"/></Waypoint><EndWaypoint uuid="8bda6113-0912-4f76-aafa-288940492018" alignment="4"><pos X="80" Y="370"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="0b58b8d5-fa74-4a1d-801f-9e75e50ca1c2" name="Default"/></guiDiagramLayer></StateMachineDiagram><StateMachineDiagram uuid="748c723d-5319-4dec-9565-fe94f6e3ae76" name="Communication" guiDiagramLinkedOwner="6e22c2c7-7fd0-4599-a45c-4505ef2caf5c"><guiDiagramGuiLink><ConstrainedNode uuid="f1cdedd9-f959-41a8-8477-1bb8e3a0c6d6" constrainingAreaIndex="-1" guiLink_Element="8f80eaf2-28db-4e0a-b252-40a69ba8dd38"><nodeRect Left="202" Top="59" Right="222" Bottom="79"/><attached><AttachedNode uuid="8c12fd55-5495-4b85-b0d3-380ab4f30b25" attachedNodeKind="13"><nodeRect Left="120" Top="30" Right="330" Bottom="45"/></AttachedNode></attached></ConstrainedNode><NodeLink uuid="1f3453f8-4f59-42a7-b15a-acf58acbd78f" guiLink_Element="09b4f9a6-8bc1-4d35-b1ed-970219969cb3"><nodeRect Left="285" Top="60" Right="622" Bottom="81"/></NodeLink><NoteLink uuid="09b37b72-20a7-4f1d-9326-066bd1cb0772" guiLineLink_LineBegin="1f3453f8-4f59-42a7-b15a-acf58acbd78f" guiLineLink_LineEnd="f1cdedd9-f959-41a8-8477-1bb8e3a0c6d6"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="e07e7b04-889f-4f6b-a97f-f3563a50b413"><pos X="254" Y="69"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="2674cd89-a2e3-4337-a75a-9632c18f0955" alignment="1"><pos X="285" Y="69"/></EndWaypoint><EndWaypoint uuid="76f38ec3-f479-4bf2-8304-e27591a2bdaf" alignment="4"><pos X="222" Y="69"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><SeparatedNodeLink uuid="bc86a0ad-0734-45bd-a109-40a1ec914bf1" guiLink_Element="61b81e81-2c39-4c05-98fe-07867ee286aa"><nodeRect Left="120" Top="285" Right="330" Bottom="338"/></SeparatedNodeLink><SeparatedNodeLink uuid="386ac6e0-5cac-48cf-81c7-98e2a1bfb8d6" guiLink_Element="11ef8b4f-db30-473d-8fc9-a4f1f91daaa5"><nodeRect Left="120" Top="165" Right="329" Bottom="204"/></SeparatedNodeLink><LineLink uuid="fd9e28e4-0a19-4025-aacb-ba049925efaf" guiLink_Element="5449445d-8458-4e89-a93e-4f86aadd61f7" guiLineLink_LineBegin="386ac6e0-5cac-48cf-81c7-98e2a1bfb8d6" guiLineLink_LineEnd="bc86a0ad-0734-45bd-a109-40a1ec914bf1"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="43cc5937-bd3f-456c-aad9-7e32f5d98fb3"><pos X="210" Y="244"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="34d45746-6d11-4108-ba15-42f4c759b2a6" textLabel="23" guiTextLabel_Element="5449445d-8458-4e89-a93e-4f86aadd61f7"><pos X="10" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="7360f51b-6f7b-46e1-9645-2aa661a29d5c" alignment="1"><pos X="210" Y="204"/></EndWaypoint><EndWaypoint uuid="69f9a2bb-1f21-47ed-a884-b7f67e750dc3" alignment="4"><pos X="210" Y="285"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="ca4da6d9-ae84-4247-a402-f5c2c50476ac" guiLink_Element="ce567f7a-81e0-4eb8-81a2-a3720e326106"><nodeRect Left="120" Top="420" Right="330" Bottom="459"/></SeparatedNodeLink><SeparatedNodeLink uuid="13b6575e-9bf1-4c39-b237-866ab1988454" guiLink_Element="c1d39ea4-e20e-48fc-a3f8-ff10fbcb0264"><style autosize="1"/><nodeRect Left="120" Top="525" Right="353" Bottom="558"/></SeparatedNodeLink><LineLink uuid="1e3a31a6-622d-4e34-98db-8e76ccd183c2" guiLink_Element="aa1762da-a6d2-492e-aac2-60dcb95834fb" guiLineLink_LineBegin="ca4da6d9-ae84-4247-a402-f5c2c50476ac" guiLineLink_LineEnd="13b6575e-9bf1-4c39-b237-866ab1988454"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="79f5f684-27d7-434e-8c65-dd259c15c1a4"><pos X="230" Y="492"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="7ec0998b-0e61-4a61-a59f-4ac16f370628" textLabel="23" guiTextLabel_Element="aa1762da-a6d2-492e-aac2-60dcb95834fb"><pos X="23" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="f772a5f2-452c-4d58-8cd5-8d6e7018e136" alignment="1"><pos X="230" Y="459"/></EndWaypoint><EndWaypoint uuid="169a19c4-270a-42c4-a8a9-a64df229d6f0" alignment="4"><pos X="230" Y="525"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="1745080e-433c-4407-ae09-bc1b91e65e7e" constrainingAreaIndex="-1" guiLink_Element="6f3c79ad-bb43-4762-8c0f-c2f77b9fe8db"><nodeRect Left="195" Top="600" Right="227" Bottom="632"/></ConstrainedNode><LineLink uuid="e3d032cc-0ef9-4ca5-a058-25bbc1cb520d" guiLink_Element="076f4bd8-75d5-4bb6-a7bc-ba5965e2c55c" guiLineLink_LineBegin="13b6575e-9bf1-4c39-b237-866ab1988454" guiLineLink_LineEnd="1745080e-433c-4407-ae09-bc1b91e65e7e"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="715b1eb6-46cf-4dc8-801d-76cb6be76a5c"><pos X="211" Y="579"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f8dd1405-7b87-4148-aac0-d10d92682b37" textLabel="23" guiTextLabel_Element="076f4bd8-75d5-4bb6-a7bc-ba5965e2c55c"><pos X="33" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="5a52b889-7176-4145-a67d-e540aeeb59d6" alignment="3"><pos X="211" Y="558"/></EndWaypoint><EndWaypoint uuid="21eace0e-b74c-4ca8-87e6-fa297b9bd597" alignment="2"><pos X="211" Y="600"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="97485d46-c9b2-456d-b652-dcf8dd9a5306" constrainingAreaIndex="-1" guiLink_Element="39c5cdaa-a238-4b16-adcc-d5647e95ab51"><nodeRect Left="375" Top="630" Right="395" Bottom="650"/><attached><AttachedNode uuid="72d40d4d-b5d2-4ac1-a367-cf9ad6703f2c" attachedNodeKind="13"><nodeRect Left="360" Top="660" Right="449" Bottom="675"/></AttachedNode></attached></ConstrainedNode><LineLink uuid="a7cdd441-2074-4e55-9dda-bc8a90d71c83" guiLink_Element="ba42c714-cdba-4666-9e31-83bfd62f691f" guiLineLink_LineBegin="1745080e-433c-4407-ae09-bc1b91e65e7e" guiLineLink_LineEnd="97485d46-c9b2-456d-b652-dcf8dd9a5306"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="9a9270c9-47e8-4ed5-9f68-c547a9f0b394"><pos X="311" Y="617"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="4b49caf5-294e-4a7d-b031-888b73cfa392" textLabel="23" guiTextLabel_Element="ba42c714-cdba-4666-9e31-83bfd62f691f"><pos X="-5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="95f4974d-c53d-4579-82e1-4ea11b31c41a" alignment="4"><pos X="227" Y="617"/></EndWaypoint><Waypoint uuid="0f2228fe-5bf3-468f-8d22-2ec0c4d22276"><pos X="385" Y="617"/></Waypoint><EndWaypoint uuid="c24fc5ba-1df9-40eb-8db4-637812a72697" alignment="1"><pos X="385" Y="630"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="41d64737-5160-42a4-a5ab-0fc0bfc5d2a4" guiLink_Element="031a7f91-e020-4e86-bf2b-cde2d0a03b39"><nodeRect Left="135" Top="705" Right="313" Bottom="738"/></SeparatedNodeLink><LineLink uuid="5b093109-6010-4c8f-904e-9b42376b9d0a" guiLink_Element="849ebfcc-f4c4-43a4-b67e-314470bee0d7" guiLineLink_LineBegin="1745080e-433c-4407-ae09-bc1b91e65e7e" guiLineLink_LineEnd="41d64737-5160-42a4-a5ab-0fc0bfc5d2a4"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="596882f0-277d-4143-8a78-541701525091"><pos X="211" Y="668"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f24e1720-3177-4a5c-9522-0299f1fcd2ff" textLabel="23" guiTextLabel_Element="849ebfcc-f4c4-43a4-b67e-314470bee0d7"><pos X="13" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="5d561ecc-df51-4fd7-a108-47a038d408d0" alignment="3"><pos X="211" Y="632"/></EndWaypoint><EndWaypoint uuid="99465e19-64bd-4486-aaf2-5ed50fdf02c4" alignment="2"><pos X="211" Y="705"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="cd704e89-0c60-4caf-bbbb-e6849fb4014d" guiLink_Element="d7449424-b7d2-422f-a1fd-351cfc21e1b1"><nodeRect Left="360" Top="795" Right="546" Bottom="816"/></NodeLink><SeparatedNodeLink uuid="109f0bae-8c32-4942-a470-f43ec8434362" guiLink_Element="8df53ca8-79d5-417b-867f-468497a8ec96"><nodeRect Left="135" Top="795" Right="329" Bottom="828"/></SeparatedNodeLink><LineLink uuid="bc4f6ec8-992c-4ee5-b512-a46a5b959954" guiLink_Element="e148126e-6416-4e67-adf6-b490ae0a6858" guiLineLink_LineBegin="41d64737-5160-42a4-a5ab-0fc0bfc5d2a4" guiLineLink_LineEnd="109f0bae-8c32-4942-a470-f43ec8434362"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="63e6d006-6926-4052-a183-2a85b1e7b12a"><pos X="224" Y="766"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="8a0909cc-68dc-41e0-8985-cc718b6532d7" textLabel="23" guiTextLabel_Element="e148126e-6416-4e67-adf6-b490ae0a6858"><pos X="-5" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="1dcd7d60-7118-42f5-8d8d-db6b8bd77f13" alignment="3"><pos X="224" Y="738"/></EndWaypoint><EndWaypoint uuid="df3ed6bd-256f-4fc6-9a9c-2651e4b972c6" alignment="2"><pos X="224" Y="795"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NoteLink uuid="72e96ed8-6c7c-4516-b935-1ecacafd7529" guiLineLink_LineBegin="cd704e89-0c60-4caf-bbbb-e6849fb4014d" guiLineLink_LineEnd="109f0bae-8c32-4942-a470-f43ec8434362"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="3836f5d8-9330-4a8b-8223-efdfb422fb93"><pos X="345" Y="810"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="045d5841-e80c-4277-b646-d3a8f690a3a7" alignment="1"><pos X="360" Y="810"/></EndWaypoint><EndWaypoint uuid="7017a080-6ed2-4cd3-8ee9-9da46a6464e2" alignment="4"><pos X="329" Y="810"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><LineLink uuid="16b5ebbc-c27f-4331-992c-ea3470d4f283" guiLink_Element="f537148e-c3d8-4fb8-922f-7016ce7bb539" guiLineLink_LineBegin="f1cdedd9-f959-41a8-8477-1bb8e3a0c6d6" guiLineLink_LineEnd="386ac6e0-5cac-48cf-81c7-98e2a1bfb8d6"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="aaeba4d7-9903-4b1e-94b9-d3761cbb7f19"><pos X="212" Y="122"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="56b259ae-70ed-48e0-9ad8-7912f980d7a5" textLabel="23" guiTextLabel_Element="f537148e-c3d8-4fb8-922f-7016ce7bb539"><pos X="23" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="00fa2a35-dcb9-4bea-b529-339fb9a5c190" alignment="3"><pos X="212" Y="79"/></EndWaypoint><EndWaypoint uuid="7447a217-9007-4ff7-8b9c-adb90f5dd6d3" alignment="2"><pos X="212" Y="165"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="04886513-a750-4892-96d9-7ef932ef9b83" guiLink_Element="a7e856ae-69b0-4db4-ba5c-2715b724ab1b"><nodeRect Left="405" Top="120" Right="708" Bottom="156"/></NodeLink><LineLink uuid="d6b4fe1a-20f0-4daa-befd-2806cadc81b6" guiLink_Element="5850f54e-ae20-4f99-9f2a-72f7af29cecf" guiLineLink_LineBegin="bc86a0ad-0734-45bd-a109-40a1ec914bf1" guiLineLink_LineEnd="ca4da6d9-ae84-4247-a402-f5c2c50476ac"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5ddfc15e-9ca0-4686-8403-e712bdb02e9a"><pos X="229" Y="379"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="1755b201-5d7a-494e-908c-a6e557a35cea" textLabel="23" guiTextLabel_Element="5850f54e-ae20-4f99-9f2a-72f7af29cecf"><pos X="15" Y="-10"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="8deb9d2e-5a8e-48bd-9d2e-4b826ad03dc0" alignment="3"><pos X="229" Y="338"/></EndWaypoint><EndWaypoint uuid="7ceec4d4-5e4d-485c-ba9c-ccf9f5dab4f0" alignment="2"><pos X="229" Y="420"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="0c8392c5-986a-473a-b6a4-25b4d6174e97" guiLink_Element="7af84d37-f159-4980-9a7e-3ea9bbfe5c55" guiLineLink_LineBegin="109f0bae-8c32-4942-a470-f43ec8434362" guiLineLink_LineEnd="386ac6e0-5cac-48cf-81c7-98e2a1bfb8d6"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1ea9c1e6-f327-4c91-8dc4-321a6f1c54c8"><pos X="63" Y="505"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="65867dfa-4d8d-440e-bf40-91b73305d468" textLabel="23" guiTextLabel_Element="7af84d37-f159-4980-9a7e-3ea9bbfe5c55"><pos X="2" Y="-18"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b5b2e3df-9e12-4483-a3a2-e0b227c50467" alignment="2"><pos X="136" Y="807"/></EndWaypoint><Waypoint uuid="aff52c31-1a83-47cb-8063-807733b022eb"><pos X="63" Y="807"/></Waypoint><Waypoint uuid="4f2195d0-ecba-42e8-991c-a2c1ba01f3ec"><pos X="63" Y="187"/></Waypoint><EndWaypoint uuid="0413c3df-6761-4c4b-9357-488eb89cc7a5" alignment="3"><pos X="120" Y="187"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="a1703119-f5be-4204-a2ed-0a4011315fa8" guiLink_Element="7a233271-de65-4065-adb7-628af310b3d2"><nodeRect Left="435" Top="375" Right="695" Bottom="408"/></SeparatedNodeLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="31f4145c-254f-4e5a-9941-8995e06d5047" name="Default"/></guiDiagramLayer></StateMachineDiagram><StateMachineDiagram uuid="c2820cc2-ddab-4040-92df-7919899d3f52" name="Cache" guiDiagramLinkedOwner="5745c3f1-b58c-49f2-aa8d-72f5208dd9b7"><guiDiagramGuiLink><Note uuid="c2a5b2cc-12f7-4603-8799-1843829c809a" noteText="Timeout ADU"><nodeRect Left="630" Top="330" Right="713" Bottom="351"/></Note><ConstrainedNode uuid="648a2472-4767-4132-9746-e6e4f4bb1ba3" constrainingAreaIndex="-1" guiLink_Element="9342d5e7-7fe3-4cad-84c6-bf0e42903fe2"><nodeRect Left="30" Top="-15" Right="50" Bottom="5"/><attached><AttachedNode uuid="6dca6cbc-3a69-418c-8166-1c5ec62f0d82" attachedNodeKind="13"><nodeRect Top="-45" Right="69" Bottom="-30"/></AttachedNode></attached></ConstrainedNode><ConstrainedNode uuid="a2a2d198-97c1-4fdf-af12-4109c8464606" constrainingAreaIndex="-1" guiLink_Element="5f8393e0-6ee7-481d-a9cc-78fb812d9eb4"><nodeRect Left="195" Top="120" Right="227" Bottom="152"/></ConstrainedNode><SeparatedNodeLink uuid="27ea7192-1506-4ada-a0a6-23c43954536d" guiLink_Element="ad90b780-a354-4e72-8162-e6bdc1bb5e31"><nodeRect Left="-120" Top="195" Right="135" Bottom="234"/></SeparatedNodeLink><LineLink uuid="89833d77-2859-4432-9996-82f439a38b9a" guiLink_Element="de5d5dfb-76ee-4c6b-aa5f-28d9d34e95b4" guiLineLink_LineBegin="a2a2d198-97c1-4fdf-af12-4109c8464606" guiLineLink_LineEnd="27ea7192-1506-4ada-a0a6-23c43954536d"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="4eb15747-7f0f-4abc-beee-df7e99157329"><pos X="47" Y="135"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="8ec4b2e2-d695-4b9d-b5a5-c17469147872" textLabel="23" guiTextLabel_Element="de5d5dfb-76ee-4c6b-aa5f-28d9d34e95b4"><pos X="-43" Y="-21"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="cc80938a-1204-4993-b7fb-d52811d2fb50" alignment="3"><pos X="196" Y="135"/></EndWaypoint><Waypoint uuid="1cc89227-066b-4650-a96b-2fe748886035"><pos X="-42" Y="135"/></Waypoint><EndWaypoint uuid="316f739c-6e91-466c-85c0-7ff8182e4c28" alignment="2"><pos X="-42" Y="195"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="f896cbcc-be95-4f44-a415-9eb5205c12fc" constrainingAreaIndex="-1" guiLink_Element="e70acb27-a8d4-491e-b8de-5b3305324ed8"><nodeRect Left="-60" Top="285" Right="-28" Bottom="317"/></ConstrainedNode><LineLink uuid="98a545ae-01c7-46e2-a4f8-cb6f8544bd40" guiLink_Element="a37a0480-3fb8-4d76-947e-c827ee2e1954" guiLineLink_LineBegin="27ea7192-1506-4ada-a0a6-23c43954536d" guiLineLink_LineEnd="f896cbcc-be95-4f44-a415-9eb5205c12fc"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="bed95c4e-344f-4b3f-9025-37e33a43d054"><pos X="-44" Y="259"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="2bee3332-bec1-4f84-958c-e78220282b2c" textLabel="23" guiTextLabel_Element="a37a0480-3fb8-4d76-947e-c827ee2e1954"><pos X="5" Y="-4"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="219d590a-9464-4353-b96c-464d01f668f4" alignment="3"><pos X="-44" Y="234"/></EndWaypoint><EndWaypoint uuid="d92fecb2-6013-48a3-b4e1-0e192eba634e" alignment="2"><pos X="-44" Y="285"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="7a3a2c25-6bd6-47dd-8541-6f765311f008" guiLink_Element="edb6fcbc-ee31-4b6d-b3d3-c01509ee1ded"><nodeRect Left="-120" Top="360" Right="142" Bottom="393"/></SeparatedNodeLink><LineLink uuid="9b1d1f08-65d1-49d8-ae38-b43da330fd94" guiLink_Element="7c60c48c-52fa-478c-8c2e-112598be5d58" guiLineLink_LineBegin="f896cbcc-be95-4f44-a415-9eb5205c12fc" guiLineLink_LineEnd="7a3a2c25-6bd6-47dd-8541-6f765311f008"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5e9d50d4-87eb-40c5-8546-de880f961ae0"><pos X="-44" Y="338"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="4c7573d6-294e-4a2f-bdd0-a4c7bdcf506c" textLabel="23" guiTextLabel_Element="7c60c48c-52fa-478c-8c2e-112598be5d58"><pos X="8" Y="-10"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b8a22027-103b-4aaa-b9b3-df25331c16da" alignment="3"><pos X="-44" Y="317"/></EndWaypoint><EndWaypoint uuid="655fa3e0-a2d5-4eeb-a785-30e5a632e3bc" alignment="2"><pos X="-44" Y="360"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="3ab71629-8247-4df6-8c54-0386826b537a" constrainingAreaIndex="-1" guiLink_Element="02f681de-3617-4b41-a81f-9749636f0a0c"><nodeRect Left="-45" Top="465" Right="-25" Bottom="485"/><attached><AttachedNode uuid="f6b203b8-997e-4ce5-9990-cf07e4a212bc" attachedNodeKind="13"><nodeRect Left="-105" Top="495" Right="59" Bottom="510"/></AttachedNode></attached></ConstrainedNode><LineLink uuid="00eceac8-f004-444b-9539-e0c1436dc3a2" guiLink_Element="19ee23fa-fc4e-4174-833a-c584439c4870" guiLineLink_LineBegin="7a3a2c25-6bd6-47dd-8541-6f765311f008" guiLineLink_LineEnd="3ab71629-8247-4df6-8c54-0386826b537a"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="e260dc24-4342-4218-a1a1-4a774615dc76"><pos X="-35" Y="429"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="0200bfe5-1184-4942-8655-934d5c049fc4" textLabel="23" guiTextLabel_Element="19ee23fa-fc4e-4174-833a-c584439c4870"><pos X="13" Y="-14"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="d97bb2fb-2cf7-419f-9ef0-5d4c7161e816" alignment="3"><pos X="-35" Y="393"/></EndWaypoint><EndWaypoint uuid="e6b75251-dd68-41f2-beba-8aa19d2709f2" alignment="2"><pos X="-35" Y="465"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="1010ea48-6bce-4536-9b91-41d8ab681b7b" guiLink_Element="20a95934-9259-4deb-8a5c-cbcdf7a02685"><style autosize="0"/><nodeRect Left="270" Top="180" Right="754" Bottom="433"/><guiNodeLinkGuiNodeLink><SeparatedNodeLink uuid="c397eb46-0f5e-4152-99f6-dff4ee4ee1c9" guiLink_Element="d3a9f819-76ba-413a-9a70-5f570d187b1a"><nodeRect Left="315" Top="210" Right="430" Bottom="243"/></SeparatedNodeLink><ConstrainedNode uuid="1d4c80c2-fdf3-4752-abd2-c446e55af919" guiLink_Element="5cd551f4-59b5-4549-a598-f37b9b1d55b8"><nodeRect Left="260" Top="215" Right="280" Bottom="235"/><constrainedPoint Y="28"/></ConstrainedNode><SeparatedNodeLink uuid="1dfe19b1-77dc-4a40-8017-e277c52ac663" guiLink_Element="c323828b-4ac5-440a-96d8-bbb51c3a2980"><nodeRect Left="510" Top="210" Right="691" Bottom="243"/></SeparatedNodeLink><ConstrainedNode uuid="aba492ee-09a0-46d2-952a-5a9e662958c5" constrainingAreaIndex="-1" guiLink_Element="9811f65d-fd8f-430f-b069-049ebac7f9d4"><nodeRect Left="570" Top="285" Right="602" Bottom="317"/></ConstrainedNode><ConstrainedNode uuid="077aae63-7a93-4d04-9fe4-2563a4b39e8b" constrainingAreaIndex="3" guiLink_Element="31fe1687-49fe-414a-a12c-3cdf19eb1630"><nodeRect Left="328" Top="423" Right="348" Bottom="443"/><constrainedPoint X="51"/></ConstrainedNode><SeparatedNodeLink uuid="e6df33e0-b8c1-4921-984a-72d63b475349" guiLink_Element="d24ba7b3-d937-4762-9683-c76c84b21066"><nodeRect Left="285" Top="270" Right="449" Bottom="317"/></SeparatedNodeLink><SeparatedNodeLink uuid="84a3ee5e-37a3-45eb-b041-e69a9a942c9c" guiLink_Element="fb25008f-7c15-4049-b0e4-df97f1936245"><nodeRect Left="495" Top="390" Right="684" Bottom="423"/></SeparatedNodeLink></guiNodeLinkGuiNodeLink></SeparatedNodeLink><LineLink uuid="7eafde8e-3edc-4306-b334-5e1c24fee5c0" guiLink_Element="b43853bc-9334-4785-bfdb-34687c7b744b" guiLineLink_LineBegin="a2a2d198-97c1-4fdf-af12-4109c8464606" guiLineLink_LineEnd="1010ea48-6bce-4536-9b91-41d8ab681b7b"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="b18a2646-1cc7-471b-a6a5-948f23536420"><pos X="306" Y="136"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="824ecef8-be05-4ab9-b47a-33543bb98c0e" textLabel="23" guiTextLabel_Element="b43853bc-9334-4785-bfdb-34687c7b744b"><pos X="-1" Y="-22"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="be50c994-9db1-4e25-83ce-772857d2718e" alignment="4"><pos X="227" Y="136"/></EndWaypoint><Waypoint uuid="f11dd727-4a2e-48b3-a126-a8eee53806bb"><pos X="342" Y="136"/></Waypoint><EndWaypoint uuid="84403787-3ce6-4f30-998b-aa3dbc0538f3" alignment="1"><pos X="342" Y="180"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="78eb2d52-e450-4db4-a33f-9634ce4ca282" guiLink_Element="35ae7c7c-03e6-42ab-a9be-41ff300d4f23" guiLineLink_LineBegin="1d4c80c2-fdf3-4752-abd2-c446e55af919" guiLineLink_LineEnd="c397eb46-0f5e-4152-99f6-dff4ee4ee1c9"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="08c1c7f0-d2f3-44a6-9013-72d3bed8bacd"><pos X="297" Y="225"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="0653e84e-dc9e-4140-80ad-c5c20acac8a8" textLabel="23" guiTextLabel_Element="35ae7c7c-03e6-42ab-a9be-41ff300d4f23"><pos X="-24" Y="-25"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="4b6358b8-caa8-4a35-ac11-ec59e061aa35" alignment="4"><pos X="280" Y="225"/></EndWaypoint><EndWaypoint uuid="715c7e85-d08f-4059-a209-321bd3d0818e" alignment="1"><pos X="315" Y="225"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="1459133d-af91-4c09-b226-373f6a20d930" guiLink_Element="8615626d-6c7e-40cb-bc6b-80833a92bd65" guiLineLink_LineBegin="c397eb46-0f5e-4152-99f6-dff4ee4ee1c9" guiLineLink_LineEnd="1dfe19b1-77dc-4a40-8017-e277c52ac663"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="776c2815-fa96-4b81-bfde-35eb0f726c12"><pos X="470" Y="226"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="86cab082-8b45-4ab3-9101-f35d0ad31c74" textLabel="23" guiTextLabel_Element="8615626d-6c7e-40cb-bc6b-80833a92bd65"><pos X="-28" Y="-21"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="be7c2575-c76a-4f4b-bb06-0ae6c2b511da" alignment="4"><pos X="430" Y="226"/></EndWaypoint><EndWaypoint uuid="b01c0d55-8005-4378-801e-942e81c8c1cb" alignment="1"><pos X="510" Y="226"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="f0b17a4f-54c8-46b3-a196-501f39747679" guiLink_Element="acd11b6d-bfef-468d-b142-1fc4dc1d8587" guiLineLink_LineBegin="1dfe19b1-77dc-4a40-8017-e277c52ac663" guiLineLink_LineEnd="aba492ee-09a0-46d2-952a-5a9e662958c5"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="7565e4b9-21a1-4f86-9e07-78f15420b076"><pos X="586" Y="264"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="7b9f29ee-8ce5-4ab2-b03e-07241758ae91" textLabel="23" guiTextLabel_Element="acd11b6d-bfef-468d-b142-1fc4dc1d8587"><pos X="12" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="35715c64-0c0f-4e72-b29a-5e884f0f05e5" alignment="3"><pos X="586" Y="243"/></EndWaypoint><EndWaypoint uuid="61109f87-5ed8-42b0-9072-401343db07f4" alignment="2"><pos X="586" Y="285"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="44cdf4aa-3747-4f4b-b745-2429cfff342d" guiLink_Element="be9f47ce-05fd-41fe-8624-280992b6573a"><nodeRect Left="660" Top="135" Right="723" Bottom="156"/></NodeLink><NoteLink uuid="f02ddedc-1bff-4b70-8d56-5d70d03ad762" guiLineLink_LineBegin="44cdf4aa-3747-4f4b-b745-2429cfff342d" guiLineLink_LineEnd="1dfe19b1-77dc-4a40-8017-e277c52ac663"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="8c6d3263-6fb5-41fd-ba7d-fc7238c13479"><pos X="660" Y="183"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="3059178d-e2ad-41c3-aa0c-c538596dfa76" alignment="3"><pos X="660" Y="156"/></EndWaypoint><EndWaypoint uuid="eeccf815-88b8-4bed-9033-c6c896124bd2" alignment="2"><pos X="660" Y="210"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><LineLink uuid="1d39b5af-644e-4449-9585-7b53250827c4" guiLink_Element="c44a3bc9-43ae-4f8d-995c-d2f869af10a9" guiLineLink_LineBegin="aba492ee-09a0-46d2-952a-5a9e662958c5" guiLineLink_LineEnd="e6df33e0-b8c1-4921-984a-72d63b475349"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="7ef3f04e-f0df-4bef-b67a-4b03e18b37df"><pos X="510" Y="301"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="ce67b42a-c3d3-4a2a-9c36-76894c72c6f1" textLabel="23" guiTextLabel_Element="c44a3bc9-43ae-4f8d-995c-d2f869af10a9"><pos X="-55" Y="-25"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="f09b73de-1c1e-43b2-a344-0e4df3ad97a8" alignment="1"><pos X="570" Y="301"/></EndWaypoint><EndWaypoint uuid="f087833e-d3cd-4bd3-9b83-a27fdff05f40" alignment="4"><pos X="449" Y="301"/></EndWaypoint></guiLineLinkWaypoint><guiLineConnectionWaypoint><LineConnectionWaypoint uuid="d19ec687-42be-4938-a8a3-e715ddf0d1f3" distanceFromBegin="0.603448"><pos X="496" Y="301"/></LineConnectionWaypoint><LineConnectionWaypoint uuid="4b58a39e-eb28-4048-a793-b96820711373" distanceFromBegin="0.370790"><pos X="525" Y="301"/></LineConnectionWaypoint></guiLineConnectionWaypoint></LineLink><NodeLink uuid="1cc1bd1c-d9f6-4c16-9abe-444092e7bc7c" guiLink_Element="0f988d89-9c6d-4246-8e47-136b629928be"><nodeRect Left="435" Top="330" Right="566" Bottom="381"/></NodeLink><NoteLink uuid="daf8229f-7096-4a1e-b86e-c7918aa9440b" guiLineLink_LineBegin="1cc1bd1c-d9f6-4c16-9abe-444092e7bc7c" guiLineLink_LineEnd="d19ec687-42be-4938-a8a3-e715ddf0d1f3"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1a3afc6f-0919-4e75-ae11-4bae3909daa3"><pos X="498" Y="316"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="35301f32-a828-4be0-89d3-c3b79db7a9ae"><pos X="498" Y="330"/></EndWaypoint><LineConnectionWaypoint idref="d19ec687-42be-4938-a8a3-e715ddf0d1f3"/></guiLineLinkWaypoint></NoteLink><NoteLink uuid="581bde76-0b2d-4ae0-9b62-fd448d2c0851" guiLineLink_LineBegin="c2a5b2cc-12f7-4603-8799-1843829c809a" guiLineLink_LineEnd="4b58a39e-eb28-4048-a793-b96820711373"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="d9e025a0-f0dc-464a-9839-ce0de19f34c5"><pos X="580" Y="316"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="43a58bb1-6b07-4aeb-a704-b89bce8981b9"><pos X="634" Y="330"/></EndWaypoint><LineConnectionWaypoint idref="4b58a39e-eb28-4048-a793-b96820711373"/></guiLineLinkWaypoint></NoteLink><LineLink uuid="b5e002de-a2dc-413f-9827-e7286f3a8d7a" guiLink_Element="4a860862-f48d-492a-8815-fb031789c6a2" guiLineLink_LineBegin="e6df33e0-b8c1-4921-984a-72d63b475349" guiLineLink_LineEnd="077aae63-7a93-4d04-9fe4-2563a4b39e8b"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1611817b-953a-492c-b35d-706730e74182"><pos X="337" Y="370"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="fd092c26-6b0d-4f7d-b660-613b0c26c60b" textLabel="23" guiTextLabel_Element="4a860862-f48d-492a-8815-fb031789c6a2"><pos X="6" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="a7baeaf3-efd6-4704-8baa-98ff6a366533" alignment="3"><pos X="337" Y="317"/></EndWaypoint><EndWaypoint uuid="702823ec-a8bd-42a9-9293-2018a5a25524" alignment="2"><pos X="337" Y="423"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="c944a874-f754-4f40-ab97-00dce8c59562" guiLink_Element="52a8d257-995c-4dd2-b9fe-886122df3d34"><nodeRect Left="570" Top="75" Right="734" Bottom="111"/></NodeLink><SeparatedNodeLink uuid="4762d6ad-5a99-4a7b-ac11-52fe0dcf3731" guiLink_Element="7654ce5d-6a93-41db-9a7a-cc3a1b4b7e19"><style autosize="0"/><nodeRect Left="270" Top="540" Right="690" Bottom="750"/><guiNodeLinkGuiNodeLink><ConstrainedNode uuid="d9c0e8af-bf5e-402c-a630-b104985d5d44" guiLink_Element="d07bdbfa-abcb-4bd3-9fb4-2d5471f6795b"><nodeRect Left="260" Top="580" Right="280" Bottom="600"/><constrainedPoint Y="33"/></ConstrainedNode><ConstrainedNode uuid="1b7e8830-e8b1-4ba2-84ba-656d9db3ae91" constrainingAreaIndex="-1" guiLink_Element="84ad7d1a-867d-40ed-b71a-5661fb936f36"><nodeRect Left="360" Top="570" Right="392" Bottom="602"/></ConstrainedNode><SeparatedNodeLink uuid="e38f45cd-58bf-41a2-b6f0-48e271b5aefd" guiLink_Element="7cd2f6e8-8ae2-4d3c-9a4f-cdf03d798775"><nodeRect Left="495" Top="570" Right="664" Bottom="617"/></SeparatedNodeLink><SeparatedNodeLink uuid="b9d4d1b4-684e-49b3-afff-cc6cf1f075ef" guiLink_Element="8910470d-7733-491b-ba8d-16f068259b5c"><nodeRect Left="345" Top="660" Right="544" Bottom="707"/></SeparatedNodeLink><ConstrainedNode uuid="5aef9e62-0a1b-40aa-ad1e-617338d2e157" constrainingAreaIndex="3" guiLink_Element="a2a66857-f6d6-47ef-b476-34067c2e2d71"><nodeRect Left="375" Top="740" Right="395" Bottom="760"/><constrainedPoint X="98" Y="-5"/></ConstrainedNode></guiNodeLinkGuiNodeLink></SeparatedNodeLink><SeparatedNodeLink uuid="59e6fc56-fe9e-4d30-a4a1-d418e936d72f" guiLink_Element="3f9b180b-39d1-4b97-bd41-e7a0319bd81c"><nodeRect Left="75" Top="285" Right="244" Bottom="332"/></SeparatedNodeLink><NoteLink uuid="9436832a-4fcd-46e0-b942-ed3c0674a74b" guiLineLink_LineBegin="c944a874-f754-4f40-ab97-00dce8c59562" guiLineLink_LineEnd="1010ea48-6bce-4536-9b91-41d8ab681b7b"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="beac7385-9b1a-4234-8200-039a228b6850"><pos X="652" Y="145"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="93661638-9871-4978-bcfd-f90ef2fcc8ba" alignment="3"><pos X="652" Y="111"/></EndWaypoint><EndWaypoint uuid="f0aeb1b3-168c-4259-a887-3f1d6cf0ccdb" alignment="2"><pos X="652" Y="180"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><LineLink uuid="69474122-c476-477d-8e09-dd94224ba4f3" guiLink_Element="bae050ba-d180-413c-b045-c7aaadb79d67" guiLineLink_LineBegin="f896cbcc-be95-4f44-a415-9eb5205c12fc" guiLineLink_LineEnd="59e6fc56-fe9e-4d30-a4a1-d418e936d72f"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="abaee205-f343-4b9f-930f-e2f8a93098f4"><pos X="23" Y="301"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="93bbcf28-e413-4fb2-a33c-b5f2f57178e3" textLabel="23" guiTextLabel_Element="bae050ba-d180-413c-b045-c7aaadb79d67"><pos X="-42" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="aa5062b0-879a-4308-ae0c-32a07171e4eb" alignment="4"><pos X="-28" Y="301"/></EndWaypoint><EndWaypoint uuid="19037a9d-b189-41a3-8458-c2cdfd78bb84" alignment="1"><pos X="75" Y="301"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="6ed97c52-22d7-4026-bf26-5cd8bf767cbc" guiLink_Element="36232051-6c92-4cc2-82fd-48af4f96b0fd" guiLineLink_LineBegin="59e6fc56-fe9e-4d30-a4a1-d418e936d72f" guiLineLink_LineEnd="1010ea48-6bce-4536-9b91-41d8ab681b7b"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="8757f69d-a008-4ab1-be0e-284e4e3ae4d5"><pos X="200" Y="168"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="5e43d26c-2fa7-4846-b30e-655fe6594d07" textLabel="23" guiTextLabel_Element="36232051-6c92-4cc2-82fd-48af4f96b0fd"><pos X="-73" Y="76"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="d9e2f5c0-6367-4aab-b4b4-d019a8c22fcf" alignment="4"><pos X="200" Y="285"/></EndWaypoint><Waypoint uuid="167bb64e-183a-4209-a9c1-f09b8c73f27e"><pos X="200" Y="159"/></Waypoint><Waypoint uuid="c10e23ec-be98-4a9d-a99a-4812fec8af7c"><pos X="288" Y="159"/></Waypoint><EndWaypoint uuid="299814a2-8cb7-4bc9-8fff-9799ab05b145" alignment="1"><pos X="288" Y="180"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="1e31b6f7-9e0c-4686-a1da-11266709c36c" guiLink_Element="d4e20c3b-c3e0-4203-8171-4492abc544b1" guiLineLink_LineBegin="d9c0e8af-bf5e-402c-a630-b104985d5d44" guiLineLink_LineEnd="1b7e8830-e8b1-4ba2-84ba-656d9db3ae91"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="0dca6d03-0d50-4502-99e5-b57c7e6b354a"><pos X="320" Y="587"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="d6acdf39-c3fb-4b13-a655-82ba916e60c9" textLabel="23" guiTextLabel_Element="d4e20c3b-c3e0-4203-8171-4492abc544b1"><pos X="-34" Y="-19"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="7367fe71-07e6-4f33-af63-f0d91839f45a" alignment="4"><pos X="279" Y="587"/></EndWaypoint><EndWaypoint uuid="e1eaf014-1f00-4e6e-8cc7-107835fde147" alignment="1"><pos X="362" Y="587"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="5c23157e-38f1-46dd-9bc2-494d21293c1b" constrainingAreaIndex="-1" guiLink_Element="de156772-954c-4bd6-972c-f4262f000c06"><nodeRect Left="120" Top="-15" Right="152" Bottom="17"/></ConstrainedNode><LineLink uuid="5b321070-5246-4dfe-bd6e-a5014a0b351a" guiLink_Element="c06aecc1-4f6f-40ee-8b49-27c70eeda9de" guiLineLink_LineBegin="648a2472-4767-4132-9746-e6e4f4bb1ba3" guiLineLink_LineEnd="5c23157e-38f1-46dd-9bc2-494d21293c1b"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="623019ca-da8c-4bb8-b4c4-b4ae16997e06"><pos X="88" Y="-5"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="28c605ff-3363-46e5-879d-47479d01025f" alignment="4"><pos X="50" Y="-5"/></EndWaypoint><EndWaypoint uuid="b850b7de-de6e-40bb-a006-050785df9b5b" alignment="1"><pos X="126" Y="-5"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="df92665b-817a-434b-ad2b-ef68d6839f65" guiLink_Element="82cb4b87-5bba-4e86-a798-660959d7b302" guiLineLink_LineBegin="5c23157e-38f1-46dd-9bc2-494d21293c1b" guiLineLink_LineEnd="a2a2d198-97c1-4fdf-af12-4109c8464606"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1c4bdac3-877f-4e89-9991-1eac9f0e962f"><pos X="211" Y="31"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="729bb2d1-4975-4e16-8c84-968d5265b4d0" textLabel="23" guiTextLabel_Element="82cb4b87-5bba-4e86-a798-660959d7b302"><pos X="26" Y="-8"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="c30cbf91-3ce8-44a9-afe9-b35972f55d01" alignment="3"><pos X="152" Y="2"/></EndWaypoint><Waypoint uuid="d82b67d2-193c-4c6c-a8c4-a416cb8671fd"><pos X="211" Y="2"/></Waypoint><EndWaypoint uuid="76416a25-7e65-4c75-9512-4e5f5b215581" alignment="2"><pos X="211" Y="120"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="482d5163-1be4-4188-8a08-00e94413d105" guiLink_Element="14591504-da98-41e8-bce6-ba50f9a67e07" guiLineLink_LineBegin="1b7e8830-e8b1-4ba2-84ba-656d9db3ae91" guiLineLink_LineEnd="e38f45cd-58bf-41a2-b6f0-48e271b5aefd"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="707bf004-7bff-4476-b098-1ffa7b669c50"><pos X="442" Y="583"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="83df59b6-8daf-453b-ac63-abe0bb98d58b" textLabel="23" guiTextLabel_Element="14591504-da98-41e8-bce6-ba50f9a67e07"><pos X="-60" Y="-22"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6541167b-9cd0-4579-88d3-5bbfb6a338fe" alignment="4"><pos X="389" Y="583"/></EndWaypoint><EndWaypoint uuid="f84e98c4-42db-421f-ac85-f3ffb5536c74" alignment="1"><pos X="495" Y="583"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="bd18668e-00e0-451c-8a66-f78cc8cd55f2" guiLink_Element="6d0144dd-96a4-427d-8a9b-f92dea5b8f9c" guiLineLink_LineBegin="e38f45cd-58bf-41a2-b6f0-48e271b5aefd" guiLineLink_LineEnd="1b7e8830-e8b1-4ba2-84ba-656d9db3ae91"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="afa769af-3575-4b14-8a27-6c8c655a1a1b"><pos X="463" Y="630"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="590ffee3-e440-492c-8e57-f73f53cea3b8" textLabel="23" guiTextLabel_Element="6d0144dd-96a4-427d-8a9b-f92dea5b8f9c"><pos X="-39" Y="9"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="0b38f268-728e-4272-8b62-a0badeb225eb" alignment="1"><pos X="564" Y="617"/></EndWaypoint><Waypoint uuid="192d4e72-faa6-4bd4-acab-a1b6f9028252"><pos X="564" Y="630"/></Waypoint><Waypoint uuid="aa310b54-361a-432e-8fe0-1db9075d8ed5"><pos X="388" Y="630"/></Waypoint><EndWaypoint uuid="7bff49a4-2f3c-4050-9f6b-afd58e1429ef" alignment="4"><pos X="388" Y="590"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="d9eb1321-34f1-42b5-b4d1-085954ea6878" guiLink_Element="a969e9ae-bdb4-4fc0-b275-3652e6fc0e2c" guiLineLink_LineBegin="1b7e8830-e8b1-4ba2-84ba-656d9db3ae91" guiLineLink_LineEnd="b9d4d1b4-684e-49b3-afff-cc6cf1f075ef"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="97d6fcb3-9546-42b8-a1be-8cd104bebe0e"><pos X="377" Y="630"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f096fc23-cf0b-4313-a22a-489ece1dc226" textLabel="23" guiTextLabel_Element="a969e9ae-bdb4-4fc0-b275-3652e6fc0e2c"><pos X="-61" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="d5c4b295-4e79-4ba0-89cc-be535c0d79e5" alignment="3"><pos X="377" Y="601"/></EndWaypoint><EndWaypoint uuid="bc7a73ae-63c2-42d9-b9a1-f325e558916c" alignment="2"><pos X="377" Y="660"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="ae93cc90-049b-4cb2-8d57-1afe6bdb4dd1" guiLink_Element="6a7b3f9a-4ae0-4db3-b30a-6423ed12213c" guiLineLink_LineBegin="b9d4d1b4-684e-49b3-afff-cc6cf1f075ef" guiLineLink_LineEnd="5aef9e62-0a1b-40aa-ad1e-617338d2e157"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="d6160a1e-8b66-469f-8443-210d381a4cc5"><pos X="384" Y="723"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="989d2e0d-cc7e-43e1-b5c3-aebf3d196974" textLabel="23" guiTextLabel_Element="6a7b3f9a-4ae0-4db3-b30a-6423ed12213c"><pos X="10" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="4f415314-a62a-4e72-9430-c81916eb4cd9" alignment="3"><pos X="384" Y="707"/></EndWaypoint><EndWaypoint uuid="bf29d617-29bb-4781-a9ba-3ef6cfd20ba6" alignment="2"><pos X="384" Y="740"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="fd96e6a9-bdd5-4561-85a5-d67158810ecf" guiLink_Element="f45428de-0f91-4345-a8bf-22caef007be0"><nodeRect Left="585" Top="660" Right="747" Bottom="711"/></NodeLink><NoteLink uuid="31edb2ec-7bd4-4c14-8655-d53c4bc3b8ba" guiLineLink_LineBegin="fd96e6a9-bdd5-4561-85a5-d67158810ecf" guiLineLink_LineEnd="b9d4d1b4-684e-49b3-afff-cc6cf1f075ef"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="786a33a6-9451-47ec-b8a4-4a43276b5bab"><pos X="565" Y="685"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="01270159-941e-464e-b908-d1a1ba6ddfa4" alignment="4"><pos X="585" Y="685"/></EndWaypoint><EndWaypoint uuid="c65e44e9-3d99-4a27-8f56-0ea4525309bb" alignment="1"><pos X="544" Y="685"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><LineLink uuid="8e19fde8-26cb-47ec-a1a1-794f80c38d9a" guiLink_Element="999f404d-7b8c-4c88-bce6-4bb49bfff8ef" guiLineLink_LineBegin="077aae63-7a93-4d04-9fe4-2563a4b39e8b" guiLineLink_LineEnd="3ab71629-8247-4df6-8c54-0386826b537a"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5f2425c9-6fc9-4d24-bc2f-61ccc52dda5b"><pos X="171" Y="475"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="89204f7a-6503-4ece-9b1a-06e180228ba4" textLabel="23" guiTextLabel_Element="999f404d-7b8c-4c88-bce6-4bb49bfff8ef"><pos X="-5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="4cf0bd0c-116a-43a3-9b76-285db9d0ebc6" alignment="1"><pos X="329" Y="437"/></EndWaypoint><Waypoint uuid="4eccaa5e-7c9f-4891-a059-0523ead27d9d"><pos X="329" Y="475"/></Waypoint><EndWaypoint uuid="694e68fb-e687-46ea-8919-c1d5439ba79d" alignment="4"><pos X="-25" Y="475"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="f5a6a8e6-4f54-457e-9026-c14c785b576a" guiLink_Element="7328715a-8621-4a33-a6c0-d6ecbf892fab"><nodeRect Left="-285" Top="45" Right="-58" Bottom="78"/></SeparatedNodeLink><LineLink uuid="e5255036-abf1-4f21-ae24-acde60ae948d" guiLink_Element="348bb2ce-2111-4d28-890d-c45828c707ff" guiLineLink_LineBegin="5c23157e-38f1-46dd-9bc2-494d21293c1b" guiLineLink_LineEnd="f5a6a8e6-4f54-457e-9026-c14c785b576a"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="b4c11155-da3e-47f0-9ead-560a1e27b551"><pos X="61" Y="61"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="a67b3025-08bf-40d1-bc9f-44c294a5868a" textLabel="23" guiTextLabel_Element="348bb2ce-2111-4d28-890d-c45828c707ff"><pos X="-5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="f1eea3c3-3830-48e8-b4ce-880c6dea0d97" alignment="1"><pos X="135" Y="17"/></EndWaypoint><Waypoint uuid="c006b026-dcc1-4861-9078-dc82fb1d029c"><pos X="135" Y="61"/></Waypoint><EndWaypoint uuid="56071bee-056d-4fe5-bc99-17d85d517619" alignment="4"><pos X="-58" Y="61"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="a4028cee-6c36-4e70-9bfa-80d692d1eec1" guiLink_Element="d7eb381c-5506-48cb-b228-ba50c859cc84" guiLineLink_LineBegin="f5a6a8e6-4f54-457e-9026-c14c785b576a" guiLineLink_LineEnd="3ab71629-8247-4df6-8c54-0386826b537a"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="40c2b24d-674e-4274-8e31-8497a1ed563d"><pos X="-194" Y="349"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="69ee96ad-03fe-44c5-bca8-1eddc0fa5088" textLabel="23" guiTextLabel_Element="d7eb381c-5506-48cb-b228-ba50c859cc84"><pos X="-132" Y="-50"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="40aa79e2-c3c4-4feb-9425-55db681ca64d" alignment="3"><pos X="-194" Y="78"/></EndWaypoint><Waypoint uuid="65dc377a-18ba-467e-b432-baf9ff45193b"><pos X="-194" Y="469"/></Waypoint><EndWaypoint uuid="80991b98-2da5-419d-aab0-013971f28504" alignment="2"><pos X="-43" Y="469"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="894e53a7-8d92-409b-8678-bff12e829518" guiLink_Element="38f2734e-4243-4e6f-8bd4-8a66d7d6efcd" guiLineLink_LineBegin="aba492ee-09a0-46d2-952a-5a9e662958c5" guiLineLink_LineEnd="84a3ee5e-37a3-45eb-b041-e69a9a942c9c"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="97a73563-9e84-478f-a270-8ce066ed3787"><pos X="587" Y="353"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="c712d544-bc8c-4b37-a47e-89a141917b86" textLabel="23" guiTextLabel_Element="38f2734e-4243-4e6f-8bd4-8a66d7d6efcd"><pos X="6" Y="9"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="407ed4fb-5672-4596-b72a-3a84e808a424" alignment="3"><pos X="587" Y="316"/></EndWaypoint><EndWaypoint uuid="ffa8b1a9-0c3a-4266-90bc-7ebab38cf9f2" alignment="2"><pos X="587" Y="390"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="7dd4f5eb-ca7c-4ad0-96a5-b29fd66af89f" guiLink_Element="d01f46f7-3755-4035-aa49-2aa7d79def07" guiLineLink_LineBegin="84a3ee5e-37a3-45eb-b041-e69a9a942c9c" guiLineLink_LineEnd="077aae63-7a93-4d04-9fe4-2563a4b39e8b"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="0924079c-780a-4449-a670-8f1971edb116"><pos X="422" Y="418"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="0abbaeeb-4f4d-41ed-9d05-435d0ec277b6" textLabel="23" guiTextLabel_Element="d01f46f7-3755-4035-aa49-2aa7d79def07"><pos X="-43" Y="-28"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="8121af2e-5988-4472-93c5-10f7f4aa1bef" alignment="1"><pos X="495" Y="406"/></EndWaypoint><Waypoint uuid="f0829d31-faa7-4fed-9602-74aeb261f3c1"><pos X="422" Y="406"/></Waypoint><Waypoint uuid="9821565b-4589-432d-85e4-a43db3992a18"><pos X="422" Y="420"/></Waypoint><Waypoint uuid="eb5c5b43-6f08-43df-9fb5-81dc1981c1b6"><pos X="346" Y="420"/></Waypoint><EndWaypoint uuid="867e2abb-07a1-4080-bf24-69c9f84f8e78" alignment="4"><pos X="346" Y="427"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="25c47634-8c66-491e-a92e-0c567c3dea66" name="Default"/></guiDiagramLayer></StateMachineDiagram><StateMachineDiagram uuid="2ed311c6-44e5-46a8-a5c3-940ac1aa84e2" name="Transmission avec QoS" guiDiagramLinkedOwner="fcf9db65-f5f7-41c7-a3e8-565f6b27031d"><guiDiagramGuiLink><Note uuid="e04d6bf8-8fa4-4a5f-9d3b-9a04ce9583d2" noteText="Taille du fragment ADU"><nodeRect Left="465" Top="150" Right="595" Bottom="171"/></Note><ConstrainedNode uuid="4d81f601-f5f6-4c61-ad43-231e679f3603" constrainingAreaIndex="-1" guiLink_Element="6b617870-58cc-4b96-9f08-0afafe945784"><nodeRect Left="105" Top="75" Right="125" Bottom="95"/><attached><AttachedNode uuid="51a87e5a-359d-4975-85a0-03639d3c4cc2" attachedNodeKind="13"><nodeRect Left="45" Top="75" Right="89" Bottom="90"/></AttachedNode></attached></ConstrainedNode><NodeLink uuid="15cf264c-f6c8-424a-9f11-02acef42b26b" guiLink_Element="279e4284-8f0a-4c21-b03d-b339df83e4cf"><nodeRect Left="30" Top="30" Right="224" Bottom="51"/></NodeLink><SeparatedNodeLink uuid="746010d2-2fa4-43f3-99c0-2d3a55f9b347" guiLink_Element="4a0c2a5a-3e0c-49f2-ae2a-fc9756d3e750"><nodeRect Left="210" Top="150" Right="422" Bottom="183"/></SeparatedNodeLink><LineLink uuid="f9f35663-000a-4b3e-9be7-4c79c05f1562" guiLink_Element="da99de25-c84b-4ba4-9a9c-618d79c2bc52" guiLineLink_LineBegin="4d81f601-f5f6-4c61-ad43-231e679f3603" guiLineLink_LineEnd="3b4ce5f6-6f88-48a1-9df2-aa35b1231381"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="22075f96-1af0-4d15-93b4-013f717cd156"><pos X="167" Y="85"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f09a4cf3-1f41-4a17-91a9-dcebd4962e5f" textLabel="23" guiTextLabel_Element="da99de25-c84b-4ba4-9a9c-618d79c2bc52"><pos X="-18" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="ac17acff-8ed8-43b3-836b-e45964f97858" alignment="4"><pos X="125" Y="85"/></EndWaypoint><EndWaypoint uuid="78f51f9d-d0c7-485d-ab65-075f56f2149b" alignment="1"><pos X="210" Y="85"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NoteLink uuid="86de2260-8cc2-4e2e-8f11-eb1a5ed9eceb" guiLineLink_LineBegin="e04d6bf8-8fa4-4a5f-9d3b-9a04ce9583d2" guiLineLink_LineEnd="746010d2-2fa4-43f3-99c0-2d3a55f9b347"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="829c9229-2238-415e-bf58-3ef567cea736"><pos X="443" Y="161"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="7faada1f-4c04-4cc2-9187-0cbc01c6ebba" alignment="1"><pos X="465" Y="161"/></EndWaypoint><EndWaypoint uuid="d8be5bb2-fecd-4957-b2cc-ec6a140dbfa9" alignment="4"><pos X="421" Y="161"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><SeparatedNodeLink uuid="63dd51af-3e8d-42e0-9f38-b4e07873eb6f" guiLink_Element="714ccc86-a304-4b3f-b84d-06a393a92ca3"><nodeRect Left="240" Top="225" Right="385" Bottom="258"/></SeparatedNodeLink><LineLink uuid="a1db0d43-303a-4ee1-b821-8a01ed5bd6d6" guiLink_Element="707cbd56-0893-46e0-baf4-64db2e085dd6" guiLineLink_LineBegin="746010d2-2fa4-43f3-99c0-2d3a55f9b347" guiLineLink_LineEnd="63dd51af-3e8d-42e0-9f38-b4e07873eb6f"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="6f501d02-fd25-4c95-9734-b1662ee47f8e"><pos X="312" Y="204"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="e30bef5d-eee3-4888-a378-acd58a8ba2db" textLabel="23" guiTextLabel_Element="707cbd56-0893-46e0-baf4-64db2e085dd6"><pos X="14" Y="-9"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="7a18f690-29be-40eb-abb2-160f9b194e5b" alignment="3"><pos X="312" Y="183"/></EndWaypoint><EndWaypoint uuid="5fb3adc2-107f-487b-b16e-eb74461e3a62" alignment="2"><pos X="312" Y="225"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="3e946740-1e97-4664-9942-e0fbc0f77941" constrainingAreaIndex="-1" guiLink_Element="9f07c4a8-50e2-4a31-88c5-6a600abc9064"><nodeRect Left="300" Top="300" Right="332" Bottom="332"/></ConstrainedNode><LineLink uuid="02661e8a-3af7-4372-ab96-a603ff0842f0" guiLink_Element="206a9840-c301-43e6-a6a8-7f9ce35daa11" guiLineLink_LineBegin="63dd51af-3e8d-42e0-9f38-b4e07873eb6f" guiLineLink_LineEnd="3e946740-1e97-4664-9942-e0fbc0f77941"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1bac5e81-5719-4881-86b6-227e5566d621"><pos X="316" Y="279"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f600d480-1902-48bf-82fe-0a285bfe222a" textLabel="23" guiTextLabel_Element="206a9840-c301-43e6-a6a8-7f9ce35daa11"><pos X="14" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="2ebaba8e-56d0-4648-a97b-4daaf306d687" alignment="3"><pos X="316" Y="258"/></EndWaypoint><EndWaypoint uuid="9fc6120c-8b70-4fbe-97a9-548ffa9e4042" alignment="2"><pos X="316" Y="300"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="046d3379-a9dd-4d18-b1af-c28eb9e13f8a" guiLink_Element="575690dd-eb6f-4412-8dea-f511710163dd"><nodeRect Left="450" Top="225" Right="646" Bottom="246"/></NodeLink><NoteLink uuid="3d61b982-8c9e-44fd-856b-706f2dd96266" guiLineLink_LineBegin="046d3379-a9dd-4d18-b1af-c28eb9e13f8a" guiLineLink_LineEnd="63dd51af-3e8d-42e0-9f38-b4e07873eb6f"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1ecba228-af3a-4f5b-ab0d-fbf198bd9480"><pos X="417" Y="235"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="f34ea0da-1f90-48f9-801a-f6a06d87b7c8" alignment="1"><pos X="450" Y="235"/></EndWaypoint><EndWaypoint uuid="b8cf71b0-cda5-4dc0-9b76-28505f7a53bc" alignment="4"><pos X="383" Y="235"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><ConstrainedNode uuid="0598a13d-d98d-48ff-aada-4b01e5e65d6b" constrainingAreaIndex="-1" guiLink_Element="3e0c8153-564d-49d7-8e60-dceb1bdadea6"><nodeRect Left="330" Top="570" Right="362" Bottom="602"/></ConstrainedNode><LineLink uuid="292707fd-bc0e-4d40-b111-fa1aed1204e5" guiLink_Element="c3f921ae-c6a6-4c3e-9b55-bc23740c9c70" guiLineLink_LineBegin="3e946740-1e97-4664-9942-e0fbc0f77941" guiLineLink_LineEnd="48784989-0cc7-4947-aab6-c7416f81b807"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="3522ac1e-6f59-403a-893c-e41224714ab2"><pos X="302" Y="369"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="a559e5e1-e891-436d-a8dc-0b7fc1ec84b6" textLabel="23" guiTextLabel_Element="c3f921ae-c6a6-4c3e-9b55-bc23740c9c70"><pos X="6" Y="-8"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="e8978d32-7c2d-4fda-9ee0-05881d1374c9" alignment="3"><pos X="302" Y="319"/></EndWaypoint><EndWaypoint uuid="c3ce509a-7039-40a1-ae76-6e6c520577ba" alignment="2"><pos X="302" Y="420"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="dcb715eb-4d5f-46c1-b32e-40dc6b0e7ec2" guiLink_Element="74ffe897-fc69-46fe-abf5-f01e9061f6ac"><nodeRect Left="465" Top="360" Right="532" Bottom="393"/></SeparatedNodeLink><LineLink uuid="5c8e5293-ee98-4c7a-80b4-d51071b647b2" guiLink_Element="fcc252ec-0282-42d8-81eb-4120a110c2e5" guiLineLink_LineBegin="3e946740-1e97-4664-9942-e0fbc0f77941" guiLineLink_LineEnd="dcb715eb-4d5f-46c1-b32e-40dc6b0e7ec2"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="08a507da-da80-43e1-8322-15b305a0bd8a"><pos X="433" Y="316"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="7e7ca530-9356-4eeb-ba6c-49519e62404d" textLabel="23" guiTextLabel_Element="fcc252ec-0282-42d8-81eb-4120a110c2e5"><pos X="-5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="f124f325-55ab-40e0-b3c1-450466c34423" alignment="4"><pos X="332" Y="316"/></EndWaypoint><Waypoint uuid="9109cfda-82d3-4a80-b7db-0f664340fdb5"><pos X="490" Y="316"/></Waypoint><EndWaypoint uuid="7e705a0d-5690-4372-8eb9-c4649ad33099" alignment="1"><pos X="490" Y="360"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="ac15aaff-deea-444e-b8f4-1c0ecc7edc62" guiLink_Element="6f6f41a8-bf80-43e3-9402-3941486c9b9e" guiLineLink_LineBegin="dcb715eb-4d5f-46c1-b32e-40dc6b0e7ec2" guiLineLink_LineEnd="48784989-0cc7-4947-aab6-c7416f81b807"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="6d8bfee5-69c7-4a82-af03-7be425ec4015"><pos X="496" Y="427"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="fb61d432-bc58-4457-babc-6ccead213b00" textLabel="23" guiTextLabel_Element="6f6f41a8-bf80-43e3-9402-3941486c9b9e"><pos X="18" Y="-10"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="9efce0e8-8d26-4cde-a1db-1b1d1b7a3159" alignment="1"><pos X="496" Y="393"/></EndWaypoint><Waypoint uuid="9728d666-23f2-49d4-9442-1cb12c488771"><pos X="496" Y="434"/></Waypoint><EndWaypoint uuid="10cec02e-9fa7-4338-bf09-b99a06062c60" alignment="4"><pos X="469" Y="434"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="02b123b4-2e3a-43e4-91dc-e33ee3c95b87" guiLink_Element="dd335b6d-e834-45b7-8e44-640f7451cd2d"><nodeRect Left="570" Top="360" Right="798" Bottom="396"/></NodeLink><NoteLink uuid="5a5815f1-6866-4471-85ad-02c8682074a3" guiLineLink_LineBegin="02b123b4-2e3a-43e4-91dc-e33ee3c95b87" guiLineLink_LineEnd="dcb715eb-4d5f-46c1-b32e-40dc6b0e7ec2"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="d69d557e-b5ac-4719-892c-48b04c1380fa"><pos X="551" Y="376"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6daeadad-153b-4fc5-8b2d-42925f3bdf21" alignment="1"><pos X="570" Y="376"/></EndWaypoint><EndWaypoint uuid="ed68654d-3931-48b0-b21e-d9e6473a87f4" alignment="4"><pos X="532" Y="376"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><ConstrainedNode uuid="51f5f192-bfde-44bd-b64c-45911c57a00c" constrainingAreaIndex="-1" guiLink_Element="40c3d205-b181-487e-9095-7adbad0c07ee"><nodeRect Left="330" Top="645" Right="350" Bottom="665"/><attached><AttachedNode uuid="f5a13a48-b930-4a88-9b7a-be82b0d7ccf0" attachedNodeKind="13"><nodeRect Left="300" Top="675" Right="395" Bottom="690"/></AttachedNode></attached></ConstrainedNode><LineLink uuid="416ca6c3-2e98-49c0-81c2-6c09d0eb23e5" guiLink_Element="b4c4ca8e-2a83-46cd-ba7f-c209189ab828" guiLineLink_LineBegin="0598a13d-d98d-48ff-aada-4b01e5e65d6b" guiLineLink_LineEnd="51f5f192-bfde-44bd-b64c-45911c57a00c"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="1e7de252-ea14-4ae9-b15a-d0a7e18248fa"><pos X="343" Y="622"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="42534d60-14ca-49b6-9011-90018c91bdd3" textLabel="23" guiTextLabel_Element="b4c4ca8e-2a83-46cd-ba7f-c209189ab828"><pos X="18" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b0d20426-8150-4db1-88fd-cadb782c1e29" alignment="3"><pos X="343" Y="600"/></EndWaypoint><EndWaypoint uuid="ea3ae851-2688-49c6-8581-36e7ecf7a1c6" alignment="2"><pos X="343" Y="645"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="0f0a9e1b-eac1-49b8-b1c5-1de991a0ca90" guiLink_Element="c3bc1d98-ec6d-440d-ae0a-807b12404ab2" guiLineLink_LineBegin="0598a13d-d98d-48ff-aada-4b01e5e65d6b" guiLineLink_LineEnd="746010d2-2fa4-43f3-99c0-2d3a55f9b347"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="fd896ef7-0707-4a7c-96d2-e5e2a212fb63"><pos X="176" Y="439"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="e4f32e3f-cc65-4ea3-87ad-37e24cfc5671" textLabel="23" guiTextLabel_Element="c3bc1d98-ec6d-440d-ae0a-807b12404ab2"><pos X="-118" Y="-15"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="045e9028-a0bc-46a3-94c8-084d5042c22f" alignment="2"><pos X="330" Y="586"/></EndWaypoint><Waypoint uuid="a0dd26b9-ae34-4ade-9433-40005ba48c4f"><pos X="176" Y="586"/></Waypoint><Waypoint uuid="e08e8ec7-de1c-47d7-af64-037cf3e07fda"><pos X="176" Y="219"/></Waypoint><Waypoint uuid="ce4a88c0-eedb-4839-b83f-1c677ed6e945"><pos X="220" Y="219"/></Waypoint><EndWaypoint uuid="0a92aaf4-684b-48b2-a417-025819921fce" alignment="3"><pos X="220" Y="182"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="ab648ead-ca93-4591-bc6e-8bac3162502c" guiLink_Element="51a1a782-bf9b-4146-bd20-a9907c585df5"><nodeRect Left="255" Top="510" Right="441" Bottom="543"/></SeparatedNodeLink><LineLink uuid="672dd657-13c3-4b4c-a502-d2435c68321c" guiLink_Element="e50f2dc8-1121-4a87-96f4-2cb8491e2a18" guiLineLink_LineBegin="ab648ead-ca93-4591-bc6e-8bac3162502c" guiLineLink_LineEnd="0598a13d-d98d-48ff-aada-4b01e5e65d6b"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="2dcfb408-f605-4b09-b752-4b12761c786f"><pos X="344" Y="558"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="5f0c2af3-fa6b-41f5-8a90-70633978049a" textLabel="23" guiTextLabel_Element="e50f2dc8-1121-4a87-96f4-2cb8491e2a18"><pos X="9" Y="-6"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="008bc313-3079-47a3-93e9-beb2a71cf5a5" alignment="3"><pos X="344" Y="543"/></EndWaypoint><EndWaypoint uuid="83c47c30-66c2-4580-83a3-b020a7c81351" alignment="2"><pos X="344" Y="573"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="3b4ce5f6-6f88-48a1-9df2-aa35b1231381" guiLink_Element="8517459d-feb7-4f1b-a192-b5c3aca73a5b"><nodeRect Left="210" Top="60" Right="449" Bottom="107"/></SeparatedNodeLink><LineLink uuid="b68a9b84-5d26-4dfb-b4c2-1542c213336a" guiLink_Element="8e7122a1-a68a-43e6-83f2-15a14f800f12" guiLineLink_LineBegin="3b4ce5f6-6f88-48a1-9df2-aa35b1231381" guiLineLink_LineEnd="746010d2-2fa4-43f3-99c0-2d3a55f9b347"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="687ca4de-cd03-40d4-a064-e52301a61b43"><pos X="316" Y="128"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="ab3e5297-f39b-48ec-a54b-f8bda4d784e8" textLabel="23" guiTextLabel_Element="8e7122a1-a68a-43e6-83f2-15a14f800f12"><pos X="23" Y="-8"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="5d25d4ca-e9cf-44e2-93b6-65744baf34cf" alignment="3"><pos X="316" Y="107"/></EndWaypoint><EndWaypoint uuid="54105a6a-a748-4399-89e7-bc61687cd0f1" alignment="2"><pos X="316" Y="150"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="48784989-0cc7-4947-aab6-c7416f81b807" guiLink_Element="78b85641-685f-4682-a36f-b5289b0ed9c1"><nodeRect Left="255" Top="420" Right="469" Bottom="467"/></SeparatedNodeLink><LineLink uuid="eb4e1fb0-4b49-46ca-8b03-e8bd92d82193" guiLink_Element="95d15365-dff5-4226-be76-6f8269f814ca" guiLineLink_LineBegin="48784989-0cc7-4947-aab6-c7416f81b807" guiLineLink_LineEnd="ab648ead-ca93-4591-bc6e-8bac3162502c"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="8fa8a7b3-a7a0-4e95-a0c3-7545634425b2"><pos X="355" Y="488"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="d4fd2e96-7626-4a6d-9663-15ddca9f700b" textLabel="23" guiTextLabel_Element="95d15365-dff5-4226-be76-6f8269f814ca"><pos X="23" Y="-8"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="5360d184-28cd-42d3-a1f3-eb2daf1cf6df" alignment="3"><pos X="355" Y="467"/></EndWaypoint><EndWaypoint uuid="1de65eef-30e4-4a61-aa89-c13ada20cb8b" alignment="2"><pos X="355" Y="510"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="b8835997-1cb6-490c-a8f3-0ffa1fa8a41f" name="Default"/></guiDiagramLayer></StateMachineDiagram><StateMachineDiagram uuid="46283dc7-218a-4542-a566-25bec1336faa" name="Reception avec QoS et cache" guiDiagramLinkedOwner="c9e7329d-3b84-4fdb-89ce-8fe790bc6cc1"><guiDiagramGuiLink><ConstrainedNode uuid="2f245a64-a9de-4dc0-af4b-5a9025825b2d" constrainingAreaIndex="-1" guiLink_Element="b2c359cd-df2f-4de9-8a9c-c8157ac0232e"><nodeRect Left="61" Top="58" Right="81" Bottom="78"/><attached><AttachedNode uuid="46886d5f-a236-49a9-9931-6aac6d2ae976" attachedNodeKind="13"><nodeRect Left="30" Top="30" Right="115" Bottom="45"/></AttachedNode></attached></ConstrainedNode><ConstrainedNode uuid="07e2d46a-feb5-46d2-9b64-8accf20e4928" constrainingAreaIndex="-1" guiLink_Element="1228c43e-07a1-4cbb-8cee-50217587dc85"><nodeRect Left="165" Top="60" Right="197" Bottom="92"/></ConstrainedNode><LineLink uuid="6f2c789a-e523-46a6-a047-1e72365e77d4" guiLink_Element="2213c343-3a00-405c-8909-55f1c1c8142c" guiLineLink_LineBegin="2f245a64-a9de-4dc0-af4b-5a9025825b2d" guiLineLink_LineEnd="07e2d46a-feb5-46d2-9b64-8accf20e4928"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="38643c60-8f0d-4772-99fc-726be6d6c09c"><pos X="126" Y="69"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="a1a563da-f441-4535-ba24-13221c5eaf04" textLabel="23" guiTextLabel_Element="2213c343-3a00-405c-8909-55f1c1c8142c"><pos X="-5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="cadd1b17-f096-4758-87b4-9102a73121a9" alignment="4"><pos X="80" Y="69"/></EndWaypoint><EndWaypoint uuid="a5574a01-39a0-4c75-8e8b-2af565d76f67" alignment="1"><pos X="172" Y="69"/></EndWaypoint></guiLineLinkWaypoint></LineLink><SeparatedNodeLink uuid="20fbdbf1-1c6d-4a7f-b460-02dfd43db6d9" guiLink_Element="e42793e9-d287-42fc-8d9c-ad25ea324362"><nodeRect Left="-15" Top="150" Right="200" Bottom="203"/></SeparatedNodeLink><LineLink uuid="79e1a713-cc2c-46b7-9741-e695ff785206" guiLink_Element="fb72522f-a382-4137-9a1c-4e1b70a4a8a7" guiLineLink_LineBegin="07e2d46a-feb5-46d2-9b64-8accf20e4928" guiLineLink_LineEnd="20fbdbf1-1c6d-4a7f-b460-02dfd43db6d9"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="211e0cb5-c7c8-4598-80f6-b775b6f8a371"><pos X="143" Y="101"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="4c7f7e52-08c7-4ed8-a1fc-162cdc9e7a38" textLabel="23" guiTextLabel_Element="fb72522f-a382-4137-9a1c-4e1b70a4a8a7"><pos X="-92" Y="1"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="a847cf8b-b84a-48a4-8ebf-763712d2c735" alignment="3"><pos X="170" Y="80"/></EndWaypoint><Waypoint uuid="7a1c5395-4482-4b73-a8b3-06f49279a7c9"><pos X="143" Y="80"/></Waypoint><EndWaypoint uuid="d1529642-fde1-4ebf-8cc1-1123b92541e3" alignment="2"><pos X="143" Y="150"/></EndWaypoint></guiLineLinkWaypoint></LineLink><ConstrainedNode uuid="b3d28b9a-8805-4232-b8f6-20b747519a8e" constrainingAreaIndex="-1" guiLink_Element="365efd41-c352-4430-bcac-1ac6c11fff67"><nodeRect Left="45" Top="315" Right="65" Bottom="335"/><attached><AttachedNode uuid="593a782f-7caf-4169-8e1e-63719aa29047" attachedNodeKind="13"><nodeRect Left="30" Top="345" Right="77" Bottom="360"/></AttachedNode></attached></ConstrainedNode></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="8a263846-0d40-41c0-a267-cce47962fbb4" name="Default"/></guiDiagramLayer></StateMachineDiagram><ClassDiagram uuid="23fb6097-38fa-4604-86e6-43ec6f76fa4d" name="Configuration" guiDiagramLinkedOwner="00000001-7510-11d9-86f2-000476a22f44"><guiDiagramGuiLink><NodeLink uuid="712a2336-a45d-467b-9ae9-84010d14b007" guiLink_Element="225beba8-ffe1-40ea-886f-624853e4b2fb"><nodeRect Left="75" Top="60" Right="492" Bottom="369"/></NodeLink><NodeLink uuid="2cefd566-0619-4dba-a0d9-17f932a1d700" guiLink_Element="6f4941b9-a065-4996-b298-f878423dd6b2"><nodeRect Left="825" Top="60" Right="1033" Bottom="160"/></NodeLink><NodeLink uuid="93492f6b-bdac-4210-b187-f5e8c1393934" guiLink_Element="d9f09d4b-2e35-47f3-af4f-19ed21d3c2c6"><nodeRect Left="75" Top="405" Right="250" Bottom="581"/></NodeLink><NodeLink uuid="28e57ba4-bd5b-4377-9053-6e7d279b55d2" guiLink_Element="3e4b09e2-b6a9-4221-90c2-3b9f49756dbe"><nodeRect Left="420" Top="-30" Right="769" Bottom="21"/></NodeLink><NoteLink uuid="fb63ab9e-494e-4d80-bb2f-f57fe80af542" guiLineLink_LineBegin="28e57ba4-bd5b-4377-9053-6e7d279b55d2" guiLineLink_LineEnd="2cefd566-0619-4dba-a0d9-17f932a1d700"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="bc8f152e-d1f3-480c-9fe4-1859cb7b4233"><pos X="861" Y="-12"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="5efa1eb0-d1f2-49bd-b21a-96bffa3a8405" alignment="1"><pos X="769" Y="-12"/></EndWaypoint><Waypoint uuid="3110f766-6674-4e94-a476-222292d502e9"><pos X="881" Y="-12"/></Waypoint><EndWaypoint uuid="f977bc94-9663-487b-b889-fb7253d78607" alignment="4"><pos X="881" Y="60"/></EndWaypoint></guiLineLinkWaypoint></NoteLink><LineLink uuid="d02eeb77-f10e-414c-9260-2e031b463876" guiLink_Element="1c4738c2-9ed2-40fe-ad85-e55bc137cb93" guiLineLink_LineBegin="712a2336-a45d-467b-9ae9-84010d14b007" guiLineLink_LineEnd="93492f6b-bdac-4210-b187-f5e8c1393934"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="658a5748-2e0c-4e5b-b9ff-0a21e8ba2ad7"><pos X="209" Y="386"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="3233149e-9462-45ac-9e1a-86cc1698486c" textLabel="9" guiTextLabel_Element="1c4738c2-9ed2-40fe-ad85-e55bc137cb93"><pos X="-15" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="da15b244-581b-4ee7-bcae-58ec918a7b3a" alignment="4"><pos X="216" Y="369"/></EndWaypoint><EndWaypoint uuid="bec0b6ca-0ffb-4ba3-8c50-f6d44f0f0008" alignment="1"><pos X="200" Y="405"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="1d4edf93-a288-4b5c-9e51-b80a955fd509" name="Default"/></guiDiagramLayer></ClassDiagram><ClassDiagram uuid="0c04fd52-734b-4cbc-88b9-f26d37bf3ec1" name="ClassDiagram1" guiDiagramLinkedOwner="00000001-7510-11d9-86f2-000476a22f44"><guiDiagramLayer><DiagramLayer uuid="3ca48be4-2309-466b-bc04-0e03ea417fea" name="Default"/></guiDiagramLayer></ClassDiagram><ClassDiagram uuid="a7d1b996-7548-4839-a01c-2be03be417ac" name="Content of src1 and all subpackages" guiDiagramLinkedOwner="4eed00d1-546d-464d-9ba0-d894b3cb9629" guiDiagram_GenerationSettingsElement="4eed00d1-546d-464d-9ba0-d894b3cb9629"><guiDiagramGenerationSettings kind="3" showAttributes="true" showOperations="true" showNestedClassifier="true" showEnumerationLiterals="true" showTaggedValues="true" doAutoLayout="true"/><guiDiagramGuiLink><NodeLink uuid="fcd8f405-b76e-424b-8afd-18e3cf3fcbbb" guiLink_Element="577b6386-052f-4b41-a12e-dc413d128bdb"><nodeRect Left="3810" Top="15" Right="4496" Bottom="359"/></NodeLink><NodeLink uuid="12c8a09d-c405-47dc-8ef2-b40463586871" guiLink_Element="e44596f5-84fe-4ede-85b2-d4360328ef30"><nodeRect Left="330" Top="405" Right="833" Bottom="1053"/><attached><AttachedNode uuid="379a24cf-37bc-4994-8548-0d9f4ce9e46b"><nodeRect Left="15" Top="1425" Right="223" Bottom="1606"/></AttachedNode></attached></NodeLink><NodeLink uuid="1c4f0aa3-b160-46b1-aca5-bb37aa6d91dc" guiLink_Element="9ba1afce-c166-4940-b987-d5033d97422f"><nodeRect Left="1635" Top="2790" Right="2184" Bottom="3058"/><attached><AttachedNode uuid="fbab0e2d-b0a0-4c08-99a7-cce5dcc44c2e"><nodeRect Left="1815" Top="3105" Right="2023" Bottom="3142"/></AttachedNode></attached></NodeLink><NodeLink uuid="bee3cd5a-655b-4e93-a41e-3b60f78b96c2" guiLink_Element="b4fbbb5e-ccb3-4e67-8a33-2a7156362c09"><nodeRect Left="2235" Top="2790" Right="2632" Bottom="2906"/></NodeLink><NodeLink uuid="53000c4c-96dd-4e1e-9f78-98390456739c" guiLink_Element="f24bb013-bc15-4380-8dcd-7d3afadf49da"><nodeRect Left="3255" Top="45" Right="3771" Bottom="351"/></NodeLink><NodeLink uuid="92f6bd8d-4b41-4e9c-8a9a-eecdbe26f648" guiLink_Element="4cbd4b4f-70f2-4e0e-8e31-1867bdc95e67"><nodeRect Left="690" Top="2790" Right="1600" Bottom="3248"/></NodeLink><NodeLink uuid="b6a51729-0d0d-4bd6-bc7d-880514b443ae" guiLink_Element="8f290fe6-3dce-474a-ac11-1a7935bc0843"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="1c54fec1-c11e-430e-89a6-c06b060c8f8c" guiLink_Element="c23aa30f-f714-44bb-861f-46617e2d21bf"><nodeRect Left="2040" Top="555" Right="2608" Bottom="891"/><attached><AttachedNode uuid="5aafc92b-ed1a-42cb-8a48-be7f7b7d5180"><nodeRect Left="2220" Top="1470" Right="2428" Bottom="1543"/></AttachedNode></attached></NodeLink><LineLink uuid="70a31f32-74fe-4d7d-8eaa-cbd3905853cb" guiLink_Element="4c5547d9-dec9-44c6-ba54-56131d3b794f" guiLineLink_LineBegin="1c54fec1-c11e-430e-89a6-c06b060c8f8c" guiLineLink_LineEnd="53000c4c-96dd-4e1e-9f78-98390456739c"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="4095b313-a8d6-498f-8666-5f45bd49b8f3"><pos X="2931" Y="456"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="b88a4a07-74f8-4335-9195-d9311c53658a" alignment="1"><pos X="2608" Y="598"/></EndWaypoint><EndWaypoint uuid="282394c5-5522-4e18-b1f2-6acb93c08942" alignment="4"><pos X="3255" Y="312"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f5523c83-1cc4-41a0-855c-9988589b8508" guiTextLabel_Element="1e983b79-b3fd-4d7b-8426-8ed7a804e563"><pos X="-70" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="3c81ada1-dab5-4c58-a90d-ecfb04f523ea" guiLink_Element="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"><nodeRect Left="2655" Top="615" Right="3223" Bottom="845"/><attached><AttachedNode uuid="1a74c486-2d50-41bd-af65-c502e53b5a18"><nodeRect Left="2835" Top="1470" Right="3043" Bottom="1543"/></AttachedNode></attached></NodeLink><LineLink uuid="95a3c611-60e8-42cb-b64a-cc3021a570d7" guiLink_Element="337fe5fc-d1e0-400f-a049-fa1fdfb6cae9" guiLineLink_LineBegin="3c81ada1-dab5-4c58-a90d-ecfb04f523ea" guiLineLink_LineEnd="53000c4c-96dd-4e1e-9f78-98390456739c"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="0dd257d5-abce-48a6-bd67-00660b9782ee"><pos X="3205" Y="483"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="861fe3bf-be3f-4a40-a147-2e09234a650f" alignment="3"><pos X="3063" Y="615"/></EndWaypoint><EndWaypoint uuid="fa4f6761-324e-499f-8fe4-21df82cea13a" alignment="2"><pos X="3348" Y="351"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="55f57135-a3fe-46b8-9a3c-bd240b0e749b" guiTextLabel_Element="f63ab2a1-97d3-413f-b0eb-ee59067f5c54"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="891b9868-4a6d-4b86-8231-ad9bd202eb70" guiLink_Element="9fa974e1-051f-4a36-acb7-f7116a577746"><nodeRect Left="1425" Top="135" Right="1922" Bottom="250"/></NodeLink><LineLink uuid="6cb3d617-810f-42ea-995c-e31e65522d88" guiLink_Element="104b6f7d-d199-4541-b6ab-0779dc6d44ee" guiLineLink_LineBegin="1c54fec1-c11e-430e-89a6-c06b060c8f8c" guiLineLink_LineEnd="891b9868-4a6d-4b86-8231-ad9bd202eb70"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="13b11a0f-79bb-429a-b290-bef9b7cfda13"><pos X="1931" Y="403"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="73db7019-01d6-4d04-b79e-1eab86dd6d87" alignment="2"><pos X="2118" Y="555"/></EndWaypoint><EndWaypoint uuid="d7d71a37-c62f-49f8-a13a-0edd87ac6b46" alignment="3"><pos X="1744" Y="250"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="e590441b-31b3-4651-b639-0aafc9cd21a7" guiLink_Element="7912bbc0-335a-4601-aaea-766812ed6dcb" guiLineLink_LineBegin="3c81ada1-dab5-4c58-a90d-ecfb04f523ea" guiLineLink_LineEnd="891b9868-4a6d-4b86-8231-ad9bd202eb70"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="3b676810-d6a4-45c4-b4ba-7d82bf460018"><pos X="2239" Y="433"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="cdd08c1f-52c5-43e9-aa7e-e4ca3311992b" alignment="2"><pos X="2668" Y="615"/></EndWaypoint><EndWaypoint uuid="85273fbb-c917-4e99-9210-1acf4f67afe8" alignment="3"><pos X="1809" Y="250"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="1c28e514-908f-4583-909a-0f653e3baab5" guiLink_Element="901fab39-5ad6-4f60-8a3a-998010e22b26"><nodeRect Left="1635" Top="3180" Right="2111" Bottom="3391"/></NodeLink><NodeLink uuid="ef2ee06e-8d6d-4109-a0bf-7cee5b928be1" guiLink_Element="a65b615a-e47f-4e01-87ae-1a2926d05a3e"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="557512f1-b61a-442c-bebd-ec5fced24580" guiLink_Element="0b3153ed-1fe4-4739-a92c-22aef6084880"><nodeRect Left="915" Top="105" Right="1341" Bottom="277"/></NodeLink><LineLink uuid="34338664-915c-4788-87d3-c695c58b83a4" guiLink_Element="d067d0c6-83ad-4326-953b-9766d9c6f80d" guiLineLink_LineBegin="12c8a09d-c405-47dc-8ef2-b40463586871" guiLineLink_LineEnd="557512f1-b61a-442c-bebd-ec5fced24580"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="06352027-da4b-4a86-b6f2-608a69aaaf0c"><pos X="936" Y="380"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="69a00be0-faf8-40c6-b4ab-5c984a41d8c8" alignment="2"><pos X="833" Y="481"/></EndWaypoint><EndWaypoint uuid="c1687378-5306-43ae-99c8-1e3395b83470" alignment="3"><pos X="1041" Y="277"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="3898fb14-848a-4189-a587-f79c58b16d99" guiLink_Element="ae1de26b-4144-4410-8eb5-276e998c7c7b"><nodeRect Left="270" Top="1095" Right="882" Bottom="1933"/><attached><AttachedNode uuid="1f5b91fe-22ca-4a08-aaf2-bbe39968e575"><nodeRect Left="15" Top="2190" Right="223" Bottom="2335"/></AttachedNode></attached></NodeLink><LineLink uuid="9f67d0f9-c726-467b-864b-2626ea5d3739" guiLink_Element="3ced1828-d003-4a04-a6e8-9bec9a7e7f18" guiLineLink_LineBegin="3898fb14-848a-4189-a587-f79c58b16d99" guiLineLink_LineEnd="557512f1-b61a-442c-bebd-ec5fced24580"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="a04685a3-fca5-4dc2-9ffb-8624f243b2f0"><pos X="1128" Y="825"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="efdd5b57-0719-42a0-acbd-45130e5d792a" alignment="2"><pos X="882" Y="1258"/></EndWaypoint><Waypoint uuid="244e558d-3a4f-45cf-b51f-bc549672200e"><pos X="1128" Y="1052"/></Waypoint><Waypoint uuid="fa1310c6-e565-44c3-bdde-62d3c86122c3"><pos X="1128" Y="404"/></Waypoint><EndWaypoint uuid="ed76a30b-f4f8-44fc-850b-b7a53ec742e8" alignment="3"><pos X="1128" Y="277"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="091d422f-c999-4be2-83f7-bc4e56d3d136" guiLink_Element="31e8f802-f472-429f-a22b-bc228945fc9d" guiLineLink_LineBegin="3898fb14-848a-4189-a587-f79c58b16d99" guiLineLink_LineEnd="12c8a09d-c405-47dc-8ef2-b40463586871"><style linestyle="1"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="4b9fbb34-9bce-4234-ad8f-e88f318abb82"><pos X="574" Y="1074"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="9d844ffb-4c8e-4262-bf27-ccd682636ff5" alignment="2"><pos X="574" Y="1095"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f8b65180-0b66-4d3d-9038-9019e55faf75" guiTextLabel_Element="e0144025-6679-40a0-8816-4e62691abf90"><pos X="5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint><EndWaypoint uuid="3e9f3998-b4b1-45fe-8fcf-4958be626625" alignment="3"><pos X="574" Y="1053"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="b0e755c1-fdfa-4cd1-bbcf-8282b6fc6ea5" guiLink_Element="40e9947e-a4f4-4216-865b-1c2e0cfda4d8" guiLineLink_LineBegin="3898fb14-848a-4189-a587-f79c58b16d99" guiLineLink_LineEnd="891b9868-4a6d-4b86-8231-ad9bd202eb70"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="0ae8334b-daca-4609-8087-fff8353e8694"><pos X="1386" Y="889"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="61b328dc-b1b9-4deb-9a54-30f3444fc1a2" alignment="2"><pos X="882" Y="1339"/></EndWaypoint><Waypoint uuid="5b4b3e57-3771-4d4c-b9e2-62e92750ae9b"><pos X="1386" Y="1052"/></Waypoint><Waypoint uuid="c6060c96-084b-498b-a052-fff964a998b7"><pos X="1386" Y="404"/></Waypoint><EndWaypoint uuid="e7ddd0f1-8f16-4e1d-acdb-482fc2c4de8e" alignment="3"><pos X="1594" Y="250"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="fd89c73b-6056-40c1-a294-68405d466959" guiTextLabel_Element="e0344500-2bbc-4e1d-81e8-4dd27313e1cb"><pos X="-122" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="61119fcf-3cea-4b38-b197-a9270cdcf417" guiLink_Element="9d53037c-a542-41e9-91cc-ef395435fbd9" guiLineLink_LineBegin="3898fb14-848a-4189-a587-f79c58b16d99" guiLineLink_LineEnd="891b9868-4a6d-4b86-8231-ad9bd202eb70"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="bb8c3592-e4ea-4248-8647-9d9eea6ef54d"><pos X="1647" Y="1064"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="57e444b2-2d98-4bff-8f2c-9e596adef021" alignment="2"><pos X="882" Y="1385"/></EndWaypoint><Waypoint uuid="ac407655-825d-4de9-a382-3b7272356e29"><pos X="1674" Y="1052"/></Waypoint><Waypoint uuid="c9cb73ca-9630-494a-92a7-3e2719c882f5"><pos X="1674" Y="404"/></Waypoint><EndWaypoint uuid="567a7672-c22b-443b-a0c3-aa9a4394afbc" alignment="3"><pos X="1673" Y="250"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="ad224a4d-387c-46b5-877b-5f8738a25bbc" guiTextLabel_Element="45e07359-339e-4205-9274-5ec32cce3077"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="027016e9-bf47-4008-8fc7-081f8e9c50c7" guiLink_Element="f637b78a-739c-4310-95bf-d69e4de4b8b3" guiLineLink_LineBegin="3898fb14-848a-4189-a587-f79c58b16d99" guiLineLink_LineEnd="12c8a09d-c405-47dc-8ef2-b40463586871"><style linestyle="1"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="ade29a47-1315-44d1-861b-4326527625a1"><pos X="574" Y="1074"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="e12dc366-51ee-4fc1-a613-6d6a934064db" alignment="2"><pos X="574" Y="1095"/></EndWaypoint><EndWaypoint uuid="50ff85d6-c04f-4026-915a-82bab6dd3e54" alignment="3"><pos X="574" Y="1053"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="89c85b06-e714-4fbe-9766-6cc1c0d2d77c" guiTextLabel_Element="4e968b1c-677d-452e-a030-7b9bede87270"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="459688de-64ff-40a5-9ca4-036f661730c6" guiLink_Element="b96ec92c-bbd5-409c-ab9a-d065f5ae7f26" guiLineLink_LineBegin="3898fb14-848a-4189-a587-f79c58b16d99" guiLineLink_LineEnd="fcd8f405-b76e-424b-8afd-18e3cf3fcbbb"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="975340e1-bf77-47d6-8a64-f4b40a9cd9ea"><pos X="2003" Y="409"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="04684c35-89d3-4f42-9816-75636bd57bc5" alignment="2"><pos X="882" Y="1415"/></EndWaypoint><Waypoint uuid="20f7ba56-90d7-4077-b3cc-3d7b823f9073"><pos X="2003" Y="1052"/></Waypoint><Waypoint uuid="351a0c2a-410d-4a64-b8d3-81051646c547"><pos X="2003" Y="404"/></Waypoint><EndWaypoint uuid="473d2147-7f9d-4d55-81cd-80a1769b030b" alignment="3"><pos X="3810" Y="222"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="431a2ae3-da2b-47c9-965d-b290ffb49d97" guiTextLabel_Element="3c36d4ef-e283-4f1a-9a69-669f39fb7f93"><pos X="-58" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="8a877adf-8b02-4801-860b-5c19997d7fc9" guiLink_Element="81e9ed6a-f4f3-4e3c-8259-d52e9c6a8509" guiLineLink_LineBegin="3898fb14-848a-4189-a587-f79c58b16d99" guiLineLink_LineEnd="53000c4c-96dd-4e1e-9f78-98390456739c"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="abc72ee1-91ca-4151-bed9-6bba963720b1"><pos X="1963" Y="646"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="fbf19d23-498e-4cff-8962-32b3a20a8e13" alignment="2"><pos X="882" Y="1412"/></EndWaypoint><Waypoint uuid="a54d33f6-85ee-499c-a87e-9ecfd99d704d"><pos X="1963" Y="1052"/></Waypoint><Waypoint uuid="91103026-ed06-42fd-aa65-34daa9bab7cd"><pos X="1963" Y="404"/></Waypoint><EndWaypoint uuid="5a29d288-62d4-43fe-8cdb-bc521156bb21" alignment="3"><pos X="3255" Y="232"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="1781608a-d2f4-4904-a9f2-26065231a2ae" guiTextLabel_Element="7ae87f33-2c55-45b3-ab76-ec30f47231d3"><pos X="-70" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="44fcd349-9c8b-4f34-8238-d25d6895f4b0" guiLink_Element="198256f8-6f68-40c6-8818-e9e32eb46cbb"><nodeRect Left="1350" Top="3285" Right="1541" Bottom="3363"/></NodeLink><NodeLink uuid="5f961aac-6ec0-4a47-ae29-2ef00544d8a1" guiLink_Element="6ab96bec-6356-4ab8-99c2-86062c2a87b4"><nodeRect Left="690" Top="3285" Right="1007" Bottom="3439"/></NodeLink><NodeLink uuid="c3ce597b-91c9-4224-b49e-31d1dc04f265" guiLink_Element="83b1d5a1-2af8-405f-bc13-198cb6913fcc"><nodeRect Left="1350" Top="3405" Right="1541" Bottom="3473"/></NodeLink><NodeLink uuid="2afce3f3-f5ad-49b6-be25-9b9e7e1eda63" guiLink_Element="042ad21d-44eb-4f93-a1b4-c1f46577fab8"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="a38b088e-b128-4531-96cd-c76f5fd99e59" guiLink_Element="5508e5af-23d7-4ef4-9edd-271a111046a7"><style showatt="1" showop="1"/><nodeRect Left="5130" Top="135" Right="5285" Bottom="235"/></NodeLink><NodeLink uuid="54300ea8-d3fb-40dd-a7b6-1008e0c7b88b" guiLink_Element="2458fe88-04c5-40d6-ae8c-75bc48716877"><style showatt="1" showop="1"/><nodeRect Left="300" Top="2790" Right="616" Bottom="3225"/><attached><AttachedNode uuid="8820c4c1-4370-484d-b982-dd794b388180"><nodeRect Left="15" Top="3330" Right="223" Bottom="3367"/></AttachedNode></attached></NodeLink><NodeLink uuid="5c2e49d0-66ec-4059-a7c6-86c33aa6a370" guiLink_Element="566b0c6f-cb93-41a5-a2d2-6afbb79e36f8"><nodeRect Left="1050" Top="3285" Right="1317" Bottom="3438"/></NodeLink><NodeLink uuid="9c2c4ee6-6b23-48a3-9d30-f70a26eeca22" guiLink_Element="370d0768-7e30-4c6d-89eb-02e797aeee19"><nodeRect Left="270" Top="3270" Right="651" Bottom="3424"/><attached><AttachedNode uuid="ecd0875c-e8de-45f6-b65e-b06adbc40946"><nodeRect Left="360" Top="3465" Right="568" Bottom="3502"/></AttachedNode></attached></NodeLink><LineLink uuid="ae2dc5df-9c24-4da2-a86a-980862a9c0bc" guiLink_Element="00029b89-64e4-427a-a5d0-22e51d88a439" guiLineLink_LineBegin="9c2c4ee6-6b23-48a3-9d30-f70a26eeca22" guiLineLink_LineEnd="54300ea8-d3fb-40dd-a7b6-1008e0c7b88b"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="20710448-ab28-4049-8d7c-b7fae7d9d6c0"><pos X="459" Y="3248"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="0e367f73-e1f9-4625-b0b8-cf4d8d860952" alignment="3"><pos X="459" Y="3270"/></EndWaypoint><EndWaypoint uuid="fd39d24a-3ade-4307-a142-3acac76865ae" alignment="2"><pos X="459" Y="3225"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="4cb8a457-5797-469b-ae48-348a96c2c7c5" guiTextLabel_Element="2a28462b-1746-4b7f-9d38-28b5749337cb"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="ecbb2a55-6b6f-45ad-954e-004261da77c9" guiLink_Element="da3a924a-f230-4204-9d41-9644faea3cf9"><style showatt="1" showop="1"/><nodeRect Left="4740" Top="105" Right="4878" Bottom="277"/></NodeLink><NodeLink uuid="3893b7cb-6d90-49f5-92bc-853fa0f351fc" guiLink_Element="4bf56833-9631-46bf-a82b-2c51f93433f3"><style showatt="1" showop="1"/><nodeRect Left="5325" Top="135" Right="5463" Bottom="235"/></NodeLink><NodeLink uuid="fde5a6c8-9ef9-474c-b05a-b011f76e84ee" guiLink_Element="4d637071-6c1c-4c10-9319-7363b331e254"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="8b208f92-ed38-4b07-b68e-bfb459b7e023" guiLink_Element="13b04fce-67a2-4c3e-8332-1a0abded9174"><nodeRect Left="4545" Top="1965" Right="5080" Bottom="2556"/></NodeLink><LineLink uuid="59ff73c6-2d9d-467c-9c7d-17c912fd524e" guiLink_Element="4c26e1b6-7066-47d7-a255-1706dd76c6c5" guiLineLink_LineBegin="8b208f92-ed38-4b07-b68e-bfb459b7e023" guiLineLink_LineEnd="53000c4c-96dd-4e1e-9f78-98390456739c"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="c1ef751a-8e14-4fac-93fa-545c677e5de2"><pos X="3513" Y="1673"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="11c23726-6b9e-4f79-8b72-db58aaeede8f" alignment="2"><pos X="4545" Y="2192"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f34ef5e1-b35f-4aa7-a20c-8f1ba07104b2" guiTextLabel_Element="d3c43a4c-f207-4326-8a71-f5b6c743fd6d"><pos X="-63" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint><Waypoint uuid="54272848-9348-4e67-9a85-c743f37d43f6"><pos X="3513" Y="1930"/></Waypoint><Waypoint uuid="9db1f36c-2f59-4143-bd8b-db70029b8d52"><pos X="3513" Y="1092"/></Waypoint><Waypoint uuid="422a6a9a-f919-4421-a953-18b6c342d182"><pos X="3513" Y="1052"/></Waypoint><Waypoint uuid="d22844d3-c8bf-459d-9e53-d8d509c39d0c"><pos X="3513" Y="404"/></Waypoint><EndWaypoint uuid="9962c096-0e4f-4998-9dbe-2389aec9edea" alignment="3"><pos X="3513" Y="351"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="a607925d-03a4-49df-b08d-b9745990d2cf" guiLink_Element="6de5d861-1288-47d7-ae85-cd653df845ea" guiLineLink_LineBegin="8b208f92-ed38-4b07-b68e-bfb459b7e023" guiLineLink_LineEnd="3898fb14-848a-4189-a587-f79c58b16d99"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="e93bd8b9-2a21-4a59-befa-77c4c3e40817"><pos X="2714" Y="1891"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="a07e7326-91f1-445c-9a87-4a1da314b8f6" alignment="3"><pos X="4545" Y="2213"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="5148e75a-b8d3-4de5-9636-9a26693d72c4" guiTextLabel_Element="8a4eee94-5187-480b-995b-204bc35f1080"><pos X="-101" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint><EndWaypoint uuid="fe8d904f-fc2c-4c5f-951c-85f39168f1a6" alignment="2"><pos X="882" Y="1568"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="d485544f-43d7-463d-9b5a-182cc2d699b9" guiLink_Element="abcaf06f-2651-4717-b171-2bafe5d218d2" guiLineLink_LineBegin="8b208f92-ed38-4b07-b68e-bfb459b7e023" guiLineLink_LineEnd="3898fb14-848a-4189-a587-f79c58b16d99"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="48382220-40fe-454e-89d7-dd506a09bab0"><pos X="2714" Y="1891"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="685afe0f-07f4-4bdc-8185-2d151e4daf67" alignment="3"><pos X="4545" Y="2213"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="f3e13592-063b-495c-a033-2267021ffd0a" guiTextLabel_Element="cb01fc9e-6943-49fc-b253-e1c3ede93c99"><pos X="-102" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint><EndWaypoint uuid="0471e7fc-4692-48d7-ab21-48fab4b69751" alignment="2"><pos X="882" Y="1568"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="c36685c8-8000-4324-8c5f-b3cb25849375" guiLink_Element="d915fff8-d663-491b-bfdb-21821ebe69cb" guiLineLink_LineBegin="8b208f92-ed38-4b07-b68e-bfb459b7e023" guiLineLink_LineEnd="ecbb2a55-6b6f-45ad-954e-004261da77c9"><style linestyle="1"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="a0febcdc-1285-4783-9568-de9ab7983eab"><pos X="4809" Y="1121"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="9f8f80d3-a8a4-427f-a9e5-899640a49774" alignment="2"><pos X="4809" Y="1965"/></EndWaypoint><EndWaypoint uuid="0e7a9125-b09c-4a7a-b8b5-a97ee955f719" alignment="3"><pos X="4809" Y="277"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="638ee2e5-e4dc-4fe6-8671-d72a7a778061" guiTextLabel_Element="aab25435-bf9e-4fe0-b0a5-a762fa4d2f61"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="c090cf6f-0b6b-434c-b4a2-aaf060320467" guiLink_Element="5e1d27d6-7f3b-4365-baa9-5b849f141483" guiLineLink_LineBegin="8b208f92-ed38-4b07-b68e-bfb459b7e023" guiLineLink_LineEnd="a38b088e-b128-4531-96cd-c76f5fd99e59"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="13d028f3-39c7-4843-8465-2a4c7c861355"><pos X="5207" Y="1165"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="e9ff566a-211b-4e6c-9f6b-e8f8becf1f72" alignment="2"><pos X="5080" Y="2036"/></EndWaypoint><Waypoint uuid="a1904bd4-dc95-40db-9147-39a5189b7456"><pos X="5207" Y="1930"/></Waypoint><Waypoint uuid="f50ca97c-763f-4f5c-b7f7-e785348705b1"><pos X="5207" Y="1092"/></Waypoint><Waypoint uuid="6edd0f22-bcd9-4dd4-be7c-5b9563d80bb6"><pos X="5207" Y="1052"/></Waypoint><Waypoint uuid="5a9f513c-1a49-40d7-8619-ddb3d8f09fe2"><pos X="5207" Y="404"/></Waypoint><EndWaypoint uuid="d8c149e9-7592-411d-b353-762485d9afd3" alignment="3"><pos X="5207" Y="235"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="d3904b85-4d4b-460d-b900-6a3386afddb3" guiTextLabel_Element="8dde5272-367d-4251-abef-7d51235b01b3"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="1e69ed39-8a19-4a75-aa8c-1f7ba7a75e65" guiLink_Element="61d2e691-ad0b-438d-9111-0c37b942e3bb" guiLineLink_LineBegin="8b208f92-ed38-4b07-b68e-bfb459b7e023" guiLineLink_LineEnd="3893b7cb-6d90-49f5-92bc-853fa0f351fc"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="0aa6ff8c-0615-46e6-a382-25ec47be4da1"><pos X="5394" Y="1263"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="4a4459b0-17ff-4ac6-a963-755d2c581eaf" alignment="2"><pos X="5080" Y="2108"/></EndWaypoint><Waypoint uuid="9318479f-7474-48c4-852d-b1f117316006"><pos X="5394" Y="1930"/></Waypoint><Waypoint uuid="3d0ef2e7-8734-4853-a7bc-10dff987cbf5"><pos X="5394" Y="1092"/></Waypoint><Waypoint uuid="0c9ad590-4aaf-4a32-97ed-5f7b2c9da33f"><pos X="5394" Y="1052"/></Waypoint><Waypoint uuid="edf71a29-73aa-4a7d-9e2d-5f7c367d21d1"><pos X="5394" Y="404"/></Waypoint><EndWaypoint uuid="40a6a05f-4f76-4f97-ae06-746d3dd064db" alignment="3"><pos X="5394" Y="235"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="c066550c-88c4-41bd-864c-051c94bdde45" guiTextLabel_Element="85fa544a-8e43-466d-84e8-cd3b70a427eb"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="d6f9b7d1-abf1-455c-bdc2-40cb21d6f711" guiLink_Element="050cecf9-589d-4a8e-8705-ad03fd6542c5"><nodeRect Left="270" Top="1995" Right="1271" Bottom="2529"/><attached><AttachedNode uuid="2d98197e-014d-4ad5-93a4-1fd60ac97798"><nodeRect Left="15" Top="2655" Right="223" Bottom="2692"/></AttachedNode></attached></NodeLink><LineLink uuid="d43d22bf-e121-4d41-9634-bc00492c11a5" guiLink_Element="fec40076-6ee6-449d-ac4a-b1e938561267" guiLineLink_LineBegin="d6f9b7d1-abf1-455c-bdc2-40cb21d6f711" guiLineLink_LineEnd="3898fb14-848a-4189-a587-f79c58b16d99"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="467d1977-4f15-4c1e-b922-d26549b9899d"><pos X="679" Y="1965"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="297fab13-af67-4117-8812-27498b0f9314" alignment="1"><pos X="685" Y="1995"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="8ac5c4ea-2ce7-4bee-91b2-4ea903fd2f80" guiTextLabel_Element="1d749d34-6fec-455e-8a71-b179515cad94"><pos X="5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint><EndWaypoint uuid="d4d3a6b9-1afa-4647-83b7-ae2c56f1af86" alignment="4"><pos X="671" Y="1933"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="05401c49-d9d5-4955-8d19-968dc72e306d" guiLink_Element="13218f51-84f8-48a3-9b61-ea95fac2d94f" guiLineLink_LineBegin="d6f9b7d1-abf1-455c-bdc2-40cb21d6f711" guiLineLink_LineEnd="3898fb14-848a-4189-a587-f79c58b16d99"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="9cca646b-b723-47a7-9626-4b12e6ae0b51"><pos X="679" Y="1965"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="747369b8-1c7c-4e6b-9892-d5a021d78e8a" alignment="1"><pos X="685" Y="1995"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="a5b3b6d8-f401-4b35-a2c6-bd5faed5464f" guiTextLabel_Element="af9b43d4-42cf-4cc9-9537-0882d124fc97"><pos X="5" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint><EndWaypoint uuid="04115e7f-38a4-44c7-a887-1dfc3fe154d3" alignment="4"><pos X="671" Y="1933"/></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="6357f9fe-4531-4bf6-b1d9-b936f3bd1b2a" guiLink_Element="51b56fa0-2f71-4d48-b767-6cd8f21a8846"><nodeRect Left="645" Top="2595" Right="888" Bottom="2749"/></NodeLink><LineLink uuid="20bbef9a-ebd7-4474-948b-17d5e8f056f4" guiLink_Element="6fb6ef58-b621-46a3-94f6-b68ab70d00ca" guiLineLink_LineBegin="6357f9fe-4531-4bf6-b1d9-b936f3bd1b2a" guiLineLink_LineEnd="d6f9b7d1-abf1-455c-bdc2-40cb21d6f711"><style linestyle="1"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="6a347c78-d87e-4816-a5b4-3cee273918fb"><pos X="768" Y="2562"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="12f7a4f5-2e4a-43ce-a8b2-ad9fc480c5cb" alignment="4"><pos X="768" Y="2595"/></EndWaypoint><EndWaypoint uuid="c304d33b-f478-494c-8638-dbd046c73bcd" alignment="1"><pos X="768" Y="2529"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="6f0b89d9-df34-4e74-9d48-28f172c3063c" guiTextLabel_Element="77a22c7e-dd8c-4496-8833-aa0f5fdc30a2"><pos X="5" Y="5"/></TextLabel></guiTextLabelWaypoint_TextLabel></EndWaypoint></guiLineLinkWaypoint></LineLink><NodeLink uuid="36e0d398-18ff-4bd2-b19a-a002eb9b0eb8" guiLink_Element="5ce5239a-ebce-4b91-ba2f-c9b1ea72a373"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="cc722d4e-deab-48b0-80cc-2c5a255227eb" guiLink_Element="d81da90a-f38c-48bf-911a-98508cb4b8b1"><nodeRect Left="1635" Top="3435" Right="1749" Bottom="3503"/></NodeLink><NodeLink uuid="f8946105-8ec4-44e1-9ed1-44cf0c522135" guiLink_Element="727c732a-5b1d-4916-9460-2087c8f15ba1"><nodeRect Left="1800" Top="3435" Right="1914" Bottom="3503"/></NodeLink><NodeLink uuid="81b97192-d2a7-4902-94ad-f83f53e5d302" guiLink_Element="07d9b354-5e78-4220-a66e-7ffbd5a4edb6"><nodeRect Left="1950" Top="3435" Right="2064" Bottom="3503"/></NodeLink><NodeLink uuid="a964b129-d269-40b7-ad0f-e51e8e5f19e1" guiLink_Element="7b933f39-34fe-4c53-8cef-05030f0e2c03"><nodeRect Left="2235" Top="2955" Right="2349" Bottom="3023"/></NodeLink><NodeLink uuid="3e086317-9f52-4a64-958d-9e97659c480d" guiLink_Element="8a0da029-3c0a-4ac4-a889-482e84d8d30a"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="07be77d6-84ae-4509-b966-3777a2475a85" guiLink_Element="9161fa6a-e3e0-4255-9fef-79656bab03d3"><nodeRect Left="2235" Top="3060" Right="2317" Bottom="3128"/></NodeLink><NodeLink uuid="506f84b8-2fb7-4fe6-9226-2e85a422294f" guiLink_Element="f208a191-31c1-48a0-959c-cb33b94b0cba"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="6fb07259-f284-4cab-a94d-4e920369650c" guiLink_Element="0bccb938-5861-4067-bd93-71be4b74b901"><nodeRect Left="2235" Top="3165" Right="2317" Bottom="3233"/></NodeLink><NodeLink uuid="4a2bf503-3f0b-4c87-9c46-22afbc96c280" guiLink_Element="cc73e491-9205-4cb0-bddd-893751d0bace"><nodeRect Left="10" Top="10" Right="60" Bottom="60"/></NodeLink><NodeLink uuid="15bcf2b8-9149-4b70-884c-fabca93bc6cf" guiLink_Element="f2bb7e02-9531-46f7-81bc-9b0fe049acd3"><nodeRect Left="2235" Top="3270" Right="2317" Bottom="3322"/></NodeLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="f4152646-8dc4-46ad-8f20-e971eacd4907" name="Default"/></guiDiagramLayer></ClassDiagram><ClassDiagram uuid="0f891fbb-6c3b-45d0-b10b-f06032193d77" name="Cache" guiDiagramLinkedOwner="d81da90a-f38c-48bf-911a-98508cb4b8b1"><guiDiagramGuiLink><NodeLink uuid="3d91b7dc-8be4-4854-bd36-92afaeb3e211" guiLink_Element="e44596f5-84fe-4ede-85b2-d4360328ef30"><nodeRect Left="15" Top="15" Right="518" Bottom="647"/><attached><AttachedNode uuid="33ecfcfd-1594-404e-bd5d-82ed93414428"><nodeRect Left="165" Top="690" Right="373" Bottom="871"/></AttachedNode></attached></NodeLink><NodeLink uuid="7e3ebfa6-8cd8-4d37-804a-a76a63c1ce63" guiLink_Element="9ba1afce-c166-4940-b987-d5033d97422f"><style showatt="1" showop="1"/><nodeRect Left="570" Top="15" Right="1119" Bottom="267"/><attached><AttachedNode uuid="c3afa52b-f68f-4362-8bab-84748acabe16"><nodeRect Left="735" Top="315" Right="943" Bottom="352"/></AttachedNode></attached></NodeLink><NodeLink uuid="3d77b12d-b85e-4aac-ab51-fb5b6994a35a" guiLink_Element="f24bb013-bc15-4380-8dcd-7d3afadf49da"><nodeRect Left="570" Top="390" Right="1086" Bottom="680"/></NodeLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="2c039049-59f2-4928-8453-d12c46cc8e4f" name="Default"/></guiDiagramLayer></ClassDiagram><ClassDiagram uuid="82289f50-6391-4df9-a699-14ad7492443c" name="Communication" guiDiagramLinkedOwner="727c732a-5b1d-4916-9460-2087c8f15ba1"><guiDiagramLayer><DiagramLayer uuid="8114c227-f745-49f9-aa41-de64686b280d" name="Default"/></guiDiagramLayer></ClassDiagram><ClassDiagram uuid="ec9f6a51-3681-480d-9893-34bb4d8a483d" name="ComTransfer" guiDiagramLinkedOwner="83b1d5a1-2af8-405f-bc13-198cb6913fcc"><guiDiagramGuiLink><NodeLink uuid="8f3fcf48-9d0a-4db2-ad5b-369c775c4251" guiLink_Element="c23aa30f-f714-44bb-861f-46617e2d21bf"><style showatt="0" shownested="0" showop="0" taggedvalues="0"/><nodeRect Left="60" Top="-225" Right="169" Bottom="-204"/><attached><AttachedNode uuid="c37d086f-ee1c-486a-87ad-e0b2f075cd91"><nodeRect Left="240" Top="135" Right="448" Bottom="208"/></AttachedNode></attached></NodeLink><NodeLink uuid="62454b66-2a0d-4953-a244-59fb13083fde" guiLink_Element="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"><style showatt="0" showop="0" taggedvalues="0"/><nodeRect Left="615" Top="-210" Right="703" Bottom="-189"/><attached><AttachedNode uuid="2c5d3dd0-dce1-4571-aa34-89e4d36cc1d4"><nodeRect Left="795" Top="105" Right="1003" Bottom="178"/></AttachedNode></attached></NodeLink><NodeLink uuid="2902b8bd-9422-4a7c-bfea-0849eb4825d5" guiLink_Element="901fab39-5ad6-4f60-8a3a-998010e22b26"><style showatt="0" showop="0"/><nodeRect Left="360" Top="-150" Right="453" Bottom="-129"/></NodeLink><NodeLink uuid="f34436d3-57f3-458e-9ba4-f8ab3689d813" guiLink_Element="9fa974e1-051f-4a36-acb7-f7116a577746"><nodeRect Left="165" Top="-405" Right="662" Bottom="-306"/></NodeLink><LineLink uuid="d414d31f-e798-4bc1-a821-df2415edcc91" guiLink_Element="104b6f7d-d199-4541-b6ab-0779dc6d44ee" guiLineLink_LineBegin="8f3fcf48-9d0a-4db2-ad5b-369c775c4251" guiLineLink_LineEnd="f34436d3-57f3-458e-9ba4-f8ab3689d813"><style linestyle="2"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="eeb38a6c-ae6e-4ddd-a356-32f25651f88a"><pos X="233" Y="-262"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="36b25c81-e042-45e4-a31c-b4dbeab1b9f0" alignment="2"><pos X="141" Y="-225"/></EndWaypoint><Waypoint uuid="122d55bf-b448-4f0c-b089-5e293f8c4c05"><pos X="279" Y="-281"/></Waypoint><EndWaypoint uuid="e2194e5a-db3a-4822-bc02-b757dcad9927" alignment="3"><pos X="324" Y="-306"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="9c0650ed-8d95-4c0b-a50c-90209e845837" guiLink_Element="7912bbc0-335a-4601-aaea-766812ed6dcb" guiLineLink_LineBegin="62454b66-2a0d-4953-a244-59fb13083fde" guiLineLink_LineEnd="f34436d3-57f3-458e-9ba4-f8ab3689d813"><style linestyle="0"/><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="c6584e0e-b6a9-4cf9-a11c-bb24d91470fe"><pos X="567" Y="-257"/></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="04b6c683-da0e-400a-a035-fa36c82bbd05" alignment="2"><pos X="642" Y="-210"/></EndWaypoint><EndWaypoint uuid="64affaab-bc6a-4e73-820f-dc1a8fffd351" alignment="3"><pos X="490" Y="-306"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="aa67ac6f-b96c-4431-86f7-c1e0bead2295" guiLink_Element="170672e7-4f85-444e-b4a0-cd9db7f53343" guiLineLink_LineBegin="8f3fcf48-9d0a-4db2-ad5b-369c775c4251" guiLineLink_LineEnd="2902b8bd-9422-4a7c-bfea-0849eb4825d5"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="24b95261-1525-4f21-97bd-453388142830"><pos X="231" Y="-137"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="e9ad4923-cf2f-47db-a1ac-5fa0781efe75" textLabel="9" guiTextLabel_Element="170672e7-4f85-444e-b4a0-cd9db7f53343"><pos X="-15" Y="-20"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="3ab23720-2071-4247-a3a7-18582ef5feed" alignment="4"><pos X="169" Y="-204"/></EndWaypoint><Waypoint uuid="a2a93c19-5517-40c5-b9a2-331420db515d"><pos X="169" Y="-137"/></Waypoint><EndWaypoint uuid="b20f2183-350a-48df-9488-9f27743b18bf" alignment="1"><pos X="360" Y="-137"/></EndWaypoint></guiLineLinkWaypoint></LineLink><LineLink uuid="a5bf8bb1-b109-4d4b-8064-1b348982a03d" guiLink_Element="34b39087-cd42-4c8d-b686-bfcfe3ff5d7f" guiLineLink_LineBegin="62454b66-2a0d-4953-a244-59fb13083fde" guiLineLink_LineEnd="2902b8bd-9422-4a7c-bfea-0849eb4825d5"><guiLineLink_LineMiddleWaypoint><MiddleWaypoint uuid="5518d8a8-27db-4880-87ed-aaf98413d4e8"><pos X="578" Y="-138"/><guiTextLabelWaypoint_TextLabel><TextLabel uuid="dba0c681-22d3-4c22-beae-f4b50b636903" textLabel="9" guiTextLabel_Element="34b39087-cd42-4c8d-b686-bfcfe3ff5d7f"><pos X="-15" Y="-7"/></TextLabel></guiTextLabelWaypoint_TextLabel></MiddleWaypoint></guiLineLink_LineMiddleWaypoint><guiLineLinkWaypoint><EndWaypoint uuid="6227ae09-401b-4f7c-bfe3-1402a558a401" alignment="3"><pos X="652" Y="-189"/></EndWaypoint><Waypoint uuid="28773f8b-eb5f-4ab8-9ddb-bd644a8c0aa1"><pos X="652" Y="-138"/></Waypoint><EndWaypoint uuid="bbd0befe-2ed8-4b45-a476-f3fe6db5e3be" alignment="2"><pos X="453" Y="-138"/></EndWaypoint></guiLineLinkWaypoint></LineLink></guiDiagramGuiLink><guiDiagramLayer><DiagramLayer uuid="1a8a9a61-ec12-4ba2-8b7b-045560481496" name="Default"/></guiDiagramLayer></ClassDiagram></guiRootGuiDiagram></RootElement></Diagrams><ModelHistory><Package uuid="00000001-7510-11d9-86f2-000476a22f44" name="Root" visibility="public"><packagedElement><Package uuid="00000003-7510-11d9-86f2-000476a22f44" name="Component View" visibility="public"><packagedElement><Component uuid="4a3f7144-1308-420e-ad49-49f38d4f7746" name="cache" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\cache"><realization><ComponentRealization uuid="b1ddf3f8-2306-442a-95f3-953e305760f2" visibility="public" realizingClassifier="577b6386-052f-4b41-a12e-dc413d128bdb"/><ComponentRealization uuid="22bcfebf-355b-40dc-bec7-11420aa3f0c2" visibility="public" realizingClassifier="e44596f5-84fe-4ede-85b2-d4360328ef30"/><ComponentRealization uuid="183c316a-5161-4200-9429-be7a411f8944" visibility="public" realizingClassifier="9ba1afce-c166-4940-b987-d5033d97422f"/><ComponentRealization uuid="65f62cfa-8859-4c1f-82a4-f81bb5fa9741" visibility="public" realizingClassifier="b4fbbb5e-ccb3-4e67-8a33-2a7156362c09"/><ComponentRealization uuid="58bc43d7-a7f7-4e50-ae3d-8e33bb2b3655" visibility="public" realizingClassifier="f24bb013-bc15-4380-8dcd-7d3afadf49da"/><ComponentRealization uuid="3e61f09f-24c0-4533-aff4-db15bbd4fc43" visibility="public" realizingClassifier="4cbd4b4f-70f2-4e0e-8e31-1867bdc95e67"/></realization></Component><Component uuid="062a1084-835f-4903-bebd-9401ba761e82" name="communication" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\communication"><realization><ComponentRealization uuid="d9cdb18b-78ce-4f79-ac95-90f16108c4d5" visibility="public" realizingClassifier="0b3153ed-1fe4-4739-a92c-22aef6084880"/><ComponentRealization uuid="b2a8931b-c475-457e-8beb-bcc1e24f2792" visibility="public" realizingClassifier="ae1de26b-4144-4410-8eb5-276e998c7c7b"/><ComponentRealization uuid="a2c69441-ef69-4262-8c97-ccf410a752bd" visibility="public" realizingClassifier="198256f8-6f68-40c6-8818-e9e32eb46cbb"/><ComponentRealization uuid="9e4f19f1-1db5-4ac6-b592-bacf3a505509" visibility="public" realizingClassifier="6ab96bec-6356-4ab8-99c2-86062c2a87b4"/></realization></Component><Component uuid="255aab19-cf61-4aa8-89cc-945cec70b166" name="transfer" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\communication\transfer"><realization><ComponentRealization uuid="0f517401-b134-45d7-b198-45179d410bd5" visibility="public" realizingClassifier="c23aa30f-f714-44bb-861f-46617e2d21bf"/><ComponentRealization uuid="be55587c-b52d-47bd-8e7a-ad840a1440ba" visibility="public" realizingClassifier="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"/><ComponentRealization uuid="d815f8c0-37af-4111-8d9c-f2e57b3e3f13" visibility="public" realizingClassifier="9fa974e1-051f-4a36-acb7-f7116a577746"/><ComponentRealization uuid="f1f8e885-5e5e-48e3-afaf-eef97aa2bb4d" visibility="public" realizingClassifier="901fab39-5ad6-4f60-8a3a-998010e22b26"/></realization></Component><Component uuid="72cc3317-2f6d-4a30-a2a9-9d870c9f06d6" name="http" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\http"><realization><ComponentRealization uuid="b8b2dc88-9a7e-4eed-b6d3-eb9853c159f0" visibility="public" realizingClassifier="5508e5af-23d7-4ef4-9edd-271a111046a7"/><ComponentRealization uuid="d454b494-37c0-4b8e-b053-1a75a71ce8da" visibility="public" realizingClassifier="2458fe88-04c5-40d6-ae8c-75bc48716877"/><ComponentRealization uuid="a4fed928-83bf-48fb-9360-94bf8f3ce9c5" visibility="public" realizingClassifier="566b0c6f-cb93-41a5-a2d2-6afbb79e36f8"/><ComponentRealization uuid="59a5b32a-ff10-40c6-b08c-25a38ba95cc5" visibility="public" realizingClassifier="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ComponentRealization uuid="84116851-a084-4e6b-9b12-11df81f04251" visibility="public" realizingClassifier="da3a924a-f230-4204-9d41-9644faea3cf9"/><ComponentRealization uuid="0ebc5be9-af29-464e-bab5-d028962bccba" visibility="public" realizingClassifier="4bf56833-9631-46bf-a82b-2c51f93433f3"/></realization></Component><Component uuid="58e89e94-9ee5-4bd5-90b1-11e9fd576e3f" name="rules" visibility="public" usedForCodeSyncronization="true" codeLang="Java6.0 (1.6)" codeProjectFileOrDirectory="qroxy\src\fr\umlv\qroxy\rules"><realization><ComponentRealization uuid="36b80aa5-760f-40fc-b2bc-f553d30bbfa7" visibility="public" realizingClassifier="13b04fce-67a2-4c3e-8332-1a0abded9174"/><ComponentRealization uuid="07780a70-04c5-42da-8cef-fb1b0fc6ab94" visibility="public" realizingClassifier="050cecf9-589d-4a8e-8705-ad03fd6542c5"/><ComponentRealization uuid="764ee72e-e528-4c55-b492-255e3ef3e22c" visibility="public" realizingClassifier="51b56fa0-2f71-4d48-b767-6cd8f21a8846"/></realization></Component></packagedElement></Package><Package uuid="85d54268-48b9-4db2-a8c2-098ab5b9653b" name="State machines" visibility="public"/><Package uuid="4eed00d1-546d-464d-9ba0-d894b3cb9629" name="src" visibility="public"><packagedElement><Package uuid="f2bb7e02-9531-46f7-81bc-9b0fe049acd3" name="fr" visibility="public"><appliedStereotype><StereotypeApplication uuid="cc73e491-9205-4cb0-bddd-893751d0bace" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Package uuid="0bccb938-5861-4067-bd93-71be4b74b901" name="umlv" visibility="public"><appliedStereotype><StereotypeApplication uuid="f208a191-31c1-48a0-959c-cb33b94b0cba" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Package uuid="9161fa6a-e3e0-4255-9fef-79656bab03d3" name="qroxy" visibility="public"><appliedStereotype><StereotypeApplication uuid="8a0da029-3c0a-4ac4-a889-482e84d8d30a" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Package uuid="d81da90a-f38c-48bf-911a-98508cb4b8b1" name="cache" visibility="public"><appliedStereotype><StereotypeApplication uuid="8f290fe6-3dce-474a-ac11-1a7935bc0843" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Class uuid="577b6386-052f-4b41-a12e-dc413d128bdb" name="CacheInfo" visibility="public" usedForCodeSyncronization="true" DocComment="47577f7b-df0b-4c09-9761-ee555c64dc9d"><codeFileName><CodeFileName name="CacheInfo.java"/></codeFileName><ownedComment><Comment uuid="47577f7b-df0b-4c09-9761-ee555c64dc9d" body="
 Information about a cache entry.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="577b6386-052f-4b41-a12e-dc413d128bdb"/></Comment></ownedComment><ownedAttribute><Property uuid="dd4dffe5-771b-4006-930e-cdeaa78d822e" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="bbb48942-f941-4722-875f-f664a4f1cec0" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="ca944c14-bee6-44a3-98a9-2edf06e16bf4" name="expirationDate" visibility="private" isLeaf="true" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Property uuid="1ce0e9bf-a83f-4370-b3fc-fd9afdfba47e" name="contentType" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="6f2c5706-6d06-4ad5-b7b4-c225186ddc3c" name="contentLength" visibility="private" isLeaf="true" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Property uuid="af32127a-f2f2-4108-9c02-8fb8d787a21b" name="eTag" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="0283cd23-2d5d-482e-86c0-0b41c88d5826" name="mustRevalidate" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedAttribute><ownedOperation><Operation uuid="d2adb0d4-99f2-4cb2-8643-8279425744c5" name="CacheInfo" visibility="private"><appliedStereotype><StereotypeApplication uuid="bff67507-e18e-4f1a-8a2f-5dda5e2f29d5" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="eae0e549-55bb-4315-891d-b09975e507f8" name="expirationDate" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="4621c2cd-94aa-4620-a2ea-8cbf52699720" name="contentType" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="7f75a0db-c234-43ce-ac74-8746f082fa41" name="contentLength" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="19bdbd36-468a-49ad-a57f-f554b81c62f7" name="eTag" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="67babd34-d5db-4863-92cf-9764dd887b5f" name="mustRevalidate" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="9c019c46-9196-4423-bbc4-cf6647781152" name="getContentLength" visibility="public"><ownedParameter><Parameter uuid="6981ab8b-9062-442c-9744-19e70465f79e" name="return" direction="return" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="487bfa87-1ed1-4cc1-8319-75af2bec9459" name="getContentType" visibility="public"><ownedParameter><Parameter uuid="10fb24d2-d3ba-4aa9-9e24-0b1ff07ed824" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="56ca190c-55d5-4cf8-87ac-ab68119cee39" name="geteTag" visibility="public"><ownedParameter><Parameter uuid="bf81cb81-fdcf-495c-ad54-6e12290f6702" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="4c4346c2-2fb6-45c7-9517-f5486d83f6fb" name="getExpirationDate" visibility="public"><ownedParameter><Parameter uuid="f911f9a1-bc96-4dac-81ce-65a43b9ac8ec" name="return" direction="return" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="0deef3cd-33fd-430e-af8b-0919a826f637" name="isMustRevalidate" visibility="public"><ownedParameter><Parameter uuid="a421cca1-ddb1-42ce-871e-9df40e444742" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="66225d75-89e4-4d8e-be59-3e7c1af1b5ff" name="getCacheInfo" visibility="public" isStatic="true" DocComment="87144fc2-be9e-4d3c-88d0-1485aa159985"><ownedComment><Comment uuid="87144fc2-be9e-4d3c-88d0-1485aa159985" body="
 Gets the informations from a bytebuffer.

 @param buffer The buffer to read data from. (Must be well positioned!)

 @return The cache info.
"><annotatedElement idref="66225d75-89e4-4d8e-be59-3e7c1af1b5ff"/></Comment></ownedComment><ownedParameter><Parameter uuid="3821c075-07c2-4faa-b9d2-ec7562704862" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="acd6a7e1-b088-4ac2-8ff2-bd6976e6172e" name="return" direction="return" type="577b6386-052f-4b41-a12e-dc413d128bdb"/></ownedParameter></Operation><Operation uuid="cf6cf683-89ac-40c0-a576-7d097b2e5706" name="getCacheInfo" visibility="public" isStatic="true" DocComment="b089d300-0a5a-4d40-a613-c58b3b1b4d21"><ownedComment><Comment uuid="b089d300-0a5a-4d40-a613-c58b3b1b4d21" body="
 Gets the informations about a cache entry.

 @param fileInfo File information.
 @param fileData Data.
 @return The CacheInfo that contains all informations. Null if there is a
 problem.
"><annotatedElement idref="cf6cf683-89ac-40c0-a576-7d097b2e5706"/></Comment></ownedComment><ownedParameter><Parameter uuid="e8f41d36-1248-4570-8c81-6d40ad7ff64e" name="fileInfo" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="6827d0a2-a294-4ccb-9632-fd350449228c" name="fileData" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="40ce0524-bdde-4376-90ea-0d29c246959a" name="return" direction="return" type="577b6386-052f-4b41-a12e-dc413d128bdb"/></ownedParameter></Operation><Operation uuid="c4961335-e65d-49ea-82ec-6e033af3227b" name="writeCacheInfo" visibility="public" isStatic="true" DocComment="3f1fc806-2c9d-4e80-ad77-5837944d8536"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="3f1fc806-2c9d-4e80-ad77-5837944d8536" body="
 Writes to the channel a valid cache info file from the header http.

 @param channel Channel where to write data.
 @param headerHttp Header http to write.
"><annotatedElement idref="c4961335-e65d-49ea-82ec-6e033af3227b"/></Comment></ownedComment><ownedParameter><Parameter uuid="5645bf02-6367-4d61-b6e8-3065e8bf703a" name="channel" type="7be588c1-7d6a-40fe-b9e5-f3617e90db3c"/><Parameter uuid="a69b5a53-204d-4b16-84be-bf966ce72372" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="339b740f-04d5-4848-a1f4-6c684415cb5e" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="e44596f5-84fe-4ede-85b2-d4360328ef30" name="CacheRequest" visibility="public" usedForCodeSyncronization="true" DocComment="bae1f010-205f-4b79-89d6-bca863d397cb"><codeFileName><CodeFileName name="CacheRequest.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="d067d0c6-83ad-4326-953b-9766d9c6f80d" visibility="public" contract="0b3153ed-1fe4-4739-a92c-22aef6084880"/></interfaceRealization><ownedComment><Comment uuid="bae1f010-205f-4b79-89d6-bca863d397cb" body="
 Handles a network cache operation.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="e44596f5-84fe-4ede-85b2-d4360328ef30"/></Comment></ownedComment><ownedAttribute><Property uuid="c052094e-9bdb-420c-a811-1948b1406272" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="d9aa670b-efb7-48b6-837f-162c2c2c098f" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="5a81c1de-0595-498d-b018-d972b29be836" name="LOOPBACK_ADDRESS" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="26982fcf-f062-4f74-bdd0-5e0ed08254fb" visibility="public" value="new InetSocketAddress(&quot;127.0.0.1&quot;, 5000)"/></defaultValue></Property><Property uuid="7cb7ac13-be26-4ce7-b259-1f46d565dc07" name="MULTICAST_ADDRESS" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="8f1939ba-1097-4fc8-9f3f-7e4f7ea25662" visibility="public" value="new InetSocketAddress(&quot;239.252.0.0&quot;, 5001)"/></defaultValue></Property><Property uuid="ec1a7870-38ad-4a9c-beb5-4ebfd8a9345f" name="PORT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="ed3ea156-4d71-48c4-984f-79b5fc9aa0cf" visibility="public" value="5000"/></defaultValue></Property><Property uuid="df691d69-75f8-4dd5-a2e8-1fc2289d675a" name="MULTICAST_TTL" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="34f7f3a3-ffa4-4b54-9218-c076937a5744" visibility="public" value="1"/></defaultValue></Property><Property uuid="6581a0cb-50f8-495a-bfeb-7f4ec6ffc41c" name="PORT_RANGE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="9d7b29fa-e686-49a2-90ff-4a42093d2b97" visibility="public" value="5000"/></defaultValue></Property><Property uuid="0d052732-9498-47b6-b8a3-955aa845a3cb" name="PORT_START" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="2fb24919-1de0-46d8-9ab2-c57cc26dc9b6" visibility="public" value="50000"/></defaultValue></Property><Property uuid="2523b88e-d291-4d9e-bfe0-1640c5e07f1a" name="EXPIRATION_TIME" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="04c58eea-969f-4c02-b531-33ecce44e5df" visibility="public" value="1000"/></defaultValue></Property><Property uuid="ef32bced-920b-4930-8eef-e0275972da39" name="selector" visibility="private" isLeaf="true" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Property uuid="e0144025-6679-40a0-8816-4e62691abf90" name="connection" visibility="private" isLeaf="true" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/><Property uuid="4b771e1d-686d-45a7-9699-4bbec9574994" name="urlHashed" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="7c645ff8-110b-4451-8ef9-ceaf1e9b3577" name="serverSocketChannel" visibility="private" type="007f1311-d0cf-4005-b7fb-5940096d639d"/><Property uuid="09d3752c-3a84-432c-bcea-24f174644919" name="clientSocketChannel" visibility="private" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="d2176c62-25bb-4b7a-b553-77336ccfa37a" name="cacheSelectionKey" visibility="private" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Property uuid="9d36c294-bc54-47d2-aad9-dc10dfc6fe44" name="requestPort" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="2beec8af-f503-4c70-9aec-b22e70c80af7" visibility="public" value="0"/></defaultValue></Property><Property uuid="a1291d83-689e-4600-b55d-94c25c741197" name="socketRequestTimeout" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="a98c7921-d4de-4fa6-9e32-a1da96f1b315" visibility="public" value="0"/></defaultValue></Property><Property uuid="38b33071-a208-4ef5-8540-48a1fd851454" name="isTimeout" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="b987d5a3-8ee0-400f-9e1c-d9a9fcd5b122" visibility="public" value="true"/></defaultValue></Property><Property uuid="8d09401c-4fe9-4893-b485-97bd84a484bf" name="headerRead" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="299d4a26-928f-4794-8ca7-d5bd71d8c19f" visibility="public" value="false"/></defaultValue></Property><Property uuid="813b33da-1523-4222-8119-63fc0aabd147" name="headerSize" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="e17b6139-81f2-4a9a-a368-fa9b470765f8" visibility="public" value="-1"/></defaultValue></Property><Property uuid="3b9c7ff8-9e07-42a4-870d-3f0a031d8a4d" name="headerBuffer" visibility="private" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"><defaultValue><LiteralString uuid="666a0894-c4d8-4953-b83f-32ab4ba27f1b" visibility="public" value="ByteBuffer.allocate(1024)"/></defaultValue></Property></ownedAttribute><ownedOperation><Operation uuid="9afef74d-b52c-4634-a89b-115785b2ec59" name="CacheRequest" visibility="public" DocComment="5c8bb415-2f1b-402c-82af-6636b2e3823e"><ownedComment><Comment uuid="5c8bb415-2f1b-402c-82af-6636b2e3823e" body="
 Performs a cache request on the network.

 @param selector Selector.
 @param connection Connection that request a ressource.
 @param url Url requested.
"><annotatedElement idref="9afef74d-b52c-4634-a89b-115785b2ec59"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="a535133f-a832-453b-80cb-32fa34d6073f" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="726f0eef-8305-4466-a423-60fd069edd1f" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="9998d099-9977-495a-b7ac-80183e8b0f95" name="connection" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/><Parameter uuid="e6c8e15f-e376-4be9-9716-dc0bf51ef1f4" name="urlHashed" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="4a32260f-96f3-45a7-8ec6-37abb2bf945c" name="sendRequest" visibility="public" DocComment="24dfd461-ceba-421c-a218-89072832e9e7"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="24dfd461-ceba-421c-a218-89072832e9e7" body="
 Send a unicast/multicast request to the network and opens the specified
 port in order to wait the answer.
"><annotatedElement idref="4a32260f-96f3-45a7-8ec6-37abb2bf945c"/></Comment></ownedComment><ownedParameter><Parameter uuid="bddde5e7-bc62-4dbc-8bf6-82333218de09" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="16a7494b-5007-4d87-aaea-27c2e5a90412" name="getConnection" visibility="public" DocComment="73979380-5048-431e-8c08-9ef5c5a2f418"><ownedComment><Comment uuid="73979380-5048-431e-8c08-9ef5c5a2f418" body="
 Returns the connection that instancied this cache operation.

 @return The connection.
"><annotatedElement idref="16a7494b-5007-4d87-aaea-27c2e5a90412"/></Comment></ownedComment><ownedParameter><Parameter uuid="bdc3febe-bf4a-4f22-86ca-9d240a111dbb" name="return" direction="return" type="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></ownedParameter></Operation><Operation uuid="04297113-ad15-411c-815c-6f70f8ff4c2b" name="getUrlHashed" visibility="public" DocComment="ec68e7ad-a9d6-4f3b-9fbb-8b94255a2f39"><ownedComment><Comment uuid="ec68e7ad-a9d6-4f3b-9fbb-8b94255a2f39" body="
 Returns the url hashed.
"><annotatedElement idref="04297113-ad15-411c-815c-6f70f8ff4c2b"/></Comment></ownedComment><ownedParameter><Parameter uuid="6058c98b-0e37-4d99-93d0-fff4ce85b4db" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="c2b2c39a-2001-4776-a354-f7bb216a1fe7" name="isTimeout" visibility="public" DocComment="2f94574b-d11a-44e1-b4cb-db58c9baa7df"><ownedComment><Comment uuid="2f94574b-d11a-44e1-b4cb-db58c9baa7df" body="
 Returns true if the cache request is valid.

 @return False if the cache request has timeout or has still not received any connection.
"><annotatedElement idref="c2b2c39a-2001-4776-a354-f7bb216a1fe7"/></Comment></ownedComment><ownedParameter><Parameter uuid="dbc6d8dd-ddb7-40ba-95e4-abf880d68133" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="09aa1362-24f2-4928-b9c4-ade557148c86" name="close" visibility="public"><appliedStereotype><StereotypeApplication uuid="439c01dd-b39c-461b-8851-9a21f3d71f06" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="d09e92d9-715e-48f3-b97a-370c74fd9307" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="756e9f2a-b15f-41ed-8655-14e8c02a29ba" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="8baafed5-748e-46a1-8b19-ac7f1d5d4445" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6da46266-ad33-4778-b9b4-ad496bf4e4dd" name="handleRead" visibility="public"><appliedStereotype><StereotypeApplication uuid="545c2036-6d51-44f6-ae84-6abbe59a7225" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="e276c816-04e8-48df-9275-7323a8eb7f68" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="3617fdb8-25a1-4ab0-966d-33fb28b3a387" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="669ae1be-b042-4756-b9e5-7e96974b55dc" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="dfb7e869-b4d0-4a06-bdb6-0565fb3a856c" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="34608cfa-6b60-4f42-9d4c-3a24c0d995f0" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="adc833b6-12f3-4712-bfaa-5e9754431853" name="handleWrite" visibility="public"><appliedStereotype><StereotypeApplication uuid="69cd628d-52bd-4149-a8fe-dd0c15f3c3c4" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="6e686b41-1209-46b3-a98e-ae5d8abc32f2" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="638f8aec-570b-4196-bbe3-809e50b053cb" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="59ccdf40-9323-4e18-b7ba-5f88a869ebde" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="c21c8c81-fba8-465a-8b7d-0936355b2209" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="37d4a2fe-6022-4e77-835f-0ee05298ab29" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="bbd75f88-5942-4865-bf63-ffe82b716768" name="handleAccept" visibility="public"><appliedStereotype><StereotypeApplication uuid="15e78ea6-9f10-4d26-9152-a9402e22cc62" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="09987a89-a10b-440e-9c7f-32a69611fddb" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="198716be-f534-4480-b06f-ea6954bcbc10" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="57e53007-a022-4cdc-b561-d33628dc8d2e" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="da913fc1-e17d-4d97-9706-e20cb3df4de0" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="c418d3c4-1148-4d5f-8282-5dca9a5ac631" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="21505148-0894-4c8b-b9b2-2063593e4c75" name="handleConnect" visibility="public"><appliedStereotype><StereotypeApplication uuid="2d2a142b-7575-4fb7-9ebe-bb4af5e20d37" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="b0ed167d-ffd0-44b5-b07f-c056e57a521c" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="92a7fbf8-f131-4aef-8676-b02b44369316" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="1463bd70-f147-4690-8c13-22407642b830" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="f59c3e16-5438-48ed-827f-80bf6880ea7d" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="9b4d2b72-a51d-471a-a6d0-c80331c193f1" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="ea72062d-71b5-4b1e-aea6-3142336c31d7" name="requestData" visibility="public" DocComment="ed46d3b0-4cbd-4491-a1fc-d29940234a0f"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="ed46d3b0-4cbd-4491-a1fc-d29940234a0f" body="
 Send to the server that he can send the cache data.
"><annotatedElement idref="ea72062d-71b5-4b1e-aea6-3142336c31d7"/></Comment></ownedComment><ownedParameter><Parameter uuid="39262eaa-e817-49f7-895e-a4456006a3ca" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="9ba1afce-c166-4940-b987-d5033d97422f" name="CacheServer" visibility="public" usedForCodeSyncronization="true" DocComment="0ba45609-9770-4f59-8c5e-e5db98e03152"><codeFileName><CodeFileName name="CacheServer.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="6f2ec207-5171-4c6a-9170-4dc76eb7638b" visibility="public" contract="97532499-b594-4c32-9fb2-85b9cfaa23fd"/></interfaceRealization><ownedComment><Comment uuid="0ba45609-9770-4f59-8c5e-e5db98e03152" body="
 Listens for the cache requests.

 Listens for loopback request and multicast requests.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="9ba1afce-c166-4940-b987-d5033d97422f"/></Comment></ownedComment><ownedAttribute><Property uuid="e3c52867-d230-4ad5-92c0-026e55f2efa4" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="69485164-ddf8-4a55-9ddc-fe8fc8ae1f37" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="a0a72678-6611-4e85-8df9-73678b8f08a7" name="LOOPBACK_PORT" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="532da9ad-b9a1-4cb0-afe9-7a88ebd9d17f" visibility="public" value="new InetSocketAddress(5000)"/></defaultValue></Property><Property uuid="21dbae5c-27bc-4a48-bedb-4963def949f4" name="MULTICAST_ADDRESS" visibility="public" isLeaf="true" isStatic="true" type="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b"><defaultValue><LiteralString uuid="a23e6095-cb70-4614-87b5-32f3aeebb2e7" visibility="public" value="new InetSocketAddress(&quot;239.252.0.0&quot;, 5001)"/></defaultValue></Property><Property uuid="a43e9a15-390b-43bd-ba71-402cb512810b" name="cacheDirectory" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="61fa6ca1-bd34-4704-8c0d-e3c2ee7bc4f9" name="socket" visibility="private" isLeaf="true" type="72528084-cfa8-48bf-b03c-91abbc5c1813"/><Property uuid="1d942c8a-80fe-41fb-9455-f8c23d2cf572" name="requestBuffer" visibility="private" isLeaf="true" type="80bf4906-7a11-45fc-b6ec-40ebe7fdbd38"><lowerValue><LiteralString uuid="e1d5c8d7-97ad-4b33-84a8-f017e4f5aec1" visibility="public" value="*"/></lowerValue><upperValue><LiteralString uuid="d4379ae4-9a56-41df-9c7b-f2ec8f14543c" visibility="public" value="*"/></upperValue><defaultValue><LiteralString uuid="4e26d262-e46a-4b7b-92ae-4b11716426c9" visibility="public" value="new byte[1024]"/></defaultValue></Property><Property uuid="422d9b38-82aa-4ddf-91b6-cbede0c90dce" name="httpDateFormat" visibility="private" isLeaf="true" type="cbe6ae13-0fd0-4384-a96a-9c3c16fa9f44"><defaultValue><LiteralString uuid="95294ed8-163f-4d5a-b6bd-b3913c494d18" visibility="public" value="new SimpleDateFormat(&quot;EEE, dd MMM yyyy HH:mm:ss zzz&quot;, Locale.US)"/></defaultValue></Property><Property uuid="00470ab8-5f34-49d6-b7c9-10c5a671b4d8" name="encoder" visibility="private" isLeaf="true" type="bda4944c-0431-4e56-a20a-3f4aad466d8f"><defaultValue><LiteralString uuid="58d364fd-02eb-4cfa-8e41-9f3016ee0bc6" visibility="public" value="Charset.forName(&quot;ISO-8859-1&quot;).newEncoder()"/></defaultValue></Property></ownedAttribute><ownedOperation><Operation uuid="8ced967b-1d4d-4d4d-b076-b1b708e1552b" name="CacheServer" visibility="private" DocComment="9290075d-ed83-49e0-8db6-dfa26d0bc75a"><ownedComment><Comment uuid="9290075d-ed83-49e0-8db6-dfa26d0bc75a" body="
 Creates a cache server object listening the socket socket.

 @param socket Socket to listen.
"><annotatedElement idref="8ced967b-1d4d-4d4d-b076-b1b708e1552b"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="4d4bb37d-9bb9-449d-ade3-ceeeebf719aa" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="ad4186d0-1f8d-4080-83db-65e2a9d04aee" name="socket" type="72528084-cfa8-48bf-b03c-91abbc5c1813"/><Parameter uuid="9f91f7a8-42dc-4d4c-818a-cf27cb429e9b" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="e2a8dcf1-25b1-4e84-9bfd-1bf23a3f380f" name="run" visibility="public"><appliedStereotype><StereotypeApplication uuid="4d5c6d79-c062-4bf0-bd11-f2ec25c1d8c8" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="3f30bdc2-010f-45c1-99e2-0697b115fe2d" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="3559a1a3-6fdf-4930-a066-f525d55e39ae" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="90f42dab-6772-4458-9215-cd9623124fd8" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="9d084170-6ae6-480a-9b13-444fe34e55a5" name="serve" visibility="public" isStatic="true" DocComment="8287bd7e-6012-4eb0-ba61-2bafbc493827"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="8287bd7e-6012-4eb0-ba61-2bafbc493827" body="
 Launch the cache server.

 @param nbConnections Max number of connections to handle.
"><annotatedElement idref="9d084170-6ae6-480a-9b13-444fe34e55a5"/></Comment></ownedComment><ownedParameter><Parameter uuid="e197da58-c96c-4807-96c1-bd31bcb7137c" name="nbConnections" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="b0027e20-2e2b-4b6f-aa0d-ab5459467683" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="eaa5e5c6-216d-450a-b6d8-b90442873890" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="b4fbbb5e-ccb3-4e67-8a33-2a7156362c09" name="CacheUtilities" visibility="public" usedForCodeSyncronization="true" DocComment="a938341f-7f74-4ea7-ae62-b1c64e375552"><codeFileName><CodeFileName name="CacheUtilities.java"/></codeFileName><ownedComment><Comment uuid="a938341f-7f74-4ea7-ae62-b1c64e375552" body="
 Utilities for cache management.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="b4fbbb5e-ccb3-4e67-8a33-2a7156362c09"/></Comment></ownedComment><ownedOperation><Operation uuid="0c74e82d-582b-498f-ae9e-c076264d8657" name="isRequestedDataCanBeCached" visibility="public" isStatic="true" DocComment="43fb621b-ddf4-4da2-a806-c1e04a2d0b00"><ownedComment><Comment uuid="43fb621b-ddf4-4da2-a806-c1e04a2d0b00" body="
 Determines if the http request is cachable or not.

 @return true if a cache operation can be made.
"><annotatedElement idref="0c74e82d-582b-498f-ae9e-c076264d8657"/></Comment></ownedComment><ownedParameter><Parameter uuid="a6257269-ede2-4e3e-8e69-694951aeead6" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="3bf77427-421c-4335-9766-e4cc15c21f9a" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="65acd79b-e900-43ef-98f9-fc5f0fcbdc7a" name="hashUrl" visibility="public" isStatic="true" DocComment="d50b7732-b54f-4f3d-a55e-1d2377758a4d"><raisedException idref="8ca8eb9d-99e1-491d-9455-b2263b91a587"/><ownedComment><Comment uuid="d50b7732-b54f-4f3d-a55e-1d2377758a4d" body="
 Hash an URL using the SHA256 algorithm.

 @param url The URL.
 @return The hashed url using SHA256.

 @throws NoSuchAlgorithmException If SHA-256 isn&apos;t available on the
 system.
"><annotatedElement idref="65acd79b-e900-43ef-98f9-fc5f0fcbdc7a"/></Comment></ownedComment><ownedParameter><Parameter uuid="b66cfbfa-d3ec-4158-b133-1c2b7accaa7b" name="url" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="011a8da3-23ce-464e-8cf8-6f749fe6f083" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="da8289c7-116c-4c1d-9ec1-3cde061260ed" name="getCacheHeaderHttpValue" visibility="public" isStatic="true" DocComment="10999c3c-19e9-4f4b-b15c-2d1b95873b1d"><ownedComment><Comment uuid="10999c3c-19e9-4f4b-b15c-2d1b95873b1d" body="
 Returns the value of the cache-control field.

 @return Null if the field cannot be parsed.
"><annotatedElement idref="da8289c7-116c-4c1d-9ec1-3cde061260ed"/></Comment></ownedComment><ownedParameter><Parameter uuid="a6c4032d-3409-4a1a-91fb-80c92042370f" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="177b9993-5a34-4572-8626-c7aa3bed0f45" name="return" direction="return" type="288644bd-0f93-4890-8831-b1048deb82de"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="f24bb013-bc15-4380-8dcd-7d3afadf49da" name="CacheWriter" visibility="public" usedForCodeSyncronization="true" DocComment="d0d452a1-b559-4594-afb0-d6246f25aef3"><codeFileName><CodeFileName name="CacheWriter.java"/></codeFileName><ownedComment><Comment uuid="d0d452a1-b559-4594-afb0-d6246f25aef3" body="
 Writes received data to the local cache.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></Comment></ownedComment><ownedAttribute><Property uuid="7189d328-9af2-42a8-85c6-8b28a029186e" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="37a3c369-3a31-4922-bf2f-99b1b2851cdc" visibility="public" value="Logger.getLogger(&quot;Cache&quot;)"/></defaultValue></Property><Property uuid="cb6f7101-ebcf-4a64-9ffe-1c26ed1ca34d" name="totalWrite" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"><defaultValue><LiteralString uuid="172dfcb6-b7fc-4117-aab8-6576647de597" visibility="public" value="0"/></defaultValue></Property><Property uuid="d3c43a4c-f207-4326-8a71-f5b6c743fd6d" name="headerHttp" visibility="private" isLeaf="true" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Property uuid="30ade970-1b6c-4b83-a393-2f8ebd8f3148" name="fileInfo" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="4ade3f29-c4fb-4014-a5fe-6e773b176580" name="fileData" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="3525a2ff-abc7-4d16-9fba-f586ce5e3535" name="fileInfoChannel" visibility="private" isLeaf="true" type="14305e17-d114-4ada-91cd-3cde9ec56681"/><Property uuid="f96cf3db-c545-4d73-a3aa-d8d2c9431946" name="fileDataChannel" visibility="private" isLeaf="true" type="14305e17-d114-4ada-91cd-3cde9ec56681"/><Property uuid="d49b5b63-52e8-4419-ac9a-d2bde757b08c" name="fileInfoLock" visibility="private" isLeaf="true" type="413346c5-ceaa-4f36-8166-ca18b56975a4"/><Property uuid="7193fd89-fb1c-4492-a2c4-e89b372bf3ba" name="fileDataLock" visibility="private" isLeaf="true" type="413346c5-ceaa-4f36-8166-ca18b56975a4"/></ownedAttribute><ownedOperation><Operation uuid="4e1d19eb-fcb7-4777-8e0c-198043bc3cae" name="CacheWriter" visibility="public" DocComment="fbe69ad6-ecbc-4a50-b420-50b8388486f1"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="fbe69ad6-ecbc-4a50-b420-50b8388486f1" body="
 Creates a cache writer objects.

 Once the writer is created, the files are locked by the OS. You must call
 close() to release the files.

 @param urlHashed Hasched url of the data to write.
 @param cacheDirectory Cache directory where to place cache files.
"><annotatedElement idref="4e1d19eb-fcb7-4777-8e0c-198043bc3cae"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="74acad7a-9344-4769-b7cf-9d5073e93d7f" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="d87c62bc-270e-483a-9d1f-c545fc6b2216" name="urlHashed" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="13d4afac-d3ba-4189-8e20-26e68eb3ba8b" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="61a60902-134e-4b3d-b1e0-107946a93eb5" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/></ownedParameter></Operation><Operation uuid="5a3c40e1-a57f-4381-a06c-cacf984b4ec9" name="write" visibility="public" DocComment="4001f6b8-469f-49e8-a835-f9a19c79f173"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="4001f6b8-469f-49e8-a835-f9a19c79f173" body="
 Performs a write operation to the file.

 @param buffer The buffer to write. Write from the position to the limit.
"><annotatedElement idref="5a3c40e1-a57f-4381-a06c-cacf984b4ec9"/></Comment></ownedComment><ownedParameter><Parameter uuid="14963d4e-0cf6-483a-b90f-e0a1a02d9cf8" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="0e6a7fb0-3bdc-42a3-890a-6569ef97dd49" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="2f65cd77-0539-467d-bb9d-8b70705acf37" name="close" visibility="public" DocComment="4a1026e1-2d8d-4c52-8354-a14619ff2813"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="4a1026e1-2d8d-4c52-8354-a14619ff2813" body="
 Closes the file, writes the metadata file and unlock everything.

 @param cancelCacheOperation Set to true to cancel the cache operation.
"><annotatedElement idref="2f65cd77-0539-467d-bb9d-8b70705acf37"/></Comment></ownedComment><ownedParameter><Parameter uuid="6f5c4158-749b-4270-af97-f4d476e4c0e0" name="cancelCacheOperation" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="99dd521d-2923-4a4f-8019-bdc863695471" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="25b80fe7-2ff8-4ba7-bec9-52a08ea12b14" name="isDataCachable" visibility="public" isStatic="true" DocComment="2ef4e7b6-2f06-4a08-a8cd-bfd1db4661a2"><ownedComment><Comment uuid="2ef4e7b6-2f06-4a08-a8cd-bfd1db4661a2" body="
 Returns if the header http is cachable.

 @param headerHttp The header http to checks.

 @return True if cachable, false otherwise.
"><annotatedElement idref="25b80fe7-2ff8-4ba7-bec9-52a08ea12b14"/></Comment></ownedComment><ownedParameter><Parameter uuid="c3ffb14e-d9fd-493f-96fc-e44d77cb72e7" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="b082b18e-57a5-40a6-9927-2421a0d316f2" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="4cbd4b4f-70f2-4e0e-8e31-1867bdc95e67" name="LocalCache_Old" visibility="public" usedForCodeSyncronization="true" DocComment="08a15f3d-52a9-48a3-a2fd-e3f0194a4280"><codeFileName><CodeFileName name="LocalCache_Old.java"/></codeFileName><ownedComment><Comment uuid="08a15f3d-52a9-48a3-a2fd-e3f0194a4280" body="
 Handles a local cache operation.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="4cbd4b4f-70f2-4e0e-8e31-1867bdc95e67"/></Comment></ownedComment><ownedAttribute><Property uuid="c2961b7f-b5a9-4b8e-a34f-5426f74200ba" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="018e9c80-acc6-4ef3-bd0a-fb7b9c066f4d" visibility="public" value="Logger.getLogger(LocalCache_Old.class.getName())"/></defaultValue></Property><Property uuid="529b4ef6-7bf1-4cc1-908f-d5e9b9d3ce00" name="httpDateFormat" visibility="private" isLeaf="true" isStatic="true" type="82e38df7-3690-4455-b404-75d4987796cd"><defaultValue><LiteralString uuid="418fd74f-4f20-43ae-97af-09afedaf321b" visibility="public" value="new SimpleDateFormat(&quot;EEE, dd MMM yyyy HH:mm:ss zzz&quot;, Locale.US)"/></defaultValue></Property><Property uuid="98b0be8e-5f59-4765-9f41-062b49ab94e1" name="LOCAL_CACHE_PATH" visibility="public" isLeaf="true" isStatic="true" type="81530a39-1176-47d7-add3-8da2cacba49c" DocComment="dd3b7b84-a573-46e6-ab61-a843f180fecc"><ownedComment><Comment uuid="dd3b7b84-a573-46e6-ab61-a843f180fecc" body="
 Local cache path.

 This folder must exists before starting qroxy.
"><annotatedElement idref="98b0be8e-5f59-4765-9f41-062b49ab94e1"/></Comment></ownedComment><defaultValue><LiteralString uuid="b940e7a2-a895-47e4-a8bb-242096137998" visibility="public" value="&quot;C:/Cache&quot;"/></defaultValue></Property><Property uuid="a1b09f7b-eb43-4ac6-a3d3-560ab158cdf3" name="urlHashed" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="9b2ef8e0-0691-4093-8ecb-ce797b837512" name="contentType" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="a2419c48-21cf-4da1-b1e7-51e2300ed5b4" name="canRead" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="96f2c39f-235f-49ea-aa25-5b068da7cead" name="canWrite" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="8cc3e487-17cc-486a-92df-174561851815" name="fileChannel" visibility="private" type="14305e17-d114-4ada-91cd-3cde9ec56681"><defaultValue><LiteralString uuid="70438614-0882-4f57-9825-c6028400fe21" visibility="public" value="null"/></defaultValue></Property><Property uuid="5dd46d0c-71ef-4054-80f0-e5898559d47a" name="filePath" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="5fac0dc7-f500-4886-9cae-7a15de735bf4" name="infoFilePath" visibility="private" isLeaf="true" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Property uuid="2bd182cb-af21-49db-90fe-504f2316ff99" name="cacheSize" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedAttribute><ownedOperation><Operation uuid="61c34177-2849-4c93-942b-0a3b50601118" name="LocalCache_Old" visibility="private" DocComment="f48bd1ef-b635-4bb7-8c39-0ccfe4d75040"><ownedComment><Comment uuid="f48bd1ef-b635-4bb7-8c39-0ccfe4d75040" body="
 Create the cache object.
"><annotatedElement idref="61c34177-2849-4c93-942b-0a3b50601118"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="32cdb885-7fb0-44a5-8bc1-532f2dc3ba61" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="1943c13d-5558-442a-ae2b-76ec80e9c65d" name="urlHashed" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="27394bde-7b4c-4633-bb87-22b448b62eee" name="cacheFilePath" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="c222e081-fd3a-4ba5-a70e-b705743ff4a2" name="cacheInfoFilePath" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="34a2b74f-eff0-4ede-9516-95f2708c8195" name="cacheSize" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="e7702d0e-1d77-4378-837c-2773a0a7b78f" name="canRead" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="e258cf4b-e9f3-4f86-aaef-3e4e8018820d" name="canWrite" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="91d24804-ab6f-43b4-8712-240f133e28af" name="contentType" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="2992f526-12bb-469a-9810-cf51b94050f8" name="read" visibility="public" DocComment="ab5c81c0-ebd9-44e4-9e58-de2ecc50d2c8"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="ab5c81c0-ebd9-44e4-9e58-de2ecc50d2c8" body="
 Reads data from the cache file.

 @param buffer Data where to place read data.

 @return See FileChannel.read()
"><annotatedElement idref="2992f526-12bb-469a-9810-cf51b94050f8"/></Comment></ownedComment><ownedParameter><Parameter uuid="dde26f56-bc3b-4a88-9409-8e6770d6adc6" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="73dec421-0fb4-405e-a625-36bec3192b56" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="164a568d-a18c-4e68-8898-8713b25b7019" name="write" visibility="public" DocComment="743c613a-bee9-423a-a37f-ce714962fe27"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="743c613a-bee9-423a-a37f-ce714962fe27" body="
 Write data to the cache.

 @param buffer Data to write. Will write data from position to the limits.

 @return See FileChannel.write()
"><annotatedElement idref="164a568d-a18c-4e68-8898-8713b25b7019"/></Comment></ownedComment><ownedParameter><Parameter uuid="c103416b-caad-46fe-b1d7-89658e2a6f39" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="3028c8c8-eb01-4613-ad2d-2f362a849208" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="20d8f4f1-f743-4515-a151-cd7eb1400f8c" name="cancel" visibility="public" DocComment="f7877a43-0696-4129-95b4-2992fdd5af67"><ownedComment><Comment uuid="f7877a43-0696-4129-95b4-2992fdd5af67" body="
 Cancels this cache.

 Deletes all the cache files associated.
"><annotatedElement idref="20d8f4f1-f743-4515-a151-cd7eb1400f8c"/></Comment></ownedComment><ownedParameter><Parameter uuid="51af9471-d66d-4b18-909e-05c4527f1e14" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="4fc33661-48d8-4b35-9c16-2ab260673a2f" name="close" visibility="public" DocComment="a6c710b1-8d3d-4261-b452-e02655c221ce"><ownedComment><Comment uuid="a6c710b1-8d3d-4261-b452-e02655c221ce" body="
 Closes the cache.

 Writes the cache header information file.
"><annotatedElement idref="4fc33661-48d8-4b35-9c16-2ab260673a2f"/></Comment></ownedComment><ownedParameter><Parameter uuid="d68a71e1-c6ea-4335-8fd1-d8475f9b5d8f" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="449eb3f8-8ed5-4fdf-97b0-031200902699" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="a5742ec2-118d-4a7f-abff-fa97fabe021d" name="canWrite" visibility="public" DocComment="8162715d-800e-42dd-9d6d-3c7779d27a3a"><ownedComment><Comment uuid="8162715d-800e-42dd-9d6d-3c7779d27a3a" body="
 Parses the header http and updates the cache object depending the result.

 @return The reference of the cache object, or null if the cache object is
 useless and must be destroyed.
"><annotatedElement idref="a5742ec2-118d-4a7f-abff-fa97fabe021d"/></Comment></ownedComment><ownedParameter><Parameter uuid="131bba03-1358-44d6-81e6-2b4a8e41cac4" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="e5930f7b-eef4-4e5d-b3e7-0d588c7c1435" name="canRead" visibility="public"><ownedParameter><Parameter uuid="16bc2c13-2d0d-40d3-be0f-539f0a2222ea" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="4ede2fed-1592-4060-9169-28a516a6323f" name="getCacheSize" visibility="public"><ownedParameter><Parameter uuid="05297576-2518-42c8-8358-79f92f7cbc67" name="return" direction="return" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="0cbf94a7-93dd-43b2-bcbf-0a1a6880536d" name="requireValidation" visibility="public"><ownedParameter><Parameter uuid="7b36b4ed-2382-4f1f-b95a-1f994214f527" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="d06bdb67-73b8-4c6a-a210-9e2d0567eb6e" name="getFilePath" visibility="public"><ownedParameter><Parameter uuid="0d2fe2a8-d7cd-4d46-a7d7-c6a9bfb35e7d" name="return" direction="return" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="288644bd-0f93-4890-8831-b1048deb82de" visibility="public"><templateBinding><TemplateBinding uuid="1c8f6303-33c8-469e-8390-a7d44a58f478" signature="623c5447-d650-4c69-b650-517dbb9141ff"><parameterSubstitution><TemplateParameterSubstitution uuid="946b551b-ac7e-4307-a7f8-0e3b3a0b69a3" formal="36b0e09c-4aed-44fa-ac25-ef70b83d7187" actual="81530a39-1176-47d7-add3-8da2cacba49c"/></parameterSubstitution></TemplateBinding></templateBinding></Class></packagedElement></Package><Package uuid="727c732a-5b1d-4916-9460-2087c8f15ba1" name="communication" visibility="public"><appliedStereotype><StereotypeApplication uuid="042ad21d-44eb-4f93-a1b4-c1f46577fab8" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Interface uuid="0b3153ed-1fe4-4739-a92c-22aef6084880" name="Communicable" visibility="public" usedForCodeSyncronization="true" DocComment="5653b4b2-0fba-4992-8874-01cc41bad92b"><codeFileName><CodeFileName name="Communicable.java"/></codeFileName><ownedComment><Comment uuid="5653b4b2-0fba-4992-8874-01cc41bad92b" body="
 Interface that allow communications.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="0b3153ed-1fe4-4739-a92c-22aef6084880"/></Comment></ownedComment><ownedOperation><Operation uuid="e95a9c8f-102f-44d5-9d3a-cb879054bff6" name="handleRead" visibility="public" DocComment="c57c4db1-2f21-4b51-a026-c13361b93206"><ownedComment><Comment uuid="c57c4db1-2f21-4b51-a026-c13361b93206" body="
 Handles a read operation.

 @param channel Channel selected.
"><annotatedElement idref="e95a9c8f-102f-44d5-9d3a-cb879054bff6"/></Comment></ownedComment><ownedParameter><Parameter uuid="16dbd5f5-c74f-4a30-9bf3-00595998459b" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="5b83b829-d6b9-4127-80e7-2bf5a95b9161" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="b059df2e-3368-47e0-a7ef-29f22505573f" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="40bc90c0-5eaf-4040-87d8-50b77f14b66d" name="handleWrite" visibility="public" DocComment="15e7940b-d86f-4d75-876b-8a4cbb077100"><ownedComment><Comment uuid="15e7940b-d86f-4d75-876b-8a4cbb077100" body="
 Handles a write operation.

 @param channel Channel selected.
"><annotatedElement idref="40bc90c0-5eaf-4040-87d8-50b77f14b66d"/></Comment></ownedComment><ownedParameter><Parameter uuid="f592a39b-c897-476c-9eb8-91255368293f" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="f7ce8e8b-0450-4978-b6fb-202bba79acc6" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="38c06382-ca0d-425a-b291-73c7dc988655" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="f6b8f7b2-6e92-4c17-92a3-4a597fd83cc3" name="handleAccept" visibility="public" DocComment="86c95f12-4a45-4d93-8135-bd97eda42357"><ownedComment><Comment uuid="86c95f12-4a45-4d93-8135-bd97eda42357" body="
 Handles an accept operation.

 @param channel Channel selected.
"><annotatedElement idref="f6b8f7b2-6e92-4c17-92a3-4a597fd83cc3"/></Comment></ownedComment><ownedParameter><Parameter uuid="f06e3ac3-d3b2-4509-87d2-c783e52d973d" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="e4e24c4a-0e7c-46cd-85ec-7ad9c83939e4" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="99acc04f-ff6b-4b3d-bc89-72d740ff5e0b" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="f4d15e43-5d9f-4dc5-89ed-09f0885c33bb" name="handleConnect" visibility="public" DocComment="7036a0a6-654a-4270-8a55-4cdd9121ba7d"><ownedComment><Comment uuid="7036a0a6-654a-4270-8a55-4cdd9121ba7d" body="
 Handles a connect operation.

 @param channel Channel selected.
"><annotatedElement idref="f4d15e43-5d9f-4dc5-89ed-09f0885c33bb"/></Comment></ownedComment><ownedParameter><Parameter uuid="fce1a7b1-003d-486e-bfe5-7be6459ee1bf" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="599f30eb-949c-4f15-816d-2d0d177eea1f" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="9a8eea67-f5ff-4d31-82a0-138290216420" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="c867945e-0666-42ae-a9bf-07847371bb1d" name="close" visibility="public" DocComment="e45c4015-459e-40b6-bd30-8f3c77dde6d0"><ownedComment><Comment uuid="e45c4015-459e-40b6-bd30-8f3c77dde6d0" body="
 Closes the communication.
"><annotatedElement idref="c867945e-0666-42ae-a9bf-07847371bb1d"/></Comment></ownedComment><ownedParameter><Parameter uuid="007075ae-ccba-4e49-9338-c8bd877e5714" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Interface><Class uuid="ae1de26b-4144-4410-8eb5-276e998c7c7b" name="Connection" visibility="public" usedForCodeSyncronization="true" DocComment="289c2fcf-8585-44de-9fd8-0a33aa69692c"><codeFileName><CodeFileName name="Connection.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="3ced1828-d003-4a04-a6e8-9bec9a7e7f18" visibility="public" contract="0b3153ed-1fe4-4739-a92c-22aef6084880"/></interfaceRealization><ownedComment><Comment uuid="289c2fcf-8585-44de-9fd8-0a33aa69692c" body="
 Connection between a client and the proxy.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="ae1de26b-4144-4410-8eb5-276e998c7c7b"/></Comment></ownedComment><ownedAttribute><Property uuid="61e1b97a-05f8-4f1c-9d27-a466dee6408e" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="2ab23975-9bc7-4f12-bac0-a2e9254e8903" visibility="public" value="Logger.getLogger(Connection.class.getName())"/></defaultValue></Property><Property uuid="de416865-bdfa-4fb7-9c56-38973ef7f8d2" name="FRAGMENT_SIZE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="1091cd8e-8d36-4eea-bcdb-a6e518c1995a"><ownedComment><Comment uuid="1091cd8e-8d36-4eea-bcdb-a6e518c1995a" body="
 Size of the fragment to be read/sent on the network.
"><annotatedElement idref="de416865-bdfa-4fb7-9c56-38973ef7f8d2"/></Comment></ownedComment><defaultValue><LiteralString uuid="e2948d69-ba3a-454b-a446-a72889c63cdd" visibility="public" value="16384 * 8"/></defaultValue></Property><Property uuid="50909eb7-9729-4549-9233-c063a7184caa" name="clientEmissionBuffer" visibility="private" isLeaf="true" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"><defaultValue><LiteralString uuid="b4b0fafe-2be1-4e3c-bb92-929deebe0d07" visibility="public" value="ByteBuffer.allocateDirect(FRAGMENT_SIZE)"/></defaultValue></Property><Property uuid="463ca737-0ca9-4790-813f-f86a1550efbf" name="serverEmissionBuffer" visibility="private" isLeaf="true" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"><defaultValue><LiteralString uuid="67452a4a-3ced-47bf-a690-9b8e998fe31e" visibility="public" value="ByteBuffer.allocateDirect(FRAGMENT_SIZE)"/></defaultValue></Property><Property uuid="b4d145d3-9907-4823-b5b5-7027675e8d86" name="clientChannel" visibility="private" isLeaf="true" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="ff734775-b58e-46fa-bb23-a41672107fc3" name="serverChannel" visibility="private" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="4230b6a7-338f-4254-b3c4-238e9fd1b399" name="clientSelectionKey" visibility="private" isLeaf="true" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Property uuid="93390089-5d27-46d3-b235-eebccbf5a89f" name="serverSelectionKey" visibility="private" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Property uuid="8a4eee94-5187-480b-995b-204bc35f1080" name="requestHeaderHttp" visibility="private" type="13b04fce-67a2-4c3e-8332-1a0abded9174"><defaultValue><LiteralString uuid="f464dc5f-d1ba-4a30-8829-d7e91f0ce90d" visibility="public" value="null"/></defaultValue></Property><Property uuid="cb01fc9e-6943-49fc-b253-e1c3ede93c99" name="answerHeaderHttp" visibility="private" type="13b04fce-67a2-4c3e-8332-1a0abded9174"><defaultValue><LiteralString uuid="c91b5965-faf1-4fc6-bab7-a5c916be3b3c" visibility="public" value="null"/></defaultValue></Property><Property uuid="1d749d34-6fec-455e-8a71-b179515cad94" name="clientRule" visibility="private" type="050cecf9-589d-4a8e-8705-ad03fd6542c5"><defaultValue><LiteralString uuid="8804a7e7-3262-42ed-a413-56ebcd518574" visibility="public" value="null"/></defaultValue></Property><Property uuid="af9b43d4-42cf-4cc9-9537-0882d124fc97" name="serverRule" visibility="private" type="050cecf9-589d-4a8e-8705-ad03fd6542c5"><defaultValue><LiteralString uuid="30fdd9d7-b3a9-4078-aa21-3cea103eb19d" visibility="public" value="null"/></defaultValue></Property><Property uuid="e0344500-2bbc-4e1d-81e8-4dd27313e1cb" name="clientToServerTransfer" visibility="private" type="9fa974e1-051f-4a36-acb7-f7116a577746"/><Property uuid="45e07359-339e-4205-9274-5ec32cce3077" name="serverToClientTransfer" visibility="private" type="9fa974e1-051f-4a36-acb7-f7116a577746"/><Property uuid="7a3d0105-e788-474f-ab5a-50518cebaa63" name="cacheDirectory" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="6bb24c0d-3d3f-4898-862e-fb850b5d7ac0" name="isRequestedDataCanBeCached" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="233ce88e-1ff0-4d0c-9496-f456a37fc76f" name="cacheHashedUrl" visibility="private" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="4e968b1c-677d-452e-a030-7b9bede87270" name="cacheRequest" visibility="private" type="e44596f5-84fe-4ede-85b2-d4360328ef30"/><Property uuid="3c36d4ef-e283-4f1a-9a69-669f39fb7f93" name="cacheInfo" visibility="private" type="577b6386-052f-4b41-a12e-dc413d128bdb"/><Property uuid="cc5bc3c0-ac23-4400-925b-865ce1ed2c60" name="cacheSocketChannel" visibility="private" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Property uuid="7ae87f33-2c55-45b3-ab76-ec30f47231d3" name="cacheWriter" visibility="private" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/><Property uuid="20612a53-1d0e-45b8-8abc-43bdbb2762c5" name="httpDateFormat" visibility="private" type="82e38df7-3690-4455-b404-75d4987796cd"><defaultValue><LiteralString uuid="9858335d-9030-4ac8-8780-62e9b702282d" visibility="public" value="new SimpleDateFormat(&quot;EEE, dd MMM yyyy HH:mm:ss zzz&quot;, Locale.US)"/></defaultValue></Property><Property uuid="757fe1ba-1151-4428-90a9-f3c07cd40843" name="timeoutTime" visibility="private" type="f9cd5aab-9322-4fad-b431-9f53dc036d15"><defaultValue><LiteralString uuid="1e6ca2d5-0b16-4e1e-86b8-158d81042081" visibility="public" value="null"/></defaultValue></Property><Property uuid="ded84ffe-cd15-4ffa-bffd-3829cad0e91c" name="closed" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="e6c44794-e75d-4c00-b650-2edcb441deba" visibility="public" value="false"/></defaultValue></Property></ownedAttribute><ownedOperation><Operation uuid="41337e13-5d7d-44a3-9dbe-a8b465135134" name="Connection" visibility="public" DocComment="3da37588-cfc1-44c9-b427-da087cbc83e0"><ownedComment><Comment uuid="3da37588-cfc1-44c9-b427-da087cbc83e0" body="
 Creates a new proxy connection.

 @param clientChannel SocketChannel of the client with the proxy server.
 @param clientSelectionKey Selection key, used to register interesting
 event. (READ/WRITE)
"><annotatedElement idref="41337e13-5d7d-44a3-9dbe-a8b465135134"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="fbe214f6-96db-4390-a20f-592abe6e6399" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="6ba1464b-ab18-4a0f-bd77-e5546cd4dd5b" name="clientChannel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="a7b12bf8-044d-4628-8f5c-608ec47d1632" name="clientSelectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="d590570e-423e-49b3-acd4-907f051b9c13" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="505faca1-a8c6-49ca-baad-aa73c696f5b0" name="close" visibility="public" DocComment="228b24d7-14fa-42ca-8d7d-ca79c13cf30b"><ownedComment><Comment uuid="228b24d7-14fa-42ca-8d7d-ca79c13cf30b" body="
 Closes this connection.
"><annotatedElement idref="505faca1-a8c6-49ca-baad-aa73c696f5b0"/></Comment></ownedComment><ownedParameter><Parameter uuid="5d021b4a-c8ab-42d9-8b1f-e6ba261b4100" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="e5a24350-e442-43de-ad3b-fcbd1eb88d7f" name="close" visibility="public" DocComment="cea25aee-03ed-4a72-8860-db885394aba2"><ownedComment><Comment uuid="cea25aee-03ed-4a72-8860-db885394aba2" body="
 Closes this connection.

 @param message Message to send to the client.
"><annotatedElement idref="e5a24350-e442-43de-ad3b-fcbd1eb88d7f"/></Comment></ownedComment><ownedParameter><Parameter uuid="ec1031a5-f6b2-49e9-a870-1eb5de36ad65" name="message" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="6393fcc6-bbeb-46de-b075-929009cb7d7e" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="596e84d8-2fa5-43e4-9b71-6ed2e61eb3a7" name="receiveHttpHeader" visibility="private" DocComment="b87b395a-f8d1-457a-96d4-6300bfae09b0"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ownedComment><Comment uuid="b87b395a-f8d1-457a-96d4-6300bfae09b0" body="
 Receive and parse an http header on a bytebuffer stream.

 This method allow to be called multiple time on the same buffer!

 @param channel Channel to read data from.
 @param buffer Buffer to place data in.
 @param useOnlyBuffer Do not read from the channel and use only data
 contained in the buffer.

 @return An HTTP Header or null if there was not enough data to parse an
 http header.
"><annotatedElement idref="596e84d8-2fa5-43e4-9b71-6ed2e61eb3a7"/></Comment></ownedComment><ownedParameter><Parameter uuid="807e1b9a-c659-4a10-b2fb-108c4cb2fc9b" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="81a04be5-67cf-48bf-bbc4-cbc8ea66304e" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="83896f34-d5be-43ba-a77b-2dc5e2b8d523" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="c3811846-1442-4f43-840d-ebeb7776fe70" name="return" direction="return" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/></ownedParameter></Operation><Operation uuid="48e9297b-d897-4bd6-a4f0-20b4a8526147" name="performClientRead" visibility="public" DocComment="b8f21805-ca3f-4fbd-b4b8-521ad4c73b4f"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="b8f21805-ca3f-4fbd-b4b8-521ad4c73b4f" body="
 Reads the data from the client.

 Parses the HTTP request, connects to the distant server and do other
 things.

 @param selector The selector in order to register the newly created
 connection.
 @param useOnlyBuffer Do not read from the channel and use only data
 contained in the buffer.
"><annotatedElement idref="48e9297b-d897-4bd6-a4f0-20b4a8526147"/></Comment></ownedComment><ownedParameter><Parameter uuid="8e3f8e10-50b0-434a-abcb-9e09b4886a1f" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="6b25c45b-4d99-4dbd-8a6e-be51507ef59e" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="4ccc9ebe-6134-43ce-9ea7-a813cffb05e1" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6823abda-3679-4486-b02b-c791251fa414" name="performServerRead" visibility="public" DocComment="5518d964-e922-44ba-a00d-32b0c5b663b4"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="5518d964-e922-44ba-a00d-32b0c5b663b4" body="
 Reads the data from the server.

 And place them to the buffer to be sent to the client.
"><annotatedElement idref="6823abda-3679-4486-b02b-c791251fa414"/></Comment></ownedComment><ownedParameter><Parameter uuid="9aed91e8-4f61-4dd2-a6c7-c68166324736" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="bb97d9ee-b6ff-4efb-a8ac-783424ac60a0" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="508849ff-befd-4896-9dfd-0d2e63fa36df" name="performServerWrite" visibility="public" DocComment="79c68fdd-16ba-42bc-a48e-841755bf39d2"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="79c68fdd-16ba-42bc-a48e-841755bf39d2" body="
 Writes the available datas to the server.

 @return True if the buffer is not empty and data must be parsed in order
 to be sent.
"><annotatedElement idref="508849ff-befd-4896-9dfd-0d2e63fa36df"/></Comment></ownedComment><ownedParameter><Parameter uuid="5da70a77-e092-40ba-b22a-3b2b3730e79b" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="48e25126-4cf8-4e48-bcfe-184f9ba476f4" name="performClientWrite" visibility="public" DocComment="2422bb63-9ee6-4b63-ab9c-2422a6b03abd"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="2422bb63-9ee6-4b63-ab9c-2422a6b03abd" body="
 Writes the available datas to the client.

 @return True if the buffer is not empty and data must be parsed in order
 to be sent.
"><annotatedElement idref="48e25126-4cf8-4e48-bcfe-184f9ba476f4"/></Comment></ownedComment><ownedParameter><Parameter uuid="9497d0b8-f5d4-4a35-b018-2920add831a8" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="1a9da6b9-e7c0-4cb8-a3b9-be2d00938e21" name="getClientChannel" visibility="public" DocComment="c1d07b37-ea06-4f3f-8476-e6aeb33c6005"><ownedComment><Comment uuid="c1d07b37-ea06-4f3f-8476-e6aeb33c6005" body="
 Gets the client channel.

 @return The client channel.
"><annotatedElement idref="1a9da6b9-e7c0-4cb8-a3b9-be2d00938e21"/></Comment></ownedComment><ownedParameter><Parameter uuid="b3a9959e-3dbc-4458-893a-9716b1a22351" name="return" direction="return" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/></ownedParameter></Operation><Operation uuid="fa1d2083-2890-4649-9fc3-f1dc372485a5" name="getServerChannel" visibility="public" DocComment="f32e2031-7a5c-4d6a-9bc8-74ec993b71d3"><ownedComment><Comment uuid="f32e2031-7a5c-4d6a-9bc8-74ec993b71d3" body="
 Gets the server channel.

 @return The server channel.
"><annotatedElement idref="fa1d2083-2890-4649-9fc3-f1dc372485a5"/></Comment></ownedComment><ownedParameter><Parameter uuid="4280283f-21c4-4084-a7b6-af20f9aaaaf7" name="return" direction="return" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/></ownedParameter></Operation><Operation uuid="585e59d5-7a2b-437f-8ad6-4ee35fe18f1f" name="getTimeoutTime" visibility="public" DocComment="696a5bf8-2183-448e-bf4f-4022a81ca4f4"><ownedComment><Comment uuid="696a5bf8-2183-448e-bf4f-4022a81ca4f4" body="
 Gets the communication timeout time.

 @return The timeout time.s
"><annotatedElement idref="585e59d5-7a2b-437f-8ad6-4ee35fe18f1f"/></Comment></ownedComment><ownedParameter><Parameter uuid="9312bc09-3bb3-4c54-8b30-cb4fcb46ba85" name="return" direction="return" type="f9cd5aab-9322-4fad-b431-9f53dc036d15"/></ownedParameter></Operation><Operation uuid="55939506-7d4c-4500-a9da-7ccc3a0092d9" name="debugPrintBuffer" visibility="public" isStatic="true"><ownedParameter><Parameter uuid="5cc87d1f-4efd-4942-8c67-8c710b4d1c38" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="c6a7d946-0516-4f42-abf0-26030a9a499e" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="528e7df2-3580-47e4-9475-c2661699bb48" name="handleRead" visibility="public"><appliedStereotype><StereotypeApplication uuid="843e4cbf-d383-46b3-b14d-94dbeab09d37" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="e6c14fa2-112c-411d-ac59-449fb7be5147" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="73fa26e1-7ebc-411c-9a61-16dee1e76451" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="b498e58c-b191-4acd-aa81-69ff55f997f3" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="88436b55-c33e-4546-965c-0e6fc1224bf7" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="a3257a6d-2f98-4482-ab21-b62c25ee5951" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6cce1829-7b7e-4c1d-96a2-dba52d4f6079" name="handleWrite" visibility="public"><appliedStereotype><StereotypeApplication uuid="3b78652e-066e-438e-9477-c72da301feab" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="c3355263-a3c3-4329-b1df-81d46b211fc4" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="1abcfebe-960c-44e9-82c5-2adfb3a8d4b4" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="bfc6c619-6758-4d5e-86f0-09b7d222c8a7" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="36d893bc-2d9f-4a1a-bd60-3c568de33311" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="296d5d47-7d24-4262-973a-3976bb4fa96d" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="32903c92-f9e5-49a7-9822-1c5341da5d98" name="handleAccept" visibility="public"><appliedStereotype><StereotypeApplication uuid="aaa9c3f9-29d5-4517-9127-f762f9538b36" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="90c854f9-02eb-4c3b-8bf3-a8640c3054f5" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="32b4b512-2012-4cb2-bca1-77cc69452361" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="98bdf1af-e5c2-4d95-9e2d-773dd148c1cc" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="2be516bc-4041-47e5-9d67-e0298fd04cfe" name="selector" type="430eaefa-666d-4b74-9f78-5c3dc9d815cc"/><Parameter uuid="c39acd62-611c-4ca3-821e-98a164830123" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="3d6930fa-7472-4bb9-96e1-9a78ea7b58dd" name="handleConnect" visibility="public"><appliedStereotype><StereotypeApplication uuid="44b9f20f-db04-4dbd-b193-d752a592a462" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="47e67f9c-7ca9-4037-92ae-320b3ff11d24" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="a8f82c40-5fe0-4bbf-8e44-e3009c0806ea" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="3a96b02e-ffa4-4c0b-b53f-4f2fb195c174" name="channel" type="e3271c1d-bc73-4c0e-a75e-f5dd999bf269"/><Parameter uuid="8e8ed358-5b33-40cf-b7cd-667534ecf2cc" name="selectionKey" type="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40"/><Parameter uuid="5c061fb0-8a5e-420b-b661-66b04aeeed17" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="6c0abfad-e206-4e89-9f16-ccce30250811" name="setCache" visibility="public" DocComment="699d69cd-4aee-4e05-a523-7596fe4ba536"><ownedComment><Comment uuid="699d69cd-4aee-4e05-a523-7596fe4ba536" body="
 Specify a cache connection.

 @param cacheInfo The informations about the received cache.
 @param clientSocketChannel The socket channel used to receive data from
 the cache.
"><annotatedElement idref="6c0abfad-e206-4e89-9f16-ccce30250811"/></Comment></ownedComment><ownedParameter><Parameter uuid="6db4497f-54e2-4f66-a53c-152f3740d908" name="cacheInfo" type="577b6386-052f-4b41-a12e-dc413d128bdb"/><Parameter uuid="786601ec-84d9-42d2-9c41-8a246d6a7e6f" name="cacheSocketChannel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="e6777600-99a9-444e-a791-2b10effbb110" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="198256f8-6f68-40c6-8818-e9e32eb46cbb" name="Qroxy" visibility="public" usedForCodeSyncronization="true" DocComment="03d049d7-f9de-4dc1-8c53-a484b0f07ff7"><codeFileName><CodeFileName name="Qroxy.java"/></codeFileName><ownedComment><Comment uuid="03d049d7-f9de-4dc1-8c53-a484b0f07ff7" body="
 Main class of Qroxy.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="198256f8-6f68-40c6-8818-e9e32eb46cbb"/></Comment></ownedComment><ownedOperation><Operation uuid="c19b65df-d7f3-4dee-9390-866735b3dcf6" name="main" visibility="public" isStatic="true"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedParameter><Parameter uuid="622d2a27-223e-420f-8045-ae352b288fca" name="args" type="81530a39-1176-47d7-add3-8da2cacba49c"><lowerValue><LiteralString uuid="85ca9f9f-3919-46fa-9c89-47602f5350a5" visibility="public" value="*"/></lowerValue><upperValue><LiteralString uuid="ad392674-159e-4738-b928-4872e72ec337" visibility="public" value="*"/></upperValue></Parameter><Parameter uuid="ae09f75f-9d2b-4bbb-92eb-8c12c3bea527" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="6ab96bec-6356-4ab8-99c2-86062c2a87b4" name="Server" visibility="public" usedForCodeSyncronization="true" DocComment="5aad7226-0ec8-4a82-a5a0-4da849714e6f"><codeFileName><CodeFileName name="Server.java"/></codeFileName><ownedComment><Comment uuid="5aad7226-0ec8-4a82-a5a0-4da849714e6f" body="
 Qroxy single thread server.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="6ab96bec-6356-4ab8-99c2-86062c2a87b4"/></Comment></ownedComment><ownedAttribute><Property uuid="d1c745d5-5039-4905-b6f9-8675dadd83bc" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="655dd587-72ae-4693-a03d-eecd690745e6" visibility="public" value="Logger.getLogger(Server.class.getName())"/></defaultValue></Property><Property uuid="d731cb07-4432-4163-8a99-865f707992e6" name="port" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="dc4f5ce6-cb57-4916-aee3-f940c287380f" name="cacheDirectory" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedAttribute><ownedOperation><Operation uuid="4025adc3-9ca8-4408-af04-0bc5be5ea8df" name="Server" visibility="public" DocComment="aee4dc77-5504-478c-b09d-de3aef733cfe"><ownedComment><Comment uuid="aee4dc77-5504-478c-b09d-de3aef733cfe" body="
 Qroxy proxy server.

 @param port Port to bind to.
"><annotatedElement idref="4025adc3-9ca8-4408-af04-0bc5be5ea8df"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="162730b0-3d8e-4def-bfe6-e6368f5ffee0" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="f65d84fa-6462-41a3-a6e9-c93b67718577" name="port" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="3f7b900b-1cfc-49c5-9a1b-bc28aa8b4380" name="cacheDirectory" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="83a6b5c9-b0bf-4ce7-8c94-2b297917e7e7" name="run" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedParameter><Parameter uuid="53ed7aae-537a-4d35-b3a6-965927a47b14" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation></ownedOperation></Class><Package uuid="83b1d5a1-2af8-405f-bc13-198cb6913fcc" name="transfer" visibility="public"><appliedStereotype><StereotypeApplication uuid="a65b615a-e47f-4e01-87ae-1a2926d05a3e" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Class uuid="c23aa30f-f714-44bb-861f-46617e2d21bf" name="ChunkedTransfer" visibility="public" usedForCodeSyncronization="true" DocComment="f7bb550d-a147-4716-ba15-1e26571618ba"><codeFileName><CodeFileName name="ChunkedTransfer.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="104b6f7d-d199-4541-b6ab-0779dc6d44ee" visibility="public" contract="9fa974e1-051f-4a36-acb7-f7116a577746"/></interfaceRealization><ownedComment><Comment uuid="f7bb550d-a147-4716-ba15-1e26571618ba" body="
 Chunked transfer operation.

 To use when the Content-length is not known and transfer mode is chunked.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="c23aa30f-f714-44bb-861f-46617e2d21bf"/></Comment></ownedComment><ownedAttribute><Property uuid="d9224a4a-227e-4fd8-816a-862e4bf04d9e" name="headerEndPosition" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="8c376dde-1f77-46c3-a76f-c1bd24c67154" name="chunkHeader" visibility="private" type="2970790b-ffc3-48bc-95c4-4ad48fae6880"><defaultValue><LiteralString uuid="f4dc0b1c-b507-440e-8db4-59c351860b37" visibility="public" value="new ChunkHeader(-1, -1)"/></defaultValue></Property><Property uuid="3346d3cb-603b-4519-ba02-953608321301" name="totalRead" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="441037d6-38c6-4e61-96df-6a24d57ea975" visibility="public" value="0"/></defaultValue></Property><Property uuid="6c50e716-804b-4eb0-9fdb-d1269680e363" name="totalWrite" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="bf56118c-823d-41e1-a2af-daed93549c5a" visibility="public" value="0"/></defaultValue></Property><Property uuid="ac1dc67f-a913-4156-aca3-5defa5921d4c" name="chunkRead" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="b4082ebd-d55c-483e-8537-f83f53dc4483" visibility="public" value="0"/></defaultValue></Property><Property uuid="71ebdea6-a507-4fb7-92d1-f969abf58b45" name="chunkWrite" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="f6025840-3bbe-4396-8caf-e6cd49753f42" visibility="public" value="0"/></defaultValue></Property><Property uuid="9579c0de-b5b4-49d9-81d7-4ac6c88c87c8" name="firstRead" visibility="private" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"><defaultValue><LiteralString uuid="2942cdd1-cb26-4f8e-9d3f-70282a2f7874" visibility="public" value="true"/></defaultValue></Property><Property uuid="1e983b79-b3fd-4d7b-8426-8ed7a804e563" name="cacheWriter" visibility="private" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedAttribute><nestedClassifier><Class uuid="2970790b-ffc3-48bc-95c4-4ad48fae6880" name="ChunkHeader" visibility="private" usedForCodeSyncronization="true"><ownedAttribute><Property uuid="e23c6a9b-f14c-4f0c-b758-2926adf1c784" name="chunkLength" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="d7823c60-c029-4811-b115-2b2f8159d456" name="dataLength" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedAttribute><ownedOperation><Operation uuid="9d1c4359-5ca7-49ea-b6cf-ef774c59ef50" name="ChunkHeader" visibility="public"><appliedStereotype><StereotypeApplication uuid="73da130d-a68a-408f-942a-2d359dea6987" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="4a3440c2-4fce-480d-80ce-38e08500ebb9" name="chunkLength" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="dac75234-2440-49a6-9b28-7e556ecdedd3" name="dataLength" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation></ownedOperation></Class></nestedClassifier><ownedOperation><Operation uuid="058144e9-606f-46e7-b31b-aeef5e93e3ab" name="ChunkedTransfer" visibility="public" DocComment="2b4d6dc3-6b94-499d-8b96-54d04221feb4"><ownedComment><Comment uuid="2b4d6dc3-6b94-499d-8b96-54d04221feb4" body="
 Chunked Transfer.

 @param headerEndPosition End position of the HTTP header in the buffer.
"><annotatedElement idref="058144e9-606f-46e7-b31b-aeef5e93e3ab"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="6dc886f2-2080-455a-a879-1e23bfc34d59" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="57459b35-1975-49f5-8882-a869b978a201" name="headerEndPosition" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="fac158c3-09b2-4156-a4f3-57f515fecbe8" name="ChunkedTransfer" visibility="public" DocComment="71b5ee25-b116-45fb-817f-83ff9ee251fc"><ownedComment><Comment uuid="71b5ee25-b116-45fb-817f-83ff9ee251fc" body="
 Chunked Transfer.

 @param headerEndPosition End position of the HTTP header in the buffer.
"><annotatedElement idref="fac158c3-09b2-4156-a4f3-57f515fecbe8"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="13c38f29-ebb9-4611-afb1-ba231d34e591" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="5e68ffcd-3585-41e3-bed6-4f9a34df67fb" name="headerEndPosition" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="c734ca4f-eea6-4dff-a10d-d3b287c127b4" name="cacheWriter" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedParameter></Operation><Operation uuid="6ade1cf1-06bc-4baf-8a78-76e446716650" name="read" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><appliedStereotype><StereotypeApplication uuid="dbc2362c-5539-481b-8474-83bff167430f" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="90926a26-d572-44ae-9232-2cbd1187ced2" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="697e7149-e957-4581-af2d-ee275a3fff9d" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="471ae644-775f-48f0-be63-1e753ed85f90" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="338f748a-dfca-43f3-b36d-f724a92772a5" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="0e5eb54d-8d99-41ac-8656-e2dc88b0b598" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="96fef432-9d00-44a2-9203-e008dae3de45" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="692200dd-9994-447e-be71-c8766b9b735a" name="write" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><appliedStereotype><StereotypeApplication uuid="e660d239-4daf-4dd4-b055-c9b00f519ed2" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="a631117e-4197-422d-849e-85fbe8463cf3" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="cd75e3f8-9705-4152-9bdf-f7cd93b41a17" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="7ea7af85-2c05-476a-bc70-657c5c519c78" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="b13bb960-8732-41f4-843a-3214b86b9bb8" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="4052d573-147b-4a75-ad70-3efe8c1cde15" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="8f191ff0-f9ec-455b-b55e-4b2353421687" name="readChunkHeader" visibility="private" DocComment="60810170-467f-4f00-8c01-34623c7fbc68"><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedComment><Comment uuid="60810170-467f-4f00-8c01-34623c7fbc68" body="
 Returns the chunk header size.

 @param buffer Buffer where to read the chunk header.
 @param limit Limit of the reading operation.
 @param readCRLF Set to true if there is a crlf before the chunk header.

 The buffer position is set after to the first data of the chunk.

 @return -1 if header is incomplete.
"><annotatedElement idref="8f191ff0-f9ec-455b-b55e-4b2353421687"/></Comment></ownedComment><ownedParameter><Parameter uuid="204ae068-cc49-44e1-b0c4-8effa427b598" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="85383676-ba9a-43ca-bef3-02b782719c92" name="limit" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="305c83ed-3129-4085-a0e5-89c7ed655a86" name="readCRLF" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="dd341735-a849-4f8c-8aed-9e91bc1139d9" name="return" direction="return" type="2970790b-ffc3-48bc-95c4-4ad48fae6880"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="1fd4326e-0df3-45bf-8f7a-e6f0a0174167" name="FixedTransfer" visibility="public" usedForCodeSyncronization="true" DocComment="1f9ded5d-0ddc-4288-ac90-2121ad3a527b"><codeFileName><CodeFileName name="FixedTransfer.java"/></codeFileName><interfaceRealization><InterfaceRealization uuid="7912bbc0-335a-4601-aaea-766812ed6dcb" visibility="public" contract="9fa974e1-051f-4a36-acb7-f7116a577746"/></interfaceRealization><ownedComment><Comment uuid="1f9ded5d-0ddc-4288-ac90-2121ad3a527b" body="
 Fixed transfer operation.

 To use when the Content-length is known.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="1fd4326e-0df3-45bf-8f7a-e6f0a0174167"/></Comment></ownedComment><ownedAttribute><Property uuid="edafce5f-1dee-41df-966f-4aaa7b28c5d2" name="size" visibility="private" isLeaf="true" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Property uuid="5c063d9f-2896-428f-afbb-3296d67aa134" name="headerHttpSize" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="f9378c18-6d7e-450f-8931-a921d67601ac" name="totalRead" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="4c210f0b-3f17-44e1-8fe2-e852a85c81a5" visibility="public" value="0"/></defaultValue></Property><Property uuid="90309696-3d6b-4f56-af75-6f6ae1a35106" name="totalWrite" visibility="private" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"><defaultValue><LiteralString uuid="eb932953-8588-4da6-9bc6-e5a4aa88ce8d" visibility="public" value="0"/></defaultValue></Property><Property uuid="f63ab2a1-97d3-413f-b0eb-ee59067f5c54" name="cacheWriter" visibility="private" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedAttribute><ownedOperation><Operation uuid="537c438d-de22-492f-ab6a-6c301a1a9eeb" name="FixedTransfer" visibility="public" DocComment="10f368b2-bb32-4c6e-a1ea-487086469409"><ownedComment><Comment uuid="10f368b2-bb32-4c6e-a1ea-487086469409" body="
 Fixed transfer.

 @param size Size, amount of data to read and write. Do not forget to
 include the size of the HTTP header. Example: httpHeaderSize + Content
 Length
"><annotatedElement idref="537c438d-de22-492f-ab6a-6c301a1a9eeb"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="560c9c04-ff73-4a9e-b2ed-ad30f9011a7e" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="ed833325-426a-47cd-88e2-158fb4b89dea" name="size" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/></ownedParameter></Operation><Operation uuid="fd0574c2-e0ce-4322-8c1f-d6045c3900b4" name="FixedTransfer" visibility="public" DocComment="3def9372-adb1-4e73-a00a-440d1ee2a971"><ownedComment><Comment uuid="3def9372-adb1-4e73-a00a-440d1ee2a971" body="
 Fixed transfer.

 @param size Size, amount of data to read and write. Do not forget to
 include the size of the HTTP header. Example: httpHeaderSize + Content
 Length
 @param
"><annotatedElement idref="fd0574c2-e0ce-4322-8c1f-d6045c3900b4"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="1ab95a19-baae-474b-b70a-cbce5249d8f2" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="6f7c1e45-7ef6-4f7f-8789-e679b77a46c7" name="size" type="6941bad4-9c46-4098-8d04-8afe8cf67c00"/><Parameter uuid="1af1cf8c-e7ce-452e-ba21-c36368d27044" name="headerHttpSize" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="971cf26d-8be4-4cd4-9f2b-dd57d286d1d9" name="cacheWriter" type="f24bb013-bc15-4380-8dcd-7d3afadf49da"/></ownedParameter></Operation><Operation uuid="a4ccc971-9352-4090-99d2-962bed28991c" name="read" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><appliedStereotype><StereotypeApplication uuid="67aaf779-4783-468e-a311-fee2ebd62e3c" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="31cac25c-dcca-4107-aa0a-4364e2545387" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="c8ff0fba-c4cd-413c-b894-2c23f10be3e3" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="1389bf89-ebf1-45cc-80dc-de0a2c170103" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="2ed4eea1-fd11-4a47-b2c2-7d8ec7532134" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="de742119-3214-4627-a522-e46ab8565a13" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="5de36151-18f9-479a-a3df-769bd17b9488" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="f472a05b-ea03-46b5-bc45-371e5b40ab58" name="write" visibility="public"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><appliedStereotype><StereotypeApplication uuid="17d49cc6-2bd9-4a00-b4c6-5c2083c8c490" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="2d5ddb50-ab77-44d2-9a63-fba25f3541e3" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="acbe6278-035c-41f3-b09e-4619404cf739" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="494c034e-3cef-4f15-a6b8-f304c00a44df" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="d9693a6d-9c6c-43a0-9585-48bf2a0c124f" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="6945a175-2459-47e5-9cfa-ce40d9e02e6e" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation></ownedOperation></Class><Interface uuid="9fa974e1-051f-4a36-acb7-f7116a577746" name="Transfer" visibility="public" usedForCodeSyncronization="true" DocComment="abe801a5-b490-42f2-889e-53d9a23efdf3"><codeFileName><CodeFileName name="Transfer.java"/></codeFileName><ownedComment><Comment uuid="abe801a5-b490-42f2-889e-53d9a23efdf3" body="
 HTTP data transfer methods.

 The idea behind this class is to transfer all datas from one channel
 to another.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="9fa974e1-051f-4a36-acb7-f7116a577746"/></Comment></ownedComment><ownedOperation><Operation uuid="b28230a3-e18e-4ef2-8158-9d194310dcd7" name="read" visibility="public" DocComment="a3fda140-2b93-48ff-be3a-e249bb6cccc5"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ownedComment><Comment uuid="a3fda140-2b93-48ff-be3a-e249bb6cccc5" body="
 Reads data.

 @param channel Channel where to read data.
 @param buffer Buffer where to append new read data.
 @param useOnlyBuffer Do not read from the channel and use only data
 contained in the buffer.

 @return Number of bytes read and status if read data can be sent.
"><annotatedElement idref="b28230a3-e18e-4ef2-8158-9d194310dcd7"/></Comment></ownedComment><ownedParameter><Parameter uuid="48008f51-dad6-4b29-bb2b-bd4dbc2c8357" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="96030b65-3033-49d3-bbbb-e41a01906249" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="97b5073b-a7f6-4b83-85c2-1b644888e89a" name="useOnlyBuffer" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="e05baf2c-2ede-49f7-b0eb-964519ca2b9b" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation><Operation uuid="18737dca-c802-4b3b-9777-de0aceba3142" name="write" visibility="public" DocComment="ff709c52-b707-40ff-8ee1-7f8951b4040e"><raisedException idref="68c8c45a-3e04-43c9-bbc8-42d78269e37d"/><ownedComment><Comment uuid="ff709c52-b707-40ff-8ee1-7f8951b4040e" body="
 Writes data.

 @param channel Channel where to write data.
 @param buffer Buffer where to read data to write.

 @return Number of bytes read and status if all datas were written.
"><annotatedElement idref="18737dca-c802-4b3b-9777-de0aceba3142"/></Comment></ownedComment><ownedParameter><Parameter uuid="13676be3-eebb-4f21-b701-71e1c90ede6a" name="channel" type="36d94281-ab69-4306-b2ba-2ff205e91a58"/><Parameter uuid="7745cff2-fa77-4892-9261-7227c6a7cb3e" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="7433b7ea-4779-4c46-a64f-27792e7b5232" name="return" direction="return" type="901fab39-5ad6-4f60-8a3a-998010e22b26"/></ownedParameter></Operation></ownedOperation></Interface><Class uuid="901fab39-5ad6-4f60-8a3a-998010e22b26" name="TransferResult" visibility="public" usedForCodeSyncronization="true" DocComment="31150afe-3b95-4edb-949f-713b986490b4"><codeFileName><CodeFileName name="TransferResult.java"/></codeFileName><ownedComment><Comment uuid="31150afe-3b95-4edb-949f-713b986490b4" body="
 Result of a transfer operation.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="901fab39-5ad6-4f60-8a3a-998010e22b26"/></Comment></ownedComment><ownedAttribute><Property uuid="03249acd-da05-492e-96c0-1028593ed182" name="count" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="d66afdca-cb08-45aa-aa0a-01ab82c0737c" name="finished" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="58ee05fb-9720-452b-8643-72cbde3a6915" name="moreDataToWrite" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedAttribute><ownedOperation><Operation uuid="dc0613f6-0786-4ae2-9a41-0a2244ac02c2" name="TransferResult" visibility="public"><appliedStereotype><StereotypeApplication uuid="94aa0bda-2d63-40df-83f5-ca15478e7f8d" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="b139d72d-476f-4374-81de-01900f3b296f" name="count" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="a02440fb-c2d8-4ec0-a257-3ff209163c45" name="finished" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="05b45c6b-f8fc-4de0-8020-835b16c0f25d" name="TransferResult" visibility="public"><appliedStereotype><StereotypeApplication uuid="1e79490b-25d6-4d52-a42a-180bca1626ca" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="eff456dc-70e1-4aec-ba7c-20fb809660ed" name="count" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="ba3f3b1d-ef43-4772-bf5c-13c3fd205e2e" name="finished" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="c43188bc-16e9-468b-ad53-513fdb341d84" name="moreDataToWrite" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="429b9a80-bd60-45bd-a2a6-87420a07e2c8" name="getCount" visibility="public" DocComment="8aae46cf-18bf-46e1-b076-e19768d5bebf"><ownedComment><Comment uuid="8aae46cf-18bf-46e1-b076-e19768d5bebf" body="
 Number of bytes read or write.

 @return Number of bytes.
"><annotatedElement idref="429b9a80-bd60-45bd-a2a6-87420a07e2c8"/></Comment></ownedComment><ownedParameter><Parameter uuid="e92e7040-1471-44fa-8ab8-02bb48ea23bb" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="ba9a9250-91d2-4b6e-8600-2b1699bdd04f" name="isFinished" visibility="public" DocComment="42c3adf7-41a0-4590-9372-e670f561c6cb"><ownedComment><Comment uuid="42c3adf7-41a0-4590-9372-e670f561c6cb" body="
 Does the transfer operation is finished?

 @return True if transfer of all data has been made.
"><annotatedElement idref="ba9a9250-91d2-4b6e-8600-2b1699bdd04f"/></Comment></ownedComment><ownedParameter><Parameter uuid="f062a08f-1127-41ee-bb02-b3321d8462e8" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="c3f3dcb5-886b-4a3d-b131-73db0f839340" name="hasMoreDataToWrite" visibility="public" DocComment="a9d16987-e8c3-4d0d-ac8c-472ee0a47c3d"><ownedComment><Comment uuid="a9d16987-e8c3-4d0d-ac8c-472ee0a47c3d" body="
 Does there is more data to be write?

 @return True if there is more data to be write.
"><annotatedElement idref="c3f3dcb5-886b-4a3d-b131-73db0f839340"/></Comment></ownedComment><ownedParameter><Parameter uuid="cddb4709-f784-40e4-9462-822517fcc434" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation></ownedOperation></Class></packagedElement></Package></packagedElement></Package><Package uuid="07d9b354-5e78-4220-a66e-7ffbd5a4edb6" name="http" visibility="public"><appliedStereotype><StereotypeApplication uuid="4d637071-6c1c-4c10-9319-7363b331e254" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Enumeration uuid="5508e5af-23d7-4ef4-9edd-271a111046a7" name="HttpCloseRules" visibility="public" usedForCodeSyncronization="true" DocComment="330736b8-8bdb-44cd-bbc0-df8541a3867f"><codeFileName><CodeFileName name="HttpCloseRules.java"/></codeFileName><ownedComment><Comment uuid="330736b8-8bdb-44cd-bbc0-df8541a3867f" body="
 Connection closing rules.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="5508e5af-23d7-4ef4-9edd-271a111046a7"/></Comment></ownedComment><ownedLiteral><EnumerationLiteral uuid="2b95951f-6148-4433-b19c-b3fff0ea707f" name="KEEPALIVE_TIMEOUT" visibility="public" DocComment="6b390c61-00a9-4ed3-a159-9eff9026b1d7"><ownedComment><Comment uuid="6b390c61-00a9-4ed3-a159-9eff9026b1d7" body="
 Keepalive connection, timeout constant specified
"><annotatedElement idref="2b95951f-6148-4433-b19c-b3fff0ea707f"/></Comment></ownedComment></EnumerationLiteral><EnumerationLiteral uuid="d2133ad9-f6df-446a-95df-9da9f4b5b58c" name="CONNECTION_CLOSE_AFTER" visibility="public"/></ownedLiteral></Enumeration><Enumeration uuid="2458fe88-04c5-40d6-ae8c-75bc48716877" name="HttpCodes" visibility="public" usedForCodeSyncronization="true" DocComment="71fc60db-0fb8-433d-9414-b14c31174cf0"><codeFileName><CodeFileName name="HttpCodes.java"/></codeFileName><ownedComment><Comment uuid="71fc60db-0fb8-433d-9414-b14c31174cf0" body="
 Commons HTTP commands used by the server.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="2458fe88-04c5-40d6-ae8c-75bc48716877"/></Comment></ownedComment><ownedAttribute><Property uuid="1af637b0-52a8-4798-9ed0-05adcc226012" name="code" visibility="private" isLeaf="true" type="490655c1-c6f7-43b8-acee-a7840393d336"/><Property uuid="18860f87-c917-44e0-9087-1e790f8ee636" name="description" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedAttribute><ownedOperation><Operation uuid="ab321952-84af-43b1-b19a-41de044da4b4" name="HttpCodes" visibility="private"><appliedStereotype><StereotypeApplication uuid="173cf847-e2ec-43d1-aea0-8c22e42e43a4" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="784981d3-a79d-4c50-98cc-06f5f863a3fb" name="code" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="d67ff990-a1f3-44b3-856d-d81ba718065c" name="description" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="dc59e518-66e7-453a-bcb8-f8a3b20fba69" name="getCode" visibility="public"><ownedParameter><Parameter uuid="4d4e06c8-5141-4354-a049-88a2d4519f2b" name="return" direction="return" type="490655c1-c6f7-43b8-acee-a7840393d336"/></ownedParameter></Operation><Operation uuid="0f5d3182-5b62-4295-be7a-4f289c1d7541" name="getDescription" visibility="public"><ownedParameter><Parameter uuid="ad5009cf-0d05-4bde-b448-84037d4176d9" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="b1134ae9-ae96-403c-9013-ef8c06d1ce41" name="getPage" visibility="public"><ownedParameter><Parameter uuid="692cd484-08c0-4ad8-aa6f-2a2b4d4be2a8" name="return" direction="return" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/></ownedParameter></Operation><Operation uuid="b55d29bb-bd7d-40a7-95af-5fd5bad3f614" name="toString" visibility="public"><appliedStereotype><StereotypeApplication uuid="18e886c5-c4ab-4f44-96e3-2c2dfc812408" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="28dd5a6f-a1d1-402d-8105-9fc87540d2dc" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="92a49a8b-4601-42f7-9fd9-239952459f96" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="c38412c1-7436-48da-bca9-2c270855b59f" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation></ownedOperation><ownedLiteral><EnumerationLiteral uuid="3776970d-f0d5-4592-9aaa-e25f55e9a3d8" name="HTTP_ENTITY_TOO_LARGE" visibility="public" defaultValue="413, &quot;Request Entity Too Large&quot;"/><EnumerationLiteral uuid="88fe1ed1-d99c-43a8-be3f-9a053ff05fbf" name="HTTP_BAD_REQUEST" visibility="public" defaultValue="400, &quot;Bad Request &quot;"/><EnumerationLiteral uuid="024874c4-e979-488e-9ad1-f79967813b3d" name="HTTP_CLIENT_TIMEOUT" visibility="public" defaultValue="408, &quot;Request Time-out&quot;"/><EnumerationLiteral uuid="2502ea3e-f0e6-498c-96e3-65e5559f5e2a" name="HTTP_FORBIDDEN" visibility="public" defaultValue="403, &quot;Forbidden&quot;"/><EnumerationLiteral uuid="57556834-0de1-4c38-8ffa-19034820b7e7" name="HTTP_BAD_METHOD" visibility="public" defaultValue="405, &quot;Method Not Allowed&quot;"/><EnumerationLiteral uuid="654bbd7a-24d8-4a8c-b395-cfb628eb3119" name="HTTP_VERSION" visibility="public" defaultValue="505, &quot;HTTP Version Not Supported.&quot;"/><EnumerationLiteral uuid="87430358-8c8a-4cf9-be70-3ff313f0a134" name="HTTP_GATEWAY_TIMEOUT" visibility="public" defaultValue="504, &quot;Gateway Timeout.&quot;"/><EnumerationLiteral uuid="4297c629-10b4-479b-8525-2bbedb9f3a01" name="HTTP_BAD_GATEWAY" visibility="public" defaultValue="502, &quot;Bad Gateway.&quot;"/><EnumerationLiteral uuid="d565894c-ceef-4868-a564-b788c876a2a7" name="LENGTH_REQUIRED" visibility="public" defaultValue="411, &quot;Lenght required&quot;"/><EnumerationLiteral uuid="56dc6da1-42fa-4842-812e-7fdad64bf38a" name="HTTP_SERVER_ERROR" visibility="public" defaultValue="500, &quot;Server error&quot;"/><EnumerationLiteral uuid="0025246e-b3c0-4cf6-8be5-7a07c55c5a3e" name="HTTP_UNIMPLEMENTED" visibility="public" defaultValue="501, &quot;Unimplemented&quot;"/><EnumerationLiteral uuid="8ce91509-65a9-43ca-8a51-c7aea359c30f" name="HTTP_TEAPOT" visibility="public" defaultValue="418, &quot;I am a teapot.&quot;"/></ownedLiteral></Enumeration><Class uuid="566b0c6f-cb93-41a5-a2d2-6afbb79e36f8" name="HttpConstants" visibility="public" usedForCodeSyncronization="true" DocComment="4bbda45d-6f9e-4633-99b0-411c0d14787a"><codeFileName><CodeFileName name="HttpConstants.java"/></codeFileName><ownedComment><Comment uuid="4bbda45d-6f9e-4633-99b0-411c0d14787a" body="
 Class holdings some constants.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="566b0c6f-cb93-41a5-a2d2-6afbb79e36f8"/></Comment></ownedComment><ownedAttribute><Property uuid="01d40ba5-a47d-44be-8d55-4404f2644318" name="HTTP_KEEPALIVE_TIMEOUT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="1e421395-1ee4-451f-bcd4-d7709ece2b7c"><ownedComment><Comment uuid="1e421395-1ee4-451f-bcd4-d7709ece2b7c" body="
 Timeout of a keepalive connection.

 In milliseconds.
"><annotatedElement idref="01d40ba5-a47d-44be-8d55-4404f2644318"/></Comment></ownedComment><defaultValue><LiteralString uuid="3cc4f213-9715-437a-8b2e-dc36f6a1c496" visibility="public" value="5000"/></defaultValue></Property><Property uuid="bbf4e481-f9e5-4511-a070-b0151cac4a11" name="HTTP_HEADER_MAX_SIZE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="413117ff-3cbc-49ac-879c-68627e665e42"><ownedComment><Comment uuid="413117ff-3cbc-49ac-879c-68627e665e42" body="
 Maximal size of the HTTP Header.
"><annotatedElement idref="bbf4e481-f9e5-4511-a070-b0151cac4a11"/></Comment></ownedComment><defaultValue><LiteralString uuid="7bb4cecb-df5d-4f36-874d-853c9247042b" visibility="public" value="16384 * 8"/></defaultValue></Property><Property uuid="2c54df74-bc04-4afc-a044-5aa0e0791dad" name="HTTP_DECHUNK_BUFFER_SIZE" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="e3e85ccb-b962-486e-a7cf-4f1c0606adb1"><ownedComment><Comment uuid="e3e85ccb-b962-486e-a7cf-4f1c0606adb1" body="
 Maximal size of the dechunker.
"><annotatedElement idref="2c54df74-bc04-4afc-a044-5aa0e0791dad"/></Comment></ownedComment><defaultValue><LiteralString uuid="8f0e9cea-2e75-4740-9da3-d2d7c7658303" visibility="public" value="1048576 * 8"/></defaultValue></Property><Property uuid="33eb65c5-d404-4157-b03e-401449c8d587" name="HTTP_MAJOR_VERSION_SUPPORT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="ac947ddd-dd35-40ea-85d5-15865a9d6383"><ownedComment><Comment uuid="ac947ddd-dd35-40ea-85d5-15865a9d6383" body="
 Major version number of the supported HTTP version.

 HTTP_MAJOR_VERSION_SUPPORT.HTTP_MINOR_VERSION_SUPPORT
"><annotatedElement idref="33eb65c5-d404-4157-b03e-401449c8d587"/></Comment></ownedComment><defaultValue><LiteralString uuid="f6003306-30d6-49b2-af47-04e3a4c8abc2" visibility="public" value="1"/></defaultValue></Property><Property uuid="a483061f-50ad-4f46-ba07-5f3a74b66345" name="HTTP_MINOR_VERSION_SUPPORT" visibility="public" isLeaf="true" isStatic="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328" DocComment="e29eba09-b249-40d0-9bd5-aa237d1ee741"><ownedComment><Comment uuid="e29eba09-b249-40d0-9bd5-aa237d1ee741" body="
 Minor version number of the supported HTTP version.

 HTTP_MAJOR_VERSION_SUPPORT.HTTP_MINOR_VERSION_SUPPORT
"><annotatedElement idref="a483061f-50ad-4f46-ba07-5f3a74b66345"/></Comment></ownedComment><defaultValue><LiteralString uuid="aef41088-e6d0-4a46-97ff-36505be54f6d" visibility="public" value="1"/></defaultValue></Property></ownedAttribute></Class><Class uuid="370d0768-7e30-4c6d-89eb-02e797aeee19" name="HttpException" visibility="public" usedForCodeSyncronization="true" DocComment="07b0cc25-4d21-496c-b835-efe23e38b3e0"><codeFileName><CodeFileName name="HttpException.java"/></codeFileName><ownedComment><Comment uuid="07b0cc25-4d21-496c-b835-efe23e38b3e0" body="

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/></Comment></ownedComment><generalization><Generalization uuid="447f10a5-5171-4b40-a50a-6f1da8c48552" general="d10013c7-d190-4c74-a2b3-d267d8da8131"/></generalization><ownedAttribute><Property uuid="2a28462b-1746-4b7f-9d38-28b5749337cb" name="httpCode" visibility="private" isLeaf="true" type="2458fe88-04c5-40d6-ae8c-75bc48716877"/></ownedAttribute><ownedOperation><Operation uuid="b5aebae7-b59a-494f-9e31-bff8211f4cd3" name="HttpException" visibility="public" DocComment="e3680e8d-cab2-4b24-a1cc-179d1e618506"><ownedComment><Comment uuid="e3680e8d-cab2-4b24-a1cc-179d1e618506" body="
 Creates a new HTTP Exception.

 @param httpCommand The http command.
 @param message The message associated to this exception.
"><annotatedElement idref="b5aebae7-b59a-494f-9e31-bff8211f4cd3"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="7e82e112-2ad6-4288-83d2-298ec79f58dc" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="0a268c02-fc27-41af-b076-d2b43a55f002" name="httpCode" type="2458fe88-04c5-40d6-ae8c-75bc48716877"/><Parameter uuid="a4d7c8ad-fd04-46fb-8fdf-17451715a2de" name="message" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="05006d47-9277-451e-bf4f-2fd310c317f8" name="getPage" visibility="public"><ownedParameter><Parameter uuid="9df985a6-e960-4ee3-b758-3d1c88cd9d0b" name="return" direction="return" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/></ownedParameter></Operation><Operation uuid="2de5d37e-b17b-4c28-9ab2-b09dce3b76bf" name="getHttpCode" visibility="public" DocComment="f0d39c59-df1b-4b60-95df-0a91e9d54434"><ownedComment><Comment uuid="f0d39c59-df1b-4b60-95df-0a91e9d54434" body="
 The HTTP error code.
"><annotatedElement idref="2de5d37e-b17b-4c28-9ab2-b09dce3b76bf"/></Comment></ownedComment><ownedParameter><Parameter uuid="c2b89e85-6bf6-426e-8c51-5bb49da279cf" name="return" direction="return" type="2458fe88-04c5-40d6-ae8c-75bc48716877"/></ownedParameter></Operation><Operation uuid="204fd712-ba9a-477d-9d98-f68ca49ec59f" name="toString" visibility="public"><appliedStereotype><StereotypeApplication uuid="79cf71c2-0a12-4e49-9ed2-5aaeeee571ac" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="fdba4612-6907-484b-91ea-35b04d556561" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="d127f4ff-4a98-4fba-818e-c7952c9453ab" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="55ea8bc3-dc32-4819-a373-97019d97916a" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation></ownedOperation></Class><Enumeration uuid="da3a924a-f230-4204-9d41-9644faea3cf9" name="HttpMethods" visibility="public" usedForCodeSyncronization="true" DocComment="ff66af88-12f8-4bd0-9f74-8167c50ebe05"><codeFileName><CodeFileName name="HttpMethods.java"/></codeFileName><ownedComment><Comment uuid="ff66af88-12f8-4bd0-9f74-8167c50ebe05" body="
 Supported Http methods.

 Qroxy support only RFC 1945.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="da3a924a-f230-4204-9d41-9644faea3cf9"/></Comment></ownedComment><ownedLiteral><EnumerationLiteral uuid="78c1213b-5b48-4468-9f45-0c2a0901b367" name="GET" visibility="public"/><EnumerationLiteral uuid="4df0d579-a142-415b-8e72-bf7cea01aa53" name="POST" visibility="public"/><EnumerationLiteral uuid="c965af4b-d096-4f85-a4ba-4fafdcb0e99e" name="HEAD" visibility="public"/><EnumerationLiteral uuid="2924b854-666e-45eb-837b-82d2d4cbcfd6" name="LINK" visibility="public"/><EnumerationLiteral uuid="521f8a2f-1af2-4e4e-a5e6-f7637741096e" name="DELETE" visibility="public"/><EnumerationLiteral uuid="216ace95-db37-4cec-9d65-ccdc904c3c89" name="HTTP" visibility="public"/></ownedLiteral></Enumeration><Enumeration uuid="4bf56833-9631-46bf-a82b-2c51f93433f3" name="HttpTransferMethods" visibility="public" usedForCodeSyncronization="true" DocComment="786126af-a038-4b36-890e-5310fba0e3c6"><codeFileName><CodeFileName name="HttpTransferMethods.java"/></codeFileName><ownedComment><Comment uuid="786126af-a038-4b36-890e-5310fba0e3c6" body="
 Transfer methods.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
"><annotatedElement idref="4bf56833-9631-46bf-a82b-2c51f93433f3"/></Comment></ownedComment><ownedLiteral><EnumerationLiteral uuid="02023597-3b48-4c2b-8332-6ddcb5ea53d5" name="CHUNKED" visibility="public" DocComment="9b93d06c-bafb-4d78-97cf-fbfeceb1d24a"><ownedComment><Comment uuid="9b93d06c-bafb-4d78-97cf-fbfeceb1d24a" body="
 Chunked communication.
"><annotatedElement idref="02023597-3b48-4c2b-8332-6ddcb5ea53d5"/></Comment></ownedComment></EnumerationLiteral><EnumerationLiteral uuid="5de19adb-b4e9-432b-86b0-a64841c1a158" name="FIXED" visibility="public" DocComment="61c9e545-5f0d-4d2a-837c-9670790a39ea"><ownedComment><Comment uuid="61c9e545-5f0d-4d2a-837c-9670790a39ea" body="
 Fixed communication.
"><annotatedElement idref="5de19adb-b4e9-432b-86b0-a64841c1a158"/></Comment></ownedComment></EnumerationLiteral></ownedLiteral></Enumeration></packagedElement></Package><Package uuid="7b933f39-34fe-4c53-8cef-05030f0e2c03" name="rules" visibility="public"><appliedStereotype><StereotypeApplication uuid="5ce5239a-ebce-4b91-ba2f-c9b1ea72a373" classifier="c898c1a3-547b-4a84-ad06-908fd57678c2"/></appliedStereotype><packagedElement><Class uuid="13b04fce-67a2-4c3e-8332-1a0abded9174" name="HeaderHttp" visibility="public" usedForCodeSyncronization="true" DocComment="97667e5e-66d4-45cc-8ac5-65975819a948"><codeFileName><CodeFileName name="HeaderHttp.java"/></codeFileName><ownedComment><Comment uuid="97667e5e-66d4-45cc-8ac5-65975819a948" body="
 HTTP Header.

 Parses a ByteBuffer and generate an usable HTTP header.

 @author Damien Girard &lt;dgirard@nativesoft.fr&gt;
 @author Sebastien BAUDRAND &lt;sebbaudrand@gmail.com&gt;
"><annotatedElement idref="13b04fce-67a2-4c3e-8332-1a0abded9174"/></Comment></ownedComment><ownedAttribute><Property uuid="cd674e21-64c6-4fe8-897a-65afa5fb4fd7" name="logger" visibility="private" isLeaf="true" isStatic="true" type="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f"><defaultValue><LiteralString uuid="4dd44030-6816-41d0-8ca5-0450b2721ea5" visibility="public" value="Logger.getLogger(HeaderHttp.class.getName())"/></defaultValue></Property><Property uuid="fbb14f15-4759-420b-befa-dd0fc14f9f11" name="httpHeaderCharset" visibility="private" isLeaf="true" isStatic="true" type="46865992-0056-45bd-bdb7-e0f4bc5dad74"><defaultValue><LiteralString uuid="0b4ba101-02c6-4941-8fdc-a5a398d18796" visibility="public" value="Charset.forName(&quot;ISO-8859-1&quot;)"/></defaultValue></Property><Property uuid="12dc96e2-8f12-42cc-8c47-79588d33e27d" name="properties" visibility="private" isLeaf="true" type="02c55ab6-279d-4cab-9b75-49417dc892c7"><defaultValue><LiteralString uuid="6e71b375-5f36-4427-88c9-6e8f62ee32bf" visibility="public" value="new TreeMap&lt;String, String&gt;(String.CASE_INSENSITIVE_ORDER)"/></defaultValue></Property><Property uuid="8b12b403-8785-44b1-8bc2-64cb336f6fe8" name="httpHeaderFirstLine" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="c0612728-d498-48c6-b46f-4354e3a28056" name="urlToCall" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="b0e49ccc-37d0-4d6b-9f5b-f80578877574" name="uri" visibility="private" isLeaf="true" type="0299fbc4-c575-4698-9a9e-4034d75dc22e"/><Property uuid="aab25435-bf9e-4fe0-b0a5-a762fa4d2f61" name="httpMethod" visibility="private" isLeaf="true" type="da3a924a-f230-4204-9d41-9644faea3cf9"/><Property uuid="96ddb4b5-3a88-42b7-8533-0d3d5947f366" name="httpCode" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="7e2c3696-87cc-404e-a384-ae23bfb79bfd" name="endOfHeaderInBuffer" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="8dde5272-367d-4251-abef-7d51235b01b3" name="closeRule" visibility="private" type="5508e5af-23d7-4ef4-9edd-271a111046a7"><defaultValue><LiteralString uuid="404736b3-bdb5-4575-9caf-0e6f4f2a07c7" visibility="public" value="null"/></defaultValue></Property><Property uuid="85fa544a-8e43-466d-84e8-cd3b70a427eb" name="transferMethod" visibility="private" type="4bf56833-9631-46bf-a82b-2c51f93433f3"><defaultValue><LiteralString uuid="fe564a41-87d2-42e1-9cc9-fc0a46d53447" visibility="public" value="null"/></defaultValue></Property><Property uuid="c3382693-9453-4718-9c47-e299e2e4a1c0" name="contentLength" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="2810dba8-e7e4-4f54-b4c3-ef5aed884e0b" name="httpVersionMinor" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="5279cd60-9e12-48d0-b0c4-da88046213ba" name="httpVersionMajor" visibility="private" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedAttribute><ownedOperation><Operation uuid="f2e61bc6-185c-4c97-8d0f-16a5e7bf43bb" name="HeaderHttp" visibility="public" DocComment="a76d169b-f31e-49e9-9178-6829c2cfbfe2"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><raisedException idref="26181390-1056-4c61-b659-94a413dd4931"/><ownedComment><Comment uuid="a76d169b-f31e-49e9-9178-6829c2cfbfe2" body="
 Parse the buffer in order to create an usable Http header.

 @param buffer Buffer to parse.
 @param endOfHeaderInBuffer Position where the header stop in the buffer.

 @throws HttpException HTTP error when parsing the header.
"><annotatedElement idref="f2e61bc6-185c-4c97-8d0f-16a5e7bf43bb"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="f82f5e45-8e8f-487f-8839-f767b2665975" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="823b79d7-859a-4e06-bf42-a45e1bf430e5" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="46ceeed7-0022-4be9-87b7-a0443186f5ac" name="endOfHeaderInBuffer" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="940bfd28-fda1-462c-b383-aff564cb3a60" name="readHttpVersion" visibility="private" DocComment="ca19ced7-2896-47c5-bb41-6b2bec5bdb98"><raisedException idref="370d0768-7e30-4c6d-89eb-02e797aeee19"/><ownedComment><Comment uuid="ca19ced7-2896-47c5-bb41-6b2bec5bdb98" body="
 Helpers that read the HTTP version.

 @param httpVerToken HTTP/X.X string.
 @throws HttpException If the http version is not supported.
"><annotatedElement idref="940bfd28-fda1-462c-b383-aff564cb3a60"/></Comment></ownedComment><ownedParameter><Parameter uuid="8f96a764-e96f-4eba-9852-6c7676c3ec22" name="httpVerToken" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="dda0ed0d-9298-4672-8b49-12a470646054" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="1d1fae67-e6d6-498c-83a1-65bc5f15c1b5" name="getProperties" visibility="public" DocComment="20dbb216-cf7a-4435-ab79-968afb81ab06"><ownedComment><Comment uuid="20dbb216-cf7a-4435-ab79-968afb81ab06" body="
 Get the properties initialized with the constructor.

 @return The property.
"><annotatedElement idref="1d1fae67-e6d6-498c-83a1-65bc5f15c1b5"/></Comment></ownedComment><ownedParameter><Parameter uuid="465dfbd7-02ff-48c0-85a3-b4afdd9b01bc" name="return" direction="return" type="02c55ab6-279d-4cab-9b75-49417dc892c7"/></ownedParameter></Operation><Operation uuid="37d51d73-3e40-4202-8d0f-a7623a522ca0" name="getHttpMethod" visibility="public" DocComment="da8dc0ed-b108-426e-b126-46c0b77e6334"><ownedComment><Comment uuid="da8dc0ed-b108-426e-b126-46c0b77e6334" body="
 Returns the HTTP method.

 @return The HTTP method.
"><annotatedElement idref="37d51d73-3e40-4202-8d0f-a7623a522ca0"/></Comment></ownedComment><ownedParameter><Parameter uuid="600f9977-2689-4121-8d7c-4b6a70c6f14c" name="return" direction="return" type="da3a924a-f230-4204-9d41-9644faea3cf9"/></ownedParameter></Operation><Operation uuid="d716d52f-f5b9-4875-a009-b72e5c53b774" name="getUrlToCall" visibility="public" DocComment="8090776a-112e-491c-9f68-482fe4ea1e03"><ownedComment><Comment uuid="8090776a-112e-491c-9f68-482fe4ea1e03" body="
 Returns the url to call on the server.

 @return The Url.
"><annotatedElement idref="d716d52f-f5b9-4875-a009-b72e5c53b774"/></Comment></ownedComment><ownedParameter><Parameter uuid="14f9a125-1a5f-42d0-ae49-2e3b71e385f4" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="526381d4-dc1d-47c7-8004-a0bcbbd40f1f" name="getUri" visibility="public" DocComment="46619d63-a5d0-4bf2-ad55-44f9054d62ff"><ownedComment><Comment uuid="46619d63-a5d0-4bf2-ad55-44f9054d62ff" body="
 Returns the uri to call.

 @return the uri object.
"><annotatedElement idref="526381d4-dc1d-47c7-8004-a0bcbbd40f1f"/></Comment></ownedComment><ownedParameter><Parameter uuid="a79ffb06-8cf4-46d5-b0e7-3e7d6f1dfbcd" name="return" direction="return" type="0299fbc4-c575-4698-9a9e-4034d75dc22e"/></ownedParameter></Operation><Operation uuid="b305351d-4fbf-40cb-b740-811a6d22c014" name="getContentLength" visibility="public" DocComment="63c13899-a20c-411e-b4b7-5ef7c4d866f4"><ownedComment><Comment uuid="63c13899-a20c-411e-b4b7-5ef7c4d866f4" body="
 Gets the content-length.

 @return The content length value of this http header. -1 means that datas
 are in chunked mode.
"><annotatedElement idref="b305351d-4fbf-40cb-b740-811a6d22c014"/></Comment></ownedComment><ownedParameter><Parameter uuid="aa06ad4a-2be9-4958-8f71-95f9d0c991a3" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="a07109f1-0eb1-4841-85cc-59f4d412640e" name="getHttpCode" visibility="public" DocComment="e39cbde4-1a64-4eaa-9a88-36d574e4fd72"><ownedComment><Comment uuid="e39cbde4-1a64-4eaa-9a88-36d574e4fd72" body="
 Gets the http code. (eg. 404)
"><annotatedElement idref="a07109f1-0eb1-4841-85cc-59f4d412640e"/></Comment></ownedComment><ownedParameter><Parameter uuid="30c54095-a726-4367-b4c1-f3e6c46c0d68" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="e4995380-011b-42e9-b9e7-ea247edb4355" name="getCloseRule" visibility="public" DocComment="985a4fc1-fdc3-4868-9daf-7c8ee35f5a9d"><ownedComment><Comment uuid="985a4fc1-fdc3-4868-9daf-7c8ee35f5a9d" body="
 Gets the HTTP close rule.
"><annotatedElement idref="e4995380-011b-42e9-b9e7-ea247edb4355"/></Comment></ownedComment><ownedParameter><Parameter uuid="ecd08240-c623-49a7-9110-1e172609e3e3" name="return" direction="return" type="5508e5af-23d7-4ef4-9edd-271a111046a7"/></ownedParameter></Operation><Operation uuid="39ece367-9c24-4349-90d1-ee1f9947b16b" name="getEndOfHeaderInBuffer" visibility="public" DocComment="f7397d18-4068-43ac-bd48-0fcba183ed03"><ownedComment><Comment uuid="f7397d18-4068-43ac-bd48-0fcba183ed03" body="
 Gets the position where the header ends in the buffer.
"><annotatedElement idref="39ece367-9c24-4349-90d1-ee1f9947b16b"/></Comment></ownedComment><ownedParameter><Parameter uuid="63cd266f-16e4-4fef-85ef-264282bb1906" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="579a4f89-5563-4644-9597-d563f99373b9" name="getTransferMethod" visibility="public" DocComment="a3f10e4e-f66e-4179-a9a4-126f8bb87c7f"><ownedComment><Comment uuid="a3f10e4e-f66e-4179-a9a4-126f8bb87c7f" body="
 Gets the transfer method.
"><annotatedElement idref="579a4f89-5563-4644-9597-d563f99373b9"/></Comment></ownedComment><ownedParameter><Parameter uuid="631b0671-05a7-45b9-9336-26cefe888830" name="return" direction="return" type="4bf56833-9631-46bf-a82b-2c51f93433f3"/></ownedParameter></Operation><Operation uuid="29fc8290-0c2d-4854-ad20-85c02597c1df" name="setContentLength" visibility="public" DocComment="398bec4a-0940-45ab-9c0a-32537d3bc157"><ownedComment><Comment uuid="398bec4a-0940-45ab-9c0a-32537d3bc157" body="
 Set the content length.

 Usefull for chunked connection.
"><annotatedElement idref="29fc8290-0c2d-4854-ad20-85c02597c1df"/></Comment></ownedComment><ownedParameter><Parameter uuid="29db3f11-fe46-48f3-b7ad-76f3ef1aeccb" name="contentLength" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="ca7b40ee-2fea-4bcd-a9dc-1c4aa7248ab3" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="c3e8ca9b-4f31-4f10-badf-f3b124cfc121" name="writeHeaderHttpToBuffer" visibility="public" DocComment="42966ef8-d626-4047-b22c-2fcba8e7d23a"><raisedException idref="49da3bf9-975b-4f50-bbbe-0fb39793b91f"/><raisedException idref="26181390-1056-4c61-b659-94a413dd4931"/><ownedComment><Comment uuid="42966ef8-d626-4047-b22c-2fcba8e7d23a" body="
 Writes this Http header to the buffer.

 @param buffer The buffer to append the data.

 @throws BufferOverflowException The buffer is not large enough to hold the HTTP header. (Clear it before calling this method!)
"><annotatedElement idref="c3e8ca9b-4f31-4f10-badf-f3b124cfc121"/></Comment></ownedComment><ownedParameter><Parameter uuid="0813c3b0-9bba-4e8d-a082-de6a50dda6e0" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="93ab4ca9-35dd-469b-ae10-9747b6d5f00c" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="c3c59ee9-7f18-48d5-988e-70e05443a573" name="bufferHaveHttpHeader" visibility="public" isStatic="true" DocComment="d111137d-98cf-436a-b2eb-259c2fffeb7c"><raisedException idref="26181390-1056-4c61-b659-94a413dd4931"/><ownedComment><Comment uuid="d111137d-98cf-436a-b2eb-259c2fffeb7c" body="
 Returns the position of the end of the http buffer.

 @param buffer The buffer to check.

 @return -1 if the buffer does not contains an http header.
"><annotatedElement idref="c3c59ee9-7f18-48d5-988e-70e05443a573"/></Comment></ownedComment><ownedParameter><Parameter uuid="4a308f04-6d9d-4d17-a7a9-16d171d44b07" name="buffer" type="c2fa1f40-a887-4f9e-8179-e35c64ac45be"/><Parameter uuid="d6894eff-bf18-42b6-888c-96b2f69c6d8c" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="050cecf9-589d-4a8e-8705-ad03fd6542c5" name="Rule" visibility="public" usedForCodeSyncronization="true"><codeFileName><CodeFileName name="Rule.java"/></codeFileName><ownedAttribute><Property uuid="aa7d26ca-5c7d-446a-8190-1bb13b8ee416" name="minimalSpeed" visibility="private" isLeaf="true" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Property uuid="d34da920-5172-4557-9bb7-691b4b3ed829" name="maximalSpeed" visibility="private" isLeaf="true" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Property uuid="6bb6d243-a1fd-4aee-9175-e4f689a9e376" name="weight" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="7cfea18f-0256-490e-8b6d-be1511733f9c" name="maxCacheSize" visibility="private" isLeaf="true" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Property uuid="924bcf76-3df9-4364-82b8-62984dedbd22" name="urlPattern" visibility="private" isLeaf="true" type="4afce311-4676-4cf0-a3a3-6c4fd064447e"/><Property uuid="1af2eea8-3fef-4aae-bd82-a80248148cab" name="httpHeaders" visibility="private" isLeaf="true" type="e48d10ae-8474-41c5-8632-22b962350904"/><Property uuid="73e9fedf-6aec-4ca3-ba66-852c787db970" name="nameRule" visibility="private" isLeaf="true" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Property uuid="820c8628-7666-4619-a77f-b7150de886f9" name="forbidenRequest" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="927731ad-379c-4fa6-a4d6-e1fa564bd8f4" name="privateData" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Property uuid="d5add58a-677b-45b9-82e2-205f3b63a967" name="privateCache" visibility="private" isLeaf="true" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedAttribute><ownedOperation><Operation uuid="2bbc530e-5057-4f55-b822-f4376fb8f89d" name="Rule" visibility="private" DocComment="907f1023-2690-4d84-beb7-80ef510384b0"><ownedComment><Comment uuid="907f1023-2690-4d84-beb7-80ef510384b0" body="
 Create an object Rule.
 This object definite a rule and values who can be used by the proxy.

 @param minimalSpeed
 @param maximalSpeed
 @param weight
 @param urlPattern
 @param htttpHeader
 @param forbidenRequest
"><annotatedElement idref="2bbc530e-5057-4f55-b822-f4376fb8f89d"/></Comment></ownedComment><appliedStereotype><StereotypeApplication uuid="77f9f30e-a837-4b4a-8885-703c89b48093" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype><ownedParameter><Parameter uuid="6ebe1765-d1fc-40b9-ac34-39b883520c00" name="minimalSpeed" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Parameter uuid="306d9a64-ad4e-45a9-8e15-b9738945a01a" name="maximalSpeed" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/><Parameter uuid="5b546bf7-0ff3-432f-a966-ff2bb8fb3d63" name="weight" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="db25b713-b43d-41ba-9490-8add1407964d" name="urlPattern" type="4afce311-4676-4cf0-a3a3-6c4fd064447e"/><Parameter uuid="f3142668-e0c6-4ed9-9a54-e1d271dbec12" name="htttpHeader" type="e48d10ae-8474-41c5-8632-22b962350904"/><Parameter uuid="37547521-db7b-4ff6-97db-a44e09b3193f" name="forbidenRequest" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/><Parameter uuid="5ec3f7a0-8984-45ea-b8b4-c3e3aa8211ca" name="nameRule" type="81530a39-1176-47d7-add3-8da2cacba49c"/><Parameter uuid="9a0a46a4-fac9-4a5e-8e10-576d8f1ab4d2" name="maxCacheSize" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/><Parameter uuid="b369045e-67f0-450f-942d-6344bcb6b77f" name="privateData" type="5be727cb-80e6-4856-947f-4861ea87eb2a"/><Parameter uuid="1dba636d-9742-4654-adcf-97f2a11057d5" name="privateCache" type="5be727cb-80e6-4856-947f-4861ea87eb2a"/></ownedParameter></Operation><Operation uuid="9e290df4-1568-411b-a43f-56f38e17b78d" name="createRulesFromFile" visibility="public" isStatic="true" DocComment="f89a71fc-e5d5-4c47-927f-2421658015b8"><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedComment><Comment uuid="f89a71fc-e5d5-4c47-927f-2421658015b8" body="
 Parses a configuration file to retrieve the rules to apply. Create all
 rules contains in the configuration file. If you change the configuration
 file when qroxy is started, you can restart qroxy.

 @param file
"><annotatedElement idref="9e290df4-1568-411b-a43f-56f38e17b78d"/></Comment></ownedComment><ownedParameter><Parameter uuid="cf70d7f3-f0cb-4406-997f-9f92357a4f8c" name="file" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="6006081e-8912-4924-9bd9-3862d33892a1" name="return" direction="return" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/></ownedParameter></Operation><Operation uuid="501d33c5-3bad-4ff5-8162-6feec214780b" name="validate" visibility="public" DocComment="f1c4f746-8099-4a8a-98e4-72a5f0c4b59f"><ownedComment><Comment uuid="f1c4f746-8099-4a8a-98e4-72a5f0c4b59f" body="
 Validates an http header.
 Return true if it is valide, else return false.

 @param header
 @return true if the rule match the header http
"><annotatedElement idref="501d33c5-3bad-4ff5-8162-6feec214780b"/></Comment></ownedComment><ownedParameter><Parameter uuid="c1657df4-96dd-478f-a959-6f5a8c6cbc1a" name="header" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="020c56ec-91ab-4af7-8c44-601eab2ce672" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="d2ef243b-66c4-4f91-bd55-912072b54d73" name="validateRules" visibility="private" isStatic="true" DocComment="108244d2-3220-4c97-88da-e6aaf6a67302"><ownedComment><Comment uuid="108244d2-3220-4c97-88da-e6aaf6a67302" body="
 Check if a rules is correct

 @param index
 @return true if the minimum values is informed
"><annotatedElement idref="d2ef243b-66c4-4f91-bd55-912072b54d73"/></Comment></ownedComment><ownedParameter><Parameter uuid="030530dc-0ad5-43be-b9a2-841218491a21" name="rules" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/><Parameter uuid="265a0081-8409-4e6f-96ab-c5d77d1f10ac" name="return" direction="return" type="5be727cb-80e6-4856-947f-4861ea87eb2a"/></ownedParameter></Operation><Operation uuid="01f3bfaf-e6be-41a1-8fb9-ea925c664df3" name="getMaximalSpeed" visibility="public" DocComment="a69da44f-c7d6-4872-ac87-1d4e7785eaa6"><ownedComment><Comment uuid="a69da44f-c7d6-4872-ac87-1d4e7785eaa6" body="
 Get the maximal speed of the current rules.

 @return double the maximal rate
"><annotatedElement idref="01f3bfaf-e6be-41a1-8fb9-ea925c664df3"/></Comment></ownedComment><ownedParameter><Parameter uuid="bdcc3e07-d0f0-4f81-b335-b28513932463" name="return" direction="return" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/></ownedParameter></Operation><Operation uuid="5ef6f74e-2180-48e0-b09b-887aae3e3392" name="getMinimalSpeed" visibility="public" DocComment="b396facc-51f1-4508-bf15-3f5188b682ca"><ownedComment><Comment uuid="b396facc-51f1-4508-bf15-3f5188b682ca" body="
 Get the minimal speed of the current rules.

 @return double the minnimal rate
"><annotatedElement idref="5ef6f74e-2180-48e0-b09b-887aae3e3392"/></Comment></ownedComment><ownedParameter><Parameter uuid="0e29669e-37b3-42ce-96f5-d940c99f5b7a" name="return" direction="return" type="bca1bdf5-bc77-4e79-b595-1f17af1e4de5"/></ownedParameter></Operation><Operation uuid="9f283081-feeb-42f9-8d9e-0fcbf4a7cfb9" name="getWeight" visibility="public" DocComment="063c6292-1b77-4ca3-ac3c-9734a39e89a4"><ownedComment><Comment uuid="063c6292-1b77-4ca3-ac3c-9734a39e89a4" body="
 Get the weight of the current rules.
 The wheight is priority number of a rules.

 @return int the weight
"><annotatedElement idref="9f283081-feeb-42f9-8d9e-0fcbf4a7cfb9"/></Comment></ownedComment><ownedParameter><Parameter uuid="0f6c2ac0-5002-4b62-8e4c-8080aef12c78" name="return" direction="return" type="308d9740-87d8-4fa8-91c3-85e1c8a42328"/></ownedParameter></Operation><Operation uuid="abe599f6-40da-430c-a115-850f81015145" name="getMaxCacheSize" visibility="public" DocComment="5c553974-68a6-4459-a863-0ca88d4b8e51"><ownedComment><Comment uuid="5c553974-68a6-4459-a863-0ca88d4b8e51" body="
 Get the maximal cache size of the current rules.
 The wheight is priority number of a rules.

 @return int
"><annotatedElement idref="abe599f6-40da-430c-a115-850f81015145"/></Comment></ownedComment><ownedParameter><Parameter uuid="8ea51800-4b3b-4d83-830e-bbf6daf4b3dd" name="return" direction="return" type="490655c1-c6f7-43b8-acee-a7840393d336"/></ownedParameter></Operation><Operation uuid="a97b5e07-022b-4ded-b6c9-3dec185f8555" name="getNameRule" visibility="public" DocComment="c28f3192-1669-46ce-8fde-af15d6bda383"><ownedComment><Comment uuid="c28f3192-1669-46ce-8fde-af15d6bda383" body="
 Get rule name of the current rules.
 The wheight is priority number of a rules.

 @return int the weight
"><annotatedElement idref="a97b5e07-022b-4ded-b6c9-3dec185f8555"/></Comment></ownedComment><ownedParameter><Parameter uuid="50134715-89db-4185-bd28-7741a068c24e" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation><Operation uuid="a50b62fe-caa1-4774-8c34-705501c5fe94" name="getUrlPattern" visibility="public" DocComment="9e0971b9-7756-437e-bd7f-66e6caca3940"><ownedComment><Comment uuid="9e0971b9-7756-437e-bd7f-66e6caca3940" body="
 Get the url of the rule

 @return Pattern url
"><annotatedElement idref="a50b62fe-caa1-4774-8c34-705501c5fe94"/></Comment></ownedComment><ownedParameter><Parameter uuid="473a672d-a689-49f0-af7b-ecfb70ca12f7" name="return" direction="return" type="4afce311-4676-4cf0-a3a3-6c4fd064447e"/></ownedParameter></Operation><Operation uuid="a9ae83ff-1820-4b85-8a10-14c0f1a8f534" name="getHttpHeaders" visibility="public" DocComment="085a0ce4-9061-4424-a845-bb9f05298073"><ownedComment><Comment uuid="085a0ce4-9061-4424-a845-bb9f05298073" body="
 Get the properties of the rule

 @return HashMap&lt;String, Pattern&gt; key is the command, value is the pattern
"><annotatedElement idref="a9ae83ff-1820-4b85-8a10-14c0f1a8f534"/></Comment></ownedComment><ownedParameter><Parameter uuid="5854b73e-dcfc-4eec-b04c-411cf1f3cc53" name="return" direction="return" type="e48d10ae-8474-41c5-8632-22b962350904"/></ownedParameter></Operation><Operation uuid="15afd01e-629c-4848-8d9e-8c78cc82d94e" name="getForbidenRequest" visibility="public" DocComment="ecf17d0c-9271-4c29-9d64-b637d51a12d6"><ownedComment><Comment uuid="ecf17d0c-9271-4c29-9d64-b637d51a12d6" body="
 Get if a reuest is valide or not.

 @return true if the request is valid
"><annotatedElement idref="15afd01e-629c-4848-8d9e-8c78cc82d94e"/></Comment></ownedComment><ownedParameter><Parameter uuid="7b07893e-326e-45e1-81de-80a7d4c43ee5" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="3d7897e2-b33d-426f-92c8-b8c411c055ee" name="getPrivateData" visibility="public" DocComment="d247ae20-1877-4dcb-aced-1453dc592334"><ownedComment><Comment uuid="d247ae20-1877-4dcb-aced-1453dc592334" body="


 @return
"><annotatedElement idref="3d7897e2-b33d-426f-92c8-b8c411c055ee"/></Comment></ownedComment><ownedParameter><Parameter uuid="8cc3dba8-1b7b-4317-930d-20db309cc17f" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="3bff9e67-4b77-4253-8dc2-db62e03a9cf1" name="getPrivateCache" visibility="public" DocComment="72a12df1-1bcc-48bf-8743-0697bc1b841e"><ownedComment><Comment uuid="72a12df1-1bcc-48bf-8743-0697bc1b841e" body="
 Get if a request

 @return
"><annotatedElement idref="3bff9e67-4b77-4253-8dc2-db62e03a9cf1"/></Comment></ownedComment><ownedParameter><Parameter uuid="e6508fcd-ff14-4c06-99a8-4b607f84036c" name="return" direction="return" type="5281ff9f-1b8c-4bf7-9b56-9003e2791461"/></ownedParameter></Operation><Operation uuid="5f25542c-fc18-4b24-abab-6c532349ce53" name="toString" visibility="public"><appliedStereotype><StereotypeApplication uuid="7768f570-60d4-40d6-90e7-4fa73d62a564" classifier="00121102-7512-11d9-86f2-000476a22f44"><slot><Slot uuid="5cfd024c-2091-4756-aae2-7272691fb83c" definingFeature="00131102-7512-11d9-86f2-000476a22f44"><value><InstanceValue uuid="bc71a517-bf27-49fc-bde7-8ee09f0126e6" visibility="public" instance="00414102-7510-11d9-86f2-000476a22f44"/></value></Slot></slot></StereotypeApplication></appliedStereotype><ownedParameter><Parameter uuid="aadc8253-9a71-4ca2-8925-d2e9783e2ec6" name="return" direction="return" type="81530a39-1176-47d7-add3-8da2cacba49c"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="51b56fa0-2f71-4d48-b767-6cd8f21a8846" name="RuleChecker" visibility="public" usedForCodeSyncronization="true"><codeFileName><CodeFileName name="RuleChecker.java"/></codeFileName><ownedAttribute><Property uuid="77a22c7e-dd8c-4496-8833-aa0f5fdc30a2" name="rules" visibility="private" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/></ownedAttribute><ownedOperation><Operation uuid="1eefa3cb-fcf0-42ba-88a2-aa9e4400462d" name="RuleChecker" visibility="public"><appliedStereotype><StereotypeApplication uuid="86bca9b7-d379-4dda-8270-4076c5749338" classifier="11194c22-fedc-4e94-8547-ec925c28a37e"/></appliedStereotype></Operation><Operation uuid="5af0168f-839c-43c1-81fd-3c1fa65d1219" name="RulelookUp" visibility="public" DocComment="7fee66c4-e6ed-4c33-96a6-0b36f4b06640"><ownedComment><Comment uuid="7fee66c4-e6ed-4c33-96a6-0b36f4b06640" body="
 Test an http header. You can pass an http header an return the rule if it
 exist.

 @param headerHttp
 @return Rule
"><annotatedElement idref="5af0168f-839c-43c1-81fd-3c1fa65d1219"/></Comment></ownedComment><ownedParameter><Parameter uuid="9698a13b-c527-4f1e-934d-6c6cc677d314" name="headerHttp" type="13b04fce-67a2-4c3e-8332-1a0abded9174"/><Parameter uuid="183d5ef5-6749-4d0a-a3f3-eb9700a76190" name="return" direction="return" type="050cecf9-589d-4a8e-8705-ad03fd6542c5"/></ownedParameter></Operation><Operation uuid="9d008701-6b7a-4211-95a2-59e23be0814a" name="addRuleFile" visibility="public"><raisedException idref="d10013c7-d190-4c74-a2b3-d267d8da8131"/><ownedParameter><Parameter uuid="46e6f05d-ad35-4a80-a11c-6cee570008f7" name="f" type="e1c94980-da43-48f6-b407-7ef50014ce2f"/><Parameter uuid="7cc3ea6c-0308-4987-ac48-20965054b64b" name="return" direction="return" type="71dff5dd-543f-46fe-8c5c-1f7884d610e9"/></ownedParameter></Operation><Operation uuid="9d426d71-9e32-4888-85ad-2121a9ad74f0" name="getRules" visibility="public"><ownedParameter><Parameter uuid="1242e637-9d25-4cf0-a5e2-5ef5e694f1ae" name="return" direction="return" type="fbef049e-98ee-4896-9ed8-5540bfcd4ab0"/></ownedParameter></Operation></ownedOperation></Class><Class uuid="fbef049e-98ee-4896-9ed8-5540bfcd4ab0" visibility="public"><templateBinding><TemplateBinding uuid="6104bbe7-e2ec-4500-8351-a5b3df758e51" signature="623c5447-d650-4c69-b650-517dbb9141ff"><parameterSubstitution><TemplateParameterSubstitution uuid="ef0550a8-2f8c-4c15-b2b3-ad697f0cc2c6" formal="36b0e09c-4aed-44fa-ac25-ef70b83d7187" actual="050cecf9-589d-4a8e-8705-ad03fd6542c5"/></parameterSubstitution></TemplateBinding></templateBinding></Class><Class uuid="e48d10ae-8474-41c5-8632-22b962350904" visibility="public"><templateBinding><TemplateBinding uuid="ffb1eac5-fe86-48ea-8afb-a0fd85f5b64e" signature="fee98030-ee84-48cc-8f83-ac6d9230a1ce"><parameterSubstitution><TemplateParameterSubstitution uuid="7278749d-4361-43f0-8497-547327cfb87e" formal="0a8bbce5-4278-43e0-b00d-4fc238301676" actual="81530a39-1176-47d7-add3-8da2cacba49c"/><TemplateParameterSubstitution uuid="3e1e07b7-1f99-4c5a-b784-da3dfe7a7fb5" formal="f383850f-fe4b-4cbd-8d81-ae0c84bed4fb" actual="4afce311-4676-4cf0-a3a3-6c4fd064447e"/></parameterSubstitution></TemplateBinding></templateBinding></Class><Interface uuid="02c55ab6-279d-4cab-9b75-49417dc892c7" visibility="public"><templateBinding><TemplateBinding uuid="498ffea8-c8cd-4343-b648-cf3f63c02107" signature="f14a3a6e-30a5-464d-a37a-1df48ce1282b"><parameterSubstitution><TemplateParameterSubstitution uuid="48b4abe3-346f-41ac-992e-11add2748eb1" formal="1594b3a2-afc7-4b28-a2ed-9e9b7fd58653" actual="81530a39-1176-47d7-add3-8da2cacba49c"/><TemplateParameterSubstitution uuid="844f5769-0c2c-4e94-a880-b4b9f304e815" formal="462f7f29-c270-454c-b092-f2ab4589aaec" actual="81530a39-1176-47d7-add3-8da2cacba49c"/></parameterSubstitution></TemplateBinding></templateBinding></Interface></packagedElement></Package></packagedElement></Package></packagedElement></Package></packagedElement></Package></packagedElement><profileApplication><ProfileApplication uuid="8f6f85c5-381d-4533-8239-ec152a0639d5" appliedProfile="00000102-7510-11d9-86f2-000476a22f44"/></profileApplication></Package><Package uuid="75acf7ff-7c86-4a1c-88c0-d8423f2e777c" name="Use cases" visibility="public"/><Profile uuid="00000102-7510-11d9-86f2-000476a22f44" name="Java Profile" visibility="public" editable="false"><packagedElement><Enumeration uuid="00013102-7510-11d9-86f2-000476a22f44" name="AnnotationPresets" visibility="public"><ownedLiteral><EnumerationLiteral uuid="00114102-7510-11d9-86f2-000476a22f44" name="Deprecated" visibility="public"/><EnumerationLiteral uuid="00214102-7510-11d9-86f2-000476a22f44" name="Documented" visibility="public"/><EnumerationLiteral uuid="00314102-7510-11d9-86f2-000476a22f44" name="Inherited" visibility="public"/><EnumerationLiteral uuid="00414102-7510-11d9-86f2-000476a22f44" name="Override" visibility="public"/><EnumerationLiteral uuid="00514102-7510-11d9-86f2-000476a22f44" name="Retention" visibility="public"/><EnumerationLiteral uuid="00614102-7510-11d9-86f2-000476a22f44" name="SuppressWarnings" visibility="public"/><EnumerationLiteral uuid="00714102-7510-11d9-86f2-000476a22f44" name="Target" visibility="public"/></ownedLiteral></Enumeration><Stereotype uuid="ed09a6a8-e0f4-4def-af8b-bbcdb59b0618" name="final" visibility="public" baseClass="Parameter" guiSortPriority="380"/><Stereotype uuid="f62d0f48-ea20-432d-8d80-cc6287ea9319" name="synchronized" visibility="public" baseClass="Operation" guiSortPriority="360"/><Stereotype uuid="b5a42000-424b-4275-b71d-1f491ca8a0ee" name="transient" visibility="public" baseClass="Property" guiSortPriority="350"/><Stereotype uuid="3f8b6371-98a3-4643-8864-1232db225757" name="volatile" visibility="public" baseClass="Property" guiSortPriority="340"/><Stereotype uuid="fc24c4b2-7e63-43bf-aa66-edbed0fc7dfc" name="native" visibility="public" baseClass="Operation" guiSortPriority="370"/><Stereotype uuid="9a715cf5-bf0a-4044-9a0e-058bc044465d" name="strictfp" visibility="public" baseClass="Operation" guiSortPriority="330"/><Stereotype uuid="8fa7f5ad-fed0-4d8e-8750-73827b236e29" name="strictfp" visibility="public" baseClass="Class" guiSortPriority="330"/><Stereotype uuid="004724ce-ec3e-4328-a4f9-32bf7db7dd93" name="strictfp" visibility="public" baseClass="Interface" guiSortPriority="330"/><Stereotype uuid="c898c1a3-547b-4a84-ad06-908fd57678c2" name="namespace" visibility="public" baseClass="Package" guiSortPriority="690"/><Stereotype uuid="11194c22-fedc-4e94-8547-ec925c28a37e" name="constructor" visibility="public" baseClass="Operation" guiSortPriority="690"/><Stereotype uuid="00011102-7512-11d9-86f2-000476a22f44" name="static" visibility="public" baseClass="Class" guiSortPriority="390"/><Stereotype uuid="00021102-7512-11d9-86f2-000476a22f44" name="static" visibility="public" baseClass="Enumeration" guiSortPriority="390"/><Stereotype uuid="00031102-7512-11d9-86f2-000476a22f44" name="static" visibility="public" baseClass="Interface" guiSortPriority="390"/><Stereotype uuid="00041102-7512-11d9-86f2-000476a22f44" name="annotationType" visibility="public" baseClass="Interface" guiSortPriority="690"/><Stereotype uuid="00051102-7512-11d9-86f2-000476a22f44" name="annotationTypeElement" visibility="public" baseClass="Property" guiSortPriority="690"/><Stereotype uuid="00061102-7512-11d9-86f2-000476a22f44" name="annotations" visibility="public" baseClass="Class" guiSortPriority="590"><ownedAttribute><Property uuid="00071102-7512-11d9-86f2-000476a22f44" name="modifiers" visibility="public" type="00013102-7510-11d9-86f2-000476a22f44"/></ownedAttribute></Stereotype><Stereotype uuid="00081102-7512-11d9-86f2-000476a22f44" name="annotations" visibility="public" baseClass="Enumeration" guiSortPriority="590"><ownedAttribute><Property uuid="00091102-7512-11d9-86f2-000476a22f44" name="modifiers" visibility="public" type="00013102-7510-11d9-86f2-000476a22f44"/></ownedAttribute></Stereotype><Stereotype uuid="000a1102-7512-11d9-86f2-000476a22f44" name="annotations" visibility="public" baseClass="Interface" guiSortPriority="590"><ownedAttribute><Property uuid="000b1102-7512-11d9-86f2-000476a22f44" name="modifiers" visibility="public" type="00013102-7510-11d9-86f2-000476a22f44"/></ownedAttribute></Stereotype><Stereotype uuid="000c1102-7512-11d9-86f2-000476a22f44" name="annotations" visibility="public" baseClass="EnumerationLiteral" guiSortPriority="590"><ownedAttribute><Property uuid="000d1102-7512-11d9-86f2-000476a22f44" name="modifiers" visibility="public" type="00013102-7510-11d9-86f2-000476a22f44"/></ownedAttribute></Stereotype><Stereotype uuid="000e1102-7512-11d9-86f2-000476a22f44" name="annotations" visibility="public" baseClass="Parameter" guiSortPriority="590"><ownedAttribute><Property uuid="000f1102-7512-11d9-86f2-000476a22f44" name="modifiers" visibility="public" type="00013102-7510-11d9-86f2-000476a22f44"/></ownedAttribute></Stereotype><Stereotype uuid="00101102-7512-11d9-86f2-000476a22f44" name="annotations" visibility="public" baseClass="Property" guiSortPriority="590"><ownedAttribute><Property uuid="00111102-7512-11d9-86f2-000476a22f44" name="modifiers" visibility="public" type="00013102-7510-11d9-86f2-000476a22f44"/></ownedAttribute></Stereotype><Stereotype uuid="00121102-7512-11d9-86f2-000476a22f44" name="annotations" visibility="public" baseClass="Operation" guiSortPriority="590"><ownedAttribute><Property uuid="00131102-7512-11d9-86f2-000476a22f44" name="modifiers" visibility="public" type="00013102-7510-11d9-86f2-000476a22f44"/></ownedAttribute></Stereotype><PrimitiveType uuid="80bf4906-7a11-45fc-b6ec-40ebe7fdbd38" name="byte" visibility="public"/><PrimitiveType uuid="14fce034-87ef-45fc-a003-d0300413e44b" name="char" visibility="public"/><PrimitiveType uuid="1256a74d-961a-4a8c-a25e-234c4bd3c55c" name="short" visibility="public"/><PrimitiveType uuid="308d9740-87d8-4fa8-91c3-85e1c8a42328" name="int" visibility="public"/><PrimitiveType uuid="6941bad4-9c46-4098-8d04-8afe8cf67c00" name="long" visibility="public"/><PrimitiveType uuid="d6f1dc72-e6ac-472b-81a4-78c87d437511" name="float" visibility="public"/><PrimitiveType uuid="bca1bdf5-bc77-4e79-b595-1f17af1e4de5" name="double" visibility="public"/><PrimitiveType uuid="5281ff9f-1b8c-4bf7-9b56-9003e2791461" name="boolean" visibility="public"/><PrimitiveType uuid="71dff5dd-543f-46fe-8c5c-1f7884d610e9" name="void" visibility="public"/></packagedElement></Profile><Package uuid="00000004-7510-11d9-86f2-000476a22f44" name="Unknown Externals" visibility="public" editable="false"/><Package uuid="94ec1fc9-9a46-443e-8616-aa362b8594bc" name="Java JDK 6 (types only)" visibility="public"><packagedElement><Package uuid="b5a6ea04-24db-4268-b629-4e8a0e167ed1" name="java" visibility="public"><packagedElement><Package uuid="39bbe478-71a8-425e-be57-b5af0e6883b0" name="util" visibility="public"><packagedElement><Package uuid="1cbec402-e39a-45d2-b612-b8d1e924b3d9" name="logging" visibility="public"><packagedElement><Class uuid="6dddbe3c-73ea-4376-ab6d-f7a76e373d4f" name="Logger" visibility="public"/></packagedElement></Package><Package uuid="4c58ce17-39a4-4f5e-8e9a-b6c971553ca7" name="spi" visibility="public"/><Package uuid="7edbc11a-9979-4c87-8261-c0202c1b4ded" name="zip" visibility="public"/><Package uuid="c6c6df51-b21a-4d6c-995c-c7ce80e02b79" name="prefs" visibility="public"/><Package uuid="78764a7c-3fb5-43c8-bc07-ee6a9d69494d" name="jar" visibility="public"/><Package uuid="e95151fd-42a0-43db-820c-848b8047d79b" name="concurrent" visibility="public"><packagedElement><Package uuid="0c9ddea2-2b78-45f0-b493-8fd568412d01" name="atomic" visibility="public"/><Package uuid="621f8bfe-e23b-4668-bfc6-73ac8b165a81" name="locks" visibility="public"/></packagedElement></Package><Package uuid="60985aa6-5718-4c93-82e1-6f5890cb955c" name="regex" visibility="public"><packagedElement><Class uuid="4afce311-4676-4cf0-a3a3-6c4fd064447e" name="Pattern" visibility="public"/></packagedElement></Package><Class uuid="3bd13905-526d-4df4-9131-e41c943ae3a5" name="ArrayList" visibility="public"><ownedTemplateSignature><TemplateSignature uuid="623c5447-d650-4c69-b650-517dbb9141ff"><ownedParameter><ClassifierTemplateParameter uuid="36b0e09c-4aed-44fa-ac25-ef70b83d7187"><ownedParameteredElement><Class uuid="ffdeee26-690e-471a-b91e-fb3a9bc67501" name="E" visibility="public"/></ownedParameteredElement></ClassifierTemplateParameter></ownedParameter></TemplateSignature></ownedTemplateSignature></Class><Class uuid="48ff68b1-abff-48ae-b8ce-b78365632bfe" name="HashMap" visibility="public"><ownedTemplateSignature><TemplateSignature uuid="fee98030-ee84-48cc-8f83-ac6d9230a1ce"><ownedParameter><ClassifierTemplateParameter uuid="0a8bbce5-4278-43e0-b00d-4fc238301676"><ownedParameteredElement><Class uuid="90d7a75d-1a7b-40a8-bd57-a87d3e916656" name="K" visibility="public"/></ownedParameteredElement></ClassifierTemplateParameter><ClassifierTemplateParameter uuid="f383850f-fe4b-4cbd-8d81-ae0c84bed4fb"><ownedParameteredElement><Class uuid="530e7099-472e-4d53-a909-67b08505c819" name="V" visibility="public"/></ownedParameteredElement></ClassifierTemplateParameter></ownedParameter></TemplateSignature></ownedTemplateSignature></Class><Interface uuid="4004ab60-bcf9-4678-8fe6-45ff4266bc7c" name="Map" visibility="public"><ownedTemplateSignature><TemplateSignature uuid="f14a3a6e-30a5-464d-a37a-1df48ce1282b"><ownedParameter><ClassifierTemplateParameter uuid="1594b3a2-afc7-4b28-a2ed-9e9b7fd58653"><ownedParameteredElement><Class uuid="267e3c14-564a-4e54-b066-75d391cba274" name="K" visibility="public"/></ownedParameteredElement></ClassifierTemplateParameter><ClassifierTemplateParameter uuid="462f7f29-c270-454c-b092-f2ab4589aaec"><ownedParameteredElement><Class uuid="354ee852-a3db-4556-b52d-698220d2d0ab" name="V" visibility="public"/></ownedParameteredElement></ClassifierTemplateParameter></ownedParameter></TemplateSignature></ownedTemplateSignature></Interface></packagedElement></Package><Package uuid="e3b409ee-8f68-460e-b622-a8e57ae6d71d" name="awt" visibility="public"><packagedElement><Package uuid="5c0dba03-da70-4789-a25f-4b1c20ff97b7" name="event" visibility="public"/><Package uuid="e42c530b-b549-46f0-af13-9fc06896f19d" name="font" visibility="public"/><Package uuid="d785ea1e-1d7f-4177-9313-5d30feb7d6b4" name="im" visibility="public"><packagedElement><Package uuid="22bc5f50-a0ff-46d5-8e00-70183448407e" name="spi" visibility="public"/></packagedElement></Package><Package uuid="da56dc27-a927-4c2c-97c5-940eb669e655" name="datatransfer" visibility="public"/><Package uuid="f8d9d72c-ce8f-43ac-ab5a-d0a4c1589a97" name="print" visibility="public"/><Package uuid="50d6ed5f-f9eb-4a61-a9d1-418e873904cf" name="geom" visibility="public"/><Package uuid="59d1dfb6-1091-4c05-911d-fb8f84048fcc" name="image" visibility="public"><packagedElement><Package uuid="1a63ce65-cf2e-4678-9898-748f72820c74" name="renderable" visibility="public"/></packagedElement></Package><Package uuid="140c8467-f8d4-45c9-a0fe-642ef7816348" name="color" visibility="public"/><Package uuid="eb0c05ef-2834-4666-b5ba-f932c6c49f11" name="dnd" visibility="public"><packagedElement><Package uuid="4e83b3d5-90bf-41ae-adde-f280f11f2085" name="peer" visibility="public"/></packagedElement></Package><Package uuid="018e7bd9-bf09-4ec1-9805-abf0f57a8cc4" name="peer" visibility="public"/></packagedElement></Package><Package uuid="5a997215-16c1-4e6d-ab7f-96cbff8aa5cd" name="beans" visibility="public"><packagedElement><Package uuid="8a85cda0-4ec0-4dd8-a5ff-41ba0bc4210e" name="beancontext" visibility="public"/></packagedElement></Package><Package uuid="0f1c6a1f-71de-4ac5-8296-c8e6bab8acb2" name="security" visibility="public"><packagedElement><Package uuid="f843d220-9c0d-4032-abc4-501f7371a1d0" name="interfaces" visibility="public"/><Package uuid="5385bb9e-8117-43cc-a094-7fdff31021ea" name="acl" visibility="public"/><Package uuid="b2d761b6-9746-4770-a23f-1fca5b6416b3" name="spec" visibility="public"/><Package uuid="226cb8e5-7676-4bfc-94af-6d2dc333b95a" name="cert" visibility="public"/><Class uuid="8ca8eb9d-99e1-491d-9455-b2263b91a587" name="NoSuchAlgorithmException" visibility="public"/></packagedElement></Package><Package uuid="a669393b-5169-416f-9c3c-557b21bdb60b" name="lang" visibility="public"><packagedElement><Package uuid="d6cddd2a-9cda-43da-aaa1-76d2c4f9687b" name="instrument" visibility="public"/><Package uuid="5b67b06e-7d64-4119-be79-7d3953713ac6" name="annotation" visibility="public"/><Package uuid="55b990ab-61f4-440c-94fd-6e3028b33971" name="reflect" visibility="public"/><Package uuid="f3f226b7-262c-4975-b3f0-4815e16bd70f" name="management" visibility="public"/><Package uuid="0ab1c4d0-3788-4c3f-b241-353719cc96b3" name="ref" visibility="public"/><Class uuid="d10013c7-d190-4c74-a2b3-d267d8da8131" name="Exception" visibility="public"/><Class uuid="81530a39-1176-47d7-add3-8da2cacba49c" name="String" visibility="public"/><Interface uuid="97532499-b594-4c32-9fb2-85b9cfaa23fd" name="Runnable" visibility="public"/><Class uuid="f9cd5aab-9322-4fad-b431-9f53dc036d15" name="Long" visibility="public"/><Class uuid="490655c1-c6f7-43b8-acee-a7840393d336" name="Integer" visibility="public"/><Class uuid="5be727cb-80e6-4856-947f-4861ea87eb2a" name="Boolean" visibility="public"/></packagedElement></Package><Package uuid="a2367034-7362-4c53-87b6-abbef5f03ff3" name="rmi" visibility="public"><packagedElement><Package uuid="5d39ec3b-ee35-43b5-85b6-8bf50554eb72" name="dgc" visibility="public"/><Package uuid="280397b5-97a4-49ae-9c8e-9bb51ef4e1e5" name="activation" visibility="public"/><Package uuid="33c88be4-6b29-4b8d-808a-7adc36f7c59d" name="server" visibility="public"/><Package uuid="05afe5f6-593d-4d91-96fd-a89c36655040" name="registry" visibility="public"/></packagedElement></Package><Package uuid="4b3c1c51-4dd9-445d-989d-d120852765fe" name="applet" visibility="public"/><Package uuid="f775875f-9cce-4341-94f8-6e0bf1fa736e" name="nio" visibility="public"><packagedElement><Package uuid="132e58b1-be2f-4dd2-a72a-f49fe245de8f" name="charset" visibility="public"><packagedElement><Package uuid="68684e9e-bf6c-4c77-ab05-083a379ac656" name="spi" visibility="public"/><Class uuid="26181390-1056-4c61-b659-94a413dd4931" name="CharacterCodingException" visibility="public"/><Class uuid="bda4944c-0431-4e56-a20a-3f4aad466d8f" name="CharsetEncoder" visibility="public"/><Class uuid="46865992-0056-45bd-bdb7-e0f4bc5dad74" name="Charset" visibility="public"/></packagedElement></Package><Package uuid="e02bc6fd-62c2-4ab2-8a53-64e99037918b" name="channels" visibility="public"><packagedElement><Package uuid="4203b9ad-3257-44fa-9c1d-0fa4e739c3b9" name="spi" visibility="public"/><Class uuid="430eaefa-666d-4b74-9f78-5c3dc9d815cc" name="Selector" visibility="public"/><Class uuid="007f1311-d0cf-4005-b7fb-5940096d639d" name="ServerSocketChannel" visibility="public"/><Class uuid="36d94281-ab69-4306-b2ba-2ff205e91a58" name="SocketChannel" visibility="public"/><Class uuid="b28fdcf3-46c5-4f70-be2f-46f1e3b7ef40" name="SelectionKey" visibility="public"/><Class uuid="14305e17-d114-4ada-91cd-3cde9ec56681" name="FileChannel" visibility="public"/><Class uuid="413346c5-ceaa-4f36-8166-ca18b56975a4" name="FileLock" visibility="public"/><Interface uuid="7be588c1-7d6a-40fe-b9e5-f3617e90db3c" name="WritableByteChannel" visibility="public"/><Class uuid="e3271c1d-bc73-4c0e-a75e-f5dd999bf269" name="SelectableChannel" visibility="public"/></packagedElement></Package><Class uuid="49da3bf9-975b-4f50-bbbe-0fb39793b91f" name="BufferOverflowException" visibility="public"/><Class uuid="c2fa1f40-a887-4f9e-8179-e35c64ac45be" name="ByteBuffer" visibility="public"/></packagedElement></Package><Package uuid="c4c46f75-4488-4be7-a5fe-e8e365611fe8" name="sql" visibility="public"/><Package uuid="e36f4985-fea7-4d28-abd1-4cb54a19248e" name="net" visibility="public"><packagedElement><Class uuid="22ad5f3a-3a85-4a44-b8a3-3caf35f9516b" name="SocketAddress" visibility="public"/><Class uuid="72528084-cfa8-48bf-b03c-91abbc5c1813" name="DatagramSocket" visibility="public"/><Class uuid="0299fbc4-c575-4698-9a9e-4034d75dc22e" name="URI" visibility="public"/></packagedElement></Package><Package uuid="375c518c-ebb8-45ab-b39a-a47bd7ceb912" name="text" visibility="public"><packagedElement><Package uuid="291f8b93-b1d5-4fae-a62b-05de7d968de2" name="spi" visibility="public"/><Class uuid="cbe6ae13-0fd0-4384-a96a-9c3c16fa9f44" name="SimpleDateFormat" visibility="public"/><Class uuid="82e38df7-3690-4455-b404-75d4987796cd" name="DateFormat" visibility="public"/></packagedElement></Package><Package uuid="57744be1-1487-442c-801b-258a20087c53" name="math" visibility="public"/><Package uuid="9b2179fe-6195-41db-8943-5d2644ad6490" name="io" visibility="public"><packagedElement><Class uuid="68c8c45a-3e04-43c9-bbc8-42d78269e37d" name="IOException" visibility="public"/><Class uuid="e1c94980-da43-48f6-b407-7ef50014ce2f" name="File" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="1ba1b281-58fa-4e5c-a0a8-5bb28c82f00f" name="javax" visibility="public"><packagedElement><Package uuid="ded6de67-a8c2-4f6f-98df-efd2bef95caa" name="xml" visibility="public"><packagedElement><Package uuid="68a3bd05-3fb5-4efa-ad5e-67afd65621fd" name="parsers" visibility="public"/><Package uuid="3a2b29cd-3c42-4aad-85a0-57438adb1937" name="crypto" visibility="public"><packagedElement><Package uuid="fd9c4a1e-259d-4391-a311-dd2fa78439e6" name="dsig" visibility="public"><packagedElement><Package uuid="b70fd96b-1f62-4041-9fad-06f06de9c298" name="dom" visibility="public"/><Package uuid="b36850cf-69a4-4c17-a34b-e00b4dc12362" name="keyinfo" visibility="public"/><Package uuid="d4269af5-c4f8-40c1-abb6-55f733afcc49" name="spec" visibility="public"/></packagedElement></Package><Package uuid="5c7bb1b7-c5b8-40fe-9070-0782bbc0bcf7" name="dom" visibility="public"/></packagedElement></Package><Package uuid="619c57cb-8caf-485a-af87-5b1e015304cc" name="ws" visibility="public"><packagedElement><Package uuid="48764533-0891-4305-957d-6d1688a517be" name="wsaddressing" visibility="public"/><Package uuid="f402af3b-5bbf-44f2-8d15-8f787431c047" name="http" visibility="public"/><Package uuid="3b796061-14ec-443d-aa31-8469ffffc48e" name="soap" visibility="public"/><Package uuid="526da56a-5469-4237-84b5-590b4c3b5d78" name="handler" visibility="public"><packagedElement><Package uuid="c4251b98-83de-4411-be4c-05538e1fc91a" name="soap" visibility="public"/></packagedElement></Package><Package uuid="78054eaf-f980-40f7-a56a-f32a3e4ae086" name="spi" visibility="public"/></packagedElement></Package><Package uuid="6c06ee3a-b4bc-4d2f-9aa2-11a01c37b4f4" name="transform" visibility="public"><packagedElement><Package uuid="d4e18155-9083-4187-b51b-7f05b4f900a4" name="sax" visibility="public"/><Package uuid="4eb5325b-4470-475e-977b-d3fe8ad59f2d" name="stax" visibility="public"/><Package uuid="40fee28e-bbcd-4d76-aa82-094dd2658945" name="dom" visibility="public"/><Package uuid="5dbbbef9-4e81-4119-9ffc-bcc7fdf3fa54" name="stream" visibility="public"/></packagedElement></Package><Package uuid="ee7ab53d-50d6-47e7-82c4-aa07471c96f7" name="bind" visibility="public"><packagedElement><Package uuid="64cb513d-712a-46c3-9202-ce36b7811764" name="attachment" visibility="public"/><Package uuid="11885b5b-63f7-406c-89b1-78037d9de40e" name="annotation" visibility="public"><packagedElement><Package uuid="acb572df-c599-41aa-8fb2-d9c877adb7fc" name="adapters" visibility="public"/></packagedElement></Package><Package uuid="988ca575-acac-4992-9750-e72d4e181b90" name="util" visibility="public"/><Package uuid="9e82f5c2-735d-48e5-bab9-ae1afbdc57b8" name="helpers" visibility="public"/></packagedElement></Package><Package uuid="ffa02852-fd04-4601-91a0-8bfa0a092103" name="datatype" visibility="public"/><Package uuid="56bf6862-de1a-4dda-870c-46c053e281c8" name="validation" visibility="public"/><Package uuid="d110cab5-65f0-4cf3-bb7d-a9995127a58e" name="stream" visibility="public"><packagedElement><Package uuid="2108d097-4b4a-42b6-8600-6d63b965aebb" name="util" visibility="public"/><Package uuid="6b75a8b1-9150-492a-aea9-5a0e23a3f83a" name="events" visibility="public"/></packagedElement></Package><Package uuid="d742c3bf-15b8-432e-bd83-e7e0dfe935ad" name="soap" visibility="public"/><Package uuid="f302a7c1-e214-4156-956e-95dcd9685d31" name="namespace" visibility="public"/><Package uuid="ff28dbec-f874-4d6e-b9b0-48aeb5148804" name="xpath" visibility="public"/></packagedElement></Package><Package uuid="c1a1bb60-a293-41e0-960a-13e4e5a1f4d8" name="sound" visibility="public"><packagedElement><Package uuid="eefb5e4d-1e40-4831-924f-9f1d85148f44" name="sampled" visibility="public"><packagedElement><Package uuid="578e1707-8792-47de-bcc5-e061ece24411" name="spi" visibility="public"/></packagedElement></Package><Package uuid="8f30cee1-e29b-412f-9fca-aee1d9aeae19" name="midi" visibility="public"><packagedElement><Package uuid="2b94fe0e-55a7-4e7d-9988-85a7007de221" name="spi" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="4e264162-7748-4c06-9fd6-30d6ff7d5151" name="imageio" visibility="public"><packagedElement><Package uuid="1b696e09-0e68-4f0d-b458-7768bbd7cd4e" name="spi" visibility="public"/><Package uuid="e191885c-f499-45b3-872c-50522dd0f1ba" name="plugins" visibility="public"><packagedElement><Package uuid="75ac855e-0372-4d47-a9d0-c5412845945c" name="bmp" visibility="public"/><Package uuid="bc4b47b2-bf5a-404b-b28a-e5acc098d0d9" name="jpeg" visibility="public"/></packagedElement></Package><Package uuid="2852b66a-4e39-49f9-ad92-20b2643ddb49" name="stream" visibility="public"/><Package uuid="bf323871-1117-4a69-9fb6-3c8cc7a83294" name="metadata" visibility="public"/><Package uuid="728c51b9-6b1e-43c5-a34b-0d76c3a28cef" name="event" visibility="public"/></packagedElement></Package><Package uuid="637dffc1-5e44-4608-b8a1-3566bf4e0930" name="swing" visibility="public"><packagedElement><Package uuid="edfde642-2d25-4ce0-853e-39997b10f6ad" name="text" visibility="public"><packagedElement><Package uuid="79640ec0-84e3-408e-b5ea-58e0fdfd5124" name="html" visibility="public"><packagedElement><Package uuid="ed26930a-c201-46cd-8303-fb614b4ef2d3" name="parser" visibility="public"/></packagedElement></Package><Package uuid="a7f5f125-19ea-4306-b184-32670d2282be" name="rtf" visibility="public"/></packagedElement></Package><Package uuid="ce1ed5ae-c866-43ef-aaf5-2711b75051b3" name="plaf" visibility="public"><packagedElement><Package uuid="348acb1b-b236-412b-9b41-658b07a30302" name="basic" visibility="public"/><Package uuid="00a6ca6a-6395-41c5-b751-43b5603ffadc" name="metal" visibility="public"/><Package uuid="e6f7e5e3-4d4f-4ce7-b937-13b1ed59a8ee" name="multi" visibility="public"/><Package uuid="6c5e8ff7-c040-4be0-b998-2bd69af15529" name="synth" visibility="public"/></packagedElement></Package><Package uuid="8877f638-63ee-48d7-9abf-28b47e3f856c" name="table" visibility="public"/><Package uuid="a689046f-ae6e-4263-8bef-701719ac1e98" name="undo" visibility="public"/><Package uuid="f26f7982-e74d-4c37-9b2c-d4e2f5e1fff8" name="event" visibility="public"/><Package uuid="15d9fd8b-1c21-473a-8075-7e507af9e1b1" name="border" visibility="public"/><Package uuid="7dba32bb-15c4-41da-a04b-4462d9061e76" name="colorchooser" visibility="public"/><Package uuid="009e3ebe-0164-42ba-b960-415c5e3c483d" name="filechooser" visibility="public"/><Package uuid="1c8f45fd-cb41-4d6a-98d6-a5f6da9fed61" name="tree" visibility="public"/></packagedElement></Package><Package uuid="9e01c10d-a4c8-47fa-96ce-84f3a13e3fac" name="annotation" visibility="public"><packagedElement><Package uuid="60d5869f-b1a2-43c6-8642-a0c9a3d40b9d" name="processing" visibility="public"/></packagedElement></Package><Package uuid="20c58639-3162-40c9-b685-6ba4d2078d04" name="naming" visibility="public"><packagedElement><Package uuid="e50ca016-6f4e-4dd5-82b8-73c9a912ae9f" name="directory" visibility="public"/><Package uuid="07cc8eb8-d986-4ada-a603-8898b1469d3c" name="spi" visibility="public"/><Package uuid="26d5bfe4-c393-4786-9df9-73a07ed2a097" name="event" visibility="public"/><Package uuid="7d7db6fa-6ddf-4934-a6d8-7931414a370e" name="ldap" visibility="public"/></packagedElement></Package><Package uuid="21c3e390-d303-4eb5-bc31-3e54d4adbe2d" name="jws" visibility="public"><packagedElement><Package uuid="abe5a318-fb40-4bb3-afda-7b8ee7e7f6ac" name="soap" visibility="public"/></packagedElement></Package><Package uuid="e7dd68f5-b8f1-420f-9a99-56dfcbb066d0" name="sql" visibility="public"><packagedElement><Package uuid="df78411a-e551-46cd-8a5f-669b0c77d34e" name="rowset" visibility="public"><packagedElement><Package uuid="18557229-3438-4ccc-b9e9-5eba634669e1" name="spi" visibility="public"/><Package uuid="5a6c92f2-4408-4553-a0cd-fc1bd15490f6" name="serial" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="ebb9611b-8893-4d66-822e-1840c4c9ca22" name="management" visibility="public"><packagedElement><Package uuid="460b072b-f81e-4171-b189-782dee1eebe9" name="monitor" visibility="public"/><Package uuid="294fdb82-d870-4b25-8b4d-0b00691c7b6c" name="remote" visibility="public"><packagedElement><Package uuid="2ce83934-9193-4374-a3f4-27a5b6276d3f" name="rmi" visibility="public"/></packagedElement></Package><Package uuid="883e124a-095f-4828-8311-3c355c8595c4" name="timer" visibility="public"/><Package uuid="1d70a260-4c1e-4661-a5a5-2da805583915" name="relation" visibility="public"/><Package uuid="fcd18195-f66c-4243-81e6-9e716aa39d44" name="modelmbean" visibility="public"/><Package uuid="ff7ee4b3-4a10-4962-8a1b-18c1bf3fbbea" name="loading" visibility="public"/><Package uuid="6a5bbdc5-20fd-4241-8e2f-dc7b79921664" name="openmbean" visibility="public"/></packagedElement></Package><Package uuid="d52828eb-3885-4ba0-93f5-f041c28a0e2c" name="security" visibility="public"><packagedElement><Package uuid="579cf621-ad6f-45df-9868-3c1aaba4dcbb" name="auth" visibility="public"><packagedElement><Package uuid="b6fa4434-c6ce-4dcf-b0f5-b6c6ec0861da" name="x500" visibility="public"/><Package uuid="8546a060-7a77-4dbe-9ed0-c9b209a4b539" name="callback" visibility="public"/><Package uuid="7ca08b62-c734-4d3d-b2dd-d0718de8b065" name="spi" visibility="public"/><Package uuid="dee3239b-a268-4224-a686-2b354dd74516" name="kerberos" visibility="public"/><Package uuid="61676cd6-27ab-4a53-afd3-e4e259605fbd" name="login" visibility="public"/></packagedElement></Package><Package uuid="4d97275e-bc73-4f9d-a509-97b4eb159032" name="cert" visibility="public"/><Package uuid="53fb1190-8275-4f42-98c3-1e7805db1394" name="sasl" visibility="public"/></packagedElement></Package><Package uuid="e820f927-448e-4cb4-9029-f6c6a567903d" name="net" visibility="public"><packagedElement><Package uuid="9c83a5e4-abc0-4988-a7cc-b4ff58981d2a" name="ssl" visibility="public"/></packagedElement></Package><Package uuid="86274638-4d00-4b68-ab0c-91d5c65b6938" name="print" visibility="public"><packagedElement><Package uuid="6d1d91ad-18ca-420a-acbb-17b0c6d1e68e" name="attribute" visibility="public"><packagedElement><Package uuid="91647af6-283d-49f4-8e0b-01a7ea287905" name="standard" visibility="public"/></packagedElement></Package><Package uuid="f218d9f9-6bf5-4b74-9ad7-36eba7b175cd" name="event" visibility="public"/></packagedElement></Package><Package uuid="ebe5d57f-c57a-4624-8db7-3fd701656646" name="lang" visibility="public"><packagedElement><Package uuid="0e63e3e0-3eee-4c60-8bfe-9bc448f8f31e" name="model" visibility="public"><packagedElement><Package uuid="b729cd38-75da-48de-b461-ceaf9c5db38b" name="util" visibility="public"/><Package uuid="6f4a495b-87c2-4bdd-8580-d21eefa73642" name="element" visibility="public"/><Package uuid="9d42e85f-78ee-4272-99e0-4595d9008d1e" name="type" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="9964b847-53e7-4fb0-9e16-0a44c811d223" name="rmi" visibility="public"><packagedElement><Package uuid="808e295f-b9a0-4509-8b17-2a8ee7c2609a" name="ssl" visibility="public"/><Package uuid="d93cf16f-d707-418a-bb49-21155da14909" name="CORBA" visibility="public"/></packagedElement></Package><Package uuid="0f7da249-3a9c-4a29-8054-05b836a0b069" name="tools" visibility="public"/><Package uuid="ebe08064-f91b-48f5-8395-5eec3115f931" name="crypto" visibility="public"><packagedElement><Package uuid="86e64ab2-1f95-46c5-82cd-9a6c23035e5c" name="spec" visibility="public"/><Package uuid="ab6fd4f6-7f75-4839-94a1-e9a9b8180cc4" name="interfaces" visibility="public"/></packagedElement></Package><Package uuid="b6dec36d-126a-4b28-bb97-8f59ae4e38bb" name="smartcardio" visibility="public"/><Package uuid="28e75a72-6bf9-4316-9058-e1e5837f1c76" name="script" visibility="public"/><Package uuid="c339c98b-3f18-4d82-84aa-7eca4a28c126" name="activation" visibility="public"/><Package uuid="b5185cc7-a59b-4fce-8c00-695b8a3a7da4" name="transaction" visibility="public"><packagedElement><Package uuid="1fdcd5a0-e926-4ba9-84e1-408590ddcf1f" name="xa" visibility="public"/></packagedElement></Package><Package uuid="faff8acb-bf76-4309-9b81-7da5df5ffa46" name="activity" visibility="public"/><Package uuid="aa66fbd4-d0d9-4f58-9090-71cb155e2b35" name="accessibility" visibility="public"/></packagedElement></Package><Package uuid="f76b6a3f-0258-4d0b-888b-0978b2540f52" name="org" visibility="public"><packagedElement><Package uuid="4e4bde05-f234-4bec-aad1-f0e9337445ce" name="w3c" visibility="public"><packagedElement><Package uuid="a7b8e7bd-c2b7-4963-bc01-67029f6b32a8" name="dom" visibility="public"><packagedElement><Package uuid="33ab9f25-395b-477a-a6e5-de0beba1ef35" name="xpath" visibility="public"/><Package uuid="150eeb29-f70d-4389-8a0c-9b419fabc7aa" name="events" visibility="public"/><Package uuid="edfa5a44-3ea2-4b0d-96cf-092912110d69" name="css" visibility="public"/><Package uuid="abe4f952-aab3-4e32-84ff-1f60bf9c2fbe" name="stylesheets" visibility="public"/><Package uuid="ae344467-ad8a-486d-ac98-43e34dad3e41" name="views" visibility="public"/><Package uuid="7b9c7a70-9a08-4e3f-91b9-df4dbac98ca5" name="bootstrap" visibility="public"/><Package uuid="2decb27a-9e34-4361-9a8c-0aa879f015ee" name="ranges" visibility="public"/><Package uuid="f725c77c-dbc1-49e3-902c-db1c2d286894" name="ls" visibility="public"/><Package uuid="e078ed88-5e08-4337-b761-72f90fc76166" name="html" visibility="public"/><Package uuid="51d6979f-567b-46fb-8eb4-3edbdf27fa4b" name="traversal" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="ce418c69-f243-4539-bbb4-a7baa01e391c" name="omg" visibility="public"><packagedElement><Package uuid="44e00d8d-708c-4371-b8a8-743607eeebfe" name="stub" visibility="public"><packagedElement><Package uuid="71fd0de1-6d52-4693-b9fd-1ca3cbd22e11" name="javax" visibility="public"><packagedElement><Package uuid="289cdb09-1e11-4d6b-98dc-c037f485c36f" name="management" visibility="public"><packagedElement><Package uuid="a8575a3b-1c3d-4c78-8d92-a5a8cf6ca311" name="remote" visibility="public"><packagedElement><Package uuid="541b0cc2-efdc-4b7e-831e-4a825c1b1c2c" name="rmi" visibility="public"/></packagedElement></Package></packagedElement></Package></packagedElement></Package><Package uuid="0976e5da-9ef6-404b-b4a8-cd45b1f1c863" name="java" visibility="public"><packagedElement><Package uuid="47b47081-5e89-4f7d-bf39-11aaaa57ffac" name="rmi" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="0464000d-725a-4704-a7d0-6d0e4dc6198a" name="Messaging" visibility="public"/><Package uuid="2021e6d8-a75e-4e68-bbb4-c926578ab89c" name="PortableServer" visibility="public"><packagedElement><Package uuid="19ef7517-f64e-4ce3-a3cf-30af21476e96" name="CurrentPackage" visibility="public"/><Package uuid="3fc41324-3cb2-4696-9f25-d0f2f2203f90" name="POAManagerPackage" visibility="public"/><Package uuid="f3d5143c-1c11-4b7f-9c09-a52ba3e4856b" name="portable" visibility="public"/><Package uuid="59e0d0f6-f57e-489a-9623-f49943e84336" name="ServantLocatorPackage" visibility="public"/><Package uuid="bb6b75fe-7511-4f27-9705-f1c9336128f2" name="POAPackage" visibility="public"/></packagedElement></Package><Package uuid="55fca03b-42ff-4640-9100-e78c8e4ccda7" name="PortableInterceptor" visibility="public"><packagedElement><Package uuid="3095c385-954d-42ab-9067-70c81b8bb5ca" name="ORBInitInfoPackage" visibility="public"/></packagedElement></Package><Package uuid="67b11a88-1fb8-4c1e-8d96-a2316273c800" name="CORBA" visibility="public"><packagedElement><Package uuid="29dc353c-c1f3-4790-81bb-f29185a1deff" name="TypeCodePackage" visibility="public"/><Package uuid="df323f44-fa3e-4896-a3a6-049b3d125ab9" name="DynAnyPackage" visibility="public"/><Package uuid="dc07eb6e-c785-427e-ba7b-754698b4b699" name="ORBPackage" visibility="public"/><Package uuid="67d1a3f8-d7c4-4fec-81d7-62e227934d7c" name="portable" visibility="public"/></packagedElement></Package><Package uuid="4f70473d-c342-4c10-8d97-4982a57e8fc0" name="Dynamic" visibility="public"/><Package uuid="5a6bd64b-a1f0-4dc0-abf9-b4fa82d45c19" name="SendingContext" visibility="public"/><Package uuid="a22a86b6-2f92-4f7a-8fe4-bf3195eff4fc" name="CORBA_2_3" visibility="public"><packagedElement><Package uuid="166c4a4e-43e3-4fb1-88f4-7bc3fe2d4e89" name="portable" visibility="public"/></packagedElement></Package><Package uuid="1a52c69d-2f2c-4b67-8e43-6a270c0e09e9" name="CosNaming" visibility="public"><packagedElement><Package uuid="350b9e7d-15b7-4d46-9667-119445c421e8" name="NamingContextExtPackage" visibility="public"/><Package uuid="57dcdbd7-732b-4c24-99ef-fbdcbd36343d" name="NamingContextPackage" visibility="public"/></packagedElement></Package><Package uuid="5d2c3982-3be6-468d-a199-445baa94e096" name="DynamicAny" visibility="public"><packagedElement><Package uuid="aee1cfb7-bbc0-469b-920d-c8524d62f474" name="DynAnyFactoryPackage" visibility="public"/><Package uuid="1245f3e8-4498-4a45-bb00-cbd182923ca9" name="DynAnyPackage" visibility="public"/></packagedElement></Package><Package uuid="6daa71a7-82c3-49f7-85b9-e333edf66f31" name="IOP" visibility="public"><packagedElement><Package uuid="bd796f91-fffc-4268-9522-d86db7931fa0" name="CodecFactoryPackage" visibility="public"/><Package uuid="c2660dc3-2dc8-4a09-8c48-3b4a925113dd" name="CodecPackage" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="6a48222f-c297-4fd1-ab7a-82403ae408f7" name="xml" visibility="public"><packagedElement><Package uuid="ded99283-8430-494f-bd1d-6dd2f3e8b5cf" name="sax" visibility="public"><packagedElement><Package uuid="6c6f5d2a-65ec-4049-9247-bbda51a58f11" name="ext" visibility="public"/><Package uuid="9f4d47a5-575f-4b18-9d20-8d835564c806" name="helpers" visibility="public"/></packagedElement></Package></packagedElement></Package><Package uuid="badc6cd0-bd4a-4a94-9c3c-df1f17ccdff9" name="ietf" visibility="public"><packagedElement><Package uuid="8ff8c338-843d-40a2-9ebc-320d661596f3" name="jgss" visibility="public"/></packagedElement></Package></packagedElement></Package></packagedElement><profileApplication><ProfileApplication uuid="7a5b7515-fa73-4ec5-9242-3cd7c5ab5f08" appliedProfile="00000102-7510-11d9-86f2-000476a22f44"/></profileApplication></Package></packagedElement></Package></ModelHistory></UModel>