{"id":180295,"date":"2026-02-05T09:38:45","date_gmt":"2026-02-05T00:38:45","guid":{"rendered":"https:\/\/support.questetra.com\/?p=180295"},"modified":"2026-04-13T12:02:02","modified_gmt":"2026-04-13T03:02:02","slug":"excel-table-row-create-flexible","status":"publish","type":"post","link":"https:\/\/support.questetra.com\/ja\/addons\/excel-table-row-create-flexible\/","title":{"rendered":"Microsoft 365 Excel: \u30c6\u30fc\u30d6\u30eb\u884c\u8ffd\u52a0 (\u9805\u76ee\u6570\u53ef\u5909)"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-background\" style=\"background-color:#ffccff;margin-top:var(--wp--preset--spacing--30);margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--20);padding-bottom:0;padding-left:var(--wp--preset--spacing--20)\"><strong>Microsoft 365 Excel: \u30c6\u30fc\u30d6\u30eb\u884c\u8ffd\u52a0 (\u9805\u76ee\u6570\u53ef\u5909)<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-right has-background has-small-font-size mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#ffccff;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--30);padding-bottom:0;padding-left:var(--wp--preset--spacing--30)\"><a href=\"https:\/\/support.questetra.com\/ja\/addons\/excel-table-row-create-flexible\/\">Microsoft 365 Excel: Table Row Create (Flexible)<\/a><\/p>\n\n\n\n<p class=\"has-background mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#fff0ff;margin-top:0;margin-right:0;margin-bottom:var(--wp--preset--spacing--60);margin-left:0;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">Excel\u306e\u30c6\u30fc\u30d6\u30eb\u306e\u672b\u5c3e\u306b1\u884c\u8ffd\u52a0\u3057\u3001\u305d\u306e\u5404\u30bb\u30eb\u306b\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image alignright has-custom-border is-style-default\"><img decoding=\"async\" src=\"data:image;base64,\niVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA7xJREFUWEfF\nV2lIVFEU\/u44OmNqZmqZNfkUs0WKNIOCFkyUMipaaDWEgsjCttGyv9WPFqeFIKMV2gyjvSRHSmyz\nxbIo2suJKKQ0M0ed0XFuvKvv8UbfG2dqYu6vx7v3nPPdc76zXAIvL+Kq\/cgVM3ppAi1zKCHJBDQB\nIByAkE75eoCaKEgVobTMatZe+HboarMrunsEwOWmR6iobROlWAlA64pSABZCcNBO1DtMu4prnMk4\nBcDpU1cSkHwAAS4a7nqsiYLmmAylB5XkFQFwOWkHCEXWXxp2EKMEBaZ84yo5XbIAOH3qGQKyyBPG\nBR0UtNBkKF3cVWc3AJ68eVdjcp5wANAZ8wK5m0eHD8LG9GWICot0yzGttjacrriGc49KmBwFzZJy\nQgTAs53YbR+UCDczIRlb52bDbGlGQ4vZAUSwfyBCAnrjS10N2qld3PMhKuhCI3Clqgx5RXuE\/01U\npY4VskMEEJOTtodSrFO63uwxKdgyJxvXn5dLlbHj2+evx6ShSdAX7kLFh2eiivGxo2FYlIvbbysd\nZAjB3k\/5xvX8QQaAFZkga52zPPckAL5OWBs1oXyxYgCiN6RmgJCT0ttfWrsfo3RxbsVb6XDRoxvd\nvAZKl1bvLj3FAHD6tKMEWCZVUJJ7GEP6DwZPIlu7DRpfDVSEwGJrZce0aj\/Umn+h4OZZJEXHY2zM\nSPbd0NIoqgn2D0JWykKUvX7YDQAFjpkMxuUdHtCnPgVIghyAmoZaFtvVKQsR00\/HFOmnZmKkLg7C\n3qzEZLc40GGHVlUbShM7AaT9lDQWti14gFKKW68fwvjyPgYEhyFIG4DMCbOg9lH\/IwDUVxuMfQUA\ntGv8BAD8\/98tZmy\/dgQfv3\/BvozNiAgOc4sbshwAUG0wEpcAvK\/5DH3hTjS1WrBtbjb49OLXj8b6\nv+YALy8FoBiC5lYL8ouPI35QLMKDQlBYUYxt89YgNLCPJ0OgTMI7756g\/E0lsqYsgL+fFsdvXwQX\nPhDTRk3E9991jKD\/TEJnaegs2O12O6xtVqhUKvj6+LJvKZn4+PLpe77S2EMayhSiJeOnI5GLF+0H\naPwxeVgSXn39CFPtNwdcXFgkS9G7756yuiEsP7UvJsQlouTFXeeFyOulmEfsajMqf\/MYN189cPBA\nyohxblXCbs2IleMe2nFC1HDsXZIHXd8It2oAz5MT9y5j62VxLJRvxx09gQ2hsgOJW1adHFYcSAQZ\nr45kIghvDqX\/wxNuj+UST3jvYSKC8ObTTEpmrz1OPZV+Snr+ABddMz8kG4h7AAAAAElFTkSuQmCC\n\" alt=\"Auto Step icon\" class=\"has-border-color has-ast-global-color-4-border-color\" style=\"border-width:0.5em\"\/><\/figure>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title\">Configs for this Auto Step<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<dl style=\"0 0 -0.7em 0\">\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_OAuth2<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C1: OAuth2 \u8a2d\u5b9a<span style=\"color:#990000;\"> *<\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_Url<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C2: \u5165\u529b\u5148\u306e\u30d6\u30c3\u30af\u306e URL<span style=\"color:#990000;\"> *<\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_TableName<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C3: \u5165\u529b\u5148\u306e\u30c6\u30fc\u30d6\u30eb\u540d of \u30c6\u30fc\u30d6\u30ebID<span style=\"color:#990000;\"> *<\/span><span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_Columns<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C4: \u8ffd\u52a0\u3057\u305f\u3044\u30ab\u30e9\u30e0\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\uff08\u30ab\u30f3\u30de\u533a\u5207\u308a\uff09<span style=\"color:#990000;\"> *<\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_IndexNum<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C5: \u8ffd\u52a0\u3057\u305f\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u756a\u53f7\u306e\u5024\u3092\u4fdd\u5b58\u3059\u308b\u30c7\u30fc\u30bf\u9805\u76ee (\u66f4\u65b0)<\/dd>\n\n<\/dl>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Script (click to open)<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\n\/\/ OAuth2 config sample at [OAuth 2.0 Setting]\n\/\/ - Authorization Endpoint URL: https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/authorize\n\/\/ - Token Endpoint URL: https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token\n\/\/ - Scope: https:\/\/graph.microsoft.com\/Files.ReadWrite.All offline_access\n\/\/ - Consumer Key: (Get by Microsoft Azure Active Directory)\n\/\/ - Consumer Secret: (Get by Microsoft Azure Active Directory)\n\nconst GRAPH_URI = &quot;https:\/\/graph.microsoft.com\/v1.0\/&quot;;\n\nmain();\nfunction main(){\n  \/\/\/\/ == Config Retrieving \/ \u5de5\u7a0b\u30b3\u30f3\u30d5\u30a3\u30b0\u306e\u53c2\u7167 ==\n  const oauth2 = configs.get( &quot;conf_OAuth2&quot; ) + &quot;&quot;;\n  const bookUrl = retrieveBookUrl();\n  const tabelName = configs.get( &quot;conf_TableName&quot; ) + &quot;&quot;;\n\/\/  const tabelName = encodeURIComponent(configs.get( &quot;conf_TableName&quot; ) + &quot;&quot;);\n  if(tabelName === &quot;&quot; || tabelName === null){\n    throw &quot;Table Name is empty.&quot;;\n  }\n\n  let values = [];\n  retrieveValues( values );\n\n  \/\/\/\/ == Calculating \/ \u6f14\u7b97 ==\n  \/\/ Access to the API 1st(Get Book Info)\n  const bookInfo = getFileInfoByUrl( bookUrl, oauth2 );\n\n  \/\/ Access to the API 2nd(POST)\n  postData( bookInfo, tabelName, values, oauth2);\n}\n\n\/**\n  * config \u304b\u3089\u30d6\u30c3\u30af\u306e URL \u3092\u8aad\u307f\u51fa\u3059\u3001\u7a7a\u306a\u3089\u30a8\u30e9\u30fc\n  * @return {String} \u30d6\u30c3\u30af\u306e URL\n  *\/\nfunction retrieveBookUrl() {\n  const bookUrlDef = configs.getObject( &quot;conf_Url&quot; );\n  let bookUrl;\n  if ( bookUrlDef === null ) {\n    bookUrl = configs.get( &quot;conf_Url&quot; )\n  }else{\n    bookUrl = engine.findData( bookUrlDef );\n  }\n  if ( bookUrl === &quot;&quot; || bookUrl === null){\n    throw &quot;Book URL is empty.&quot;\n  }\n  return bookUrl;\n}\n\n\/**\n  * \u8ffd\u52a0\u30c7\u30fc\u30bf\u3092\u6e96\u5099\n  * @param {Array} values  \u8ffd\u52a0\u30c7\u30fc\u30bf\u306e\u914d\u5217\n  *\/\nfunction retrieveValues( values ) {\n\n  const columns = configs.get( &quot;conf_Columns&quot; ) + &quot;&quot;;\n  let arrayColumnNames = columns.split(&quot;,&quot;);\n  for ( let i = 0; i &lt; arrayColumnNames.length; i++) {\n    let columnName = arrayColumnNames[i];\n    \/\/\u6307\u5b9a\u306a\u3057\u30ab\u30e9\u30e0\u306f\u7a7a\u6587\u5b57\u3092\u5165\u308c\u308b\n    if (columnName == &quot;&quot;) {\n      values.push( &quot;&quot; );\n      continue;\n    }\n\n    const columnDefinition = engine.findDataDefinitionByVarName( columnName );\n    const columnObject = engine.findDataByVarName( columnName );\n    let columnValue = &#39;&#39;;\n\n    \/\/\u30c7\u30fc\u30bf\u578b\u306b\u3088\u3063\u3066\u5024\u306e\u53d6\u5f97\u65b9\u6cd5\u304c\u5909\u308f\u308b\uff08\u30c6\u30fc\u30d6\u30eb\u578b\u30fb\u63b2\u793a\u677f\u578b\u306f\u8003\u616e\u5916\uff09\n    if ( columnDefinition.matchDataType( &quot;SELECT&quot; ) ) {\n      if ( columnObject ) {\n        for ( let i = 0; i &lt; columnObject.size(); i++ ){\n          const select = columnObject.get(i);\n          if ( columnValue != &#39;&#39; ) {\n            columnValue += &#39;,&#39;;\n          }\n          columnValue += select.getValue() + &quot;:&quot; + select.getDisplay();\n        }\n      }\n\n    } else if ( columnDefinition.matchDataType( &quot;QUSER&quot; ) ) {\n      if ( columnObject ) {\n        columnValue = columnObject.getName() + &#39;&lt;&#39; + columnObject.getEmail() + &#39;&gt;&#39;;\n      }\n\n    } else if ( columnDefinition.matchDataType( &quot;QGROUP&quot; ) ) {\n      if ( columnObject ) {\n        columnValue = columnObject.getName();\n      }\n\n    } else if ( columnDefinition.matchDataType( &quot;FILE&quot; ) ) {\n      if ( columnObject ) {\n        for ( let i = 0; i &lt; columnObject.size(); i++ ) {\n          const file = columnObject.get(i);\n          if ( columnValue != &#39;&#39; ) {\n            columnValue += &#39;,&#39;;\n          }\n          columnValue += file.getName();\n        }\n      }\n\n    } else if ( columnDefinition.matchDataType( &quot;LIST&quot; ) ) {\n      \/\/\u30b9\u30ad\u30c3\u30d7\n\n    } else if ( columnDefinition.matchDataType( &quot;DISCUSSION&quot; ) ) {\n      \/\/\u30b9\u30ad\u30c3\u30d7\n\n    } else {\n      if ( columnObject ) {\n        columnValue = columnObject.toString();\n      }\n    }\n\n    values.push( columnValue );\n  }\n\n}\n\n\/**\n  * \u30d5\u30a9\u30eb\u30c0\u306e URL \u304b\u3089\u30d5\u30a1\u30a4\u30eb\u60c5\u5831\uff08\u30c9\u30e9\u30a4\u30d6 ID \u3068\u30d5\u30a1\u30a4\u30eb ID\uff09\u3092\u53d6\u5f97\u3057\u3001\n  * \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3067\u8fd4\u3059\uff08URL \u304c\u7a7a\u306e\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3068\u3059\u308b\uff09\n  * @param {String} fileUrl  \u30d5\u30a9\u30eb\u30c0\u306e URL\n  * @param {String} oauth2  OAuth2 \u8a2d\u5b9a\n  * @return {Object} fileInfo  \u30d5\u30a1\u30a4\u30eb\u60c5\u5831 {driveId, fileId}\n  *\/\nfunction getFileInfoByUrl( fileUrl, oauth2 ) {\n  let fileInfo;\n  if ( fileUrl !== &quot;&quot; && fileUrl !== null ) {\n    \/\/ \u5206\u5272\u4ee3\u5165\n    const {\n      id,\n      parentReference: {\n        driveId\n      }\n    } = getObjBySharingUrl( fileUrl, oauth2 );\n    fileInfo = {driveId: `drives\/${driveId}`, fileId: id};\n  }\n  return fileInfo;\n}\n\n\/**\n  * OneDrive \u306e\u30c9\u30e9\u30a4\u30d6\u30a2\u30a4\u30c6\u30e0\uff08\u30d5\u30a1\u30a4\u30eb\u3001\u30d5\u30a9\u30eb\u30c0\uff09\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3001JSON \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3059\n  * API \u306e\u4ed5\u69d8\uff1ahttps:\/\/docs.microsoft.com\/ja-jp\/onedrive\/developer\/rest-api\/api\/shares_get?view=odsp-graph-online\n  * @param {String} sharingUrl  \u30d5\u30a1\u30a4\u30eb\u306e\u5171\u6709 URL\n  * @param {String} oauth2  OAuth2 \u8a2d\u5b9a\n  * @return {Object} responseObj  \u30c9\u30e9\u30a4\u30d6\u30a2\u30a4\u30c6\u30e0\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u306e JSON \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n  *\/\nfunction getObjBySharingUrl( sharingUrl, oauth2 ) {\n  if (sharingUrl === &quot;&quot; || sharingUrl === null) {\n    throw `Sharing URL is empty.`;\n  }\n\n  \/\/ encoding sharing URL\n  const encodedSharingUrl = encodeSharingUrl(sharingUrl);\n\n  \/\/ API Request\n  const response = httpClient.begin()\n    .authSetting( oauth2 )\n    .get( `${GRAPH_URI}shares\/${encodedSharingUrl}\/driveItem` );\n\n  const responseStr = logAndJudgeError(response, &quot;GET&quot;);\n\n  return JSON.parse( responseStr );\n}\n\n\/**\n  * \u5171\u6709URL\u3092unpadded base64url \u5f62\u5f0f\u306b\u30a8\u30f3\u30b3\u30fc\u30c9\u3059\u308b\n  * @param {String} sharingUrl  \u5171\u6709 URL\n  * @return {String} encodedSharingUrl  \u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305f\u5171\u6709 URL\n  *\/\nfunction encodeSharingUrl( sharingUrl ) {\n  let encodedSharingUrl = base64.encodeToUrlSafeString( sharingUrl );\n  while ( encodedSharingUrl.slice(-1) === &#39;=&#39; ) {\n    encodedSharingUrl = encodedSharingUrl.slice(0,-1);\n  }\n  return `u!${encodedSharingUrl}`;\n}\n\n\/**\n  * \u6307\u5b9a\u30b7\u30fc\u30c8\u306e\u6307\u5b9a\u884c\u306b\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3059\u308b\n  * @param {Object} bookInfo\n  * @param {String} bookInfo.driveId  \u30ef\u30fc\u30af\u30d6\u30c3\u30af\u306e\u30c9\u30e9\u30a4\u30d6 ID\n  * @param {String} bookInfo.fileId  \u30ef\u30fc\u30af\u30d6\u30c3\u30af\u306e\u30d5\u30a1\u30a4\u30eb ID\n  * @param {String} tableName  \u633f\u5165\u5148\u30b7\u30fc\u30c8\u306e\u540d\u524d\n  * @param {Array} values  \u633f\u5165\u3059\u308b\u30c7\u30fc\u30bf\u306e\u914d\u5217\n  * @param {String} oauth2  OAuth2 \u8a2d\u5b9a\n  *\/\nfunction postData( {driveId, fileId}, tableName, values, oauth2 ){\n\n  const postUri = `${GRAPH_URI}${driveId}\/items\/${fileId}\/workbook\/tables\/${tableName}\/rows`;\n\/\/  const postUri = `${GRAPH_URI}me\/drive\/items\/${fileId}\/workbook\/tables\/${tableName}\/rows`;\n  const requestBody = makeRequestToAdd(values);\n\/\/engine.log(&quot;json:&quot; + JSON.stringify(requestBody) + &quot;&quot;)\n\n  const response = httpClient.begin()\n    .authSetting( oauth2 )\n    .body( JSON.stringify(requestBody), &quot;application\/json&quot; )\n    .post( postUri );\n  \n  logAndJudgeError(response, &quot;POST&quot;);\n\n  const dataId = configs.get( &quot;conf_IndexNum&quot; );\n  if ( dataId ){\n    const jsonObj = JSON.parse( response.getResponseAsString() );\n    const index = jsonObj.index + &quot;&quot;;\n    engine.setDataByNumber( dataId, index + &quot;&quot; );\n  }\n\n}\n\n\/**\n  * \u65b0\u3057\u3044\u884c\u306b\u8ffd\u52a0\u3059\u308b\u30c7\u30fc\u30bf\u3092\u3001JSON \u5f62\u5f0f\u306b\u5909\u63db\u3059\u308b\n  * @param {Array} values  \u30c7\u30fc\u30bf\u306e\u5165\u3063\u305f\u914d\u5217\n  * @return {JSON Object} \u5909\u63db\u3057\u305f JSON \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n  *\/\nfunction makeRequestToAdd(values){\n  let request = {\n    values : [[]]\n  };\n  for(let i = 0; i &lt; values.length; i++){\n    if(values[i] === &quot;&quot; || values[i] === null){\n      request.values[0].push(null);\n    }else{\n      if(values[i].length &gt; 32767){\n        throw &quot;Can&#39;t set text over 32,767 character.&quot;;\n      }\n      request.values[0].push(values[i]);\n    }\n  }\n  return request;\n}\n\n\/**\n  * \u30ed\u30b0\u306e\u51fa\u529b\u3068\u3001\u30a8\u30e9\u30fc\u767a\u751f\u6642\u306e\u30b9\u30ed\u30fc\u3092\u884c\u3046\n  * @param {HttpResponseWrapper} response  \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5fdc\u7b54\n  * @param {String} requestType \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u3069\u306e\u5f62\u5f0f\u3067\u884c\u3063\u305f\u304b(&quot;GET&quot; or &quot;POST&quot; or &quot;PATCH&quot;)\n  * @return {String} responseStr \u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u6587\u5b57\u5217\n  *\/\nfunction logAndJudgeError(response, requestType){\n  const responseStr = response.getResponseAsString();\n\/\/engine.log(&quot;response:&quot; + responseStr);\n  const status = response.getStatusCode();\n  if(status &gt;= 300){\n    const accessLog = `---${requestType} request--- ${status}\\n${responseStr}\\n`;\n    engine.log(accessLog);\n    throw `Failed in ${requestType} request. status: ${status}`;\n  }\n  return responseStr;\n}\n<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">Download<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"\" target=\"_blank\">excel-table-row-create-flexible.xml<\/a>\n<ul class=\"wp-block-list\">\n<li>2023-07-03 (C) Questetra, Inc. (MIT License)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"has-small-font-size\" style=\"text-align: right;\"><div style=\"display: inline-block; background: #FBE7DD; text-align: center;\">\n<span class=\"material-icons\">warning<\/span> \u81ea\u7531\u6539\u5909\u53ef\u80fd\u306a JavaScript (ECMAScript) \u30b3\u30fc\u30c9\u3067\u3059\u3002\u3044\u304b\u306a\u308b\u4fdd\u8a3c\u3082\u3042\u308a\u307e\u305b\u3093\u3002<br>\n(<em><strong>\u30a2\u30c9\u30aa\u30f3\u81ea\u52d5\u5de5\u7a0b<\/strong><\/em>\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f <em><strong><span style=\"color: #1970B9\">Professional<\/span><\/strong><\/em> edition\u3067\u306e\u307f\u53ef\u80fd\u3067\u3059)\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">Notes<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Microsoft365 \u7cfb\u306e\u30b5\u30fc\u30d3\u30b9\u3068\u306e\u9023\u643a\u8a2d\u5b9a\u306b\u3064\u3044\u3066\n<ul class=\"wp-block-list\">\n<li>Microsoft365\uff08Azure Active Directory\uff09\u5074\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u767b\u9332\u306e\u65b9\u6cd5\n<ul class=\"wp-block-list\">\n<li>&#8220;<a rel=\"noreferrer noopener\" href=\"https:\/\/support.questetra.com\/ja\/developer-blog\/office365-app-regist\/\" target=\"_blank\">Office365 \u3068\u30af\u30e9\u30a6\u30c9\u30ef\u30fc\u30af\u30d5\u30ed\u30fc Questetra \u3092 API \u9023\u643a\u3055\u305b\u305f\u3044\u5834\u5408\u306b<\/a>&#8220;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Questetra \u5074\u306e HTTP \u8a8d\u8a3c\u8a2d\u5b9a\u306e\u65b9\u6cd5\n<ul class=\"wp-block-list\">\n<li>&#8220;<a rel=\"noreferrer noopener\" href=\"https:\/\/support.questetra.com\/ja\/developer-blog\/onedrive-questetra\/\" target=\"_blank\">OneDrive \u3078\u30af\u30e9\u30a6\u30c9\u30ef\u30fc\u30af\u30d5\u30ed\u30fc Questetra \u304b\u3089\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\u3059\u308b\u65b9\u6cd5<\/a>&#8221;\n<ul class=\"wp-block-list\">\n<li>&#8220;2.2: Questetra \u5074\u306e OAuth \u8a2d\u5b9a&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u203b\u6ce8\u610f\u203b\u3000Excel Online \u30d5\u30a1\u30a4\u30eb\u304c SharePoint Online\uff08SPO\uff09\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u4e0a\u306b\u3042\u308b\u5834\u5408\u3001\u6307\u5b9a\u3059\u3079\u304d\u30b9\u30b3\u30fc\u30d7\u304c\u7570\u306a\u308b\n<ul class=\"wp-block-list\">\n<li>SPO\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u4e0a\u3067\u306f\u306a\u3044 \u2192https:\/\/graph.microsoft.com\/<strong>Files<\/strong>.ReadWrite offline_access<\/li>\n\n\n\n<li>SPO\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u4e0a\u306b\u3042\u308b \u2192https:\/\/graph.microsoft.com\/<strong>Sites<\/strong>.ReadWrite.All offline_access<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Excel\u5074\u306b\u300c\u30c6\u30fc\u30d6\u30eb\u300d\u306e\u8a2d\u5b9a\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002<a href=\"https:\/\/business.ntt-east.co.jp\/column\/bizdrive\/excel-table-master-in-5min.html\" target=\"_blank\">\u3053\u3061\u3089\u306e\u30da\u30fc\u30b8<\/a>\u3092\u53c2\u8003\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/li>\n\n\n\n<li>\u30b7\u30fc\u30c8\u540d\u306b\u30ab\u30c3\u30b3\u7b49\u306e\u8a18\u53f7\u304c\u5165\u3063\u3066\u3044\u308b\u5834\u5408\u306b\u306f\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u30a8\u30e9\u30fc\u3068\u306a\u3063\u305f\u5834\u5408\u306b\u306f\u30b7\u30fc\u30c8\u540d\u306e\u5909\u66f4\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">Capture<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large has-custom-border is-style-rounded\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"630\" data-attachment-id=\"180308\" data-permalink=\"https:\/\/support.questetra.com\/ja\/addons\/excel-table-row-create\/attachment\/excel-table-row-create-flexible-capture-config-ja\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible-capture-config-ja.jpg?fit=903%2C763&amp;ssl=1\" data-orig-size=\"903,763\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"excel-table-row-create-flexible-capture-config-ja\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible-capture-config-ja.jpg?fit=746%2C630&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible-capture-config-ja.jpg?resize=746%2C630&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-180308\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible-capture-config-ja.jpg?resize=746%2C630&amp;ssl=1 746w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible-capture-config-ja.jpg?resize=373%2C315&amp;ssl=1 373w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible-capture-config-ja.jpg?resize=768%2C649&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible-capture-config-ja.jpg?w=903&amp;ssl=1 903w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">Appendix<\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30a2\u30c9\u30aa\u30f3XML\u306f\u3001\u30c6\u30fc\u30d6\u30eb\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u300c<a href=\"https:\/\/support.questetra.com\/ja\/addons\/excel-row-append-202307\/\" target=\"_blank\">Microsoft 365 Excel: \u884c\u8ffd\u52a0<\/a>\u300d\u3088\u308a\u3082\u7af6\u5408\u306b\u5f37\u3044\u4f5c\u308a\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<br> \u203b\u300cMicrosoft 365 Excel: \u884c\u8ffd\u52a0\u300d\u306e\u5185\u90e8\u51e6\u7406\u3068\u3057\u3066\u306f\u3001\u5024\u307e\u305f\u306f\u66f8\u5f0f\u8a2d\u5b9a\u304c\u5272\u308a\u5f53\u305f\u3063\u3066\u3044\u308b\u30bb\u30eb\u7bc4\u56f2\u304b\u3089\u672b\u5c3e\u884c\u3092\u5224\u5b9a\uff08\u5185\u90e8\u7684\u306b usedRange() \u3092\u5229\u7528\uff09\u3057\u3001\u884c\u8ffd\u52a0\u3092\u884c\u3044\u307e\u3059\u3002 \u305d\u306e\u305f\u3081\u3001\u8907\u6570\u306e\u30d7\u30ed\u30bb\u30b9\u304b\u3089\u540c\u6642\u306b\u5b9f\u884c\u3055\u308c\u305f\u5834\u5408\u3001\u7af6\u5408\u306b\u3088\u308a\u51e6\u7406\u304c\u6b63\u5e38\u306b\u5b8c\u4e86\u3057\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 <br><br> \u307e\u305f\u3001\u300c\u8ffd\u52a0\u3057\u305f\u3044\u30ab\u30e9\u30e0\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u300d\u306b\u3088\u308a\u8ffd\u52a0\u3057\u305f\u3044\u5217\u3092\u591a\u6570\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u300cMicrosoft 365 Excel: \u30c6\u30fc\u30d6\u30eb\u884c\u8ffd\u52a0\u300d\u3088\u308a\u3082\u4e00\u5ea6\u306b\u591a\u304f\u306e\u5217\u306b\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">See Also<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"odmgQqaYbg\"><a href=\"https:\/\/support.questetra.com\/ja\/addons\/excel-table-row-create\/\">Microsoft 365 Excel: \u30c6\u30fc\u30d6\u30eb\u884c\u8ffd\u52a0<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Microsoft 365 Excel: \u30c6\u30fc\u30d6\u30eb\u884c\u8ffd\u52a0&#8221; &#8212; Questetra Support\" src=\"https:\/\/support.questetra.com\/ja\/addons\/excel-table-row-create\/embed\/#?secret=e5IVOa8Rgn#?secret=odmgQqaYbg\" data-secret=\"odmgQqaYbg\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"q1Ygsca0oR\"><a href=\"https:\/\/support.questetra.com\/addons\/excel-row-append-202307\/\">Microsoft 365 Excel: Append New Row<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Microsoft 365 Excel: Append New Row&#8221; &#8212; Questetra Support\" src=\"https:\/\/support.questetra.com\/addons\/excel-row-append-202307\/embed\/#?secret=M4O68UqGV8#?secret=q1Ygsca0oR\" data-secret=\"q1Ygsca0oR\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u30c6\u30fc\u30d6\u30eb\u306e\u672b\u5c3e\u306b1\u884c\u8ffd\u52a0\u3057\u3001\u305d\u306e\u5404\u30bb\u30eb\u306b\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u307e\u3059\u3002<\/p>\n","protected":false},"author":9,"featured_media":180297,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"{\"document\":\"AAASwMyD9Aq\/CY2i698FwMyD9AoFswMIigGIHpgNpMMEjAEBK6IBAgECCgJCARNKAKYCAQIKAo4BDNwBARVKAI4FAQIKAkIBE0oAhAIBAgoBGUoAhgEBAgoBE0o4AgECCgETSjgCAQIKAQ5K9AGkAgECCgETSjgCAQIKARNKOAIBAgoBFUr0AbICAQIKAkIBE0oArgIBAgoBE0o4AgECCgJCAQ1KpgMCAQIKARNKOAIBAgoCQgENStwFpAcBAgoBDkoAMAECCgJCARNKAKgCAQIKARNKOAIBAgoCQgENSqgBAgECCgETSjgCAQIKAkIBDUqUAgIBAgoBE0o4AgECCgJCAQ1K0AOeCQECCgJCAQ1KoAECAQIKARNKOAIBAgoCQgENSoAGAgECCgETSjgCAQIKAkIBDUr8BqQIAQIKAkIBDUqKAwIBAgoBE0o4AgECCgJCAQ1KALADAQIKAkIBDUr4Hq4iAQIKAkIBDUoAogUBAgoCQgENSsopuisBAgoCQgETSgCsAgECCgEaSgCIAQECCgJCARNKAK4CAQIKAkIBEkoAjg4BAgoCQgETSgCuAgECCgEUSgA8AQIKARRK\/rUFptMErgIElAEFnB+s1wSFBCgDJwAEACcABACBAIQAJwAEACgGJwAoLSEAKAAnAAcAKAMnAQQAKBUnAIcAIQAoACEAKAAnAQQAgQCEACgXJwCHACgDJwEEACgVJwCHACgDJwAoAScAKBgnAIcAKAMnACgVJwAHACgDJwAoFScABwAoAycAKBAnAIcAKAMnACgVJwAHACgDJwAoFScABwAoAycAKBcnAIcAKAMnAQQAKBUnAIcAKAMnACgVJwAHACgDJwEEACgPJwAHACgDJwAoFScABwAoAycBBAAoDycAhwAoAycAKBAnAIcAKAMnAQQAKBUnAIcAKAMnACgVJwAHACgDJwEEACgPJwAHACgDJwAoFScABwAoAycBBAAoDycABwAoAycAKBUnAAcAKAMnAQQAKA8nAIcAKAMnAQQAKA8nAAcAKAMnACgVJwAHACgDJwEEACgPJwAHACgDJwAoFScABwAoAycBBAAoDycAhwAoAycBBAAoDycABwAoAycAKBUnAAcAKAMnAQQAKA8nAIcAKAMnAQQAKA8nAIcAKAMnAQQAKA8nAIcAKAMnAQQAKA8nAIcAKAMnAQQAKBUnAIcAKAMnACgBJwAoGScAhwAoAycBBAAoFScAhwAoAycBBAAoFCcAhwAoAycBBAAoFScAhwAoAycAKAAnACgUJwCHACgDJwAoACcAKBQnACEAxACoAsT8xQKwvAJzdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHNsdWdkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVNaWNyb3NvZnQgMzY1IEV4Y2VsOiDjg4bjg7zjg5bjg6vooYzov73liqAgKOmgheebruaVsOWPr+WkiSlkb2N1bWVudGNvbnRlbnQ8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6NCwic3R5bGUiOnsiY29sb3IiOnsiYmFja2dyb3VuZCI6IiNmZmNjZmYifSwic3BhY2luZyI6eyJwYWRkaW5nIjp7InRvcCI6IjAiLCJyaWdodCI6InZhcjpwcmVzZXR8c3BhY2luZ3wyMCIsImJvdHRvbSI6IjAiLCJsZWZ0IjoidmFyOnByZXNldHxzcGFjaW5nfDIwIn0sIm1hcmdpbiI6eyJyaWdodCI6IjAiLCJib3R0b20iOiIwIiwibGVmdCI6IjAiLCJ0b3AiOiJ2YXI6cHJlc2V0fHNwYWNpbmd8MzAifX19fSAtLT4KPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIGhhcy1iYWNrZ3JvdW5kIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZjY2ZmO21hcmdpbi10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMzApO21hcmdpbi1yaWdodDowO21hcmdpbi1ib3R0b206MDttYXJnaW4tbGVmdDowO3BhZGRpbmctdG9wOjA7cGFkZGluZy1yaWdodDp2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS0yMCk7cGFkZGluZy1ib3R0b206MDtwYWRkaW5nLWxlZnQ6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMjApIj48c3Ryb25nPk1pY3Jvc29mdCAzNjUgRXhjZWw6IOODhuODvOODluODq+ihjOi\/veWKoCAo6aCF55uu5pWw5Y+v5aSJKTwvc3Ryb25nPjwvaDQ+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCB7ImNsYXNzTmFtZSI6Imhhcy1iYWNrZ3JvdW5kIiwic3R5bGUiOnsic3BhY2luZyI6eyJwYWRkaW5nIjp7InRvcCI6IjAiLCJyaWdodCI6InZhcjpwcmVzZXR8c3BhY2luZ3wzMCIsImJvdHRvbSI6IjAiLCJsZWZ0IjoidmFyOnByZXNldHxzcGFjaW5nfDMwIn0sIm1hcmdpbiI6eyJ0b3AiOiIwIiwicmlnaHQiOiIwIiwiYm90dG9tIjoiMCIsImxlZnQiOiIwIn19LCJjb2xvciI6eyJiYWNrZ3JvdW5kIjoiI2ZmY2NmZiJ9LCJ0eXBvZ3JhcGh5Ijp7InRleHRBbGlnbiI6InJpZ2h0In19LCJmb250U2l6ZSI6InNtYWxsIiwibm9Ub3BTcGFjaW5nIjp0cnVlfSAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggeyJzdHlsZSI6eyJjb2xvciI6eyJiYWNrZ3JvdW5kIjoiI2ZmZjBmZiJ9LCJzcGFjaW5nIjp7InBhZGRpbmciOnsidG9wIjoidmFyOnByZXNldHxzcGFjaW5nfDIwIiwicmlnaHQiOiJ2YXI6cHJlc2V0fHNwYWNpbmd8MzAiLCJib3R0b20iOiJ2YXI6cHJlc2V0fHNwYWNpbmd8MjAiLCJsZWZ0IjoidmFyOnByZXNldHxzcGFjaW5nfDQwIn0sIm1hcmdpbiI6eyJ0b3AiOiIwIiwicmlnaHQiOiIwIiwiYm90dG9tIjoidmFyOnByZXNldHxzcGFjaW5nfDYwIiwibGVmdCI6IjAifX19LCJub1RvcFNwYWNpbmciOnRydWV9IC0tPgo8cCBjbGFzcz0iaGFzLWJhY2tncm91bmQgbXQtMCBwdC0wIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmMGZmO21hcmdpbi10b3A6MDttYXJnaW4tcmlnaHQ6MDttYXJnaW4tYm90dG9tOnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTYwKTttYXJnaW4tbGVmdDowO3BhZGRpbmctdG9wOnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTIwKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTMwKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS0yMCk7cGFkZGluZy1sZWZ0OnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTQwKSI+RXhjZWzjga7jg4bjg7zjg5bjg6vjga7mnKvlsL7jgasx6KGM6L+95Yqg44GX44CB44Gd44Gu5ZCE44K744Or44Gr44OH44O844K\/44KS5YWl5Yqb44GX44G+44GZ44CCPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmltYWdlIHsibGlua0Rlc3RpbmF0aW9uIjoiY3VzdG9tIiwiYWxpZ24iOiJyaWdodCIsImNsYXNzTmFtZSI6ImlzLXN0eWxlLWRlZmF1bHQiLCJzdHlsZSI6eyJib3JkZXIiOnsid2lkdGgiOiIwLjVlbSJ9fSwiYm9yZGVyQ29sb3IiOiJhc3QtZ2xvYmFsLWNvbG9yLTQifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2UgYWxpZ25yaWdodCBoYXMtY3VzdG9tLWJvcmRlciBpcy1zdHlsZS1kZWZhdWx0Ij48aW1nIHNyYz0iZGF0YTppbWFnZTtiYXNlNjQsCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFnQ0FZQUFBQnplbnIwQUFBQUFYTlNSMElBcnM0YzZRQUFBN3hKUkVGVVdFZkYKVjJsSVZGRVUvdTQ0T21OcVptcVpOZmtVczBXS05JT0NGa3lVTWlwYWFEV0Vnc2pDdHRHeXY5V1BGcWVGSUtNVjJneWp2U1JIU215egp4YklvMnN1SktLUTBNMGVkMFhGdXZLdnY4VWJmRzJkcVl1NnZ4N3YzblBQZGM3NnpYQUl2TCtLcS9jZ1ZNM3BwQWkxektDSEpCRFFCCklCeUFrRTc1ZW9DYUtFZ1ZvYlRNYXRaZStIYm9hck1ydW5zRXdPV21SNmlvYlJPbFdBbEE2NHBTQUJaQ2NOQk8xRHRNdTRwcm5NazQKQmNEcFUxY1NrSHdBQVM0YTducXNpWUxtbUF5bEI1WGtGUUZ3T1drSENFWFdYeHAyRUtNRUJhWjg0eW81WGJJQU9IM3FHUUt5eUJQRwpCUjBVdE5Ca0tGM2NWV2MzQUo2OGVWZGpjcDV3QU5BWjh3SzVtMGVIRDhMRzlHV0lDb3QweXpHdHRqYWNycmlHYzQ5S21Cd0Z6Wkp5ClFnVEFzNTNZYlIrVUNEY3pJUmxiNTJiRGJHbEdRNHZaQVVTd2Z5QkNBbnJqUzEwTjJxbGQzUE1oS3VoQ0kzQ2xxZ3g1Ulh1RS8wMVUKcFk0VnNrTUVFSk9UdG9kU3JGTzYzdXd4S2RneUp4dlhuNWRMbGJIajIrZXZ4NlNoU2RBWDdrTEZoMmVpaXZHeG8yRllsSXZiYnlzZApaQWpCM2svNXh2WDhRUWFBRlprZ2E1MnpQUGNrQUw1T1dCczFvWHl4WWdDaU42Um1nSkNUMHR0Zldyc2ZvM1J4YnNWYjZYRFJveHZkCnZBWktsMWJ2TGozRkFIRDZ0S01FV0NaVlVKSjdHRVA2RHdaUElsdTdEUnBmRFZTRXdHSnJaY2UwYWovVW1uK2g0T1paSkVYSFkyek0KU1BiZDBOSW9xZ24yRDBKV3lrS1V2WDdZRFFBRmpwa014dVVkSHRDblBnVklnaHlBbW9aYUZ0dlZLUXNSMDAvSEZPbW5abUtrTGc3QwozcXpFWkxjNDBHR0hWbFViU2hNN0FhVDlsRFFXdGkxNGdGS0tXNjhmd3ZqeVBnWUVoeUZJRzRETUNiT2c5bEgvSXdEVVZ4dU1mUVVBCnRHdjhCQUQ4Lzk4dFpteS9kZ1FmdjMvQnZvek5pQWdPYzRzYnNod0FVRzB3RXBjQXZLLzVESDNoVGpTMVdyQnRiamI0OU9MWGo4YjYKditZQUx5OEZvQmlDNWxZTDhvdVBJMzVRTE1LRFFsQllVWXh0ODlZZ05MQ1BKME9nVE1JNzc1NmcvRTBsc3FZc2dMK2ZGc2R2WHdRWApQaERUUmszRTk5OTFqS0QvVEVKbmFlZ3MyTzEyTzZ4dFZxaFVLdmo2K0xKdktabjQrUExwZTc3UzJFTWF5aFNpSmVPbkk1R0xGKzBICmFQd3hlVmdTWG4zOUNGUHROd2RjWEZna1M5Rzc3NTZ5dWlFc1A3VXZKc1Fsb3VURlhlZUZ5T3VsbUVmc2FqTXFmL01ZTjE4OWNQQkEKeW9oeGJsWENiczJJbGVNZTJuRkMxSERzWFpJSFhkOEl0Mm9BejVNVDl5NWo2MlZ4TEpSdnh4MDlnUTJoc2dPSlcxYWRIRlljU0FRWgpyNDVrSWdodkRxWC93eE51aitVU1QzanZZU0tDOE9iVFRFcG1yejFPUFpWK1NucitBQmRkTXo4a0c0aDdBQUFBQUVsRlRrU3VRbUNDCiIgYWx0PSJBdXRvIFN0ZXAgaWNvbiIgY2xhc3M9Imhhcy1ib3JkZXItY29sb3IgaGFzLWFzdC1nbG9iYWwtY29sb3ItNC1ib3JkZXItY29sb3IiIHN0eWxlPSJib3JkZXItd2lkdGg6MC41ZW0iLz48L2ZpZ3VyZT4KPCEtLSAvd3A6aW1hZ2UgLS0+Cgo8IS0tIHdwOmNvYmxvY2tzL2FjY29yZGlvbiAtLT4KPGRpdiBjbGFzcz0id3AtYmxvY2stY29ibG9ja3MtYWNjb3JkaW9uIj48IS0tIHdwOmNvYmxvY2tzL2FjY29yZGlvbi1pdGVtIHsidGl0bGUiOiJDb25maWdzIGZvciB0aGlzIEF1dG8gU3RlcCIsIm9wZW4iOnRydWV9IC0tPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24taXRlbSI+PGRldGFpbHMgb3Blbj48c3VtbWFyeSBjbGFzcz0id3AtYmxvY2stY29ibG9ja3MtYWNjb3JkaW9uLWl0ZW1fX3RpdGxlIj5Db25maWdzIGZvciB0aGlzIEF1dG8gU3RlcDwvc3VtbWFyeT48ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24taXRlbV9fY29udGVudCI+PCEtLSB3cDpodG1sIC0tPgo8ZGwgc3R5bGU9IjAgMCAtMC43ZW0gMCI+CjxkdCBzdHlsZT0iZm9udC13ZWlnaHQ6IDMwMDsgZm9udC1zaXplOiA1MCU7IG1hcmdpbjogLTFlbSAwIDAgMDsgY29sb3I6ICNhYWE7Ij5jb25mX09BdXRoMjwvZHQ+PGRkIHN0eWxlPSJtYXJnaW46IC0wLjVlbSAwIDAuMWVtIDFlbSI+QzE6IE9BdXRoMiDoqK3lrpo8c3BhbiBzdHlsZT0iY29sb3I6Izk5MDAwMDsiPiAqPC9zcGFuPjwvZGQ+CjxkdCBzdHlsZT0iZm9udC13ZWlnaHQ6IDMwMDsgZm9udC1zaXplOiA1MCU7IG1hcmdpbjogLTFlbSAwIDAgMDsgY29sb3I6ICNhYWE7Ij5jb25mX1VybDwvZHQ+PGRkIHN0eWxlPSJtYXJnaW46IC0wLjVlbSAwIDAuMWVtIDFlbSI+QzI6IOWFpeWKm+WFiOOBruODluODg+OCr+OBriBVUkw8c3BhbiBzdHlsZT0iY29sb3I6Izk5MDAwMDsiPiAqPC9zcGFuPjwvZGQ+CjxkdCBzdHlsZT0iZm9udC13ZWlnaHQ6IDMwMDsgZm9udC1zaXplOiA1MCU7IG1hcmdpbjogLTFlbSAwIDAgMDsgY29sb3I6ICNhYWE7Ij5jb25mX1RhYmxlTmFtZTwvZHQ+PGRkIHN0eWxlPSJtYXJnaW46IC0wLjVlbSAwIDAuMWVtIDFlbSI+QzM6IOWFpeWKm+WFiOOBruODhuODvOODluODq+WQjSBvZiDjg4bjg7zjg5bjg6tJRDxzcGFuIHN0eWxlPSJjb2xvcjojOTkwMDAwOyI+ICo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAwOTk7Ij48c3VwIHN0eWxlPSJmb250LXN0eWxlOml0YWxpYzsiPiN7RUx9PC9zdXA+PC9zcGFuPjwvZGQ+CjxkdCBzdHlsZT0iZm9udC13ZWlnaHQ6IDMwMDsgZm9udC1zaXplOiA1MCU7IG1hcmdpbjogLTFlbSAwIDAgMDsgY29sb3I6ICNhYWE7Ij5jb25mX0NvbHVtbnM8L2R0PjxkZCBzdHlsZT0ibWFyZ2luOiAtMC41ZW0gMCAwLjFlbSAxZW0iPkM0OiDov73liqDjgZfjgZ\/jgYTjgqvjg6njg6Djga7jg5XjgqPjg7zjg6vjg4nlkI3vvIjjgqvjg7Pjg57ljLrliIfjgorvvIk8c3BhbiBzdHlsZT0iY29sb3I6Izk5MDAwMDsiPiAqPC9zcGFuPjwvZGQ+CjxkdCBzdHlsZT0iZm9udC13ZWlnaHQ6IDMwMDsgZm9udC1zaXplOiA1MCU7IG1hcmdpbjogLTFlbSAwIDAgMDsgY29sb3I6ICNhYWE7Ij5jb25mX0luZGV4TnVtPC9kdD48ZGQgc3R5bGU9Im1hcmdpbjogLTAuNWVtIDAgMC4xZW0gMWVtIj5DNTog6L+95Yqg44GX44Gf44Kk44Oz44OH44OD44Kv44K555Wq5Y+344Gu5YCk44KS5L+d5a2Y44GZ44KL44OH44O844K\/6aCF55uuICjmm7TmlrApPC9kZD4KCjwvZGw+CjwhLS0gL3dwOmh0bWwgLS0+PC9kaXY+PC9kZXRhaWxzPjwvZGl2Pgo8IS0tIC93cDpjb2Jsb2Nrcy9hY2NvcmRpb24taXRlbSAtLT48L2Rpdj4KPCEtLSAvd3A6Y29ibG9ja3MvYWNjb3JkaW9uIC0tPgoKPCEtLSB3cDpjb2Jsb2Nrcy9hY2NvcmRpb24gLS0+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWNvYmxvY2tzLWFjY29yZGlvbiI+PCEtLSB3cDpjb2Jsb2Nrcy9hY2NvcmRpb24taXRlbSB7InRpdGxlIjoiU2NyaXB0IChjbGljayB0byBvcGVuKSJ9IC0tPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24taXRlbSI+PGRldGFpbHM+PHN1bW1hcnkgY2xhc3M9IndwLWJsb2NrLWNvYmxvY2tzLWFjY29yZGlvbi1pdGVtX190aXRsZSI+U2NyaXB0IChjbGljayB0byBvcGVuKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24taXRlbV9fY29udGVudCI+PCEtLSB3cDpsb29zLWhjYi9jb2RlLWJsb2NrIHsibGFuZ1R5cGUiOiJqcyIsImxhbmdOYW1lIjoiSmF2YVNjcmlwdCJ9IC0tPgo8ZGl2IGNsYXNzPSJoY2Jfd3JhcCI+PHByZSBjbGFzcz0icHJpc20gdW5kZWZpbmVkLW51bWJlcnMgbGFuZy1qcyIgZGF0YS1sYW5nPSJKYXZhU2NyaXB0Ij48Y29kZT4KLy8gT0F1dGgyIGNvbmZpZyBzYW1wbGUgYXQgW09BdXRoIDIuMCBTZXR0aW5nXQovLyAtIEF1dGhvcml6YXRpb24gRW5kcG9pbnQgVVJMOiBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL29hdXRoMi92Mi4wL2F1dGhvcml6ZQovLyAtIFRva2VuIEVuZHBvaW50IFVSTDogaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vbi9vYXV0aDIvdjIuMC90b2tlbgovLyAtIFNjb3BlOiBodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vRmlsZXMuUmVhZFdyaXRlLkFsbCBvZmZsaW5lX2FjY2VzcwovLyAtIENvbnN1bWVyIEtleTogKEdldCBieSBNaWNyb3NvZnQgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSkKLy8gLSBDb25zdW1lciBTZWNyZXQ6IChHZXQgYnkgTWljcm9zb2Z0IEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkpCgpjb25zdCBHUkFQSF9VUkkgPSAmcXVvdDtodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMC8mcXVvdDs7CgptYWluKCk7CmZ1bmN0aW9uIG1haW4oKXsKICAvLy8vID09IENvbmZpZyBSZXRyaWV2aW5nIC8g5bel56iL44Kz44Oz44OV44Kj44Kw44Gu5Y+C54WnID09CiAgY29uc3Qgb2F1dGgyID0gY29uZmlncy5nZXQoICZxdW90O2NvbmZfT0F1dGgyJnF1b3Q7ICkgKyAmcXVvdDsmcXVvdDs7CiAgY29uc3QgYm9va1VybCA9IHJldHJpZXZlQm9va1VybCgpOwogIGNvbnN0IHRhYmVsTmFtZSA9IGNvbmZpZ3MuZ2V0KCAmcXVvdDtjb25mX1RhYmxlTmFtZSZxdW90OyApICsgJnF1b3Q7JnF1b3Q7OwovLyAgY29uc3QgdGFiZWxOYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGNvbmZpZ3MuZ2V0KCAmcXVvdDtjb25mX1RhYmxlTmFtZSZxdW90OyApICsgJnF1b3Q7JnF1b3Q7KTsKICBpZih0YWJlbE5hbWUgPT09ICZxdW90OyZxdW90OyB8fCB0YWJlbE5hbWUgPT09IG51bGwpewogICAgdGhyb3cgJnF1b3Q7VGFibGUgTmFtZSBpcyBlbXB0eS4mcXVvdDs7CiAgfQoKICBsZXQgdmFsdWVzID0gW107CiAgcmV0cmlldmVWYWx1ZXMoIHZhbHVlcyApOwoKICAvLy8vID09IENhbGN1bGF0aW5nIC8g5ryU566XID09CiAgLy8gQWNjZXNzIHRvIHRoZSBBUEkgMXN0KEdldCBCb29rIEluZm8pCiAgY29uc3QgYm9va0luZm8gPSBnZXRGaWxlSW5mb0J5VXJsKCBib29rVXJsLCBvYXV0aDIgKTsKCiAgLy8gQWNjZXNzIHRvIHRoZSBBUEkgMm5kKFBPU1QpCiAgcG9zdERhdGEoIGJvb2tJbmZvLCB0YWJlbE5hbWUsIHZhbHVlcywgb2F1dGgyKTsKfQoKLyoqCiAgKiBjb25maWcg44GL44KJ44OW44OD44Kv44GuIFVSTCDjgpLoqq3jgb\/lh7rjgZnjgIHnqbrjgarjgonjgqjjg6njg7wKICAqIEByZXR1cm4ge1N0cmluZ30g44OW44OD44Kv44GuIFVSTAogICovCmZ1bmN0aW9uIHJldHJpZXZlQm9va1VybCgpIHsKICBjb25zdCBib29rVXJsRGVmID0gY29uZmlncy5nZXRPYmplY3QoICZxdW90O2NvbmZfVXJsJnF1b3Q7ICk7CiAgbGV0IGJvb2tVcmw7CiAgaWYgKCBib29rVXJsRGVmID09PSBudWxsICkgewogICAgYm9va1VybCA9IGNvbmZpZ3MuZ2V0KCAmcXVvdDtjb25mX1VybCZxdW90OyApCiAgfWVsc2V7CiAgICBib29rVXJsID0gZW5naW5lLmZpbmREYXRhKCBib29rVXJsRGVmICk7CiAgfQogIGlmICggYm9va1VybCA9PT0gJnF1b3Q7JnF1b3Q7IHx8IGJvb2tVcmwgPT09IG51bGwpewogICAgdGhyb3cgJnF1b3Q7Qm9vayBVUkwgaXMgZW1wdHkuJnF1b3Q7CiAgfQogIHJldHVybiBib29rVXJsOwp9CgovKioKICAqIOi\/veWKoOODh+ODvOOCv+OCkua6luWCmQogICogQHBhcmFtIHtBcnJheX0gdmFsdWVzICDov73liqDjg4fjg7zjgr\/jga7phY3liJcKICAqLwpmdW5jdGlvbiByZXRyaWV2ZVZhbHVlcyggdmFsdWVzICkgewoKICBjb25zdCBjb2x1bW5zID0gY29uZmlncy5nZXQoICZxdW90O2NvbmZfQ29sdW1ucyZxdW90OyApICsgJnF1b3Q7JnF1b3Q7OwogIGxldCBhcnJheUNvbHVtbk5hbWVzID0gY29sdW1ucy5zcGxpdCgmcXVvdDssJnF1b3Q7KTsKICBmb3IgKCBsZXQgaSA9IDA7IGkgJmx0OyBhcnJheUNvbHVtbk5hbWVzLmxlbmd0aDsgaSsrKSB7CiAgICBsZXQgY29sdW1uTmFtZSA9IGFycmF5Q29sdW1uTmFtZXNbaV07CiAgICAvL+aMh+WumuOBquOBl+OCq+ODqeODoOOBr+epuuaWh+Wtl+OCkuWFpeOCjOOCiwogICAgaWYgKGNvbHVtbk5hbWUgPT0gJnF1b3Q7JnF1b3Q7KSB7CiAgICAgIHZhbHVlcy5wdXNoKCAmcXVvdDsmcXVvdDsgKTsKICAgICAgY29udGludWU7CiAgICB9CgogICAgY29uc3QgY29sdW1uRGVmaW5pdGlvbiA9IGVuZ2luZS5maW5kRGF0YURlZmluaXRpb25CeVZhck5hbWUoIGNvbHVtbk5hbWUgKTsKICAgIGNvbnN0IGNvbHVtbk9iamVjdCA9IGVuZ2luZS5maW5kRGF0YUJ5VmFyTmFtZSggY29sdW1uTmFtZSApOwogICAgbGV0IGNvbHVtblZhbHVlID0gJiMzOTsmIzM5OzsKCiAgICAvL+ODh+ODvOOCv+Wei+OBq+OCiOOBo+OBpuWApOOBruWPluW+l+aWueazleOBjOWkieOCj+OCi++8iOODhuODvOODluODq+Wei+ODu+aOsuekuuadv+Wei+OBr+iAg+aFruWklu+8iQogICAgaWYgKCBjb2x1bW5EZWZpbml0aW9uLm1hdGNoRGF0YVR5cGUoICZxdW90O1NFTEVDVCZxdW90OyApICkgewogICAgICBpZiAoIGNvbHVtbk9iamVjdCApIHsKICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgJmx0OyBjb2x1bW5PYmplY3Quc2l6ZSgpOyBpKysgKXsKICAgICAgICAgIGNvbnN0IHNlbGVjdCA9IGNvbHVtbk9iamVjdC5nZXQoaSk7CiAgICAgICAgICBpZiAoIGNvbHVtblZhbHVlICE9ICYjMzk7JiMzOTsgKSB7CiAgICAgICAgICAgIGNvbHVtblZhbHVlICs9ICYjMzk7LCYjMzk7OwogICAgICAgICAgfQogICAgICAgICAgY29sdW1uVmFsdWUgKz0gc2VsZWN0LmdldFZhbHVlKCkgKyAmcXVvdDs6JnF1b3Q7ICsgc2VsZWN0LmdldERpc3BsYXkoKTsKICAgICAgICB9CiAgICAgIH0KCiAgICB9IGVsc2UgaWYgKCBjb2x1bW5EZWZpbml0aW9uLm1hdGNoRGF0YVR5cGUoICZxdW90O1FVU0VSJnF1b3Q7ICkgKSB7CiAgICAgIGlmICggY29sdW1uT2JqZWN0ICkgewogICAgICAgIGNvbHVtblZhbHVlID0gY29sdW1uT2JqZWN0LmdldE5hbWUoKSArICYjMzk7Jmx0OyYjMzk7ICsgY29sdW1uT2JqZWN0LmdldEVtYWlsKCkgKyAmIzM5OyZndDsmIzM5OzsKICAgICAgfQoKICAgIH0gZWxzZSBpZiAoIGNvbHVtbkRlZmluaXRpb24ubWF0Y2hEYXRhVHlwZSggJnF1b3Q7UUdST1VQJnF1b3Q7ICkgKSB7CiAgICAgIGlmICggY29sdW1uT2JqZWN0ICkgewogICAgICAgIGNvbHVtblZhbHVlID0gY29sdW1uT2JqZWN0LmdldE5hbWUoKTsKICAgICAgfQoKICAgIH0gZWxzZSBpZiAoIGNvbHVtbkRlZmluaXRpb24ubWF0Y2hEYXRhVHlwZSggJnF1b3Q7RklMRSZxdW90OyApICkgewogICAgICBpZiAoIGNvbHVtbk9iamVjdCApIHsKICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgJmx0OyBjb2x1bW5PYmplY3Quc2l6ZSgpOyBpKysgKSB7CiAgICAgICAgICBjb25zdCBmaWxlID0gY29sdW1uT2JqZWN0LmdldChpKTsKICAgICAgICAgIGlmICggY29sdW1uVmFsdWUgIT0gJiMzOTsmIzM5OyApIHsKICAgICAgICAgICAgY29sdW1uVmFsdWUgKz0gJiMzOTssJiMzOTs7CiAgICAgICAgICB9CiAgICAgICAgICBjb2x1bW5WYWx1ZSArPSBmaWxlLmdldE5hbWUoKTsKICAgICAgICB9CiAgICAgIH0KCiAgICB9IGVsc2UgaWYgKCBjb2x1bW5EZWZpbml0aW9uLm1hdGNoRGF0YVR5cGUoICZxdW90O0xJU1QmcXVvdDsgKSApIHsKICAgICAgLy\/jgrnjgq3jg4Pjg5cKCiAgICB9IGVsc2UgaWYgKCBjb2x1bW5EZWZpbml0aW9uLm1hdGNoRGF0YVR5cGUoICZxdW90O0RJU0NVU1NJT04mcXVvdDsgKSApIHsKICAgICAgLy\/jgrnjgq3jg4Pjg5cKCiAgICB9IGVsc2UgewogICAgICBpZiAoIGNvbHVtbk9iamVjdCApIHsKICAgICAgICBjb2x1bW5WYWx1ZSA9IGNvbHVtbk9iamVjdC50b1N0cmluZygpOwogICAgICB9CiAgICB9CgogICAgdmFsdWVzLnB1c2goIGNvbHVtblZhbHVlICk7CiAgfQoKfQoKLyoqCiAgKiDjg5Xjgqnjg6vjg4Djga4gVVJMIOOBi+OCieODleOCoeOCpOODq+aDheWgse+8iOODieODqeOCpOODliBJRCDjgajjg5XjgqHjgqTjg6sgSUTvvInjgpLlj5blvpfjgZfjgIEKICAqIOOCquODluOCuOOCp+OCr+ODiOOBp+i\/lOOBme+8iFVSTCDjgYznqbrjga7loLTlkIjjga\/jgqjjg6njg7zjgajjgZnjgovvvIkKICAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlVXJsICDjg5Xjgqnjg6vjg4Djga4gVVJMCiAgKiBAcGFyYW0ge1N0cmluZ30gb2F1dGgyICBPQXV0aDIg6Kit5a6aCiAgKiBAcmV0dXJuIHtPYmplY3R9IGZpbGVJbmZvICDjg5XjgqHjgqTjg6vmg4XloLEge2RyaXZlSWQsIGZpbGVJZH0KICAqLwpmdW5jdGlvbiBnZXRGaWxlSW5mb0J5VXJsKCBmaWxlVXJsLCBvYXV0aDIgKSB7CiAgbGV0IGZpbGVJbmZvOwogIGlmICggZmlsZVVybCAhPT0gJnF1b3Q7JnF1b3Q7ICYmIGZpbGVVcmwgIT09IG51bGwgKSB7CiAgICAvLyDliIblibLku6PlhaUKICAgIGNvbnN0IHsKICAgICAgaWQsCiAgICAgIHBhcmVudFJlZmVyZW5jZTogewogICAgICAgIGRyaXZlSWQKICAgICAgfQogICAgfSA9IGdldE9iakJ5U2hhcmluZ1VybCggZmlsZVVybCwgb2F1dGgyICk7CiAgICBmaWxlSW5mbyA9IHtkcml2ZUlkOiBgZHJpdmVzLyR7ZHJpdmVJZH1gLCBmaWxlSWQ6IGlkfTsKICB9CiAgcmV0dXJuIGZpbGVJbmZvOwp9CgovKioKICAqIE9uZURyaXZlIOOBruODieODqeOCpOODluOCouOCpOODhuODoO+8iOODleOCoeOCpOODq+OAgeODleOCqeODq+ODgO+8ieOBruODoeOCv+ODh+ODvOOCv+OCkuWPluW+l+OBl+OAgUpTT04g44Kq44OW44K444Kn44Kv44OI44KS6L+U44GZCiAgKiBBUEkg44Gu5LuV5qeY77yaaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vamEtanAvb25lZHJpdmUvZGV2ZWxvcGVyL3Jlc3QtYXBpL2FwaS9zaGFyZXNfZ2V0P3ZpZXc9b2RzcC1ncmFwaC1vbmxpbmUKICAqIEBwYXJhbSB7U3RyaW5nfSBzaGFyaW5nVXJsICDjg5XjgqHjgqTjg6vjga7lhbHmnIkgVVJMCiAgKiBAcGFyYW0ge1N0cmluZ30gb2F1dGgyICBPQXV0aDIg6Kit5a6aCiAgKiBAcmV0dXJuIHtPYmplY3R9IHJlc3BvbnNlT2JqICDjg4njg6njgqTjg5bjgqLjgqTjg4bjg6Djga7jg6Hjgr\/jg4fjg7zjgr\/jga4gSlNPTiDjgqrjg5bjgrjjgqfjgq\/jg4gKICAqLwpmdW5jdGlvbiBnZXRPYmpCeVNoYXJpbmdVcmwoIHNoYXJpbmdVcmwsIG9hdXRoMiApIHsKICBpZiAoc2hhcmluZ1VybCA9PT0gJnF1b3Q7JnF1b3Q7IHx8IHNoYXJpbmdVcmwgPT09IG51bGwpIHsKICAgIHRocm93IGBTaGFyaW5nIFVSTCBpcyBlbXB0eS5gOwogIH0KCiAgLy8gZW5jb2Rpbmcgc2hhcmluZyBVUkwKICBjb25zdCBlbmNvZGVkU2hhcmluZ1VybCA9IGVuY29kZVNoYXJpbmdVcmwoc2hhcmluZ1VybCk7CgogIC8vIEFQSSBSZXF1ZXN0CiAgY29uc3QgcmVzcG9uc2UgPSBodHRwQ2xpZW50LmJlZ2luKCkKICAgIC5hdXRoU2V0dGluZyggb2F1dGgyICkKICAgIC5nZXQoIGAke0dSQVBIX1VSSX1zaGFyZXMvJHtlbmNvZGVkU2hhcmluZ1VybH0vZHJpdmVJdGVtYCApOwoKICBjb25zdCByZXNwb25zZVN0ciA9IGxvZ0FuZEp1ZGdlRXJyb3IocmVzcG9uc2UsICZxdW90O0dFVCZxdW90Oyk7CgogIHJldHVybiBKU09OLnBhcnNlKCByZXNwb25zZVN0ciApOwp9CgovKioKICAqIOWFseaciVVSTOOCknVucGFkZGVkIGJhc2U2NHVybCDlvaLlvI\/jgavjgqjjg7PjgrPjg7zjg4njgZnjgosKICAqIEBwYXJhbSB7U3RyaW5nfSBzaGFyaW5nVXJsICDlhbHmnIkgVVJMCiAgKiBAcmV0dXJuIHtTdHJpbmd9IGVuY29kZWRTaGFyaW5nVXJsICDjgqjjg7PjgrPjg7zjg4njgZXjgozjgZ\/lhbHmnIkgVVJMCiAgKi8KZnVuY3Rpb24gZW5jb2RlU2hhcmluZ1VybCggc2hhcmluZ1VybCApIHsKICBsZXQgZW5jb2RlZFNoYXJpbmdVcmwgPSBiYXNlNjQuZW5jb2RlVG9VcmxTYWZlU3RyaW5nKCBzaGFyaW5nVXJsICk7CiAgd2hpbGUgKCBlbmNvZGVkU2hhcmluZ1VybC5zbGljZSgtMSkgPT09ICYjMzk7PSYjMzk7ICkgewogICAgZW5jb2RlZFNoYXJpbmdVcmwgPSBlbmNvZGVkU2hhcmluZ1VybC5zbGljZSgwLC0xKTsKICB9CiAgcmV0dXJuIGB1ISR7ZW5jb2RlZFNoYXJpbmdVcmx9YDsKfQoKLyoqCiAgKiDmjIflrprjgrfjg7zjg4jjga7mjIflrprooYzjgavjg4fjg7zjgr\/jgpLlhaXlipvjgZnjgosKICAqIEBwYXJhbSB7T2JqZWN0fSBib29rSW5mbwogICogQHBhcmFtIHtTdHJpbmd9IGJvb2tJbmZvLmRyaXZlSWQgIOODr+ODvOOCr+ODluODg+OCr+OBruODieODqeOCpOODliBJRAogICogQHBhcmFtIHtTdHJpbmd9IGJvb2tJbmZvLmZpbGVJZCAg44Ov44O844Kv44OW44OD44Kv44Gu44OV44Kh44Kk44OrIElECiAgKiBAcGFyYW0ge1N0cmluZ30gdGFibGVOYW1lICDmjL\/lhaXlhYjjgrfjg7zjg4jjga7lkI3liY0KICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyAg5oy\/5YWl44GZ44KL44OH44O844K\/44Gu6YWN5YiXCiAgKiBAcGFyYW0ge1N0cmluZ30gb2F1dGgyICBPQXV0aDIg6Kit5a6aCiAgKi8KZnVuY3Rpb24gcG9zdERhdGEoIHtkcml2ZUlkLCBmaWxlSWR9LCB0YWJsZU5hbWUsIHZhbHVlcywgb2F1dGgyICl7CgogIGNvbnN0IHBvc3RVcmkgPSBgJHtHUkFQSF9VUkl9JHtkcml2ZUlkfS9pdGVtcy8ke2ZpbGVJZH0vd29ya2Jvb2svdGFibGVzLyR7dGFibGVOYW1lfS9yb3dzYDsKLy8gIGNvbnN0IHBvc3RVcmkgPSBgJHtHUkFQSF9VUkl9bWUvZHJpdmUvaXRlbXMvJHtmaWxlSWR9L3dvcmtib29rL3RhYmxlcy8ke3RhYmxlTmFtZX0vcm93c2A7CiAgY29uc3QgcmVxdWVzdEJvZHkgPSBtYWtlUmVxdWVzdFRvQWRkKHZhbHVlcyk7Ci8vZW5naW5lLmxvZygmcXVvdDtqc29uOiZxdW90OyArIEpTT04uc3RyaW5naWZ5KHJlcXVlc3RCb2R5KSArICZxdW90OyZxdW90OykKCiAgY29uc3QgcmVzcG9uc2UgPSBodHRwQ2xpZW50LmJlZ2luKCkKICAgIC5hdXRoU2V0dGluZyggb2F1dGgyICkKICAgIC5ib2R5KCBKU09OLnN0cmluZ2lmeShyZXF1ZXN0Qm9keSksICZxdW90O2FwcGxpY2F0aW9uL2pzb24mcXVvdDsgKQogICAgLnBvc3QoIHBvc3RVcmkgKTsKICAKICBsb2dBbmRKdWRnZUVycm9yKHJlc3BvbnNlLCAmcXVvdDtQT1NUJnF1b3Q7KTsKCiAgY29uc3QgZGF0YUlkID0gY29uZmlncy5nZXQoICZxdW90O2NvbmZfSW5kZXhOdW0mcXVvdDsgKTsKICBpZiAoIGRhdGFJZCApewogICAgY29uc3QganNvbk9iaiA9IEpTT04ucGFyc2UoIHJlc3BvbnNlLmdldFJlc3BvbnNlQXNTdHJpbmcoKSApOwogICAgY29uc3QgaW5kZXggPSBqc29uT2JqLmluZGV4ICsgJnF1b3Q7JnF1b3Q7OwogICAgZW5naW5lLnNldERhdGFCeU51bWJlciggZGF0YUlkLCBpbmRleCArICZxdW90OyZxdW90OyApOwogIH0KCn0KCi8qKgogICog5paw44GX44GE6KGM44Gr6L+95Yqg44GZ44KL44OH44O844K\/44KS44CBSlNPTiDlvaLlvI\/jgavlpInmj5vjgZnjgosKICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyAg44OH44O844K\/44Gu5YWl44Gj44Gf6YWN5YiXCiAgKiBAcmV0dXJuIHtKU09OIE9iamVjdH0g5aSJ5o+b44GX44GfIEpTT04g44Kq44OW44K444Kn44Kv44OICiAgKi8KZnVuY3Rpb24gbWFrZVJlcXVlc3RUb0FkZCh2YWx1ZXMpewogIGxldCByZXF1ZXN0ID0gewogICAgdmFsdWVzIDogW1tdXQogIH07CiAgZm9yKGxldCBpID0gMDsgaSAmbHQ7IHZhbHVlcy5sZW5ndGg7IGkrKyl7CiAgICBpZih2YWx1ZXNbaV0gPT09ICZxdW90OyZxdW90OyB8fCB2YWx1ZXNbaV0gPT09IG51bGwpewogICAgICByZXF1ZXN0LnZhbHVlc1swXS5wdXNoKG51bGwpOwogICAgfWVsc2V7CiAgICAgIGlmKHZhbHVlc1tpXS5sZW5ndGggJmd0OyAzMjc2Nyl7CiAgICAgICAgdGhyb3cgJnF1b3Q7Q2FuJiMzOTt0IHNldCB0ZXh0IG92ZXIgMzIsNzY3IGNoYXJhY3Rlci4mcXVvdDs7CiAgICAgIH0KICAgICAgcmVxdWVzdC52YWx1ZXNbMF0ucHVzaCh2YWx1ZXNbaV0pOwogICAgfQogIH0KICByZXR1cm4gcmVxdWVzdDsKfQoKLyoqCiAgKiDjg63jgrDjga7lh7rlipvjgajjgIHjgqjjg6njg7znmbrnlJ\/mmYLjga7jgrnjg63jg7zjgpLooYzjgYYKICAqIEBwYXJhbSB7SHR0cFJlc3BvbnNlV3JhcHBlcn0gcmVzcG9uc2UgIOODquOCr+OCqOOCueODiOOBruW\/nOetlAogICogQHBhcmFtIHtTdHJpbmd9IHJlcXVlc3RUeXBlIOODquOCr+OCqOOCueODiOOCkuOBqeOBruW9ouW8j+OBp+ihjOOBo+OBn+OBiygmcXVvdDtHRVQmcXVvdDsgb3IgJnF1b3Q7UE9TVCZxdW90OyBvciAmcXVvdDtQQVRDSCZxdW90OykKICAqIEByZXR1cm4ge1N0cmluZ30gcmVzcG9uc2VTdHIg44Os44K544Od44Oz44K544Gu5paH5a2X5YiXCiAgKi8KZnVuY3Rpb24gbG9nQW5kSnVkZ2VFcnJvcihyZXNwb25zZSwgcmVxdWVzdFR5cGUpewogIGNvbnN0IHJlc3BvbnNlU3RyID0gcmVzcG9uc2UuZ2V0UmVzcG9uc2VBc1N0cmluZygpOwovL2VuZ2luZS5sb2coJnF1b3Q7cmVzcG9uc2U6JnF1b3Q7ICsgcmVzcG9uc2VTdHIpOwogIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLmdldFN0YXR1c0NvZGUoKTsKICBpZihzdGF0dXMgJmd0Oz0gMzAwKXsKICAgIGNvbnN0IGFjY2Vzc0xvZyA9IGAtLS0ke3JlcXVlc3RUeXBlfSByZXF1ZXN0LS0tICR7c3RhdHVzfVxuJHtyZXNwb25zZVN0cn1cbmA7CiAgICBlbmdpbmUubG9nKGFjY2Vzc0xvZyk7CiAgICB0aHJvdyBgRmFpbGVkIGluICR7cmVxdWVzdFR5cGV9IHJlcXVlc3QuIHN0YXR1czogJHtzdGF0dXN9YDsKICB9CiAgcmV0dXJuIHJlc3BvbnNlU3RyOwp9CjwvY29kZT48L3ByZT48L2Rpdj4KPCEtLSAvd3A6bG9vcy1oY2IvY29kZS1ibG9jayAtLT48L2Rpdj48L2RldGFpbHM+PC9kaXY+CjwhLS0gL3dwOmNvYmxvY2tzL2FjY29yZGlvbi1pdGVtIC0tPjwvZGl2Pgo8IS0tIC93cDpjb2Jsb2Nrcy9hY2NvcmRpb24gLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6Mywic3R5bGUiOnsic3BhY2luZyI6eyJtYXJnaW4iOnsidG9wIjoidmFyOnByZXNldHxzcGFjaW5nfDYwIn19fX0gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgc3R5bGU9Im1hcmdpbi10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNjApIj48c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5Eb3dubG9hZDwvc3Bhbj48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PGEgcmVsPSJub3JlZmVycmVyIG5vb3BlbmVyIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIj5leGNlbC10YWJsZS1yb3ctY3JlYXRlLWZsZXhpYmxlLnhtbDwvYT48IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4yMDIzLTA3LTAzIChDKSBRdWVzdGV0cmEsIEluYy4gKE1JVCBMaWNlbnNlKTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpodG1sIC0tPgo8ZGl2IGNsYXNzPSJoYXMtc21hbGwtZm9udC1zaXplIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6ICNGQkU3REQ7IHRleHQtYWxpZ246IGNlbnRlcjsiPgo8c3BhbiBjbGFzcz0ibWF0ZXJpYWwtaWNvbnMiPndhcm5pbmc8L3NwYW4+IOiHqueUseaUueWkieWPr+iDveOBqiBKYXZhU2NyaXB0IChFQ01BU2NyaXB0KSDjgrPjg7zjg4njgafjgZnjgILjgYTjgYvjgarjgovkv53oqLzjgoLjgYLjgorjgb7jgZvjgpPjgII8YnI+Cig8ZW0+PHN0cm9uZz7jgqLjg4njgqrjg7Poh6rli5Xlt6XnqIs8L3N0cm9uZz48L2VtPuOBruOCpOODs+OCueODiOODvOODq+OBryA8ZW0+PHN0cm9uZz48c3BhbiBzdHlsZT0iY29sb3I6ICMxOTcwQjkiPlByb2Zlc3Npb25hbDwvc3Bhbj48L3N0cm9uZz48L2VtPiBlZGl0aW9u44Gn44Gu44G\/5Y+v6IO944Gn44GZKQo8L2Rpdj48L2Rpdj4KPCEtLSAvd3A6aHRtbCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozLCJzdHlsZSI6eyJzcGFjaW5nIjp7Im1hcmdpbiI6eyJ0b3AiOiJ2YXI6cHJlc2V0fHNwYWNpbmd8NjAifX19fSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBzdHlsZT0ibWFyZ2luLXRvcDp2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS02MCkiPjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPk5vdGVzPC9zcGFuPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5NaWNyb3NvZnQzNjUg57O744Gu44K144O844OT44K544Go44Gu6YCj5pC66Kit5a6a44Gr44Gk44GE44GmPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+TWljcm9zb2Z0MzY177yIQXp1cmUgQWN0aXZlIERpcmVjdG9yee+8ieWBtOOBruOCouODl+ODquOCseODvOOCt+ODp+ODs+eZu+mMsuOBruaWueazlTwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPiI8YSByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5xdWVzdGV0cmEuY29tL2phL2RldmVsb3Blci1ibG9nL29mZmljZTM2NS1hcHAtcmVnaXN0LyIgdGFyZ2V0PSJfYmxhbmsiPk9mZmljZTM2NSDjgajjgq\/jg6njgqbjg4njg6\/jg7zjgq\/jg5Xjg63jg7wgUXVlc3RldHJhIOOCkiBBUEkg6YCj5pC644GV44Gb44Gf44GE5aC05ZCI44GrPC9hPiI8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlF1ZXN0ZXRyYSDlgbTjga4gSFRUUCDoqo3oqLzoqK3lrprjga7mlrnms5U8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4iPGEgcmVsPSJub3JlZmVycmVyIG5vb3BlbmVyIiBocmVmPSJodHRwczovL3N1cHBvcnQucXVlc3RldHJhLmNvbS9qYS9kZXZlbG9wZXItYmxvZy9vbmVkcml2ZS1xdWVzdGV0cmEvIiB0YXJnZXQ9Il9ibGFuayI+T25lRHJpdmUg44G444Kv44Op44Km44OJ44Ov44O844Kv44OV44Ot44O8IFF1ZXN0ZXRyYSDjgYvjgonjg5XjgqHjgqTjg6vlh7rlipvjgZnjgovmlrnms5U8L2E+IjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPiIyLjI6IFF1ZXN0ZXRyYSDlgbTjga4gT0F1dGgg6Kit5a6aIjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+4oC75rOo5oSP4oC744CARXhjZWwgT25saW5lIOODleOCoeOCpOODq+OBjCBTaGFyZVBvaW50IE9ubGluZe+8iFNQT++8ieOBruODieOCreODpeODoeODs+ODiOODqeOCpOODluODqeODquS4iuOBq+OBguOCi+WgtOWQiOOAgeaMh+WumuOBmeOBueOBjeOCueOCs+ODvOODl+OBjOeVsOOBquOCizwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlNQT+ODieOCreODpeODoeODs+ODiOODqeOCpOODluODqeODquS4iuOBp+OBr+OBquOBhCDihpJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vPHN0cm9uZz5GaWxlczwvc3Ryb25nPi5SZWFkV3JpdGUgb2ZmbGluZV9hY2Nlc3M8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlNQT+ODieOCreODpeODoeODs+ODiOODqeOCpOODluODqeODquS4iuOBq+OBguOCiyDihpJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vPHN0cm9uZz5TaXRlczwvc3Ryb25nPi5SZWFkV3JpdGUuQWxsIG9mZmxpbmVfYWNjZXNzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5FeGNlbOWBtOOBq+OAjOODhuODvOODluODq+OAjeOBruioreWumuOBjOW\/heimgeOBq+OBquOCiuOBvuOBmeOAgjxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MubnR0LWVhc3QuY28uanAvY29sdW1uL2JpemRyaXZlL2V4Y2VsLXRhYmxlLW1hc3Rlci1pbi01bWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIj7jgZPjgaHjgonjga7jg5rjg7zjgrg8L2E+44KS5Y+C6ICD44Gr44GX44Gm44GP44Gg44GV44GE44CCPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7jgrfjg7zjg4jlkI3jgavjgqvjg4PjgrPnrYnjga7oqJjlj7fjgYzlhaXjgaPjgabjgYTjgovloLTlkIjjgavjga\/jgqjjg6njg7zjgavjgarjgovjgZPjgajjgYzjgYLjgorjgb7jgZnjgILjgqjjg6njg7zjgajjgarjgaPjgZ\/loLTlkIjjgavjga\/jgrfjg7zjg4jlkI3jga7lpInmm7TjgpLmpJzoqI7jgZfjgabjgY\/jgaDjgZXjgYTjgII8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozLCJzdHlsZSI6eyJzcGFjaW5nIjp7Im1hcmdpbiI6eyJ0b3AiOiJ2YXI6cHJlc2V0fHNwYWNpbmd8NjAifX19fSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBzdHlsZT0ibWFyZ2luLXRvcDp2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS02MCkiPjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPkNhcHR1cmU8L3NwYW4+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6aW1hZ2UgeyJpZCI6MTgwMzA4LCJzaXplU2x1ZyI6ImxhcmdlIiwibGlua0Rlc3RpbmF0aW9uIjoibm9uZSIsImFsaWduIjoiY2VudGVyIiwiY2xhc3NOYW1lIjoiaXMtc3R5bGUtcm91bmRlZCIsInN0eWxlIjp7ImJvcmRlciI6eyJyYWRpdXMiOiI5cHgiLCJjb2xvciI6IiMwMDk5MDAiLCJ3aWR0aCI6IjNweCJ9fX0gLS0+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIGFsaWduY2VudGVyIHNpemUtbGFyZ2UgaGFzLWN1c3RvbS1ib3JkZXIgaXMtc3R5bGUtcm91bmRlZCI+PGltZyBzcmM9Imh0dHBzOi8vc3VwcG9ydC5xdWVzdGV0cmEuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAxL2V4Y2VsLXRhYmxlLXJvdy1jcmVhdGUtZmxleGlibGUtY2FwdHVyZS1jb25maWctamEtNzQ2eDYzMC5qcGciIGFsdD0iIiBjbGFzcz0iaGFzLWJvcmRlci1jb2xvciB3cC1pbWFnZS0xODAzMDgiIHN0eWxlPSJib3JkZXItY29sb3I6IzAwOTkwMDtib3JkZXItd2lkdGg6M3B4O2JvcmRlci1yYWRpdXM6OXB4Ii8+PC9maWd1cmU+CjwhLS0gL3dwOmltYWdlIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjMsInN0eWxlIjp7InNwYWNpbmciOnsibWFyZ2luIjp7InRvcCI6InZhcjpwcmVzZXR8c3BhY2luZ3w2MCJ9fX19IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIHN0eWxlPSJtYXJnaW4tdG9wOnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTYwKSI+PHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+QXBwZW5kaXg8L3NwYW4+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7jgZPjga7jgqLjg4njgqrjg7NYTUzjga\/jgIHjg4bjg7zjg5bjg6vjgpLliKnnlKjjgZfjgabjgYTjgovjga7jgafjgIHjgIw8YSBocmVmPSJodHRwczovL3N1cHBvcnQucXVlc3RldHJhLmNvbS9qYS9hZGRvbnMvZXhjZWwtcm93LWFwcGVuZC0yMDIzMDcvIiB0YXJnZXQ9Il9ibGFuayI+TWljcm9zb2Z0IDM2NSBFeGNlbDog6KGM6L+95YqgPC9hPuOAjeOCiOOCiuOCguertuWQiOOBq+W8t+OBhOS9nOOCiuOBqOOBquOBo+OBpuOBhOOBvuOBmeOAgjxicj4g4oC744CMTWljcm9zb2Z0IDM2NSBFeGNlbDog6KGM6L+95Yqg44CN44Gu5YaF6YOo5Yem55CG44Go44GX44Gm44Gv44CB5YCk44G+44Gf44Gv5pu45byP6Kit5a6a44GM5Ymy44KK5b2T44Gf44Gj44Gm44GE44KL44K744Or56+E5Zuy44GL44KJ5pyr5bC+6KGM44KS5Yik5a6a77yI5YaF6YOo55qE44GrIHVzZWRSYW5nZSgpIOOCkuWIqeeUqO+8ieOBl+OAgeihjOi\/veWKoOOCkuihjOOBhOOBvuOBmeOAgiDjgZ3jga7jgZ\/jgoHjgIHopIfmlbDjga7jg5fjg63jgrvjgrnjgYvjgonlkIzmmYLjgavlrp\/ooYzjgZXjgozjgZ\/loLTlkIjjgIHnq7blkIjjgavjgojjgorlh6bnkIbjgYzmraPluLjjgavlrozkuobjgZfjgarjgYTlj6\/og73mgKfjgYzjgYLjgorjgb7jgZnjgIIgPGJyPjxicj4g44G+44Gf44CB44CM6L+95Yqg44GX44Gf44GE44Kr44Op44Og44Gu44OV44Kj44O844Or44OJ5ZCN44CN44Gr44KI44KK6L+95Yqg44GX44Gf44GE5YiX44KS5aSa5pWw5oyH5a6a44GZ44KL44GT44Go44GM44Gn44GN44CB44CMTWljcm9zb2Z0IDM2NSBFeGNlbDog44OG44O844OW44Or6KGM6L+95Yqg44CN44KI44KK44KC5LiA5bqm44Gr5aSa44GP44Gu5YiX44Gr5YCk44KS5YWl5Yqb44GZ44KL44GT44Go44GM44Gn44GN44G+44GZ44CCPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6Mywic3R5bGUiOnsic3BhY2luZyI6eyJtYXJnaW4iOnsidG9wIjoidmFyOnByZXNldHxzcGFjaW5nfDYwIn19fX0gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgc3R5bGU9Im1hcmdpbi10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNjApIj48c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5TZWUgQWxzbzwvc3Bhbj48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDplbWJlZCB7InVybCI6Imh0dHBzOi8vc3VwcG9ydC5xdWVzdGV0cmEuY29tL2phL2FkZG9ucy9leGNlbC10YWJsZS1yb3ctY3JlYXRlLyIsInR5cGUiOiJ3cC1lbWJlZCIsInByb3ZpZGVyTmFtZVNsdWciOiJxdWVzdGV0cmEtc3VwcG9ydCJ9IC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1lbWJlZCBpcy10eXBlLXdwLWVtYmVkIGlzLXByb3ZpZGVyLXF1ZXN0ZXRyYS1zdXBwb3J0IHdwLWJsb2NrLWVtYmVkLXF1ZXN0ZXRyYS1zdXBwb3J0Ij48ZGl2IGNsYXNzPSJ3cC1ibG9jay1lbWJlZF9fd3JhcHBlciI+Cmh0dHBzOi8vc3VwcG9ydC5xdWVzdGV0cmEuY29tL2phL2FkZG9ucy9leGNlbC10YWJsZS1yb3ctY3JlYXRlLwo8L2Rpdj48L2ZpZ3VyZT4KPCEtLSAvd3A6ZW1iZWQgLS0+Cgo8IS0tIHdwOmVtYmVkIHsidXJsIjoiaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vamEvYWRkb25zL2V4Y2VsLXJvdy1hcHBlbmQtMjAyMzA3LyIsInR5cGUiOiJ3cC1lbWJlZCIsInByb3ZpZGVyTmFtZVNsdWciOiJxdWVzdGV0cmEtc3VwcG9ydCJ9IC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1lbWJlZCBpcy10eXBlLXdwLWVtYmVkIGlzLXByb3ZpZGVyLXF1ZXN0ZXRyYS1zdXBwb3J0IHdwLWJsb2NrLWVtYmVkLXF1ZXN0ZXRyYS1zdXBwb3J0Ij48ZGl2IGNsYXNzPSJ3cC1ibG9jay1lbWJlZF9fd3JhcHBlciI+Cmh0dHBzOi8vc3VwcG9ydC5xdWVzdGV0cmEuY29tL2phL2FkZG9ucy9leGNlbC1yb3ctYXBwZW5kLTIwMjMwNy8KPC9kaXY+PC9maWd1cmU+CjwhLS0gL3dwOmVtYmVkIC0tPmRvY3VtZW50ZXhjZXJwdOODhuODvOODluODq+OBruacq+WwvuOBqzHooYzov73liqDjgZfjgIHjgZ3jga7lkITjgrvjg6vjgavjg4fjg7zjgr\/jgpLlhaXlipvjgZfjgb7jgZnjgIJkb2N1bWVudGF1dGhvcmRvY3VtZW50ZmVhdHVyZWRfbWVkaWFkb2N1bWVudGNvbW1lbnRfc3RhdHVzZG9jdW1lbnRwaW5nX3N0YXR1c2RvY3VtZW50c3RpY2t5ZG9jdW1lbnR0ZW1wbGF0ZWRvY3VtZW50Zm9ybWF0ZG9jdW1lbnRtZXRhX2NvYmxvY2tzX2F0dHJfY29ibG9ja3NfZGltZW5zaW9uc19jb2Jsb2Nrc19yZXNwb25zaXZlX2hlaWdodF9jb2Jsb2Nrc19hY2NvcmRpb25faWVfc3VwcG9ydF91YWdfY3VzdG9tX3BhZ2VfbGV2ZWxfY3Nzc2l0ZS1zaWRlYmFyLWxheW91dHNpdGUtY29udGVudC1sYXlvdXRhc3Qtc2l0ZS1jb250ZW50LWxheW91dHNpdGUtY29udGVudC1zdHlsZXNpdGUtc2lkZWJhci1zdHlsZWFzdC1nbG9iYWwtaGVhZGVyLWRpc3BsYXlhc3QtYmFubmVyLXRpdGxlLXZpc2liaWxpdHlhc3QtbWFpbi1oZWFkZXItZGlzcGxheWFzdC1oZmItYWJvdmUtaGVhZGVyLWRpc3BsYXlhc3QtaGZiLWJlbG93LWhlYWRlci1kaXNwbGF5YXN0LWhmYi1tb2JpbGUtaGVhZGVyLWRpc3BsYXlzaXRlLXBvc3QtdGl0bGVhc3QtYnJlYWRjcnVtYnMtY29udGVudGFzdC1mZWF0dXJlZC1pbWdmb290ZXItc21sLWxheW91dGFzdC1kaXNhYmxlLXJlbGF0ZWQtcG9zdHN0aGVtZS10cmFuc3BhcmVudC1oZWFkZXItbWV0YWFkdi1oZWFkZXItaWQtbWV0YXN0aWNrLWhlYWRlci1tZXRhaGVhZGVyLWFib3ZlLXN0aWNrLW1ldGFoZWFkZXItbWFpbi1zdGljay1tZXRhaGVhZGVyLWJlbG93LXN0aWNrLW1ldGFhc3RyYS1taWdyYXRlLW1ldGEtbGF5b3V0c2FzdC1wYWdlLWJhY2tncm91bmQtZW5hYmxlZGFzdC1wYWdlLWJhY2tncm91bmQtbWV0YWFzdC1jb250ZW50LWJhY2tncm91bmQtbWV0YWFkdmFuY2VkX3Nlb19kZXNjcmlwdGlvbmpldHBhY2tfc2VvX2h0bWxfdGl0bGVqZXRwYWNrX3Nlb19ub2luZGV4amV0cGFja19wb3N0X3dhc19ldmVyX3B1Ymxpc2hlZF9qZXRwYWNrX25ld3NsZXR0ZXJfYWNjZXNzX2pldHBhY2tfZG9udF9lbWFpbF9wb3N0X3RvX3N1YnNfamV0cGFja19uZXdzbGV0dGVyX3RpZXJfaWRfamV0cGFja19tZW1iZXJzaGlwc19jb250YWluc19wYXl3YWxsZWRfY29udGVudF9qZXRwYWNrX21lbWJlcnNoaXBzX2NvbnRhaW5zX3BhaWRfY29udGVudGZvb3Rub3Rlc2pldHBhY2tfcHVibGljaXplX21lc3NhZ2VqZXRwYWNrX3B1YmxpY2l6ZV9mZWF0dXJlX2VuYWJsZWRqZXRwYWNrX3NvY2lhbF9wb3N0X2FscmVhZHlfc2hhcmVkamV0cGFja19zb2NpYWxfb3B0aW9uc193cGFzX2N1c3RvbWl6ZV9wZXJfbmV0d29ya2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5NaWNyb3NvZnQgMzY1IEV4Y2VsOiDjg4bjg7zjg5bjg6vooYzov73liqAgKOmgheebruaVsOWPr+WkiSk8L3N0cm9uZz5sZXZlbHN0eWxlZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vb25zL2V4Y2VsLXRhYmxlLXJvdy1jcmVhdGUtZmxleGlibGUvIj5NaWNyb3NvZnQgMzY1IEV4Y2VsOiBUYWJsZSBSb3cgQ3JlYXRlIChGbGV4aWJsZSk8L2E+ZHJvcENhcGNsYXNzTmFtZXN0eWxlZm9udFNpemVmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRFeGNlbOOBruODhuODvOODluODq+OBruacq+WwvuOBqzHooYzov73liqDjgZfjgIHjgZ3jga7lkITjgrvjg6vjgavjg4fjg7zjgr\/jgpLlhaXlipvjgZfjgb7jgZnjgIJkcm9wQ2Fwc3R5bGVmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3VybGFsdGNhcHRpb25saW5rRGVzdGluYXRpb25hbGlnbmNsYXNzTmFtZXN0eWxlYm9yZGVyQ29sb3Jub0JvdHRvbU1hcmdpbm5vVG9wTWFyZ2luZmlsdGVyVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRhbXBMaWdodGJveGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb3VudHBvbHlmaWxsZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN0aXRsZW9wZW5mb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb3VudHBvbHlmaWxsZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN0aXRsZW9wZW5mb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvZGVsYW5nVHlwZWxhbmdOYW1lZmlsZU5hbWVkYXRhTGluZU51bWRhdGFTdGFydGlzTGluZVNob3dpc1Nob3dMYW5nVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPkRvd25sb2FkPC9zcGFuPmxldmVsc3R5bGVmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8YSByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiPmV4Y2VsLXRhYmxlLXJvdy1jcmVhdGUtZmxleGlibGUueG1sPC9hPlVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQyMDIzLTA3LTAzIChDKSBRdWVzdGV0cmEsIEluYy4gKE1JVCBMaWNlbnNlKVVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+Tm90ZXM8L3NwYW4+bGV2ZWxzdHlsZWZvbnRXZWlnaHR0ZXh0VHJhbnNmb3Jtbm9Cb3R0b21TcGFjaW5nbm9Ub3BTcGFjaW5nVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2ZvbnRXZWlnaHR0ZXh0VHJhbnNmb3Jtbm9Cb3R0b21TcGFjaW5nbm9Ub3BTcGFjaW5nVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudE1pY3Jvc29mdDM2NSDns7vjga7jgrXjg7zjg5Pjgrnjgajjga7pgKPmkLroqK3lrprjgavjgaTjgYTjgaZVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TWljcm9zb2Z0MzY177yIQXp1cmUgQWN0aXZlIERpcmVjdG9yee+8ieWBtOOBruOCouODl+ODquOCseODvOOCt+ODp+ODs+eZu+mMsuOBruaWueazlVVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQiPGEgcmVsPSJub3JlZmVycmVyIG5vb3BlbmVyIiBocmVmPSJodHRwczovL3N1cHBvcnQucXVlc3RldHJhLmNvbS9qYS9kZXZlbG9wZXItYmxvZy9vZmZpY2UzNjUtYXBwLXJlZ2lzdC8iIHRhcmdldD0iX2JsYW5rIj5PZmZpY2UzNjUg44Go44Kv44Op44Km44OJ44Ov44O844Kv44OV44Ot44O8IFF1ZXN0ZXRyYSDjgpIgQVBJIOmAo+aQuuOBleOBm+OBn+OBhOWgtOWQiOOBqzwvYT4iVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFF1ZXN0ZXRyYSDlgbTjga4gSFRUUCDoqo3oqLzoqK3lrprjga7mlrnms5VVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50IjxhIHJlbD0ibm9yZWZlcnJlciBub29wZW5lciIgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vamEvZGV2ZWxvcGVyLWJsb2cvb25lZHJpdmUtcXVlc3RldHJhLyIgdGFyZ2V0PSJfYmxhbmsiPk9uZURyaXZlIOOBuOOCr+ODqeOCpuODieODr+ODvOOCr+ODleODreODvCBRdWVzdGV0cmEg44GL44KJ44OV44Kh44Kk44Or5Ye65Yqb44GZ44KL5pa55rOVPC9hPiJVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50IjIuMjogUXVlc3RldHJhIOWBtOOBriBPQXV0aCDoqK3lrpoiVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOKAu+azqOaEj+KAu+OAgEV4Y2VsIE9ubGluZSDjg5XjgqHjgqTjg6vjgYwgU2hhcmVQb2ludCBPbmxpbmXvvIhTUE\/vvInjga7jg4njgq3jg6Xjg6Hjg7Pjg4jjg6njgqTjg5bjg6njg6rkuIrjgavjgYLjgovloLTlkIjjgIHmjIflrprjgZnjgbnjgY3jgrnjgrPjg7zjg5fjgYznlbDjgarjgotVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50U1BP44OJ44Kt44Ol44Oh44Oz44OI44Op44Kk44OW44Op44Oq5LiK44Gn44Gv44Gq44GEIOKGkmh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS88c3Ryb25nPkZpbGVzPC9zdHJvbmc+LlJlYWRXcml0ZSBvZmZsaW5lX2FjY2Vzc1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRTUE\/jg4njgq3jg6Xjg6Hjg7Pjg4jjg6njgqTjg5bjg6njg6rkuIrjgavjgYLjgosg4oaSaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tLzxzdHJvbmc+U2l0ZXM8L3N0cm9uZz4uUmVhZFdyaXRlLkFsbCBvZmZsaW5lX2FjY2Vzc1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRFeGNlbOWBtOOBq+OAjOODhuODvOODluODq+OAjeOBruioreWumuOBjOW\/heimgeOBq+OBquOCiuOBvuOBmeOAgjxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MubnR0LWVhc3QuY28uanAvY29sdW1uL2JpemRyaXZlL2V4Y2VsLXRhYmxlLW1hc3Rlci1pbi01bWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIj7jgZPjgaHjgonjga7jg5rjg7zjgrg8L2E+44KS5Y+C6ICD44Gr44GX44Gm44GP44Gg44GV44GE44CCVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudOOCt+ODvOODiOWQjeOBq+OCq+ODg+OCs+etieOBruiomOWPt+OBjOWFpeOBo+OBpuOBhOOCi+WgtOWQiOOBq+OBr+OCqOODqeODvOOBq+OBquOCi+OBk+OBqOOBjOOBguOCiuOBvuOBmeOAguOCqOODqeODvOOBqOOBquOBo+OBn+WgtOWQiOOBq+OBr+OCt+ODvOODiOWQjeOBruWkieabtOOCkuaknOiojuOBl+OBpuOBj+OBoOOBleOBhOOAglVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5DYXB0dXJlPC9zcGFuPmxldmVsc3R5bGVmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3VybGFsdGNhcHRpb25pZHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uYWxpZ25jbGFzc05hbWVzdHlsZW5vQm90dG9tTWFyZ2lubm9Ub3BNYXJnaW5maWx0ZXJVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGFtcExpZ2h0Ym94aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5BcHBlbmRpeDwvc3Bhbj5sZXZlbHN0eWxlZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW5044GT44Gu44Ki44OJ44Kq44OzWE1M44Gv44CB44OG44O844OW44Or44KS5Yip55So44GX44Gm44GE44KL44Gu44Gn44CB44CMPGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vamEvYWRkb25zL2V4Y2VsLXJvdy1hcHBlbmQtMjAyMzA3LyIgdGFyZ2V0PSJfYmxhbmsiPk1pY3Jvc29mdCAzNjUgRXhjZWw6IOihjOi\/veWKoDwvYT7jgI3jgojjgorjgoLnq7blkIjjgavlvLfjgYTkvZzjgorjgajjgarjgaPjgabjgYTjgb7jgZnjgII8YnI+IOKAu+OAjE1pY3Jvc29mdCAzNjUgRXhjZWw6IOihjOi\/veWKoOOAjeOBruWGhemDqOWHpueQhuOBqOOBl+OBpuOBr+OAgeWApOOBvuOBn+OBr+abuOW8j+ioreWumuOBjOWJsuOCiuW9k+OBn+OBo+OBpuOBhOOCi+OCu+ODq+evhOWbsuOBi+OCieacq+WwvuihjOOCkuWIpOWumu+8iOWGhemDqOeahOOBqyB1c2VkUmFuZ2UoKSDjgpLliKnnlKjvvInjgZfjgIHooYzov73liqDjgpLooYzjgYTjgb7jgZnjgIIg44Gd44Gu44Gf44KB44CB6KSH5pWw44Gu44OX44Ot44K744K544GL44KJ5ZCM5pmC44Gr5a6f6KGM44GV44KM44Gf5aC05ZCI44CB56u25ZCI44Gr44KI44KK5Yem55CG44GM5q2j5bi444Gr5a6M5LqG44GX44Gq44GE5Y+v6IO95oCn44GM44GC44KK44G+44GZ44CCIDxicj48YnI+IOOBvuOBn+OAgeOAjOi\/veWKoOOBl+OBn+OBhOOCq+ODqeODoOOBruODleOCo+ODvOODq+ODieWQjeOAjeOBq+OCiOOCiui\/veWKoOOBl+OBn+OBhOWIl+OCkuWkmuaVsOaMh+WumuOBmeOCi+OBk+OBqOOBjOOBp+OBjeOAgeOAjE1pY3Jvc29mdCAzNjUgRXhjZWw6IOODhuODvOODluODq+ihjOi\/veWKoOOAjeOCiOOCiuOCguS4gOW6puOBq+WkmuOBj+OBruWIl+OBq+WApOOCkuWFpeWKm+OBmeOCi+OBk+OBqOOBjOOBp+OBjeOBvuOBmeOAgmRyb3BDYXBmb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5TZWUgQWxzbzwvc3Bhbj5sZXZlbHN0eWxlZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxjYXB0aW9udHlwZXByb3ZpZGVyTmFtZVNsdWdhbGxvd1Jlc3BvbnNpdmVyZXNwb25zaXZlcHJldmlld2FibGVVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxjYXB0aW9udHlwZXByb3ZpZGVyTmFtZVNsdWdhbGxvd1Jlc3BvbnNpdmVyZXNwb25zaXZlcHJldmlld2FibGVVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzc3RhdGV2ZXJzaW9uPHAgY2xhc3M9Imhhcy10ZXh0LWFsaWduLXJpZ2h0IGhhcy1iYWNrZ3JvdW5kIGhhcy1zbWFsbC1mb250LXNpemUgbXQtMCBwdC0wIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZjY2ZmO21hcmdpbi10b3A6MDttYXJnaW4tcmlnaHQ6MDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLXRvcDowO3BhZGRpbmctcmlnaHQ6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMzApO3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy1sZWZ0OnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTMwKSI+PGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vYnBtbi1pY29ucy9leGNlbC10YWJsZS1yb3ctY3JlYXRlLWZsZXhpYmxlLyI+TWljcm9zb2Z0IDM2NSBFeGNlbDogVGFibGUgUm93IENyZWF0ZSAoRmxleGlibGUpPC9hPjwvcD4KYnBtbi1pYwUHCAQIBAgGCAUkCAeED7GhAggHHggGCA4IDggLCAZIAQYIBA4UGx4aUwAXUgAZGxdcAB0PFxARGR0SERcWFxobGBsYFhMfGiAbLyoJGSEiFhsICggECAYIBw8ECgc1RQAKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgcnmgEHCQUICg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBAoHJAcFCg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBApDAAcPBQkFCw4LBg5KAAsMBhdQABFSAAsREw9LAAgHDwQKBQgKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgUECg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBAoHDkoACwwGF1AAEVIACxETDwsIBw8ECgUICg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBAoFBAoNDwwOSgALDAYXUAARUgALERMPCwgHDwQKBEgBCwlKAA5KAAsMBhdQABFSAAsREw8LCAcPBAoHOUUACg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBAoHBgoNDwwOSgALDAYXUAARUgALERMPCwgHDwQKB5wBDkoACwwGF1AAEVIACxETDwsIBw8ECgcGCg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBAoHLA5KAAsMBhdQABFSAAsREw8LCAcPBAoHDkoACwwGF1AAEVIACxETDwsIBw8ECgc2RQAKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgcGCg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBAoHHQ5KAAsMBhdQABFSAAsREw8LCAcPBAoHBgoNDwwOSgALDAYXUAARUgALERMPCwgHDwQKBzMOSgALDAYXUAARUgALERMPCwgHDwQKBwYKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgevAg5KAAsMBhdQABFSAAsREw8LCAcPBAoHGQ5KAAsMBhdQABFSAAsREw8LCAcPBAoHBgoNDwwOSgALDAYXUAARUgALERMPCwgHDwQKB6kCDkoACwwGF1AAEVIACxETDwsIBw8ECgcGCg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBAoHHA5KAAsMBhdQABFSAAsREw8LCAcPBAoHjgEOSgALDAYXUAARUgALERMPCwgHDwQKBwYKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgegAQ5KAAsMBhdQABFSAAsREw8LCAcPBAoHowEOSgALDAYXUAARUgALERMPCwgHDwQKB5kCDkoACwwGF1AAEVIACxETDwsIBw8ECgeAAQ5KAAsMBhdQABFSAAsREw8LCAcPBAoHOEUACg0PDA5KAAsMBhdQABFSAAsREw8LCAcPBApDAAcCCA8FCQUOCwYOSgALDAYXUAARUgALERMPSwAIBw8ECgc5RQAKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgeqBgcKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgc5RQAKDQ8MDkoACwwGF1AAEVIACxETDwsIBw8ECgMHBBAPCgsOSgALDAYXUAARUgALERMPCwgHDwQKAwcEEA8KCw5KAAsMBhdQABFSAAsREw8LBQetBgcWAQQAAAEAAAABAAAAAQcALQECAPQIAZkBQgEBAEEAAgBBAAIAQQACAEEAAgBBAABBAABBAABBAABBAABBAABBAAIAQQAAQQACAEEAAEEAAgBBAABBAAIAQQAAQQACAEEAAEEAAgBBAABBAAIAQQACAEEAAEEAAgBBAABBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIACkECrAZBUwZBxAcC0gkAfQF3EzIwMjYtMDItMDVUMDk6Mzg6NDV3H2V4Y2VsLXRhYmxlLXJvdy1jcmVhdGUtZmxleGlibGV3B3B1Ymxpc2h9CX2JgRZ3BmNsb3NlZHcEb3Blbnl3AHcIc3RhbmRhcmR3AHcAdwB3AHcAdwdkZWZhdWx0dwB3B2RlZmF1bHR3B2RlZmF1bHR3B2RlZmF1bHR3AHcAdwB3AHcAdwB3AHcAdwB3AHcAdwB3AHcAdwB3AHcAdwdkZWZhdWx0dwdkZWZhdWx0dgMHZGVza3RvcHYMEGJhY2tncm91bmQtY29sb3J3ABBiYWNrZ3JvdW5kLWltYWdldwARYmFja2dyb3VuZC1yZXBlYXR3BnJlcGVhdBNiYWNrZ3JvdW5kLXBvc2l0aW9udw1jZW50ZXIgY2VudGVyD2JhY2tncm91bmQtc2l6ZXcEYXV0bxViYWNrZ3JvdW5kLWF0dGFjaG1lbnR3BnNjcm9sbA9iYWNrZ3JvdW5kLXR5cGV3ABBiYWNrZ3JvdW5kLW1lZGlhdwAMb3ZlcmxheS10eXBldwANb3ZlcmxheS1jb2xvcncAD292ZXJsYXktb3BhY2l0eXcAEG92ZXJsYXktZ3JhZGllbnR3AAZ0YWJsZXR2DBBiYWNrZ3JvdW5kLWNvbG9ydwAQYmFja2dyb3VuZC1pbWFnZXcAEWJhY2tncm91bmQtcmVwZWF0dwZyZXBlYXQTYmFja2dyb3VuZC1wb3NpdGlvbncNY2VudGVyIGNlbnRlcg9iYWNrZ3JvdW5kLXNpemV3BGF1dG8VYmFja2dyb3VuZC1hdHRhY2htZW50dwZzY3JvbGwPYmFja2dyb3VuZC10eXBldwAQYmFja2dyb3VuZC1tZWRpYXcADG92ZXJsYXktdHlwZXcADW92ZXJsYXktY29sb3J3AA9vdmVybGF5LW9wYWNpdHl3ABBvdmVybGF5LWdyYWRpZW50dwAGbW9iaWxldgwQYmFja2dyb3VuZC1jb2xvcncAEGJhY2tncm91bmQtaW1hZ2V3ABFiYWNrZ3JvdW5kLXJlcGVhdHcGcmVwZWF0E2JhY2tncm91bmQtcG9zaXRpb253DWNlbnRlciBjZW50ZXIPYmFja2dyb3VuZC1zaXpldwRhdXRvFWJhY2tncm91bmQtYXR0YWNobWVudHcGc2Nyb2xsD2JhY2tncm91bmQtdHlwZXcAEGJhY2tncm91bmQtbWVkaWF3AAxvdmVybGF5LXR5cGV3AA1vdmVybGF5LWNvbG9ydwAPb3ZlcmxheS1vcGFjaXR5dwAQb3ZlcmxheS1ncmFkaWVudHcAdgMHZGVza3RvcHYMEGJhY2tncm91bmQtY29sb3J3GXZhcigtLWFzdC1nbG9iYWwtY29sb3ItNSkQYmFja2dyb3VuZC1pbWFnZXcAEWJhY2tncm91bmQtcmVwZWF0dwZyZXBlYXQTYmFja2dyb3VuZC1wb3NpdGlvbncNY2VudGVyIGNlbnRlcg9iYWNrZ3JvdW5kLXNpemV3BGF1dG8VYmFja2dyb3VuZC1hdHRhY2htZW50dwZzY3JvbGwPYmFja2dyb3VuZC10eXBldwAQYmFja2dyb3VuZC1tZWRpYXcADG92ZXJsYXktdHlwZXcADW92ZXJsYXktY29sb3J3AA9vdmVybGF5LW9wYWNpdHl3ABBvdmVybGF5LWdyYWRpZW50dwAGdGFibGV0dgwQYmFja2dyb3VuZC1jb2xvcncZdmFyKC0tYXN0LWdsb2JhbC1jb2xvci01KRBiYWNrZ3JvdW5kLWltYWdldwARYmFja2dyb3VuZC1yZXBlYXR3BnJlcGVhdBNiYWNrZ3JvdW5kLXBvc2l0aW9udw1jZW50ZXIgY2VudGVyD2JhY2tncm91bmQtc2l6ZXcEYXV0bxViYWNrZ3JvdW5kLWF0dGFjaG1lbnR3BnNjcm9sbA9iYWNrZ3JvdW5kLXR5cGV3ABBiYWNrZ3JvdW5kLW1lZGlhdwAMb3ZlcmxheS10eXBldwANb3ZlcmxheS1jb2xvcncAD292ZXJsYXktb3BhY2l0eXcAEG92ZXJsYXktZ3JhZGllbnR3AAZtb2JpbGV2DBBiYWNrZ3JvdW5kLWNvbG9ydxl2YXIoLS1hc3QtZ2xvYmFsLWNvbG9yLTUpEGJhY2tncm91bmQtaW1hZ2V3ABFiYWNrZ3JvdW5kLXJlcGVhdHcGcmVwZWF0E2JhY2tncm91bmQtcG9zaXRpb253DWNlbnRlciBjZW50ZXIPYmFja2dyb3VuZC1zaXpldwRhdXRvFWJhY2tncm91bmQtYXR0YWNobWVudHcGc2Nyb2xsD2JhY2tncm91bmQtdHlwZXcAEGJhY2tncm91bmQtbWVkaWF3AAxvdmVybGF5LXR5cGV3AA1vdmVybGF5LWNvbG9ydwAPb3ZlcmxheS1vcGFjaXR5dwAQb3ZlcmxheS1ncmFkaWVudHcAdwB3AHl5dwB5fQB5eXcAdwB4eHYCGGltYWdlX2dlbmVyYXRvcl9zZXR0aW5nc3YECHRlbXBsYXRldwdoaWdod2F5EGRlZmF1bHRfaW1hZ2VfaWR9AARmb250dwAHZW5hYmxlZHkHdmVyc2lvbn0CeXUBfZkxdyRkY2U1NzRkYS01ZTgwLTRiZDItYjVhMy1lZWJkMjAxNWJjOTR4d+4CPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIGhhcy1iYWNrZ3JvdW5kIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZjY2ZmO21hcmdpbi10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMzApO21hcmdpbi1yaWdodDowO21hcmdpbi1ib3R0b206MDttYXJnaW4tbGVmdDowO3BhZGRpbmctdG9wOjA7cGFkZGluZy1yaWdodDp2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS0yMCk7cGFkZGluZy1ib3R0b206MDtwYWRkaW5nLWxlZnQ6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMjApIj48c3Ryb25nPk1pY3Jvc29mdCAzNjUgRXhjZWw6IOODhuODvOODluODq+ihjOi\/veWKoCAo6aCF55uu5pWw5Y+v5aSJKTwvc3Ryb25nPjwvaDQ+dwxjb3JlL2hlYWRpbmd9BHYCBWNvbG9ydgEKYmFja2dyb3VuZHcHI2ZmY2NmZgdzcGFjaW5ndgIHcGFkZGluZ3YEA3RvcHcBMAVyaWdodHcVdmFyOnByZXNldHxzcGFjaW5nfDIwBmJvdHRvbXcBMARsZWZ0dxV2YXI6cHJlc2V0fHNwYWNpbmd8MjAGbWFyZ2ludgQFcmlnaHR3ATAGYm90dG9tdwEwBGxlZnR3ATADdG9wdxV2YXI6cHJlc2V0fHNwYWNpbmd8MzB3AHcAeXl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh3DmNvcmUvcGFyYWdyYXBoeXcOaGFzLWJhY2tncm91bmR2AwdzcGFjaW5ndgIHcGFkZGluZ3YEA3RvcHcBMAVyaWdodHcVdmFyOnByZXNldHxzcGFjaW5nfDMwBmJvdHRvbXcBMARsZWZ0dxV2YXI6cHJlc2V0fHNwYWNpbmd8MzAGbWFyZ2ludgQDdG9wdwEwBXJpZ2h0dwEwBmJvdHRvbXcBMARsZWZ0dwEwBWNvbG9ydgEKYmFja2dyb3VuZHcHI2ZmY2NmZgp0eXBvZ3JhcGh5dgEJdGV4dEFsaWdudwVyaWdodHcFc21hbGx3AHcAeXh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckNGMwNGQ4OGUtOTgyMy00ODgxLTliOGQtNWE5OWNjNjU4OGM1eHeyAzxwIGNsYXNzPSJoYXMtYmFja2dyb3VuZCBtdC0wIHB0LTAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmYwZmY7bWFyZ2luLXRvcDowO21hcmdpbi1yaWdodDowO21hcmdpbi1ib3R0b206dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNjApO21hcmdpbi1sZWZ0OjA7cGFkZGluZy10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMjApO3BhZGRpbmctcmlnaHQ6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMzApO3BhZGRpbmctYm90dG9tOnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTIwKTtwYWRkaW5nLWxlZnQ6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNDApIj5FeGNlbOOBruODhuODvOODluODq+OBruacq+WwvuOBqzHooYzov73liqDjgZfjgIHjgZ3jga7lkITjgrvjg6vjgavjg4fjg7zjgr\/jgpLlhaXlipvjgZfjgb7jgZnjgII8L3A+dw5jb3JlL3BhcmFncmFwaHl2AgVjb2xvcnYBCmJhY2tncm91bmR3ByNmZmYwZmYHc3BhY2luZ3YCB3BhZGRpbmd2BAN0b3B3FXZhcjpwcmVzZXR8c3BhY2luZ3wyMAVyaWdodHcVdmFyOnByZXNldHxzcGFjaW5nfDMwBmJvdHRvbXcVdmFyOnByZXNldHxzcGFjaW5nfDIwBGxlZnR3FXZhcjpwcmVzZXR8c3BhY2luZ3w0MAZtYXJnaW52BAN0b3B3ATAFcmlnaHR3ATAGYm90dG9tdxV2YXI6cHJlc2V0fHNwYWNpbmd8NjAEbGVmdHcBMHcAdwB5eHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQ2MzU5ZjE0My04YjE5LTRkMTEtOGUxYi03Y2FkY2M1NjdkNDd4d80MPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2UgYWxpZ25yaWdodCBoYXMtY3VzdG9tLWJvcmRlciBpcy1zdHlsZS1kZWZhdWx0Ij48aW1nIHNyYz0iZGF0YTppbWFnZTtiYXNlNjQsCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFnQ0FZQUFBQnplbnIwQUFBQUFYTlNSMElBcnM0YzZRQUFBN3hKUkVGVVdFZkYKVjJsSVZGRVUvdTQ0T21OcVptcVpOZmtVczBXS05JT0NGa3lVTWlwYWFEV0Vnc2pDdHRHeXY5V1BGcWVGSUtNVjJneWp2U1JIU215egp4YklvMnN1SktLUTBNMGVkMFhGdXZLdnY4VWJmRzJkcVl1NnZ4N3YzblBQZGM3NnpYQUl2TCtLcS9jZ1ZNM3BwQWkxektDSEpCRFFCCklCeUFrRTc1ZW9DYUtFZ1ZvYlRNYXRaZStIYm9hck1ydW5zRXdPV21SNmlvYlJPbFdBbEE2NHBTQUJaQ2NOQk8xRHRNdTRwcm5NazQKQmNEcFUxY1NrSHdBQVM0YTducXNpWUxtbUF5bEI1WGtGUUZ3T1drSENFWFdYeHAyRUtNRUJhWjg0eW81WGJJQU9IM3FHUUt5eUJQRwpCUjBVdE5Ca0tGM2NWV2MzQUo2OGVWZGpjcDV3QU5BWjh3SzVtMGVIRDhMRzlHV0lDb3QweXpHdHRqYWNycmlHYzQ5S21Cd0Z6Wkp5ClFnVEFzNTNZYlIrVUNEY3pJUmxiNTJiRGJHbEdRNHZaQVVTd2Z5QkNBbnJqUzEwTjJxbGQzUE1oS3VoQ0kzQ2xxZ3g1Ulh1RS8wMVUKcFk0VnNrTUVFSk9UdG9kU3JGTzYzdXd4S2RneUp4dlhuNWRMbGJIajIrZXZ4NlNoU2RBWDdrTEZoMmVpaXZHeG8yRllsSXZiYnlzZApaQWpCM2svNXh2WDhRUWFBRlprZ2E1MnpQUGNrQUw1T1dCczFvWHl4WWdDaU42Um1nSkNUMHR0Zldyc2ZvM1J4YnNWYjZYRFJveHZkCnZBWktsMWJ2TGozRkFIRDZ0S01FV0NaVlVKSjdHRVA2RHdaUElsdTdEUnBmRFZTRXdHSnJaY2UwYWovVW1uK2g0T1paSkVYSFkyek0KU1BiZDBOSW9xZ24yRDBKV3lrS1V2WDdZRFFBRmpwa014dVVkSHRDblBnVklnaHlBbW9aYUZ0dlZLUXNSMDAvSEZPbW5abUtrTGc3QwozcXpFWkxjNDBHR0hWbFViU2hNN0FhVDlsRFFXdGkxNGdGS0tXNjhmd3ZqeVBnWUVoeUZJRzRETUNiT2c5bEgvSXdEVVZ4dU1mUVVBCnRHdjhCQUQ4Lzk4dFpteS9kZ1FmdjMvQnZvek5pQWdPYzRzYnNod0FVRzB3RXBjQXZLLzVESDNoVGpTMVdyQnRiamI0OU9MWGo4YjYKditZQUx5OEZvQmlDNWxZTDhvdVBJMzVRTE1LRFFsQllVWXh0ODlZZ05MQ1BKME9nVE1JNzc1NmcvRTBsc3FZc2dMK2ZGc2R2WHdRWApQaERUUmszRTk5OTFqS0QvVEVKbmFlZ3MyTzEyTzZ4dFZxaFVLdmo2K0xKdktabjQrUExwZTc3UzJFTWF5aFNpSmVPbkk1R0xGKzBICmFQd3hlVmdTWG4zOUNGUHROd2RjWEZna1M5Rzc3NTZ5dWlFc1A3VXZKc1Fsb3VURlhlZUZ5T3VsbUVmc2FqTXFmL01ZTjE4OWNQQkEKeW9oeGJsWENiczJJbGVNZTJuRkMxSERzWFpJSFhkOEl0Mm9BejVNVDl5NWo2MlZ4TEpSdnh4MDlnUTJoc2dPSlcxYWRIRlljU0FRWgpyNDVrSWdodkRxWC93eE51aitVU1QzanZZU0tDOE9iVFRFcG1yejFPUFpWK1NucitBQmRkTXo4a0c0aDdBQUFBQUVsRlRrU3VRbUNDCiIgYWx0PSJBdXRvIFN0ZXAgaWNvbiIgY2xhc3M9Imhhcy1ib3JkZXItY29sb3IgaGFzLWFzdC1nbG9iYWwtY29sb3ItNC1ib3JkZXItY29sb3IiIHN0eWxlPSJib3JkZXItd2lkdGg6MC41ZW0iLz48L2ZpZ3VyZT53CmNvcmUvaW1hZ2V3\/QpkYXRhOmltYWdlO2Jhc2U2NCwKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQWdDQVlBQUFCemVucjBBQUFBQVhOU1IwSUFyczRjNlFBQUE3eEpSRUZVV0VmRgpWMmxJVkZFVS91NDRPbU5xWm1xWk5ma1VzMFdLTklPQ0ZreVVNaXBhYURXRWdzakN0dEd5djlXUEZxZUZJS01WMmd5anZTUkhTbXl6CnhiSW8yc3VKS0tRME0wZWQwWEZ1dkt2djhVYmZHMmRxWXU2dng3djNuUFBkYzc2elhBSXZMK0txL2NnVk0zcHBBaTF6S0NISkJEUUIKSUJ5QWtFNzVlb0NhS0VnVm9iVE1hdFplK0hib2FyTXJ1bnNFd09XbVI2aW9iUk9sV0FsQTY0cFNBQlpDY05CTzFEdE11NHBybk1rNApCY0RwVTFjU2tId0FBUzRhN25xc2lZTG1tQXlsQjVYa0ZRRndPV2tIQ0VYV1h4cDJFS01FQmFaODR5bzVYYklBT0gzcUdRS3l5QlBHCkJSMFV0TkJrS0YzY1ZXYzNBSjY4ZVZkamNwNXdBTkFaOHdLNW0wZUhEOExHOUdXSUNvdDB5ekd0dGphY3JyaUdjNDlLbUJ3RnpaSnkKUWdUQXM1M1liUitVQ0RjeklSbGI1MmJEYkdsR1E0dlpBVVN3ZnlCQ0FucmpTMTBOMnFsZDNQTWhLdWhDSTNDbHFneDVSWHVFLzAxVQpwWTRWc2tNRUVKT1R0b2RTckZPNjN1d3hLZGd5Snh2WG41ZExsYkhqMitldng2U2hTZEFYN2tMRmgyZWlpdkd4bzJGWWxJdmJieXNkClpBakIzay81eHZYOFFRYUFGWmtnYTUyelBQY2tBTDVPV0JzMW9YeXhZZ0NpTjZSbWdKQ1QwdHRmV3JzZm8zUnhic1ZiNlhEUm94dmQKdkFaS2wxYnZMajNGQUhENnRLTUVXQ1pWVUpKN0dFUDZEd1pQSWx1N0RScGZEVlNFd0dKclpjZTBhai9VbW4raDRPWlpKRVhIWTJ6TQpTUGJkME5Jb3FnbjJEMEpXeWtLVXZYN1lEUUFGanBrTXh1VWRIdENuUGdWSWdoeUFtb1phRnR2VktRc1IwMC9IRk9tblptS2tMZzdDCjNxekVaTGM0MEdHSFZsVWJTaE03QWFUOWxEUVd0aTE0Z0ZLS1c2OGZ3dmp5UGdZRWh5RklHNERNQ2JPZzlsSC9Jd0RVVnh1TWZRVUEKdEd2OEJBRDgvOTh0Wm15L2RnUWZ2My9Cdm96TmlBZ09jNHNic2h3QVVHMHdFcGNBdksvNURIM2hUalMxV3JCdGJqYjQ5T0xYajhiNgp2K1lBTHk4Rm9CaUM1bFlMOG91UEkzNVFMTUtEUWxCWVVZeHQ4OVlnTkxDUEowT2dUTUk3NzU2Zy9FMGxzcVlzZ0wrZkZzZHZYd1FYClBoRFRSazNFOTk5MWpLRC9URUpuYWVnczJPMTJPNnh0VnFoVUt2ajYrTEp2S1puNCtQTHBlNzdTMkVNYXloU2lKZU9uSTVHTEYrMEgKYVB3eGVWZ1NYbjM5Q0ZQdE53ZGNYRmdrUzlHNzc1Nnl1aUVzUDdVdkpzUWxvdVRGWGVlRnlPdWxtRWZzYWpNcWYvTVlOMTg5Y1BCQQp5b2h4YmxYQ2JzMklsZU1lMm5GQzFIRHNYWklIWGQ4SXQyb0F6NU1UOXk1ajYyVnhMSlJ2eHgwOWdRMmhzZ09KVzFhZEhGWWNTQVFaCnI0NWtJZ2h2RHFYL3d4TnVqK1VTVDNqdllTS0M4T2JUVEVwbXJ6MU9QWlYrU25yK0FCZGRNejhrRzRoN0FBQUFBRWxGVGtTdVFtQ0MKdw5BdXRvIFN0ZXAgaWNvbncGY3VzdG9tdwVyaWdodHcQaXMtc3R5bGUtZGVmYXVsdHYBBmJvcmRlcnYBBXdpZHRodwUwLjVlbXcSYXN0LWdsb2JhbC1jb2xvci00eXl3BG5vbmV5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHl3JGJiNzcwYzg1LTZlNGEtNGEzZS04OGUyLTIxZmEzNzBlODA5NXh3LzxkaXYgY2xhc3M9IndwLWJsb2NrLWNvYmxvY2tzLWFjY29yZGlvbiI+PC9kaXY+dxJjb2Jsb2Nrcy9hY2NvcmRpb253ATF5dwB3AHl5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDMyMjFjNDM2LTViMGQtNDNiMi04ODQ1LWRkZDVlZmJmNzM1ZHh35gE8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24taXRlbSI+PGRldGFpbHMgb3Blbj48c3VtbWFyeSBjbGFzcz0id3AtYmxvY2stY29ibG9ja3MtYWNjb3JkaW9uLWl0ZW1fX3RpdGxlIj5Db25maWdzIGZvciB0aGlzIEF1dG8gU3RlcDwvc3VtbWFyeT48ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24taXRlbV9fY29udGVudCI+PC9kaXY+PC9kZXRhaWxzPjwvZGl2PncXY29ibG9ja3MvYWNjb3JkaW9uLWl0ZW13GkNvbmZpZ3MgZm9yIHRoaXMgQXV0byBTdGVweHcAdwB5eXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQ4MWM2NjM5Zi0wODljLTQxYmUtOGRhMC1iZmZmZWMwNjU4YmF4d8YJPGRsIHN0eWxlPSIwIDAgLTAuN2VtIDAiPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9PQXV0aDI8L2R0PjxkZCBzdHlsZT0ibWFyZ2luOiAtMC41ZW0gMCAwLjFlbSAxZW0iPkMxOiBPQXV0aDIg6Kit5a6aPHNwYW4gc3R5bGU9ImNvbG9yOiM5OTAwMDA7Ij4gKjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9Vcmw8L2R0PjxkZCBzdHlsZT0ibWFyZ2luOiAtMC41ZW0gMCAwLjFlbSAxZW0iPkMyOiDlhaXlipvlhYjjga7jg5bjg4Pjgq\/jga4gVVJMPHNwYW4gc3R5bGU9ImNvbG9yOiM5OTAwMDA7Ij4gKjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9UYWJsZU5hbWU8L2R0PjxkZCBzdHlsZT0ibWFyZ2luOiAtMC41ZW0gMCAwLjFlbSAxZW0iPkMzOiDlhaXlipvlhYjjga7jg4bjg7zjg5bjg6vlkI0gb2Yg44OG44O844OW44OrSUQ8c3BhbiBzdHlsZT0iY29sb3I6Izk5MDAwMDsiPiAqPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwMDk5OyI+PHN1cCBzdHlsZT0iZm9udC1zdHlsZTppdGFsaWM7Ij4je0VMfTwvc3VwPjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9Db2x1bW5zPC9kdD48ZGQgc3R5bGU9Im1hcmdpbjogLTAuNWVtIDAgMC4xZW0gMWVtIj5DNDog6L+95Yqg44GX44Gf44GE44Kr44Op44Og44Gu44OV44Kj44O844Or44OJ5ZCN77yI44Kr44Oz44Oe5Yy65YiH44KK77yJPHNwYW4gc3R5bGU9ImNvbG9yOiM5OTAwMDA7Ij4gKjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9JbmRleE51bTwvZHQ+PGRkIHN0eWxlPSJtYXJnaW46IC0wLjVlbSAwIDAuMWVtIDFlbSI+QzU6IOi\/veWKoOOBl+OBn+OCpOODs+ODh+ODg+OCr+OCueeVquWPt+OBruWApOOCkuS\/neWtmOOBmeOCi+ODh+ODvOOCv+mgheebriAo5pu05pawKTwvZGQ+Cgo8L2RsPncJY29yZS9odG1sd8YJPGRsIHN0eWxlPSIwIDAgLTAuN2VtIDAiPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9PQXV0aDI8L2R0PjxkZCBzdHlsZT0ibWFyZ2luOiAtMC41ZW0gMCAwLjFlbSAxZW0iPkMxOiBPQXV0aDIg6Kit5a6aPHNwYW4gc3R5bGU9ImNvbG9yOiM5OTAwMDA7Ij4gKjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9Vcmw8L2R0PjxkZCBzdHlsZT0ibWFyZ2luOiAtMC41ZW0gMCAwLjFlbSAxZW0iPkMyOiDlhaXlipvlhYjjga7jg5bjg4Pjgq\/jga4gVVJMPHNwYW4gc3R5bGU9ImNvbG9yOiM5OTAwMDA7Ij4gKjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9UYWJsZU5hbWU8L2R0PjxkZCBzdHlsZT0ibWFyZ2luOiAtMC41ZW0gMCAwLjFlbSAxZW0iPkMzOiDlhaXlipvlhYjjga7jg4bjg7zjg5bjg6vlkI0gb2Yg44OG44O844OW44OrSUQ8c3BhbiBzdHlsZT0iY29sb3I6Izk5MDAwMDsiPiAqPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAwMDk5OyI+PHN1cCBzdHlsZT0iZm9udC1zdHlsZTppdGFsaWM7Ij4je0VMfTwvc3VwPjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9Db2x1bW5zPC9kdD48ZGQgc3R5bGU9Im1hcmdpbjogLTAuNWVtIDAgMC4xZW0gMWVtIj5DNDog6L+95Yqg44GX44Gf44GE44Kr44Op44Og44Gu44OV44Kj44O844Or44OJ5ZCN77yI44Kr44Oz44Oe5Yy65YiH44KK77yJPHNwYW4gc3R5bGU9ImNvbG9yOiM5OTAwMDA7Ij4gKjwvc3Bhbj48L2RkPgo8ZHQgc3R5bGU9ImZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNTAlOyBtYXJnaW46IC0xZW0gMCAwIDA7IGNvbG9yOiAjYWFhOyI+Y29uZl9JbmRleE51bTwvZHQ+PGRkIHN0eWxlPSJtYXJnaW46IC0wLjVlbSAwIDAuMWVtIDFlbSI+QzU6IOi\/veWKoOOBl+OBn+OCpOODs+ODh+ODg+OCr+OCueeVquWPt+OBruWApOOCkuS\/neWtmOOBmeOCi+ODh+ODvOOCv+mgheebriAo5pu05pawKTwvZGQ+Cgo8L2RsPnl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRjMWNmZmZlNC04ZTg5LTQwOWItOWIxZC05YTEwMjViZTgyOTB4dy88ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24iPjwvZGl2PncSY29ibG9ja3MvYWNjb3JkaW9udwExeXcAdwB5eXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQ0NTgzNDgzOS03MjQ2LTQyMGUtODMxMy1lNTZmYTRlMTYzYzN4d90BPGRpdiBjbGFzcz0id3AtYmxvY2stY29ibG9ja3MtYWNjb3JkaW9uLWl0ZW0iPjxkZXRhaWxzPjxzdW1tYXJ5IGNsYXNzPSJ3cC1ibG9jay1jb2Jsb2Nrcy1hY2NvcmRpb24taXRlbV9fdGl0bGUiPlNjcmlwdCAoY2xpY2sgdG8gb3Blbik8L3N1bW1hcnk+PGRpdiBjbGFzcz0id3AtYmxvY2stY29ibG9ja3MtYWNjb3JkaW9uLWl0ZW1fX2NvbnRlbnQiPjwvZGl2PjwvZGV0YWlscz48L2Rpdj53F2NvYmxvY2tzL2FjY29yZGlvbi1pdGVtdxZTY3JpcHQgKGNsaWNrIHRvIG9wZW4peXcAdwB5eXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRlOGU3ZmY5Ni03NGNiLTRjODktYWUzNi00MDU0NGM2YTNjMWZ4d49FPGRpdiBjbGFzcz0iaGNiX3dyYXAiPjxwcmUgY2xhc3M9InByaXNtIHVuZGVmaW5lZC1udW1iZXJzIGxhbmctanMiIGRhdGEtbGFuZz0iSmF2YVNjcmlwdCI+PGNvZGU+Ci8vIE9BdXRoMiBjb25maWcgc2FtcGxlIGF0IFtPQXV0aCAyLjAgU2V0dGluZ10KLy8gLSBBdXRob3JpemF0aW9uIEVuZHBvaW50IFVSTDogaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vbi9vYXV0aDIvdjIuMC9hdXRob3JpemUKLy8gLSBUb2tlbiBFbmRwb2ludCBVUkw6IGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9jb21tb24vb2F1dGgyL3YyLjAvdG9rZW4KLy8gLSBTY29wZTogaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL0ZpbGVzLlJlYWRXcml0ZS5BbGwgb2ZmbGluZV9hY2Nlc3MKLy8gLSBDb25zdW1lciBLZXk6IChHZXQgYnkgTWljcm9zb2Z0IEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkpCi8vIC0gQ29uc3VtZXIgU2VjcmV0OiAoR2V0IGJ5IE1pY3Jvc29mdCBBenVyZSBBY3RpdmUgRGlyZWN0b3J5KQoKY29uc3QgR1JBUEhfVVJJID0gJnF1b3Q7aHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjAvJnF1b3Q7OwoKbWFpbigpOwpmdW5jdGlvbiBtYWluKCl7CiAgLy8vLyA9PSBDb25maWcgUmV0cmlldmluZyAvIOW3peeoi+OCs+ODs+ODleOCo+OCsOOBruWPgueFpyA9PQogIGNvbnN0IG9hdXRoMiA9IGNvbmZpZ3MuZ2V0KCAmcXVvdDtjb25mX09BdXRoMiZxdW90OyApICsgJnF1b3Q7JnF1b3Q7OwogIGNvbnN0IGJvb2tVcmwgPSByZXRyaWV2ZUJvb2tVcmwoKTsKICBjb25zdCB0YWJlbE5hbWUgPSBjb25maWdzLmdldCggJnF1b3Q7Y29uZl9UYWJsZU5hbWUmcXVvdDsgKSArICZxdW90OyZxdW90OzsKLy8gIGNvbnN0IHRhYmVsTmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChjb25maWdzLmdldCggJnF1b3Q7Y29uZl9UYWJsZU5hbWUmcXVvdDsgKSArICZxdW90OyZxdW90Oyk7CiAgaWYodGFiZWxOYW1lID09PSAmcXVvdDsmcXVvdDsgfHwgdGFiZWxOYW1lID09PSBudWxsKXsKICAgIHRocm93ICZxdW90O1RhYmxlIE5hbWUgaXMgZW1wdHkuJnF1b3Q7OwogIH0KCiAgbGV0IHZhbHVlcyA9IFtdOwogIHJldHJpZXZlVmFsdWVzKCB2YWx1ZXMgKTsKCiAgLy8vLyA9PSBDYWxjdWxhdGluZyAvIOa8lOeulyA9PQogIC8vIEFjY2VzcyB0byB0aGUgQVBJIDFzdChHZXQgQm9vayBJbmZvKQogIGNvbnN0IGJvb2tJbmZvID0gZ2V0RmlsZUluZm9CeVVybCggYm9va1VybCwgb2F1dGgyICk7CgogIC8vIEFjY2VzcyB0byB0aGUgQVBJIDJuZChQT1NUKQogIHBvc3REYXRhKCBib29rSW5mbywgdGFiZWxOYW1lLCB2YWx1ZXMsIG9hdXRoMik7Cn0KCi8qKgogICogY29uZmlnIOOBi+OCieODluODg+OCr+OBriBVUkwg44KS6Kqt44G\/5Ye644GZ44CB56m644Gq44KJ44Ko44Op44O8CiAgKiBAcmV0dXJuIHtTdHJpbmd9IOODluODg+OCr+OBriBVUkwKICAqLwpmdW5jdGlvbiByZXRyaWV2ZUJvb2tVcmwoKSB7CiAgY29uc3QgYm9va1VybERlZiA9IGNvbmZpZ3MuZ2V0T2JqZWN0KCAmcXVvdDtjb25mX1VybCZxdW90OyApOwogIGxldCBib29rVXJsOwogIGlmICggYm9va1VybERlZiA9PT0gbnVsbCApIHsKICAgIGJvb2tVcmwgPSBjb25maWdzLmdldCggJnF1b3Q7Y29uZl9VcmwmcXVvdDsgKQogIH1lbHNlewogICAgYm9va1VybCA9IGVuZ2luZS5maW5kRGF0YSggYm9va1VybERlZiApOwogIH0KICBpZiAoIGJvb2tVcmwgPT09ICZxdW90OyZxdW90OyB8fCBib29rVXJsID09PSBudWxsKXsKICAgIHRocm93ICZxdW90O0Jvb2sgVVJMIGlzIGVtcHR5LiZxdW90OwogIH0KICByZXR1cm4gYm9va1VybDsKfQoKLyoqCiAgKiDov73liqDjg4fjg7zjgr\/jgpLmupblgpkKICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyAg6L+95Yqg44OH44O844K\/44Gu6YWN5YiXCiAgKi8KZnVuY3Rpb24gcmV0cmlldmVWYWx1ZXMoIHZhbHVlcyApIHsKCiAgY29uc3QgY29sdW1ucyA9IGNvbmZpZ3MuZ2V0KCAmcXVvdDtjb25mX0NvbHVtbnMmcXVvdDsgKSArICZxdW90OyZxdW90OzsKICBsZXQgYXJyYXlDb2x1bW5OYW1lcyA9IGNvbHVtbnMuc3BsaXQoJnF1b3Q7LCZxdW90Oyk7CiAgZm9yICggbGV0IGkgPSAwOyBpICZsdDsgYXJyYXlDb2x1bW5OYW1lcy5sZW5ndGg7IGkrKykgewogICAgbGV0IGNvbHVtbk5hbWUgPSBhcnJheUNvbHVtbk5hbWVzW2ldOwogICAgLy\/mjIflrprjgarjgZfjgqvjg6njg6Djga\/nqbrmloflrZfjgpLlhaXjgozjgosKICAgIGlmIChjb2x1bW5OYW1lID09ICZxdW90OyZxdW90OykgewogICAgICB2YWx1ZXMucHVzaCggJnF1b3Q7JnF1b3Q7ICk7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIGNvbnN0IGNvbHVtbkRlZmluaXRpb24gPSBlbmdpbmUuZmluZERhdGFEZWZpbml0aW9uQnlWYXJOYW1lKCBjb2x1bW5OYW1lICk7CiAgICBjb25zdCBjb2x1bW5PYmplY3QgPSBlbmdpbmUuZmluZERhdGFCeVZhck5hbWUoIGNvbHVtbk5hbWUgKTsKICAgIGxldCBjb2x1bW5WYWx1ZSA9ICYjMzk7JiMzOTs7CgogICAgLy\/jg4fjg7zjgr\/lnovjgavjgojjgaPjgablgKTjga7lj5blvpfmlrnms5XjgYzlpInjgo\/jgovvvIjjg4bjg7zjg5bjg6vlnovjg7vmjrLnpLrmnb\/lnovjga\/ogIPmha7lpJbvvIkKICAgIGlmICggY29sdW1uRGVmaW5pdGlvbi5tYXRjaERhdGFUeXBlKCAmcXVvdDtTRUxFQ1QmcXVvdDsgKSApIHsKICAgICAgaWYgKCBjb2x1bW5PYmplY3QgKSB7CiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpICZsdDsgY29sdW1uT2JqZWN0LnNpemUoKTsgaSsrICl7CiAgICAgICAgICBjb25zdCBzZWxlY3QgPSBjb2x1bW5PYmplY3QuZ2V0KGkpOwogICAgICAgICAgaWYgKCBjb2x1bW5WYWx1ZSAhPSAmIzM5OyYjMzk7ICkgewogICAgICAgICAgICBjb2x1bW5WYWx1ZSArPSAmIzM5OywmIzM5OzsKICAgICAgICAgIH0KICAgICAgICAgIGNvbHVtblZhbHVlICs9IHNlbGVjdC5nZXRWYWx1ZSgpICsgJnF1b3Q7OiZxdW90OyArIHNlbGVjdC5nZXREaXNwbGF5KCk7CiAgICAgICAgfQogICAgICB9CgogICAgfSBlbHNlIGlmICggY29sdW1uRGVmaW5pdGlvbi5tYXRjaERhdGFUeXBlKCAmcXVvdDtRVVNFUiZxdW90OyApICkgewogICAgICBpZiAoIGNvbHVtbk9iamVjdCApIHsKICAgICAgICBjb2x1bW5WYWx1ZSA9IGNvbHVtbk9iamVjdC5nZXROYW1lKCkgKyAmIzM5OyZsdDsmIzM5OyArIGNvbHVtbk9iamVjdC5nZXRFbWFpbCgpICsgJiMzOTsmZ3Q7JiMzOTs7CiAgICAgIH0KCiAgICB9IGVsc2UgaWYgKCBjb2x1bW5EZWZpbml0aW9uLm1hdGNoRGF0YVR5cGUoICZxdW90O1FHUk9VUCZxdW90OyApICkgewogICAgICBpZiAoIGNvbHVtbk9iamVjdCApIHsKICAgICAgICBjb2x1bW5WYWx1ZSA9IGNvbHVtbk9iamVjdC5nZXROYW1lKCk7CiAgICAgIH0KCiAgICB9IGVsc2UgaWYgKCBjb2x1bW5EZWZpbml0aW9uLm1hdGNoRGF0YVR5cGUoICZxdW90O0ZJTEUmcXVvdDsgKSApIHsKICAgICAgaWYgKCBjb2x1bW5PYmplY3QgKSB7CiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpICZsdDsgY29sdW1uT2JqZWN0LnNpemUoKTsgaSsrICkgewogICAgICAgICAgY29uc3QgZmlsZSA9IGNvbHVtbk9iamVjdC5nZXQoaSk7CiAgICAgICAgICBpZiAoIGNvbHVtblZhbHVlICE9ICYjMzk7JiMzOTsgKSB7CiAgICAgICAgICAgIGNvbHVtblZhbHVlICs9ICYjMzk7LCYjMzk7OwogICAgICAgICAgfQogICAgICAgICAgY29sdW1uVmFsdWUgKz0gZmlsZS5nZXROYW1lKCk7CiAgICAgICAgfQogICAgICB9CgogICAgfSBlbHNlIGlmICggY29sdW1uRGVmaW5pdGlvbi5tYXRjaERhdGFUeXBlKCAmcXVvdDtMSVNUJnF1b3Q7ICkgKSB7CiAgICAgIC8v44K544Kt44OD44OXCgogICAgfSBlbHNlIGlmICggY29sdW1uRGVmaW5pdGlvbi5tYXRjaERhdGFUeXBlKCAmcXVvdDtESVNDVVNTSU9OJnF1b3Q7ICkgKSB7CiAgICAgIC8v44K544Kt44OD44OXCgogICAgfSBlbHNlIHsKICAgICAgaWYgKCBjb2x1bW5PYmplY3QgKSB7CiAgICAgICAgY29sdW1uVmFsdWUgPSBjb2x1bW5PYmplY3QudG9TdHJpbmcoKTsKICAgICAgfQogICAgfQoKICAgIHZhbHVlcy5wdXNoKCBjb2x1bW5WYWx1ZSApOwogIH0KCn0KCi8qKgogICog44OV44Kp44Or44OA44GuIFVSTCDjgYvjgonjg5XjgqHjgqTjg6vmg4XloLHvvIjjg4njg6njgqTjg5YgSUQg44Go44OV44Kh44Kk44OrIElE77yJ44KS5Y+W5b6X44GX44CBCiAgKiDjgqrjg5bjgrjjgqfjgq\/jg4jjgafov5TjgZnvvIhVUkwg44GM56m644Gu5aC05ZCI44Gv44Ko44Op44O844Go44GZ44KL77yJCiAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZVVybCAg44OV44Kp44Or44OA44GuIFVSTAogICogQHBhcmFtIHtTdHJpbmd9IG9hdXRoMiAgT0F1dGgyIOioreWumgogICogQHJldHVybiB7T2JqZWN0fSBmaWxlSW5mbyAg44OV44Kh44Kk44Or5oOF5aCxIHtkcml2ZUlkLCBmaWxlSWR9CiAgKi8KZnVuY3Rpb24gZ2V0RmlsZUluZm9CeVVybCggZmlsZVVybCwgb2F1dGgyICkgewogIGxldCBmaWxlSW5mbzsKICBpZiAoIGZpbGVVcmwgIT09ICZxdW90OyZxdW90OyAmJiBmaWxlVXJsICE9PSBudWxsICkgewogICAgLy8g5YiG5Ymy5Luj5YWlCiAgICBjb25zdCB7CiAgICAgIGlkLAogICAgICBwYXJlbnRSZWZlcmVuY2U6IHsKICAgICAgICBkcml2ZUlkCiAgICAgIH0KICAgIH0gPSBnZXRPYmpCeVNoYXJpbmdVcmwoIGZpbGVVcmwsIG9hdXRoMiApOwogICAgZmlsZUluZm8gPSB7ZHJpdmVJZDogYGRyaXZlcy8ke2RyaXZlSWR9YCwgZmlsZUlkOiBpZH07CiAgfQogIHJldHVybiBmaWxlSW5mbzsKfQoKLyoqCiAgKiBPbmVEcml2ZSDjga7jg4njg6njgqTjg5bjgqLjgqTjg4bjg6DvvIjjg5XjgqHjgqTjg6vjgIHjg5Xjgqnjg6vjg4DvvInjga7jg6Hjgr\/jg4fjg7zjgr\/jgpLlj5blvpfjgZfjgIFKU09OIOOCquODluOCuOOCp+OCr+ODiOOCkui\/lOOBmQogICogQVBJIOOBruS7leanmO+8mmh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2phLWpwL29uZWRyaXZlL2RldmVsb3Blci9yZXN0LWFwaS9hcGkvc2hhcmVzX2dldD92aWV3PW9kc3AtZ3JhcGgtb25saW5lCiAgKiBAcGFyYW0ge1N0cmluZ30gc2hhcmluZ1VybCAg44OV44Kh44Kk44Or44Gu5YWx5pyJIFVSTAogICogQHBhcmFtIHtTdHJpbmd9IG9hdXRoMiAgT0F1dGgyIOioreWumgogICogQHJldHVybiB7T2JqZWN0fSByZXNwb25zZU9iaiAg44OJ44Op44Kk44OW44Ki44Kk44OG44Og44Gu44Oh44K\/44OH44O844K\/44GuIEpTT04g44Kq44OW44K444Kn44Kv44OICiAgKi8KZnVuY3Rpb24gZ2V0T2JqQnlTaGFyaW5nVXJsKCBzaGFyaW5nVXJsLCBvYXV0aDIgKSB7CiAgaWYgKHNoYXJpbmdVcmwgPT09ICZxdW90OyZxdW90OyB8fCBzaGFyaW5nVXJsID09PSBudWxsKSB7CiAgICB0aHJvdyBgU2hhcmluZyBVUkwgaXMgZW1wdHkuYDsKICB9CgogIC8vIGVuY29kaW5nIHNoYXJpbmcgVVJMCiAgY29uc3QgZW5jb2RlZFNoYXJpbmdVcmwgPSBlbmNvZGVTaGFyaW5nVXJsKHNoYXJpbmdVcmwpOwoKICAvLyBBUEkgUmVxdWVzdAogIGNvbnN0IHJlc3BvbnNlID0gaHR0cENsaWVudC5iZWdpbigpCiAgICAuYXV0aFNldHRpbmcoIG9hdXRoMiApCiAgICAuZ2V0KCBgJHtHUkFQSF9VUkl9c2hhcmVzLyR7ZW5jb2RlZFNoYXJpbmdVcmx9L2RyaXZlSXRlbWAgKTsKCiAgY29uc3QgcmVzcG9uc2VTdHIgPSBsb2dBbmRKdWRnZUVycm9yKHJlc3BvbnNlLCAmcXVvdDtHRVQmcXVvdDspOwoKICByZXR1cm4gSlNPTi5wYXJzZSggcmVzcG9uc2VTdHIgKTsKfQoKLyoqCiAgKiDlhbHmnIlVUkzjgpJ1bnBhZGRlZCBiYXNlNjR1cmwg5b2i5byP44Gr44Ko44Oz44Kz44O844OJ44GZ44KLCiAgKiBAcGFyYW0ge1N0cmluZ30gc2hhcmluZ1VybCAg5YWx5pyJIFVSTAogICogQHJldHVybiB7U3RyaW5nfSBlbmNvZGVkU2hhcmluZ1VybCAg44Ko44Oz44Kz44O844OJ44GV44KM44Gf5YWx5pyJIFVSTAogICovCmZ1bmN0aW9uIGVuY29kZVNoYXJpbmdVcmwoIHNoYXJpbmdVcmwgKSB7CiAgbGV0IGVuY29kZWRTaGFyaW5nVXJsID0gYmFzZTY0LmVuY29kZVRvVXJsU2FmZVN0cmluZyggc2hhcmluZ1VybCApOwogIHdoaWxlICggZW5jb2RlZFNoYXJpbmdVcmwuc2xpY2UoLTEpID09PSAmIzM5Oz0mIzM5OyApIHsKICAgIGVuY29kZWRTaGFyaW5nVXJsID0gZW5jb2RlZFNoYXJpbmdVcmwuc2xpY2UoMCwtMSk7CiAgfQogIHJldHVybiBgdSEke2VuY29kZWRTaGFyaW5nVXJsfWA7Cn0KCi8qKgogICog5oyH5a6a44K344O844OI44Gu5oyH5a6a6KGM44Gr44OH44O844K\/44KS5YWl5Yqb44GZ44KLCiAgKiBAcGFyYW0ge09iamVjdH0gYm9va0luZm8KICAqIEBwYXJhbSB7U3RyaW5nfSBib29rSW5mby5kcml2ZUlkICDjg6\/jg7zjgq\/jg5bjg4Pjgq\/jga7jg4njg6njgqTjg5YgSUQKICAqIEBwYXJhbSB7U3RyaW5nfSBib29rSW5mby5maWxlSWQgIOODr+ODvOOCr+ODluODg+OCr+OBruODleOCoeOCpOODqyBJRAogICogQHBhcmFtIHtTdHJpbmd9IHRhYmxlTmFtZSAg5oy\/5YWl5YWI44K344O844OI44Gu5ZCN5YmNCiAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgIOaMv+WFpeOBmeOCi+ODh+ODvOOCv+OBrumFjeWIlwogICogQHBhcmFtIHtTdHJpbmd9IG9hdXRoMiAgT0F1dGgyIOioreWumgogICovCmZ1bmN0aW9uIHBvc3REYXRhKCB7ZHJpdmVJZCwgZmlsZUlkfSwgdGFibGVOYW1lLCB2YWx1ZXMsIG9hdXRoMiApewoKICBjb25zdCBwb3N0VXJpID0gYCR7R1JBUEhfVVJJfSR7ZHJpdmVJZH0vaXRlbXMvJHtmaWxlSWR9L3dvcmtib29rL3RhYmxlcy8ke3RhYmxlTmFtZX0vcm93c2A7Ci8vICBjb25zdCBwb3N0VXJpID0gYCR7R1JBUEhfVVJJfW1lL2RyaXZlL2l0ZW1zLyR7ZmlsZUlkfS93b3JrYm9vay90YWJsZXMvJHt0YWJsZU5hbWV9L3Jvd3NgOwogIGNvbnN0IHJlcXVlc3RCb2R5ID0gbWFrZVJlcXVlc3RUb0FkZCh2YWx1ZXMpOwovL2VuZ2luZS5sb2coJnF1b3Q7anNvbjomcXVvdDsgKyBKU09OLnN0cmluZ2lmeShyZXF1ZXN0Qm9keSkgKyAmcXVvdDsmcXVvdDspCgogIGNvbnN0IHJlc3BvbnNlID0gaHR0cENsaWVudC5iZWdpbigpCiAgICAuYXV0aFNldHRpbmcoIG9hdXRoMiApCiAgICAuYm9keSggSlNPTi5zdHJpbmdpZnkocmVxdWVzdEJvZHkpLCAmcXVvdDthcHBsaWNhdGlvbi9qc29uJnF1b3Q7ICkKICAgIC5wb3N0KCBwb3N0VXJpICk7CiAgCiAgbG9nQW5kSnVkZ2VFcnJvcihyZXNwb25zZSwgJnF1b3Q7UE9TVCZxdW90Oyk7CgogIGNvbnN0IGRhdGFJZCA9IGNvbmZpZ3MuZ2V0KCAmcXVvdDtjb25mX0luZGV4TnVtJnF1b3Q7ICk7CiAgaWYgKCBkYXRhSWQgKXsKICAgIGNvbnN0IGpzb25PYmogPSBKU09OLnBhcnNlKCByZXNwb25zZS5nZXRSZXNwb25zZUFzU3RyaW5nKCkgKTsKICAgIGNvbnN0IGluZGV4ID0ganNvbk9iai5pbmRleCArICZxdW90OyZxdW90OzsKICAgIGVuZ2luZS5zZXREYXRhQnlOdW1iZXIoIGRhdGFJZCwgaW5kZXggKyAmcXVvdDsmcXVvdDsgKTsKICB9Cgp9CgovKioKICAqIOaWsOOBl+OBhOihjOOBq+i\/veWKoOOBmeOCi+ODh+ODvOOCv+OCkuOAgUpTT04g5b2i5byP44Gr5aSJ5o+b44GZ44KLCiAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgIOODh+ODvOOCv+OBruWFpeOBo+OBn+mFjeWIlwogICogQHJldHVybiB7SlNPTiBPYmplY3R9IOWkieaPm+OBl+OBnyBKU09OIOOCquODluOCuOOCp+OCr+ODiAogICovCmZ1bmN0aW9uIG1ha2VSZXF1ZXN0VG9BZGQodmFsdWVzKXsKICBsZXQgcmVxdWVzdCA9IHsKICAgIHZhbHVlcyA6IFtbXV0KICB9OwogIGZvcihsZXQgaSA9IDA7IGkgJmx0OyB2YWx1ZXMubGVuZ3RoOyBpKyspewogICAgaWYodmFsdWVzW2ldID09PSAmcXVvdDsmcXVvdDsgfHwgdmFsdWVzW2ldID09PSBudWxsKXsKICAgICAgcmVxdWVzdC52YWx1ZXNbMF0ucHVzaChudWxsKTsKICAgIH1lbHNlewogICAgICBpZih2YWx1ZXNbaV0ubGVuZ3RoICZndDsgMzI3NjcpewogICAgICAgIHRocm93ICZxdW90O0NhbiYjMzk7dCBzZXQgdGV4dCBvdmVyIDMyLDc2NyBjaGFyYWN0ZXIuJnF1b3Q7OwogICAgICB9CiAgICAgIHJlcXVlc3QudmFsdWVzWzBdLnB1c2godmFsdWVzW2ldKTsKICAgIH0KICB9CiAgcmV0dXJuIHJlcXVlc3Q7Cn0KCi8qKgogICog44Ot44Kw44Gu5Ye65Yqb44Go44CB44Ko44Op44O855m655Sf5pmC44Gu44K544Ot44O844KS6KGM44GGCiAgKiBAcGFyYW0ge0h0dHBSZXNwb25zZVdyYXBwZXJ9IHJlc3BvbnNlICDjg6rjgq\/jgqjjgrnjg4jjga7lv5znrZQKICAqIEBwYXJhbSB7U3RyaW5nfSByZXF1ZXN0VHlwZSDjg6rjgq\/jgqjjgrnjg4jjgpLjganjga7lvaLlvI\/jgafooYzjgaPjgZ\/jgYsoJnF1b3Q7R0VUJnF1b3Q7IG9yICZxdW90O1BPU1QmcXVvdDsgb3IgJnF1b3Q7UEFUQ0gmcXVvdDspCiAgKiBAcmV0dXJuIHtTdHJpbmd9IHJlc3BvbnNlU3RyIOODrOOCueODneODs+OCueOBruaWh+Wtl+WIlwogICovCmZ1bmN0aW9uIGxvZ0FuZEp1ZGdlRXJyb3IocmVzcG9uc2UsIHJlcXVlc3RUeXBlKXsKICBjb25zdCByZXNwb25zZVN0ciA9IHJlc3BvbnNlLmdldFJlc3BvbnNlQXNTdHJpbmcoKTsKLy9lbmdpbmUubG9nKCZxdW90O3Jlc3BvbnNlOiZxdW90OyArIHJlc3BvbnNlU3RyKTsKICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5nZXRTdGF0dXNDb2RlKCk7CiAgaWYoc3RhdHVzICZndDs9IDMwMCl7CiAgICBjb25zdCBhY2Nlc3NMb2cgPSBgLS0tJHtyZXF1ZXN0VHlwZX0gcmVxdWVzdC0tLSAke3N0YXR1c31cbiR7cmVzcG9uc2VTdHJ9XG5gOwogICAgZW5naW5lLmxvZyhhY2Nlc3NMb2cpOwogICAgdGhyb3cgYEZhaWxlZCBpbiAke3JlcXVlc3RUeXBlfSByZXF1ZXN0LiBzdGF0dXM6ICR7c3RhdHVzfWA7CiAgfQogIHJldHVybiByZXNwb25zZVN0cjsKfQo8L2NvZGU+PC9wcmU+PC9kaXY+dxNsb29zLWhjYi9jb2RlLWJsb2Nrd6ZACi8vIE9BdXRoMiBjb25maWcgc2FtcGxlIGF0IFtPQXV0aCAyLjAgU2V0dGluZ10KLy8gLSBBdXRob3JpemF0aW9uIEVuZHBvaW50IFVSTDogaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vbi9vYXV0aDIvdjIuMC9hdXRob3JpemUKLy8gLSBUb2tlbiBFbmRwb2ludCBVUkw6IGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9jb21tb24vb2F1dGgyL3YyLjAvdG9rZW4KLy8gLSBTY29wZTogaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL0ZpbGVzLlJlYWRXcml0ZS5BbGwgb2ZmbGluZV9hY2Nlc3MKLy8gLSBDb25zdW1lciBLZXk6IChHZXQgYnkgTWljcm9zb2Z0IEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkpCi8vIC0gQ29uc3VtZXIgU2VjcmV0OiAoR2V0IGJ5IE1pY3Jvc29mdCBBenVyZSBBY3RpdmUgRGlyZWN0b3J5KQoKY29uc3QgR1JBUEhfVVJJID0gImh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS92MS4wLyI7CgptYWluKCk7CmZ1bmN0aW9uIG1haW4oKXsKICAvLy8vID09IENvbmZpZyBSZXRyaWV2aW5nIC8g5bel56iL44Kz44Oz44OV44Kj44Kw44Gu5Y+C54WnID09CiAgY29uc3Qgb2F1dGgyID0gY29uZmlncy5nZXQoICJjb25mX09BdXRoMiIgKSArICIiOwogIGNvbnN0IGJvb2tVcmwgPSByZXRyaWV2ZUJvb2tVcmwoKTsKICBjb25zdCB0YWJlbE5hbWUgPSBjb25maWdzLmdldCggImNvbmZfVGFibGVOYW1lIiApICsgIiI7Ci8vICBjb25zdCB0YWJlbE5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoY29uZmlncy5nZXQoICJjb25mX1RhYmxlTmFtZSIgKSArICIiKTsKICBpZih0YWJlbE5hbWUgPT09ICIiIHx8IHRhYmVsTmFtZSA9PT0gbnVsbCl7CiAgICB0aHJvdyAiVGFibGUgTmFtZSBpcyBlbXB0eS4iOwogIH0KCiAgbGV0IHZhbHVlcyA9IFtdOwogIHJldHJpZXZlVmFsdWVzKCB2YWx1ZXMgKTsKCiAgLy8vLyA9PSBDYWxjdWxhdGluZyAvIOa8lOeulyA9PQogIC8vIEFjY2VzcyB0byB0aGUgQVBJIDFzdChHZXQgQm9vayBJbmZvKQogIGNvbnN0IGJvb2tJbmZvID0gZ2V0RmlsZUluZm9CeVVybCggYm9va1VybCwgb2F1dGgyICk7CgogIC8vIEFjY2VzcyB0byB0aGUgQVBJIDJuZChQT1NUKQogIHBvc3REYXRhKCBib29rSW5mbywgdGFiZWxOYW1lLCB2YWx1ZXMsIG9hdXRoMik7Cn0KCi8qKgogICogY29uZmlnIOOBi+OCieODluODg+OCr+OBriBVUkwg44KS6Kqt44G\/5Ye644GZ44CB56m644Gq44KJ44Ko44Op44O8CiAgKiBAcmV0dXJuIHtTdHJpbmd9IOODluODg+OCr+OBriBVUkwKICAqLwpmdW5jdGlvbiByZXRyaWV2ZUJvb2tVcmwoKSB7CiAgY29uc3QgYm9va1VybERlZiA9IGNvbmZpZ3MuZ2V0T2JqZWN0KCAiY29uZl9VcmwiICk7CiAgbGV0IGJvb2tVcmw7CiAgaWYgKCBib29rVXJsRGVmID09PSBudWxsICkgewogICAgYm9va1VybCA9IGNvbmZpZ3MuZ2V0KCAiY29uZl9VcmwiICkKICB9ZWxzZXsKICAgIGJvb2tVcmwgPSBlbmdpbmUuZmluZERhdGEoIGJvb2tVcmxEZWYgKTsKICB9CiAgaWYgKCBib29rVXJsID09PSAiIiB8fCBib29rVXJsID09PSBudWxsKXsKICAgIHRocm93ICJCb29rIFVSTCBpcyBlbXB0eS4iCiAgfQogIHJldHVybiBib29rVXJsOwp9CgovKioKICAqIOi\/veWKoOODh+ODvOOCv+OCkua6luWCmQogICogQHBhcmFtIHtBcnJheX0gdmFsdWVzICDov73liqDjg4fjg7zjgr\/jga7phY3liJcKICAqLwpmdW5jdGlvbiByZXRyaWV2ZVZhbHVlcyggdmFsdWVzICkgewoKICBjb25zdCBjb2x1bW5zID0gY29uZmlncy5nZXQoICJjb25mX0NvbHVtbnMiICkgKyAiIjsKICBsZXQgYXJyYXlDb2x1bW5OYW1lcyA9IGNvbHVtbnMuc3BsaXQoIiwiKTsKICBmb3IgKCBsZXQgaSA9IDA7IGkgPCBhcnJheUNvbHVtbk5hbWVzLmxlbmd0aDsgaSsrKSB7CiAgICBsZXQgY29sdW1uTmFtZSA9IGFycmF5Q29sdW1uTmFtZXNbaV07CiAgICAvL+aMh+WumuOBquOBl+OCq+ODqeODoOOBr+epuuaWh+Wtl+OCkuWFpeOCjOOCiwogICAgaWYgKGNvbHVtbk5hbWUgPT0gIiIpIHsKICAgICAgdmFsdWVzLnB1c2goICIiICk7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIGNvbnN0IGNvbHVtbkRlZmluaXRpb24gPSBlbmdpbmUuZmluZERhdGFEZWZpbml0aW9uQnlWYXJOYW1lKCBjb2x1bW5OYW1lICk7CiAgICBjb25zdCBjb2x1bW5PYmplY3QgPSBlbmdpbmUuZmluZERhdGFCeVZhck5hbWUoIGNvbHVtbk5hbWUgKTsKICAgIGxldCBjb2x1bW5WYWx1ZSA9ICcnOwoKICAgIC8v44OH44O844K\/5Z6L44Gr44KI44Gj44Gm5YCk44Gu5Y+W5b6X5pa55rOV44GM5aSJ44KP44KL77yI44OG44O844OW44Or5Z6L44O75o6y56S65p2\/5Z6L44Gv6ICD5oWu5aSW77yJCiAgICBpZiAoIGNvbHVtbkRlZmluaXRpb24ubWF0Y2hEYXRhVHlwZSggIlNFTEVDVCIgKSApIHsKICAgICAgaWYgKCBjb2x1bW5PYmplY3QgKSB7CiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgY29sdW1uT2JqZWN0LnNpemUoKTsgaSsrICl7CiAgICAgICAgICBjb25zdCBzZWxlY3QgPSBjb2x1bW5PYmplY3QuZ2V0KGkpOwogICAgICAgICAgaWYgKCBjb2x1bW5WYWx1ZSAhPSAnJyApIHsKICAgICAgICAgICAgY29sdW1uVmFsdWUgKz0gJywnOwogICAgICAgICAgfQogICAgICAgICAgY29sdW1uVmFsdWUgKz0gc2VsZWN0LmdldFZhbHVlKCkgKyAiOiIgKyBzZWxlY3QuZ2V0RGlzcGxheSgpOwogICAgICAgIH0KICAgICAgfQoKICAgIH0gZWxzZSBpZiAoIGNvbHVtbkRlZmluaXRpb24ubWF0Y2hEYXRhVHlwZSggIlFVU0VSIiApICkgewogICAgICBpZiAoIGNvbHVtbk9iamVjdCApIHsKICAgICAgICBjb2x1bW5WYWx1ZSA9IGNvbHVtbk9iamVjdC5nZXROYW1lKCkgKyAnPCcgKyBjb2x1bW5PYmplY3QuZ2V0RW1haWwoKSArICc+JzsKICAgICAgfQoKICAgIH0gZWxzZSBpZiAoIGNvbHVtbkRlZmluaXRpb24ubWF0Y2hEYXRhVHlwZSggIlFHUk9VUCIgKSApIHsKICAgICAgaWYgKCBjb2x1bW5PYmplY3QgKSB7CiAgICAgICAgY29sdW1uVmFsdWUgPSBjb2x1bW5PYmplY3QuZ2V0TmFtZSgpOwogICAgICB9CgogICAgfSBlbHNlIGlmICggY29sdW1uRGVmaW5pdGlvbi5tYXRjaERhdGFUeXBlKCAiRklMRSIgKSApIHsKICAgICAgaWYgKCBjb2x1bW5PYmplY3QgKSB7CiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgY29sdW1uT2JqZWN0LnNpemUoKTsgaSsrICkgewogICAgICAgICAgY29uc3QgZmlsZSA9IGNvbHVtbk9iamVjdC5nZXQoaSk7CiAgICAgICAgICBpZiAoIGNvbHVtblZhbHVlICE9ICcnICkgewogICAgICAgICAgICBjb2x1bW5WYWx1ZSArPSAnLCc7CiAgICAgICAgICB9CiAgICAgICAgICBjb2x1bW5WYWx1ZSArPSBmaWxlLmdldE5hbWUoKTsKICAgICAgICB9CiAgICAgIH0KCiAgICB9IGVsc2UgaWYgKCBjb2x1bW5EZWZpbml0aW9uLm1hdGNoRGF0YVR5cGUoICJMSVNUIiApICkgewogICAgICAvL+OCueOCreODg+ODlwoKICAgIH0gZWxzZSBpZiAoIGNvbHVtbkRlZmluaXRpb24ubWF0Y2hEYXRhVHlwZSggIkRJU0NVU1NJT04iICkgKSB7CiAgICAgIC8v44K544Kt44OD44OXCgogICAgfSBlbHNlIHsKICAgICAgaWYgKCBjb2x1bW5PYmplY3QgKSB7CiAgICAgICAgY29sdW1uVmFsdWUgPSBjb2x1bW5PYmplY3QudG9TdHJpbmcoKTsKICAgICAgfQogICAgfQoKICAgIHZhbHVlcy5wdXNoKCBjb2x1bW5WYWx1ZSApOwogIH0KCn0KCi8qKgogICog44OV44Kp44Or44OA44GuIFVSTCDjgYvjgonjg5XjgqHjgqTjg6vmg4XloLHvvIjjg4njg6njgqTjg5YgSUQg44Go44OV44Kh44Kk44OrIElE77yJ44KS5Y+W5b6X44GX44CBCiAgKiDjgqrjg5bjgrjjgqfjgq\/jg4jjgafov5TjgZnvvIhVUkwg44GM56m644Gu5aC05ZCI44Gv44Ko44Op44O844Go44GZ44KL77yJCiAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZVVybCAg44OV44Kp44Or44OA44GuIFVSTAogICogQHBhcmFtIHtTdHJpbmd9IG9hdXRoMiAgT0F1dGgyIOioreWumgogICogQHJldHVybiB7T2JqZWN0fSBmaWxlSW5mbyAg44OV44Kh44Kk44Or5oOF5aCxIHtkcml2ZUlkLCBmaWxlSWR9CiAgKi8KZnVuY3Rpb24gZ2V0RmlsZUluZm9CeVVybCggZmlsZVVybCwgb2F1dGgyICkgewogIGxldCBmaWxlSW5mbzsKICBpZiAoIGZpbGVVcmwgIT09ICIiICYmIGZpbGVVcmwgIT09IG51bGwgKSB7CiAgICAvLyDliIblibLku6PlhaUKICAgIGNvbnN0IHsKICAgICAgaWQsCiAgICAgIHBhcmVudFJlZmVyZW5jZTogewogICAgICAgIGRyaXZlSWQKICAgICAgfQogICAgfSA9IGdldE9iakJ5U2hhcmluZ1VybCggZmlsZVVybCwgb2F1dGgyICk7CiAgICBmaWxlSW5mbyA9IHtkcml2ZUlkOiBgZHJpdmVzLyR7ZHJpdmVJZH1gLCBmaWxlSWQ6IGlkfTsKICB9CiAgcmV0dXJuIGZpbGVJbmZvOwp9CgovKioKICAqIE9uZURyaXZlIOOBruODieODqeOCpOODluOCouOCpOODhuODoO+8iOODleOCoeOCpOODq+OAgeODleOCqeODq+ODgO+8ieOBruODoeOCv+ODh+ODvOOCv+OCkuWPluW+l+OBl+OAgUpTT04g44Kq44OW44K444Kn44Kv44OI44KS6L+U44GZCiAgKiBBUEkg44Gu5LuV5qeY77yaaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vamEtanAvb25lZHJpdmUvZGV2ZWxvcGVyL3Jlc3QtYXBpL2FwaS9zaGFyZXNfZ2V0P3ZpZXc9b2RzcC1ncmFwaC1vbmxpbmUKICAqIEBwYXJhbSB7U3RyaW5nfSBzaGFyaW5nVXJsICDjg5XjgqHjgqTjg6vjga7lhbHmnIkgVVJMCiAgKiBAcGFyYW0ge1N0cmluZ30gb2F1dGgyICBPQXV0aDIg6Kit5a6aCiAgKiBAcmV0dXJuIHtPYmplY3R9IHJlc3BvbnNlT2JqICDjg4njg6njgqTjg5bjgqLjgqTjg4bjg6Djga7jg6Hjgr\/jg4fjg7zjgr\/jga4gSlNPTiDjgqrjg5bjgrjjgqfjgq\/jg4gKICAqLwpmdW5jdGlvbiBnZXRPYmpCeVNoYXJpbmdVcmwoIHNoYXJpbmdVcmwsIG9hdXRoMiApIHsKICBpZiAoc2hhcmluZ1VybCA9PT0gIiIgfHwgc2hhcmluZ1VybCA9PT0gbnVsbCkgewogICAgdGhyb3cgYFNoYXJpbmcgVVJMIGlzIGVtcHR5LmA7CiAgfQoKICAvLyBlbmNvZGluZyBzaGFyaW5nIFVSTAogIGNvbnN0IGVuY29kZWRTaGFyaW5nVXJsID0gZW5jb2RlU2hhcmluZ1VybChzaGFyaW5nVXJsKTsKCiAgLy8gQVBJIFJlcXVlc3QKICBjb25zdCByZXNwb25zZSA9IGh0dHBDbGllbnQuYmVnaW4oKQogICAgLmF1dGhTZXR0aW5nKCBvYXV0aDIgKQogICAgLmdldCggYCR7R1JBUEhfVVJJfXNoYXJlcy8ke2VuY29kZWRTaGFyaW5nVXJsfS9kcml2ZUl0ZW1gICk7CgogIGNvbnN0IHJlc3BvbnNlU3RyID0gbG9nQW5kSnVkZ2VFcnJvcihyZXNwb25zZSwgIkdFVCIpOwoKICByZXR1cm4gSlNPTi5wYXJzZSggcmVzcG9uc2VTdHIgKTsKfQoKLyoqCiAgKiDlhbHmnIlVUkzjgpJ1bnBhZGRlZCBiYXNlNjR1cmwg5b2i5byP44Gr44Ko44Oz44Kz44O844OJ44GZ44KLCiAgKiBAcGFyYW0ge1N0cmluZ30gc2hhcmluZ1VybCAg5YWx5pyJIFVSTAogICogQHJldHVybiB7U3RyaW5nfSBlbmNvZGVkU2hhcmluZ1VybCAg44Ko44Oz44Kz44O844OJ44GV44KM44Gf5YWx5pyJIFVSTAogICovCmZ1bmN0aW9uIGVuY29kZVNoYXJpbmdVcmwoIHNoYXJpbmdVcmwgKSB7CiAgbGV0IGVuY29kZWRTaGFyaW5nVXJsID0gYmFzZTY0LmVuY29kZVRvVXJsU2FmZVN0cmluZyggc2hhcmluZ1VybCApOwogIHdoaWxlICggZW5jb2RlZFNoYXJpbmdVcmwuc2xpY2UoLTEpID09PSAnPScgKSB7CiAgICBlbmNvZGVkU2hhcmluZ1VybCA9IGVuY29kZWRTaGFyaW5nVXJsLnNsaWNlKDAsLTEpOwogIH0KICByZXR1cm4gYHUhJHtlbmNvZGVkU2hhcmluZ1VybH1gOwp9CgovKioKICAqIOaMh+WumuOCt+ODvOODiOOBruaMh+WumuihjOOBq+ODh+ODvOOCv+OCkuWFpeWKm+OBmeOCiwogICogQHBhcmFtIHtPYmplY3R9IGJvb2tJbmZvCiAgKiBAcGFyYW0ge1N0cmluZ30gYm9va0luZm8uZHJpdmVJZCAg44Ov44O844Kv44OW44OD44Kv44Gu44OJ44Op44Kk44OWIElECiAgKiBAcGFyYW0ge1N0cmluZ30gYm9va0luZm8uZmlsZUlkICDjg6\/jg7zjgq\/jg5bjg4Pjgq\/jga7jg5XjgqHjgqTjg6sgSUQKICAqIEBwYXJhbSB7U3RyaW5nfSB0YWJsZU5hbWUgIOaMv+WFpeWFiOOCt+ODvOODiOOBruWQjeWJjQogICogQHBhcmFtIHtBcnJheX0gdmFsdWVzICDmjL\/lhaXjgZnjgovjg4fjg7zjgr\/jga7phY3liJcKICAqIEBwYXJhbSB7U3RyaW5nfSBvYXV0aDIgIE9BdXRoMiDoqK3lrpoKICAqLwpmdW5jdGlvbiBwb3N0RGF0YSgge2RyaXZlSWQsIGZpbGVJZH0sIHRhYmxlTmFtZSwgdmFsdWVzLCBvYXV0aDIgKXsKCiAgY29uc3QgcG9zdFVyaSA9IGAke0dSQVBIX1VSSX0ke2RyaXZlSWR9L2l0ZW1zLyR7ZmlsZUlkfS93b3JrYm9vay90YWJsZXMvJHt0YWJsZU5hbWV9L3Jvd3NgOwovLyAgY29uc3QgcG9zdFVyaSA9IGAke0dSQVBIX1VSSX1tZS9kcml2ZS9pdGVtcy8ke2ZpbGVJZH0vd29ya2Jvb2svdGFibGVzLyR7dGFibGVOYW1lfS9yb3dzYDsKICBjb25zdCByZXF1ZXN0Qm9keSA9IG1ha2VSZXF1ZXN0VG9BZGQodmFsdWVzKTsKLy9lbmdpbmUubG9nKCJqc29uOiIgKyBKU09OLnN0cmluZ2lmeShyZXF1ZXN0Qm9keSkgKyAiIikKCiAgY29uc3QgcmVzcG9uc2UgPSBodHRwQ2xpZW50LmJlZ2luKCkKICAgIC5hdXRoU2V0dGluZyggb2F1dGgyICkKICAgIC5ib2R5KCBKU09OLnN0cmluZ2lmeShyZXF1ZXN0Qm9keSksICJhcHBsaWNhdGlvbi9qc29uIiApCiAgICAucG9zdCggcG9zdFVyaSApOwogIAogIGxvZ0FuZEp1ZGdlRXJyb3IocmVzcG9uc2UsICJQT1NUIik7CgogIGNvbnN0IGRhdGFJZCA9IGNvbmZpZ3MuZ2V0KCAiY29uZl9JbmRleE51bSIgKTsKICBpZiAoIGRhdGFJZCApewogICAgY29uc3QganNvbk9iaiA9IEpTT04ucGFyc2UoIHJlc3BvbnNlLmdldFJlc3BvbnNlQXNTdHJpbmcoKSApOwogICAgY29uc3QgaW5kZXggPSBqc29uT2JqLmluZGV4ICsgIiI7CiAgICBlbmdpbmUuc2V0RGF0YUJ5TnVtYmVyKCBkYXRhSWQsIGluZGV4ICsgIiIgKTsKICB9Cgp9CgovKioKICAqIOaWsOOBl+OBhOihjOOBq+i\/veWKoOOBmeOCi+ODh+ODvOOCv+OCkuOAgUpTT04g5b2i5byP44Gr5aSJ5o+b44GZ44KLCiAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgIOODh+ODvOOCv+OBruWFpeOBo+OBn+mFjeWIlwogICogQHJldHVybiB7SlNPTiBPYmplY3R9IOWkieaPm+OBl+OBnyBKU09OIOOCquODluOCuOOCp+OCr+ODiAogICovCmZ1bmN0aW9uIG1ha2VSZXF1ZXN0VG9BZGQodmFsdWVzKXsKICBsZXQgcmVxdWVzdCA9IHsKICAgIHZhbHVlcyA6IFtbXV0KICB9OwogIGZvcihsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspewogICAgaWYodmFsdWVzW2ldID09PSAiIiB8fCB2YWx1ZXNbaV0gPT09IG51bGwpewogICAgICByZXF1ZXN0LnZhbHVlc1swXS5wdXNoKG51bGwpOwogICAgfWVsc2V7CiAgICAgIGlmKHZhbHVlc1tpXS5sZW5ndGggPiAzMjc2Nyl7CiAgICAgICAgdGhyb3cgIkNhbid0IHNldCB0ZXh0IG92ZXIgMzIsNzY3IGNoYXJhY3Rlci4iOwogICAgICB9CiAgICAgIHJlcXVlc3QudmFsdWVzWzBdLnB1c2godmFsdWVzW2ldKTsKICAgIH0KICB9CiAgcmV0dXJuIHJlcXVlc3Q7Cn0KCi8qKgogICog44Ot44Kw44Gu5Ye65Yqb44Go44CB44Ko44Op44O855m655Sf5pmC44Gu44K544Ot44O844KS6KGM44GGCiAgKiBAcGFyYW0ge0h0dHBSZXNwb25zZVdyYXBwZXJ9IHJlc3BvbnNlICDjg6rjgq\/jgqjjgrnjg4jjga7lv5znrZQKICAqIEBwYXJhbSB7U3RyaW5nfSByZXF1ZXN0VHlwZSDjg6rjgq\/jgqjjgrnjg4jjgpLjganjga7lvaLlvI\/jgafooYzjgaPjgZ\/jgYsoIkdFVCIgb3IgIlBPU1QiIG9yICJQQVRDSCIpCiAgKiBAcmV0dXJuIHtTdHJpbmd9IHJlc3BvbnNlU3RyIOODrOOCueODneODs+OCueOBruaWh+Wtl+WIlwogICovCmZ1bmN0aW9uIGxvZ0FuZEp1ZGdlRXJyb3IocmVzcG9uc2UsIHJlcXVlc3RUeXBlKXsKICBjb25zdCByZXNwb25zZVN0ciA9IHJlc3BvbnNlLmdldFJlc3BvbnNlQXNTdHJpbmcoKTsKLy9lbmdpbmUubG9nKCJyZXNwb25zZToiICsgcmVzcG9uc2VTdHIpOwogIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLmdldFN0YXR1c0NvZGUoKTsKICBpZihzdGF0dXMgPj0gMzAwKXsKICAgIGNvbnN0IGFjY2Vzc0xvZyA9IGAtLS0ke3JlcXVlc3RUeXBlfSByZXF1ZXN0LS0tICR7c3RhdHVzfVxuJHtyZXNwb25zZVN0cn1cbmA7CiAgICBlbmdpbmUubG9nKGFjY2Vzc0xvZyk7CiAgICB0aHJvdyBgRmFpbGVkIGluICR7cmVxdWVzdFR5cGV9IHJlcXVlc3QuIHN0YXR1czogJHtzdGF0dXN9YDsKICB9CiAgcmV0dXJuIHJlc3BvbnNlU3RyOwp9CncCanN3CkphdmFTY3JpcHR3AHcAfQF3CXVuZGVmaW5lZHcAeXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDI3YjFmOGU5LTIyOTMtNDg5OC05NmVhLTJkMGY0N2ZkOTdlYXh3jQE8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIHN0eWxlPSJtYXJnaW4tdG9wOnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTYwKSI+PHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+RG93bmxvYWQ8L3NwYW4+PC9oMz53DGNvcmUvaGVhZGluZ30DdgEHc3BhY2luZ3YBBm1hcmdpbnYBA3RvcHcVdmFyOnByZXNldHxzcGFjaW5nfDYwdwB3AHl5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDNlYzY3MmQwLTBiYzEtNDRmMi1hOWEzLTM3MGJkN2EwYmZiNXh3Hzx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PC91bD53CWNvcmUvbGlzdHl3AHcAdwB5eXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRmNGZjODc0NC02NzIxLTQ2OTctOTlkZi01YzczYzNiYzFkOTJ4d2U8bGk+PGEgcmVsPSJub3JlZmVycmVyIG5vb3BlbmVyIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIj5leGNlbC10YWJsZS1yb3ctY3JlYXRlLWZsZXhpYmxlLnhtbDwvYT48L2xpPncOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckZmRiZTc1ZjEtMmJmMS00ZTdkLWJkZjItMjkzMGM2NWVlNjRkeHcfPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48L3VsPncJY29yZS9saXN0eXcAdwB3AHl5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDcwNjlhNWUwLTI1NTItNDZiZi1iMmNmLTRlMDkwZGJhNjZkNHh3NTxsaT4yMDIzLTA3LTAzIChDKSBRdWVzdGV0cmEsIEluYy4gKE1JVCBMaWNlbnNlKTwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRiYWUxNzEwNy1kN2M4LTQ4ZTktYWFlZS05MWVkZWZiYWIwNjZ4d+MDPGRpdiBjbGFzcz0iaGFzLXNtYWxsLWZvbnQtc2l6ZSIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kOiAjRkJFN0REOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KPHNwYW4gY2xhc3M9Im1hdGVyaWFsLWljb25zIj53YXJuaW5nPC9zcGFuPiDoh6rnlLHmlLnlpInlj6\/og73jgaogSmF2YVNjcmlwdCAoRUNNQVNjcmlwdCkg44Kz44O844OJ44Gn44GZ44CC44GE44GL44Gq44KL5L+d6Ki844KC44GC44KK44G+44Gb44KT44CCPGJyPgooPGVtPjxzdHJvbmc+44Ki44OJ44Kq44Oz6Ieq5YuV5bel56iLPC9zdHJvbmc+PC9lbT7jga7jgqTjg7Pjgrnjg4jjg7zjg6vjga8gPGVtPjxzdHJvbmc+PHNwYW4gc3R5bGU9ImNvbG9yOiAjMTk3MEI5Ij5Qcm9mZXNzaW9uYWw8L3NwYW4+PC9zdHJvbmc+PC9lbT4gZWRpdGlvbuOBp+OBruOBv+WPr+iDveOBp+OBmSkKPC9kaXY+PC9kaXY+dwljb3JlL2h0bWx34wM8ZGl2IGNsYXNzPSJoYXMtc21hbGwtZm9udC1zaXplIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6ICNGQkU3REQ7IHRleHQtYWxpZ246IGNlbnRlcjsiPgo8c3BhbiBjbGFzcz0ibWF0ZXJpYWwtaWNvbnMiPndhcm5pbmc8L3NwYW4+IOiHqueUseaUueWkieWPr+iDveOBqiBKYXZhU2NyaXB0IChFQ01BU2NyaXB0KSDjgrPjg7zjg4njgafjgZnjgILjgYTjgYvjgarjgovkv53oqLzjgoLjgYLjgorjgb7jgZvjgpPjgII8YnI+Cig8ZW0+PHN0cm9uZz7jgqLjg4njgqrjg7Poh6rli5Xlt6XnqIs8L3N0cm9uZz48L2VtPuOBruOCpOODs+OCueODiOODvOODq+OBryA8ZW0+PHN0cm9uZz48c3BhbiBzdHlsZT0iY29sb3I6ICMxOTcwQjkiPlByb2Zlc3Npb25hbDwvc3Bhbj48L3N0cm9uZz48L2VtPiBlZGl0aW9u44Gn44Gu44G\/5Y+v6IO944Gn44GZKQo8L2Rpdj48L2Rpdj55eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckYjEyNjUwZmQtN2Y0YS00MzAzLWJjNzEtMDYxNDZkMDVkYmM0eHeKATxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgc3R5bGU9Im1hcmdpbi10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNjApIj48c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5Ob3Rlczwvc3Bhbj48L2gzPncMY29yZS9oZWFkaW5nfQN2AQdzcGFjaW5ndgEGbWFyZ2ludgEDdG9wdxV2YXI6cHJlc2V0fHNwYWNpbmd8NjB3AHcAeXl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckMTRiZjBjYWYtZDI4NC00MWE3LTgyMTAtNTZmYzRiMjAzODIweHcjPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij4KCgoKPC91bD53CWNvcmUvbGlzdHl3AHcAdwB5eXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRlZGM1MWMyYi0yMzk1LTRmNTYtYTg0Ni1iNDkxOTlhNTBmMTl4d0Y8bGk+TWljcm9zb2Z0MzY1IOezu+OBruOCteODvOODk+OCueOBqOOBrumAo+aQuuioreWumuOBq+OBpOOBhOOBpjwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQ0MTNlNWU1OC0wNTNlLTQxZWItOTg0MS02YWZjYTA2NGFlNjR4dyE8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKPC91bD53CWNvcmUvbGlzdHl3AHcAdwB5eXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRlYzMzYmQ3ZS0wODFhLTRhNGQtOTU2Ni03MDE4ZTE4ZDVmZjh4d148bGk+TWljcm9zb2Z0MzY177yIQXp1cmUgQWN0aXZlIERpcmVjdG9yee+8ieWBtOOBruOCouODl+ODquOCseODvOOCt+ODp+ODs+eZu+mMsuOBruaWueazlTwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRjMDkxNmM3Ni0wNDUyLTQxOTctOTI2Mi0yYzhjZDY2NzczOTd4dx88dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwvdWw+dwljb3JlL2xpc3R5dwB3AHcAeXl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckOWU5YmFjMDctYzRkZS00NzIxLWFjZjMtZWEzNGEwMzM4MGVleHfiATxsaT4iPGEgcmVsPSJub3JlZmVycmVyIG5vb3BlbmVyIiBocmVmPSJodHRwczovL3N1cHBvcnQucXVlc3RldHJhLmNvbS9qYS9kZXZlbG9wZXItYmxvZy9vZmZpY2UzNjUtYXBwLXJlZ2lzdC8iIHRhcmdldD0iX2JsYW5rIj5PZmZpY2UzNjUg44Go44Kv44Op44Km44OJ44Ov44O844Kv44OV44Ot44O8IFF1ZXN0ZXRyYSDjgpIgQVBJIOmAo+aQuuOBleOBm+OBn+OBhOWgtOWQiOOBqzwvYT4iPC9saT53DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JGM5NjI1Nzk3LWMwMTgtNDYzZC04NzM0LTU5YmJkNmZmMGRiNXh3NDxsaT5RdWVzdGV0cmEg5YG044GuIEhUVFAg6KqN6Ki86Kit5a6a44Gu5pa55rOVPC9saT53DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDYyZDA4YzI0LTlhMGEtNGNlYi05NWY4LTZmOWNmNDhlYTU4Mnh3ITx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+Cgo8L3VsPncJY29yZS9saXN0eXcAdwB3AHl5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDgwMDRhMmE3LTBhYTEtNDcwZi05ZjA1LTlhMDE2NGI2YTFiNXh34AE8bGk+IjxhIHJlbD0ibm9yZWZlcnJlciBub29wZW5lciIgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vamEvZGV2ZWxvcGVyLWJsb2cvb25lZHJpdmUtcXVlc3RldHJhLyIgdGFyZ2V0PSJfYmxhbmsiPk9uZURyaXZlIOOBuOOCr+ODqeOCpuODieODr+ODvOOCr+ODleODreODvCBRdWVzdGV0cmEg44GL44KJ44OV44Kh44Kk44Or5Ye65Yqb44GZ44KL5pa55rOVPC9hPiI8L2xpPncOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckYWQzOGY0NWEtOGY1Yi00MmViLTg5ODQtNjYyYjY2MTNiMzJheHcfPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48L3VsPncJY29yZS9saXN0eXcAdwB3AHl5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDE5YmM2YmY4LWMxMWItNDM3ZC1iZWRlLWI1OTkwNWQwOTA0YXh3LTxsaT4iMi4yOiBRdWVzdGV0cmEg5YG044GuIE9BdXRoIOioreWumiI8L2xpPncOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckNTk3Zjc1MzctNGQ2MS00YzI3LWJiODQtZmUxNTBhZWZiYTIzeHevATxsaT7igLvms6jmhI\/igLvjgIBFeGNlbCBPbmxpbmUg44OV44Kh44Kk44Or44GMIFNoYXJlUG9pbnQgT25saW5l77yIU1BP77yJ44Gu44OJ44Kt44Ol44Oh44Oz44OI44Op44Kk44OW44Op44Oq5LiK44Gr44GC44KL5aC05ZCI44CB5oyH5a6a44GZ44G544GN44K544Kz44O844OX44GM55Ww44Gq44KLPC9saT53DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JGY3N2MyZTVjLTA1MTgtNDY4NC1iOTdmLTI5NWM1OTljODMzZXh3ITx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+Cgo8L3VsPncJY29yZS9saXN0eXcAdwB3AHl5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JGQ4N2E1N2I5LWRjZDAtNGIxNC05MGNlLWQ4YmQ1MTk2ZDliZXh3iwE8bGk+U1BP44OJ44Kt44Ol44Oh44Oz44OI44Op44Kk44OW44Op44Oq5LiK44Gn44Gv44Gq44GEIOKGkmh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS88c3Ryb25nPkZpbGVzPC9zdHJvbmc+LlJlYWRXcml0ZSBvZmZsaW5lX2FjY2VzczwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQ3ZThmOWYxNi00OGFjLTQ4ZWItOWRjZi04MDBlOWVmMTcxMjN4d4wBPGxpPlNQT+ODieOCreODpeODoeODs+ODiOODqeOCpOODluODqeODquS4iuOBq+OBguOCiyDihpJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vPHN0cm9uZz5TaXRlczwvc3Ryb25nPi5SZWFkV3JpdGUuQWxsIG9mZmxpbmVfYWNjZXNzPC9saT53DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JGEwYjk2OWU5LTA0NTYtNGMzMy1iMTA2LWM4Mjk3NDI1MThjYXh37gE8bGk+RXhjZWzlgbTjgavjgIzjg4bjg7zjg5bjg6vjgI3jga7oqK3lrprjgYzlv4XopoHjgavjgarjgorjgb7jgZnjgII8YSBocmVmPSJodHRwczovL2J1c2luZXNzLm50dC1lYXN0LmNvLmpwL2NvbHVtbi9iaXpkcml2ZS9leGNlbC10YWJsZS1tYXN0ZXItaW4tNW1pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayI+44GT44Gh44KJ44Gu44Oa44O844K4PC9hPuOCkuWPguiAg+OBq+OBl+OBpuOBj+OBoOOBleOBhOOAgjwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRkNjc0MmE0MC01ODc5LTQ4MmYtYWE2NS0xM2M2ZDE2NTMwNzZ4d8kBPGxpPuOCt+ODvOODiOWQjeOBq+OCq+ODg+OCs+etieOBruiomOWPt+OBjOWFpeOBo+OBpuOBhOOCi+WgtOWQiOOBq+OBr+OCqOODqeODvOOBq+OBquOCi+OBk+OBqOOBjOOBguOCiuOBvuOBmeOAguOCqOODqeODvOOBqOOBquOBo+OBn+WgtOWQiOOBq+OBr+OCt+ODvOODiOWQjeOBruWkieabtOOCkuaknOiojuOBl+OBpuOBj+OBoOOBleOBhOOAgjwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRkNjlkNWVmYy0zZjQ0LTRjZGYtOGI1Yi0xNTQwMTEzZWFlZDd4d4wBPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBzdHlsZT0ibWFyZ2luLXRvcDp2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS02MCkiPjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPkNhcHR1cmU8L3NwYW4+PC9oMz53DGNvcmUvaGVhZGluZ30DdgEHc3BhY2luZ3YBBm1hcmdpbnYBA3RvcHcVdmFyOnByZXNldHxzcGFjaW5nfDYwdwB3AHl5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDMxODgwMWI1LTU3NjktNGE5Mi1hNjljLWMyNGViZWQxNDI3MXh31QI8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBhbGlnbmNlbnRlciBzaXplLWxhcmdlIGhhcy1jdXN0b20tYm9yZGVyIGlzLXN0eWxlLXJvdW5kZWQiPjxpbWcgc3JjPSJodHRwczovL3N1cHBvcnQucXVlc3RldHJhLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMS9leGNlbC10YWJsZS1yb3ctY3JlYXRlLWZsZXhpYmxlLWNhcHR1cmUtY29uZmlnLWphLTc0Nng2MzAuanBnIiBhbHQ9IiIgY2xhc3M9Imhhcy1ib3JkZXItY29sb3Igd3AtaW1hZ2UtMTgwMzA4IiBzdHlsZT0iYm9yZGVyLWNvbG9yOiMwMDk5MDA7Ym9yZGVyLXdpZHRoOjNweDtib3JkZXItcmFkaXVzOjlweCIvPjwvZmlndXJlPncKY29yZS9pbWFnZXd2aHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDEvZXhjZWwtdGFibGUtcm93LWNyZWF0ZS1mbGV4aWJsZS1jYXB0dXJlLWNvbmZpZy1qYS03NDZ4NjMwLmpwZ3cAfZSBFncFbGFyZ2V3BG5vbmV3BmNlbnRlcncQaXMtc3R5bGUtcm91bmRlZHYBBmJvcmRlcnYDBnJhZGl1c3cDOXB4BWNvbG9ydwcjMDA5OTAwBXdpZHRodwMzcHh5eXcEbm9uZXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeXckMjQ4MWY1YjQtZjA2Ny00ZTY0LWJkZjMtMWM0MWUzNGYwYTI2eHeNATxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgc3R5bGU9Im1hcmdpbi10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNjApIj48c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5BcHBlbmRpeDwvc3Bhbj48L2gzPncMY29yZS9oZWFkaW5nfQN2AQdzcGFjaW5ndgEGbWFyZ2ludgEDdG9wdxV2YXI6cHJlc2V0fHNwYWNpbmd8NjB3AHcAeXl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckZjczOWFhYTMtZTYxNy00NWFmLThhNzItNGU3NzNjNzhhYjFkeHeJBzxwPuOBk+OBruOCouODieOCquODs1hNTOOBr+OAgeODhuODvOODluODq+OCkuWIqeeUqOOBl+OBpuOBhOOCi+OBruOBp+OAgeOAjDxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5xdWVzdGV0cmEuY29tL2phL2FkZG9ucy9leGNlbC1yb3ctYXBwZW5kLTIwMjMwNy8iIHRhcmdldD0iX2JsYW5rIj5NaWNyb3NvZnQgMzY1IEV4Y2VsOiDooYzov73liqA8L2E+44CN44KI44KK44KC56u25ZCI44Gr5by344GE5L2c44KK44Go44Gq44Gj44Gm44GE44G+44GZ44CCPGJyPiDigLvjgIxNaWNyb3NvZnQgMzY1IEV4Y2VsOiDooYzov73liqDjgI3jga7lhoXpg6jlh6bnkIbjgajjgZfjgabjga\/jgIHlgKTjgb7jgZ\/jga\/mm7jlvI\/oqK3lrprjgYzlibLjgorlvZPjgZ\/jgaPjgabjgYTjgovjgrvjg6vnr4Tlm7LjgYvjgonmnKvlsL7ooYzjgpLliKTlrprvvIjlhoXpg6jnmoTjgasgdXNlZFJhbmdlKCkg44KS5Yip55So77yJ44GX44CB6KGM6L+95Yqg44KS6KGM44GE44G+44GZ44CCIOOBneOBruOBn+OCgeOAgeikh+aVsOOBruODl+ODreOCu+OCueOBi+OCieWQjOaZguOBq+Wun+ihjOOBleOCjOOBn+WgtOWQiOOAgeertuWQiOOBq+OCiOOCiuWHpueQhuOBjOato+W4uOOBq+WujOS6huOBl+OBquOBhOWPr+iDveaAp+OBjOOBguOCiuOBvuOBmeOAgiA8YnI+PGJyPiDjgb7jgZ\/jgIHjgIzov73liqDjgZfjgZ\/jgYTjgqvjg6njg6Djga7jg5XjgqPjg7zjg6vjg4nlkI3jgI3jgavjgojjgorov73liqDjgZfjgZ\/jgYTliJfjgpLlpJrmlbDmjIflrprjgZnjgovjgZPjgajjgYzjgafjgY3jgIHjgIxNaWNyb3NvZnQgMzY1IEV4Y2VsOiDjg4bjg7zjg5bjg6vooYzov73liqDjgI3jgojjgorjgoLkuIDluqbjgavlpJrjgY\/jga7liJfjgavlgKTjgpLlhaXlipvjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgII8L3A+dw5jb3JlL3BhcmFncmFwaHl3AHcAeXl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckNTYwMGVhMDUtNTRiMC00ZWE2LWIwYTktNWRkZjEzYjMwMDEyeHeNATxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgc3R5bGU9Im1hcmdpbi10b3A6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNjApIj48c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5TZWUgQWxzbzwvc3Bhbj48L2gzPncMY29yZS9oZWFkaW5nfQN2AQdzcGFjaW5ndgEGbWFyZ2ludgEDdG9wdxV2YXI6cHJlc2V0fHNwYWNpbmd8NjB3AHcAeXl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckZWQzYTM0YmItMGJlYy00NDFiLWFiMjQtMjFkODZkNjEwMzVleHfkATxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWVtYmVkIGlzLXR5cGUtd3AtZW1iZWQgaXMtcHJvdmlkZXItcXVlc3RldHJhLXN1cHBvcnQgd3AtYmxvY2stZW1iZWQtcXVlc3RldHJhLXN1cHBvcnQiPjxkaXYgY2xhc3M9IndwLWJsb2NrLWVtYmVkX193cmFwcGVyIj4KaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vamEvYWRkb25zL2V4Y2VsLXRhYmxlLXJvdy1jcmVhdGUvCjwvZGl2PjwvZmlndXJlPncKY29yZS9lbWJlZHc\/aHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vamEvYWRkb25zL2V4Y2VsLXRhYmxlLXJvdy1jcmVhdGUvdwh3cC1lbWJlZHcRcXVlc3RldHJhLXN1cHBvcnR4eXh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckNjViNTRlN2YtZjZiYi00NWMxLWEyY2MtZWJhMjUyNWFjMWM3eHflATxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWVtYmVkIGlzLXR5cGUtd3AtZW1iZWQgaXMtcHJvdmlkZXItcXVlc3RldHJhLXN1cHBvcnQgd3AtYmxvY2stZW1iZWQtcXVlc3RldHJhLXN1cHBvcnQiPjxkaXYgY2xhc3M9IndwLWJsb2NrLWVtYmVkX193cmFwcGVyIj4KaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vamEvYWRkb25zL2V4Y2VsLXJvdy1hcHBlbmQtMjAyMzA3Lwo8L2Rpdj48L2ZpZ3VyZT53CmNvcmUvZW1iZWR3QGh0dHBzOi8vc3VwcG9ydC5xdWVzdGV0cmEuY29tL2phL2FkZG9ucy9leGNlbC1yb3ctYXBwZW5kLTIwMjMwNy93CHdwLWVtYmVkdxFxdWVzdGV0cmEtc3VwcG9ydHh5eHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0ABgB1AX2pAnckNzRlOWM3ZTAtMzc3Yy00MDIwLTlhYjQtNDAyMGJiM2JhNGRkd6wDPHAgY2xhc3M9Imhhcy10ZXh0LWFsaWduLXJpZ2h0IGhhcy1iYWNrZ3JvdW5kIGhhcy1zbWFsbC1mb250LXNpemUgbXQtMCBwdC0wIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZjY2ZmO21hcmdpbi10b3A6MDttYXJnaW4tcmlnaHQ6MDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLXRvcDowO3BhZGRpbmctcmlnaHQ6dmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMzApO3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy1sZWZ0OnZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTMwKSI+PGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0LnF1ZXN0ZXRyYS5jb20vYnBtbi1pY29ucy9leGNlbC10YWJsZS1yb3ctY3JlYXRlLWZsZXhpYmxlLyI+TWljcm9zb2Z0IDM2NSBFeGNlbDogVGFibGUgUm93IENyZWF0ZSAoRmxleGlibGUpPC9hPjwvcD4CgOaBugUF7gerA8aRAQBWAAEAKgWN0fXvAgEAAA==\",\"updateId\":399723312}","_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[169],"tags":[3161],"class_list":["post-180295","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-addons","tag-microsoft-365-ja"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=1200%2C675&ssl=1","uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=1200%2C675&ssl=1",1200,675,false],"thumbnail":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=440%2C440&ssl=1",440,440,true],"medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=560%2C315&ssl=1",560,315,true],"medium_large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=768%2C432&ssl=1",768,432,true],"large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=1024%2C576&ssl=1",1024,576,true],"1536x1536":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=1200%2C675&ssl=1",1200,675,true],"2048x2048":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=900%2C675&ssl=1",900,675,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=800%2C600&ssl=1",800,600,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=600%2C675&ssl=1",600,675,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=800%2C675&ssl=1",800,675,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=450%2C600&ssl=1",450,600,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=600%2C600&ssl=1",600,600,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create-flexible.png?fit=1200%2C675&ssl=1",1200,675,true]},"uagb_author_info":{"display_name":"Tsuyoshi Kusaka","author_link":"https:\/\/support.questetra.com\/ja\/author\/kusaka0211\/"},"uagb_comment_info":0,"uagb_excerpt":"\u30c6\u30fc\u30d6\u30eb\u306e\u672b\u5c3e\u306b1\u884c\u8ffd\u52a0\u3057\u3001\u305d\u306e\u5404\u30bb\u30eb\u306b\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u307e\u3059\u3002","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9DiIh-KTZ","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":81601,"url":"https:\/\/support.questetra.com\/ja\/data-items\/table-type\/","url_meta":{"origin":180295,"position":0},"title":"\u30c6\u30fc\u30d6\u30eb\u578b","author":"Peter Glover","date":"2021-01-22","format":false,"excerpt":"\u8868\u5f62\u5f0f\u306e\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u8868\u793a\u3057\u3001\u5165\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002","rel":"","context":"\u30c7\u30fc\u30bf\u9805\u76ee","block_context":{"text":"\u30c7\u30fc\u30bf\u9805\u76ee","link":"https:\/\/support.questetra.com\/ja\/category\/data-items\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":99007,"url":"https:\/\/support.questetra.com\/ja\/versions\/version-1230\/","url_meta":{"origin":180295,"position":1},"title":"Ver.12.3 kintone \u3068\u9023\u643a\u3067\u304d\u308b\u81ea\u52d5\u51e6\u7406\u5de5\u7a0b\u3092\u8ffd\u52a0 (2021\u5e741\u670818\u65e5)","author":"Hirotaka NISHI","date":"2020-12-28","format":false,"excerpt":"Advanced \u4ee5\u4e0a\u306e\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u57fa\u76e4\u3067\u6a19\u6e96\u5229\u7528\u3067\u304d\u308b\u81ea\u52d5\u51e6\u7406\u5de5\u7a0b\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u307e\u305f\u3001\u30b9\u30af\u30ea\u30d7\u30c8\u2026","rel":"","context":"\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831","block_context":{"text":"\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831","link":"https:\/\/support.questetra.com\/ja\/category\/versions\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/12\/version-1230-fi-ja.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/12\/version-1230-fi-ja.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/12\/version-1230-fi-ja.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/12\/version-1230-fi-ja.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/12\/version-1230-fi-ja.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":81289,"url":"https:\/\/support.questetra.com\/ja\/developer-blog\/excel-online-questetra\/","url_meta":{"origin":180295,"position":2},"title":"Excel Online \u3078\u30af\u30e9\u30a6\u30c9\u30ef\u30fc\u30af\u30d5\u30ed\u30fc Questetra \u304b\u3089\u30c7\u30fc\u30bf\u51fa\u529b\u3059\u308b\u65b9\u6cd5\uff08API \u9023\u643a\u306e\u8a2d\u5b9a\u624b\u9806\uff09","author":"Tsuyoshi Kusaka","date":"2019-11-06","format":false,"excerpt":"Questetra BPM Suite \u2192 Excel Online \u3078\u306e\u9023\u643a\u306e\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u307e\u3068\u3081\u307e\u2026","rel":"","context":"Questetra Developers Blog","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/ja\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/10\/excelonline-questetra-eyecatch.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/10\/excelonline-questetra-eyecatch.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/10\/excelonline-questetra-eyecatch.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/10\/excelonline-questetra-eyecatch.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/10\/excelonline-questetra-eyecatch.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":180278,"url":"https:\/\/support.questetra.com\/ja\/addons\/excel-table-row-create\/","url_meta":{"origin":180295,"position":3},"title":"Microsoft 365 Excel: \u30c6\u30fc\u30d6\u30eb\u884c\u8ffd\u52a0","author":"Tsuyoshi Kusaka","date":"2026-02-05","format":false,"excerpt":"Create new row after the last row of tabele in a s\u2026","rel":"","context":"\u30a2\u30c9\u30aa\u30f3","block_context":{"text":"\u30a2\u30c9\u30aa\u30f3","link":"https:\/\/support.questetra.com\/ja\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/01\/excel-table-row-create.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":94292,"url":"https:\/\/support.questetra.com\/ja\/developer-blog\/onedrive-workflow-tutorial\/","url_meta":{"origin":180295,"position":4},"title":"\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u304b\u3089 OneDrive \u3092\u6d3b\u7528\u3059\u308b","author":"Hirotaka NISHI","date":"2020-10-06","format":false,"excerpt":"Microsoft 365 OneDrive for Business \u306b\u95a2\u3059\u308b\u81ea\u52d5\u5de5\u7a0b\u306b\u3064\u3044\u3066\u8aac\u660e\u2026","rel":"","context":"Questetra Developers Blog","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/OneDrive-1.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/OneDrive-1.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/OneDrive-1.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/OneDrive-1.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/OneDrive-1.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":96374,"url":"https:\/\/support.questetra.com\/ja\/incident\/bug-20201014\/","url_meta":{"origin":180295,"position":5},"title":"\u30c6\u30fc\u30d6\u30eb\u578b\u306e\u6570\u5024\u96c6\u8a08\u884c\u306e\u5024\u304c\u6570\u5024\u578b\u306b\u53cd\u6620\u3055\u308c\u306a\u3044\u5834\u5408\u304c\u3042\u308b\uff08\u4fee\u6b63\u6e08\uff09","author":"Hirotaka NISHI","date":"2020-10-14","format":false,"excerpt":"\u89e3\u6c7a\u30d0\u30fc\u30b8\u30e7\u30f3\uff1aVer. 12.2.1","rel":"","context":"\u969c\u5bb3\u60c5\u5831","block_context":{"text":"\u969c\u5bb3\u60c5\u5831","link":"https:\/\/support.questetra.com\/ja\/category\/incident\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/BugReport-fi-ja.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/BugReport-fi-ja.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/BugReport-fi-ja.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/BugReport-fi-ja.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/BugReport-fi-ja.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/posts\/180295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/comments?post=180295"}],"version-history":[{"count":12,"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/posts\/180295\/revisions"}],"predecessor-version":[{"id":182431,"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/posts\/180295\/revisions\/182431"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/media\/180297"}],"wp:attachment":[{"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/media?parent=180295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/categories?post=180295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.questetra.com\/ja\/wp-json\/wp\/v2\/tags?post=180295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}