1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/pages/ArchivesPage.tsx");import __vite__cjsImport0_react_jsxDevRuntime from "/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=d71ca497"; const jsxDEV = __vite__cjsImport0_react_jsxDevRuntime["jsxDEV"]; 2var _s = $RefreshSig$(); 3import __vite__cjsImport1_react from "/node_modules/.vite/deps/react.js?v=d71ca497"; const useState = __vite__cjsImport1_react["useState"]; const useEffect = __vite__cjsImport1_react["useEffect"]; 4import { Link } from "/node_modules/.vite/deps/react-router-dom.js?v=d71ca497"; 5import { ArrowLeft, ThumbsUp, Heart, ThumbsDown, Film, Lock } from "/node_modules/.vite/deps/lucide-react.js?v=d71ca497"; 6const PASSWORD = "bb8"; 7export default function ArchivesPage() { 8 _s(); 9 const [isAuthenticated, setIsAuthenticated] = useState( 10 sessionStorage.getItem("1day1vid_auth") === "true" 11 ); 12 const [password, setPassword] = useState(""); 13 const [authError, setAuthError] = useState(false); 14 const [archives, setArchives] = useState([]); 15 const [loading, setLoading] = useState(true); 16 const handleLogin = (e) => { 17 e.preventDefault(); 18 if (password === PASSWORD) { 19 sessionStorage.setItem("1day1vid_auth", "true"); 20 setIsAuthenticated(true); 21 setAuthError(false); 22 } else { 23 setAuthError(true); 24 } 25 }; 26 useEffect(() => { 27 if (!isAuthenticated) return; 28 const fetchArchives = async () => { 29 try { 30 const res = await fetch("/api/archives"); 31 const data = await res.json(); 32 setArchives(data.archives); 33 } catch (err) { 34 console.error("Failed to fetch archives:", err); 35 } finally { 36 setLoading(false); 37 } 38 }; 39 fetchArchives(); 40 }, [isAuthenticated]); 41 if (!isAuthenticated) { 42 return /* @__PURE__ */ jsxDEV("div", { className: "w-full min-h-full bg-gray-900 flex items-center justify-center p-8", children: /* @__PURE__ */ jsxDEV("form", { onSubmit: handleLogin, className: "bg-gray-800 p-8 rounded-2xl w-full max-w-sm", children: [
43 /* @__PURE__ */ jsxDEV("div", { className: "flex justify-center mb-6", children: /* @__PURE__ */ jsxDEV(Lock, { className: "w-12 h-12 text-gray-400" }, void 0, false, { 44 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 45 lineNumber: 58, 46 columnNumber: 13 47 }, this) }, void 0, false, { 48 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 49 lineNumber: 57, 50 columnNumber: 11 51 }, this), 52 /* @__PURE__ */ jsxDEV("h1", { className: "text-xl font-bold text-center mb-6", children: "Acces protege" }, void 0, false, { 53 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 54 lineNumber: 60, 55 columnNumber: 11 56 }, this), 57 /* @__PURE__ */ jsxDEV( 58 "input", 59 { 60 type: "password", 61 value: password, 62 onChange: (e) => setPassword(e.target.value), 63 placeholder: "Mot de passe", 64 className: `w-full px-4 py-3 bg-gray-700 rounded-lg mb-4 focus:outline-none focus:ring-2 ${authError ? "ring-2 ring-red-500" : "focus:ring-blue-500"}`, 65 autoFocus: true 66 }, 67 void 0, 68 false, 69 { 70 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 71 lineNumber: 61, 72 columnNumber: 11 73 }, 74 this 75 ), 76 authError && /* @__PURE__ */ jsxDEV("p", { className: "text-red-500 text-sm mb-4", children: "Mot de passe incorrect" }, void 0, false, { 77 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 78 lineNumber: 71, 79 columnNumber: 25 80 }, this),
81 /* @__PURE__ */ jsxDEV( 82 "button", 83 { 84 type: "submit", 85 className: "w-full py-3 bg-blue-600 hover:bg-blue-700 rounded-lg font-medium transition-colors", 86 children: "Entrer" 87 }, 88 void 0, 89 false, 90 { 91 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 92 lineNumber: 72, 93 columnNumber: 11 94 }, 95 this 96 ) 97 ] }, void 0, true, { 98 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 99 lineNumber: 56, 100 columnNumber: 9 101 }, this) }, void 0, false, { 102 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 103 lineNumber: 55, 104 columnNumber: 7 105 }, this); 106 } 107 const formatDate = (dateStr) => { 108 return new Date(dateStr).toLocaleDateString("fr-FR", { 109 day: "numeric", 110 month: "long", 111 year: "numeric" 112 }); 113 }; 114 return /* @__PURE__ */ jsxDEV("div", { className: "w-full min-h-full bg-gray-900 p-8", children: /* @__PURE__ */ jsxDEV("div", { className: "max-w-3xl mx-auto", children: [ 115 /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-4 mb-8", children: [
116 /* @__PURE__ */ jsxDEV( 117 Link, 118 { 119 to: "/", 120 className: "p-2 hover:bg-gray-800 rounded-lg transition-colors", 121 children: /* @__PURE__ */ jsxDEV(ArrowLeft, { className: "w-6 h-6" }, void 0, false, { 122 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 123 lineNumber: 100, 124 columnNumber: 13 125 }, this) 126 }, 127 void 0, 128 false, 129 { 130 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 131 lineNumber: 96, 132 columnNumber: 11 133 }, 134 this 135 ), 136 /* @__PURE__ */ jsxDEV("h1", { className: "text-2xl font-bold", children: "Archives" }, void 0, false, { 137 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 138 lineNumber: 102, 139 columnNumber: 11 140 }, this) 141 ] }, void 0, true, { 142 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 143 lineNumber: 95, 144 columnNumber: 9 145 }, this),
146 loading ? /* @__PURE__ */ jsxDEV("div", { className: "text-center py-12 text-gray-400", children: "Chargement..." }, void 0, false, { 147 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 148 lineNumber: 106, 149 columnNumber: 9 150 }, this) : archives.length === 0 ? /* @__PURE__ */ jsxDEV("div", { className: "text-center py-12", children: [ 151 /* @__PURE__ */ jsxDEV(Film, { className: "w-16 h-16 mx-auto text-gray-600 mb-4" }, void 0, false, { 152 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 153 lineNumber: 111, 154 columnNumber: 13 155 }, this), 156 /* @__PURE__ */ jsxDEV("p", { className: "text-gray-400", children: "Aucune video archivee" }, void 0, false, { 157 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 158 lineNumber: 112, 159 columnNumber: 13 160 }, this) 161 ] }, void 0, true, { 162 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 163 lineNumber: 110, 164 columnNumber: 9 165 }, this) : /* @__PURE__ */ jsxDEV("div", { className: "space-y-4", children: archives.map( 166 (archive, index) => /* @__PURE__ */ jsxDEV( 167 "div", 168 { 169 className: "bg-gray-800 rounded-xl p-4 flex items-center justify-between", 170 children: [
171 /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-4", children: [ 172 /* @__PURE__ */ jsxDEV("div", { className: "w-12 h-12 bg-gray-700 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxDEV(Film, { className: "w-6 h-6 text-gray-400" }, void 0, false, { 173 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 174 lineNumber: 123, 175 columnNumber: 21 176 }, this) }, void 0, false, { 177 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 178 lineNumber: 122, 179 columnNumber: 19 180 }, this), 181 /* @__PURE__ */ jsxDEV("div", { children: [ 182 /* @__PURE__ */ jsxDEV("p", { className: "font-medium", children: archive.original_name }, void 0, false, { 183 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 184 lineNumber: 126, 185 columnNumber: 21 186 }, this),
187 /* @__PURE__ */ jsxDEV("p", { className: "text-sm text-gray-400", children: formatDate(archive.uploaded_at) }, void 0, false, { 188 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 189 lineNumber: 127, 190 columnNumber: 21 191 }, this) 192 ] }, void 0, true, { 193 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 194 lineNumber: 125, 195 columnNumber: 19 196 }, this) 197 ] }, void 0, true, { 198 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 199 lineNumber: 121, 200 columnNumber: 17 201 }, this), 202 /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-6", children: [ 203 /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-2 text-green-500", children: [ 204 /* @__PURE__ */ jsxDEV(ThumbsUp, { className: "w-5 h-5" }, void 0, false, { 205 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 206 lineNumber: 135, 207 columnNumber: 21 208 }, this),
209 /* @__PURE__ */ jsxDEV("span", { className: "font-medium", children: archive.thumbs_up }, void 0, false, { 210 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 211 lineNumber: 136, 212 columnNumber: 21 213 }, this) 214 ] }, void 0, true, { 215 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 216 lineNumber: 134, 217 columnNumber: 19 218 }, this), 219 /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-2 text-red-500", children: [ 220 /* @__PURE__ */ jsxDEV(Heart, { className: "w-5 h-5" }, void 0, false, { 221 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 222 lineNumber: 139, 223 columnNumber: 21 224 }, this), 225 /* @__PURE__ */ jsxDEV("span", { className: "font-medium", children: archive.hearts }, void 0, false, { 226 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 227 lineNumber: 140, 228 columnNumber: 21 229 }, this) 230 ] }, void 0, true, { 231 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 232 lineNumber: 138, 233 columnNumber: 19 234 }, this),
235 /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-2 text-gray-400", children: [ 236 /* @__PURE__ */ jsxDEV(ThumbsDown, { className: "w-5 h-5" }, void 0, false, { 237 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 238 lineNumber: 143, 239 columnNumber: 21 240 }, this), 241 /* @__PURE__ */ jsxDEV("span", { className: "font-medium", children: archive.thumbs_down }, void 0, false, { 242 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 243 lineNumber: 144, 244 columnNumber: 21 245 }, this) 246 ] }, void 0, true, { 247 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 248 lineNumber: 142, 249 columnNumber: 19 250 }, this) 251 ] }, void 0, true, { 252 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 253 lineNumber: 133, 254 columnNumber: 17 255 }, this) 256 ] 257 }, 258 index, 259 true, 260 { 261 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 262 lineNumber: 117, 263 columnNumber: 11 264 }, 265 this 266 ) 267 ) }, void 0, false, { 268 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 269 lineNumber: 115, 270 columnNumber: 9 271 }, this) 272 ] }, void 0, true, { 273 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 274 lineNumber: 93, 275 columnNumber: 7 276 }, this) }, void 0, false, { 277 fileName: "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", 278 lineNumber: 92, 279 columnNumber: 5 280 }, this); 281} 282_s(ArchivesPage, "v16M0A4XhvzHxOxvvY/xizFZYDM="); 283_c = ArchivesPage; 284var _c; 285$RefreshReg$(_c, "ArchivesPage"); 286import * as RefreshRuntime from "/@react-refresh"; 287const inWebWorker = typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope; 288if (import.meta.hot && !inWebWorker) { 289 if (!window.$RefreshReg$) { 290 throw new Error( 291 "@vitejs/plugin-react can't detect preamble. Something is wrong." 292 ); 293 } 294 RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => { 295 RefreshRuntime.registerExportsForReactRefresh("/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", currentExports); 296 import.meta.hot.accept((nextExports) => { 297 if (!nextExports) return; 298 const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx", currentExports, nextExports); 299 if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage); 300 }); 301 }); 302} 303function $RefreshReg$(type, id) { 304 return RefreshRuntime.register(type, "/home/clad/1day1vid/frontend/src/pages/ArchivesPage.tsx " + id); 305} 306function $RefreshSig$() { 307 return RefreshRuntime.createSignatureFunctionForTransform(); 308} 309 310//# sourceMappingURL=data:application/json;base64,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BQUE7QUFBQSx1QkFBbUQ7QUFBQSxtQkFGckQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFHQTtBQUFBLGlCQVpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBYUE7QUFBQTtBQUFBO0FBQUEsUUE1QktMO0FBQUFBLFFBRFA7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQThCQTtBQUFBLElBQ0QsS0FqQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQWtDQTtBQUFBLE9BeERKO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0EwREEsS0EzREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQTREQTtBQUVKO0FBQUNyQyxHQTFJdUJELGNBQVk7QUFBQTRDLEtBQVo1QztBQUFZLElBQUE0QztBQUFBQyxhQUFBRCxJQUFBIiwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJMaW5rIiwiQXJyb3dMZWZ0IiwiVGh1bWJzVXAiLCJIZWFydCIsIlRodW1ic0Rvd24iLCJGaWxtIiwiTG9jayIsIlBBU1NXT1JEIiwiQXJjaGl2ZXNQYWdlIiwiX3MiLCJpc0F1dGhlbnRpY2F0ZWQiLCJzZXRJc0F1dGhlbnRpY2F0ZWQiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJwYXNzd29yZCIsInNldFBhc3N3b3JkIiwiYXV0aEVycm9yIiwic2V0QXV0aEVycm9yIiwiYXJjaGl2ZXMiLCJzZXRBcmNoaXZlcyIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiaGFuZGxlTG9naW4iLCJlIiwicHJldmVudERlZmF1bHQiLCJzZXRJdGVtIiwiZmV0Y2hBcmNoaXZlcyIsInJlcyIsImZldGNoIiwiZGF0YSIsImpzb24iLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJ0YXJnZXQiLCJ2YWx1ZSIsImZvcm1hdERhdGUiLCJkYXRlU3RyIiwiRGF0ZSIsInRvTG9jYWxlRGF0ZVN0cmluZyIsImRheSIsIm1vbnRoIiwieWVhciIsImxlbmd0aCIsIm1hcCIsImFyY2hpdmUiLCJpbmRleCIsIm9yaWdpbmFsX25hbWUiLCJ1cGxvYWRlZF9hdCIsInRodW1ic191cCIsImhlYXJ0cyIsInRodW1ic19kb3duIiwiX2MiLCIkUmVmcmVzaFJlZyQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiQXJjaGl2ZXNQYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IEFycm93TGVmdCwgVGh1bWJzVXAsIEhlYXJ0LCBUaHVtYnNEb3duLCBGaWxtLCBMb2NrIH0gZnJvbSAnbHVjaWRlLXJlYWN0J1xuXG5jb25zdCBQQVNTV09SRCA9ICdiYjgnXG5cbmludGVyZmFjZSBBcmNoaXZlRW50cnkge1xuICBvcmlnaW5hbF9uYW1lOiBzdHJpbmdcbiAgdXBsb2FkZWRfYXQ6IHN0cmluZ1xuICBhcmNoaXZlZF9hdDogc3RyaW5nXG4gIHRodW1ic191cDogbnVtYmVyXG4gIGhlYXJ0czogbnVtYmVyXG4gIHRodW1ic19kb3duOiBudW1iZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQXJjaGl2ZXNQYWdlKCkge1xuICBjb25zdCBbaXNBdXRoZW50aWNhdGVkLCBzZXRJc0F1dGhlbnRpY2F0ZWRdID0gdXNlU3RhdGUoXG4gICAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnMWRheTF2aWRfYXV0aCcpID09PSAndHJ1ZSdcbiAgKVxuICBjb25zdCBbcGFzc3dvcmQsIHNldFBhc3N3b3JkXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbYXV0aEVycm9yLCBzZXRBdXRoRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgW2FyY2hpdmVzLCBzZXRBcmNoaXZlc10gPSB1c2VTdGF0ZTxBcmNoaXZlRW50cnlbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpXG5cbiAgY29uc3QgaGFuZGxlTG9naW4gPSAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgaWYgKHBhc3N3b3JkID09PSBQQVNTV09SRCkge1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnMWRheTF2aWRfYXV0aCcsICd0cnVlJylcbiAgICAgIHNldElzQXV0aGVudGljYXRlZCh0cnVlKVxuICAgICAgc2V0QXV0aEVycm9yKGZhbHNlKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBdXRoRXJyb3IodHJ1ZSlcbiAgICB9XG4gI
310H1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNBdXRoZW50aWNhdGVkKSByZXR1cm5cbiAgICBjb25zdCBmZXRjaEFyY2hpdmVzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goJy9hcGkvYXJjaGl2ZXMnKVxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKVxuICAgICAgICBzZXRBcmNoaXZlcyhkYXRhLmFyY2hpdmVzKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBhcmNoaXZlczonLCBlcnIpXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgICBmZXRjaEFyY2hpdmVzKClcbiAgfSwgW2lzQXV0aGVudGljYXRlZF0pXG5cbiAgaWYgKCFpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWluLWgtZnVsbCBiZy1ncmF5LTkwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLThcIj5cbiAgICAgICAgPGZvcm0gb25TdWJtaXQ9e2hhbmRsZUxvZ2lufSBjbGFzc05hbWU9XCJiZy1ncmF5LTgwMCBwLTggcm91bmRlZC0yeGwgdy1mdWxsIG1heC13LXNtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktY2VudGVyIG1iLTZcIj5cbiAgICAgICAgICAgIDxMb2NrIGNsYXNzTmFtZT1cInctMTIgaC0xMiB0ZXh0LWdyYXktNDAwXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbWItNlwiPkFjY2VzIHByb3RlZ2U8L2gxPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgIHZhbHVlPXtwYXNzd29yZH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0UGFzc3dvcmQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJNb3QgZGUgcGFzc2VcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgdy1mdWxsIHB4LTQgcHktMyBiZy1ncmF5LTcwMCByb3VuZGVkLWxnIG1iLTQgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiAke1xuICAgICAgICAgICAgICBhdXRoRXJyb3IgPyAncmluZy0yIHJpbmctcmVkLTUwMCcgOiAnZm9jdXM6cmluZy1ibHVlLTUwMCdcbiAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7YXV0aEVycm9yICYmIDxwIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXNtIG1iLTRcIj5Nb3QgZGUgcGFzc2UgaW5jb3JyZWN0PC9wPn1cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweS0zIGJnLWJsdWUtNjAwIGhvdmVyOmJnLWJsdWUtNzAwIHJvdW5kZWQtbGcgZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEVudHJlclxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICBjb25zdCBmb3JtYXREYXRlID0gKGRhdGVTdHI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlU3RyKS50b0xvY2FsZURhdGVTdHJpbmcoJ2ZyLUZSJywge1xuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIG1pbi1oLWZ1bGwgYmctZ3JheS05MDAgcC04XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTN4bCBteC1hdXRvXCI+XG4gICAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgbWItOFwiPlxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICB0bz1cIi9cIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIGhvdmVyOmJnLWdyYXktODAwIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBcnJvd0xlZnQgY2xhc3NOYW1lPVwidy02IGgtNlwiIC8+XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj5BcmNoaXZlczwvaDE+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgcHktMTIgdGV4dC1ncmF5LTQwMFwiPlxuICAgICAgICAgICAgQ2hhcmdlbWVudC4uLlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogYXJjaGl2ZXMubGVuZ3RoID09PSAwID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgcHktMTJcIj5cbiAgICAgICAgICAgIDxGaWxtIGNsYXNzTmFtZT1cInctMTYgaC0xNiBteC1hdXRvIHRleHQtZ3JheS02MDAgbWItNFwiIC8+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwXCI+QXVjdW5lIHZpZGVvIGFyY2hpdmVlPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICB7YXJjaGl2ZXMubWFwKChhcmNoaXZlLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1ncmF5LTgwMCByb3VuZGVkLXhsIHAtNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTEyIGgtMTIgYmctZ3JheS03MDAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8RmlsbSBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtZ3JheS00MDBcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmb250LW1lZGl1bVwiPnthcmNoaXZlLm9yaWdpbmFsX25hbWV9PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7Zm9ybWF0RGF0ZShhcmNoaXZlLnVwbG9hZGVkX2F0KX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC02XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZ3JlZW4tNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxUaHVtYnNVcCBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1tZWRpdW1cIj57YXJjaGl2ZS50aHVtYnNfdXB9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtcmVkLTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8SGVhcnQgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtXCI+e2FyY2hpdmUuaGVhcnRzfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LWdyYXktNDAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxUaHVtYnNEb3duIGNsYXNzTmFtZT1cInctNSBoLTVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb250LW1lZGl1bVwiPnthcmNoaXZlLnRodW1ic19kb3dufTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJmaWxlIjoiL2hvbWUvY2xhZC8xZGF5MXZpZC9mcm9udGVuZC9zcmMvcGFnZXMvQXJjaGl2ZXNQYWdlLnRzeCJ9
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.