{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-06T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":54074,"title":"Determining if a Degree Sequence is Potentially a Graph","description":"A degree sequence is a list of numbers representing the degrees of vertices in a graph. While it is difficult to tell if a graph can be made from a degree sequence, there are some ways to tell for certain that a graph does not exist with a given degree sequence. One easy first check is the following: \r\nFirst, sort the degree sequence in descending order. Next, pop the first degree off the list and subtract one from the next N elements, where N is the degree you popped off. Repeat until the list is empty. If at any point a degree in the list is less than 0 or if there are not N elements left in the list to subtract from, there is no graph that exists with that degree sequence.\r\nWrite a function is_graph that returns true if this algorithm results in an empty list or false if it fails at any point.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(232, 230, 227); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(232, 230, 227); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 166.5px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 83.25px; transform-origin: 407px 83.25px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.783px 8px; transform-origin: 376.783px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA degree sequence is a list of numbers representing the degrees of vertices in a graph. While it is difficult to tell if a graph can be made from a degree sequence, there are some ways to tell for certain that a graph does not exist with a given degree sequence. One easy first check is the following: \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 379.867px 8px; transform-origin: 379.867px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFirst, sort the degree sequence in descending order. Next, pop the first degree off the list and subtract one from the next N elements, where N is the degree you popped off. Repeat until the list is empty. If at any point a degree in the list is less than 0 or if there are not N elements left in the list to subtract from, there is no graph that exists with that degree sequence.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 22.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 11.25px; text-align: left; transform-origin: 384px 11.25px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 50.4333px 8px; transform-origin: 50.4333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 37.8px 8px; transform-origin: 37.8px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 37.8px 8.5px; transform-origin: 37.8px 8.5px; \"\u003eis_graph \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 259.8px 8px; transform-origin: 259.8px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ethat returns true if this algorithm results in an empty list or false if it fails at any point.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = is_graph(x)\r\n  % Run algorithm\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [1 1];\r\ny_correct = 1;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [1 1 3];\r\ny_correct = 0;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [15 3 6];\r\ny_correct = 0;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [5 4 1 1 1 1];\r\ny_correct = 0;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [5 7 2 2 3 3 2 2];\r\ny_correct = 1;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":2052130,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-03-03T20:12:17.000Z","updated_at":"2025-06-25T20:01:28.000Z","published_at":"2022-03-03T20:12:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA degree sequence is a list of numbers representing the degrees of vertices in a graph. While it is difficult to tell if a graph can be made from a degree sequence, there are some ways to tell for certain that a graph does not exist with a given degree sequence. One easy first check is the following: \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFirst, sort the degree sequence in descending order. Next, pop the first degree off the list and subtract one from the next N elements, where N is the degree you popped off. Repeat until the list is empty. If at any point a degree in the list is less than 0 or if there are not N elements left in the list to subtract from, there is no graph that exists with that degree sequence.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eis_graph \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003ethat returns true if this algorithm results in an empty list or false if it fails at any point.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":2732,"title":"Construct a precedence graph from a code segment","description":"A hypothetical MATLAB code segment containing n lines is given in the form of a cell array. The i-th cell contains the i-th line of the code. Each of the lines contains simple arithmetic expressions.\r\n\r\nNow, construct an adjacency matrix of a graph containing n-vertices. The i-th vertex will represent the i-th line of the code. There should be a directed edge from i-th vertex to j-th vertex only if the values generated at i-th line are used in the j-th line.\r\n\r\nAll the variables in the code will have single letter names (e.g.: a,b,x,y etc).\r\n\r\nExample:\r\n\r\n  C = {'a=1;'\r\n       'b=1;'\r\n       'c=a+b;'\r\n       'c=c+1;'};\r\n\r\nHere, the cell array C contains a code segment. The first two lines are independent in the sense that they do not use values generated at any other lines. The third line uses information generated at line 1 and 2. The fourth line uses information generated at line 1,2 and 3.\r\n\r\nThus the resulting adjacency matrix will be as follows:\r\n\r\n  \r\n  mat = [0 0 1 1;\r\n         0 0 1 1;\r\n         0 0 0 1;\r\n         0 0 0 0];\r\n\r\n\r\n\r\n\r\nDefinition of adjacency matrix:\r\n\u003chttp://en.wikipedia.org/wiki/Adjacency_matrix\u003e","description_html":"\u003cp\u003eA hypothetical MATLAB code segment containing n lines is given in the form of a cell array. The i-th cell contains the i-th line of the code. Each of the lines contains simple arithmetic expressions.\u003c/p\u003e\u003cp\u003eNow, construct an adjacency matrix of a graph containing n-vertices. The i-th vertex will represent the i-th line of the code. There should be a directed edge from i-th vertex to j-th vertex only if the values generated at i-th line are used in the j-th line.\u003c/p\u003e\u003cp\u003eAll the variables in the code will have single letter names (e.g.: a,b,x,y etc).\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eC = {'a=1;'\r\n     'b=1;'\r\n     'c=a+b;'\r\n     'c=c+1;'};\r\n\u003c/pre\u003e\u003cp\u003eHere, the cell array C contains a code segment. The first two lines are independent in the sense that they do not use values generated at any other lines. The third line uses information generated at line 1 and 2. The fourth line uses information generated at line 1,2 and 3.\u003c/p\u003e\u003cp\u003eThus the resulting adjacency matrix will be as follows:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003emat = [0 0 1 1;\r\n       0 0 1 1;\r\n       0 0 0 1;\r\n       0 0 0 0];\r\n\u003c/pre\u003e\u003cp\u003eDefinition of adjacency matrix: \u003ca href = \"http://en.wikipedia.org/wiki/Adjacency_matrix\"\u003ehttp://en.wikipedia.org/wiki/Adjacency_matrix\u003c/a\u003e\u003c/p\u003e","function_template":"function y = pGraph(x)\r\n\r\n\r\n\r\n\r\nend","test_suite":"%%\r\nC = {'a=1;'\r\n     'b=1;'\r\n     'c=a+b;'\r\n     'c=c+1;'};\r\nmat = [0 0 1 1;\r\n       0 0 1 1;\r\n       0 0 0 1;\r\n       0 0 0 0];\r\nassert(isequal(pGraph(C),mat))\r\n\r\n\r\n\r\n%%\r\nC = {'a=1;'\r\n     'a=1;'\r\n     'c=1;'\r\n     'c=1;'};\r\nmat = [0 0 0 0;\r\n       0 0 0 0;\r\n       0 0 0 0;\r\n       0 0 0 0];\r\nassert(isequal(pGraph(C),mat))\r\n\r\n%%\r\nC = {'a=1;'\r\n     'a=1;'\r\n     'c=a+1;'\r\n     'c=a+1;'};\r\nmat = [0 0 0 0;\r\n       0 0 1 1;\r\n       0 0 0 0;\r\n       0 0 0 0];\r\nassert(isequal(pGraph(C),mat))\r\n\r\n%%\r\nC = {'a=1;'\r\n     'b=a+2;'\r\n     'c=b+1;'\r\n     'd=c+1;'};\r\nmat = double(~tril(ones(4)))\r\nassert(isequal(pGraph(C),mat))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":17203,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2014-12-06T07:56:27.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-12-06T07:54:40.000Z","updated_at":"2024-11-02T13:28:43.000Z","published_at":"2014-12-06T07:54:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA hypothetical MATLAB code segment containing n lines is given in the form of a cell array. The i-th cell contains the i-th line of the code. Each of the lines contains simple arithmetic expressions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow, construct an adjacency matrix of a graph containing n-vertices. The i-th vertex will represent the i-th line of the code. There should be a directed edge from i-th vertex to j-th vertex only if the values generated at i-th line are used in the j-th line.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAll the variables in the code will have single letter names (e.g.: a,b,x,y etc).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[C = {'a=1;'\\n     'b=1;'\\n     'c=a+b;'\\n     'c=c+1;'};]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere, the cell array C contains a code segment. The first two lines are independent in the sense that they do not use values generated at any other lines. The third line uses information generated at line 1 and 2. The fourth line uses information generated at line 1,2 and 3.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThus the resulting adjacency matrix will be as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[mat = [0 0 1 1;\\n       0 0 1 1;\\n       0 0 0 1;\\n       0 0 0 0];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDefinition of adjacency matrix:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Adjacency_matrix\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://en.wikipedia.org/wiki/Adjacency_matrix\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1886,"title":"Graceful Double Wheel Graph","description":"\u003chttp://en.wikipedia.org/wiki/Graceful_labeling Graceful Graphs\u003e are the topic of the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Primes Graceful Graph Contest\u003e , 21 September 2013 thru 21 December 2013.\r\n\r\nThis Challenge is to create \u003chttp://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html Graceful Double Wheel Graphs\u003e for various N. A \u003chttp://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf General Algorithm by Le Bras of Cornell\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003chttp://oeis.org/A004137 OEIS A004137\u003e.\r\n\r\n*Example:*\r\nOne solution for N=11:\r\n\r\n\u003c\u003chttp://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\u003e\u003e\r\n\r\nwhich could be answered as [1 3 14 6 19;20 5 17 7 16].\r\n\r\nThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\r\n\r\n*Input:* N [Total number of Nodes (odd) and N\u003e10 ]\r\n\r\n*Output:* M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Graceful_labeling\"\u003eGraceful Graphs\u003c/a\u003e are the topic of the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003ePrimes Graceful Graph Contest\u003c/a\u003e , 21 September 2013 thru 21 December 2013.\u003c/p\u003e\u003cp\u003eThis Challenge is to create \u003ca href = \"http://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\"\u003eGraceful Double Wheel Graphs\u003c/a\u003e for various N. A \u003ca href = \"http://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\"\u003eGeneral Algorithm by Le Bras of Cornell\u003c/a\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003ca href = \"http://oeis.org/A004137\"\u003eOEIS A004137\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e\r\nOne solution for N=11:\u003c/p\u003e\u003cimg src = \"http://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\"\u003e\u003cp\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\u003c/p\u003e\u003cp\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e N [Total number of Nodes (odd) and N\u003e10 ]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\u003c/p\u003e","function_template":"function m=double_wheel(n)\r\n  m=[];\r\nend","test_suite":"%%\r\ntic\r\nn=11;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=13;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=17;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=19;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=71;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=97;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-21T23:15:03.000Z","updated_at":"2013-09-22T01:16:42.000Z","published_at":"2013-09-22T01:16:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Graceful_labeling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e are the topic of the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePrimes Graceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e , 21 September 2013 thru 21 December 2013.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to create\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Double Wheel Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e for various N. A\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Algorithm by Le Bras of Cornell\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://oeis.org/A004137\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A004137\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e One solution for N=11:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20. The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e N [Total number of Nodes (odd) and N\u0026gt;10 ]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,PCFET0NUWVBFIGh0bWw+CjwhLS1baWYgSUUgOF0+PGh0bWwgY2xhc3M9Im5vLWpzIGx0LWllOSIgbGFuZz0iZW4iPjwhW2VuZGlmXS0tPgo8IS0tW2lmIElFIDldPjxodG1sIGNsYXNzPSJuby1qcyBpZTkiIGxhbmc9ImVuIj48IVtlbmRpZl0tLT4KPCEtLVtpZiBndCBJRSA4XT48IS0tPgo8aHRtbCBjbGFzcz0ibm8tanMiIGxhbmc9ImVuIj48IS0tPCFbZW5kaWZdLS0+CiAgICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KPCEtLSBSZW1vdmUgYXV0byBudW1iZXIgbGlua2luZy0tPgo8bWV0YSBuYW1lPSJmb3JtYXQtZGV0ZWN0aW9uIiBjb250ZW50PSJ0ZWxlcGhvbmU9bm8iPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9Imh0dHA6Ly93d3cuamFkdS5jby51ayIgLz4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCxmb2xsb3ciIC8+CjxtZXRhIG5hbWU9InJldmlzaXQtYWZ0ZXIiIGNvbnRlbnQ9IjIgZGF5cyIgLz4KPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyIgLz4KPG1ldGEgbmFtZT0icHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiAvPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgoKCjxsaW5rIHJlbD0ic2NoZW1hLmRjdGVybXMiIGhyZWY9Imh0dHBzOi8vcHVybC5vcmcvZGMvdGVybXMvIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLmNyZWF0b3IiIGNvbnRlbnQ9IlZpY3RvcmlhIFByaWNlIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jcmVhdGVkIiBjb250ZW50PSIyMDE5LTA1LTE3IiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5tb2RpZmllZCIgY29udGVudD0iMjAxOS0wNS0xNyIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5mb3JtYXQiIGNvbnRlbnQ9InRleHQvaHRtbCIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuaWRlbnRpZmllciIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5sYW5ndWFnZSIgY29udGVudD0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMucHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5yaWdodHMiIGNvbnRlbnQ9IkNvcHlyaWdodCBVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jb3ZlcmFnZSIgY29udGVudD0iVUsiIGxhbmc9ImVuIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLnRpdGxlIiBjb250ZW50PSJTY2hvb2wgb2YgQ29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iRGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnkiIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9IiIgLz4KCgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAtLT4KPHNjcmlwdD4oZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdbbF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6Cm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSwKaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CidodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9JytpK2RsO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTsKfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCdHVE0tV0pQWk0yVCcpOzwvc2NyaXB0Pgo8IS0tIEVuZCBHb29nbGUgVGFnIE1hbmFnZXIgLS0+Cgo8dGl0bGU+ICAgIFNjaG9vbCBvZiBDb21wdXRpbmcgfCAgVW5pdmVyc2l0eSBvZiBMZWVkcwo8L3RpdGxlPgoKPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC95b3M2dW93LmNzcyI+Cgo8IS0tIEluY2x1ZGUgSlMgLS0+CjxzY3JpcHQgc3JjPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvbW9kZXJuaXpyLWN1c3RvbS5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KCjwhLS0gSW5jbHVkZSBGYXZpY29uIC0tPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy9mYXZpY29uLmljbyIgLz4KCjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Jvb3RzdHJhcC5taW4uY3NzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSJzY3JlZW4iPgo8bGluayBocmVmPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvdGhlbWUtZGVmYXVsdC90b29sa2l0Lm1pbi5jc3M/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9InNjcmVlbiI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Nvb2tpZXMubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0ic2NyZWVuIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L3RoZW1lLWRlZmF1bHQvcHJpbnQubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhJyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiPgogICAgICAgIDwvaGVhZD4KICAgIDxib2R5IGNsYXNzPSJlcHMiPgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgo8bm9zY3JpcHQ+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0bWw/aWQ9R1RNLVdKUFpNMlQiCmhlaWdodD0iMCIgd2lkdGg9IjAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7dmlzaWJpbGl0eTpoaWRkZW4iPjwvaWZyYW1lPjwvbm9zY3JpcHQ+CjwhLS0gRW5kIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgogICAgICAgIDxkaXYgaWQ9InNpdGUtY29udGFpbmVyIiBjbGFzcz0ic2l0ZS1jb250YWluZXItbWQiPgogICAgICAgICAgICA8YSBpZD0ic2tpcC1tYWluIiBocmVmPSIjbWFpbiIgcmVsPSJub2ZvbGxvdyI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2E+CjxkaXYgY2xhc3M9InF1aWNrbGlua3Mtb3V0ZXIiPgoKICAgIDxkaXYgY2xhc3M9Im1hc3RoZWFkLWxpbmtzIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXN0aGVhZC1saW5rIG1hc3RoZWFkLWxpbmstcXVpY2tsaW5rcyBqcy1xdWlja2xpbmtzLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI3F1aWNrbGlua3MiIGFyaWEtbGFiZWw9Ik9wZW4gVW5pdmVyc2l0eSBxdWlja2xpbmtzIG1lbnUiPlVuaXZlcnNpdHkgbGlua3M8L2J1dHRvbj4KICAgIDwvZGl2PiAgIAoKICAgIDxuYXYgaWQ9InF1aWNrbGlua3MiIGNsYXNzPSJxdWlja2xpbmtzIGNvbGxhcHNlIiByb2xlPSJuYXZpZ2F0aW9uIj4gICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVpY2tsaW5rcy1pbm5lciI+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3RhZmY8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi9ob21lcGFnZS8zNzUvc2VydmljZXMiPkEtWiBTZXJ2aWNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi8iPkZvciBTdGFmZjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3Nlcy5sZWVkcy5hYy51ay8iPlN0dWRlbnQgRWR1Y2F0aW9uIFNlcnZpY2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3R1ZGVudHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3N0dWRlbnRzLmxlZWRzLmFjLnVrLyI+Rm9yIFN0dWRlbnRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWluZXJ2YS5sZWVkcy5hYy51ay8iPk1pbmVydmE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdD9pZD1rYl9hcnRpY2xlJmFtcDtzeXNwYXJtX2FydGljbGU9S0IwMDExOTQ4Ij5Nb2JpbGUgYXBwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+RmFjdWx0aWVzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9haGMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEFydHMsIEh1bWFuaXRpZXMgYW5kIEN1bHR1cmVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYmlvbG9naWNhbHNjaWVuY2VzLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBCaW9sb2dpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEJ1c2luZXNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vudmlyb25tZW50LmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVudmlyb25tZW50PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaWNpbmVoZWFsdGgubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIE1lZGljaW5lIGFuZCBIZWFsdGg8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lc3NsLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBTb2NpYWwgU2NpZW5jZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGxjLmxlZWRzLmFjLnVrLyI+TGlmZWxvbmcgTGVhcm5pbmcgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTY3L2xhbmd1YWdlX2NlbnRyZSI+TGFuZ3VhZ2UgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5PdGhlcjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvc3RhZmZheiI+QS1aIFN0YWZmPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY29udGFjdCI+Q29udGFjdHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdCI+SVQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9qb2JzIj5Kb2JzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmx1dS5vcmcudWsvIj5MZWVkcyBVbml2ZXJzaXR5IFVuaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbGlicmFyeS5sZWVkcy5hYy51ay8iPkxpYnJhcnk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvbGxvdyB1czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS91bml2ZXJzaXR5b2ZsZWVkcyI+RmFjZWJvb2s8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbnN0YWdyYW0uY29tL3VuaXZlcnNpdHlvZmxlZWRzLyI+SW5zdGFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9zY2hvb2wvdW5pdmVyc2l0eS1vZi1sZWVkcy8iPkxpbmtlZEluPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS91bml2ZXJzaXR5LW9mLWxlZWRzIj5NZWRpdW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIGh0dHBzOi8vdGhlY29udmVyc2F0aW9uLmNvbS9pbnN0aXR1dGlvbnMvdW5pdmVyc2l0eS1vZi1sZWVkcy0xMTIyIj5UaGUgQ29udmVyc2F0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vdW5pdmVyc2l0eWxlZWRzIj5Ud2l0dGVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaXZlcnNpdHl1ayI+V2VpYm88L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdW5pdmVyc2l0eW9mbGVlZHMiPllvdVR1YmU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrbGlua3MtY2xvc2UiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IGJ0bi1pY29uIGpzLXF1aWNrbGlua3MtY2xvc2UiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNxdWlja2xpbmtzIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGstaWNvbi1jbG9zZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5DbG9zZSBxdWlja2xpbmtzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9uYXY+Cgo8L2Rpdj4KPCEtLSAkTUFTVEhFQUQtLT4KPGhlYWRlciBpZD0ibWFzdGhlYWQiIGNsYXNzPSJtYXN0aGVhZCIgcm9sZT0iYmFubmVyIj4KCiAgICA8ZGl2IGNsYXNzPSJuYXZpY29uIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4taWNvbiIgZGF0YS1zdGF0ZT0iYm9keS1zdGF0ZSIgZGF0YS1jbGFzcz0ic3RhdGUtbmF2aWNvbi1hY3RpdmUiPk1lbnU8L2J1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9ImxvZ28tZnVsbCIgdGl0bGU9IlVuaXZlcnNpdHkgb2YgTGVlZHMgaG9tZXBhZ2UiIGhyZWY9Ii8vd3d3LmxlZWRzLmFjLnVrLyI+CiAgICAgICAgICAgIDxpbWcgY2xhc3M9ImpzLXBuZy1zdmctdXJpIiBkYXRhLXVyaT0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5wbmciIGFsdD0iVW5pdmVyc2l0eSBvZiBMZWVkcyBsb2dvIj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJsb2dvLW1hcmsiIHRpdGxlPSJVbml2ZXJzaXR5IG9mIExlZWRzIGhvbWVwYWdlIiBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay8iPgogICAgICAgICAgICA8aW1nIGNsYXNzPSJqcy1wbmctc3ZnLXVyaSIgZGF0YS11cmk9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9pbWcvdW9sLWxvZ28tbWFyay5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby1tYXJrLnBuZyIgYWx0PSJVbml2ZXJzaXR5IG9mIExlZWRzIGxvZ28iPgogICAgICAgIDwvYT4KICAgIDwvZGl2PgoKPC9oZWFkZXI+CjwhLS0gLyRNQVNUSEVBRC0tPgo8IS0tICRTSVRFU0VBUkNILS0+CjxkaXYgaWQ9InNpdGVzZWFyY2giIGNsYXNzPSJzaXRlLXNlYXJjaCBjb2xsYXBzZSI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXh4cyI+CiAgICAgICAgPGZvcm0gY2xhc3M9InNpdGUtc2VhcmNoLWlubmVyIiBhY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIiByb2xlPSJzZWFyY2giPgogICAgICAgICAgICA8aW5wdXQgaWQ9ImNpZCIgbmFtZT0iY2lkIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxOTAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNyLW9ubHkiIGZvcj0ic2VhcmNoSW5wdXQiPlNlYXJjaDwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCBpZD0ic2VhcmNoSW5wdXQiIGNsYXNzPSJzaXRlLXNlYXJjaC1pbnB1dCIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxdWVyeSIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgYXV0b2NvbXBsZXRlPSJvZmYiPgoKICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzci1vbmx5IiBmb3I9InNlYXJjaE9wdGlvbiI+RGVzdGluYXRpb248L2xhYmVsPgoKICAgICAgICAgICAgPHNlbGVjdCBpZD0ic2VhcmNoT3B0aW9uIiBjbGFzcz0ic2l0ZS1zZWFyY2gtc2VsZWN0IGpzLWFjdGlvbi10b2dnbGUiIG5hbWU9InNlYXJjaE9wdGlvbiI+CgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic2VhcmNoU2l0ZSIgc2VsZWN0ZWQgZGF0YS1hY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBzaXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzZWFyY2hBbGwiIGRhdGEtYWN0aW9uPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL3NlYXJjaC1yZXN1bHRzLnBocCI+QWxsIGxlZWRzLmFjLnVrIHNpdGVzPC9vcHRpb24+CgogICAgICAgICAgICAgICAgPCEtLTxvcHRncm91cCBsYWJlbD0iVG9vbGtpdCBjb3Vyc2VzIj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVRyIgZGF0YS1hY3Rpb249Ii8vY291cnNlcy5sZWVkcy5hYy51ay9jb3Vyc2Utc2VhcmNoIj5VbmRlcmdyYWR1YXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUEdUIiBkYXRhLWFjdGlvbj0iLy9jb3Vyc2VzLmxlZWRzLmFjLnVrL2NvdXJzZS1zZWFyY2giPlBvc3RncmFkdWF0ZSB0YXVnaHQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQR1IiIGRhdGEtYWN0aW9uPSIvL2NvdXJzZXMubGVlZHMuYWMudWsvY291cnNlLXNlYXJjaCI+UG9zdGdyYWR1YXRlIHJlc2VhcmNoPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L29wdGdyb3VwPi0tPgoKICAgICAgICAgICAgPC9zZWxlY3Q+CgogICAgICAgICAgICA8aW5wdXQgY2xhc3M9InNpdGUtc2VhcmNoLXN1Ym1pdCBidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCI+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kU0lURVNFQVJDSC0tPgo8ZGl2IGlkPSJxdWlja3NlYXJjaCIgY2xhc3M9IndyYXBwZXItbGcgd3JhcHBlci1wZCB3cmFwcGVyLXJlbGF0aXZlIj4KICAgIDxkaXYgY2xhc3M9InF1aWNrLXNlYXJjaCI+CgogICAgPC9kaXY+CjwvZGl2PjwhLS0gJExPQ0FMSEVBREVSLS0+CjxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXhzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItaW5uZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItdGl0bGUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9IkhvbWUgcGFnZSBsaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5TY2hvb2wgb2YgQ29tcHV0aW5nPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlci1zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IHNtLXRvZ2dsZS1zZWFyY2ggYnRuLWljb24ganMtc2l0ZS1zZWFyY2gtdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjc2l0ZXNlYXJjaCIgcm9sZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJPcGVuIHNpdGUgc2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2l0ZS1zZWFyY2gtYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+U2VhcmNoPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kTE9DQUxIRUFERVItLT4KPG5hdiBpZD0idGstbmF2LXByaW9yaXR5IiBjbGFzcz0idGstbmF2IHRrLW5hdi1wcmlvcml0eSIgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1uYXYtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWljb24gYnRuLW1lbnUiIGRhdGEtc3RhdGU9ImJvZHktc3RhdGUiIGRhdGEtY2xhc3M9InN0YXRlLW5hdmljb24tYWN0aXZlIj5DbG9zZTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRrLW5hdi1pbm5lciI+CiAgICAgICAgICA8dWwgY2xhc3M9InRrLW5hdi1saXN0IHRrLW5hdi1saXN0LXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRrLW5hdi1kcm9wZG93biB0ay1uYXYtZHJvcGRvd24tLWl0ZW1zLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2Ryb3BfMDEiIHJlbD0ibm9mb2xsb3ciPlN0dWR5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgaWQ9ImRyb3BfMDEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXVuZGVyZ3JhZHVhdGUiPlVuZGVyZ3JhZHVhdGU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyI+TWFzdGVyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1yZXNlYXJjaC1kZWdyZWVzIj5SZXNlYXJjaCBkZWdyZWVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPlJlc2VhcmNoIGFuZCBJbm5vdmF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL3N0YWZmbGlzdCI+UGVvcGxlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9jb250YWN0LXVzLTQiPkNvbnRhY3QgdXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9uYXY+CiAgICAgICAgICAgIDxtYWluIGlkPSJtYWluIiBjbGFzcz0ibWFpbiIgcm9sZT0ibWFpbiI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IAogICAgPGgxIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPlNjaG9vbCBvZiBDb21wdXRpbmc8L2gxPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDEgLSBUSyBiYW5uZXIgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDAxIHdpZGdldC1iYW5uZXIgIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyIHN3aXBlci0xIHN3aXBlci1mdWxsLXdpZHRoIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNsaWRlLWhlYWRpbmciIGRhdGEtY2hhci1saW1pdD0iNzUiPkNsZWFyaW5nIDIwMjA8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzbGlkZS1sZWFkIiBkYXRhLWNoYXItbGltaXQ9IjIwMCI+Sm9pbiBhIHdvcmxkIHRvcCAxMDAgdW5pdmVyc2l0eTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz03OTgmYW1wO2g9Mzk5JmFtcDtmaWxlbmFtZT1DbGVhcmluZ18yMDIwLnBuZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9Nzk4JmFtcDtoPTM5OSZhbXA7ZmlsZW5hbWU9Q2xlYXJpbmdfMjAyMC5wbmcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IkNsZWFyaW5nIDIwMjAiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5TdGFydCB5b3VyIGNvdXJzZSBpbiBTZXB0ZW1iZXIgb3IgSmFudWFyeTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz0xMjAwJmFtcDtoPTYwMCZhbXA7ZmlsZW5hbWU9MTIwMHg2MDBfY29tcF9scl8yLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTIwMCZhbXA7aD02MDAmYW1wO2ZpbGVuYW1lPTEyMDB4NjAwX2NvbXBfbHJfMi5qcGcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IlNjaG9vbCBvZiBDb21wdXRpbmciPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5DZW50cmVzIGZvciBEb2N0b3JhbCBUcmFpbmluZzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5UcmFpbmluZyB0b21vcnJvdydzIGxlYWRpbmcgcmVzZWFyY2hlcnMgdG8gYWRkcmVzcyBwcm9ibGVtcyBmb3IgdGhlIGJlbmVmaXRzIG9mIHNvY2lldHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InNsaWRlLWN0YSIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMvZG9jL2NlbnRyZXMtZG9jdG9yYWwtdHJhaW5pbmciPk1vcmU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlLWltZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTE0MDAmYW1wO2g9NzAwJmFtcDtmaWxlbmFtZT1DRFRoZXJvLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTQwMCZhbXA7aD03MDAmYW1wO2ZpbGVuYW1lPUNEVGhlcm8uanBnJmFtcDtqcGVncXVhbGl0eT04NSIgYWx0PSJTdHVkZW50IHdvcmtpbmcgYXQgY29tcHV0ZXIiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcy9kb2MvY2VudHJlcy1kb2N0b3JhbC10cmFpbmluZyI+TW9yZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InN3aXBlci1uYXYgc3dpcGVyLW5hdi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9IiNzbGlkZTAiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzAnPkNsZWFyaW5nIDIwMjA8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48YSBocmVmPSIjc2xpZGUxIiByZWw9Im5vZm9sbG93IiBkYXRhLXNsaWRlPScxJz5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGkgPjxhIGhyZWY9IiNzbGlkZTIiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzInPkZ1bGx5IGZ1bmRlZCBwaGRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgo8YSBjbGFzcz0ianMtc3dpcGVyLXNjcm9sbCBzd2lwZXItbW9yZSIgaHJlZj0iI2Rvd24iIHJlbD0ibm9mb2xsb3ciPlNjcm9sbCBkb3duPC9hPgo8L2Rpdj4KCgo8L2Rpdj4KPCEtLSAvJFdJREdFVCAzMDAxIC0gVEsgYmFubmVyIC0tPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDQgVEsgY29udGVudCAtLT4NCjxkaXYgY2xhc3M9IndpZGdldC0zMDA0Ij4NCiAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ic2tpbi1yb3ctd2hpdGUgY29udGFpbmVyLXJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iaDItbGcgaGVhZGluZy11bmRlcmxpbmUiPkNvcm9uYXZpcnVzIChjb3ZpZC0xOSk8L2gyPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImphZHUtY21zIj48cD5XZSBrbm93IHRoYXQgbWFueSBwZW9wbGUgYXJlIHVuZGVyc3RhbmRhYmx5IGFueGlvdXMgYWJvdXQgdGhlIGN1cnJlbnQgY29yb25hdmlydXMgb3V0YnJlYWsuIElmIHlvdSYjMzk7cmUgYW48cz4gPC9zPmFwcGxpY2FudCBvciBvZmZlciBob2xkZXIgZm9yIGEgdGF1Z2h0IGNvdXJzZSBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTYwMDAvdW5kZXJncmFkdWF0ZS84MDIvY29yb25hdmlydXMtaW5mb3JtYXRpb25fZm9yX2FwcGxpY2FudHNfYW5kX29mZmVyX2hvbGRlcnMiIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyBGQVFzPC9hPi4mbmJzcDtJZiB5b3UmIzM5O3JlIGEgUGhEIHJlc2VhcmNoZXIgYXBwbGljYW50IG9yIG9mZmVyIGhvbGRlciB2aXNpdCB0aGlzIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTAyMDAwL3Jlc2VhcmNoX2RlZ3JlZXMvODA0L2Nvcm9uYXZpcnVzLWluZm9ybWF0aW9uX2Zvcl9wZ3JfYXBwbGljYW50c19hbmRfb2ZmZXJfaG9sZGVycyI+d2VicGFnZSBmb3IgZnVydGhlciBpbmZvcm1hdGlvbjwvYT4uPC9wPgoKPHA+SWYgeW91JnJzcXVvO3JlIGFuIGV4aXN0aW5nIHN0dWRlbnQgb3IgbWVtYmVyIG9mIHN0YWZmLCBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly9jb3JvbmF2aXJ1cy5sZWVkcy5hYy51ay8iIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyB3ZWJzaXRlPC9hPiZuYnNwO2ZvciB0aGUgbGF0ZXN0IHVwZGF0ZXMgYW5kIGluZm9ybWF0aW9uLiZuYnNwOzwvcD4KPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4gDQo8L2Rpdj4gICAgICAgICAgICANCjwhLS0gJFdJREdFVCAzMDA0IFRLIGNvbnRlbnQgLS0+DQoNCg0KDQoKICAgICAgICAgICAgCjwhLS0gJFdJREdFVCAzMDEzIFRLIGZhY3QgYW5kIGZpZ3VyZXMgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDEzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiIHJvbGU9Imxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCB0ZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsZWFkLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBVSyBmb3IgQ29tcHV0ZXIgU2NpZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wbGV0ZSBVbml2ZXJzaXR5IEd1aWRlIDIwMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXIgPHNwYW4+ODU8L3NwYW4+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxlYWQtZmFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Ygb3VyIHJlc2VhcmNoIGFjdGl2aXR5IGlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b3JsZC1sZWFkaW5nJyBvciAnaW50ZXJuYXRpb25hbGx5IGV4Y2VsbGVudCcgbGF0ZXN0IFJFRiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCA8c3Bhbj4xMDA8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGVhZC1mYWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JsZCB0b3AgMTAwIHVuaXZlcnNpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVMgV29ybGQgVW5pdmVyc2l0eSBSYW5raW5ncyAyMDIxICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gLyRXSURHRVQgMzAxMyBUSyBmYWN0IGFuZCBmaWd1cmVzIC0tPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtMzAwMyBjYXJkcy1jb250YWluZXIgIGNhcmRzLWNvbnRhaW5lci0tbm8taGVhZGluZyAgY2FyZHMtY29udGFpbmVyLS1uby1sZWFkICI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgc2tpbi1yb3ctbW9kdWxlLWxpZ2h0IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgoKICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZmxhdCBjYXJkLXN0YWNrZWQtc20gc2tpbi1iZC1iIHNraW4tYm94LXdoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyBjYXJkLWltZy0xLTQteHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJycy1pbWcgcnMtaW1nLTItMSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwdWdjb21wdXRpbmcuanBnJykiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9IlVuZGVyZ3JhZHVhdGUgZGVncmVlcyI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMHVnY29tcHV0aW5nLmpwZyIgYWx0PSJUaHJlZSBDb21wdXRpbmcgc3R1ZGVudHMsIG9uZSB1c2luZyBWUiI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy11bmRlcmdyYWR1YXRlIj5VbmRlcmdyYWR1YXRlIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9Ik1vcmUgb24gVW5kZXJncmFkdWF0ZSBkZWdyZWVzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMGNvbXBtYXN0ZXJzLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLW1hc3RlcnMiIHRpdGxlPSJNYXN0ZXJzIGNvdXJzZXMiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTYwMCZhbXA7aD0zMDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBjb21wbWFzdGVycy5qcGciIGFsdD0iU3R1ZGVudCB1c2luZyBhIGxhcHRvcCI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1tYXN0ZXJzIj5NYXN0ZXJzIGNvdXJzZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyIgdGl0bGU9Ik1vcmUgb24gTWFzdGVycyBjb3Vyc2VzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMENvbXBfUmVzZWFyY2gxLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiIHRpdGxlPSJSZXNlYXJjaCBkZWdyZWVzIj48aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwQ29tcF9SZXNlYXJjaDEuanBnIiBhbHQ9IlByb2Zlc3NvciBOZXR0YSBDb2hlbiBpbiByZXNlYXJjaCBsYWIiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIgY2FyZC1jb250ZW50LTItMyBjYXJkLWNvbnRlbnQtMy00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiPlJlc2VhcmNoIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcyIgdGl0bGU9Ik1vcmUgb24gUmVzZWFyY2ggZGVncmVlcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tICRXSURHRVQgMzAwOCAtIFRLIGZlYXR1cmVkIGNvbnRlbnQgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDA4Ij4KCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItcm93IHNraW4tYmctd2hpdGUiPgoKICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItbWQgd3JhcHBlci1wZC1tZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmVkLWNvbnRlbnQgZmVhdHVyZWQtY29udGVudC1yZWN0YW5nbGUiPgoKCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlZC1jb250ZW50LWltZyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9ODAwJmFtcDtoPTQwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMF9hcnRpZmljaWFsX2ludGVsbGlnZW5jZV8xLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTgwMCZhbXA7aD00MDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBfYXJ0aWZpY2lhbF9pbnRlbGxpZ2VuY2VfMS5qcGciIGFsdD0iQXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPk1vcmUgb24gUmVzZWFyY2ggYW5kIGlubm92YXRpb248L3NwYW4+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImgyLWxnIGhlYWRpbmctdW5kZXJsaW5lIj5SZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvaDI+CgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbXMgY21zLW5vLWxlYWQgY21zLXNlcmlmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+T3VyIHJlc2VhcmNoIHJhbmdlcyZuYnNwO2Zyb20gZnVuZGFtZW50YWwgYWR2YW5jZXMgaW4gYWxnb3JpdGhtcyBhbmQgb3VyIHVuZGVyc3RhbmRpbmcgb2YgY29tcHV0YXRpb24sIHRocm91Z2ggdG8gaGlnaGx5IGFwcGxpZWQgcmVzZWFyY2ggaW50byBuZXcgZGlzcGxheSB0ZWNobm9sb2dpZXMgZm9yIGNsaW5pY2FsIGRpYWdub3NpcywgZW5lcmd5LWVmZmljaWVudCBkYXRhIGNlbnRyZXMsIGFuZCBwcm9mb3VuZCBpbnNpZ2h0IGludG8gZGF0YSB0aHJvdWdoIHZpc3VhbGlzYXRpb24uIFdlIGFyZSBwYXJ0bmVycyB3aXRoIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy50dXJpbmcuYWMudWsvIj5BbGFuIFR1cmluZyBJbnN0aXR1dGU8L2E+LCB0aGUgVUsmIzM5O3MgcHJlbWllciByZXNlYXJjaCBjZW50cmUgZm9yIGRhdGEgc2NpZW5jZSBhbmQgYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIG1vcmUtZGl2aWRlciIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtaW5ub3ZhdGlvbiI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kV0lER0VUIDMwMDggLSBUSyBmZWF0dXJlZCBjb250ZW50IC0tPgoKICAgICAgICAgICAgPCEtLSBXaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDUiPjwhLS0gd2lkZ2V0IC0tPgo8ZGl2IGNsYXNzPSJzay1iZy1tb2R1bGUtbGlnaHQgY29udGFpbmVyLXJvdyI+PCEtLSBjb250YWluZXIgLS0+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLWxnIHdyYXBwZXItcGQtbWQiPjwhLS0gd3JhcHBlciAtLT4KCiAgICAgICAgPGgyIGNsYXNzPSJoZWFkaW5nLXVuZGVybGluZSBoMi1sZyI+Ck5ld3MgYW5kIGV2ZW50cyAgICAgICAgPC9oMj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGstdGFicy1oZWFkZXIiPjwhLS0gdGFicyAtLT4KICAgICAgICAgICAgPHVsIGlkPSIiIGNsYXNzPSJuYXYgbmF2LXRhYnMgdGstbmF2LXRhYnMgcHVsbC1sZWZ0Ij4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWN0aXZlIj48YSBocmVmPSIjbmV3c2ZiNWE4MiIgZGF0YS10b2dnbGU9InRhYiIgcmVsPSJub2ZvbGxvdyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIiPjxhIGhyZWY9IiNldmVudHM4YzQwMTMiIGRhdGEtdG9nZ2xlPSJ0YWIiIHJlbD0ibm9mb2xsb3ciPkV2ZW50czwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PjwhLS0gL3RhYnMgLS0+CiAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPGRpdiBjbGFzcz0id3JhcHBlci1sZyB3cmFwcGVyLXBkLW1kIj48IS0tIHdyYXBwZXIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjwhLS0gdGFiLWNvbnRlbnQgLS0+CiAgICAgICAgPCEtLSBOZXdzIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9Im5ld3NmYjVhODIiPjwhLS0gcGFuZSAtLT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGstdGFicy1jdGEiPjxhIGNsYXNzPSJtb3JlIG1vcmUtYWxsIG1vcmUtZGFyayBwdWxsLXJpZ2h0IiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0iPlNlZSBtb3JlIG5ld3MgbGlrZSB0aGlzPC9hPjwvcD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVxdWFsaXplIj48IS0tIGVxdWFsaXplIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyByb3ctcmVkdWNlLWd1dHRlciI+PCEtLSByb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPVRoZV9HcmVhdF9IYWxsLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1UaGVfR3JlYXRfSGFsbC5qcGciIGFsdD0iVGhlIEdyZWF0IEhhbGwgaW4gc3VtbWVyIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2NDkvbGVlZHMtaW4tdG9wLWZpdmUtZm9yLXRlYWNoaW5nLWluLW5hdGlvbmFsLXN0dWRlbnQtc3VydmV5Ij5MZWVkcyBpbiB0b3AgZml2ZSBmb3IgdGVhY2hpbmcgaW4gTmF0aW9uYWwgU3R1ZGVudCBTdXJ2ZXk8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5OYXRpb25hbCBTdHVkZW50IFN1cnZleSByZXN1bHRzIHJldmVhbCB0aGF0IExlZWRzIGhhcyByZXRhaW5lZCBpdHMgcG9zaXRpb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ5L2xlZWRzLWluLXRvcC1maXZlLWZvci10ZWFjaGluZy1pbi1uYXRpb25hbC1zdHVkZW50LXN1cnZleSIgdGl0bGU9Ik1vcmUgb24gTGVlZHMgaW4gdG9wIGZpdmUgZm9yIHRlYWNoaW5nIGluIE5hdGlvbmFsIFN0dWRlbnQgU3VydmV5Ij5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIExlZWRzIGluIHRvcCBmaXZlIGZvciB0ZWFjaGluZyBpbiBOYXRpb25hbCBTdHVkZW50IFN1cnZleTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnIiBhbHQ9IkEgcm9ib3QgY29udHJvbGxlZCBieSBhIHNtYXJ0cGhvbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJlbW92ZWQgaW1hZ2UgbGluZ2sgZm9yIGFjY2Vzc2liaWxpdHkgYXVkaXQgVE9ETzogUmVmYWN0b3IgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCBlcXVhbGl6ZS1pbm5lciI+PCEtLSBjYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9uZXdzL2FydGljbGUvNTY0Ny9wYXJ0eS10aW1lLWxhc3ItdGVhbS13aW5zLWdvbGQtaW4tcm9ib2N1cC1ob21lLWVkdWNhdGlvbi1jaGFsbGVuZ2UiPlBhcnR5IHRpbWUhIExBU1IgdGVhbSB3aW5zIGdvbGQgaW4gUm9ib0N1cEBIb21lIEVkdWNhdGlvbiBDaGFsbGVuZ2U8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5BIHRlYW0gbWFkZSB1cCBvZiBuZXcgbWVtYmVycyBvZiB0aGUgTGVlZHMgQXV0b25vbW91cyBTZXJ2aWNlIFJvYm90cyAoTEFTUikmaGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ3L3BhcnR5LXRpbWUtbGFzci10ZWFtLXdpbnMtZ29sZC1pbi1yb2JvY3VwLWhvbWUtZWR1Y2F0aW9uLWNoYWxsZW5nZSIgdGl0bGU9Ik1vcmUgb24gUGFydHkgdGltZSEgTEFTUiB0ZWFtIHdpbnMgZ29sZCBpbiBSb2JvQ3VwQEhvbWUgRWR1Y2F0aW9uIENoYWxsZW5nZSI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBQYXJ0eSB0aW1lISBMQVNSIHRlYW0gd2lucyBnb2xkIGluIFJvYm9DdXBASG9tZSBFZHVjYXRpb24gQ2hhbGxlbmdlPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1pdGVtIGNvbC1zbS02IGNvbC1tZC0zIj48IS0tIGl0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXN0YWNrZWQgc2tpbi1ib3gtd2hpdGUgc2tpbi1iZC1iIj48IS0tIGNhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9TnVjbGVhcl9sYWJfR00uNTlfXzVfLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1OdWNsZWFyX2xhYl9HTS41OV9fNV8uanBnIiBhbHQ9IlVuZGVyZ3JhZHVhdGUgY2hlbWljYWwgZW5naW5lZXJpbmcgc3R1ZGVudCB3b3JraW5nIGluIHRoZSBudWNsZWFyIGxhYiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVtb3ZlZCBpbWFnZSBsaW5nayBmb3IgYWNjZXNzaWJpbGl0eSBhdWRpdCBUT0RPOiBSZWZhY3RvciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtaW5uZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiPkludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjA8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5Kb2luIHVzIGluIGNlbGVicmF0aW5nIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IChJTldFRCkgb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiIHRpdGxlPSJNb3JlIG9uIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gSW50ZXJuYXRpb25hbCBXb21lbiBpbiBFbmdpbmVlcmluZyBEYXkgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnIiBhbHQ9IkZhY3VsdHkgb2YgRVBTIFBhcnRuZXJzaGlwIEF3YXJkcyAyMDIwIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2MzYvZmFjdWx0eS1wYXJ0bmVyc2hpcC1hd2FyZHMtMjAyMCI+RmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvYT48L2gzPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im5vdGUiPlRoZSBGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBQYXJ0bmVyc2hpcCBBd2FyZHMgaXMgYW4maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjM2L2ZhY3VsdHktcGFydG5lcnNoaXAtYXdhcmRzLTIwMjAiIHRpdGxlPSJNb3JlIG9uIEZhY3VsdHkgUGFydG5lcnNoaXAgYXdhcmRzIDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gRmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvcm93IC0tPgogICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXF1YWxpemUgLS0+CiAgICAgICAgICAgIDwvZGl2PjwhLS0gL3BhbmUgLS0+CjwhLS0gL05ld3MgLS0+CgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSAiIGlkPSJldmVudHM4YzQwMTMiPjwhLS0gdGFiLXBhbmUgLS0+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRrLXRhYnMtY3RhIj48YSBjbGFzcz0ibW9yZSBtb3JlLWFsbCBtb3JlLWRhcmsgcHVsbC1yaWdodCIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvZXZlbnRzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0mc3ViX2NhdGVnb3J5SUQ9JnR5cGVzPSZzdWJfdHlwZT0iPlNlZSBtb3JlIGV2ZW50cyBsaWtlIHRoaXM8L2E+PC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiPjwhLS0gZXF1YWxpemUgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IHJvdy1yZWR1Y2UtZ3V0dGVyIj48IS0tIHJvdyAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudHMtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBldmVudC1pdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc3RhY2tlZCBza2luLWJveC13aGl0ZSBza2luLWJkLWIiPjwhLS0gY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj48IS0tIGNhcmQtaW1nIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9QmVfQ3VyaW91cy5qcGcnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9ldmVudHMvZXZlbnQvNjEyMi9iZS1jdXJpb3VzLTIwMjAiIHRpdGxlPSJCZSBDdXJpb3VzIDIwMjAiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPUJlX0N1cmlvdXMuanBnIiBhbHQ9IktpZCBob2xkaW5nIGEgbW9sZWN1bGUgbW9kZWwiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWltZyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2V2ZW50cy9ldmVudC82MTIyL2JlLWN1cmlvdXMtMjAyMCI+QmUgQ3VyaW91cyAyMDIwPC9hPjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlYWRpbmctcmVsYXRlZCI+ClNhdHVyZGF5IDEwIE9jdG9iZXIgMjAyMCwgMTA6MDAgLSAxNjowMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZXZlbnRzL2V2ZW50LzYxMjIvYmUtY3VyaW91cy0yMDIwIiB0aXRsZT0iTW9yZSBvbiBGYWN1bHR5IFBhcnRuZXJzaGlwIGF3YXJkcyAyMDIwIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEJlIEN1cmlvdXMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXZlbnQtaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9yb3cgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9lcXVhbGl6ZS0tPgogICAgICAgICAgICA8L2Rpdj48IS0tIC90YWItY29udGVudCAtLT4KICAgICAgICA8L2Rpdj48IS0tIC90YWItcGFuZSAtLT4KPCEtLSAvRXZlbnRzIC0tPgoKICAgICAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPC9kaXY+PCEtLSAvY29udGFpbmVyIC0tPgo8L2Rpdj48IS0tIC93aWRnZXQgLS0+Cgo8IS0tIC9XaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KCiAgICAgICAgICAgIAo8IS0tICRXSURHRVQ6IG5vIDMwMDYgLSBUSyBsaW5rIG5hdiAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDYiPgoJPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLWJnLXdoaXRlIj4KCQk8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoJCQkKCQkJCgkJCQoJCQkKCQkJCQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InRrLXJvdyBjbGVhcmZpeCByb3ctcmVkdWNlLWd1dHRlciI+CgkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3dvcmtpbmctYnVzaW5lc3MiPldvcmtpbmcgd2l0aCBidXNpbmVzczwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIHdvcmsgd2l0aCBvcmdhbmlzYXRpb25zIG9mIGFsbCBzaXplcyBhY3Jvc3MgYSB3aWRlIHJhbmdlIG9mIGluZHVzdHJpZXMgdG8gY29tZSB1cCB3aXRoIHNvbHV0aW9ucyB0byB5b3VyIG5lZWRzLjwvcD4KCQkJCQkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUiIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9kb2Mvd29ya2luZy1idXNpbmVzcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBXb3JraW5nIHdpdGggYnVzaW5lc3M8L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5SZWNydWl0IG91ciBzdHVkZW50czwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIGhhdmUgYSBkZWRpY2F0ZWQgRW1wbG95YWJpbGl0eSBUZWFtIHRoYXQgcHJvdmlkZSBidXNpbmVzc2VzIHdpdGggYWNjZXNzIHRvIG91ciB0YWxlbnRlZCBzdHVkZW50cyB0aHJvdWdoIGEgcmFuZ2Ugb2Ygc2VydmljZXMuPC9wPgoJCQkJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFJlY3J1aXQgb3VyIHN0dWRlbnRzPC9zcGFuPjwvYT4KCQkJCQkJCQkJCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkKCQkJCQkJCQkJCQkKCQkJCQk8L2Rpdj4KCgkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ay1yb3cgY2xlYXJmaXggcm93LXJlZHVjZS1ndXR0ZXIiPgoJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9zY2hvb2xzLW91dHJlYWNoIj5TY2hvb2xzIG91dHJlYWNoPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+V2UgZGVsaXZlciBldmVudHMgYW5kIGFjdGl2aXRpZXMgdG8gc2hvd2Nhc2UgdGhpcyBmYXNjaW5hdGluZyBzdWJqZWN0IGFyZWEgdG8gc3R1ZGVudHMgYXQgc2Nob29scyBhbmQgY29sbGVnZXMgYWNyb3NzIHRoZSBVSy48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3NjaG9vbHMtb3V0cmVhY2giPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gU2Nob29scyBvdXRyZWFjaDwvc3Bhbj48L2E+CgkJCQkJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgSW5jbHVzaW9uPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+VGhlIFVuaXZlcnNpdHkgY29tbXVuaXR5IGlzIG1hZGUgdXAgb2YgYSB3aWRlIHJhbmdlIG9mIHBlb3BsZSB3aXRoIGRpdmVyc2UgYmFja2dyb3VuZHMgYW5kIGNpcmN1bXN0YW5jZXMsIHdoaWNoIHdlIHZhbHVlIGFuZCByZWdhcmQgYXMgYSBncmVhdCBhc3NldC48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEVxdWFsaXR5IGFuZCBJbmNsdXNpb248L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQoJCQkJCTwvZGl2PgoKCQkJCQoJCQkKCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KPCEtLSAvJFdJREdFVDogbm8gMzAwNiAtIFRLIGxpbmsgbmF2IC0tPgoKCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC0zMDAwIj4KPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLXJvdy1kaXZpZGVyIj4KPGRpdiBjbGFzcz0idHdpdHRlci1mZWVkIj4gICAgCiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgogICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InR3aXR0ZXItdXNlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJ0ay1pY29uLXNvY2lhbC10d2l0dGVyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9MZWVkc1VuaUNvbXAiPkBMZWVkc1VuaUNvbXA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CjxkaXYgY2xhc3M9J2NvbC1zbS02IGNvbC1tZC00Jz4KPGRpdiBjbGFzcz0ndHdlZXQnPgo8cCBjbGFzcz0ndHdlZXQtY29udGVudCc+CiZsZHF1bztJZiB5b3UncmUgam9pbmluZyB1cyBpbiBTZXB0ZW1iZXIgYW5kIGhhdmUgcXVlc3Rpb25zIGFib3V0IHlvdXIgYXJyaXZhbCwgcGxlYXNlIHZpc2l0IG91ciBuZXcgQ29yb25hdmlydXMgd2VicGFnZS7igKYgPGEgaHJlZj0iaHR0cHM6Ly90LmNvL3Y3TEtCc2dqZnMiPnQuY28vdjdMS0JzZ2pmczwvYT4mcmRxdW87IC0gPC9wPgo8cCBjbGFzcz0ndHdlZXQtZm9vdGVyJz4yIGRheXMgYWdvPC9wPgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nY29sLXNtLTYgY29sLW1kLTQnPgo8ZGl2IGNsYXNzPSd0d2VldCc+CjxwIGNsYXNzPSd0d2VldC1jb250ZW50Jz4KJmxkcXVvO1JUIDxhIGNsYXNzPSJ1c2VyIiBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0VQb3VybmFyYXMiPkBFUG91cm5hcmFzPC9hPjogUHJvb2Ygb2YgV2l0bmVzcyBQcmVzZW5jZTogQmxvY2tjaGFpbiBjb25zZW5zdXMgZm9yIGF1Z21lbnRlZCBkZW1vY3JhY3kgaW4gU21hcnQgQ2l0aWVzLiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvcHJvb2ZvZmxvY2F0aW9uIj4jcHJvb2ZvZmxvY2F0aW9uPC9hPiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvSW9UIj4jSW9UPC9hPiBQdWJs4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby82N1FCaEpHM3JvIj50LmNvLzY3UUJoSkczcm88L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSdjb2wtc20tNiBjb2wtbWQtNCc+CjxkaXYgY2xhc3M9J3R3ZWV0Jz4KPHAgY2xhc3M9J3R3ZWV0LWNvbnRlbnQnPgombGRxdW87VGhlIDE2Mm5kIEV1cm9wZWFuIFN0dWR5IEdyb3VwIHdpdGggSW5kdXN0cnkgdGFrZXMgcGxhY2UgbmV4dCB3ZWVrIChKdWx5IDIwLTI0KSwgYnJpbmdpbmcgdG9nZXRoZXIgZGF0YSBzY2llbnRpc3Rz4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby9VS3hTckdPQkVGIj50LmNvL1VLeFNyR09CRUY8L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2PgoKCiAgICAKICAgIDxkaXYgY2xhc3M9InRlbXBsYXRlLS1ob21lcGFnZXMtc2luZ2xlLW5vc2lkZWJhciI+CiAgICAgICAgPCEtLSBFTkRDT05URU5UIFNVUFBMRU1FTlQgLS0+CgoKCjwhLS0gRU5EIE9GIEVORENPTlRFTlQgU1VQUExFTUVOVCAtLT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvd2lkZ2V0cy9qcy93aWRnZXQuanM/MTU5NTg0OTg0NCI+PC9zY3JpcHQ+CiAgICAKPGRpdj4gICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L21haW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2stdG9wIj4KICAgIDxhIGRhdGEtdG9nZ2xlPSJzY3JvbGwiIGhyZWY9IiNzaXRlLWNvbnRhaW5lciIgcmVsPSJub2ZvbGxvdyI+QmFjayB0byB0b3A8L2E+CjwvZGl2PiAgICAgICAgICAgICAgICAKCgogICAgICAgICAgICA8Zm9vdGVyIGNsYXNzPSJzaXRlLWZvb3RlciIgcm9sZT0iY29udGVudGluZm8iPgogICAgPGRpdiBjbGFzcz0ic2l0ZS1mb290ZXItdXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItcGQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci11cHBlci1sb2dvcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWN1LmFjLnVrL2VxdWFsaXR5LWNoYXJ0ZXJzL2F0aGVuYS1zd2FuLyIgdGl0bGU9IlZpc2l0IEF0aGVuYSBTV0FOIFNpbHZlciBhd2FyZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9OTYmYW1wO2g9NjAmYW1wO2ZpbGVuYW1lPWF0aGVuYV9zd2FuXzE3Nl8xMTAuanBnIiBhbHQ9IkF0aGVuYSBzd2FuIFNpbHZlciBhd2FyZCI+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9uZXdzL2FydGljbGUvNDA2NS9nb2xkX2Zvcl9sZWVkc19pbl90aGVfdGVhY2hpbmdfZXhjZWxsZW5jZV9mcmFtZXdvcmsiIHRpdGxlPSJWaXNpdCBURUYgZ29sZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTUwJmFtcDtoPTU1JmFtcDtmaWxlbmFtZT1URUZfR29sZF9sb2dvX0NNWUtfX19OZXdfMS5qcGciIGFsdD0iVEVGIGdvbGQiPjwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+U29jaWFsIG1lZGlhIGxpbmtzPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vY29tcHV0aW5nbGVlZHMvIiB0aXRsZT0iR28gdG8gRmFjZWJvb2sgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5GYWNlYm9vazwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC1mYWNlYm9vayI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vdW5pdmVyc2l0eW9mbGVlZHMvIiB0aXRsZT0iR28gdG8gSW5zdGFncmFtIHBhZ2UiPjxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+SW5zdGFncmFtPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLWluc3RhZ3JhbSI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vTGVlZHNVbmlDb21wIiB0aXRsZT0iR28gdG8gVHdpdHRlciBwYWdlIj48c3BhbiBjbGFzcz0iaWNvbi1mb250LXRleHQiPlR3aXR0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InRrLWljb24gdGstaWNvbi1zb2NpYWwtdHdpdHRlciI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaWVuZ2luZWVyaW5nIiB0aXRsZT0iR28gdG8gV2VpYm8gcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5XZWlibzwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC13ZWlibyI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3VzZXIvdW5pdmVyc2l0eW9mbGVlZHN1ayIgdGl0bGU9IkdvIHRvIFlvdVR1YmUgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5Zb3VUdWJlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLXlvdXR1YmUiPjwvc3Bhbj48L2E+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1taWRkbGUgcC10LW1kIHAtYi1tZCI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZhY3VsdHkgb2YgRW5naW5lZXJpbmcgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaGVtaWNhbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENoZW1pY2FsIGFuZCBQcm9jZXNzIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NoZW1pc3RyeSI+U2Nob29sIG9mIENoZW1pc3RyeTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaXZpbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENpdmlsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZyI+U2Nob29sIG9mIENvbXB1dGluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9lbGVjdHJvbmljLWVuZ2luZWVyaW5nIj5TY2hvb2wgb2YgRWxlY3Ryb25pYyBhbmQgRWxlY3RyaWNhbCBFbmdpbmVlcmluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9tYXRocyI+U2Nob29sIG9mIE1hdGhlbWF0aWNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL21lY2hhbmljYWwtZW5naW5lZXJpbmciPlNjaG9vbCBvZiBNZWNoYW5pY2FsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL3BoeXNpY3MiPlNjaG9vbCBvZiBQaHlzaWNzIGFuZCBBc3Ryb25vbXk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlF1aWNrbGlua3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2NvdXJzZXMubGVlZHMuYWMudWsvIj5Db3Vyc2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2pvaW4tdXMvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgaW5jbHVzaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcGhkLmxlZWRzLmFjLnVrLyI+UGhEIG9wcG9ydHVuaXRpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvc2hvcnQtY291cnNlcyI+U2hvcnQgY291cnNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9mYWN1bHR5LWVuZ2luZWVyaW5nLXBoeXNpY2FsLXNjaWVuY2VzL2RvYy9zd2p0dS1sZWVkcy1qb2ludC1lbmdpbmVlcmluZy1zY2hvb2wiPlNXSlRVLUxlZWRzIEpvaW50IFNjaG9vbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+Rm9yIHN0YWZmPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvZm9yc3RhZmYvaG9tZXBhZ2UvMzc1L3NlcnZpY2VzIj5BLVogU2VydmljZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9FbmdpbmVlcmluZy9TaXRlUGFnZXMvV2VsY29tZS10by10aGUtRW5naW5lZXJpbmctU2hhcmVQb2ludC1TaXRlLmFzcHgiPkVuZ2luZWVyaW5nIGFuZCBDb21wdXRpbmcgaW50cmFuZXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9NQVBTSW50cmFuZXQvU2l0ZVBhZ2VzL0hvbWUuYXNweCI+TWF0aGVtYXRpY3MgYW5kIFBoeXNpY2FsIFNjaWVuY2VzIGludHJhbmV0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcHJpc20ubGVlZHMuYWMudWsvIj5QZWRhZ29naWMgUmVzZWFyY2ggaW4gTWF0aHMgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2ZhY3VsdHktZW5naW5lZXJpbmctcGh5c2ljYWwtc2NpZW5jZXMvZG9jL3RlYWNoaW5nLWxlYXJuaW5nLWVuZ2luZWVyaW5nLW5ldHdvcmstdGFsZW50Ij5UZWFjaGluZyBBbmQgTGVhcm5pbmcgRW5naW5lZXJpbmcgTmVUd29yazwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvciBzdHVkZW50czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vc3R1ZGVudHMubGVlZHMuYWMudWsvIj5Gb3IgU3R1ZGVudHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9taW5lcnZhLmxlZWRzLmFjLnVrLyI+TWluZXJ2YTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+VW5pdmVyc2l0eSBsaW5rczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby81MDAwL2Fib3V0LzEzMS9maW5kX3VzIj5GaW5kIHVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTQwMDAvam9icyI+Sm9iczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2hvbWVwYWdlLzE3L2FjYWRlbWljX3llYXIiPlRlcm0gZGF0ZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlNpdGUgbWFwPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzLyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2V2ZW50cy8iPkV2ZW50czwvYT48L2xpPiAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9zdHVkZW50LWFuZC1hbHVtbmktcHJvZmlsZXMvIj5TdHVkZW50IGFuZCBhbHVtbmkgcHJvZmlsZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3Nob3J0LWNvdXJzZXMvIj5TaG9ydCBjb3Vyc2VzPC9hPjwvbGk+ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3NjaG9sYXJzaGlwcy8iPlNjaG9sYXJzaGlwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3N0YWZmbGlzdC8iPlN0YWZmIGxpc3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1sb3dlciI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiI+CiAgICAgICAgICAgICAgICAgICAgPGxpPiZjb3B5OyAyMDIwIFVuaXZlcnNpdHkgb2YgTGVlZHMsIExlZWRzLCBMUzIgOUpUPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvdGVybXNhbmRjb25kaXRpb25zIj5UZXJtcyBhbmQgY29uZGl0aW9uczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay9hY2Nlc3NpYmlsaXR5Ij5BY2Nlc3NpYmlsaXR5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3ByaXZhY3kiPlByaXZhY3kgYW5kIGNvb2tpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvZm9pIj5GcmVlZG9tIG9mIGluZm9ybWF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L25hdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvb3Rlcj4KCiAgICAgICAgPC9kaXY+PCEtLSAvJFNJVEUtQ09OVEFJTkVSLS0+CgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgR0FMQVhZX1NIT1JUQ1VUID0gIi9lcHMiO3ZhciBQUk9UT0NPTCA9ICJodHRwczovLyI7dmFyIERPTUFJTiA9ICJlcHMubGVlZHMuYWMudWsiO3ZhciBTRUNVUkVfU0VSVkVSID0gImh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjt2YXIgU0VDVVJFX0pBRFVfUEFUSCA9ICJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2Vwcy9qYWR1Ijt2YXIgVVNFX1RBWE9OT01ZID0gIiI7dmFyIEFTU0lHTl9BRE1JTklTVFJBVE9SX1ZJRVcgPSAiZmFsc2UiO3ZhciBUQVhPTk9NWV9OQU1FID0gIklQU1YiO3ZhciBCRVNQT0tFX0NBVEVHT1JZX0xJU1RfTkFNRSA9ICJHYWxheGllc0NMIjt2YXIgaXNfSUlTID0gIiI7dmFyIEVESVRPUl9JTUFHRV9QQVNURSA9ICIxIjt2YXIgTE9DQUxfRkVfRE9NQUlOID0gImVwcy5sZWVkcy5hYy51ayI7dmFyIFNFQ1VSRV9CTE9HX1BBVEggPSAiIjt2YXIgREFURV9JTlBVVF9EQVlfTU9OVEhfT1JERVIgPSAiIjt2YXIgTE9DQUxfRE9NQUlOUyA9IG5ldyBBcnJheSgpO0xPQ0FMX0RPTUFJTlNbMF0gPSAicHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjs8L3NjcmlwdD48c2NyaXB0PnZhciBBSkFYX05FV1NfRVZFTlRTID0gIi9zaXRlL2FqYXgvYWpheC1uZXdzLWV2ZW50cy5waHAiOyB2YXIgQUpBWF9SRVNfT1BQUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9yZXNlYXJjaC1vcHBvcnR1bml0aWVzLWluZGV4LnBocCI7IHZhciBTRUFSQ0hfUkVTVUxUUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9zZWFyY2gtcmVzdWx0cy5waHAiOzwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjExLjMubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9zY3JpcHQubWluLmpzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9qYWR1L2Rldi5taW4uanM/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9jb29raWVzLm1pbi5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmKHR5cGVvZiBjb29raWVDb25zZW50ICE9PSAidW5kZWZpbmVkIil7CiAgICAgICAgLy9Db29raWVzIGNvbXBsaWFuY2UKICAgICAgICBjb29raWVDb25zZW50LmluaXQoewogICAgICAgICAgICB1cmw6ICcvL2Vwcy5sZWVkcy5hYy51ay9wcml2YWN5LycsCiAgICAgICAgICAgIGdvb2dsZTogdHJ1ZSwKICAgICAgICAgICAgZmFjZWJvb2s6IHRydWUKICAgICAgICB9KTsKICAgIH0KPC9zY3JpcHQ+CiAgICAgICAgICAgIDwvYm9keT4KPC9odG1sPgo=\"}]}"},{"id":1887,"title":"Graceful Graph: Wichmann Rulers","description":"This Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Graceful Graph Contest\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\r\n\r\nAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003chttp://oeis.org/A193802 Optimal Wichmann Ruler\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\r\n\r\nThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\r\n\r\nFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\r\n\r\n*Input:* P  (Number of Points on the ruler)\r\n\r\n*Output:* S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\r\n\r\n*Notes:*\r\n\r\n  1) A W(r,s) does not guarantee all deltas can be generated\r\n  2) For any P there are multiple W(r,s) solutions \r\n  3) P=5 solution is 9, readily solved by brute force\r\n  4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n  5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun ","description_html":"\u003cp\u003eThis Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003eGraceful Graph Contest\u003c/a\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\u003c/p\u003e\u003cp\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003ca href = \"http://oeis.org/A193802\"\u003eOptimal Wichmann Ruler\u003c/a\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\u003c/p\u003e\u003cp\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\u003c/p\u003e\u003cp\u003eFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e P  (Number of Points on the ruler)\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1) A W(r,s) does not guarantee all deltas can be generated\r\n2) For any P there are multiple W(r,s) solutions \r\n3) P=5 solution is 9, readily solved by brute force\r\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun \r\n\u003c/pre\u003e","function_template":"function s=Graceful_Wichmann(n)\r\n  s=0;\r\nend","test_suite":"%%\r\ntic\r\nn=17;\r\nexp=101;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=19;\r\nexp=123;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=23;\r\nexp=183;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=29;\r\nexp=289;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=31;\r\nexp=327;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=37;\r\nexp=465;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=41;\r\nexp=573;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=43;\r\nexp=627;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=47;\r\nexp=751;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=53;\r\nexp=953;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=59;\r\nexp=1179;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=61;\r\nexp=1257;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=67;\r\nexp=1515;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=71;\r\nexp=1703;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=73;\r\nexp=1797;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=79;\r\nexp=2103;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=83;\r\nexp=2323;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=89;\r\nexp=2669;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=97;\r\nexp=3165;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-23T01:30:25.000Z","updated_at":"2013-09-23T13:04:40.000Z","published_at":"2013-09-23T04:00:18.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u0026gt;13. This Challenge is related to the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u0026gt;13.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points. An\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://oeis.org/A193802\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOptimal Wichmann Ruler\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u0026gt;=0 and integer).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e P (Number of Points on the ruler)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNotes:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[1) A W(r,s) does not guarantee all deltas can be generated\\n2) For any P there are multiple W(r,s) solutions \\n3) P=5 solution is 9, readily solved by brute force\\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":54074,"title":"Determining if a Degree Sequence is Potentially a Graph","description":"A degree sequence is a list of numbers representing the degrees of vertices in a graph. While it is difficult to tell if a graph can be made from a degree sequence, there are some ways to tell for certain that a graph does not exist with a given degree sequence. One easy first check is the following: \r\nFirst, sort the degree sequence in descending order. Next, pop the first degree off the list and subtract one from the next N elements, where N is the degree you popped off. Repeat until the list is empty. If at any point a degree in the list is less than 0 or if there are not N elements left in the list to subtract from, there is no graph that exists with that degree sequence.\r\nWrite a function is_graph that returns true if this algorithm results in an empty list or false if it fails at any point.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(232, 230, 227); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(232, 230, 227); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 166.5px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 83.25px; transform-origin: 407px 83.25px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.783px 8px; transform-origin: 376.783px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA degree sequence is a list of numbers representing the degrees of vertices in a graph. While it is difficult to tell if a graph can be made from a degree sequence, there are some ways to tell for certain that a graph does not exist with a given degree sequence. One easy first check is the following: \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 379.867px 8px; transform-origin: 379.867px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFirst, sort the degree sequence in descending order. Next, pop the first degree off the list and subtract one from the next N elements, where N is the degree you popped off. Repeat until the list is empty. If at any point a degree in the list is less than 0 or if there are not N elements left in the list to subtract from, there is no graph that exists with that degree sequence.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 22.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 11.25px; text-align: left; transform-origin: 384px 11.25px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 50.4333px 8px; transform-origin: 50.4333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 37.8px 8px; transform-origin: 37.8px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 37.8px 8.5px; transform-origin: 37.8px 8.5px; \"\u003eis_graph \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 259.8px 8px; transform-origin: 259.8px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ethat returns true if this algorithm results in an empty list or false if it fails at any point.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = is_graph(x)\r\n  % Run algorithm\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [1 1];\r\ny_correct = 1;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [1 1 3];\r\ny_correct = 0;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [15 3 6];\r\ny_correct = 0;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [5 4 1 1 1 1];\r\ny_correct = 0;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n%%\r\nx = [5 7 2 2 3 3 2 2];\r\ny_correct = 1;\r\nassert(isequal(is_graph(x),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":2052130,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-03-03T20:12:17.000Z","updated_at":"2025-06-25T20:01:28.000Z","published_at":"2022-03-03T20:12:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA degree sequence is a list of numbers representing the degrees of vertices in a graph. While it is difficult to tell if a graph can be made from a degree sequence, there are some ways to tell for certain that a graph does not exist with a given degree sequence. One easy first check is the following: \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFirst, sort the degree sequence in descending order. Next, pop the first degree off the list and subtract one from the next N elements, where N is the degree you popped off. Repeat until the list is empty. If at any point a degree in the list is less than 0 or if there are not N elements left in the list to subtract from, there is no graph that exists with that degree sequence.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eis_graph \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003ethat returns true if this algorithm results in an empty list or false if it fails at any point.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":2732,"title":"Construct a precedence graph from a code segment","description":"A hypothetical MATLAB code segment containing n lines is given in the form of a cell array. The i-th cell contains the i-th line of the code. Each of the lines contains simple arithmetic expressions.\r\n\r\nNow, construct an adjacency matrix of a graph containing n-vertices. The i-th vertex will represent the i-th line of the code. There should be a directed edge from i-th vertex to j-th vertex only if the values generated at i-th line are used in the j-th line.\r\n\r\nAll the variables in the code will have single letter names (e.g.: a,b,x,y etc).\r\n\r\nExample:\r\n\r\n  C = {'a=1;'\r\n       'b=1;'\r\n       'c=a+b;'\r\n       'c=c+1;'};\r\n\r\nHere, the cell array C contains a code segment. The first two lines are independent in the sense that they do not use values generated at any other lines. The third line uses information generated at line 1 and 2. The fourth line uses information generated at line 1,2 and 3.\r\n\r\nThus the resulting adjacency matrix will be as follows:\r\n\r\n  \r\n  mat = [0 0 1 1;\r\n         0 0 1 1;\r\n         0 0 0 1;\r\n         0 0 0 0];\r\n\r\n\r\n\r\n\r\nDefinition of adjacency matrix:\r\n\u003chttp://en.wikipedia.org/wiki/Adjacency_matrix\u003e","description_html":"\u003cp\u003eA hypothetical MATLAB code segment containing n lines is given in the form of a cell array. The i-th cell contains the i-th line of the code. Each of the lines contains simple arithmetic expressions.\u003c/p\u003e\u003cp\u003eNow, construct an adjacency matrix of a graph containing n-vertices. The i-th vertex will represent the i-th line of the code. There should be a directed edge from i-th vertex to j-th vertex only if the values generated at i-th line are used in the j-th line.\u003c/p\u003e\u003cp\u003eAll the variables in the code will have single letter names (e.g.: a,b,x,y etc).\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eC = {'a=1;'\r\n     'b=1;'\r\n     'c=a+b;'\r\n     'c=c+1;'};\r\n\u003c/pre\u003e\u003cp\u003eHere, the cell array C contains a code segment. The first two lines are independent in the sense that they do not use values generated at any other lines. The third line uses information generated at line 1 and 2. The fourth line uses information generated at line 1,2 and 3.\u003c/p\u003e\u003cp\u003eThus the resulting adjacency matrix will be as follows:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003emat = [0 0 1 1;\r\n       0 0 1 1;\r\n       0 0 0 1;\r\n       0 0 0 0];\r\n\u003c/pre\u003e\u003cp\u003eDefinition of adjacency matrix: \u003ca href = \"http://en.wikipedia.org/wiki/Adjacency_matrix\"\u003ehttp://en.wikipedia.org/wiki/Adjacency_matrix\u003c/a\u003e\u003c/p\u003e","function_template":"function y = pGraph(x)\r\n\r\n\r\n\r\n\r\nend","test_suite":"%%\r\nC = {'a=1;'\r\n     'b=1;'\r\n     'c=a+b;'\r\n     'c=c+1;'};\r\nmat = [0 0 1 1;\r\n       0 0 1 1;\r\n       0 0 0 1;\r\n       0 0 0 0];\r\nassert(isequal(pGraph(C),mat))\r\n\r\n\r\n\r\n%%\r\nC = {'a=1;'\r\n     'a=1;'\r\n     'c=1;'\r\n     'c=1;'};\r\nmat = [0 0 0 0;\r\n       0 0 0 0;\r\n       0 0 0 0;\r\n       0 0 0 0];\r\nassert(isequal(pGraph(C),mat))\r\n\r\n%%\r\nC = {'a=1;'\r\n     'a=1;'\r\n     'c=a+1;'\r\n     'c=a+1;'};\r\nmat = [0 0 0 0;\r\n       0 0 1 1;\r\n       0 0 0 0;\r\n       0 0 0 0];\r\nassert(isequal(pGraph(C),mat))\r\n\r\n%%\r\nC = {'a=1;'\r\n     'b=a+2;'\r\n     'c=b+1;'\r\n     'd=c+1;'};\r\nmat = double(~tril(ones(4)))\r\nassert(isequal(pGraph(C),mat))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":17203,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2014-12-06T07:56:27.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-12-06T07:54:40.000Z","updated_at":"2024-11-02T13:28:43.000Z","published_at":"2014-12-06T07:54:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA hypothetical MATLAB code segment containing n lines is given in the form of a cell array. The i-th cell contains the i-th line of the code. Each of the lines contains simple arithmetic expressions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow, construct an adjacency matrix of a graph containing n-vertices. The i-th vertex will represent the i-th line of the code. There should be a directed edge from i-th vertex to j-th vertex only if the values generated at i-th line are used in the j-th line.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAll the variables in the code will have single letter names (e.g.: a,b,x,y etc).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[C = {'a=1;'\\n     'b=1;'\\n     'c=a+b;'\\n     'c=c+1;'};]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere, the cell array C contains a code segment. The first two lines are independent in the sense that they do not use values generated at any other lines. The third line uses information generated at line 1 and 2. The fourth line uses information generated at line 1,2 and 3.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThus the resulting adjacency matrix will be as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[mat = [0 0 1 1;\\n       0 0 1 1;\\n       0 0 0 1;\\n       0 0 0 0];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDefinition of adjacency matrix:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Adjacency_matrix\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://en.wikipedia.org/wiki/Adjacency_matrix\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1886,"title":"Graceful Double Wheel Graph","description":"\u003chttp://en.wikipedia.org/wiki/Graceful_labeling Graceful Graphs\u003e are the topic of the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Primes Graceful Graph Contest\u003e , 21 September 2013 thru 21 December 2013.\r\n\r\nThis Challenge is to create \u003chttp://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html Graceful Double Wheel Graphs\u003e for various N. A \u003chttp://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf General Algorithm by Le Bras of Cornell\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003chttp://oeis.org/A004137 OEIS A004137\u003e.\r\n\r\n*Example:*\r\nOne solution for N=11:\r\n\r\n\u003c\u003chttp://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\u003e\u003e\r\n\r\nwhich could be answered as [1 3 14 6 19;20 5 17 7 16].\r\n\r\nThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\r\n\r\n*Input:* N [Total number of Nodes (odd) and N\u003e10 ]\r\n\r\n*Output:* M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Graceful_labeling\"\u003eGraceful Graphs\u003c/a\u003e are the topic of the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003ePrimes Graceful Graph Contest\u003c/a\u003e , 21 September 2013 thru 21 December 2013.\u003c/p\u003e\u003cp\u003eThis Challenge is to create \u003ca href = \"http://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\"\u003eGraceful Double Wheel Graphs\u003c/a\u003e for various N. A \u003ca href = \"http://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\"\u003eGeneral Algorithm by Le Bras of Cornell\u003c/a\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003ca href = \"http://oeis.org/A004137\"\u003eOEIS A004137\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e\r\nOne solution for N=11:\u003c/p\u003e\u003cimg src = \"http://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\"\u003e\u003cp\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\u003c/p\u003e\u003cp\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e N [Total number of Nodes (odd) and N\u003e10 ]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\u003c/p\u003e","function_template":"function m=double_wheel(n)\r\n  m=[];\r\nend","test_suite":"%%\r\ntic\r\nn=11;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=13;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=17;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=19;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=71;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=97;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-21T23:15:03.000Z","updated_at":"2013-09-22T01:16:42.000Z","published_at":"2013-09-22T01:16:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Graceful_labeling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e are the topic of the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePrimes Graceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e , 21 September 2013 thru 21 December 2013.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to create\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Double Wheel Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e for various N. A\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Algorithm by Le Bras of Cornell\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://oeis.org/A004137\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A004137\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e One solution for N=11:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20. The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e N [Total number of Nodes (odd) and N\u0026gt;10 ]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,PCFET0NUWVBFIGh0bWw+CjwhLS1baWYgSUUgOF0+PGh0bWwgY2xhc3M9Im5vLWpzIGx0LWllOSIgbGFuZz0iZW4iPjwhW2VuZGlmXS0tPgo8IS0tW2lmIElFIDldPjxodG1sIGNsYXNzPSJuby1qcyBpZTkiIGxhbmc9ImVuIj48IVtlbmRpZl0tLT4KPCEtLVtpZiBndCBJRSA4XT48IS0tPgo8aHRtbCBjbGFzcz0ibm8tanMiIGxhbmc9ImVuIj48IS0tPCFbZW5kaWZdLS0+CiAgICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KPCEtLSBSZW1vdmUgYXV0byBudW1iZXIgbGlua2luZy0tPgo8bWV0YSBuYW1lPSJmb3JtYXQtZGV0ZWN0aW9uIiBjb250ZW50PSJ0ZWxlcGhvbmU9bm8iPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9Imh0dHA6Ly93d3cuamFkdS5jby51ayIgLz4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCxmb2xsb3ciIC8+CjxtZXRhIG5hbWU9InJldmlzaXQtYWZ0ZXIiIGNvbnRlbnQ9IjIgZGF5cyIgLz4KPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyIgLz4KPG1ldGEgbmFtZT0icHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiAvPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgoKCjxsaW5rIHJlbD0ic2NoZW1hLmRjdGVybXMiIGhyZWY9Imh0dHBzOi8vcHVybC5vcmcvZGMvdGVybXMvIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLmNyZWF0b3IiIGNvbnRlbnQ9IlZpY3RvcmlhIFByaWNlIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jcmVhdGVkIiBjb250ZW50PSIyMDE5LTA1LTE3IiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5tb2RpZmllZCIgY29udGVudD0iMjAxOS0wNS0xNyIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5mb3JtYXQiIGNvbnRlbnQ9InRleHQvaHRtbCIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuaWRlbnRpZmllciIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5sYW5ndWFnZSIgY29udGVudD0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMucHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5yaWdodHMiIGNvbnRlbnQ9IkNvcHlyaWdodCBVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jb3ZlcmFnZSIgY29udGVudD0iVUsiIGxhbmc9ImVuIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLnRpdGxlIiBjb250ZW50PSJTY2hvb2wgb2YgQ29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iRGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnkiIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9IiIgLz4KCgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAtLT4KPHNjcmlwdD4oZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdbbF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6Cm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSwKaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CidodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9JytpK2RsO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTsKfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCdHVE0tV0pQWk0yVCcpOzwvc2NyaXB0Pgo8IS0tIEVuZCBHb29nbGUgVGFnIE1hbmFnZXIgLS0+Cgo8dGl0bGU+ICAgIFNjaG9vbCBvZiBDb21wdXRpbmcgfCAgVW5pdmVyc2l0eSBvZiBMZWVkcwo8L3RpdGxlPgoKPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC95b3M2dW93LmNzcyI+Cgo8IS0tIEluY2x1ZGUgSlMgLS0+CjxzY3JpcHQgc3JjPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvbW9kZXJuaXpyLWN1c3RvbS5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KCjwhLS0gSW5jbHVkZSBGYXZpY29uIC0tPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy9mYXZpY29uLmljbyIgLz4KCjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Jvb3RzdHJhcC5taW4uY3NzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSJzY3JlZW4iPgo8bGluayBocmVmPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvdGhlbWUtZGVmYXVsdC90b29sa2l0Lm1pbi5jc3M/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9InNjcmVlbiI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Nvb2tpZXMubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0ic2NyZWVuIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L3RoZW1lLWRlZmF1bHQvcHJpbnQubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhJyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiPgogICAgICAgIDwvaGVhZD4KICAgIDxib2R5IGNsYXNzPSJlcHMiPgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgo8bm9zY3JpcHQ+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0bWw/aWQ9R1RNLVdKUFpNMlQiCmhlaWdodD0iMCIgd2lkdGg9IjAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7dmlzaWJpbGl0eTpoaWRkZW4iPjwvaWZyYW1lPjwvbm9zY3JpcHQ+CjwhLS0gRW5kIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgogICAgICAgIDxkaXYgaWQ9InNpdGUtY29udGFpbmVyIiBjbGFzcz0ic2l0ZS1jb250YWluZXItbWQiPgogICAgICAgICAgICA8YSBpZD0ic2tpcC1tYWluIiBocmVmPSIjbWFpbiIgcmVsPSJub2ZvbGxvdyI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2E+CjxkaXYgY2xhc3M9InF1aWNrbGlua3Mtb3V0ZXIiPgoKICAgIDxkaXYgY2xhc3M9Im1hc3RoZWFkLWxpbmtzIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXN0aGVhZC1saW5rIG1hc3RoZWFkLWxpbmstcXVpY2tsaW5rcyBqcy1xdWlja2xpbmtzLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI3F1aWNrbGlua3MiIGFyaWEtbGFiZWw9Ik9wZW4gVW5pdmVyc2l0eSBxdWlja2xpbmtzIG1lbnUiPlVuaXZlcnNpdHkgbGlua3M8L2J1dHRvbj4KICAgIDwvZGl2PiAgIAoKICAgIDxuYXYgaWQ9InF1aWNrbGlua3MiIGNsYXNzPSJxdWlja2xpbmtzIGNvbGxhcHNlIiByb2xlPSJuYXZpZ2F0aW9uIj4gICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVpY2tsaW5rcy1pbm5lciI+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3RhZmY8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi9ob21lcGFnZS8zNzUvc2VydmljZXMiPkEtWiBTZXJ2aWNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi8iPkZvciBTdGFmZjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3Nlcy5sZWVkcy5hYy51ay8iPlN0dWRlbnQgRWR1Y2F0aW9uIFNlcnZpY2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3R1ZGVudHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3N0dWRlbnRzLmxlZWRzLmFjLnVrLyI+Rm9yIFN0dWRlbnRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWluZXJ2YS5sZWVkcy5hYy51ay8iPk1pbmVydmE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdD9pZD1rYl9hcnRpY2xlJmFtcDtzeXNwYXJtX2FydGljbGU9S0IwMDExOTQ4Ij5Nb2JpbGUgYXBwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+RmFjdWx0aWVzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9haGMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEFydHMsIEh1bWFuaXRpZXMgYW5kIEN1bHR1cmVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYmlvbG9naWNhbHNjaWVuY2VzLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBCaW9sb2dpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEJ1c2luZXNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vudmlyb25tZW50LmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVudmlyb25tZW50PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaWNpbmVoZWFsdGgubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIE1lZGljaW5lIGFuZCBIZWFsdGg8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lc3NsLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBTb2NpYWwgU2NpZW5jZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGxjLmxlZWRzLmFjLnVrLyI+TGlmZWxvbmcgTGVhcm5pbmcgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTY3L2xhbmd1YWdlX2NlbnRyZSI+TGFuZ3VhZ2UgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5PdGhlcjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvc3RhZmZheiI+QS1aIFN0YWZmPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY29udGFjdCI+Q29udGFjdHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdCI+SVQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9qb2JzIj5Kb2JzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmx1dS5vcmcudWsvIj5MZWVkcyBVbml2ZXJzaXR5IFVuaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbGlicmFyeS5sZWVkcy5hYy51ay8iPkxpYnJhcnk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvbGxvdyB1czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS91bml2ZXJzaXR5b2ZsZWVkcyI+RmFjZWJvb2s8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbnN0YWdyYW0uY29tL3VuaXZlcnNpdHlvZmxlZWRzLyI+SW5zdGFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9zY2hvb2wvdW5pdmVyc2l0eS1vZi1sZWVkcy8iPkxpbmtlZEluPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS91bml2ZXJzaXR5LW9mLWxlZWRzIj5NZWRpdW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIGh0dHBzOi8vdGhlY29udmVyc2F0aW9uLmNvbS9pbnN0aXR1dGlvbnMvdW5pdmVyc2l0eS1vZi1sZWVkcy0xMTIyIj5UaGUgQ29udmVyc2F0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vdW5pdmVyc2l0eWxlZWRzIj5Ud2l0dGVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaXZlcnNpdHl1ayI+V2VpYm88L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdW5pdmVyc2l0eW9mbGVlZHMiPllvdVR1YmU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrbGlua3MtY2xvc2UiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IGJ0bi1pY29uIGpzLXF1aWNrbGlua3MtY2xvc2UiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNxdWlja2xpbmtzIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGstaWNvbi1jbG9zZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5DbG9zZSBxdWlja2xpbmtzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9uYXY+Cgo8L2Rpdj4KPCEtLSAkTUFTVEhFQUQtLT4KPGhlYWRlciBpZD0ibWFzdGhlYWQiIGNsYXNzPSJtYXN0aGVhZCIgcm9sZT0iYmFubmVyIj4KCiAgICA8ZGl2IGNsYXNzPSJuYXZpY29uIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4taWNvbiIgZGF0YS1zdGF0ZT0iYm9keS1zdGF0ZSIgZGF0YS1jbGFzcz0ic3RhdGUtbmF2aWNvbi1hY3RpdmUiPk1lbnU8L2J1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9ImxvZ28tZnVsbCIgdGl0bGU9IlVuaXZlcnNpdHkgb2YgTGVlZHMgaG9tZXBhZ2UiIGhyZWY9Ii8vd3d3LmxlZWRzLmFjLnVrLyI+CiAgICAgICAgICAgIDxpbWcgY2xhc3M9ImpzLXBuZy1zdmctdXJpIiBkYXRhLXVyaT0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5wbmciIGFsdD0iVW5pdmVyc2l0eSBvZiBMZWVkcyBsb2dvIj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJsb2dvLW1hcmsiIHRpdGxlPSJVbml2ZXJzaXR5IG9mIExlZWRzIGhvbWVwYWdlIiBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay8iPgogICAgICAgICAgICA8aW1nIGNsYXNzPSJqcy1wbmctc3ZnLXVyaSIgZGF0YS11cmk9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9pbWcvdW9sLWxvZ28tbWFyay5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby1tYXJrLnBuZyIgYWx0PSJVbml2ZXJzaXR5IG9mIExlZWRzIGxvZ28iPgogICAgICAgIDwvYT4KICAgIDwvZGl2PgoKPC9oZWFkZXI+CjwhLS0gLyRNQVNUSEVBRC0tPgo8IS0tICRTSVRFU0VBUkNILS0+CjxkaXYgaWQ9InNpdGVzZWFyY2giIGNsYXNzPSJzaXRlLXNlYXJjaCBjb2xsYXBzZSI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXh4cyI+CiAgICAgICAgPGZvcm0gY2xhc3M9InNpdGUtc2VhcmNoLWlubmVyIiBhY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIiByb2xlPSJzZWFyY2giPgogICAgICAgICAgICA8aW5wdXQgaWQ9ImNpZCIgbmFtZT0iY2lkIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxOTAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNyLW9ubHkiIGZvcj0ic2VhcmNoSW5wdXQiPlNlYXJjaDwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCBpZD0ic2VhcmNoSW5wdXQiIGNsYXNzPSJzaXRlLXNlYXJjaC1pbnB1dCIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxdWVyeSIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgYXV0b2NvbXBsZXRlPSJvZmYiPgoKICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzci1vbmx5IiBmb3I9InNlYXJjaE9wdGlvbiI+RGVzdGluYXRpb248L2xhYmVsPgoKICAgICAgICAgICAgPHNlbGVjdCBpZD0ic2VhcmNoT3B0aW9uIiBjbGFzcz0ic2l0ZS1zZWFyY2gtc2VsZWN0IGpzLWFjdGlvbi10b2dnbGUiIG5hbWU9InNlYXJjaE9wdGlvbiI+CgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic2VhcmNoU2l0ZSIgc2VsZWN0ZWQgZGF0YS1hY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBzaXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzZWFyY2hBbGwiIGRhdGEtYWN0aW9uPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL3NlYXJjaC1yZXN1bHRzLnBocCI+QWxsIGxlZWRzLmFjLnVrIHNpdGVzPC9vcHRpb24+CgogICAgICAgICAgICAgICAgPCEtLTxvcHRncm91cCBsYWJlbD0iVG9vbGtpdCBjb3Vyc2VzIj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVRyIgZGF0YS1hY3Rpb249Ii8vY291cnNlcy5sZWVkcy5hYy51ay9jb3Vyc2Utc2VhcmNoIj5VbmRlcmdyYWR1YXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUEdUIiBkYXRhLWFjdGlvbj0iLy9jb3Vyc2VzLmxlZWRzLmFjLnVrL2NvdXJzZS1zZWFyY2giPlBvc3RncmFkdWF0ZSB0YXVnaHQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQR1IiIGRhdGEtYWN0aW9uPSIvL2NvdXJzZXMubGVlZHMuYWMudWsvY291cnNlLXNlYXJjaCI+UG9zdGdyYWR1YXRlIHJlc2VhcmNoPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L29wdGdyb3VwPi0tPgoKICAgICAgICAgICAgPC9zZWxlY3Q+CgogICAgICAgICAgICA8aW5wdXQgY2xhc3M9InNpdGUtc2VhcmNoLXN1Ym1pdCBidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCI+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kU0lURVNFQVJDSC0tPgo8ZGl2IGlkPSJxdWlja3NlYXJjaCIgY2xhc3M9IndyYXBwZXItbGcgd3JhcHBlci1wZCB3cmFwcGVyLXJlbGF0aXZlIj4KICAgIDxkaXYgY2xhc3M9InF1aWNrLXNlYXJjaCI+CgogICAgPC9kaXY+CjwvZGl2PjwhLS0gJExPQ0FMSEVBREVSLS0+CjxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXhzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItaW5uZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItdGl0bGUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9IkhvbWUgcGFnZSBsaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5TY2hvb2wgb2YgQ29tcHV0aW5nPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlci1zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IHNtLXRvZ2dsZS1zZWFyY2ggYnRuLWljb24ganMtc2l0ZS1zZWFyY2gtdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjc2l0ZXNlYXJjaCIgcm9sZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJPcGVuIHNpdGUgc2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2l0ZS1zZWFyY2gtYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+U2VhcmNoPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kTE9DQUxIRUFERVItLT4KPG5hdiBpZD0idGstbmF2LXByaW9yaXR5IiBjbGFzcz0idGstbmF2IHRrLW5hdi1wcmlvcml0eSIgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1uYXYtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWljb24gYnRuLW1lbnUiIGRhdGEtc3RhdGU9ImJvZHktc3RhdGUiIGRhdGEtY2xhc3M9InN0YXRlLW5hdmljb24tYWN0aXZlIj5DbG9zZTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRrLW5hdi1pbm5lciI+CiAgICAgICAgICA8dWwgY2xhc3M9InRrLW5hdi1saXN0IHRrLW5hdi1saXN0LXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRrLW5hdi1kcm9wZG93biB0ay1uYXYtZHJvcGRvd24tLWl0ZW1zLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2Ryb3BfMDEiIHJlbD0ibm9mb2xsb3ciPlN0dWR5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgaWQ9ImRyb3BfMDEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXVuZGVyZ3JhZHVhdGUiPlVuZGVyZ3JhZHVhdGU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyI+TWFzdGVyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1yZXNlYXJjaC1kZWdyZWVzIj5SZXNlYXJjaCBkZWdyZWVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPlJlc2VhcmNoIGFuZCBJbm5vdmF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL3N0YWZmbGlzdCI+UGVvcGxlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9jb250YWN0LXVzLTQiPkNvbnRhY3QgdXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9uYXY+CiAgICAgICAgICAgIDxtYWluIGlkPSJtYWluIiBjbGFzcz0ibWFpbiIgcm9sZT0ibWFpbiI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IAogICAgPGgxIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPlNjaG9vbCBvZiBDb21wdXRpbmc8L2gxPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDEgLSBUSyBiYW5uZXIgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDAxIHdpZGdldC1iYW5uZXIgIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyIHN3aXBlci0xIHN3aXBlci1mdWxsLXdpZHRoIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNsaWRlLWhlYWRpbmciIGRhdGEtY2hhci1saW1pdD0iNzUiPkNsZWFyaW5nIDIwMjA8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzbGlkZS1sZWFkIiBkYXRhLWNoYXItbGltaXQ9IjIwMCI+Sm9pbiBhIHdvcmxkIHRvcCAxMDAgdW5pdmVyc2l0eTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz03OTgmYW1wO2g9Mzk5JmFtcDtmaWxlbmFtZT1DbGVhcmluZ18yMDIwLnBuZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9Nzk4JmFtcDtoPTM5OSZhbXA7ZmlsZW5hbWU9Q2xlYXJpbmdfMjAyMC5wbmcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IkNsZWFyaW5nIDIwMjAiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5TdGFydCB5b3VyIGNvdXJzZSBpbiBTZXB0ZW1iZXIgb3IgSmFudWFyeTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz0xMjAwJmFtcDtoPTYwMCZhbXA7ZmlsZW5hbWU9MTIwMHg2MDBfY29tcF9scl8yLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTIwMCZhbXA7aD02MDAmYW1wO2ZpbGVuYW1lPTEyMDB4NjAwX2NvbXBfbHJfMi5qcGcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IlNjaG9vbCBvZiBDb21wdXRpbmciPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5DZW50cmVzIGZvciBEb2N0b3JhbCBUcmFpbmluZzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5UcmFpbmluZyB0b21vcnJvdydzIGxlYWRpbmcgcmVzZWFyY2hlcnMgdG8gYWRkcmVzcyBwcm9ibGVtcyBmb3IgdGhlIGJlbmVmaXRzIG9mIHNvY2lldHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InNsaWRlLWN0YSIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMvZG9jL2NlbnRyZXMtZG9jdG9yYWwtdHJhaW5pbmciPk1vcmU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlLWltZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTE0MDAmYW1wO2g9NzAwJmFtcDtmaWxlbmFtZT1DRFRoZXJvLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTQwMCZhbXA7aD03MDAmYW1wO2ZpbGVuYW1lPUNEVGhlcm8uanBnJmFtcDtqcGVncXVhbGl0eT04NSIgYWx0PSJTdHVkZW50IHdvcmtpbmcgYXQgY29tcHV0ZXIiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcy9kb2MvY2VudHJlcy1kb2N0b3JhbC10cmFpbmluZyI+TW9yZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InN3aXBlci1uYXYgc3dpcGVyLW5hdi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9IiNzbGlkZTAiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzAnPkNsZWFyaW5nIDIwMjA8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48YSBocmVmPSIjc2xpZGUxIiByZWw9Im5vZm9sbG93IiBkYXRhLXNsaWRlPScxJz5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGkgPjxhIGhyZWY9IiNzbGlkZTIiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzInPkZ1bGx5IGZ1bmRlZCBwaGRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgo8YSBjbGFzcz0ianMtc3dpcGVyLXNjcm9sbCBzd2lwZXItbW9yZSIgaHJlZj0iI2Rvd24iIHJlbD0ibm9mb2xsb3ciPlNjcm9sbCBkb3duPC9hPgo8L2Rpdj4KCgo8L2Rpdj4KPCEtLSAvJFdJREdFVCAzMDAxIC0gVEsgYmFubmVyIC0tPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDQgVEsgY29udGVudCAtLT4NCjxkaXYgY2xhc3M9IndpZGdldC0zMDA0Ij4NCiAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ic2tpbi1yb3ctd2hpdGUgY29udGFpbmVyLXJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iaDItbGcgaGVhZGluZy11bmRlcmxpbmUiPkNvcm9uYXZpcnVzIChjb3ZpZC0xOSk8L2gyPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImphZHUtY21zIj48cD5XZSBrbm93IHRoYXQgbWFueSBwZW9wbGUgYXJlIHVuZGVyc3RhbmRhYmx5IGFueGlvdXMgYWJvdXQgdGhlIGN1cnJlbnQgY29yb25hdmlydXMgb3V0YnJlYWsuIElmIHlvdSYjMzk7cmUgYW48cz4gPC9zPmFwcGxpY2FudCBvciBvZmZlciBob2xkZXIgZm9yIGEgdGF1Z2h0IGNvdXJzZSBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTYwMDAvdW5kZXJncmFkdWF0ZS84MDIvY29yb25hdmlydXMtaW5mb3JtYXRpb25fZm9yX2FwcGxpY2FudHNfYW5kX29mZmVyX2hvbGRlcnMiIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyBGQVFzPC9hPi4mbmJzcDtJZiB5b3UmIzM5O3JlIGEgUGhEIHJlc2VhcmNoZXIgYXBwbGljYW50IG9yIG9mZmVyIGhvbGRlciB2aXNpdCB0aGlzIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTAyMDAwL3Jlc2VhcmNoX2RlZ3JlZXMvODA0L2Nvcm9uYXZpcnVzLWluZm9ybWF0aW9uX2Zvcl9wZ3JfYXBwbGljYW50c19hbmRfb2ZmZXJfaG9sZGVycyI+d2VicGFnZSBmb3IgZnVydGhlciBpbmZvcm1hdGlvbjwvYT4uPC9wPgoKPHA+SWYgeW91JnJzcXVvO3JlIGFuIGV4aXN0aW5nIHN0dWRlbnQgb3IgbWVtYmVyIG9mIHN0YWZmLCBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly9jb3JvbmF2aXJ1cy5sZWVkcy5hYy51ay8iIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyB3ZWJzaXRlPC9hPiZuYnNwO2ZvciB0aGUgbGF0ZXN0IHVwZGF0ZXMgYW5kIGluZm9ybWF0aW9uLiZuYnNwOzwvcD4KPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4gDQo8L2Rpdj4gICAgICAgICAgICANCjwhLS0gJFdJREdFVCAzMDA0IFRLIGNvbnRlbnQgLS0+DQoNCg0KDQoKICAgICAgICAgICAgCjwhLS0gJFdJREdFVCAzMDEzIFRLIGZhY3QgYW5kIGZpZ3VyZXMgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDEzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiIHJvbGU9Imxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCB0ZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsZWFkLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBVSyBmb3IgQ29tcHV0ZXIgU2NpZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wbGV0ZSBVbml2ZXJzaXR5IEd1aWRlIDIwMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXIgPHNwYW4+ODU8L3NwYW4+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxlYWQtZmFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Ygb3VyIHJlc2VhcmNoIGFjdGl2aXR5IGlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b3JsZC1sZWFkaW5nJyBvciAnaW50ZXJuYXRpb25hbGx5IGV4Y2VsbGVudCcgbGF0ZXN0IFJFRiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCA8c3Bhbj4xMDA8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGVhZC1mYWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JsZCB0b3AgMTAwIHVuaXZlcnNpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVMgV29ybGQgVW5pdmVyc2l0eSBSYW5raW5ncyAyMDIxICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gLyRXSURHRVQgMzAxMyBUSyBmYWN0IGFuZCBmaWd1cmVzIC0tPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtMzAwMyBjYXJkcy1jb250YWluZXIgIGNhcmRzLWNvbnRhaW5lci0tbm8taGVhZGluZyAgY2FyZHMtY29udGFpbmVyLS1uby1sZWFkICI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgc2tpbi1yb3ctbW9kdWxlLWxpZ2h0IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgoKICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZmxhdCBjYXJkLXN0YWNrZWQtc20gc2tpbi1iZC1iIHNraW4tYm94LXdoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyBjYXJkLWltZy0xLTQteHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJycy1pbWcgcnMtaW1nLTItMSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwdWdjb21wdXRpbmcuanBnJykiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9IlVuZGVyZ3JhZHVhdGUgZGVncmVlcyI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMHVnY29tcHV0aW5nLmpwZyIgYWx0PSJUaHJlZSBDb21wdXRpbmcgc3R1ZGVudHMsIG9uZSB1c2luZyBWUiI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy11bmRlcmdyYWR1YXRlIj5VbmRlcmdyYWR1YXRlIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9Ik1vcmUgb24gVW5kZXJncmFkdWF0ZSBkZWdyZWVzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMGNvbXBtYXN0ZXJzLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLW1hc3RlcnMiIHRpdGxlPSJNYXN0ZXJzIGNvdXJzZXMiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTYwMCZhbXA7aD0zMDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBjb21wbWFzdGVycy5qcGciIGFsdD0iU3R1ZGVudCB1c2luZyBhIGxhcHRvcCI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1tYXN0ZXJzIj5NYXN0ZXJzIGNvdXJzZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyIgdGl0bGU9Ik1vcmUgb24gTWFzdGVycyBjb3Vyc2VzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMENvbXBfUmVzZWFyY2gxLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiIHRpdGxlPSJSZXNlYXJjaCBkZWdyZWVzIj48aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwQ29tcF9SZXNlYXJjaDEuanBnIiBhbHQ9IlByb2Zlc3NvciBOZXR0YSBDb2hlbiBpbiByZXNlYXJjaCBsYWIiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIgY2FyZC1jb250ZW50LTItMyBjYXJkLWNvbnRlbnQtMy00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiPlJlc2VhcmNoIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcyIgdGl0bGU9Ik1vcmUgb24gUmVzZWFyY2ggZGVncmVlcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tICRXSURHRVQgMzAwOCAtIFRLIGZlYXR1cmVkIGNvbnRlbnQgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDA4Ij4KCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItcm93IHNraW4tYmctd2hpdGUiPgoKICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItbWQgd3JhcHBlci1wZC1tZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmVkLWNvbnRlbnQgZmVhdHVyZWQtY29udGVudC1yZWN0YW5nbGUiPgoKCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlZC1jb250ZW50LWltZyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9ODAwJmFtcDtoPTQwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMF9hcnRpZmljaWFsX2ludGVsbGlnZW5jZV8xLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTgwMCZhbXA7aD00MDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBfYXJ0aWZpY2lhbF9pbnRlbGxpZ2VuY2VfMS5qcGciIGFsdD0iQXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPk1vcmUgb24gUmVzZWFyY2ggYW5kIGlubm92YXRpb248L3NwYW4+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImgyLWxnIGhlYWRpbmctdW5kZXJsaW5lIj5SZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvaDI+CgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbXMgY21zLW5vLWxlYWQgY21zLXNlcmlmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+T3VyIHJlc2VhcmNoIHJhbmdlcyZuYnNwO2Zyb20gZnVuZGFtZW50YWwgYWR2YW5jZXMgaW4gYWxnb3JpdGhtcyBhbmQgb3VyIHVuZGVyc3RhbmRpbmcgb2YgY29tcHV0YXRpb24sIHRocm91Z2ggdG8gaGlnaGx5IGFwcGxpZWQgcmVzZWFyY2ggaW50byBuZXcgZGlzcGxheSB0ZWNobm9sb2dpZXMgZm9yIGNsaW5pY2FsIGRpYWdub3NpcywgZW5lcmd5LWVmZmljaWVudCBkYXRhIGNlbnRyZXMsIGFuZCBwcm9mb3VuZCBpbnNpZ2h0IGludG8gZGF0YSB0aHJvdWdoIHZpc3VhbGlzYXRpb24uIFdlIGFyZSBwYXJ0bmVycyB3aXRoIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy50dXJpbmcuYWMudWsvIj5BbGFuIFR1cmluZyBJbnN0aXR1dGU8L2E+LCB0aGUgVUsmIzM5O3MgcHJlbWllciByZXNlYXJjaCBjZW50cmUgZm9yIGRhdGEgc2NpZW5jZSBhbmQgYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIG1vcmUtZGl2aWRlciIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtaW5ub3ZhdGlvbiI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kV0lER0VUIDMwMDggLSBUSyBmZWF0dXJlZCBjb250ZW50IC0tPgoKICAgICAgICAgICAgPCEtLSBXaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDUiPjwhLS0gd2lkZ2V0IC0tPgo8ZGl2IGNsYXNzPSJzay1iZy1tb2R1bGUtbGlnaHQgY29udGFpbmVyLXJvdyI+PCEtLSBjb250YWluZXIgLS0+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLWxnIHdyYXBwZXItcGQtbWQiPjwhLS0gd3JhcHBlciAtLT4KCiAgICAgICAgPGgyIGNsYXNzPSJoZWFkaW5nLXVuZGVybGluZSBoMi1sZyI+Ck5ld3MgYW5kIGV2ZW50cyAgICAgICAgPC9oMj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGstdGFicy1oZWFkZXIiPjwhLS0gdGFicyAtLT4KICAgICAgICAgICAgPHVsIGlkPSIiIGNsYXNzPSJuYXYgbmF2LXRhYnMgdGstbmF2LXRhYnMgcHVsbC1sZWZ0Ij4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWN0aXZlIj48YSBocmVmPSIjbmV3c2ZiNWE4MiIgZGF0YS10b2dnbGU9InRhYiIgcmVsPSJub2ZvbGxvdyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIiPjxhIGhyZWY9IiNldmVudHM4YzQwMTMiIGRhdGEtdG9nZ2xlPSJ0YWIiIHJlbD0ibm9mb2xsb3ciPkV2ZW50czwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PjwhLS0gL3RhYnMgLS0+CiAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPGRpdiBjbGFzcz0id3JhcHBlci1sZyB3cmFwcGVyLXBkLW1kIj48IS0tIHdyYXBwZXIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjwhLS0gdGFiLWNvbnRlbnQgLS0+CiAgICAgICAgPCEtLSBOZXdzIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9Im5ld3NmYjVhODIiPjwhLS0gcGFuZSAtLT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGstdGFicy1jdGEiPjxhIGNsYXNzPSJtb3JlIG1vcmUtYWxsIG1vcmUtZGFyayBwdWxsLXJpZ2h0IiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0iPlNlZSBtb3JlIG5ld3MgbGlrZSB0aGlzPC9hPjwvcD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVxdWFsaXplIj48IS0tIGVxdWFsaXplIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyByb3ctcmVkdWNlLWd1dHRlciI+PCEtLSByb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPVRoZV9HcmVhdF9IYWxsLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1UaGVfR3JlYXRfSGFsbC5qcGciIGFsdD0iVGhlIEdyZWF0IEhhbGwgaW4gc3VtbWVyIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2NDkvbGVlZHMtaW4tdG9wLWZpdmUtZm9yLXRlYWNoaW5nLWluLW5hdGlvbmFsLXN0dWRlbnQtc3VydmV5Ij5MZWVkcyBpbiB0b3AgZml2ZSBmb3IgdGVhY2hpbmcgaW4gTmF0aW9uYWwgU3R1ZGVudCBTdXJ2ZXk8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5OYXRpb25hbCBTdHVkZW50IFN1cnZleSByZXN1bHRzIHJldmVhbCB0aGF0IExlZWRzIGhhcyByZXRhaW5lZCBpdHMgcG9zaXRpb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ5L2xlZWRzLWluLXRvcC1maXZlLWZvci10ZWFjaGluZy1pbi1uYXRpb25hbC1zdHVkZW50LXN1cnZleSIgdGl0bGU9Ik1vcmUgb24gTGVlZHMgaW4gdG9wIGZpdmUgZm9yIHRlYWNoaW5nIGluIE5hdGlvbmFsIFN0dWRlbnQgU3VydmV5Ij5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIExlZWRzIGluIHRvcCBmaXZlIGZvciB0ZWFjaGluZyBpbiBOYXRpb25hbCBTdHVkZW50IFN1cnZleTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnIiBhbHQ9IkEgcm9ib3QgY29udHJvbGxlZCBieSBhIHNtYXJ0cGhvbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJlbW92ZWQgaW1hZ2UgbGluZ2sgZm9yIGFjY2Vzc2liaWxpdHkgYXVkaXQgVE9ETzogUmVmYWN0b3IgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCBlcXVhbGl6ZS1pbm5lciI+PCEtLSBjYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9uZXdzL2FydGljbGUvNTY0Ny9wYXJ0eS10aW1lLWxhc3ItdGVhbS13aW5zLWdvbGQtaW4tcm9ib2N1cC1ob21lLWVkdWNhdGlvbi1jaGFsbGVuZ2UiPlBhcnR5IHRpbWUhIExBU1IgdGVhbSB3aW5zIGdvbGQgaW4gUm9ib0N1cEBIb21lIEVkdWNhdGlvbiBDaGFsbGVuZ2U8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5BIHRlYW0gbWFkZSB1cCBvZiBuZXcgbWVtYmVycyBvZiB0aGUgTGVlZHMgQXV0b25vbW91cyBTZXJ2aWNlIFJvYm90cyAoTEFTUikmaGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ3L3BhcnR5LXRpbWUtbGFzci10ZWFtLXdpbnMtZ29sZC1pbi1yb2JvY3VwLWhvbWUtZWR1Y2F0aW9uLWNoYWxsZW5nZSIgdGl0bGU9Ik1vcmUgb24gUGFydHkgdGltZSEgTEFTUiB0ZWFtIHdpbnMgZ29sZCBpbiBSb2JvQ3VwQEhvbWUgRWR1Y2F0aW9uIENoYWxsZW5nZSI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBQYXJ0eSB0aW1lISBMQVNSIHRlYW0gd2lucyBnb2xkIGluIFJvYm9DdXBASG9tZSBFZHVjYXRpb24gQ2hhbGxlbmdlPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1pdGVtIGNvbC1zbS02IGNvbC1tZC0zIj48IS0tIGl0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXN0YWNrZWQgc2tpbi1ib3gtd2hpdGUgc2tpbi1iZC1iIj48IS0tIGNhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9TnVjbGVhcl9sYWJfR00uNTlfXzVfLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1OdWNsZWFyX2xhYl9HTS41OV9fNV8uanBnIiBhbHQ9IlVuZGVyZ3JhZHVhdGUgY2hlbWljYWwgZW5naW5lZXJpbmcgc3R1ZGVudCB3b3JraW5nIGluIHRoZSBudWNsZWFyIGxhYiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVtb3ZlZCBpbWFnZSBsaW5nayBmb3IgYWNjZXNzaWJpbGl0eSBhdWRpdCBUT0RPOiBSZWZhY3RvciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtaW5uZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiPkludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjA8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5Kb2luIHVzIGluIGNlbGVicmF0aW5nIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IChJTldFRCkgb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiIHRpdGxlPSJNb3JlIG9uIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gSW50ZXJuYXRpb25hbCBXb21lbiBpbiBFbmdpbmVlcmluZyBEYXkgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnIiBhbHQ9IkZhY3VsdHkgb2YgRVBTIFBhcnRuZXJzaGlwIEF3YXJkcyAyMDIwIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2MzYvZmFjdWx0eS1wYXJ0bmVyc2hpcC1hd2FyZHMtMjAyMCI+RmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvYT48L2gzPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im5vdGUiPlRoZSBGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBQYXJ0bmVyc2hpcCBBd2FyZHMgaXMgYW4maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjM2L2ZhY3VsdHktcGFydG5lcnNoaXAtYXdhcmRzLTIwMjAiIHRpdGxlPSJNb3JlIG9uIEZhY3VsdHkgUGFydG5lcnNoaXAgYXdhcmRzIDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gRmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvcm93IC0tPgogICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXF1YWxpemUgLS0+CiAgICAgICAgICAgIDwvZGl2PjwhLS0gL3BhbmUgLS0+CjwhLS0gL05ld3MgLS0+CgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSAiIGlkPSJldmVudHM4YzQwMTMiPjwhLS0gdGFiLXBhbmUgLS0+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRrLXRhYnMtY3RhIj48YSBjbGFzcz0ibW9yZSBtb3JlLWFsbCBtb3JlLWRhcmsgcHVsbC1yaWdodCIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvZXZlbnRzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0mc3ViX2NhdGVnb3J5SUQ9JnR5cGVzPSZzdWJfdHlwZT0iPlNlZSBtb3JlIGV2ZW50cyBsaWtlIHRoaXM8L2E+PC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiPjwhLS0gZXF1YWxpemUgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IHJvdy1yZWR1Y2UtZ3V0dGVyIj48IS0tIHJvdyAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudHMtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBldmVudC1pdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc3RhY2tlZCBza2luLWJveC13aGl0ZSBza2luLWJkLWIiPjwhLS0gY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj48IS0tIGNhcmQtaW1nIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9QmVfQ3VyaW91cy5qcGcnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9ldmVudHMvZXZlbnQvNjEyMi9iZS1jdXJpb3VzLTIwMjAiIHRpdGxlPSJCZSBDdXJpb3VzIDIwMjAiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPUJlX0N1cmlvdXMuanBnIiBhbHQ9IktpZCBob2xkaW5nIGEgbW9sZWN1bGUgbW9kZWwiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWltZyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2V2ZW50cy9ldmVudC82MTIyL2JlLWN1cmlvdXMtMjAyMCI+QmUgQ3VyaW91cyAyMDIwPC9hPjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlYWRpbmctcmVsYXRlZCI+ClNhdHVyZGF5IDEwIE9jdG9iZXIgMjAyMCwgMTA6MDAgLSAxNjowMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZXZlbnRzL2V2ZW50LzYxMjIvYmUtY3VyaW91cy0yMDIwIiB0aXRsZT0iTW9yZSBvbiBGYWN1bHR5IFBhcnRuZXJzaGlwIGF3YXJkcyAyMDIwIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEJlIEN1cmlvdXMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXZlbnQtaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9yb3cgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9lcXVhbGl6ZS0tPgogICAgICAgICAgICA8L2Rpdj48IS0tIC90YWItY29udGVudCAtLT4KICAgICAgICA8L2Rpdj48IS0tIC90YWItcGFuZSAtLT4KPCEtLSAvRXZlbnRzIC0tPgoKICAgICAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPC9kaXY+PCEtLSAvY29udGFpbmVyIC0tPgo8L2Rpdj48IS0tIC93aWRnZXQgLS0+Cgo8IS0tIC9XaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KCiAgICAgICAgICAgIAo8IS0tICRXSURHRVQ6IG5vIDMwMDYgLSBUSyBsaW5rIG5hdiAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDYiPgoJPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLWJnLXdoaXRlIj4KCQk8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoJCQkKCQkJCgkJCQoJCQkKCQkJCQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InRrLXJvdyBjbGVhcmZpeCByb3ctcmVkdWNlLWd1dHRlciI+CgkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3dvcmtpbmctYnVzaW5lc3MiPldvcmtpbmcgd2l0aCBidXNpbmVzczwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIHdvcmsgd2l0aCBvcmdhbmlzYXRpb25zIG9mIGFsbCBzaXplcyBhY3Jvc3MgYSB3aWRlIHJhbmdlIG9mIGluZHVzdHJpZXMgdG8gY29tZSB1cCB3aXRoIHNvbHV0aW9ucyB0byB5b3VyIG5lZWRzLjwvcD4KCQkJCQkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUiIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9kb2Mvd29ya2luZy1idXNpbmVzcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBXb3JraW5nIHdpdGggYnVzaW5lc3M8L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5SZWNydWl0IG91ciBzdHVkZW50czwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIGhhdmUgYSBkZWRpY2F0ZWQgRW1wbG95YWJpbGl0eSBUZWFtIHRoYXQgcHJvdmlkZSBidXNpbmVzc2VzIHdpdGggYWNjZXNzIHRvIG91ciB0YWxlbnRlZCBzdHVkZW50cyB0aHJvdWdoIGEgcmFuZ2Ugb2Ygc2VydmljZXMuPC9wPgoJCQkJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFJlY3J1aXQgb3VyIHN0dWRlbnRzPC9zcGFuPjwvYT4KCQkJCQkJCQkJCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkKCQkJCQkJCQkJCQkKCQkJCQk8L2Rpdj4KCgkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ay1yb3cgY2xlYXJmaXggcm93LXJlZHVjZS1ndXR0ZXIiPgoJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9zY2hvb2xzLW91dHJlYWNoIj5TY2hvb2xzIG91dHJlYWNoPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+V2UgZGVsaXZlciBldmVudHMgYW5kIGFjdGl2aXRpZXMgdG8gc2hvd2Nhc2UgdGhpcyBmYXNjaW5hdGluZyBzdWJqZWN0IGFyZWEgdG8gc3R1ZGVudHMgYXQgc2Nob29scyBhbmQgY29sbGVnZXMgYWNyb3NzIHRoZSBVSy48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3NjaG9vbHMtb3V0cmVhY2giPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gU2Nob29scyBvdXRyZWFjaDwvc3Bhbj48L2E+CgkJCQkJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgSW5jbHVzaW9uPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+VGhlIFVuaXZlcnNpdHkgY29tbXVuaXR5IGlzIG1hZGUgdXAgb2YgYSB3aWRlIHJhbmdlIG9mIHBlb3BsZSB3aXRoIGRpdmVyc2UgYmFja2dyb3VuZHMgYW5kIGNpcmN1bXN0YW5jZXMsIHdoaWNoIHdlIHZhbHVlIGFuZCByZWdhcmQgYXMgYSBncmVhdCBhc3NldC48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEVxdWFsaXR5IGFuZCBJbmNsdXNpb248L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQoJCQkJCTwvZGl2PgoKCQkJCQoJCQkKCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KPCEtLSAvJFdJREdFVDogbm8gMzAwNiAtIFRLIGxpbmsgbmF2IC0tPgoKCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC0zMDAwIj4KPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLXJvdy1kaXZpZGVyIj4KPGRpdiBjbGFzcz0idHdpdHRlci1mZWVkIj4gICAgCiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgogICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InR3aXR0ZXItdXNlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJ0ay1pY29uLXNvY2lhbC10d2l0dGVyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9MZWVkc1VuaUNvbXAiPkBMZWVkc1VuaUNvbXA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CjxkaXYgY2xhc3M9J2NvbC1zbS02IGNvbC1tZC00Jz4KPGRpdiBjbGFzcz0ndHdlZXQnPgo8cCBjbGFzcz0ndHdlZXQtY29udGVudCc+CiZsZHF1bztJZiB5b3UncmUgam9pbmluZyB1cyBpbiBTZXB0ZW1iZXIgYW5kIGhhdmUgcXVlc3Rpb25zIGFib3V0IHlvdXIgYXJyaXZhbCwgcGxlYXNlIHZpc2l0IG91ciBuZXcgQ29yb25hdmlydXMgd2VicGFnZS7igKYgPGEgaHJlZj0iaHR0cHM6Ly90LmNvL3Y3TEtCc2dqZnMiPnQuY28vdjdMS0JzZ2pmczwvYT4mcmRxdW87IC0gPC9wPgo8cCBjbGFzcz0ndHdlZXQtZm9vdGVyJz4yIGRheXMgYWdvPC9wPgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nY29sLXNtLTYgY29sLW1kLTQnPgo8ZGl2IGNsYXNzPSd0d2VldCc+CjxwIGNsYXNzPSd0d2VldC1jb250ZW50Jz4KJmxkcXVvO1JUIDxhIGNsYXNzPSJ1c2VyIiBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0VQb3VybmFyYXMiPkBFUG91cm5hcmFzPC9hPjogUHJvb2Ygb2YgV2l0bmVzcyBQcmVzZW5jZTogQmxvY2tjaGFpbiBjb25zZW5zdXMgZm9yIGF1Z21lbnRlZCBkZW1vY3JhY3kgaW4gU21hcnQgQ2l0aWVzLiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvcHJvb2ZvZmxvY2F0aW9uIj4jcHJvb2ZvZmxvY2F0aW9uPC9hPiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvSW9UIj4jSW9UPC9hPiBQdWJs4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby82N1FCaEpHM3JvIj50LmNvLzY3UUJoSkczcm88L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSdjb2wtc20tNiBjb2wtbWQtNCc+CjxkaXYgY2xhc3M9J3R3ZWV0Jz4KPHAgY2xhc3M9J3R3ZWV0LWNvbnRlbnQnPgombGRxdW87VGhlIDE2Mm5kIEV1cm9wZWFuIFN0dWR5IEdyb3VwIHdpdGggSW5kdXN0cnkgdGFrZXMgcGxhY2UgbmV4dCB3ZWVrIChKdWx5IDIwLTI0KSwgYnJpbmdpbmcgdG9nZXRoZXIgZGF0YSBzY2llbnRpc3Rz4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby9VS3hTckdPQkVGIj50LmNvL1VLeFNyR09CRUY8L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2PgoKCiAgICAKICAgIDxkaXYgY2xhc3M9InRlbXBsYXRlLS1ob21lcGFnZXMtc2luZ2xlLW5vc2lkZWJhciI+CiAgICAgICAgPCEtLSBFTkRDT05URU5UIFNVUFBMRU1FTlQgLS0+CgoKCjwhLS0gRU5EIE9GIEVORENPTlRFTlQgU1VQUExFTUVOVCAtLT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvd2lkZ2V0cy9qcy93aWRnZXQuanM/MTU5NTg0OTg0NCI+PC9zY3JpcHQ+CiAgICAKPGRpdj4gICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L21haW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2stdG9wIj4KICAgIDxhIGRhdGEtdG9nZ2xlPSJzY3JvbGwiIGhyZWY9IiNzaXRlLWNvbnRhaW5lciIgcmVsPSJub2ZvbGxvdyI+QmFjayB0byB0b3A8L2E+CjwvZGl2PiAgICAgICAgICAgICAgICAKCgogICAgICAgICAgICA8Zm9vdGVyIGNsYXNzPSJzaXRlLWZvb3RlciIgcm9sZT0iY29udGVudGluZm8iPgogICAgPGRpdiBjbGFzcz0ic2l0ZS1mb290ZXItdXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItcGQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci11cHBlci1sb2dvcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWN1LmFjLnVrL2VxdWFsaXR5LWNoYXJ0ZXJzL2F0aGVuYS1zd2FuLyIgdGl0bGU9IlZpc2l0IEF0aGVuYSBTV0FOIFNpbHZlciBhd2FyZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9OTYmYW1wO2g9NjAmYW1wO2ZpbGVuYW1lPWF0aGVuYV9zd2FuXzE3Nl8xMTAuanBnIiBhbHQ9IkF0aGVuYSBzd2FuIFNpbHZlciBhd2FyZCI+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9uZXdzL2FydGljbGUvNDA2NS9nb2xkX2Zvcl9sZWVkc19pbl90aGVfdGVhY2hpbmdfZXhjZWxsZW5jZV9mcmFtZXdvcmsiIHRpdGxlPSJWaXNpdCBURUYgZ29sZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTUwJmFtcDtoPTU1JmFtcDtmaWxlbmFtZT1URUZfR29sZF9sb2dvX0NNWUtfX19OZXdfMS5qcGciIGFsdD0iVEVGIGdvbGQiPjwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+U29jaWFsIG1lZGlhIGxpbmtzPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vY29tcHV0aW5nbGVlZHMvIiB0aXRsZT0iR28gdG8gRmFjZWJvb2sgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5GYWNlYm9vazwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC1mYWNlYm9vayI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vdW5pdmVyc2l0eW9mbGVlZHMvIiB0aXRsZT0iR28gdG8gSW5zdGFncmFtIHBhZ2UiPjxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+SW5zdGFncmFtPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLWluc3RhZ3JhbSI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vTGVlZHNVbmlDb21wIiB0aXRsZT0iR28gdG8gVHdpdHRlciBwYWdlIj48c3BhbiBjbGFzcz0iaWNvbi1mb250LXRleHQiPlR3aXR0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InRrLWljb24gdGstaWNvbi1zb2NpYWwtdHdpdHRlciI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaWVuZ2luZWVyaW5nIiB0aXRsZT0iR28gdG8gV2VpYm8gcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5XZWlibzwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC13ZWlibyI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3VzZXIvdW5pdmVyc2l0eW9mbGVlZHN1ayIgdGl0bGU9IkdvIHRvIFlvdVR1YmUgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5Zb3VUdWJlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLXlvdXR1YmUiPjwvc3Bhbj48L2E+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1taWRkbGUgcC10LW1kIHAtYi1tZCI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZhY3VsdHkgb2YgRW5naW5lZXJpbmcgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaGVtaWNhbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENoZW1pY2FsIGFuZCBQcm9jZXNzIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NoZW1pc3RyeSI+U2Nob29sIG9mIENoZW1pc3RyeTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaXZpbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENpdmlsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZyI+U2Nob29sIG9mIENvbXB1dGluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9lbGVjdHJvbmljLWVuZ2luZWVyaW5nIj5TY2hvb2wgb2YgRWxlY3Ryb25pYyBhbmQgRWxlY3RyaWNhbCBFbmdpbmVlcmluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9tYXRocyI+U2Nob29sIG9mIE1hdGhlbWF0aWNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL21lY2hhbmljYWwtZW5naW5lZXJpbmciPlNjaG9vbCBvZiBNZWNoYW5pY2FsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL3BoeXNpY3MiPlNjaG9vbCBvZiBQaHlzaWNzIGFuZCBBc3Ryb25vbXk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlF1aWNrbGlua3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2NvdXJzZXMubGVlZHMuYWMudWsvIj5Db3Vyc2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2pvaW4tdXMvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgaW5jbHVzaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcGhkLmxlZWRzLmFjLnVrLyI+UGhEIG9wcG9ydHVuaXRpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvc2hvcnQtY291cnNlcyI+U2hvcnQgY291cnNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9mYWN1bHR5LWVuZ2luZWVyaW5nLXBoeXNpY2FsLXNjaWVuY2VzL2RvYy9zd2p0dS1sZWVkcy1qb2ludC1lbmdpbmVlcmluZy1zY2hvb2wiPlNXSlRVLUxlZWRzIEpvaW50IFNjaG9vbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+Rm9yIHN0YWZmPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvZm9yc3RhZmYvaG9tZXBhZ2UvMzc1L3NlcnZpY2VzIj5BLVogU2VydmljZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9FbmdpbmVlcmluZy9TaXRlUGFnZXMvV2VsY29tZS10by10aGUtRW5naW5lZXJpbmctU2hhcmVQb2ludC1TaXRlLmFzcHgiPkVuZ2luZWVyaW5nIGFuZCBDb21wdXRpbmcgaW50cmFuZXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9NQVBTSW50cmFuZXQvU2l0ZVBhZ2VzL0hvbWUuYXNweCI+TWF0aGVtYXRpY3MgYW5kIFBoeXNpY2FsIFNjaWVuY2VzIGludHJhbmV0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcHJpc20ubGVlZHMuYWMudWsvIj5QZWRhZ29naWMgUmVzZWFyY2ggaW4gTWF0aHMgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2ZhY3VsdHktZW5naW5lZXJpbmctcGh5c2ljYWwtc2NpZW5jZXMvZG9jL3RlYWNoaW5nLWxlYXJuaW5nLWVuZ2luZWVyaW5nLW5ldHdvcmstdGFsZW50Ij5UZWFjaGluZyBBbmQgTGVhcm5pbmcgRW5naW5lZXJpbmcgTmVUd29yazwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvciBzdHVkZW50czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vc3R1ZGVudHMubGVlZHMuYWMudWsvIj5Gb3IgU3R1ZGVudHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9taW5lcnZhLmxlZWRzLmFjLnVrLyI+TWluZXJ2YTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+VW5pdmVyc2l0eSBsaW5rczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby81MDAwL2Fib3V0LzEzMS9maW5kX3VzIj5GaW5kIHVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTQwMDAvam9icyI+Sm9iczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2hvbWVwYWdlLzE3L2FjYWRlbWljX3llYXIiPlRlcm0gZGF0ZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlNpdGUgbWFwPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzLyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2V2ZW50cy8iPkV2ZW50czwvYT48L2xpPiAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9zdHVkZW50LWFuZC1hbHVtbmktcHJvZmlsZXMvIj5TdHVkZW50IGFuZCBhbHVtbmkgcHJvZmlsZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3Nob3J0LWNvdXJzZXMvIj5TaG9ydCBjb3Vyc2VzPC9hPjwvbGk+ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3NjaG9sYXJzaGlwcy8iPlNjaG9sYXJzaGlwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3N0YWZmbGlzdC8iPlN0YWZmIGxpc3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1sb3dlciI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiI+CiAgICAgICAgICAgICAgICAgICAgPGxpPiZjb3B5OyAyMDIwIFVuaXZlcnNpdHkgb2YgTGVlZHMsIExlZWRzLCBMUzIgOUpUPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvdGVybXNhbmRjb25kaXRpb25zIj5UZXJtcyBhbmQgY29uZGl0aW9uczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay9hY2Nlc3NpYmlsaXR5Ij5BY2Nlc3NpYmlsaXR5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3ByaXZhY3kiPlByaXZhY3kgYW5kIGNvb2tpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvZm9pIj5GcmVlZG9tIG9mIGluZm9ybWF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L25hdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvb3Rlcj4KCiAgICAgICAgPC9kaXY+PCEtLSAvJFNJVEUtQ09OVEFJTkVSLS0+CgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgR0FMQVhZX1NIT1JUQ1VUID0gIi9lcHMiO3ZhciBQUk9UT0NPTCA9ICJodHRwczovLyI7dmFyIERPTUFJTiA9ICJlcHMubGVlZHMuYWMudWsiO3ZhciBTRUNVUkVfU0VSVkVSID0gImh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjt2YXIgU0VDVVJFX0pBRFVfUEFUSCA9ICJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2Vwcy9qYWR1Ijt2YXIgVVNFX1RBWE9OT01ZID0gIiI7dmFyIEFTU0lHTl9BRE1JTklTVFJBVE9SX1ZJRVcgPSAiZmFsc2UiO3ZhciBUQVhPTk9NWV9OQU1FID0gIklQU1YiO3ZhciBCRVNQT0tFX0NBVEVHT1JZX0xJU1RfTkFNRSA9ICJHYWxheGllc0NMIjt2YXIgaXNfSUlTID0gIiI7dmFyIEVESVRPUl9JTUFHRV9QQVNURSA9ICIxIjt2YXIgTE9DQUxfRkVfRE9NQUlOID0gImVwcy5sZWVkcy5hYy51ayI7dmFyIFNFQ1VSRV9CTE9HX1BBVEggPSAiIjt2YXIgREFURV9JTlBVVF9EQVlfTU9OVEhfT1JERVIgPSAiIjt2YXIgTE9DQUxfRE9NQUlOUyA9IG5ldyBBcnJheSgpO0xPQ0FMX0RPTUFJTlNbMF0gPSAicHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjs8L3NjcmlwdD48c2NyaXB0PnZhciBBSkFYX05FV1NfRVZFTlRTID0gIi9zaXRlL2FqYXgvYWpheC1uZXdzLWV2ZW50cy5waHAiOyB2YXIgQUpBWF9SRVNfT1BQUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9yZXNlYXJjaC1vcHBvcnR1bml0aWVzLWluZGV4LnBocCI7IHZhciBTRUFSQ0hfUkVTVUxUUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9zZWFyY2gtcmVzdWx0cy5waHAiOzwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjExLjMubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9zY3JpcHQubWluLmpzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9qYWR1L2Rldi5taW4uanM/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9jb29raWVzLm1pbi5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmKHR5cGVvZiBjb29raWVDb25zZW50ICE9PSAidW5kZWZpbmVkIil7CiAgICAgICAgLy9Db29raWVzIGNvbXBsaWFuY2UKICAgICAgICBjb29raWVDb25zZW50LmluaXQoewogICAgICAgICAgICB1cmw6ICcvL2Vwcy5sZWVkcy5hYy51ay9wcml2YWN5LycsCiAgICAgICAgICAgIGdvb2dsZTogdHJ1ZSwKICAgICAgICAgICAgZmFjZWJvb2s6IHRydWUKICAgICAgICB9KTsKICAgIH0KPC9zY3JpcHQ+CiAgICAgICAgICAgIDwvYm9keT4KPC9odG1sPgo=\"}]}"},{"id":1887,"title":"Graceful Graph: Wichmann Rulers","description":"This Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Graceful Graph Contest\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\r\n\r\nAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003chttp://oeis.org/A193802 Optimal Wichmann Ruler\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\r\n\r\nThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\r\n\r\nFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\r\n\r\n*Input:* P  (Number of Points on the ruler)\r\n\r\n*Output:* S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\r\n\r\n*Notes:*\r\n\r\n  1) A W(r,s) does not guarantee all deltas can be generated\r\n  2) For any P there are multiple W(r,s) solutions \r\n  3) P=5 solution is 9, readily solved by brute force\r\n  4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n  5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun ","description_html":"\u003cp\u003eThis Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003eGraceful Graph Contest\u003c/a\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\u003c/p\u003e\u003cp\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003ca href = \"http://oeis.org/A193802\"\u003eOptimal Wichmann Ruler\u003c/a\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\u003c/p\u003e\u003cp\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\u003c/p\u003e\u003cp\u003eFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e P  (Number of Points on the ruler)\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1) A W(r,s) does not guarantee all deltas can be generated\r\n2) For any P there are multiple W(r,s) solutions \r\n3) P=5 solution is 9, readily solved by brute force\r\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun \r\n\u003c/pre\u003e","function_template":"function s=Graceful_Wichmann(n)\r\n  s=0;\r\nend","test_suite":"%%\r\ntic\r\nn=17;\r\nexp=101;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=19;\r\nexp=123;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=23;\r\nexp=183;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=29;\r\nexp=289;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=31;\r\nexp=327;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=37;\r\nexp=465;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=41;\r\nexp=573;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=43;\r\nexp=627;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=47;\r\nexp=751;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=53;\r\nexp=953;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=59;\r\nexp=1179;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=61;\r\nexp=1257;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=67;\r\nexp=1515;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=71;\r\nexp=1703;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=73;\r\nexp=1797;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=79;\r\nexp=2103;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=83;\r\nexp=2323;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=89;\r\nexp=2669;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=97;\r\nexp=3165;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-23T01:30:25.000Z","updated_at":"2013-09-23T13:04:40.000Z","published_at":"2013-09-23T04:00:18.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u0026gt;13. This Challenge is related to the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u0026gt;13.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points. An\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://oeis.org/A193802\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOptimal Wichmann Ruler\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u0026gt;=0 and integer).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e P (Number of Points on the ruler)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNotes:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[1) A W(r,s) does not guarantee all deltas can be generated\\n2) For any P there are multiple W(r,s) solutions \\n3) P=5 solution is 9, readily solved by brute force\\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"graphs\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"graphs\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"graphs\"","","\"","graphs","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007faf59d1ed80\u003e":null,"#\u003cMathWorks::Search::Field:0x00007faf59d1e4c0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007faf59d1cc60\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007faf59d1f3c0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007faf59d1f1e0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007faf59d1f140\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007faf59d1f000\u003e":"tag:\"graphs\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007faf59d1f000\u003e":"tag:\"graphs\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"graphs\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"graphs\"","","\"","graphs","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007faf59d1ed80\u003e":null,"#\u003cMathWorks::Search::Field:0x00007faf59d1e4c0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007faf59d1cc60\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007faf59d1f3c0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007faf59d1f1e0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007faf59d1f140\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007faf59d1f000\u003e":"tag:\"graphs\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007faf59d1f000\u003e":"tag:\"graphs\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":54074,"difficulty_rating":"easy-medium"},{"id":2732,"difficulty_rating":"medium"},{"id":1886,"difficulty_rating":"unrated"},{"id":1887,"difficulty_rating":"unrated"}]}}