<?xml version="1.0" encoding="UTF-8"?>
<mxGraphModel dx="2074" dy="1123" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" fold="0" page="1" pageScale="1" pageWidth="826" pageHeight="1169" style="default-style2" math="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="51" value="&amp;nbsp;loop&amp;nbsp;" style="whiteSpace=wrap;align=left;verticalAlign=top;fontFamily=Share-Tech;fontColor=#FFFFFF;labelBackgroundColor=#666666;labelBorderColor=#666666;spacingTop=-6;spacingLeft=-2;fillColor=#F5F5F5;html=1" vertex="1" parent="1"><mxGeometry x="310" y="189" width="469" height="77" as="geometry"/></mxCell><mxCell id="2" value="Mvc\Dispatcher" style="shape=umlLifeline;perimeter=lifelinePerimeter;gradientDirection=north;fillColor=#4D4D4D;shadow=0;gradientColor=#B3B3B3;strokeWidth=1;strokeColor=#808080;fontFamily=Share-Tech;fontColor=#FFFFFF;rounded=1;spacingRight=0;spacingLeft=0;" vertex="1" parent="1"><mxGeometry x="10" y="10" width="120" height="340" as="geometry"/></mxCell><mxCell id="10" value="Authentication&#xa;Controller" style="shape=umlLifeline;perimeter=lifelinePerimeter;gradientDirection=north;fillColor=#4D4D4D;shadow=0;gradientColor=#B3B3B3;strokeWidth=1;strokeColor=#808080;fontFamily=Share-Tech;fontColor=#FFFFFF;rounded=1" vertex="1" parent="1"><mxGeometry x="160" y="10" width="120" height="340" as="geometry"/></mxCell><mxCell id="11" value="AuthenticationProvider&#xa;Manager" style="shape=umlLifeline;perimeter=lifelinePerimeter;gradientDirection=north;fillColor=#4D4D4D;shadow=0;gradientColor=#B3B3B3;strokeWidth=1;strokeColor=#808080;fontFamily=Share-Tech;fontColor=#FFFFFF;rounded=1" vertex="1" parent="1"><mxGeometry x="295" y="10" width="120" height="340" as="geometry"/></mxCell><mxCell id="12" value="Security\Context" style="shape=umlLifeline;perimeter=lifelinePerimeter;gradientDirection=north;fillColor=#4D4D4D;shadow=0;gradientColor=#B3B3B3;strokeWidth=1;strokeColor=#808080;fontFamily=Share-Tech;fontColor=#FFFFFF;rounded=1" vertex="1" parent="1"><mxGeometry x="430" y="10" width="120" height="340" as="geometry"/></mxCell><mxCell id="13" value="Authentication\&#xa;TokenInterface" style="shape=umlLifeline;perimeter=lifelinePerimeter;gradientDirection=north;fillColor=#4D4D4D;shadow=0;gradientColor=#B3B3B3;strokeWidth=1;strokeColor=#808080;fontFamily=Share-Tech;fontColor=#FFFFFF;rounded=1" vertex="1" parent="1"><mxGeometry x="565" y="10" width="120" height="340" as="geometry"/></mxCell><mxCell id="14" value="Authentication&#xa;Provider" style="shape=umlLifeline;perimeter=lifelinePerimeter;gradientDirection=north;fillColor=#4D4D4D;shadow=0;gradientColor=#B3B3B3;strokeWidth=1;strokeColor=#808080;fontFamily=Share-Tech;fontColor=#FFFFFF;rounded=1" vertex="1" parent="1"><mxGeometry x="700" y="10" width="120" height="340" as="geometry"/></mxCell><mxCell id="17" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="65" y="60" width="10" height="280" as="geometry"/></mxCell><mxCell id="20" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="215" y="90" width="10" height="22" as="geometry"/></mxCell><mxCell id="21" value="authenticateAction()" style="endArrow=block;entryX=0.25;entryY=0;fontFamily=Share-Italic;endFill=1;fontStyle=0;fontColor=#0F0F0F;exitX=1.3;exitY=0.107;exitPerimeter=0;" edge="1" parent="1" source="17" target="20"><mxGeometry relative="1" as="geometry"><mxPoint x="70" y="90" as="sourcePoint"/></mxGeometry></mxCell><mxCell id="22" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="350" y="112" width="10" height="68" as="geometry"/></mxCell><mxCell id="23" value="authenticate()" style="endArrow=block;entryX=0.25;entryY=0;fontFamily=Share-Tech;endFill=1;exitX=0.5;exitY=1" edge="1" parent="1" source="20" target="22"><mxGeometry relative="1" as="geometry"><mxPoint x="250" y="100" as="sourcePoint"/></mxGeometry></mxCell><mxCell id="27" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="485" y="129" width="10" height="48" as="geometry"/></mxCell><mxCell id="29" value="getAuthentication&#xa;Tokens()" style="endArrow=block;entryX=0.25;entryY=0;fontFamily=Share-Tech;endFill=1;exitX=1;exitY=0.25;" edge="1" parent="1" source="22" target="27"><mxGeometry relative="1" as="geometry"><mxPoint x="355" y="179" as="sourcePoint"/></mxGeometry></mxCell><mxCell id="30" value="updateCredentials()" style="endArrow=block;entryX=0.25;entryY=0;fontFamily=Share-Tech;endFill=1;exitX=1;exitY=0.25;" edge="1" parent="1" source="27" target="31"><mxGeometry relative="1" as="geometry"><mxPoint x="490" y="205" as="sourcePoint"/></mxGeometry></mxCell><mxCell id="31" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="620" y="142" width="10" height="24" as="geometry"/></mxCell><mxCell id="38" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="755" y="210" width="10" height="30" as="geometry"/></mxCell><mxCell id="58" value="echoed output" style="edgeStyle=none;endArrow=block;dashed=1;exitX=0.25;exitY=1;endFill=1;fontFamily=Share-Italic;fontColor=#808080;entryX=0.9;entryY=0.939;entryPerimeter=0;" edge="1" parent="1" source="2fffe0faecab8d49-73" target="17"><mxGeometry width="100" height="100" relative="1" as="geometry"><mxPoint x="495" y="340" as="sourcePoint"/><mxPoint x="80" y="323" as="targetPoint"/></mxGeometry></mxCell><mxCell id="2fffe0faecab8d49-61" value="TokenInterface[]" style="edgeStyle=none;endArrow=block;dashed=1;fontFamily=Share-Tech;endFill=1;exitX=0.25;exitY=1;" edge="1" parent="1" source="27"><mxGeometry x="360" y="177" width="100" height="100" as="geometry"><mxPoint x="460" y="200" as="sourcePoint"/><mxPoint x="360" y="177" as="targetPoint"/></mxGeometry></mxCell><mxCell id="2fffe0faecab8d49-63" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="350" y="193" width="10" height="68" as="geometry"/></mxCell><mxCell id="2fffe0faecab8d49-64" value="authenticate($token)" style="endArrow=block;entryX=0.25;entryY=0;fontFamily=Share-Tech;endFill=1;exitX=1;exitY=0.25;" edge="1" parent="1" source="2fffe0faecab8d49-63" target="38"><mxGeometry x="410" y="306" as="geometry"><mxPoint x="410" y="307" as="sourcePoint"/><mxPoint x="810" y="306" as="targetPoint"/></mxGeometry></mxCell><mxCell id="2fffe0faecab8d49-73" value="" style="whiteSpace=wrap;fontSize=12;fontFamily=Helvetica;align=center;verticalAlign=middle;fillColor=#E6E6E6;strokeColor=#000000;fontColor=#000000;gradientColor=#FFFFFF;gradientDirection=west" vertex="1" parent="1"><mxGeometry x="214" y="291" width="10" height="32" as="geometry"/></mxCell><mxCell id="2fffe0faecab8d49-74" value="onAuthenticationSuccess()" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;exitX=0.75;exitY=0;fontFamily=Share-Tech" edge="1" parent="1"><mxGeometry y="-46" width="100" height="100" as="geometry"><mxPoint x="222" y="291" as="sourcePoint"/><mxPoint x="223" y="322" as="targetPoint"/><Array as="points"><mxPoint x="280" y="381"/></Array><mxPoint x="68" y="-2" as="offset"/></mxGeometry></mxCell></root></mxGraphModel>