@takagaki/cortex-decisions-viewer 0.12.15 → 0.12.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/meet-guide-images.js +29 -0
- package/dist/render.js +130 -12
- package/dist/repo.js +325 -87
- package/package.json +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 会議の「Meet Recordings フォルダ共有」の手順画像(data URI)。
|
|
4
|
+
*
|
|
5
|
+
* ## なぜ base64 で埋め込むのか(2026-08-29・分類B)
|
|
6
|
+
*
|
|
7
|
+
* ビューアは自己完結の静的サイトで、この案内は約20案件ぶんのサイトに毎回載る。
|
|
8
|
+
* ビルド時にアセットとして書き出して遅延読み込みにする案もあったが、そのためには
|
|
9
|
+
* **npm パッケージに画像を同梱する新しい配布経路**(package.json の files・ビルドへの
|
|
10
|
+
* コピー手順・__dirname からの解決)が要る。実測で釣り合いを見た:
|
|
11
|
+
*
|
|
12
|
+
* カナリア(cortex-context・634レコード)の index.html … 2.97MB
|
|
13
|
+
* 画像2枚(51KB + 20KB)を base64 にしたもの ……………… 約95KB(+3.2%)
|
|
14
|
+
*
|
|
15
|
+
* **3%のために配布の失敗経路を1本増やさない。** 画像が出ない事故(パッケージに
|
|
16
|
+
* 入り損ねる・パスがずれる)は、埋め込みなら構造的に起こらない。
|
|
17
|
+
*
|
|
18
|
+
* ## 画像そのものについて
|
|
19
|
+
*
|
|
20
|
+
* オーナーが撮った実画面を、顧客も見る前提で加工したもの(個人の保存容量が写る
|
|
21
|
+
* 左サイドバーと余白は除去済み)。**画像は補助で、文章だけで手順が完結する**ように
|
|
22
|
+
* 書くこと——読み上げ・画像が出ない環境でも手順が分かる必要がある(alt を必ず付ける)。
|
|
23
|
+
*/
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.MEET_SHARE_STEP2 = exports.MEET_SHARE_STEP1 = void 0;
|
|
26
|
+
/** step1-share-menu.png(51475 バイト) */
|
|
27
|
+
exports.MEET_SHARE_STEP1 = "data:image/png;base64,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zycYDOI4Dq7r0tzczGmnnSZHixBCCCHEsQiYF198MRdffDF33nknL730Eg8++CC/+c1v+OlPf4qqqnz44YcsW7aMrKwsioqKuOiii+jXrx//7//9P0aMGMGoUaOYN28eb775Jt/4xjfw+/3ous6aNWtYtmwZ11xzDfF4nEgkgqZp+P1+1q5dy+zZszn99NNJSUlh2LBh/PWvf+Xhhx+mtraW22+/nWAwSFZWFh3nimZlZdG/f/+DvpZQKMQPf/hD7rjjjuRld9xxB9dccw0jR45MXvbjH//4sNonCSGEEEJIwOTQF/ioqsqmTZtYs2YNffr04YknnuCJJ55g586dxONxxo0bxz333EPv3r256qqraG1tBeDNN99MDnnX1NQwePBgbrjhBp544gmGDRvGqlWruPnmm7nzzjupqKjgscce4+677yYQCDB79mwefPDBvULemDFjeO211zjrrLPo1q0bL7zwAueddx6PP/44GRkZbNu2jU8//ZQ//vGPBAIBGhsbueCCCxgyZEhyPqhpmrz77rukpaUl53muXbuWyZMns3z5ciAxfP/pp58ycOBAmX8phBBCCHEsKpiKorB69WrC4TBXX3018+fP55FHHmHatGn06NGD1NRUli9fTmVlJVVVVbS2tlJVVcUvfvELBgwYgOu6jB8/nkgkQjQapaqqimuuuYbS0lL+8Ic/sGLFCu666y7OPvvsZKDMz8/n8ssvJxAIJAPf7NmzWblyJSNHjuTtt9/mP//5D4MHD6a+vh5d18nLy+Nb3/oWLS0ttLa2Ul1dTTgc3uu1jB8/HkVRqK2txXEcYrEYsViMpqYmmpubk8PmEydOZODAgdIPUwghhBCiMxutty/Eqaur48knn6SyspJu3bpx0UUXMWvWLN577z3uv/9+MjIyuOOOOzjvvPM4++yzqa6u5k9/+hO33norw4cPP2Cbn4ULF/LEE0/g9XoJhUKcd955XHXVVTz88MPE43HuuuuuvZ7H/fffz+7du6mvr6empoZzzjmHNWvWMHHiRC6++OIvfC2RSIR4PI7X68Xj8SRXlcfjcW6//XYuu+wyzjrrrGTrJcuyME2TWCxGIBDYb/GREEIIIYTgyCqY7b0jGxsbOeecc5g+fTplZWUYhsFbb72Frut4PB6am5spKipC0zQMw9jvPlpbW4lEIqiqim3b9OvXj759+/LPf/6T+++/n/LyclauXEl+fj7/+7//S0NDA/fcc08yCH7jG98gGo2ybt06Jk+ezHnnncell15KLBbj2muvJRQK4fF4cBwHXddpbm6mrKyMX/ziF3Tp0oWZM2fy29/+Ntln07ZtAoEA9fX1NDQ0MHPmTPLz87FtG9u20XUd0zTJzs7m3nvvZeDAgdi2jaZpcgQJIYQQQhxpwGyv8O3YsYOLLrqIpqYmINGIPCUlhWg0yh133EE8HmfVqlXccsstDBo0iKamJvx+P+np6UBiF5+XX36ZJ554guzsbLxeL4ZhEAqF8Hq9/OIXv6B79+6kp6dTWFjIhRdeyMKFC/ntb3/L//t//w+v10tLSwt/+tOfGDNmDGlpaSxatIhNmzZxww03EIlEuOmmmxgwYADhcJj09HTmzp3L5MmTk4HwtNNO4z//+Q9erxfXdUlJSWH16tXccccdycsuvvhifvCDHyQrl5qmYZomfr8fQMKlEEIIIURnVDA9Hg+33347aWlpvPrqqxiGgWma5Obm8s477+D3+3nggQcIBALYts2PfvQjhgwZgmmayWFxRVG4+uqrOfPMM8nPz2fHjh0sXbqUK6+8kvvvv5+qqiruu+8+3nrrLfLz8xk5ciTbt29n8uTJyRAaCoVobm6muLiY2bNnM3ToUN577z3i8TgpKSn07t2bPn36JIe49+zZg2EYyefg9/vx+XzJkLhgwQIefPBBvvOd77B06VLKyspYsGABv/rVr7jrrruS4ViqlkIIIYQQdP5e5MFgEPhsT3LXdXEcB7/fz/z58/nHP/7Bz3/+c+6++27uvPNOlixZgmEYaJqW3BYyGAzSvXt31q1bx5133sn69euTO+lEo1Esy6KxsZE777yTv/zlLxQXF/OjH/2InJwcALZt20ZKSgo5OTnE43Gys7Npampi+/btGIZBWloaiqJgGAaKoiQDYse90DVNo6WlhT/84Q/8/Oc/57vf/S5XXHEFu3fvpri4mHvvvZe6ujpuvPFGXn75ZUCqlkIIIYQQHItV5I7jJLeLBJKVwSeeeILnn3+eu+++m/LycgBuv/127rrrLk455RS++93v0r17dwA2bdrE008/zcKFC7nmmmv45je/CSSqm7quo+s6N9xwA0OGDOH3v/89EydO5LrrruPaa6/FMAw++OADRo0aRTweT7Yb+uUvf4lhGNTW1nLfffeRl5eHbdsYhsGWLVuSYRigoqKCV155hRkzZlBaWspDDz1Ev379aGlpwTAMWltbSU9P55FHHuHf//43zz77LM888wynn346N954I3l5eXvtry6EEEIIIY6yTRFALBYjHo+zevVq7rrrLgoKCvjjH//IqaeemmwvdOmll1JWVsYTTzzBlVdeyYsvvkhpaSlNTU04jsPDDz9Mv3799upLGY/HAYjH4wwaNIinn36a5557Lhk+AW655Ra6d+/O0qVLicVi2LbNkCFDqKysTA7Zl5SUEIlESE1NpaWlherq6uR9t7a2snr1au68807Gjx8PfNbjs7W1NVlpdV2Xyy+/nPHjx/PBBx+wZs0aLMuSo0YIIYQQojPaFNGhgqmqKitWrKCyspKxY8eyadMm+vfvj2EYe1X2Ov57/fr1FBcXJ3tZdrxOe3BdtGgRkUgkuS3jF815rKioYPXq1YwePZpAIEBLSwtLly5l6NChpKSkJK/X1NTE4sWLGTVqFH6/P7kFZPt9dwy4H3zwAX379qV3797Yti29L4UQQgghjnXA5BB6ZX7RZYfytSO9z8N9vh2rskd7PSGEEEIIcZQB83iYh7jvczjYczrU5ypzK4UQQgghjqMKphBCCCGEEDK5UAghhBBCSMAUQgghhBASMIUQQgghhARMIYQQQgghJGAKIYQQQggJmEIIIYQQQgKmEEIIIYQQEjCFEEIIIYQETCGEEEIIIQFTCCGEEEJIwBRCCCGEEEICphBCCCGEOD7pnXVHjgOW4+DYDrbrgitvrhBCCCGEBMwjYNsucdPGsp1kpnST/xFCCCGEEBIwD5HrQsy0iZv2fl9Tkv8RQgghhBASMDmU4XCXSNzGshwUCZKdznEcXFdKwMkPLIqS/COEEEKIL8G52z3MJOM4LuGYhe24UqTsZK7roigKHo8Hw5AVWO1sF+JxB9M0JWQKIYQQX8WAGY5YWI4j79wxoOs68ViMVatXsGXLZpqaGnAd94R/T3JyutC3b39KS/vg4uLI8SeEEEJ8dQJmzLSJxe3j7CW4OI7bVtlyOwyrqntVBV3XTf674+UHqog5jpO8P9cFVVUPOGzbGcPYbtuKKI/Hw7q1a5g5cyqFhUV071FCWmo6inpiV+xsy6K+oYEN69dgWTYTz72A3Nw8YrHYV6Ka2fGYPFb3v+9xeqDj+Vj+fLY/vOs6ycnZ7a/5q12RdmUyuhBCAiaHMDTeEjG/8GR2oJPG0ZxE2+cjapp2wMczDA8ej4Lr0hYGEy2TYrHEcKqm6ZhmHK/Xg6IkVr0ritLherFk0HRdB0XR8Pn05NxSx4FoNL7X6zvYPMEjPQGpqsrcOTPYtXs348efQU5OF1RV2ysIKEri9TmOg6apnEhTNC3LwnEcNm3ayMJP5zFy5KmU9e2HaVoc7VxXRVGwbRtN0/7rYafjh51jxePx4DE6vJc2hMORAwafzg6eHT/c6bpOwKfRHjHDEStZiT7WIfv/MmDatnPA311CCIEs8iFZvfyik4mu6ziO06EC+NnJ82Dh8/MDgI3P58djQGvY3Ou+PB4va9euprGhgYzMDOLxOB6Pl2gsht/no1u3HphmnHC4lZycLmzatAnHtgmmpBCPx7FMC92jU1RYiKpqLFiwgL59y/B4vKxftwXbcQAXr9dHjx4laJqKoqht4VTlo48+5PTxZ6BrGq575MO2HsNg6dJFVFVXcfHFl+H3BzBNE8exOrxniXCpKAper4dwJIqmqp8bTI7k/W5/LNtOfP9URUnWhBXAaauGtQcRRWkPaWryOe57X4qiJo+JfRftJCpaiXvf93hRVSV5f+0hZcCAAaSlpfHxxx+QmZlFdpdcHNs+wvDjEAj4Et8DDZpb43sFItu20XX9GP7oKYng7DoYunHMHmXbtq1UV1WhahquY5OWnsHAgf3Y921zHIjHO68qnPjwZ+A4DqqqEg63snjxajyGB8uyGDioHN3Q27/7WJbVqSGz48/GgYL8sQ60ruugaTppQS8tHcK0EEJIwNxnGNey3YMO+Liui8erU1/XgGEYBINBLCtxBtM0PXESNQwc2z6sE0lKip9Nm7ayedMmRp4yCq/Xi+M46LpGbe0eKip2smjhAkp6lpKenkHFzh30Ki1h3tr1jDt9At2KC3nn7TcZMnQ4y5YtYdnSxZx99rk0NjWyetVKuhYW8LMf/xjLhcWLF9KvX3+qq6t4/d+vcsrIU4ibNksWf8odP/wJwWCQSDiMZVkYHoP5n8xj6NDhGLoOioLX60XVNA61tJgIyR4qKnayfMUyLr7kUvx+P7FYrEOAU/YK75FIhHXr1nBS+SAiUfOgFSfHSbzfqqruVaE9pFDvuqSl+YnHXeLx+F7Pwev1YhgK4fBnFV2/349p2phmPDmtQFFUVFXBth0ikRApKakEg95kVdi0IB6L4/X6QQHHdnAcF9M08XgMVFXbL+woikIkEqW4uJhTThnNlCnvc/XVXzvi8BEM+pg+fSYzZ0xj+PCRjDltHD6fD9M0MQwP6SleQh0+1NDJXQICfi8ffTyDHTu2c801X0t+OOvM6qhlWfz9sYeZOvUj/H4/lmnRtaCA22//EUXFxdhtKdPFRdcNuhV3x3HsTgl3qqoSCjXz6qsv0twUYuu2Lbz/7jsEU1KIRMJceukkunTpQn7Xrlx22ZUYhtFplcz2cLfvKIiqqsmKtW1be12HTq8ce3nyyb/To0cPRo48lUAgiOPYskhNCCEBsyO77Re08gWVgpdffgEF+P5tt2NZiWFHx7Z5/PFH8AeCfO1rNyQu61DhPBhVVZk/fyEPPXg/KSkpDCovbwszJqkpXjZv3ky4tYVhw0eQmpJGfteuVO6qYPTosTQ2hQi3tpDXJZuzzj6HNWtWU1BQwMiRp9BQX0+opZlrr7ue3bt3UdfYwvJlS9mxYxszZ04jNTWV8vLBXHzhBQDsrqzA4/FQWVnBlA/fp7CwCNu2CbWEmDVzOoFgkI0b13PaaeMYOuRkWsOxQxpqbD/RbdiwloKCQvK65NDYFEHXtQNeV1VVpk6dwuxZM/jzffcfdGixPTzt2FFBJBKmtLQ3ju1g2VayOnewoVnHcUgJePnPf96ntLQXJSWl2JaJ27bYZvPmjVRWVjJq1Bhc18HnM1i6dAmFhcUUFXTBchJTFGIxB9u2UVWV5cuWMurU0Uz5cAa2k7i8sLCQXr36sHTpYnAhOycHw/CwZs0qBg06iebmJnr1Kk1Oc+h4TESjMfr06cviRQvYtHkDffr0x7IOfXV5e2Xt008X88jDf2X0mLG8886b1NbXct1114PiUrV7F1M+fJ9JV16Dx+Pp9CFc13UxdIVNmzawbOlSrrnma53+g62qKqZpYpomgwcPSX6wi8fjPP/cv8jIytxrM4RQqJlf/PK35ObmY9tHV01sP84MQ2ft2jVUV1Vz7XXXc801XyMaiRAIBKmuruL55//FoEEn4fGoHeZRd064q62tTVbY09Iy8Ho91NfXYVkmGRlZZKYFaG6NH5M5r7quU1m5k7898gD9+w/kjNPHYdrWf3nuqxBCfBkCpu1+4cnEdVTKywfzyEMPEAik8o1vfoNYLM7DDz/AsqWL+d5td6C1DScfyonEtm0aGxs4++xzWbduDaqqJcNBY1OI9957m5EjT0XTNHZW7CBuxqis2Mm2nRU0NTXRrVsPLKCsrBcZGZnMnTubtWvXMHBAOVXVVWzatIGCgiIMw0NZ377kfpJHWVlfWlvDrF61kk1bdxKLxanaU41hGNTX12PbNqePHUNza4xVq1YybPgIcrLSqNq9i/r6OgxNOawAEImE2b17FxPOOIdwxELT1APO0TMMA9u2efml54nFYsxfsJDTx5663wnScRLDvq+/9jpr160hNTUVgElXXkNul1xs22rbfj4xPK3r+n6LoFBUfD4fHo+37fkYbUPdCobhwev1tS3ccNE0lQ0b1pGensHk1+fS2tpCJBJh1KhTOWlgf/7z/gcsWPAJtXV1AIwceQo1NTXs3LmT7OxsFi5cQMAfQFFVBg06iSlTPiAQCNC7dxmW5Rz0eHMchwEDT2LdurUMGDAQ0zyccOKi64nnXVJSwk/u+iFTps7gnbff4Jyzz6WoaxdaWlqYMuV9rrzqWjRNw7KsTv2h0zQNpS0IBQIBVFVNdBCIxzs97Hi8Xi67/CpOOqmcWDSOqqlUVFRQWFiIZSaG6D0eD4/+7UEWL17IhRde0nacHH2VNjM9hZIepRQVFnP66WcwfcbHnHHGWXw85UPOPe8Cli5dTM+epaQG/DQ0RzplrqLH4+HDD9/nxReexev10hxq5oYbvkH//gO59/e/xrIsXBdGjBjF175+PX5/oFOH59uPz9TUNJ57/lXC4TBefwCzNSpnGyGEBMwDDZsm5gAe/JeqacY5/fRxKLj87W8P4fEYNDY2sHz5Un529y8YfNIgQi2xwwoCZ599JuvWbmTFiqUoHcJsfX0jHo+H9LQ0Qi0t5OXn4zoutmUT8PvJzcvDdV0WL17K7JnTKSvrT1FRMa++/BKuC5WVOwkGg/TsWYrX68HjySY1JZUdO7bjumBaFlOmvE80GqV80Enoho4CBINBgoEADjqGrhMMphAMBEhNTUPXjcPaHTPxnpk0NzeRm5t3wJOcZSWqHmvWrOTfr79GKBRCURQefvgvKAqcNLgc0FHb5mN6PAZbtmxh6bIlfOtb3yE7O4tFixbSUF9PXl4O77z5FlW7d3P6hDMIBIIsXbKIyoqddO/Rk5qaPfh9PiZddS2xWAzHsZk9eya7Kiuo3rOHSy+9HE3TMM14MujX1NSTnp5JWloa48aNJxqNABAIBInGHQYNOompUz8iNTWFxsYGNqxfR0tLCI/PTyCQQl5ePgoKg8pPYsWK5VxwwUXU19eTk5NDNBo9aMVHVVVycrqw8NNPSFzlsN55TNNmwICBfDTlAx5/6mlmzZzJoPJBZGVncMcP72THzh0AfOOm67j00iu4/IqrOqljQGJaxOZNG0hPz0xMq1AVwuFW1q9fy8AB5cTNeKdXS7OysujZvYhIHFQNXn7peYqLu/GNG68naoLPgJycXKLRzg1BluMSjUZwXVi1ajlvv/UGw4YO57XXX6FnaS9M0yQajeJ00rQDn8/LjBnT+MfTj3PZ5ZM4/fQJNDeHSE9Px+Px8JOf/hy/L8CuXTt54IE/k5mZwaQrr+n0YWvXdUlNTSclJZVevfoQaomi65psniCEkIB5pJ/cQ6EIEyacjuPAPff8ktTUNO753R846aRBNDaFD3vRhKapydDSMXSVlBRz7sQLqKurxWMYbN+2jdLSXpxzznksW7aE1JRU4mac0aOG4zE8LJg/n4GDTqLfgAFkZ2UTj0UZMHAQmZnZhEItzJkziyVLFjF48BBsx2H48JF0717C3DmzGD/hTDx6IlCtXbuafzzzDKZpsXnLZl55+QVSU4MsWbKESy694rBXBLuui2XbeDzaXk3E24fZGhoaaGlp5j/vvM3CTxckpxfU1dXy7zdeo3JXJeeccx66rmNZJh6PxsaNG+nXrz85OV1Ys2Y1TU1NlJSU8vrk16iqqqK4WzfeeesNThp8MqtWrWTixPN4/O9/4/rrb2LpsqWsXrWC9evWkpWVxeLFC+lW3J3cLl2YMX0q/QcMYu3aNYwYcQqqqtLS0orX6wWgomInvXuXtS3OSczX3bFjB926daepsYlAIIXefcqoq6ujqqoKr9dLQWEhfl+A5cuXUtanH9t3biM3N5d58+Zy2mmjaW09WMhUMAyjbY7oIU97RWmb7uE4DsOHnMRVV1/HimVLmTjxXC6fdDU+j8I3v/0dNm/exD+efoLvf/+HDBg4MFnxPdog4rqJeaaffDKPTxcuoEtOFxRF5U9/+gOpqSmcfNIgWsOJxWqdKR6PYbsuK1cuZ86cWfj8Af7xjyeJxePcdNONtETANOOdPoTbce6vrut4vd7kH13XO313JlVV2L27kgEDyrnha9exZv1mnnnmHzQ1NqCqiS4BZ509kcsvuZDdVdfx8UdTOGfi+aSlpXVqlTrxsxHi+q9fRZ/effnrgw+jaSlf4dXyQghxDAOm4zh4PDotrTFWrVpOYWERiqKwfPky+vcfkFxReji/YNt7UB5oMn77gghFUUhLTUVTNSLxCGlp6eianpzUbxgGsViUuXNnsX3bVoKBAJFIhI8+/ICRo0aRmZnJGWecze7KSnr0KGH+gnmJpt49u/Hmm3uora0hLyed9IwMvvb1mxhy0gAsF/5y/1/4zne/R9CnsWbMOFRVI2Y6h3WSVlUVr8dDeJ95m+3zM7OyssnOzuaXP7+bufMX8cc//JZYLMZZZ5/HrbfeRmqqn9bWWNt7oWBZLjk5OSxfugTD8JCdnc3zz/2TSCRCzZ7qxP7xsRilpb2IRiL06VPGgP6DyM3NY/SYsVRUVtDa0orP52urwqQxdPgI6utqWb16FeFwBG9b+El8bxQqKyvIzsnmg/fe42f/M7CtrVMM23Zpbmqka9cChg8/hdmzp1NZWUFTUyOKohCLRWltaUVTNcy4SW3dHubNmc2ll00iNzcP0/y8BREOkUiEQCCA43DI25VajkNamp/GplZmzVnMzp3bSctIp7aulldefoGRI0cxqH8ZPp+focOGM+rU0cnvRWeES6/Xi8+jcN3Xb8Lwenjy8UeJRmOcPv4Mbv3eHbiKSmZmKq0tMejkKqbruFiWTTAQZNGihYmFLpZFKBQmGAwe8+paomWYBrjHrCWUooBlWuzeXUljKEyPHiWccebZ1NXUYNs2qWlplJcPBmDL5s1k5+Tg9Xo6dXFV4n1UaGxs4MwzzyYjM4suOZk0dtIUACGE+EoFTAXlc893iXDpwXUd/vbwgyxesoi7f/5rGhrq+cv9f8K2La677oZ9mpgf2gnDNE0aG+v3OwG6JAJka2srjU1NNDQ0Ulu7h4GDTmJPdRUDB5ZTUbmb6dOm4fP50TSNESNHMWHCmeyqrOTTT+fj9frw+XykBnQcHLZs3cz27du54IKLiMdNxpw2jikfvkdm5tcpLCyisBDqm8J4PB5M0yQSiWCaOj169ATYb1HKoQyXZmRksmtXBd2798A09x4md93E4qrGkMmIEcM45ZTRrFmziu9/71ZUTScU+uyklVgxHmfAgEFMnz6VRx5+gLK+ZZhxE9syGT78FBYvXoiiqBQWFePYFsuWL8OyLerq6oibcULNIUzTJBQKEY/FCYVCRKMRIuEwra2tmGaclpYQALZtkZmZyfZtWxk6ZBiDyk/i3Xc/AFwKCwrp3acvQ4eNYOaMqSiKgq4bpARTiMfiRGNRmpub2bRpPT6vn0AgQFVVFaecMor169YyadJVnxswHSexECcvv4BENlAPbeW2V2fFilU8/9yzpGdk0NrSQpfcPKKRMMuXLeP1117lxhu/yXnnX8j3v38Hqqp22vy8xCKpTaxds5rzzj2XSZOuxrZsNm3ayG233UFGapAFCz6ltbWFMWPGJVd4d0Y1LRAIomsqp4wcyqkjh1JfX8/o007jxq9dR9wGQwOf13fMqmsdp4NYlk1TU1PyfVU6qRF5YgGYxaWXTWLJ0sXc/oPvc+ro0cRjJqeNHUvXgkL+8/abTJv6Ef/csY3169Zw3dduQNc9nb5633EsioqKued39+K60Bq1JVwKISRgHviX9xevmgyFQjzy8AOsW7eWn/3PLxk4sH/i647LA3/5E2np6Vx44aW4pnnIv6ijUYtu3bvz7ZtvbatWfRZOHSfRRsfr8+LzeRkwYBDxeBxNU6ms3EkgGKRydzVDhg4lIyOTRYs+xdAN3nrrDbxeDy4uGzdupE+fvsybN4s91dUUFXZj/PgzUFWFSNRk+LCh1FRXs2HDWoYNG4llmcnqi6KqbdXVxPD24ff4dPD7AxQVdWPpkkX07VNKLBY/wIlISVRHYxZXTLqSDRtOIhhMoTm0/5SDxGpzjZtu+hbz5s3Bth2u+/oNFBd3Iz+/gEg0QlNTIzk5OaRnZNAlNw/DMLj5O7egKipnnHkWKSkp5OXnk5mZSZfcXHLz8sjMyCIvvyvBYJDi4uLkXFiPx8uFF11CfteudO9Rwob163Bcl+zsHDQtUT32+f0Yhk5KSmqiYuv14vEmFgt1796Tbt26s2XLJoqLuzNwYH+mT5vOsmVLGT5iOOHwwYbIXVatXMY5Ey/ANG3UL9jt6LPemhrPP/8c+V278uM7f7jXdaImrFu3mj/c+zv69utPSUlppw4b67rGxo0bePPNfzPp8kuI23DTjdfjtvWgNFRYs2Y1q1evYOy4CZ0SMBUFWkMtLF26GMexiUQiuK5L95ISuuTk8vH0WYkPh14v69avpahbt2MSLmOxGD16lDBp0jXk5uZw7bVfb6tSm9iO3am9J/1+Pz/5yd0sWDCPrVs2EY5EaG5uJisrm+o91Ym51AE/3/v+HYwZM5po1Oz0oev23q93/vCHlJb25sqrryU1JU3aFAkhkJ182LdNkUs4an1hY++FCxeQlZXNoEEDaGmJoKCQkebjtdffJKdLLqNOPZVoNHYYVb7Eidnr1YhEzL2acIfDkURPSsNAVRMVssQuNxrRaARV1dA0lWAw0DZsG6Wuri65IERVNQKBAF6vl5qaGlRVJTU1lZSUlOR8yER4NmhpacbvD+z13BobG0hPzziqE4au6zQ21PPBh+8x8pRT6NO7D62t0QPOTVMVlWgsQk1NLd26dW+rAB088Ad9GpYLqgKxtp6WqSneZB9Ky7LRdY1YLE4g4CEcTux2ZNsOuq5iWYkdg0zTagvSatuuJIlKafI1GDp2W89Tvz/RMNw0E3MNXdclGo3i8XhQFIWUFB+2DS0trcn5pH6/n6amJlJTU5Pf31AoRGpqCk6HfdgTIQB8Pi+zZ8+ivq6O886/6JCCWHuAcByX++//AxvWryMnO5twNIbdtpBK13VSU1PZuHED/3P3rzjppCGH1f7oUL7XCxZ8wn1/upeiwiJMy0JR1UQD+7YFKps3b+HGm77F1VdeQVPo6IZU24f2Z86cxvJly6itrUl2DTAMI/n9aT/O4/E4P/ufX5KZmdkpFT3HcUhJ8fG/f/wje/bs4aZvfKvtA2LiQ1OiXdIzjJ9wJhdeeMHnzLc9soVUfo9C1Pzs+94+pSPRushtO07NY9KCStcNduzYxg3XX0VZWX+efuopWiOWVDGFEBIwD6QlYmI77kEHtNpP0o7j7BXQ2ns4fjbke2R7Ke978mlvmtz+9Nurm+3bSrafJNv/bn9+iaUen92mvSm527bv9YHm22matl+Q0XUDyzI52oqL1+tjy+aNzJk7i/Hjz6JHj26YppPcHpEOe+m0P9/P2gsdeEKD6zrJvoId91x3O0xYbP+aqijYbdtP7nubA+3dnvheKPvspb7/7kHtQUJV1b22ZGw/Hj4Lfc5e72/71zt+H9rn0qqqwuLFC1m7ZhWXXDoJr9d3yGGoPXjv2lXJli2bUFVtr12SwMWxHYIpKQwcWH5MehYmOiDUsX79OgxDbws67e+xguvYlPXtT5ecLsTNzgm3iqpixuNtx6qyV1jvuG2Cruv4fL5OW+zSHrQ2bFzHX/78v229Nff+vhuGwTe/9R1GjjyFaDTWae95x5/5jvuh7z395NguuHEch5aWFurqaijr05dYPC7VSyGEBMwDiZs20bj9pXhRBzt5HOildgyph7cAqbN2HUnsp752zUqWLV9CWVlfepb0JjMrC5+ns2ao/V/uxvxZpFcOctm+O0R1/H8HaGmNU1tbw9q1q6mt2cPp488kJ6fLEQ0jt09rONhsY9dNNIM/Fote2he6KIp60NZKiT6Nbqc3Xf+iY7V9e8zODkGapiU/UBysyvpV3EaxfboKJDpFSLQUQkjA/Jzh6taIiSO93I7N1oEBH7t3VTF9+keomkpaahqG4eFEPzO5rks8Fqe+vpasrBwmnHE2Xq93r20sjzz2Hq9x/Kv3Pfy8ICaEEOIEDpiQ2I88EjWRiHlsQqZhGBiGxpYtW6jYuZOWluYTPtDrmkZGRhYlPUvp2jWXcDgu/QSFEEKIr1LABIjFbWKmLe8cx6bS47puYqtG41Ca75wYLCAWdY5JM3AhhBBCHAcBEyAas4lZMq/oWAdN2Vpu7x1hpGophBBCfIUDJiQW/cRM+7B2UhFCCCGEEBIw+fyt91xiMQvHcXFkXpwQQgghhDjagNnOtBws28V2ElsbdmyQLYQQQgghJGAeMcd1cR0XyZdCCCGEEBIwhRBCCCGE6BTS80UIIYQQQkjAFEIIIYQQEjCFEEIIIYQETCGEEEIIISRgCiGEEEIICZhCCCGEEOKrRJe34P/ewfpEyb5IQgghhJCAKQ47WCpfECRdCZpCCCGEkIApDidcAkQsiFlguZ/NWzA0CBqgKi4uioRMIYQQQkjAFJ9PAcImVIddWuMQ7RAwFcCngd+ALL9Cjl/eLyGEEELIVpFJruuiKMpB/+54na+CA72dB3pt9VGXylAiZGoKKAqoSiJeuri4LlhO4mu5QShKVdq+LoQQQgghe5EfVhDtzPvbN8we7v23vzWd9bzah8Uboi7bmsB2EqHy8xb5uIDjQk4AStIlYQohhBCCE3uIPBKJEIlE8Hq9xGIx/H4/0WgUj8dDNBrF7/cTCASoqa2lS04OsVgMgKqqKnRdJzsnGwUFXddRVZUlS5ZQVlZGMBjEcRy2bt2K1+uloKAAAE3TAHAcB1VVk8Gw/e/2yyORCKZpoigKTU1NVFVXUdKjBI/Hg4uLx/Dg8/kOGiw7huGW1lZaW1vJyc6mtrYW27ZRVRVVUzHjJobHICc7J/F8SFQlq1rBdEBvC5eO4xAMaHw0cymbt+7ka5POR9e1ZMBVFagLg1+H/KActEIIIYQ4gQPmgoWfMnnyawwfPox1a9dy4YUX8c4779CnTxmLliziwvPO59xzz+WVV19l+NChBIIBVFVj3ry5pKSk0K9fPxzboaioiNzcXObMnUteXh6KorBt+3YaGxpwcSkuLt4r/Kmqyvbt26mpqSESiRAMBikpKSEzMxOAZcuXUVdfT2pKKrW1tdTU7GHPnhqCgSANjfUUFxUzdOhQKisrCQaDZGRksO+Qd3tY3bJlC+++9x7XXn01b779Fvl5+dTX17Nt21aGDxuBx2Nw1lln4ff7cUmEy6YYeDRorx27rouuQ+Wualat2dQWYD/7env1s7rVJcevoEv3UiGEEEKcqAEz4PNTUFBAWVkZlZWVOLZNbm4upaUl1NTswev14uJyxWWXM2/eXMrKyli+fDmhUIh43GTjxo0EAkH69u1LZWUlkXCYZcuX0b1bd9546026du1KPBYjbprkZOcwaOBAFEXhk/mfsHr1akzTZNPmzQwfNpwFny7g/PPPp1txNwYOGEh9fT2z58yhuLiI7KwsTMuipnYPw4YOJzMzESjfe/89BvQfwKmnnopt22iaxuw5c8jPy6N3794AeDwedE0jHAkT8AcoLy9n165dZGZm0LNXT/K65OL3J1bpxO1EuNTVz5pfOo6D4zgAqKqKrmvJ0GnbDqqqtA3vg+1CYzQxXC7ti4QQQgjBibiTj+u65HbpQmoghQEDBtC9Rw+KioooLiwiMzOT9gY8+fl5XHbZZbS0tLB121Z8Pj+qqhCPx9m8dQuBQIA1a9dSVV2FpmnMmDGDMyZMIBaNYRgevB4PWtuQ+Lp165g7dx6XX345EyZMYOI553D1VVdRUlLCtOnTicfipKamJu5n5kwaGxup2FVBTW0Nn8yfj9fnJT09HYDUtDS8Xu9erykjPZ1XJr9KqCWUeI2Os9eQ+ccff8yKFcvx+Xw8++yzLF2+LHlb04aI6dIhXxIMaPj9HtoyJq6beN80TSEtVUPXVFw38Y2yHWg13c/vzi6EEEIIwVe4gqnpGjldcnBch8qKCgq6dmX9hvUMHz6cvNw8DN2grr6Oya+9RkFBAcVFRRQWFJCVlY2qaeTl5LBk2VJcxyUtLY2s7CxKepTQ2NjE6FNHY5k2gaCf4cOGJx9z3bq1DBw4kMyMTJ577jnOPvtsLMvi1FGn8sabb1BTW0NhYSEej4drrrqa3Nwu2LYNQFFhIYZhEI/H8Xg8+H0+ItFocn6n67oMGjSIxUuWsHz5csaMHoPrujiOk1xMlJWVRUmPHpSU9CAeN8lI/2x43XETrYg8Svswu8tLr08jNSXADVedkqhmui6BgMGemiZef2cqF54zluLCHGJxB8dVMB05aIUQQghxAgdMVdXQdZ2UlBT69x/AzJkzGTlyJJqq4vP7sB2H9PR0zj7zLD76+CNKS3pSUVFJ9Z49qKrKrrQ0fD4fKDB0yBCWLl1CSkoKvXv35m+PPUplRQWabrBo0SJGnzqaAQMGgKLQo0cPAJpDIbrmd0XXdRobG9E0jYyMDGbMnMGaNWvIzc1lZ8UOIBH40lJT+fcb/6aosJDzzj2P3NxcGhsbsSyLbdu2UVxcjMfj4fRx43j5lVcYM3oMtuNgtwVMRVGIxWKsWr2a+oZ61q5bS3ZWFgfbk0dRYE9tA8+88h+65meREgyg6xq19SHu/cs/CEeinHvmaClWCiGEEEICZjtNVWluamJnxU7Wrl3L1m3bSE9LJyUQpL6+nsKCAnRNp6SkhFBziIyMDM4/7zwWL11CSjCFXqWlqKpKfX092dmJFeWKqjBs6FCGDR3KRx9/jM/v47S2SqKiKKSlpbF8+XJWr17NqJGnkJ6ejuM4TJ85g6ysbILBIOHWMGNGj6El3MrixYvp2aMH23fsYNDAQZSV9WX12jUAlPUp49lnn6WkpIR333uPW797CwA9evQgEo20rfBW8Pm8RCKJ//f5fPQtKyM3NxfHcQkEg8mmQ4qS6GsJibmXmqryza9dTNy0+NNDz9OtOB9d0/jFvY/iOC4/+cHXKemWRzRmo6kqDqDJAh8hhBBCcALPwbRsi4yMTLp36052VjbXXXsdeXl5lJSU0KN7dyLRKK7rMnXaVCLRKEuXLcMwDFICQQKBQGLltesSj8cTEU1TME2ThoYGQqEQDQ0NNNTXEwqFqKuvB6B///7s3r2bUCjEmDFjmL9gAS++9BIKcNYZZwBgeDxomkZLc4isjAwGlZ9EQUEhqWmppKSkJIfMs7KyyC8o4L333qesrAy/34/TNufyuzd/h8amJrZs3crJg08mJSUVRVHoVlzMu++9x4IFn7Jw4UKy2lauA3hU8OtKopapKNiOg8ejccs3LuOUYeUsX7WBpSvWAfDj73+dsl5FRGOJtkduW7gM6MpnTTKFEEIIITjRtop0oTXcSkVlJSefPJg+ffqwbds2ps+YTn1DI6eOGkVNTQ2NDY1cd+21rFi5kuo91diOTSQSZmfFTmzbJr2tTVBLqIXGhkbWr9+ArmtEoxHi8RgLFixA1TUmnD6e/Lx87rj99uRTqK6uoqCwgAmnj09eFo1GicVj9OjRA0VVqKurp3u3buzetZtdu3fTo3t3IFFlnHT55axfv57+/ftDh7mYXbt2paGxkcyMDMaMGQPAkiVL2LptG2effTYjR4ygS24O69avp7i4mEDAj6EpBD3Q0ppoUwQKpuniMXRuvuEiXNdh45Yd/ODmayjrVUg4kmiFBOC0fbMyfImhdsmXQgghhOBE3MmnqamJWDxObpcuezU6b2pqYtv2bQzoP4B4PE4gEEjeZsuWLckqoeM4eDwecnNzCQaDbNmyhZycHEzTTH7NxcWMmWiGRlZmVvJ2HRuvtz92+zzJ6upqvF7vfv0tN2/ZQjgcpn+/fnvd9kA7De271SVAQ2Mj9XV19OrVK/n1bdu30zU/H4/XiwI0x2Fzg4vdtjI80WjdxeNRaWoO0xqOUJCfTTyeaFHUcYFQXlChW5octEIIIYSQrSL36vPYHjIPtK3jvpd3hvbh7n0DY8fnRXJRknrQLScP57m1v8b9QmnbyHZ1q8vO5sQin/bRbttx0XUVTYNY3EFV9g6XaV7onSn7kQshhBDiBA+YB9vL+/NCW/vXOu6aQ4fdcz5vX/BD3TP8SJ7X4ex/3vH2B9tjfVerS1VLorelorRXM91Ez0tFSe5BDpDuhR4ZCh5Z4COEEEIIqWCKz9MQTQRN00rsTd4eKBUSu/3oGmR6FQpTkcqlEEIIISRgCg5xHZRLU1QhbLrJJuqqAj5dIc3r4tVkybgQQgghJGCKQ19k/4XRUfYcF0IIIQTSpkgccrrvECL3265HSXxdwqUQQgghJGCKIwuakiSFEEIIgezkI4QQQgghhARMIYQQQgghAVMIIYQQQkjAFEIIIYQQEjCFEEIIIYTgOFhFHrehNgKhuEvc2r/bjhBH9QlIAb8OmT6FDJ/saCSEEELwVW607rgQisPWxsQONHLeF8eyjZMDBAzokaYQ9Mh7IoQQQnylAmb7zjKVIahscdEkWYr/EscFQ1Xong6ZPnk/hBBCCL4yczDdxJB4dWsiXEq+FP/N4XLLcdneBGFT3g8hhBDiSx8w28ucMRu2NbnJSqbMuRT/TYoCpuOyvVmOPCGEEOJLHzAVwHWhJgKOk7ihnOLF/1UlM2xCY2zvDz9CCCGE+BIOkTsuNMZcNDWx6EKI/yuuC00xiZZCCCHElz9gAjFL3jRxHARMICrHohBCCPHVWOTjStFIHCcBU45FIYQQgq9mo/WDB1E3kQCUjv2NFBRF1p0LIYQQQkjA5PBbYxseBVXdv/ppxt2DBtJDDZ9u253te/3DuY9DDsnJ1cvKf62puNv2eO6JUqJrf2+lJCmEEEJIwDx4XnCY/f47bF2/ElXVUBQFyzYp7N6b0y+8Gl3fP0soioJlHlrAMPREJdTscH1NU9BUBdPisIJZe3Dc9zaapmDoiUafrgumCbbtcqxzpnuAf50IO/WoGtgyp1IIIYSQgLlfOHIcPD6NBdM+4p0XHsOMxztU/lxWzJ9JpKWZ4tK+2I4FKLguqIpCt179ycjK4VASXF19M5Zlk52Vkbzv5lCElnCEnMx0NE3Dth1cEhVNra2U6roujpNY/66qKigKpmmCC5qmJi5ra4PT2NRKbX0jjuPg83rIzcnC5zOwLAfHcaHtvttv4zgurvvZfbdXINsfr/26juviOm7b9RRAwbIs/H6VBYvWUVVTz+mnDuX1/0xl1LBy+pd1Ixy1UdveF1VVDnjfKAqqomDbTiKcdnjdxyvHtklJ03nrxZdYu/RTvveLP6HrxolTuRVCCCEkYB5GcHDsRLDT9f2Glqe+8xKu4+xVQTTjMTKycrnlFw9QWNITy3QOOiStqQr/eOEtVq7ZxB9/cRv5+TnousJ9j0xm5ZqN/OV3d5Gbk0kwoOHzQTQGLS0Orgsej0pqigoKNDQ4ZGUqfDxzE82hFi45bziNTW5bcNV5/JkP+XDaPPr06kEkGqV/n55842sXoKoaGekaHgMiMWhtTdy316uSGlQTe7S3gGm66LpKRrqKpkE4krhuwK+i6SRuH4VYzCUzwyAzFZpDrWzeuoMJY4ZR2DUXn8+D15d4H33eRP/RllawLPez1+ImXqPjQDTmkJ6u4fVALAYtrcd/UHNdF13T2LhmGZZp4vEY2Lb8YAohhBASMDnwsPOBeDzeRJXS/Wz+neHxoGgqddW76NarJ2b84HMpHReyMtKIRGMsXLaGa68YS8WuFjZu2kZGelridi58NGMZGzZvp1/vEkaNKEfXYWdFLTPmLkZVFc4cN5J4HF5/+2Ni8ThpqX4GD+yHoiiJ3WIsi6svO4fv3ngWG7c08Ze/Pc+SZRsZM2oAb7//KdsrdlHevw8jhvRH1WDbjj3Mmb+UtNQUTh1xErk5KdQ3Rvhw2nJq6xsYMqgvw4eUsHLNLuoamqjcVU3/slJ69ihk8ltziUUjhMJRvB4viqrSvSif3Jwslq/cSUtrmB0VVQQDfkYOHUhWVoDKXQ288uZivIZBSfdCggE/vXoW8sHHS1i/eQf9+5Qwanj5cX3wqbpOS8jh0uuv5IyLrsSybGxbqpdCCCEEJ9xe5Bx9xcp1HFz3sz+O4+C6Lpquf2FwdRwHr9dLUUEeGzbvIBJ1+HTJaoqLumIYGh6PwXsfz2Xep8vpmp/N9DkLWbBoFfX1zbz07w+wbRtc+OeLb9PYnHhcFwiHrbbHcJPrThoaQ1TubmVXVQ3ReIyMjBRef3sWy1dvIC83hw+nzWPpyo1U72ngqefeoK6+ibUbtvLIU68QicV4/tV3WbhkNaZp848X3mLTlt2s3bCVvzz6HHtqG7Fdh1fenMLs+UuJmS5LV64nbsaJx+P868V32FVdw4IlK3nkqVdoaY3w4bR5TJ21ANOyePK5N9iyrYKmphb+8ujzrN+0nUVL1zJl+nxystKZv3AlOyur0LTjd7GQa9v4/SqL5ixnybyZySkDQgghhEAqmMdi1fbnicdN+vbuQXMozOp1FSxbtYGRQwcxddanNDQ2s2jZagJ+P5npaZimzadLVqHrGmvXb2VA316Ypsma9VvQNIVThg1iV1Ud55wxmNbWxBC544Df52X67IVs3b6LplCIKy46k7wu2fzzhbcoLswnMz2NltYoy1atp7auAb/fx53fu5JQyGT3nj2s37ib3dW1fOfGKxhQlsNDj7/LlBlL6VaYS6+SYr7/rUtoCsX521OvcNetX2P4kAIefhyqa2oBhUDAh65pKCgM7NuT731zIv9+N4f5i1ZQtr6EWCzGD2/5BlnpXiqr9qCoCgoqoZZWUoJ+LjpvHPm52TiOe9y2hnIcB69PY+Gsj/j3s4/ywvTV+AN+GSIXQgghkAom/92ONgrxeJxuRfl075bPS5PfQ1UU+pR2x9BVotEYqqpRXJhHIBBgzCmDOf/s06hraCIrM53cLpnkZGdw3aTzyM5MJRKN7bdiW1UhGjOZMHYkt35zEpZp0btnN8BB0zWKCvMIBv1MGDucs8aNpL6hiYz0VHQd/H6Dsl6FxOJxvB4PqUE/AJkZqURjMWzHpUt2Jq4L4XAUXEhPS8V1ICMjFd3QE0G7rWeo7Tjkdskmbrn4fd621fMmXo8Hx3EwLQgE/LS0hDlleCk3X38Z4UiUFya/y4o1mzAMpW1R0vFH03VCzQ6Tvvl9fvnQc6iahiN7kAohhBASMA93DmZnCEdiRCJRThkyiIXL11DUNZec7Ayqa+rpkpNFfm42e2oa8Pt0Nm+tIBqL07tnMbqu0xKK4Louq9ZsIj1VIzMjjR0Vu1m4ZHOyZ46qQmtrGE1VGTwwj/POGsPDT71MStCgS3YmtXUNeD0Gm7fuJBKLM6h/bzZv2ckHU5fx+jszuft3T9G7pCu2bfPm+zOZOW8Tsz5ZwilD+9HcHKKlNYzjQGpKgKKCXF587X3mLdzK1Fmf0tgUQlGgpSWMbTtEozFCrWHUtmBZU9tA/7LuxEyTF159jzffn8WyletJTwsy65P1TJ+9kL6lPdA1nR07d6NrHOershUURaNn2QA0TZcV5EIIIcRXgPbrX//614d6ZceFqtbP6STkumi6yo5N61m/YhGO43xx2FQUXNfB8PgYNHwMeYVFWNaBh3XbL2sJh8nJzmRg3xIsy2b0KYPJzsygrq6JweV96NenJxs2b2P6nCUUFeRy6ohyCrpmEgwE+HDaJ1Ts3sOZp48kr0s22VmZVNXUU1vfwIC+paiqiqYq1DW0kpuTRXFhPgVdC9hVtYfsrGxGjxzMkuVrmbtgGaUlxYw4eQBFBVl4PF4+nDqPSDTGpReMp1fPXAryurJw6WoWLVvDKcPLuejcYVTtCZGelkqvkm7oukrvnt1YuGQ1i5avo39ZT/r16UlxYR7hSJQ+pd1xXIfsrHR6di8gHDZxXIdRw/uQ3yWP6j316IZOekoQn8/LuNEns2zVRmbMW0y3onwuPvd0VNX4rzaKPxy2ZZGarvHaP5/kDz/6Fhde8y28XuOQ+q27gFeDnICS7KUphBBCiOOD4h5Gych0YFm1i6ocvA+m4dVYuXA+zzzwC1RNQ1HULw6YtoWqG1z5rR8zfNw4ImE72V/yQAJ+BceBSNQhPU0lHEm07klPU2gOJa6TmpJo3aMoidY+jtPWIkgDTUu09olGXTRNIRhINFNvb+vjuJAaTDxGOOKiqgppqbQ9DqSlkpgnqEBLi4vrugQCKppKsiVRLObi9Sr4feA6iUDU1OwQDCau1xp2cV0wjMR1bBt0PXH/0RgEAhCJgMeTeD3hsIthJJ7r7qooL0x+j0H9S/H5fLww+V1uvvEKBvbrhqGDZSfaIIVaju/qpeM4+PwqS+bNY+rbr3LL3X/E5/Mf0pC+7UKaB/pmK4mdj+RnWQghhPhqBsz21demGePlR/+X+dP+84Urw1EUbMtkwJBTufGuXxIIZrYFw4M/iO04id1fVBXLttHaGptblo2ua7iu23adxMaLmqYlA03i1X7WJP2zhuUKmvZZqLVtB0VJPIYL2Jad/PqB7tt2EinSxUVVVFRVaWuq7iTjj6apyefQfl/tj68oieu3N4a3bTv5/Gh7rY7jYDsOHkNn5rwlLF62BteFk8vLmHDaCGzbxXETTdld123bRen4PgAdB1LTFKIRsCznkCutEjCFEEKIEyhgtu82E2ltpb6m6pACg+u6pGZkkZmTSTzmHLerno+nrbu9HoWm5hiO45Ce5iduusdlE/VDeS22ZaNqWoed2A89YPbLUXBcCZjiRP59IEe/EIITo02RbTv4U4L0yCw9pLigkBgalnB5qMEtMT0gEPACEIsfX+9be7DcL2AeIHC67f1NbfuwXoPrJqYe4CamMshRI07EQNm+baz83hRCnDA7+diWg23JJ/FjeZKxLPe4e99cNzEnNTFdoG3yKS4K4HzBx43DmS7quInhdcdWsCVgihM0XLb/kd+hQogTptG6/KL77wyVczwOibfNK3VdB9O2iZtWIjx24oIj2wXFA5GggikBU5xgIVNRFHRdR1XVROcLTZNqphBCdvIRfAWH7RNbbuI4OI6NbdvETZN0r0J2mgeUzg2BjgseDXQDVGmdKU6wCqbjOJimiaqqGIaRXLQoH/CFEBIwxVeP4+DYiYAZjUYJqCb9C3Lw6pq8N0J0skgkQnNzM36/H6/Xm+w2IYQQyFaRgq9K9dJ1cUm0SbIdm9bWFkpzg3h1LbEg5xj9EeJE5ff7URSFSCSC4zht01Jc2Q1LCIFUMMVXLmg6rotjO8RjMYI+z3E5V1SIr8LPWvtczGg0iuM4Ur0UQnw1A6aCdLs+0SmA4rrg2ri2hSOVFCGOedC0LGuv6qUETSHEVypgWm1tY8SJ2ZfTdVxs28W0HGzLJWo6h9gyXQjBUWy32h4u2/8WQoivRMBs/3XWxa+Q6pU39MQNmAq2rRCPK8Tj4I8o6FLRFuK/2iJMWhUJIb4yAVMBcvwKxWl84RaS4qt8hgPbcjENiOngBuV4EOJ43J5VCCGO+4DpkggRhW3hUn61nbgVTMcBy07sV9/+RwghhBASMDnSCmb7UKgUrDixF/i0NVNXOuFY+G8M88miCCGEEALpgylOzD2X6cQFEfs+hqqq+11u2/Z+l/1fs217r+HP9sUdQgghhARMIQ6BaZo0NjZi23bnHuyqiuu6ybDmui4rVqxIXg6JqqamaQetah7KSt32xzjQnyOdI9e+13TH1yKVVyGEEBIwheDQKozr16/nT3/6E9V7qg9YeeQIFj20trYyefJkqqur0TQN13X5+9//zsyZM1m9enUyvCmKwqxZs1i6dOlBQ+oXVVcVRUHTtAP+OZzKbMcw+tprr1FVVQUktgicOXMmn3zyyVG/P0IIIQSyk4/gBNhysjnUzPoN64lGo0e9KrZ9LufatWu5//77WbVqVbJimZWVxZlnnknXrl1paWmhoaEBRVH45JNPyMzMpKioiHA4TEFBAYZh4Loub7zxBunp6ZxxxhkHnSe6fv16HnjgAdLT0/d6/vF4nGuvvZYRI0Z8YShsv9/2x1iwYAEDBgwgNzeX9evX89FHHzFixAgaGhrIyMiQ1jRCCCEkYArBQYaBAQzDwOv1YhhGsq8fRzEsXlNTwzPPPMMzzzxDcXExtm1zzz33cPHFF9O/f38Ann/+eRYuXEifPn3weDyEQiHefvttXn/9de68807OPPNMAMrLy/nFL35BbW0tV1xxRXK7vqlTp5Kbm0t5eTkNDQ107dqVH/zgB3tt4Td58uRkFfJQhrc7vm6Px5O8r5KSEi6//HLKy8uTjy+EEEJIwBTiAHbs2MG2bdsIBoPouk4sGuOjjz5i/Pjxhz3fsD2cVVdX87e//Y2xY8eyY8cO8vLykvMXy8rKkpW/6upqRo8ezZVXXrnX/axcuZJgMAgkhqJ79erFAw88wLx58wiFQmRkZLBixQpeeeUVfv3rXyeDckZGBpmZmXvdV0ZGRjIM1tTUsGvXrgOGQ8dxyM/PJy8vL/n8mpqaeOWVVzjvvPM46aSTOPnkk+WAEUIIIQFTiC9aFNPY1MjzL7yArmv4vF7u+/OfCQaDjJ8wHsuy0HX9sFeiV1RUcNZZZzF27FieeeYZXn31VVatWsWkSZMIBALYto2maZSXl5Oeng6AZVlomsaWLVtIT0+nd+/ewGeLhPLz87nsssuAxNzOp59+mgsvvJDCwsLk45qmmdwjuj0cm6aJz+cDYNu2bXz44YcHfE2WZTFmzBjy8/OTl3Xp0oWCggKmTJnChx9+yPDhwznjjDPwer0yPC6EEEICphAHCoK6rlM+qJxf/+pX/PT//ZSFixYx8Zxz+M2vf42u6Ufc5mjYsGHJ0HbDDTfwq1/9CoBTTz0Vx3GSw/JnnXUWQPIy13V59tlnGTBgADk5OTiOs99w9PLly3nkkUcYP348F1100V5BLxAI7Bceg8FgMmwOGzaM4cOHH/IQuWmanHvuuRQVFfHBBx+wdu1ahg8fTpcuXSRgCiGEkIApxL4LcBobG3n8iSf4wW23UVBQwO9/93s++PBDrpx0BampqVTuquSVV17ltu99H8NjHFagaq9Q6rrO448/juM43HvvvfsNubcvulFVFdM0ue+++/D5fFxwwQXYtp0Ml7Zts2bNGt544w0qKyu54IILuPjii5MBtN2MGTOwLCt5W9d1WbNmDZdccskhbem37+trHybPz89n4sSJTJw4EdM0D3k+pxBCCCEBU5xQIpEI02fM4MYbbsB1XfLy8rjpxhuxLItwOEx1VTXz5s3je7fcetgBVtM0Fi9ezGOPPcbQoUP5yU9+QkpKyn4htT1AvvPOO3zyySdccMEFDB06FK/Xmxzmbm5u5uGHH8a2bUaPHs3AgQOT8yQ79tLUdZ3BgwczceJEotFosqF7IBBIDpEfSRhvD8rt0wUMw5CDRwghxHFJcQ9jia7pwLJqF1X5bC9yTYGT82R4jhO8Euk4DpZlYZomsViM6upqSktL8Xq9X1jBrKur4/d/uJeKnRXohp64vP340jSampoYN24cP7rzriOai7lixQq8Xi9lZWVfuA1lTU0NgUAgubCn43Vd1yUWi6HrevI5HOi+Pu/+j3Q4e9WqVXTv3p3U1NT/2laa4viv/ldVVdHS0kKXLl0wDAPDMD53owAhhJCAKb7yAXNfu3fvTg4pd6wsOo5DMBgkMzPzqINVZwazL7qvfcOpBEIhAVMIgQyRC8F/dRefrl27HpM9yjuGu84MeYeyo09n7a0uAVUIIYQETCE4sn3COztcdnao5P9wpb0QQgghAVMICVFCCCHECUkm6gghhBBCCAmYQgghhBBCAqYQQgghhJCAKYQQQgghhARMIYQQQgghAVMIIYQQQiBtioSg03cC+rw+mO37eR/tLj6f1w5p369/0fWlQboQQgghAVNw/Pa/1DTtv9Zn82DBUVGU5Ne+KBjatn3QwNsxKO/7mB23v3Qc5//8PRHH7kNT+zHUflx1/P/2LVHbNxhwHAdN0/a6nvSGFUJIwBTiKDQ1NTN33hxCoRCqqgEurps4Satq4mScm5vLqFNG4ff7OdKtKB3HIRaLEQwGD/i1+vp6cnNzsSwLXdcJh8PE43FSUlLQNC0ZDIBk+LMsa7/qasdQ0P71fcOiqqqyX/RX/EPTvvvQdzwuOh4PHY+Pfa8nhBASMIU4TO1B7oUXX2Dm7FmU9e6TrOCoaiK02XZi6HztutcINYe4+OKLk7fjMCpJqqryxhtv0NLSwqWXXoppmmRnZ+8V9hRFYfLkyUyaNAnLspg1axajR4/e67Hag8C0adMYPHgwWVlZ7FvZbG5uxrZtsrKyeOedd0hLS2P8+PHU19ejqipZWVnMnj2b1atXk56ejmVZyYqopmlYlkVKSgqXX365HCR8+SqXiqLQ1NREdXU16enp5OXlsbtqN01NTaSlppGXl8enny4gNy+f0p49qaysZPPmzYw+9VRi8TjNzc24rovH40keo0IIIQFTiMOcE7lp00auvPyKvQJVLBajoaGB/Px8AB7461/ZvGXLfsPNHGIlaf78+UydOpXBgwcza9YsJk+ezK9//WtKSkpYv3497777Ln6/n7feeouKigqqqqrYtm0b27Zto6Ghgdtuuw1FUXjllVcIBAI899xzlJeXk5eXh6IoTJo0iYKCAlpbW3nvvfdQVZWmpiZWrlyJz+dj5cqV5OXlAXD22WdTUFBAJBLB6/USCoWYOXMmQ4YMoaCgAMuyJFh8yTU0NrB8xXKqqqq5+KKLaGxqZPXq1XTv1h1d11mwcCEDBwygR/fuLF22DMPQWbR4EXtqavnkk3l0696N7KwcLr/sMql0CyEkYApxJLweD1rbXDRFUbAsiz/d9ydmzZnD7397DyNGjEDXNUA5osVDL7/8MvPnz+eGG25g4MCBPPvss4wcOTIZ+IqLi5kwYQKxWIxTTjkFVVVJT09H0zQaGhpobGzE5/NhmibnnHMOL7zwAmeddRaXXXYZhmGg6zqZmZkApKSkcPrpp/PGG2+QmprK6NGjycvLY9u2baxfv55bbrmFYDBIdnY27777LpqmkZWVRTQapbGxkWAwyPz58/nVr34li4T4cg6NAxQVFpGXm8ecOXP4z7vv8p2bb6akRwler5d4PE5WVhYLPv2UXbt2sW7dOsrLT+KkkwazZu06Bg4cyIQJZ6BrmoRLIQTSpkiII+S4LpbjoCgK0WiUvzzwFz799FPCra1s3LSpwypz57DmXCqKwpIlSzBNk/vuu49Nmzbxu9/9jqKiIm699VYCgQCO4xAIBJg7dy5vvfUWixcvZurUqTQ1NTFv3jzS0tKoq6sDSM7/rK+vJy0tjUWLFuHz+WhpaWHFihVEIhFUVWXu3LkEg0FSU1MpKCggHA7Tr18/zj33XJ577jm8Xi+u61JVVYXX6yUlJQXDMEhLSyMzM5P6+noaGhrkwPgyf3LXdfx+PyNGjMBxXTZt3kxqaiq6rpOSksL5555Hn969GTlyJL169+bUUaPIz8vDcR1mz5nDCy88z4oVK+SNFEJIBVOII+UChq4TjkT4/e9/T8/Snlxy6aVs376NSy+5pG1hjcLhVDDbKz/Dhw9n+PDhVFVVsXXrVmpqasjPz2fBggX4fD569+5NIBDAsix69uxJv379mDVrFrFYjHg8TiwWIxaLoaoqjY2NPPDAA2RlZTFx4kSeffZZPvzwQ7p27cqwYcMYOHAglmVRWFhISUkJL730EpZlsWHDBq655hpKS0sxDINwOEwwGCQWi+H1eveag+m6LtFoVA6KrwDbtklPT6e0Z08WLFhAWZ8+qKpKS0sL8z6Zx84dO7Asi+3bt7Nk6VJ8Ph8Bf4DLLr2Us848S95AIYQETCGOhkKibc+/nvkXpaW9yM7JYtPGjfz217/ls4qki6Yph73YYufOncyaNYvVq1ezevVqrrrqKlauXInjOKxcuZLbbruNXr16YZom27dvTy7iaa+adlwZHgqFGDVqFBdccAHPP/88ra2tdOvWjbvvvnuvxx49ejTvv/8+K1euxDRNrrnmGp5++mmuueYahgwZklyJPmzYMDZu3Ei/fv2or68nJSWFxsZGhg0btt9Kd/Hlo6oqjuNw6qmn8vTTT/PkU08yaOAgunXrxtKlyxh72mmcdtpY3n7nbXbt3sX2HdsJtYRYtHgR1dV7yM7OYuI5E2WKhBBCAqYQRzpvLR6P88EH73PGhDNobKjn0ksu5c/3309tbS2lvUoJBv2Ew5HDDpi7d+/G6/UyduxYevbsybXXXpu8zrPPPptcMKTrOrm5uRQWFrJ7925SU1Pp0qULlmUlg0JxcTHFxcU88MAD5Obmcs899/DRRx/t95hvvPEGdXV1nHvuudTW1vL666/TrVs3unbtiuu6yX6H11xzDXPmzOG9997jkksu4cILLzzonD7x5Z2PmZ6WxgXnn8/6DRvweDzk5eVx/nnnkZubi6apjBgxgtraGgb0H0BaWhoZ6RmoqorP55M3UQghAVOII+U4Nv6Anx/deReRaJQzJpxBbW0dBV27ktulC0VFRWzavPmwVo+3D5GffPLJjBgxgm3btvHiiy9SVFRES0sLiqKwePFiRo8eDYDX66W8vJzy8nJmzJhB79696dmzJwsXLkyGBdu2cV2X8vJypk2bxtNPP43f7+ePf/wjPXr04Oqrr8Z1XQYOHJici7l161ZisRhlZWXU1dURDAbx+/3J+abLli2jrq6OVatW0dTUxOjRo8nJyZFV5F+hkOm6Ln369KFPnz7Jy4cOHZr8UFJYUEBhQQEAZX3KKOtTJm+cEEICphBHyzAMFi1ewsUXXojfH2Tx4sXE43H69OmTHLJetnwZ5YMGHdF927aNbdv06dOHnj170tzcDEDv3r2T99+1a1cCgQAvv/wy48aNwzAMPvroIz788EO+853vJOdHKorCGWecweDBg9mxYwfxeJyBAwcm2ylt27aNN998k8zMTEaMGMFlbW1mtm/fzvz583nppZf42te+xs6dO/nggw+44IILuPnmmwmFQqxfv54ZM2awZ88e/H4/P/rRj+Tg+IqEzPatUNub8rdPv+i4y0/75R2nZshuTkKIL+3vPvcwykKmA8uqXVTls8UZmgIn58kwHrKXOJZlYZomsViM6upqSktL8Xq9fN5Kb1VVWb5iBU899SSt4TC6puG4Lqqi4uKiAKZpkpuXx63fvYXu3bsnb8cxqaZ+dt8dQ8DhvhcHCwYdw0N7qDjQdQBpUSO+cApIVVUVLS0tdOnSBcMwMAwDTdobCSGQCqbgxF4EAXBSeTkPP/TwYd/uWD6nI32cL9pDvON9Hiy4SjgQQgghAVMIOqcCeijhTxa9CCGEEBIwheBoq35CCCGEQHbyEUIIIYQQEjCFEEIIIYSQgCmEEEIIISRgCiGEEEIICZhCCCGEEEJIwBRCCCGEEBIw+RLtne1wpP0eTyTSekgIjllrLz6nWb8QQiB9MPnSNQVv32klHo8f8m00TUPX9eQWbyfCCTAUCuHxeOSgEeIY/B4CiMViEjKFEBIwvyr7/+7evZvZc2azfv2GQ/rlbtkWGekZfPc738Hn850QIVNRFCoqKmTbQyGOYcC0bZv09PQTbnRECCEB8yvDtm00TWP+/Pn89aEH2blz5+ENASvg4vLdmxMh03GcIw6ZX4Zw6jgOAwYMkIApxDFUU1NDY2OjVDGFEBIwv8yVy/r6ep5/8UW2bt1Kbm4upmkeciB0HIc333wTBYVbvvtdvF7vUT+f4108Hj+q1ymE+PzfAZZlSbgUQkjA/LLPu2wOhQi3tpKSkoJpmoe12EdRFHw+H2+88QaapnHB+ecnKqDuoVdAbdsmLS2N7OxsvizD5HLyE0J+voQQEjDF58x3qqurpbauFlVVD3vOU3vFweP18PY7bzN12lQUFNxDTJgKoCgqpmVSVtaX791yCyUlJSfMoiEhhBBCSMD8SrIs66iGpNoroa7rEgqFcNuC4+Hex/Lly7j62mu470/3MWb06L1WtgshhBBCIH0wOaGGpNorn5qmoWsa2mH+MXQDVVVJSUnhX8/8i3g8LuFSCCGEEBIwxVEE1LYhdVVVaWlpwbZteVOEEEIIIQFTdM6io927dx/ySnYhhBBCCAmY4gsZhiELfIQ4qg9r8jyEEAJZ5CNOhL3N29s/HY9zS13X/dxFVe0N9PcN/o7jHNbr2Xfqg6qqyX6q7Z0D9t2PWjoKHOZx5oKqQDTuMG1hA+/MqmP99ghx00VRQVHAcdo7OLT9vwu4iX+77X/z2WI9x+3Q9UEF10n8j9Lh8RwHDEOhTzc/F5yWxRnDswj41OTXhRBCAqYQxyAw19fXs2TJEkaOHJncBu9ogpPjOMmAZ9s2uq4f1S5Kn3fbg4XI9ss79k5tD6rt92dZFkByQdfh3P+XZYen44mqQFVdnF8/sY2pnzbi96rJsOi4ieAZ9Gs4jkvcdInGHQI+FV1ViJkOPq9KLO6gqkoybBr6Z/9ujdgE/Rqm5aIAHkMlHLXxehLfw7omk2kLGxk7pI7ffqcHhbmyKYEQQobIheBYVC4VRaG2ro4HH36ILVu3HHWVtj3E6bqOqqrJaQVH0scUoLq6mu3bt+9XQW7/9/r162lpadnv9lu2bMGyLFRVTf7RNG2vquSnn37KkiVLUBSFmTNn8t577zFlyhSmTJlCQ0MDAAsWLGDq1Kls3ryZWCxGOBxm2rRpWJZFQ0MD0WhUDqRDGI52XaiuN7nzL5uZvqiJtKCGpikYeiKkpwY0RpWnEY3beAyF3sU+Lj09h8IuXnxelYG9ggCUdQ9S2MVLj65eCnM9uG4iSCoojB+aAUBhFy+5WR5CYYsBpUE8hoquKWiqQlpQY86yZm6/fxO7amO4MlwuhEAqmEJ0+rB4JBzmpZdepKKykvfff5+TB5+cHJY+3Apd+202b97MM888g67rpKam8vWvf52cnJzk/X5elbE9jDqOg67rLF68mN27d/PNb34T27b3uo2u67zyyitcddVVlJWVJaume/bs4fXXX+fmm2+mqakJTdMIh8Ps3r2bAQMGkJmZiaIobNq0Ca/XS3l5OZMnT2b8+PEYhsGsWbPwer2MGDGCOXPm0NDQwLhx45g3bx6DBw/mySefJDU1lXnz5nHzzTcfdJhefNaJQVUUHnixgsXrWkgJaji2i6JAPO4ybmgGPQt99Onup6iLF10Hv1ejJWwDLj6vSkmBn4GlKWgKOK5LWY8AdY0mUxY0sGZLmHEnpzOwNIimqRR28dC9wMemnRF21cTYWhml/VvjuIkwu2pzmPuereCBO0vbOkXI904IIQFTiKPWHtRefe01pk2bRlFREdOmTWfIkKFMPOecI96rubq6mnvvvZcJEyZQXFzMihUrePTRR/nBD35ARkbGAUPYvsPQiqIkLzv99NOTQ9m6ru93m9tuu41gMLhXVXPt2rUUFhbi8/n46KOP2LNnD4ZhYFkWvXr1wnEcFi1axKxZs9B1nby8PLp168all16Kqqo0NTVh2zamaTJy5EgMw8B1XWKxGLt27SI7O5uVK1cyceJE/H5/MmCKA32QcVFVhWUbWpi3vAmPoXxWMnRB1WDb7ignl6Uwc0kjKX4NXVVYtr6VaYsayE43OGN4BheMzmLd9gipAZWVm1uJxFxyszx4DZWeBT7GDklnS2WU/GwPZd39bNgRZem6EP1KAmga2DbJkOm6Lh5dYcGqEAvXhBjePzX5PIUQQgKmEBzZELbjOOzYsYPnX3ieOXPn4g8EMONxUBUefOhBduzYzs3fvvmwqpjtcy3/9a9/MXbsWK677joAxo4dy9q1a/H5fJimyZ///Gc2bNhAUVERd9xxB9FolIceeoja2lo8Hg/Dhg1jyZIl2LbN3//+d+bOnUtdXR1XX30199xzD3V1dVRVVXH55ZczadIk/va3v3HTTTdRWFiYDJhbt26lR48eeL1eLrjgAiKRCLqu4/F4kkP2ZWVl+Hw+mpub6datGy+++CKPPvoo2dnZzJ49m2uvvTZZpayrq2PkyJGMGzeOv//979xxxx1Mnjw5OddUfM5x4YCqwqermqlrsvB5FNrfMkVVsE2HYf1S8HoUTh2UzoadEbrleikp9PGNi/L5cH49u2rilBT4WLMtTGvU4eSyVDJSNPw+jR4FPj5eUI/fp3FyWQo1DSYbd0Tx+1SG9kulONfH9EWN+y02MnSFxhaLT1Y0M7x/avJ5CiGEBEwhjqDC2NDQwAsvvMBr/34dRVHwej9b6KCpKo7j8OzzzzN12jSu/9r1jB17GqmpqYccNletWsUll1yC4zhUVVVRV1dHMBhE0zSeeeYZwuEwv/nNb/jXv/7Fv/71L8aPH8+SJUt48803eeqpp5g6dSp///vf+cc//sGUKVOoqalh48aNAHz44Yf861//IhaL8fjjj3PxxRezevVqmpub9wqYjY2NpKenA1BTU4OqqhQWFu417zQej5OSkkJqaiqbN2+mqKiIiy66CI/HQ11dXXKL0nHjxiVv9/rrr3Pdddcxc+ZMbrzxRt555x08Hg+lpaWHvWr9RLOnwaIlYhPwGTi222G+rkJlTRyPoTK4TwpbKiPoKsxfFWLCsAzmr2rmrJEZzFnRxLZdEWKmi6EpjBuawScLGwhHbSzbxbRctlRG8OgKruKyYmML4ajNjuoYtvNZ9ZJkBVwhHLWoro/LN0cIgSzyEaIThsZHjhzJmWeciWEYmKa5VzCKx+OkpaZSVFSEbmh7BVAOsVdo+5D29OnTeeyxx7joootYsGABGzduRFEU3n77bWzbJhAIEI/HGTBgAMFgkC5dujBq1CjS0tIoLS2lqqoKr9eLYRgAlJWVUVJSQmlpKVlZWVRUVJCamnrAFkU7d+6ksrKSp556iszMzL1ef1NTE8uXL6dr166cdtpp9O7dm/Xr1/P+++8zZ84cVq1alVxVvnLlSj7++GN0XSclJYXm5mZmz55NY2OiKlZUVCTtig7luNCVg7YEqm8yKe8VJC9Lp7TIT2OLTV2TSTjm4DNUbBuWrGshFne5bmIu3bv6iJsu+TleNFXBNF0sy2VXTZzd9SZ5WR7GnpzBOaOySA1oyd242K8LAMlFRkIIgVQwheCI2v0AZGRkMGLECEaMGMG7777Lc88/z56aPXgMg7hpUlJSwtev+xrjx48/rJY87V8fP348r7zyCr/97W+57rrruO666zj//PNRFIXU1FTKy8u56KKLWLduHbquE4lEDng/7Yt4FEVJhj1d17EsC8uy0DQtuTp83+eWkZHBlClT6Nu3L1VVVWzcuJHi4mJaWlowTZOMjAxyc3OJx+PE43F69OjBkCFD+M53vgOAaZrJvpgVFRX07duX2bNnc8YZZ1BZWUl+fj6ffPIJw4cPx+PxfG6fzhP+uGv7uyjPQ0aqjm3vH/b6dAswe1kT+dkecjMNWiM2e+rjpPhVmlttpi5sZFi/FPKyPUyZ30hTi0lxnhdw2bgjQmaagaZBblbie5Ea0NhSEeGpt6q4/oI8/F6VSNTdq4pp2y7pQZ3uXX17PU8hhJAKphAc+RzMeDzO+eefz6233oqu67iKQsDv56c//gnjx48/7PmFmqbhui6XX345lmXx/e9/n7vvvpv/+Z//obq6Gp/Px6RJk3jzzTe59957efDBBwmFQslhe4BwOJxsORSNRgmHw0QiEZqbmwFoaGhIrkRvbm7GsiwaGxuTFdN2mZmZqKpKSUkJ119/PVOnTmXy5Mm8//77bNmyhaysLMrLy2lqakJVVVzXZeXKlfz973/n2WefZfr06clQGwqFqK2tRVEUSkpKmD9/Pt///veJRqPJ4XYJl59XMU9Et9OHZJCbaRCJO8m5jq4LmqqwZVeEJetCNLVYzFveRHVdHE1TEg3YFRdDV0gN6KQGdDZVJBqzvz27jvomk5EDU4nFXSr2xJi1tJFwxGH6/2/vzuOjqu/9j7/mzD6TZLIvJJAAIYlhiUAAQVR2LNKK2qpI3av21qVqf9rdqr1qr/e2vb29rXJdqla6aIuiAgqKSAVBFtkMSVjCErLvmSUzc86Z3x9xjkkIEiAoy+f5eORBSGbOTJI5832f7/bZ1EJHOML1l6XhcpgJhrqHS5MJgmEdT6yFi86P6/Y8hRDijL2gjxzHhoBhHbbWRoyhpQhgNsHotLP7zVDTNMxmMx9v/JhHHn2UcDh8Qnsp9ncPYCgU4vXFrxnz+77qkKiqKuFwmGAwSG1tLUOHDu3zkHb0GIqi8OR/PskLL77I7//n98yYPp1wOHxSm6P7/X42bNhAS0sL+fn5uN1ukpOTcbvd7Nixg6qqKlJTUxk1ahShUIjq6mqGDBlCfX09qqqSkZFBU1MTmqZhMpno6OggKyuLPXv2MGTIECKRCFVVVaSkpFBZWUlmZiZOp9MYqq6pqTEe22Qy0dbWRmtrKw6Hg7i4OKP389VXX8XhcDB37lyeeOIJ5syZg91uZ9WqVYwdO5ZJkybxyCOPcNlll1FdXc3evXuZNWsWhYWFNDY28sYbbzB8+HDGjx8vczA59kry/3utmt/99TAWiwmz8vlicn+HTpzbTJzbjL9Dp+OzzdQ9bjPN7SomEyTEWvEGNNxOhbAaobo+REaKDYvZRG1jiPQkG6oWwe00c6gmSGK8hTi3hZqGEKr2ecCMVgsKqzp3XDWAe67J7NMK8q6vLa/XS0pKClarFavVaryehBBCAqYEzHM+YHb9Pa9du5Z/Ll7MIw8/TExMzElVqfmi+YhfxVzFLwp+wWAQAJvNhq7r3ar5hMNhrFYroVAIm82Gpmn4fD7i4uKMn0NVVUKhEC6XS97Z+lAmMhKJ8NizB/n7u/VEiGC3KpgVE4rSGfpULYJZ+fy1p2oRLJbO2pCqFkHpEkptVoVQWP9so/XO3k5F6Rz6tts6Q6imRbBaTSimzmo/mh7pvA8mvjYxgSfvGYLZbDqu17UETCEEMgdTCPq0F+bIkSNJSEgwei1PJshH7981THYt0RgdVu46bzEaAqOP29tziN43ep/o8Y8WIKPf73rcnsG52wr6z4b4o7eJLiyKzrE0m83dwmUkEsFisXTbm1N8cZlITCYeuj2blCQbf19RS0u7SnO7hq5HjN5F4y/Vpf549Hs9qwN9vq9l9xrlbT7t89sHOr+vKJ0brCfHW7lqWgr3XJspfxQhhARMITiFC3/i4uIoLCzstxrbPavadP08GgaP9bVjbcge/f7Reo6OdazjqS3e27Fk1fiJ+7erMphzYQIr1zdTURUkFNY5lb/OaC9nToaD6ePjGZLplD+CEEICpjj9Ahln8T6ZQvAlzMnMTnfwnXkZX+mcUCGEkIB5DtfL1iOnRxm+6BzMr3IeqIRnwVmyslyPdAa9L/N0Mpk6H1vCpRBCAibndk9hSkoqSYlJVFVVYbfb0XX9Sw940Xl8gUCAKVOmGotghBAnNydT6eMCGyGEELIPZr8GzEEDB5I7dCitbW2Ew+Ej9jvkS+pF7Qh2oGkag7Kyuq00FkIIIYRAejDPnICp6zpWq5WbbrwJTdfZtWsXmqYZm3PzJc1LtNlseDwepk2Zyk033WSsIJYhZSGEEEJIwOTM3EInJyeHXz7yKKWlZTS3NFNVdRizcvT6wv1X4q4z5DqcTs4rKGDw4MGyGEYIIYQQEjA5S1Y3a5pGQUH+abHKWsKlEEIIISRgcuYPl1ssFmOBz1exyOdsrTctvbFCCCGEBExkyFycLb2xXS8W+vO5HC0093y86Nf6+/GFEEIICZiCc7VXWNM0qmuqSU5OwdGlZGK0znm0POKJBK/o/aNlGqPlIQFjFX5fQ90XBcauZSWjtcSjC8S6loo82uP1dlxN07pd1ER/Vz2/JoQQQkjAFKJLMAsGg/zP73/Pho83MGvmLGZMn87QoUPRNA2z2XzSWzFFQ11DQwN79+5lwoQJ3b6vqiqHDx/G6/USiUQIhUKMHj2a0tJSrFYrOTk5xjEURWHjxo2kpqZy6NAhiouLsdvtR5RvNJvNaJpGQ0MDaWlpRwTUtrY2Kisr0TSNzMxMbDYbJSUlRCIRsrOzSUtLM44TVVNTQzAYJDs7W144QgghJGAK0RtVVbFYLLy8aBElu0r4xUO/oKysjFdefYUf/fBHmEwm1HCYD9Z8gD8QYObMWdhttuOu9LNp0yb279/Ptm3bqKqqoqqqilAoRGpqKlOnTqWmpoalS5eyb98+VFUlLy+PMWPGUFZWhtPpJDc3F03TjGD43nvvcdVVV7F48WLy8vJITU0lEAjQ1tZGWloaZWVl1NTUsGfPHt59912uueYaVFVlwIABTJgwAbPZTElJCcuWLSMSiTB9+nScTifPP/88WVlZDBs2jGuvvZZwOMyHH35IXV0ddrud7du3EwwGKS4uRlEUwuEwU6ZMITk5WeavCiGEkIApBHw+rFxdU0V2djajRo5k69at1Dc0GKUwH3/icSoqKugIBqmtreM7t95qzF88VqCK3mb58uUMHz6cSy+9FLPZTDgcJhwO8/e//52pU6ei6zqFhYW4XC68Xi/jxo1j+fLlvP3228TExFBXV8cVV1xBTEwMH330EXa7nWHDhmGxWEhKSqKtrY3f/va3fP3rXzd6K2tqati6dStz584lLS2NhoYGHA6H0SPp8XiYOnUqTqcTt9tNXV0d8+fPJzU1ldraWpYuXcqIESNYsWIFxcXFpKenM3DgQCwWC62trdhsNl566SXS0tK46KKLJGAKIYSQgCkEfD7/8cbrb+DHP/0pN91yM42NjTz8i4epqanhkUcfpam5id//7n84cOAAL/35JRoaG0lOSuo2j/JYXC4Xfr+f1tZWYy6mqqq43W6gc57jpk2bqKysJBKJ0NDQwNSpU8nNzSUpKYmysjJCoRBer5eFCxfyjW98w5hnuWbNGt5++23mzJnDiBEj0HWd/Px8gsEgmzdvxuPxkJGRwcSJE1FVlUOHDjFw4EBCoRDr16/HYrGQnJxMXV0d99xzD1VVVWzbtg2v18vUqVO5+eabqaioYPv27YRCIZqbm8nMzCQ+Pp7rr7+egoICQBadCSGEkIApBF17GQ8dqqSlpYXvffffmDptKg0NjfzwRz9i4MCBPPXHPwLw9MKFqKqK3mWBy/EYOHAgaWlp6LpuDC/TZSFNU1MTfr8fi8VCY2MjCQkJ5OXlkZWVRSgUoq2tjS1btjBkyBCcTicmk4nm5mY++OAD7r33XjIyMozj7d+/n0cffZS5c+cybNgwFi5ciN/vx+Px8I1vfIOBAweSnp7OlClTsFgsmM1mli5dyiuvvILFYsHr9XLDDTfgcrnIy8vD6/WSmJiIruu88847XHzxxSiKQmZmJvYuC6KEEEIICZjinBYNertKS/nfP/yBBdddx2WXXcb+/fv55eOPMWzYML7//e9Tsb+CJa8vYfv27fz3b39Lamqqcd/jCbGhUIhwOGz0fIbD4W4ryUePHk1jYyOappGSkkJrayter5e4uDh8Ph+KonD55ZcTGxvLoUOHgM5h7vvuuw+Px2PUpbdYLLz77rvcf//95OXlsWjRIrZs2cLDDz9McXGx8ZjBYJDS0lKCwSAzZsxg9OjR7N27l9tvv51f/vKX2Gw2Y9h727Zt5ObmUlRUxDPPPMOqVavQNI0ZM2aQm5tr9MoKIYQQEjCFAJwOBx5PHBMvmMgnn3zCvfffxw3XX8+tt9zKn19+mVf/8SoDs7JISUnGarUCnNBcw6qqKoLBIF0XGOm6DkBCQgIJCQns2bOHUCjEyJEjiUQiNDU1kZubSzAYxGazGfM36TLEb/ts0VFjYyO7d+9mwoQJfOc738Hn8/Hkk09y5513MnToUAYNGmQ8f4B9+/YRDAZxuVyUlpYydepUgsEgTzzxBLfddhvp6enouo6maRw8eBCLxcKIESO4+OKLueGGGzjW9kZCCCGEBEzBubhRfXRLnoKCAu697z7i4mJ58IEHuGzOZfj9fpYtX8YvH3mUoqIivvu97/Lmm2/yne98B03TsFj6/tLVNA23223MuewZMJuamti2bRu7du2ivr4er9eLw+GgqKgIr9cLYATJrrxeL+Xl5WRnZ/PGG28QCoWYOHEimqYRCASw2Wy89957WK1Wtm7dyocffsjEiRMZNGgQtbW1ZGVlkZmZybZt26irq6OsrIx9+/axevVqYmJiSElJYdmyZcTGxpKamsof//hH2tra2L17N4qi4Pf7GTJkSLefSwghhJCAKZBN1k3ccdvtFBUVkZmZSd6wPFRNxWqxkDs0l5raGqpX1NDU1MzQ3NwT6rGLjY1F0zRUVTWGnVVVJT4+3giPI0aMYNy4cbhcLtrb2yktLWXIkCH86le/YubMmcTFxRlhNbrR+bx589i4cSPbtm0jEokYq9R1XSc5OZkbbriBzZs3Y7FYUFUVl8tlzJl0Op1UVFQQCASoq6vjjTfeYNq0adx6662sWbOGV155hW9961s0NTWxYMEC0tLScLvdVFVVsWHDBjRNIxKJkJ6ejtvtllXkQgghTq/2PXIcxbTDOmytjaB81o5FALMJRqdJw8Y5vlBH13VUVSUcDhMMBqmtrWXo0KHHvQhFVVUURUFRFMrKynhv1XusWLGSG268gSsun3dC8w3b29uJjY094uutra3G/MlwOIzT6TS+19HRgclkoqqqcwul6GN6vd5u4bS1tZVQKER8fHy3IfCugS+632fP5wRgt9tpamrCarWSlJRkfL+2thaPx0MkEun2vKL3jVY2cjqdMv/yHC6vWlNTg9frJSUlBavVitVqxWw2y2tCCCEBU0jA7Fq+sWfDqKoqwWDwpIeBe9s782ilGU+0clDP40eH4KM/U8/a4/Sy8Km3MpLR457McxMSMIUQAhkiF+faMPnRgpPFYjmu+ZZf1Bj3DHa9DStHn0f0ez1v0zMkdr0+63msno380Y4T/bzr7Xt7/K7PTRb4CCGEkIApxFccYI/n612/1/M2x/r/iTyn3o5xtMeXUCmEEOJMIOMoQgghhBBCAqYQQgghhJCAKYQQQgghJGAKIYQQQgghAVMIIYQQQkjAFEIIIYQQEjCFEEIIIYSQgCk4TfafFELIuSWEQDZaF+J4mc1mPv30U2kIheDUlYsESEhI4Dgq/gohhARMcebSNI3zzjuvT7XIhRAnVv60trYWr9crF3JCCAmYgnNqGE8aPiFO7TB5JBIxPnRdl3NOiH6egiLnlARMIYTgXBkaj36u63q3D2kMhei/gNn1Qk46TSRgCiHEWR0udV3HbDajaRq6rqOqareGUFFk/aYQJxswo4Gy60c0aAoJmEIIcdaFzOiHpmmEQiFCoRCapmE2mzGbzRIwheiH6V1dzyez2SzhUgKmOF10dHQAnb0tQoj+CZe6rqNpGiaTCa/Xi91uJy0tDbPZLPPFhOjHcy0YDBIIBLotVo1evMl5JgFTCCHOqp7L6FzLYDCIxWIhKysLq9UqvyAh6N9eTKfTic/nw+fzERMTI4tXkY3WhRDirB4aj0Qi+Hw+4uLicLvd8ssR4hSJi4vD5/OhadoR56CQgCmEEJwNPSpdezDD4TC6rktjJ8QpFj3Xoh9CAqbgzFwhK42lEH2bhylbpwhx6i/souebhEtkDqY4MxtNq9VqrNQLhUKff48IEf3ktl5RFAWTyYSmacZxom8WXXuATCYTiqKgadoR9xfidLoAM5lMdHR04PV6CYfDEjKFOAXhsutIQc9KWkICpjgDOBwOKisr2blzJ0VFRSQlJRnBz2K2YHPaCAQCJzxvrba2lmAwSE5ODlVVVUQiEVJTUzGZTNjtdiwWizEUsmXLFiZMmNDtOMFgUK5eRb/Tdf2ELl66hk1N04xV5UKI/g2YXTsbZHRNAqY4wyiKwuHDh/nZLx5C1zT+8te/cvvttzH5wsn4/X6a2pupPHSI3NxcrFbrcTXIVqsVq9XKli1bKC0tJT8/n+3btxOJRJg3bx4ABw8eZPfu3djtdioqKlizZg2hUIhgMIiiKKiqSnFxMS6XS95gRL++7m02G8FgsM/bnvT2+uu6CbQQ4tSWO5Y2QAKm4MwZ9rPZbLz73ru4nE6e/uNTvL5kCW+++RYjR4wkISGB+vo6nviPX/HPV/8BgN/vP2ZjGolEMJvNVFZWsnHjRsrLy6mrq2PJkiVs2LDB2EOwqKgIm83Gtm3biImJYcWKFVxzzTVUV1cbx6murmbkyJHExMQcMXQuxImGy0AgQE1NDYMGDUJRFCnzKISQRT5C9CdN08gelE04HGb9hvV8tGE9drsVm83Gf//uv/nd//weRVF44IcPsmz58j71YEYbaovFgtPpxGKxYDabcTgcxuculwtN08jLy+P+++8nKSmJhISEzmF5iwVd17FYLNx9992kpaWhqqr8sUS/zaXUNI0XXnyRpcuW4nA4JFwKIZAeTCH6kaqqTBg/gc2fbOHPL7+Mx+Ph5ptuwe12k5GRQSDQQcX+ClJTUkhPSzdW9R2rQdY0jczMTAYOHEh6ejolJSXMnj3buO+ll14KQCAQ4O9//zvPPvsst956q9FTGYlEWLduHfn5+RQWFsofSvRryLRYLAQCfv7wxz/icDi4dPalp/wiJlr+Lnp+9PfChWh99OjQYtd5y10fy2w2H7FwQqqjiBM5j7q+Zrr+/4u+JyRginNkeDwSiRAIBBhXXEzesDycDgfQWWrymquvobS0lL379nLXnXcZc9aO9Uah6zpOp5Nly5axf/9+6urqaGpqwmq1snXrVhRFoaSkhGHDhmGz2Whra2P+/PnU19fj+Ozxg8EgLpcLl8slfyxxykKmz+ejsanxlD9WtKby9h3bSUtNIyUlFfh8H02Hw2GsmD2R44dCIRobG0lPTyccDtPW1obH48FqtWIymYw5zDabje3btzNgwAASExONQBoOhwmFQhICRJ9CZdedQaIXLV238bLZbMYCuGhN8XA4LL9ACZjiXHmT8Hq9LH7tNcrKSjl48CAxMbGEQiFq62oZPHgw/+8HPyArK4sfPfhDLBZLn8Jl19V/Q4YMYejQoTQ2NlJVVcWIESOw2+0kJiaSkZFBR0cHubm5zJ49m+eee45QKITD4TAa3ejm1kJwCjZNV1WN67/9bRbMX3BK5/dGw+yfXnyBlStXYrfbmDF9Jguuu86Y01xRUUFcXBxOp9NorPsqNjaW5uZm/vGPf/DTn/6Uw4cP8/bbbzN//nzi4+Npbm5m586dRnj9y1/+wkUXXcSQIUMIBoOoqkpaWpoxFUVCpug1sFgsmEwmQqEQHcEO1LCK2+0mEong9XqN17nL5aLy8GE8cXG4nC68Xi+BQICkpCQAFJMCJqRIgQRMwVm6PYvb7ebXv/k17V4vP/3JT3E5XVisnS/Jmpoa3n7nbZ741a944rHHyc7OPq69/qI9IoWFhZSXl7NmzRpjqLuyspI1a9Ywd+5cxo4dS3t7OwChUIjMzEyGDh1qvJnt379felXEKTsHvvXNbzJi5Ajj/6fidabrOi6nk9KyMtauXcuD/+8BcnJy+MnPfsbo88+nqKgIu93OPfd+nzu/9z0mXziZlpaWPvVkmkwmgsEga9eupaqqiqqqKpYvX05TUxMVFRWsXLmSjIwM8vPzef/99zt7ULdvJy0tDa/Xy0cffYTNZqOyspLi4mKysrJkrrPofUTK4eDVf/6T3KFDGT16NJ9u+ZRdpaWkpaYy8YKJfLR+Pc3NzYw+/3wURWHHzp0kJCZy6axZ7CzZyaZNm5k1cyaDBw9m67ZtlJR8ypVXXClD56dTwDT1+DwC+MLgtnZ+Ls49kaN8HKs3xe/3U1tbh9Pl4tV/vIr3s3qvZkXBarXh8Xg4dOgQe/bsobi4+ISG3zdt2sTKlSsZM2YMl156Ke3t7cyaNQuXy8Wbb75JTU0Ns2fPNt7EcnJyGDVqFJWVlbzxxhskJSURHx8vvSqC/q4MEhMTw6RJkwgGg6d8o3RV04iLiyM+Pp76hgZaW1sJhUJYbVY2fLyBdevWoes6b7zxBrt37+48R5yuLwy9XXv4m5qaqKqqwuv1Ul1dTWtrK+3t7dTU1GCz2VAUhQcffJDa2loeeughsrOzP5tfHUBVVaZNm0ZOTg5NTU3H3XsqOOsXgcbGxLD8nXfYu28vJSUlDBo0iIz0DOJi43h50SJysnM477wCvF4f6enpVFRU4HI6+fDDf9Ha0kR9fSM2uw1VVYlEIqxYuYKKigqGnzecEaNG0hEISDGNU8D88MMPP9z3RhsaO0CLfB40I4A/DG6rCZu58+vycY59mEAxRTBFdIjo6LpGwO8jJjYOi8XS60T+aMiM83ior6sj2NHRefLrETRNpaMjSFNjIxMmTODCSZOwWq0n1JAHAgHGjh3L2LFj8Xq9WK1WY1i8oKAAgNTUVDRNIy0tjeTkZKxWK8FgkI6ODiZOnCjDduKUDVtH54T1dQ/MrrXIA4EAZrOZmJiYLwyCJpMJNaySkJhAW3sbH3zwAdt3bGfmjBlMmTKF3eW7OXDoADXVtShmMxkZGRQWFqKYlC98XtHz2G63M3r0aMaOHcuhQ4e45557yM3NJRAIcPPNN3P++ecDsHv3bu6//35iY2MpKiqiqakJXdf55JNPaG5uZtSoUcbes0LQZUsvTdcp+fRTvvH1y0lJTqGtrZX8/HwyMjKwmM1s2rSJGTNmkJKSgsViIT09nQgR6urqGJY7jJaWFiZfeCGDBg2ivr6eTZs3M2P6DLbv2M7Fkyfj8/l6fd1FLwb9fj8xMTHGXM7o/E9pE/qxB9NsglibicZABMXUGS5NnwXM3c0RrPK+cM42lBE9gqpFUMMRwqEIdY0RktO693j31jhNvOACLpw0CUVROntEevSXq5pqXMUeb7hUVZXc3Fx0Xcfr9RplKM1mM16vl6SkJNLT0/H7/QBkZ2ejaRqqqpKcnMycOXNQVVWGyMUpbTy/DDZ752K6ccXFxHs8WCwWcnJyCIfCTJo0iUsvvZSbbr6Zb33zm1w0+SICgcAxh8h1XcfhcLBv3z7WrFmDruts3bqVhQsX0tbWRnl5uXHeTZkyhb/97W9ceumlHDp0iEAggM1mw2QyERMTQ3x8vJxj4gunO82ePRtFURgzZjSBQIBgMIjf72f8+PGs/mA1e/bsYciQIUDnAs329naampqoPFxJY3MTTU1N5OTksHXbNtrb29m9p5zq6hqqa2pwu12oqlTD+koDpskESU5o8HcfKzeZIKxBSPagPkcDJkR0UDVQw50f/vCxp0x0LXN3PFtRHM8bU0dHR7cVhl23SYmuWo028l0rqnRd0SpvOuJMZrVa+bRkFytWrmDfvr2Egp1D483NTbjdMdx6y61cOGkS3/3uHeRk5+D3+/u08CHau+N0OikoKMDtduPxeBg0aBB+v9+Yz9zS0oLb7eYHP/gBe/bsYd++fUZA1XXdGLYU4oumVHVtMxwOB7quYzabMZlMzJ41m8Wvvcb13/42sbGxbNy4kWAoSFbmAIqKinC5XKz76CPcbjcfrf+IoqIiUlNSqKqqZuOmjXzt0q/R1tYm7/Vf9RzMWBukuU3U+iNYTJ+HCJPp6L1V4hyYg2kCpcdHf17Bnor79gyPPT+XNxtxpjfMDoeDkl27eOzxf+dHP/whN994I2lpadhsNir2V/Dxxo288OIL6LrGlIsvof2zlbh9PbdCoRDp6ekkJSWxatUq9u7dy5VXXkltbS0vvfQSsbGxTJ8+nVAohNvtJhAIEBsby+DBg9E0zfhaR0eHnG+izyVSu/aua5pGYWEhGzdt5Lk/Pc/FF13EqFGjWPneuxScV0h+Xj4+n4+W5hZsNhsDMjKYO+cy0tLSCIdVAv4OY6ss8RUGzAidwWFATGdvZXMQLKbPvyeEEILTajFRWVkpdrud1pYWVu3Z221UID09Hbfbzfr167lgwgXH3chaLBZaWlpYtmwZ9fX13HnnnaiqyoABA1iwYAGLFi2isrKSK664ArfbTTgcJiEhgTFjxhAOh1m1ahU+n49BgwbJPGdxwuFTURTuuvMuFEUxFs3Nv+ZaNFUlEAhQNKqI4jFjCYZCFBYW4vP5aGhoYPasWZhMpj6VHxaneoj8syBpNUO2x4TVC3X+iDE/U/4853iD1uNDCMFXvr3LqKJRlO8uZ9Xq1Zijcz5NnVNbduzcgcfjYcqUKUZlnb42tNGGPRwOc9555/Htb38bVVVRVRWfz0dmZib33Xcf69atM+YyDx48mISEBKNBj5ZqHTduHAFZyStOQltbG4CxAMfn8xkjUaFQyNhDua2tzVioEwgEvtS50OdcJoicwOSX6OIePQKtQWgMgC8cIaRJT+a5u8hHR9VU1HAYNRSkrq6WmaOy8LgdqJpMzhWiP8KipmmEw2E0TaOxsRGr1frZUN/RtzmKlmW0WMz0fLc3KqGYIKIf/6bTkUgEq9WKzWbD6/V2m1qi6zqKohATE4Pf70fTNCwWi1EwASAuLs5YhCfE6brAqKGhwZhaYrPZsFgsRpAV9O9G69FfqWKCBAd47KBFTOiSLs/ZRT66bkJVTYTDJkJBE8maiRiXHavNhlV+RUL0W8C0WCyEw2HsdnufKk1Fh57DYfWULKTruViOLivkI5EIra2txmIMVVUJh8PGbZubm3tdhCeEkEo+RtDsz0Ud4gwMmTqogCUCigYOCyiyUEYI+rM3pefH8ZSlPJUL6b5oD86u4bHnbSVYCiEBU4gv7sHs5UMIcfqEUyGEkIApzuktKE5Fgyj1ZoUQQggJmALpXenvx/iikHkqhxCFOKUL7D4rHymvUSHo90pbUgRAAqY4QxtHk8lEQ0MDLS0txuKFlJQU4uPj+/WxamtrSUtLAzDK1zmdTgmQ4rQ4BzjBRT9Op5PY2FgJmEKcIqFQiMbGRvlFSMAUnEErYhVFYffu3Tz5X/9JS3MLDqcDn89Hamoq99x1NxkZGeiRzttF9M6qJC6Xq0/H1zQNs9nM0qVL+eSTTygvLyc/P5+JEydSWlpKYWEho0aNwmq1sm/fPl588UXi4+PJzMykvLycpKQk2tvbSUlJwev1cu+99/b5sYWgn3rWj8VsNhsfQogvZwqXkIApzoCTdt++ffj9Pv7wv/9LcnIy7e3t/O8f/sDPH/o5Tpers96sotDu9XLRhZO56847sTscx2yUo9ugDB06FK/Xi8/nY9SoUQQCAXbu3InX6+W3v/0t11xzDddddx1z585F13UmTJjAk08+yfnnn8/mzZv52te+xrPPPovf75eAKfqVqmkEOzpwu93GBdeJnkcyx1gICZgSMIWgew9OdNNaRVHweDz89Mc/oaGhHrPFApFIZ4lSRencT89iOa6hx/r6egKBAK2trdTU1FBVVcXkyZNRFIVBgwZx7bXX4vf7qa6uJhQKMWzYMJqamigtLaW6uprt27cTDoelh0j0+7B4wO/n/559himXTGHsmDESEoUQEjCF6N89NCM4nU7+5/e/p6JiX2fgNJs79z/6bFt/s1nB4XAwalQRX7v0Uux2+xc2yNGvJyYm8uyzz9Le3s4nn3zCggULSEhI4NFHH+XCCy+krq4Ou93Onj170HWdQ4cO4Xa7KSwsJBAIUFxczL/+9S/C4bD8oUS/cjgcVFRU8NH6j3j4oYcZMXy4/FJO094rCf5CSMAUZ+AbuM1mY/Xq1ax8dyV33H77Z7VITZ9vsmkyEQgE+ONTT5GcnIKiKMccUoyGz/LycmbMmEEkEmH06NFs2rSJ1tZWfvSjH7Fp0yZWrlzJggULGD9+PLquU1xcTENDAwcOHKC1tZV9+/Yxc+ZMPB6P/LFEv9J0nRh3DGVlZXywZo0EzC9xmPN4NqkXQkjAFGfiGz8RzGYzFfv3M664mLmXzT3qop1NmzYyaeJErFYruq73qWEYO3Ys27dvx+v1smfPHvbs2UN2djbV1dWkpKSQk5MDdPYmVVVVsWPHDoLBIHV1dbS1tXHw4EGcTqc0NKLfKSYT7d52Lr30Uq5fsOAr742LrkT/Ml7rPUcfehuN6M8pAydyHF3XKSsrIxAIMEamMAhx/O9x8isQXyVV7ayPvOZfaxhXPO6ot1u7bh2HKisZOHDgcTUogwYNYsKECZSWljJnzhycTie7d+9m165dVFdXU1RURHV1Ne+99x5btmzBbrczefJkzj//fHJycrjkkksoKio6oQUYQnyRYDDItKlTeeD+/0dcXNwpXUwQDUfHWhjXl7KSvV38ASxatIj9+/cbX3///fdZvXq1EdZ0Xae9vb3XwNf1/9GLx40bN/LDH/4Qn89Ha2sroVCo2/tGc3Mz7e3tPPbYY/zrX/+irq6Ourq6btNZwuEwNTU1VFdXd/toaWnpdpG6Z88eVq9eTSQSMe6vKArr16+nvb2drVu3YjKZjnlhK4RAejDF6SElOYWK/ftpaWmhrb2djRs39tpT8NbSt8jPyycpKalPPQnR25SUlHD48GE6Ojr45JNPcLlcjBkzhqysLLxeLzt27CA2NpbrrruOwsJC1q5dS0tLC42NjYRCIQ4cOEAoFCI2NpYBAwbIH0zQX71psbGxXHXlVV/KKnCTycTBgwfZvGUL9fX12O12rpg3j/379/Phhx/idLkoyM9n5MiRxMTEcLw9fWazmU2bNjFixIhuoU1RFKZMmYLJZMLn8/GnP/2J5ORkrrrqKmw2mxFoo+HRbrcb91+6dCktLS0sXryY5uZmGhsb+fnPf47FYqG2tpZly5ZRVVVFeXk56enprFmzBqfTyY033khSUhIANTU1PPPMM4TDYSNgBwIBAP7t3/6NYcOGAVBZWcmWLVuYMmUKVqsVgI8//hiz2YzX66WoqAhVVY1N7b+o3roQQgKm+ApF35DHjx/PN6/6JiW7Svhw7Ye8//6qHm/eCpqukZSYyIIF1xmVS/raoxhtWK644gr8fj8XXHAB4XCYxsZGo/d05MiRRiPvdDrx+Xzk5uZSUFBAMBhEURSj0RGCL7lnsT8q/Xy4di1PPf0UaWlpDBgwAKfTidViQdM0mluaaWtvZ/nbyxmWO4xHH3nE6M3kOBctdT0vo7tDRM/DmJgYrrzySn7xi1/gcDi44oor0HWduro6Fi1axM0334zdbkdRFF599VUSExO599578fv91NTU8NxzzxnvG+np6dx22238x3/8B3PnzmXChAkMGTLEeKzoPrgDBw7k0UcfPeK5Pv300zQ3N3d7rm63m8bGRtauXUttbS0HDhzgwQcfJC4uTl6oQkjAFGdi43rrzbegaioWi6XXRk3XdSyfbU/U13AZPU5RUdFxzU0bM2aM/GEEZ0uZ1GgP4T//uZiBA7N48ldP0tjYyO7du1nz4b+wWq18/evfYNTIkdTX1/PAgw/w5ltvMu/yece9N2dLS4tx0dbzZ4suzMvKyuK3v/0tlZWVRs/nsmXLaGlpITExEYCXXnoJn8/H97//fSKRCAkJCTz33HPMnz/fGKY2m8288sorbNu2jfHjx7N582ZWrFiBqqqkpaUxb948I4xGh/Cj57nf70dV1W4/m67rrFq1CrvdTnt7O7m5udx2220AtLa2smrVKhoaGrBYLN2mEOi6jsfjYe7cuTidTpmnKYQETHE6Na5mixmzxXzMerDH03PZtQH4ojllJpPpiIbmaLeThkOciRdwPr8Pr6+NGTPmAbDy3XdZuvQtLBYLqqqSkJDID+6/n+zsbCJAR0eQExmNuPrqqxkwYIDxuOFwGIfDcUTIjIuLo7CwEIB3332Xjz76iP/6r/8yAu3w4cMZMWKE0Qu5fv16/H5/t4U2GzZsYMOGDfzsZz8jEonw5z//GafTybe//W3S0tK6jTj0HL62Wq29vo8MGjSI6dOnG/O8NU1DURQsFgvx8fHGnr1d30+iox7R9wZ5jxBCAqY4AyslnMhCm+O9jyzmEWfbBZzL6WL8uPEsfu01ikYVMXv2bC6+6CIcDgearqGGVeLi4njjzTepqakhIyPjhM6ZqVOnGl+rqqri8OHDXH311d1uE71Y9Pv9PPXUU3z66ac8/vjj3bYBGzt2rPF5eXk5zz33HPfee2+3ikd5eXk88sgjlJeX8/HHH3PllVdSV1fHxIkTj3hviU6TiYbTYDB4RO12k8lEfn5+t0WE0WDqdru7/WxCCAmYQoYJhTjnL97MZjPzr51PdXUN/+/BB7BarTidTh579N/ZuGkjz//peWJiYlA1jTu/dycXTZ58QqMF0DmcfPjwYV588UWGDx9OYWEhqto5/SUUCrFjxw5KS0t5//33KSgo4Pe//z0xMTHdhpZ1Xae1tZWtW7eyePFibrnlFoYPH95tyD4hIQGAZcuWMWnSJLKzs7Hb7ca2YklJSSiKwv79+1m0aBFut9voEfV6vezfv5/JkycbzzshIYFdu3ZRXl5uLNqJPu8hQ4Yc8yJY3sOE6OW8iEihTdEPjZiu66iqSjgcJhgMUltby9ChQ7utChVCnDhd19E0jXA4TDgcpr6+HrfbTUZGRp/n/nm9XhobG7FarQwYMIBAIEB9fT0mk6nPW4Ad7bkpisLixYt57733uPrqq7nkkku6zW9uaGjgd7/7HUVFRcyaNctYPNPbc3/11VfZsGED9957L1lZWUfMB40e9/Dhw7zwwgskJiYSExPDgQMHGDduHLNnz8ZkMtHR0UFdXZ3RG6koCh0dHWzfvp1Ro0YxePBgoHPboz//+c+UlJTgcrnQdZ1QKMTkyZP5+te/fsK14sWZLxQKsWfPHtLS0rDZbNhsNmMBm1xYSMAUEjCFOOcDZl+qX51sb5zX6zW2OTrWczra84lEIvh8vj4fJ/q4fr+f1NRUeaEICZjIELkQQogvSXT+Y89h3f6stx0TE4OmaUcsnos+TtfvHS3smkwm4zjHasSjx4yJiTGG2nsO7/fWhxINt12PrWnaEbf9oucphJCAKYQQ4ighsj97YaJzPo/22NHtxk7mOL0ds2sw7BkIe/v5eju2bJYuhARMIYQQZ/GCveM9jgxVCiEBUwj6UnkkOu9KhqeEEEKIM4+03oLTaRFDNFSazWYURUFV1aNufn4mhudoVZGec8Oiofpk9gkVQgghkB5MIY6cdB/RdSr276e2tpa0tHSGDBncpxWwX/am8NGSdcdaldtzM2ez2XxE/emux4mG6a7H7bkQoeum0dLDK4QQQgKmEBx9hesHa9bw0ksvEQ6HiYuLpa6+gZzsQdxww42MGD78tKjz27O+cl/qQEfv09HRwfr165kyZQo+nw+/309KSgqKohAOh/H5fMTHxx9xnObmZpxOJw6HQxYiCCGEkIApBH3suXz+T8+z+LXXuPzyecycPp24uFiam1v4xz//yY9//GO+e8ftXHbZXKMax/HoOizNF6waPdoWLl2DYmVlJfX19YwePZolS5Ywe/bsbvWWo8fw+Xw8++yzzJo1i/z8fKM0ntvtJjU1FY/HwwcffMCIESM4cOAA5eXl1NTUcPHFF9PS0sKcOXNISkrC7/ezYsUKhg0bRm5uLk888QRJSUkEAgEGDhzItddei8PhOC3Ct5CqV0LIOSgkYIrTJlyuXbuWfy5ezEM/+zkTJkygpaWFTZs2cckll/DDBx+koCCfZ597nuycHIYXDu/zcHk0dD322GPU1NRgs9mMr4VCIbxeLy+99FKvbxyhUAhFUYxtVXRdx2w2U1pays6dOxk9ejRvvfUWl1xyyREBU1EUNm/ezBtvvEFLSwuqqhIIBCgoKGDmzJkkJyezb98+du/eTVZWFmlpaVRVVWE2mxk4cCAul4uEhARqa2t55pln2L17N/Hx8Vx++eUkJydz8803s2HDBqqrq2V+5lmwcbrVaj3uKSDR16o0dkJwyqdERc81Od8kYIozqIENBYP8edHLXDHvCiZMmADA4arDrPtoHcOHDycjI4PLv3E527ZtZ9Giv/DE448fMfR8rEb4oYceOuJ7JSUlPPXUU90qEfn9fmNz59WrV9Pa2sqVV16JzWYzejuDwSC9DZF33eB53759/PWvf+Vvf/ubUVnkJz/5CePGjSMnJ4e9e/eyYsUKEhIS+Oijj0hMTKSqqorm5mZ27tyJz+dj1KhRtLS0cN5552GxWIiNjaWjowO73U59fT1Lly5lwYIFOJ3OE+rVFV9to2UymfD5fLy8aBFTp0yhoKDgmK/pnqHSarXi9/uN+0Xn5woh6Jeeyuh52vP9Vc4zCZjiNA+XFouFiooK2traueyyOUSIQASGDs3lu3d8l8TERKNnZ86cr/H0woU0NDaQnJR8wgtzwuEwVquVZ555hm9+85vG19va2lizZg1erxeXy8WSJUtIT08nIyODcePG4fF4jIDZswJK16og+/bt45lnnuHqq69m5cqVTJgwwZg7mZeXB0BNTQ3BYJDhw4ejKApbtmyhvb0dh8NBWVkZHo+HlpYWEhMTaWpqYtq0aXz66adYLBbKyspwuVxMmjQJVVX7NBdUnJ4cDgc7P93J+g3refihXxh1sfvS8EUiEWJiYigtLaWjo4PCwkK5yBCin3m9Xg4fPkxsbKyxu4mQgCk4M4YeqqqqSIj3YDFbMGECE+zcuZOnn36Khx56iEEDBwEQ43ZjtVhobGwkOSn5uOYcRm8XHY7ctGkTwWDQ6DEFcLvdnH/++TidTl5//XW8Xi8FBQUUFhZit9uNx1NVtdcV38uXLyc9PR232821115LUVER77zzDu+88w4bNmzgnnvuweVyoes6gwcPxufz0drayty5c9m2bRvz589HURRqa2sJh8MMGzaMkpISqquraWhooLW1FavVisVioampifz8fMrKyrjoootk/uUZStN14mLi+GDNat5aupS777qrTz2f0fKFVqsVq9XK7t278Xq9xkWODOUJcfLMZjPhcBiXy4XT6TTe9+WCXgKm4MyYKJ07NJe2trZuQ8+qGqa9vR1N14xGtbW1DZ/fT3Jyykm9YWzatInf/e53/PznP++2OMZms5Gdnc3y5csJhULccsst+P1+BgwYYAw9hkIhampqOO+884yfIT4+ntLSUhYvXswjjzzCgAEDjMebPXs2H374IYMHD2bMmDHouk4kEmHAgAGoqsqaNWvw+Xxs376doUOHYjKZqKqqoqOjA7/fT0JCAldeeSXLly9n7NixDBs2jJqaGrKysqirq2Py5MmyT+aZ3ICZTLR527j4oku4+lvfOq55l9EwGZ06EQgE6Ojo6LaHrBDixNsmm81GcnIyHo/HmCYlF3ESMMUZdBKnpafhcrpY/Npr3HP33d3qEEe0z3vm/vHPfzJq5CgS4j2oqtrnmsZRgUCAt99+myVLlnD33XeTl5dnbOwO0Nrayn//93+TkpLCTTfdxNq1a435bdEh8Pfff59Dhw7xve99zzjuihUrWLZsGXfffbcRRqFzS6I//OEPxMTE8IMf/MC48o2GzGAwaIQBv9/P1q1bsdlsNDc3k5GRgcPhoLW1lXfeeYf9+/fT3NxMbGws6enpeDweFi9ezI033ihX1GewjmCQ8ePGM3XKFNLS0vrcEx3tvYzW4Y6JiSExMdF4PZnNZmn8hDjJuZfRTono+WaxWOTckoApzpSTWNd1FLPCbbfdxsOPPkx+Xh6zZ89mXPE4fvbTnzFkyBAikQgvvfxnKir2cfddd6EoZuD4Kvuoqsrjjz+O3W7nP//zP0lJSTEW5ERDZk1NDfPmzaOoqAjAWDgTbcSjYe++++4zwq2maaxcuZIHHniAzMxM4z7r169n4cKFzJo1i2uvvfaIN6Tozx4IBFBVlYKCAh555BF8Ph/btm1jz549BINBUlNT+e53v8tf//pXRowYQUFBAY899hhJSUlMmzaNP/7xj9xxxx3dhvDFmXNxFRMTw4033NDrpvx92YPVbDYbDV/XBlB6MIXon5DZtbJczx5M0YffY0TG1wQnP59S13VUVSUcDhMMBqmtrWXo0KHY7fY+zStbvHgxf3rxBSZNupDZs2aRmJhATU0Nb771Frt2lXLf9+/hoosuPqEV010X+fTVwYMHCQaDDBs27Ljvv3fvXuLj40lKSjrqz1tVVUV5eTljxoxh1apVzJs3j7KyMpYsWcJll13G8OHDjfusW7eOnJwcPB4P//jHP5g4cSJ5eXls2rSJzMxMMjIyJGCeY3OXo9tmVVZW0t7eTlJSEhaLxQiZEjCFOPmLwJ5D4tHzSt5rJWCKMyBgdg1dO3bs4K9/+yuHq6qx26xEIhFSUlK5/fbbycnOPqkQ1XUboRMNoT0fvy/HPFVvRBIoJWSaTCaqq6tpa2sjOTnZmCcmAVMITrqyXM/ezJ4lfgUyRC7OjKtFTdMYOXIkI0eOpKq6msaGBrKzs4mLiwNOvhb5sd4Yen6vt8DZ21B3b8fsa1iNhtNor2wkEjH24ez6s0aH8aO/p+hVddevi3PrfOn6Guu6sEcCphD9X61H3mclYArO7C0hoqu1B2RkMCAjo0+9hKdjObC+3LfnRPLo13pbvNT1Z+86PUBChOhtvljPCxQhhJCAKc75kAmf7y/ZdR6MEEIIISRgCkF/zH8RQgghxBnYlsuvQAghhBBCSMAUQgghhBASMIUQQgghhARMIYQQQgghkEU+gtNpQ2jZx1+IU7fZupxfQggJmOKcY7PZZHNaITh1+7RaLBYJmUIICZji3GoADx061OvG4UII+qUH0+/3yzkmhJCAKc698o9CiFMnWi5UejGFEBIwxTnT8A0ePFiGyIU4herr62lpaZHzTAghAVOcO4LBIHa7XX4RQtD/Q+QmkwlVVSVcCiEkYArOuWFyafyEkPNLCIHsgymEEEIIIYQETCGEEEIIIQFTCCGEEEJIwBRCCCGEEEICphBCCCGEQFaRC87p2sqaphmbR3etUtLfK2ajtdIVRTnu5xl9LtHtYvpjy5mexxZCCCEkYApxkgErGq6OJ/DRD9u8RB9f13Xj86NtAdM1WEb/Hw2qXe+jaRpms/kLf+ZokI7eLnosTdNQFMV4TrquA6AoivG76Y9gK4QQQkjAFGd1uAwFg5gtFmpqanhnxQrcbhehUIhvfP0bOBwOzGYzFovlhIJVNDh2ZTab0TSNXbt2MWLEiF57MrsGva5f0zQNm80GfL6ZfM/nFA2NXR+362OYTCajd9br9eJ2u42vdw2mXUNlb0FXnF498F/0d5EeaiGEBEwhvsRw2dLSwn/95tc0NzdTW1vL5s2bsdvtqKrKypXv4nQ5yRs2jLvuvAu73X7cIbO3gKZpGi+88AKBQACz2UxBQQE7duxgx44d5ObmMmrUKBwOR7fnqWkar7zyCnFxcYwcORKLxcKzzz7LjTfeSGtrK0lJSWRmZhIKhVi9ejWzZs3q9jy7fr5nzx7effddWltbmTNnDiNHjuTXv/41JpOJoqIiRo8eTXx8POvWrWPv3r1GSL766qupqanhk08+4Vvf+tYxe0oFX1pveH/cRgghJGAK0Q+Nsq7ruFwuQsEgmqry2L8/RkxMDJqmYTGbaW5u5pf//ksUk4LFYjmuQBUNhi+88AIVFRXd5nMGg0Gam5u5++67SUhIwGQykZaWRmVlJVu2bOGVV16hsbGRO+64gwsuuACALVu28Omnn2K1Wtm3bx/BYBCr1crTTz/NJZdcgq7rZGZm0traytKlS5k5cyabN28GoL29nYaGBoqLixk8eDCxsbE4HA6sVisDBgzgueeeIykpiYkTJ7Jw4UKys7NxuVxUV1fT1NREXV0dI0eOpLW1lebmZioqKo7olRVfDV3X2blzJxEgKyuLpMTEXl+L69atw+Vycf755x81bMrUByGEBEwh+onNZiMpKYn09HTiYmNZsmQJCxYs4E8v/ImbbryJQQMHkpySjNlsRlXV4+5VmjlzJqFQyAi0DoeDZcuWkZ+fT0FBgXH7+Ph4pk2bhsViQVEUDh48aAyF+/1+GhoauOWWW3j33XeZPn06JSUlZGdn8+mnn5Kens7gwYMB2L9/vzHsXldXR1VVFS6Xi7i4OGJiYgCoqKhg7969RCIRPvzwQwYMGEB7ezvr1q3j+uuvZ+jQobS3txMXF0diYiJerxePx8P69etZsWIFXq+XBx54gJtvvpnhw4ej6/qXNndVdNfu9fKrJ/+DGdNn8KcXXuDCSZO46sorURSFhoYG7HY7sbGxVOzfT0JCAqNHj8bn89HR0UFSUhLBYJBHf/koP/7Rj4mJicHv9+P3+0lOTpZfrhBCAqYQJ0NVVSwWCwcPHmTLJ1u4bv51rN+wgcvmXIam68cVLHvKzMw84msZGRm0trYCn8+1/OCDDygpKSEnJ4e0tDRSU1NJSUkBwG63U1xczOuvv05zczNms5m3336b/Px8MjIyeP7555k+fTqXX345Bw4cICsrC0VRmDNnDr0NzxcXF7NixQpKSkq4+uqrcTgcvPbaa9TU1HS7z7Zt2ygvLwfg8OHDXH755dxxxx2UlZVhs9mor6+XF89XLBwOEx8fzy0330ygI8Cjjz7KmNGjCXQE+PjjjZjNCpd/43JcbhdmS2ev/FtLl+L1tnPJxZfQ0tLCli2f8N5773HxxRfz5ltvEQqFGT26iNHnj5YLByEEsg+mECfJbDZjtVoxmUxYrdZ+aVyjC3M0TSMcDhv/RoeYowt5pk2bxrRp02hvb2fZsmX85S9/obKyEugcumxsbOTAgQP85S9/oaKigsTERAoLCxkxYgSDBw82hu79fj8JCQlomsYHH3xAaWkp+mchWVVVFEWhqamJQCDAwIEDOXToECtWrCAUCpGcnMzq1at5+umnCYfDmEwmkpOTSUpKIjk5Gb/fj9frJTY2Fl3XZf4lp890j3A4jNPhJCYmhrq6Op5euJC09DRKdu3i7XfexmF3oGs6ry9ZQmXlIRISEnh50csMHDiQoUOHMnPGTF5f8jq79+xhQGYGC//v/wiHw/LLFUIgPZhC9NPWQQBKP81F6xrCop+7XC58Pp/xmI2NjTQ1NTFy5EhGjhwJdM7TjAZRi8VCQUEBmqYxffp0IpEILS0tVFZWEgwGqa+vZ9iwYUBnb2xNTQ2vvfYaDQ0NjBs3rttq8HA4zKuvvorH4+GSSy7BZrNx8OBBHA4HCxYs4P3330dVVVwuF5MnT+bAgQPU1dVRUFBAYmIi5eXljB8/ng0bNkjvFqfHYjWb1YrVaqWttZXmlhZi4+LQdZ20lFSKi4spyMtnz9692Gw2fD4fmVlZZGVl4XbFkJiYiEkx4XK76AgGyUhPIzUllSlTpsoFhBBCAqYQ9NNQeUdHB5FIBH8gYOwBeTKr1F9//XUCgQCKohhhcePGjYwYMcK4bXt7O6tXr+bll1+mra2N/Px8rrjiCtLS0oyw+frrr6MoCl/72tcYOHAg0Dn8np6ezq5du4weUavVyooVK7j77rv529/+xrJlyxg7diw1NTUAjB8/ntmzZ1NRUUFLSwsjRoxg8uTJKIrCb37zG3Jzc/ne976HqqpUVVXxySef0NTUhKZpjBkzhtLSUq677jref/99Y46o+OrYrFY+LSnh5w89RDgcZuaMmeTl5TGueBxr163D7rCTkZHBrrJSrDYrl3w2DN7S1EzxuGLcbjcul4vnnn+OCyddyJtvvcm6j9ZRPGasBEwhhARMITjJlbjhUJjzi87nB/f/gDhPHD/7yU/Jysrq3D/SpJzw1jEejweHw2EETJvNRmJiIlar1QiigwYNYv78+bS0tODz+di/fz+/+c1viI+P595778VqtTJ27FiysrLYt28fM2fOxOVy0draSlxcHH6/3wjDWVlZAJx33nksWLCA9evX8/bbb+N2u8nPz8dsNpObm0t9fT3V1dVkZGRQX1/P8uXLGTt2LPPmzcNsNtPe3o7X68VutxMIBKiuruatt96iqKiIsrIyOjo6jDmisvL4qxMXF8efnnve2BM1Ouf3uvnz2VexD6fTiSfew2Vfm4OiKDidTmJjYwkEAsZtf/KjH9Pa1saggQOJi4uj47Pvyd9VCCEBU4iTEBsbS0lJCas/WI2ma+zduxerzcrevXtpa2tj0KBBACc0JDx16tRevxYNhNFh+ZiYGGOVd35+PlOmTCEYDGKz2VAUhdzcXAKBAAkJCUQiEfLy8khMTMThcBgLgwAuuOACYxV5Xl4eeXl5qKqK2Ww2VrKbTCbi4uJQVZWXXnoJq9XKXXfdhcfjMUKv3W6nsLCQadOmkZKSgtlsZunSpUyaNImFCxcyY8YMcnJyZGsbvvppHb0tJLPb7ZxXcJ7xf6vFanyek5PT7bYej8f42+dkZ8svVQhx5r83RmQzPcHJz0GLLmIJh8MEg0Fqa2sZOnQodru9T8PYtbW1/O5/foffH0BRTIAJTKBrGnFxHubPn895BQWnPExJtRVxMq+bnq+do72eeqtp37VcaF+qAplMJmpqavB6vaSkpGD9bB6o2WyWublCCKQHU0gFFCAtLY3HH3v8K6+Gcqzj9xYETvT59bx/b/ftGai71k0/Wr10cfpU8unr149W8UkIISRgCsHJ9QCpmgZHCW3R4eXTKUic7PM5kfKCxgp76aESQgghAVOIYwcpq0VejkIIIQSy0boQQgghhBASMIUQQgghhARMIYQQQgghAVMgK2mFEHIOCiEkYAohjZwQZ+w5J9saCyGQVeTibGzguv6rqip2u10aPSFO0fmmaVq3c072RhVCSMAUZ2WjF/2w2+1UV1czZMgQ2bNRiFOgra2NtrY2o8SkBEshhARMcVaHTEVRcLlc1NbWUlJSQkpKyhE9nEIITqgggclkIhgMUldXh9vtxm63d7u4k9r0QgipRS7OmkYvWo9c0zTC4TChUIiOjg4aGhqoq6ujo6ND5ogJ0U9D4x6Ph/T0dDweDzabDZvNhsViMSpeyaiBEEICpjirQqamaUbIVFUVVVUJh8PG94UQJx8wzWYzFosFi8WC1Wo1wqWiKDIPUwiBDJGLs7Lhi1IUBbPZjNVqlYApRD8vpjObzcaHxWKRRT5CCAmY4uxuALsO05nNZnRdB2R4XIj+vpiLnmcSLIUQMkQuOBeGyrt+3vX/Qoj+2WO261xLWUQnhEB6MMW5tMm6NHhCfHn7zwohhPRgCiGEoD+2LRJCCKRUpBBCCKQsqxBCAqYQQgghhBASMIUQQgghhARMIYQQQgghAVMIIYQQQggJmEIIIYQQQgKmEEIIIYSQgCmEEEIIISRgCiGEEEIIIQFTCCGEEEJIwBRCCCGEEBIwhRBCCCGEkIAphBBCCCEkYAohhBBCiDPZ/wfVAV9ettSpjAAAAABJRU5ErkJggg==";
|
|
28
|
+
/** step2-share-dialog.png(20520 バイト) */
|
|
29
|
+
exports.MEET_SHARE_STEP2 = "data:image/png;base64,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";
|
package/dist/render.js
CHANGED
|
@@ -26,6 +26,7 @@ exports.ingestedAtOf = ingestedAtOf;
|
|
|
26
26
|
exports.keyMissingText = keyMissingText;
|
|
27
27
|
exports.deriveCapTile = deriveCapTile;
|
|
28
28
|
exports.renderConnectionMap = renderConnectionMap;
|
|
29
|
+
const meet_guide_images_1 = require("./meet-guide-images");
|
|
29
30
|
/** SiteDataを単一の自己完結HTML(埋め込みデータ+CSS+JS)にレンダリングする */
|
|
30
31
|
function renderSite(site) {
|
|
31
32
|
// </script> によるブレイクアウトを防ぐため < をエスケープして埋め込む
|
|
@@ -2709,6 +2710,23 @@ a.ds-name:hover { text-decoration: underline; }
|
|
|
2709
2710
|
.mt-share-title { font-size: 12.5px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
|
|
2710
2711
|
/* 共有すると何が起きるかの1行。**説明文より強く出す**(.ds-scope-note と同じ理由) */
|
|
2711
2712
|
.mt-share-note { color: var(--text); margin-top: 6px; }
|
|
2713
|
+
/* 「全部見られてしまうのでは」への答え(2026-08-29 オーナー確定文)。
|
|
2714
|
+
**手順より前に置く。** 読む人が「共有しようか」と迷うのは手順を踏む前で、
|
|
2715
|
+
手順(画像2枚ぶん長い)の後ろに置くと、迷ったまま読み進むことになる。
|
|
2716
|
+
警告帯(.draft-note)と同じ系統の色で、注意書きだと一目で分かる形にする */
|
|
2717
|
+
.mt-privacy {
|
|
2718
|
+
margin: 8px 0 0; padding: 8px 10px;
|
|
2719
|
+
background: #fffbeb; border: 1px solid #fcd34d; border-radius: 6px;
|
|
2720
|
+
color: #92400e; line-height: 1.8;
|
|
2721
|
+
}
|
|
2722
|
+
/* フォルダを探す手間をなくすリンク。検索URLなので**誰のドライブでも1本で効く**
|
|
2723
|
+
(フォルダIDは人ごとに違うので、固定URLは作れない) */
|
|
2724
|
+
.mt-share-open { display: inline-block; margin: 6px 0 2px; font-weight: 700; }
|
|
2725
|
+
/* 手順の番号つきリスト。**文章だけで完結させる**(画像はその補助) */
|
|
2726
|
+
.mt-share-steps { margin: 6px 0 0; padding-left: 1.3em; }
|
|
2727
|
+
.mt-share-steps li { margin: 4px 0; }
|
|
2728
|
+
/* 手順の画像。モーダルの中なので幅で潰れないようにし、枠で「画面の写し」だと分かるようにする */
|
|
2729
|
+
.mt-shot { display: block; max-width: 100%; height: auto; margin: 6px 0 0; border: 1px solid var(--border); border-radius: 6px; }
|
|
2712
2730
|
/* 0件を黙って見せない(追加フォームだけだと「未登録」か「読めていない」か区別できない) */
|
|
2713
2731
|
.ds-empty { color: var(--muted); font-size: 12.5px; margin: 4px 0 10px; }
|
|
2714
2732
|
.sec-input { width: 100%; box-sizing: border-box; font-size: 13px; padding: 7px 10px; margin-bottom: 8px; border: 1px solid var(--border); border-radius: 6px; background: #fff; color: var(--text); }
|
|
@@ -3050,6 +3068,20 @@ ${deriveCapTile.toString()}
|
|
|
3050
3068
|
* 議事録の取り込みでも同じアカウントを使っている。
|
|
3051
3069
|
*/
|
|
3052
3070
|
var DRIVE_INGEST_ACCOUNT = "cortex-notetaker@classmethod.jp";
|
|
3071
|
+
/**
|
|
3072
|
+
* 自分の「Meet Recordings」フォルダへの入口。
|
|
3073
|
+
*
|
|
3074
|
+
* **フォルダIDは人ごとに違うので、フォルダを直接指すURLは作れない。** 代わりに
|
|
3075
|
+
* ドライブの検索URLを使う——開いた人のドライブの中で検索が走るので、**1本で全員に効く**。
|
|
3076
|
+
* フォルダはマイドライブ直下にでき、日本語環境でも名前は英語のまま作られる。
|
|
3077
|
+
*
|
|
3078
|
+
* **共有ダイアログを直接開くURLは無い。** リンクの先で「右クリック → 共有」の1手が要ることは、
|
|
3079
|
+
* 押す前に画面へ書く(リンクだけ置くと、開いた先で止まる人が出る)。
|
|
3080
|
+
*/
|
|
3081
|
+
var MEET_FOLDER_SEARCH_URL = "https://drive.google.com/drive/search?q=type:folder%20Meet%20Recordings";
|
|
3082
|
+
// 手順の画像(data URI)。中身と埋め込み方の理由は src/meet-guide-images.ts に書いてある
|
|
3083
|
+
var MEET_SHOT_STEP1 = "${meet_guide_images_1.MEET_SHARE_STEP1}";
|
|
3084
|
+
var MEET_SHOT_STEP2 = "${meet_guide_images_1.MEET_SHARE_STEP2}";
|
|
3053
3085
|
|
|
3054
3086
|
function copyRow(text) {
|
|
3055
3087
|
// **input と button を使わない。** 追加フォームの中に置くので、input を足すと
|
|
@@ -4102,6 +4134,33 @@ ${deriveCapTile.toString()}
|
|
|
4102
4134
|
return order;
|
|
4103
4135
|
}
|
|
4104
4136
|
|
|
4137
|
+
/**
|
|
4138
|
+
* 会議名に入れる目印。**案件が宣言した合図が優先で、無ければ艦隊キー。**
|
|
4139
|
+
*
|
|
4140
|
+
* 人が打つのは案件が決めた合図(艦隊キーは長くてカレンダーに打てないので meetingKey で
|
|
4141
|
+
* 短くしている)。**自動取り込みが動いているときだけ**返す——手動運用の案件に
|
|
4142
|
+
* 会議名の条件を出すと、自動で拾われると誤解させる。
|
|
4143
|
+
*
|
|
4144
|
+
* ここに集めているのは、**同じ値を2箇所(目印の案内とプライバシーの注釈)で出す**ため。
|
|
4145
|
+
* 別々に導出すると、片方だけ艦隊キーのままになる事故が起きる
|
|
4146
|
+
*/
|
|
4147
|
+
function meetingSignalOf(s) {
|
|
4148
|
+
if (!s || s.kind !== "会議" || s.ingestState !== "on") return null;
|
|
4149
|
+
return s.meetingKey || (SITE.intake && SITE.intake.projectKey) || null;
|
|
4150
|
+
}
|
|
4151
|
+
|
|
4152
|
+
/**
|
|
4153
|
+
* 経過措置で登録された会議名(別名)。**目印が無くてもこの名前の会議は取り込まれる。**
|
|
4154
|
+
*
|
|
4155
|
+
* 目印の導出と同じく1箇所にまとめる——別名の一覧(.ds-legacy)と、
|
|
4156
|
+
* プライバシーの注釈(.mt-privacy)が**同じ条件で出る**必要があるため。
|
|
4157
|
+
* 片方だけ出ると、注釈の「上に並ぶ登録済みの会議名」が指す先が画面に無くなる
|
|
4158
|
+
*/
|
|
4159
|
+
function meetingAliasesOf(s) {
|
|
4160
|
+
if (!s || s.kind !== "会議" || s.ingestState !== "on") return [];
|
|
4161
|
+
return s.meetingAliases || [];
|
|
4162
|
+
}
|
|
4163
|
+
|
|
4105
4164
|
/**
|
|
4106
4165
|
* 会議の取り込みの案内。**操作ではなく条件を示す。**
|
|
4107
4166
|
*
|
|
@@ -4111,7 +4170,7 @@ ${deriveCapTile.toString()}
|
|
|
4111
4170
|
*
|
|
4112
4171
|
* ②の材料を画面が出さないと、招待したのに届かない理由が分からない。
|
|
4113
4172
|
*/
|
|
4114
|
-
function meetingHowTo() {
|
|
4173
|
+
function meetingHowTo(s) {
|
|
4115
4174
|
// **2つの条件がANDであることを、読み飛ばせない形で出す。** 散文で並べていたときに
|
|
4116
4175
|
// 「会議名は合っているのにBotを招待しておらず取り込まれなかった」事故が実際に起きた。
|
|
4117
4176
|
// 会議名の条件は上の行(ds-keys)が出すので、ここでは「上の語」と参照するに留める。
|
|
@@ -4122,7 +4181,7 @@ ${deriveCapTile.toString()}
|
|
|
4122
4181
|
ul.appendChild(el("li", { text: "会議名に上の目印が入っている" }));
|
|
4123
4182
|
wrap.appendChild(ul);
|
|
4124
4183
|
wrap.appendChild(el("p", { text: "どちらか一方だけでは取り込まれません。" }));
|
|
4125
|
-
wrap.appendChild(meetingFolderShare());
|
|
4184
|
+
wrap.appendChild(meetingFolderShare(meetingSignalOf(s), meetingAliasesOf(s).length));
|
|
4126
4185
|
return wrap;
|
|
4127
4186
|
}
|
|
4128
4187
|
|
|
@@ -4142,12 +4201,72 @@ ${deriveCapTile.toString()}
|
|
|
4142
4201
|
* 見えないことは別なので、両方を1行で正直に書く。
|
|
4143
4202
|
*/
|
|
4144
4203
|
// 注: ここは埋め込みJSのテンプレートリテラル内。コメントでもバッククォートを使わない
|
|
4145
|
-
function meetingFolderShare() {
|
|
4204
|
+
function meetingFolderShare(signal, aliasCount) {
|
|
4146
4205
|
var box = el("div", { class: "mt-share" });
|
|
4147
4206
|
box.appendChild(el("div", { class: "mt-share-title", text: "毎回の招待をやめる方法(会議の主催者向け・任意)" }));
|
|
4148
4207
|
box.appendChild(el("p", { text: "自分の Google ドライブにある「Meet Recordings」フォルダを、下のアカウントに「閲覧者」で1回だけ共有すると、以後あなたが主催する会議は招待が要らなくなります。会議名の目印はこれまでどおり必要です。" }));
|
|
4149
4208
|
box.appendChild(copyRow(DRIVE_INGEST_ACCOUNT));
|
|
4209
|
+
|
|
4210
|
+
/*
|
|
4211
|
+
* 🔴 **「全部見られてしまうのでは」に答える**(2026-08-29 オーナー確定文・表記も含めて変えない)。
|
|
4212
|
+
*
|
|
4213
|
+
* すぐ下の注記(.mt-share-note)は「**取り込むか**」に答えていて、
|
|
4214
|
+
* 「**見るのか**」に答えていない。共有をためらう理由はそちらなので、専用に1行置く。
|
|
4215
|
+
*
|
|
4216
|
+
* **実装と一致していることを確かめてある**(apps-script/src/Main.gs:79-102・
|
|
4217
|
+
* Router.gs:65-91・Transcripts.gs の getMeetingName_):
|
|
4218
|
+
* - 振り分けに使うのは file.getName()(ファイル名)だけ
|
|
4219
|
+
* - 当たるのは**目印**(meetingNameHasKey_)**または別名の完全一致**
|
|
4220
|
+
* (meetingNameIsAlias_)の2通り。**別名は目印が要らない**
|
|
4221
|
+
* - どちらにも当たらないファイルは getTranscriptText_(Docs のエクスポート)を
|
|
4222
|
+
* 呼ぶ前に return する=**中身を開かない**
|
|
4223
|
+
* - どのリポジトリにも Slack にも書かない
|
|
4224
|
+
*
|
|
4225
|
+
* 🔴 **最初の版は「目印が入っていないメモは開かない」と書いて嘘になっていた**
|
|
4226
|
+
*(別名の経路を見落としていた)。しかも同じカードの .ds-legacy が
|
|
4227
|
+
* 「目印が無くても取り込まれます」と並んで出ていた——**カードが自分を否定していた**。
|
|
4228
|
+
* 文言を触るときは、必ず Router.gs の照合の**2通り**を見直すこと
|
|
4229
|
+
*/
|
|
4230
|
+
var mark = signal ? "案件の目印([" + signal + "] など)" : "案件の目印";
|
|
4231
|
+
// **別名が1件も無い案件では「上に並ぶ登録済みの会議名」が画面に存在しない。**
|
|
4232
|
+
// 指す先が無いものを指すと、そこがまた嘘になるので、その句だけを機械的に落とす
|
|
4233
|
+
//(新しい言い回しは足さない)
|
|
4234
|
+
var scope = aliasCount
|
|
4235
|
+
? mark + "と、上に並ぶ登録済みの会議名——このどちらにも当てはまらない"
|
|
4236
|
+
: mark + "に当てはまらない";
|
|
4237
|
+
box.appendChild(el("p", {
|
|
4238
|
+
class: "mt-privacy",
|
|
4239
|
+
text: "⚠ 共有を開始すると、bot はこのフォルダのファイル名だけを見ます。" + scope +
|
|
4240
|
+
"メモは、中身を開きません。読み取りも保存も行わないので、1on1や面談のメモがどこかに残ることはありません。",
|
|
4241
|
+
}));
|
|
4242
|
+
|
|
4243
|
+
// **フォルダを探すところから助ける。** フォルダIDは人ごとに違うので固定URLは作れないが、
|
|
4244
|
+
// 検索URLなら**1本で全員に効く**(開いた人のドライブの中で検索が走る)。
|
|
4245
|
+
// **共有ダイアログを直接開くURLは作れない**ので、リンクの先で1手かかることを
|
|
4246
|
+
// 押す前に書いておく(押した先で迷子にしない)
|
|
4247
|
+
box.appendChild(el("a", {
|
|
4248
|
+
class: "mt-share-open", href: MEET_FOLDER_SEARCH_URL, target: "_blank", rel: "noopener",
|
|
4249
|
+
text: "自分の「Meet Recordings」フォルダを開く →",
|
|
4250
|
+
}));
|
|
4251
|
+
var steps = el("ol", { class: "mt-share-steps" });
|
|
4252
|
+
steps.appendChild(el("li", { text: "上のリンクを開くと、自分のドライブの中から「Meet Recordings」フォルダが検索されます。" }));
|
|
4253
|
+
steps.appendChild(el("li", { text: "そのフォルダを右クリック(または右上の ⋮)して「共有」→「共有」を選びます。" }, [
|
|
4254
|
+
// **寸法を属性で書く。** 書かないと、モーダルを開いた瞬間に画像の高さのぶんだけ
|
|
4255
|
+
// 下の手順がずれる。loading=lazy は付けない——**data: URI には取得が無いので
|
|
4256
|
+
// 何もしない**のに、付いていると「遅延読み込みしている」という誤解が仕様として残る
|
|
4257
|
+
el("img", { class: "mt-shot", src: MEET_SHOT_STEP1, width: "664", height: "425",
|
|
4258
|
+
alt: "Googleドライブの検索結果。Meet Recordings フォルダのメニューで「共有」を選び、右に開いたサブメニューの「共有」を指している画面。" }),
|
|
4259
|
+
]));
|
|
4260
|
+
steps.appendChild(el("li", { text: "上のアカウントを貼り付け、権限を「閲覧者」にして「共有」を押します(通知のチェックは外して構いません)。" }, [
|
|
4261
|
+
el("img", { class: "mt-shot", src: MEET_SHOT_STEP2, width: "425", height: "220",
|
|
4262
|
+
alt: "「Meet Recordings」を共有するダイアログ。宛先に cortex-notetaker のアカウントが入り、権限が「閲覧者」に設定され、右下に「共有」ボタンがある画面。" }),
|
|
4263
|
+
]));
|
|
4264
|
+
box.appendChild(steps);
|
|
4265
|
+
|
|
4266
|
+
// 権限の話(**bot から見える状態になる**)は、挙動の話(⚠ の注釈)と隣に置かない。
|
|
4267
|
+
// 並べると「見ない」→「見える」と続いて、正本が丁寧に分けている区別が消える
|
|
4150
4268
|
box.appendChild(el("p", { class: "mt-share-note", text: "共有すると、そのフォルダに入る会議メモは bot から見える状態になります(実際に取り込まれるのは、会議名に目印が入っている会議だけです)。" }));
|
|
4269
|
+
|
|
4151
4270
|
return box;
|
|
4152
4271
|
}
|
|
4153
4272
|
|
|
@@ -5479,13 +5598,10 @@ ${deriveCapTile.toString()}
|
|
|
5479
5598
|
//
|
|
5480
5599
|
// **括弧を付けた形で出す。** 語だけ見せると 【KC定例】 のように混ぜて書かれ、
|
|
5481
5600
|
// どこも一致せず未仕分けへ落ちる(実際に起きた)。そのままコピーできる形にする。
|
|
5482
|
-
var signal = null;
|
|
5483
5601
|
// **自動取り込みが動いているときだけ出す。** Teams等で手動運用している案件に
|
|
5484
5602
|
// 会議名の条件を出すと、自動で拾われると誤解させる(実際には拾われない)。
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
}
|
|
5488
|
-
var aliases = (s.kind === "会議" && s.ingestState === "on" && s.meetingAliases) || [];
|
|
5603
|
+
var signal = meetingSignalOf(s);
|
|
5604
|
+
var aliases = meetingAliasesOf(s);
|
|
5489
5605
|
if (signal) {
|
|
5490
5606
|
// **カードで一番強い要素にする(#117)。** 実機で見たとき、目印の案内が
|
|
5491
5607
|
// 別名の一覧や注記と同じ細字で並んでいて、「まず会議名にこれを入れる」が
|
|
@@ -7394,7 +7510,7 @@ ${deriveCapTile.toString()}
|
|
|
7394
7510
|
// つまり「tools: teams なのに enabled: true」なら**実際に取り込まれる**ので、
|
|
7395
7511
|
// 宣言で隠すと、動いているのに説明が出ない状態になる。
|
|
7396
7512
|
if (s.kind === "会議" && s.ingestState === "on") {
|
|
7397
|
-
box.appendChild(meetingHowTo());
|
|
7513
|
+
box.appendChild(meetingHowTo(s));
|
|
7398
7514
|
// **会議名の登録を画面から変える口は置かない(#117 第2弾)。**
|
|
7399
7515
|
// 別名は括弧付きの合図運用へ移った際の経過措置で、既存案件のメンバーに定例の
|
|
7400
7516
|
// 改名を強いないために置いたもの。第1弾では「既に別名がある案件にだけ追加口を出す」
|
|
@@ -10459,8 +10575,10 @@ ${deriveCapTile.toString()}
|
|
|
10459
10575
|
if (e.kind !== "add") {
|
|
10460
10576
|
if (e.before) box.appendChild(ahDiffEl("変更前(消えた行)", e.before));
|
|
10461
10577
|
if (e.after) box.appendChild(ahDiffEl("変更後(増えた行)", e.after));
|
|
10462
|
-
// **空欄で済ませない。**
|
|
10463
|
-
|
|
10578
|
+
// **空欄で済ませない。** ビルドは「中身が変わっていないと言い切れる変更」
|
|
10579
|
+
//(権限だけの変更・純粋な移動)はエントリにしないので、ここへ来るのは
|
|
10580
|
+
// **中身は変わったのに差分を出せなかった**もの(記録を binary 扱いにしている案件・
|
|
10581
|
+
// 履歴の窓の外)だけ。落とすと本物の変更が黙って消えるので、断りを出して残す
|
|
10464
10582
|
if (!e.before && !e.after) {
|
|
10465
10583
|
box.appendChild(el("div", { class: "ah-line", text: "変わった行をここに出せませんでした。コミットを開くと中身を確認できます。" }));
|
|
10466
10584
|
}
|
|
@@ -10483,7 +10601,7 @@ ${deriveCapTile.toString()}
|
|
|
10483
10601
|
// 🔴 何を見せていて、何を見せられないのかを最後に断る
|
|
10484
10602
|
det.appendChild(el("p", {
|
|
10485
10603
|
class: "ah-source",
|
|
10486
|
-
text: "この一覧はリポジトリの変更履歴(コミット)から作っています。AI
|
|
10604
|
+
text: "この一覧はリポジトリの変更履歴(コミット)から作っています。AIがなぜそう直したかの根拠は履歴に残らないため、変わった行とコミットだけを出しています。ファイルの移動やデータ構造の入れ替えなど、記録の中身が変わっていない変更は出していません。件数が多いときは新しいほうから5件までです。",
|
|
10487
10605
|
}));
|
|
10488
10606
|
return det;
|
|
10489
10607
|
}
|
package/dist/repo.js
CHANGED
|
@@ -4,7 +4,8 @@ exports.AI_HISTORY_MAX_ENTRIES = void 0;
|
|
|
4
4
|
exports.resolveRepo = resolveRepo;
|
|
5
5
|
exports.latestGeneratedPaths = latestGeneratedPaths;
|
|
6
6
|
exports.normalizeToHttps = normalizeToHttps;
|
|
7
|
-
exports.
|
|
7
|
+
exports.classifyCommit = classifyCommit;
|
|
8
|
+
exports.isFrontmatterKeyRename = isFrontmatterKeyRename;
|
|
8
9
|
exports.collectAiChangeHistory = collectAiChangeHistory;
|
|
9
10
|
const node_child_process_1 = require("node:child_process");
|
|
10
11
|
/**
|
|
@@ -123,6 +124,8 @@ function normalizeToHttps(url) {
|
|
|
123
124
|
//
|
|
124
125
|
// 例外は全部握って空を返す(latestGeneratedPaths と同じ規律)。浅い clone・git 無し・
|
|
125
126
|
// メッセージ規約の変更 → 「履歴の節が出ない」だけで、他の表示は壊れない。
|
|
127
|
+
/** ファイル節の始まりの印 */
|
|
128
|
+
const DIFF_HEADER = "diff --" + "git ";
|
|
126
129
|
/** 行頭に置いてコミットの境目を見分ける印。差分もパスも NUL では始まらない */
|
|
127
130
|
const NUL = "\u0000";
|
|
128
131
|
/** コミット1行の中の区切り(Unit Separator)。コミットメッセージに現れない制御文字を選ぶ */
|
|
@@ -135,29 +138,30 @@ exports.AI_HISTORY_MAX_ENTRIES = 5;
|
|
|
135
138
|
const AI_HISTORY_MAX_DIFF_CHARS = 2000;
|
|
136
139
|
/** レコードのパスの形。README・雛形はレコードではない */
|
|
137
140
|
const RECORD_PATH = /^Cortex\/[^/]+\/records\/[^/]+\.md$/;
|
|
138
|
-
/** 探索範囲(git の pathspec)。README や Context 配下の差分は最初から出力に入れない */
|
|
139
|
-
const RECORD_PATHSPEC = "Cortex/*/records/*.md";
|
|
140
141
|
/**
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* `deleteCommitMessage` = 「レコード削除: …」。logic.mjs:407,713)。その author は
|
|
146
|
-
* 共有トークンの持ち主で全員同じになる(index.mjs のコメント)。bot 名義だけで判定すると、
|
|
147
|
-
* **人が「確認済みにする」を押した操作が「AIによる変更」として画面に出る**。
|
|
148
|
-
* レコードのファイルを書き換える op はこの2つだけなので、件名で先に落とす。
|
|
149
|
-
*
|
|
150
|
-
* 判定は上から順に:
|
|
151
|
-
* 1. 件名が**人の操作の口**の規約 → 人
|
|
152
|
-
* 2. 件名が**夜間パイプライン**の規約 → AI(author が PAT 名義でも拾える)
|
|
153
|
-
* 3. author が bot 名義 → AI
|
|
154
|
-
* 4. それ以外 → 人(GitHub や手元から人が直接直したもの)
|
|
142
|
+
* 下の pathspec が git 側で拾う範囲。**`RECORD_PATH` より広い。**
|
|
143
|
+
* git の pathspec の `*` は `/` をまたぐので、`Cortex/A/records/sub/x.md` のような
|
|
144
|
+
* 入れ子も git は選ぶ。**パス2へ渡す件数はこちらで数える**——狭いほうで数えると
|
|
145
|
+
* 窓が浅くなり、**窓の端の本物の変更が黙って消える**(レビューで指摘された潜在の欠陥)。
|
|
155
146
|
*/
|
|
156
|
-
|
|
147
|
+
const PATHSPEC_MATCH = /^Cortex\/.*\/records\/.*\.md$/;
|
|
148
|
+
/** 探索範囲(git の pathspec)。README や Context 配下の差分は最初から出力に入れない */
|
|
149
|
+
const RECORD_PATHSPEC = "Cortex/*/records/*.md";
|
|
150
|
+
function classifyCommit(id) {
|
|
157
151
|
const subject = id.subject || "";
|
|
158
152
|
// 1. 人の操作の代理(infra/lambda/intake/logic.mjs の promoteCommitMessage / deleteCommitMessage)
|
|
159
153
|
if (/^(Gold確認|レコード削除)[::]/.test(subject))
|
|
160
|
-
return
|
|
154
|
+
return "human";
|
|
155
|
+
// 2. データ構造の引っ越し。実データの件名は「エンジンマイグレーションを適用(schema_version更新)」。
|
|
156
|
+
//
|
|
157
|
+
// 🔴 **素の部分一致にしない(頭に錨を打ち、bot 名義とのANDにする)。** 夜間パイプラインの件名は
|
|
158
|
+
// **レコードの見出しを埋め込む**(実データ: 「用語集にPMプレイブック・オーケストレーター・
|
|
159
|
+
// keystoneをdraftで追加」)。素の部分一致だと、「スキーマ移行」「DBマイグレーション」という
|
|
160
|
+
// **用語が1つ登録された晩**に、そのコミットが起票したレコードが全部(実データで最大29件)
|
|
161
|
+
// 履歴から消える——しかも消えたことは画面に出ない。下の規則3が同じ理由で接頭辞に限っている。
|
|
162
|
+
if (looksLikeBot(id) && /^(エンジン)?マイグレーション|^スキーマ移行|^schema[_-]?version|^(apply\s+)?[a-z ]*migration/i.test(subject)) {
|
|
163
|
+
return "migration";
|
|
164
|
+
}
|
|
161
165
|
// 2. 夜間パイプライン(cortex-engine)の規約。**コロンより前(接頭辞)だけを見る。**
|
|
162
166
|
// 素の部分一致にすると「自動生成された用語を手で直した」「週次整理の取りこぼしを補完」
|
|
163
167
|
// のような**人が書いた件名**まで AI に倒れ、顧客の画面に「AIがこの記録を書き換えました」と
|
|
@@ -171,11 +175,81 @@ function isAiCommit(id) {
|
|
|
171
175
|
// ——夜間パイプラインは GitHub Actions の bot 名義でコミットするため。
|
|
172
176
|
const scope = /^([^::]{1,40})[::]/.exec(subject);
|
|
173
177
|
if (scope && /自動追記|自動生成|週次整理/.test(scope[1]))
|
|
174
|
-
return
|
|
175
|
-
//
|
|
176
|
-
|
|
177
|
-
|
|
178
|
+
return "ai";
|
|
179
|
+
// 4. bot 名義
|
|
180
|
+
return looksLikeBot(id) ? "ai" : "human";
|
|
181
|
+
}
|
|
182
|
+
/** 夜間パイプラインの名義(GitHub Actions の bot) */
|
|
183
|
+
function looksLikeBot(id) {
|
|
184
|
+
return /\[bot\]|github-actions/i.test(`${id.name || ""} ${id.email || ""}`);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* 🔴 **フロントマターの「項目名だけ」が変わった差分か。**(purpose に依存しない構造の規則)
|
|
188
|
+
*
|
|
189
|
+
* 消えた行と増えた行が**すべて `key: value` の形**で、**値の集合が変わっていない**なら、
|
|
190
|
+
* それは項目名の付け替え=データ構造の引っ越しであって、記録の内容の変化ではない。
|
|
191
|
+
* 実データの `summary: "X"` → `description: "X"` はこれで落ちる。件名の書き方が
|
|
192
|
+
* 変わっても落ちるので、上の件名の規則の**裏取り**になる。
|
|
193
|
+
*
|
|
194
|
+
* 一方 `definition: 旧` → `definition: 新`(本物の精製)は**値が変わる**ので残る。
|
|
195
|
+
*
|
|
196
|
+
* **片側だけの変更(追加だけ・削除だけ)は対象にしない。** 「フロントマターに項目が
|
|
197
|
+
* 1つ増えた」を機械的に落とすと、AIが definition や aliases を足した**本物の精製まで消える**。
|
|
198
|
+
* 実データの「`status:` 行の後付け」はこの規則では落とさず、件名の規則に任せる——
|
|
199
|
+
* **構造の規則は「内容が変わっていないと証明できるもの」だけに限る。**
|
|
200
|
+
*/
|
|
201
|
+
// ⚠️ 名前は「フロントマターの」だが、**見ているのは差分の行だけで、その行が
|
|
202
|
+
// frontmatter の内側かどうかは判定していない**(差分だけでは境界が分からない)。
|
|
203
|
+
// 本文に `key: value` の形の行があり、値を保ったままキーだけ変える変更は落ちる。
|
|
204
|
+
// 実データではその形は1件も無いが、そういう規則だと承知して使うこと。
|
|
205
|
+
function isFrontmatterKeyRename(before, after) {
|
|
206
|
+
const lines = (t) => t.split("\n").filter((l) => l.trim() !== "");
|
|
207
|
+
const bs = lines(before);
|
|
208
|
+
const as = lines(after);
|
|
209
|
+
if (!bs.length || !as.length)
|
|
210
|
+
return false;
|
|
211
|
+
const KEY_VALUE = /^\s*([A-Za-z_][\w-]*)\s*:\s*(.*)$/;
|
|
212
|
+
const parse = (arr) => {
|
|
213
|
+
const keys = [];
|
|
214
|
+
const values = [];
|
|
215
|
+
for (const l of arr) {
|
|
216
|
+
const m = KEY_VALUE.exec(l);
|
|
217
|
+
if (!m)
|
|
218
|
+
return null;
|
|
219
|
+
keys.push(m[1]);
|
|
220
|
+
values.push(m[2].trim());
|
|
221
|
+
}
|
|
222
|
+
return { keys, values };
|
|
223
|
+
};
|
|
224
|
+
const b = parse(bs);
|
|
225
|
+
const a = parse(as);
|
|
226
|
+
if (!b || !a)
|
|
227
|
+
return false;
|
|
228
|
+
const same = (x, y) => x.length === y.length && [...x].sort().join("\u0000") === [...y].sort().join("\u0000");
|
|
229
|
+
// 値が同じで、項目名が変わっている=付け替え
|
|
230
|
+
return same(b.values, a.values) && !same(b.keys, a.keys);
|
|
178
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* 改名の検出。**90% 一致以上を改名とみなす。**
|
|
234
|
+
*
|
|
235
|
+
* 100%(完全一致だけ)も検討したが、**実データで唯一の「本物の改名」を取りこぼす**ことが
|
|
236
|
+
* 分かったのでやめた。カナリアの全履歴を数えた結果:
|
|
237
|
+
*
|
|
238
|
+
* 50% → 117件 / 90% → 117件 / 100% → 116件
|
|
239
|
+
* 100% だけが落とすもの: R096 gold-external-sources.json.md → dev-sources.json.md
|
|
240
|
+
* (同じ用語の正真正銘の改名。差分は id: の1行だけ。100% だと削除+追加に割れ、
|
|
241
|
+
* 削除で打ち切られて**改名前の起票が丸ごと消える**——直そうとしている症状そのもの)
|
|
242
|
+
*
|
|
243
|
+
* **50% まで下げても増える改名は1件も無い**(=この案件に「似た別レコードが繋がる」形は無い)。
|
|
244
|
+
* それでも 90% に留めるのは、**誤検出の被害が重い**から——別々の記録が繋がると
|
|
245
|
+
* 「人が消した本文が別の記録のページに出る」(0.12.15 の実装レビューで直した失敗)が再発する。
|
|
246
|
+
* Gold のレコードで別々の記録が9割一致することは事実上ないので、ここが安全と実用の折り合い。
|
|
247
|
+
*
|
|
248
|
+
* 🔴 **閾値を動かすときは readDiffs の --diff-filter と mCount の数え方も一緒に見ること。**
|
|
249
|
+
* 100% 未満の改名は**中身も変わっている**ので、差分を取って「書き換え」として出す必要がある。
|
|
250
|
+
* 揃えないと、人が「改名しながら中身も直した」変更が**無音で消える**。
|
|
251
|
+
*/
|
|
252
|
+
const RENAME_OPT = "--find-renames=90%";
|
|
179
253
|
/** git log を1回。失敗(git 無し・リポジトリでない・出力が大きすぎる)は空文字にする */
|
|
180
254
|
function gitLog(cwd, args) {
|
|
181
255
|
try {
|
|
@@ -197,6 +271,9 @@ function gitLog(cwd, args) {
|
|
|
197
271
|
"-c", "core.quotepath=false",
|
|
198
272
|
"-c", "log.showSignature=false",
|
|
199
273
|
"-c", "color.ui=false",
|
|
274
|
+
// 改名検出の探索上限(既定1000)。**読む人の設定で改名が黙って切れる**のを防ぐ。
|
|
275
|
+
// pathspec でレコードだけに絞ってあるので、実際に比べる数は多くても数百
|
|
276
|
+
"-c", "diff.renameLimit=100000",
|
|
200
277
|
...args,
|
|
201
278
|
], {
|
|
202
279
|
cwd,
|
|
@@ -227,10 +304,13 @@ function readCommits(cwd) {
|
|
|
227
304
|
const out = gitLog(cwd, [
|
|
228
305
|
"log",
|
|
229
306
|
`-n${AI_HISTORY_MAX_COMMITS}`,
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
//
|
|
233
|
-
|
|
307
|
+
// 🔴 **改名を検出する(0.12.16)。** --no-renames だと `Cortex/用語集/` → `Cortex/Glossary/`
|
|
308
|
+
// のようなディレクトリの引っ越しが**削除+追加**に割れ、(1) 新パスに「AIがこの記録を
|
|
309
|
+
// 作成しました」が立ち (2) 旧パスは削除扱いで**移動より前の履歴が丸ごと消える**。
|
|
310
|
+
// 追跡は collectAiChangeHistory 側で1パスで行う(--follow は単一パス専用で、
|
|
311
|
+
// レコードごとに git を呼ぶことになり「ビルド1回につき2回」を壊す)。
|
|
312
|
+
// **log.follow=true を設定している人がいる**ので --no-follow も明示する
|
|
313
|
+
RENAME_OPT,
|
|
234
314
|
"--no-follow",
|
|
235
315
|
"--no-color",
|
|
236
316
|
// パス2と揃える(--name-status はテキスト差分を作らないので発火しないが、
|
|
@@ -262,31 +342,56 @@ function readCommits(cwd) {
|
|
|
262
342
|
if (!cur)
|
|
263
343
|
continue;
|
|
264
344
|
const m = /^([A-Z])\d*\t(.+)$/.exec(line);
|
|
265
|
-
if (m)
|
|
266
|
-
|
|
345
|
+
if (!m)
|
|
346
|
+
continue;
|
|
347
|
+
if (m[1] === "R") {
|
|
348
|
+
// 改名は「旧パス<TAB>新パス」の2列。行頭の `R100` の数字は一致度
|
|
349
|
+
const i = m[2].indexOf("\t");
|
|
350
|
+
if (i === -1)
|
|
351
|
+
continue;
|
|
352
|
+
const score = parseInt(/^R(\d+)/.exec(line)?.[1] || "", 10);
|
|
353
|
+
cur.files.push({
|
|
354
|
+
status: "R",
|
|
355
|
+
path: m[2].slice(i + 1),
|
|
356
|
+
from: m[2].slice(0, i),
|
|
357
|
+
score: Number.isFinite(score) ? score : undefined,
|
|
358
|
+
});
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
// 🔴 **複製(C)は改名と同じ扱いにしない。** 複製は**元ファイルが残る**ので、
|
|
362
|
+
// 対応表を張ると元レコードの履歴が複製先へ移り、**元のページが空になる**。
|
|
363
|
+
// いまは `--find-copies` を渡していないので届かない(`diff.renames=copies` が
|
|
364
|
+
// 設定されていても `--find-renames` が優先されることを実測で確認済み)。
|
|
365
|
+
// あとから複製検出を足す人は、ここで扱いを決めること
|
|
366
|
+
if (m[1] === "C")
|
|
367
|
+
continue;
|
|
368
|
+
cur.files.push({ status: m[1], path: m[2] });
|
|
267
369
|
}
|
|
268
370
|
return commits;
|
|
269
371
|
}
|
|
270
372
|
/**
|
|
271
373
|
* パス2: 変更(M)の差分だけ。鍵は `<sha>` + NUL + `<path>`。
|
|
272
374
|
*
|
|
273
|
-
* 🔴 **遡る件数はパス1が決める(`
|
|
274
|
-
* `--diff-filter
|
|
375
|
+
* 🔴 **遡る件数はパス1が決める(`changeCount` = パス1の窓に入った「変更または改名」のコミット数)。**
|
|
376
|
+
* `--diff-filter` は表示だけでなく**コミットの選択**にも効くので、ここで素の
|
|
275
377
|
* `-n400` を渡すと「変更のコミット 400 件」を探して**履歴の底まで歩き、その全部の
|
|
276
378
|
* パッチを生成する**——レコードの変更が少ないリポジトリほど無駄が大きく、
|
|
277
379
|
* 作った差分の大半はパス1の窓の外で一度も引かれない。
|
|
278
380
|
*
|
|
279
381
|
* パス1の窓は「レコードを触ったコミットの新しい 400 件」という連続した区間なので、
|
|
280
|
-
*
|
|
281
|
-
* だから `-n
|
|
382
|
+
* その中の該当コミットは**全体で最も新しい changeCount 件と一致する**。
|
|
383
|
+
* だから `-n changeCount` で必要十分(多くも少なくもならない)。
|
|
384
|
+
* **数え方は --diff-filter と必ず揃えること**(片方だけ変えると取りこぼす)。
|
|
282
385
|
*/
|
|
283
|
-
function readDiffs(cwd,
|
|
284
|
-
|
|
285
|
-
|
|
386
|
+
function readDiffs(cwd, changeCount) {
|
|
387
|
+
const empty = { diffs: new Map(), modeOnly: new Set() };
|
|
388
|
+
if (changeCount <= 0)
|
|
389
|
+
return empty;
|
|
286
390
|
const out = gitLog(cwd, [
|
|
287
391
|
"log",
|
|
288
|
-
`-n${
|
|
289
|
-
|
|
392
|
+
`-n${changeCount}`,
|
|
393
|
+
// パス1と**同じ改名の設定**にする(違えるとコミットの選択がずれ、mCount の前提が崩れる)
|
|
394
|
+
RENAME_OPT,
|
|
290
395
|
"--no-follow",
|
|
291
396
|
"--no-color",
|
|
292
397
|
// diff.external / GIT_EXTERNAL_DIFF が設定されていると差分が丸ごと別物になる
|
|
@@ -297,14 +402,38 @@ function readDiffs(cwd, mCount) {
|
|
|
297
402
|
"-p",
|
|
298
403
|
// 文脈行は要らない。**変わった行だけ**を出す(画面のラベルも「消えた行/増えた行」)
|
|
299
404
|
"-U0",
|
|
300
|
-
|
|
405
|
+
// **M だけでなく R も取る。** 100% 未満の改名は中身も変わっているので、その差分が要る
|
|
406
|
+
//(純粋な改名は R でもパッチを持たないので、ここに入っても何も増えない)
|
|
407
|
+
"--diff-filter=MR",
|
|
301
408
|
`--format=%x00%H`,
|
|
302
409
|
"--",
|
|
303
410
|
RECORD_PATHSPEC,
|
|
304
411
|
]);
|
|
305
412
|
const diffs = new Map();
|
|
413
|
+
/**
|
|
414
|
+
* 🔴 **「中身は本当に変わっていない」と言い切れるものだけを集める。**
|
|
415
|
+
* テキスト差分が出ない節は3種類あり、意味がまったく違う:
|
|
416
|
+
*
|
|
417
|
+
* old mode / new mode … **権限だけの変更**。中身は変わっていない(ここに入れる)
|
|
418
|
+
* Binary files … differ … **中身は変わったが、差分を出せない**(.gitattributes の -diff)
|
|
419
|
+
* similarity index 100% … 純粋な改名(R のスコアで分かるので、ここでは扱わない)
|
|
420
|
+
*
|
|
421
|
+
* これを区別せずに「差分が空なら落とす」とすると、`*.md` を -diff にしている案件で
|
|
422
|
+
* **本物の書き換えが丸ごと消える**(レビューで指摘された潜在の欠陥)。
|
|
423
|
+
*/
|
|
424
|
+
const modeOnly = new Set();
|
|
306
425
|
let sha = "";
|
|
307
426
|
let cur = null;
|
|
427
|
+
/** いまのファイル節の新パス(`diff --git a/X b/Y` の Y)。`+++` が来たら確定して消す */
|
|
428
|
+
let headerPath = "";
|
|
429
|
+
let sawModeLine = false;
|
|
430
|
+
/** ファイル節の終わりで、テキスト差分が出なかった理由を確定する */
|
|
431
|
+
const closeSection = () => {
|
|
432
|
+
if (headerPath && sawModeLine && sha)
|
|
433
|
+
modeOnly.add(sha + NUL + headerPath);
|
|
434
|
+
headerPath = "";
|
|
435
|
+
sawModeLine = false;
|
|
436
|
+
};
|
|
308
437
|
// 🔴 **ヘッダの見分けは「位置」で決める。行の見た目で決めない。**
|
|
309
438
|
// 差分の中身は「符号1文字 + 元の行」なので、レコードに `++ …` という行があると
|
|
310
439
|
// `+++ …` に、`-- …` があると `--- …` になる——**ファイルのヘッダと区別が付かない**。
|
|
@@ -314,20 +443,30 @@ function readDiffs(cwd, mCount) {
|
|
|
314
443
|
let inHeader = false;
|
|
315
444
|
for (const line of out.split("\n")) {
|
|
316
445
|
if (line.startsWith(NUL)) {
|
|
446
|
+
closeSection();
|
|
317
447
|
sha = line.slice(1).trim();
|
|
318
448
|
cur = null;
|
|
319
449
|
inHeader = false;
|
|
320
450
|
continue;
|
|
321
451
|
}
|
|
322
|
-
if (line.startsWith(
|
|
452
|
+
if (line.startsWith(DIFF_HEADER)) {
|
|
453
|
+
closeSection();
|
|
323
454
|
cur = null;
|
|
324
455
|
inHeader = true;
|
|
456
|
+
// 権限だけの変更・binary は `+++` を出さないので、ここでしかパスを取れない。
|
|
457
|
+
// 接頭辞は --src-prefix / --dst-prefix で固定してあるので、` b/` の**最後の**
|
|
458
|
+
// 出現で割ればよい(レコード名に空白は入りうるが、` b/` は入らない)
|
|
459
|
+
const rest = line.slice(DIFF_HEADER.length);
|
|
460
|
+
const at = rest.lastIndexOf(" b/");
|
|
461
|
+
headerPath = at === -1 ? "" : rest.slice(at + 3);
|
|
325
462
|
continue;
|
|
326
463
|
}
|
|
327
464
|
if (inHeader) {
|
|
328
465
|
// パスは `+++ b/<path>` から取る(上の行は空白を含むパスで割れない)
|
|
329
466
|
if (line.startsWith("+++ ")) {
|
|
330
467
|
const p = line.slice(4).trim();
|
|
468
|
+
headerPath = "";
|
|
469
|
+
sawModeLine = false;
|
|
331
470
|
if (p === "/dev/null" || !sha) {
|
|
332
471
|
cur = null;
|
|
333
472
|
continue;
|
|
@@ -337,6 +476,8 @@ function readDiffs(cwd, mCount) {
|
|
|
337
476
|
diffs.set(sha + NUL + path, cur);
|
|
338
477
|
continue;
|
|
339
478
|
}
|
|
479
|
+
if (line.startsWith("old mode ") || line.startsWith("new mode "))
|
|
480
|
+
sawModeLine = true;
|
|
340
481
|
// 最初のハンク見出しでヘッダは終わり(index / old mode / `---` はここで捨てる)
|
|
341
482
|
if (line.startsWith("@@"))
|
|
342
483
|
inHeader = false;
|
|
@@ -353,7 +494,8 @@ function readDiffs(cwd, mCount) {
|
|
|
353
494
|
else if (line.startsWith("+"))
|
|
354
495
|
cur.after.push(line.slice(1));
|
|
355
496
|
}
|
|
356
|
-
|
|
497
|
+
closeSection();
|
|
498
|
+
return { diffs, modeOnly };
|
|
357
499
|
}
|
|
358
500
|
/** 長すぎる差分は丸める(site の JSON に丸ごと載るので上限が要る) */
|
|
359
501
|
function clampDiff(text) {
|
|
@@ -377,70 +519,166 @@ function collectAiChangeHistory(cwd) {
|
|
|
377
519
|
const commits = readCommits(cwd);
|
|
378
520
|
if (!commits.length)
|
|
379
521
|
return {};
|
|
380
|
-
// パス2に渡す件数を、パス1
|
|
381
|
-
|
|
522
|
+
// パス2に渡す件数を、パス1の窓に入った「変更または改名」のコミット数から数える。
|
|
523
|
+
// **readDiffs の --diff-filter と同じ集合を数えること**(片方だけ変えると差分を取りこぼす)
|
|
524
|
+
let changeCount = 0;
|
|
382
525
|
for (const c of commits) {
|
|
383
|
-
if (c.files.some((f) => f.status === "M" &&
|
|
384
|
-
|
|
526
|
+
if (c.files.some((f) => (f.status === "M" || f.status === "R") && PATHSPEC_MATCH.test(f.path)))
|
|
527
|
+
changeCount++;
|
|
385
528
|
}
|
|
386
|
-
const diffs = readDiffs(cwd,
|
|
529
|
+
const { diffs, modeOnly } = readDiffs(cwd, changeCount);
|
|
387
530
|
const history = {};
|
|
388
531
|
/**
|
|
389
|
-
* 🔴
|
|
390
|
-
*
|
|
391
|
-
*
|
|
392
|
-
*
|
|
532
|
+
* 🔴 **削除でそのパスの収集を打ち切る。鍵は「そのコミット時点の生パス」。**
|
|
533
|
+
*
|
|
534
|
+
* 新しい順に走っているので、削除より古い世代は**人が消したはずの内容**——同じパスに
|
|
535
|
+
* 記録が作り直されると、消したはずの本文が新しい記録のページに出てしまう。
|
|
536
|
+
*
|
|
537
|
+
* **正本パスで引いてはいけない。** 改名追跡を入れると別々の記録が同じ正本パスに写像されるので、
|
|
538
|
+
* 「削除で空いたパスに、あとから別の記録が改名で入ってくる」形で、
|
|
539
|
+
* **移動してきた生きている記録の履歴まで丸ごと消える**(実装レビューで捕まえた)。
|
|
540
|
+
* 生パスで持ち、改名を見たときに新→旧へ伝播させると、2つの形が順序で綺麗に分かれる:
|
|
541
|
+
*
|
|
542
|
+
* α 改名してから削除された(その記録は死んでいる)… `D 新` を R より先に見るので、
|
|
543
|
+
* R のとき gone に 新 が居る → 旧へ伝播して古い履歴も捨てる
|
|
544
|
+
* β 削除で空いたパスに、あとから別の記録が入った … `R 旧→新` を D より先に見るので、
|
|
545
|
+
* 伝播せず、あとから来る `D 新` は生パス 新 にだけ効く。移動してきた記録は
|
|
546
|
+
* 生パス 旧 で照合されるので生き残る
|
|
393
547
|
*/
|
|
394
548
|
const gone = new Set();
|
|
549
|
+
/**
|
|
550
|
+
* 🔴 **改名の追跡。「そのコミット時点のパス」→「いまのパス(正本)」。**
|
|
551
|
+
*
|
|
552
|
+
* 新しい順に走りながら育てる。改名 R(旧 → 新) を見たら、その時点より**古い**コミットで
|
|
553
|
+
* 旧パスに出会ったものは、いまの記録の履歴として積む。これで `--follow` と同じことを
|
|
554
|
+
* **git を1回も余分に呼ばずに**やる。改名が連鎖していても(A→B→C)順に付け替わって繋がる。
|
|
555
|
+
*/
|
|
556
|
+
const renamedTo = new Map();
|
|
557
|
+
/** そのコミット時点のパスから、いまのパス(正本)を引く */
|
|
558
|
+
const canonicalOf = (p) => renamedTo.get(p) || p;
|
|
559
|
+
/** レコードとして扱うパスか(区画の規約・雛形はレコードではない) */
|
|
560
|
+
const isRecord = (p) => {
|
|
561
|
+
if (!RECORD_PATH.test(p))
|
|
562
|
+
return false;
|
|
563
|
+
const base = p.slice(p.lastIndexOf("/") + 1).toLowerCase();
|
|
564
|
+
return base !== "readme.md" && base !== "template.md";
|
|
565
|
+
};
|
|
395
566
|
for (const c of commits) {
|
|
396
|
-
const
|
|
567
|
+
const kind = classifyCommit(c);
|
|
568
|
+
/**
|
|
569
|
+
* このコミットの改名。**対応表への反映は、通常のエントリを処理し終えてから行う。**
|
|
570
|
+
* 途中で書き換えると、同じコミットの他のエントリの正本が git の出力順に左右される。
|
|
571
|
+
* `-M` だけなら実際には起こらない(R の元/先は同じコミットの他のエントリに現れない)が、
|
|
572
|
+
* あとから `-C` を足した瞬間に静かに壊れるので、順序を不変条件として固定しておく。
|
|
573
|
+
*/
|
|
574
|
+
const renames = [];
|
|
397
575
|
for (const f of c.files) {
|
|
398
|
-
|
|
399
|
-
|
|
576
|
+
if (f.status === "R" && f.from) {
|
|
577
|
+
const canon = canonicalOf(f.path);
|
|
578
|
+
renames.push({ from: f.from, to: f.path, canon });
|
|
579
|
+
// **中身も変わった改名(100% 未満)だけを「書き換え」として出す。**
|
|
580
|
+
// 一致度 100 は**中身が1文字も変わっていない移動**——記録の内容の変化ではないので
|
|
581
|
+
// 履歴の点にしない。**スコアで判定する**(差分の有無で判定すると、差分が
|
|
582
|
+
// 取れなかっただけの変更と区別が付かない)
|
|
583
|
+
if (kind === "ai" && isRecord(canon) && !gone.has(f.path) && f.score !== 100) {
|
|
584
|
+
pushEntry(canon, c, f.path, "edit");
|
|
585
|
+
}
|
|
400
586
|
continue;
|
|
401
|
-
|
|
402
|
-
|
|
587
|
+
}
|
|
588
|
+
const canon = canonicalOf(f.path);
|
|
589
|
+
if (!isRecord(canon))
|
|
403
590
|
continue;
|
|
404
|
-
if (gone.has(
|
|
591
|
+
if (gone.has(f.path))
|
|
405
592
|
continue;
|
|
406
593
|
if (f.status === "D") {
|
|
407
|
-
gone.add(
|
|
594
|
+
gone.add(f.path);
|
|
408
595
|
continue;
|
|
409
596
|
}
|
|
410
|
-
|
|
597
|
+
// 履歴に出すのは AI がやったことだけ(人の操作・データ構造の引っ越しは出さない)
|
|
598
|
+
if (kind !== "ai")
|
|
411
599
|
continue;
|
|
412
|
-
// A(作成)と M(変更)だけ。T
|
|
413
|
-
//
|
|
600
|
+
// A(作成)と M(変更)だけ。T(ファイル↔シンボリックリンクの置き換え)・
|
|
601
|
+
// C(複製・そもそも検出していない)等は「何が変わったか」を言えないので出さない
|
|
414
602
|
if (f.status !== "A" && f.status !== "M")
|
|
415
603
|
continue;
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
//
|
|
429
|
-
//
|
|
430
|
-
//
|
|
431
|
-
|
|
432
|
-
//
|
|
433
|
-
|
|
434
|
-
if (
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
604
|
+
pushEntry(canon, c, f.path, f.status === "A" ? "add" : "edit");
|
|
605
|
+
}
|
|
606
|
+
for (const r of renames) {
|
|
607
|
+
// α: 改名先が既に死んでいるなら、改名元も死んでいる(古い履歴を捨てる)
|
|
608
|
+
if (gone.has(r.to))
|
|
609
|
+
gone.add(r.from);
|
|
610
|
+
// 改名先の名前は、これより古いコミットでは**別のもの**を指す。対応表から外す。
|
|
611
|
+
// ⚠️ **この1行はテストで守れていない**(外しても全テストが緑のまま)。外しても症状が
|
|
612
|
+
// 出ないのは、名前が再利用される形では手前の `gone` が先に効いてしまうため。
|
|
613
|
+
// 消さないでほしい: 連鎖する改名で、古い側の同名ファイルが新しい記録に
|
|
614
|
+
// 紐づく余地を残さないための一行
|
|
615
|
+
renamedTo.delete(r.to);
|
|
616
|
+
// 🔴 **写像を張れない改名は、旧パスをそこで打ち切る。**
|
|
617
|
+
// レコードの形をしていないところへ(`records/2026/A.md` のようなサブフォルダ・
|
|
618
|
+
// `README.md`)出ていった、あるいはそこから来た改名で、旧パスを生かしたままにすると、
|
|
619
|
+
// **旧パスは「もう無いのに生きている」**状態になる。そこに新しい記録が作り直されると、
|
|
620
|
+
// **前の記録の作成・本文が新しい記録のページに出る**——0.12.15 で直した
|
|
621
|
+
// 「人が消した本文が別の記録に出る」と同じ型(レビューで実測・再現された)
|
|
622
|
+
if (isRecord(r.canon) && isRecord(r.from))
|
|
623
|
+
renamedTo.set(r.from, r.canon);
|
|
624
|
+
else
|
|
625
|
+
gone.add(r.from);
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
/** 1件を積む。**中身が変わっていない「書き換え」は積まない** */
|
|
629
|
+
function pushEntry(canon, c, rawPath, kind) {
|
|
630
|
+
const list = history[canon] || (history[canon] = []);
|
|
631
|
+
if (list.length >= exports.AI_HISTORY_MAX_ENTRIES)
|
|
632
|
+
return;
|
|
633
|
+
let before = "";
|
|
634
|
+
let after = "";
|
|
635
|
+
let truncated = false;
|
|
636
|
+
const key = c.sha + NUL + rawPath;
|
|
637
|
+
// **「追加(A)の差分を載せない」の門は readDiffs の --diff-filter ただ1つ。**
|
|
638
|
+
// ここでも status を見て二重に守ると、どちらを外しても症状が出ず、
|
|
639
|
+
// **テストで守れない不変条件**になる(実際に変異検証で素通りした)。門は1箇所に置く
|
|
640
|
+
const d = diffs.get(key);
|
|
641
|
+
if (d) {
|
|
642
|
+
const b = clampDiff(d.before.join("\n"));
|
|
643
|
+
const a = clampDiff(d.after.join("\n"));
|
|
644
|
+
before = b.text;
|
|
645
|
+
after = a.text;
|
|
646
|
+
truncated = b.truncated || a.truncated;
|
|
647
|
+
}
|
|
648
|
+
if (kind === "edit") {
|
|
649
|
+
// 🔴 **構造の規則A: 中身が変わっていないと「言い切れる」変更だけを落とす。**
|
|
650
|
+
//
|
|
651
|
+
// ⚠️ **「差分が空」と「差分が取れなかった」を同じにしてはいけない**(レビュー指摘)。
|
|
652
|
+
// テキスト差分が出ない理由は3つあり、意味がまったく違う:
|
|
653
|
+
//
|
|
654
|
+
// ① 権限だけの変更 …… 中身は変わっていない(git が old mode/new mode で明言)→ 落とす
|
|
655
|
+
// ② 純粋な改名 …………… 中身は変わっていない(R のスコア100で判定済み)→ ここへ来ない
|
|
656
|
+
// ③ 取れなかった ……… binary 扱い(.gitattributes の -diff)・パス2の窓の外・
|
|
657
|
+
// パス2そのものの失敗。**中身は変わっているかもしれない**
|
|
658
|
+
//
|
|
659
|
+
// ③を落とすと、`*.md` を -diff にしている案件で**本物の書き換えが丸ごと消え**、
|
|
660
|
+
// パス2が失敗した日には**全案件で履歴が無言で全滅**する。だから③は落とさず、
|
|
661
|
+
// 差分の代わりに画面へ「出せませんでした」と断らせる
|
|
662
|
+
if (!before && !after && modeOnly.has(key))
|
|
663
|
+
return;
|
|
664
|
+
// 🔴 **構造の規則B: フロントマターの項目名だけの付け替えは出さない。**
|
|
665
|
+
// データ構造の引っ越しであって内容の変化ではない(件名の規則の裏取り)。
|
|
666
|
+
// ⚠️ ただし裏取りできるのは**実データで見た2つの形のうち1つだけ**
|
|
667
|
+
//(`summary:`→`description:` の169件。`status:` の後付け300件は件名の規則だけが頼り)
|
|
668
|
+
if (isFrontmatterKeyRename(before, after))
|
|
669
|
+
return;
|
|
443
670
|
}
|
|
671
|
+
const entry = {
|
|
672
|
+
commit: c.sha,
|
|
673
|
+
at: c.at,
|
|
674
|
+
subject: c.subject,
|
|
675
|
+
kind,
|
|
676
|
+
before,
|
|
677
|
+
after,
|
|
678
|
+
};
|
|
679
|
+
if (truncated)
|
|
680
|
+
entry.truncated = true;
|
|
681
|
+
list.push(entry);
|
|
444
682
|
}
|
|
445
683
|
// 空の器は返さない(「知らないことはキーが無いことで表す」)
|
|
446
684
|
for (const p of Object.keys(history)) {
|
package/package.json
CHANGED