Different URL tree state encoding

This commit is contained in:
2026-07-11 22:51:01 -05:00
parent 291b6028f5
commit af325782a8
5 changed files with 1123 additions and 12 deletions
+633
View File
@@ -0,0 +1,633 @@
{
"schema": 1,
"nodes": [
"[\"GlobalProtect\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.1.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.2.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h1.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h11.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h12.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h2.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h3.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h4.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h6.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h7.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h8.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3-h9.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.3\"]>[\"GlobalProtect\",\"6\",\"6.3\",\"6.3.3.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.1.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.2.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.3-c287.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.3.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.4.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.5.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.6-c857.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.6.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.7.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h1.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h11.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h2.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h3.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h4.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h5.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h6.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h7.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8-h9.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.2\"]>[\"GlobalProtect\",\"6\",\"6.2\",\"6.2.8.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.1\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.1\"]>[\"GlobalProtect\",\"6\",\"6.1\",\"6.1.1.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.1\"]>[\"GlobalProtect\",\"6\",\"6.1\",\"6.1.2.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.1\"]>[\"GlobalProtect\",\"6\",\"6.1\",\"6.1.3.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.1\"]>[\"GlobalProtect\",\"6\",\"6.1\",\"6.1.4.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.1\"]>[\"GlobalProtect\",\"6\",\"6.1\",\"6.1.5.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.1\"]>[\"GlobalProtect\",\"6\",\"6.1\",\"6.1.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.1.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.10-814.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.10-c826.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.10.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.11.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.3.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.4-c26.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.4.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.5.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.7.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.8.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"6\"]>[\"GlobalProtect\",\"6\",\"6.0\"]>[\"GlobalProtect\",\"6\",\"6.0\",\"6.0.md\"]",
"[\"GlobalProtect\"]>[\"GlobalProtect\",\"5\"]",
"[\"GlobalProtect-Android\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.0.1.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.0.12.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.0.2.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.0.3.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.0.4.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.0.5.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.0.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.10.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.11.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.12.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.4.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.5.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.6.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.7.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.9.md\"]",
"[\"GlobalProtect-Android\"]>[\"GlobalProtect-Android\",\"6.1.md\"]",
"[\"GlobalProtect-iOS\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.0.12.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.0.2.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.0.4.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.0.5.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.0.6.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.0.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.10.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.11.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.4.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.5.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.6.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.7.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.9.md\"]",
"[\"GlobalProtect-iOS\"]>[\"GlobalProtect-iOS\",\"6.1.md\"]",
"[\"GlobalProtect-Linux\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.3\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.3\"]>[\"GlobalProtect-Linux\",\"6\",\"6.3\",\"6.3.3-h1.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.3\"]>[\"GlobalProtect-Linux\",\"6\",\"6.3\",\"6.3.3.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\",\"6.2.0.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\",\"6.2.1.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\",\"6.2.6.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\",\"6.2.7.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\",\"6.2.8.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\"]>[\"GlobalProtect-Linux\",\"6\",\"6.2\",\"6.2.9.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\",\"6.1.1.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\",\"6.1.3.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\",\"6.1.4.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\",\"6.1.5.md\"]",
"[\"GlobalProtect-Linux\"]>[\"GlobalProtect-Linux\",\"6\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\"]>[\"GlobalProtect-Linux\",\"6\",\"6.1\",\"6.1.md\"]",
"[\"PAN-OS\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.3-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.3-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.4-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.4-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.4-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.4-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.4-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.4-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.7-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.7-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"12\"]>[\"PAN-OS\",\"12\",\"12.1\"]>[\"PAN-OS\",\"12\",\"12.1\",\"12.1.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.0-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.1-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.2-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.2-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.3-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.3-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h20.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.5-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.2\"]>[\"PAN-OS\",\"11\",\"11.2\",\"11.2.9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.0-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.0-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.0-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.0-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.1-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.1-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h21.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h25.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h26.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h27.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h28.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h30.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3-h11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3-h13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h25.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h27.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h32.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h33.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h34.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h35.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.5-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h19.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h20.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h21.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h22.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h23.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h25.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h29.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h32.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h33.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h34.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h35.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.7-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.7-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.7-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.7-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.7-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.7-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.1\"]>[\"PAN-OS\",\"11\",\"11.1\",\"11.1.9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.0-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.0-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.0-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.0-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.1-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.1-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.1-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.1-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.2-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.2-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.2-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.2-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.2-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.3-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.3-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.3-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.3-h13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.3-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.3-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.4-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.4-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.4-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.4-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.5-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.5-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.6-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"11\"]>[\"PAN-OS\",\"11\",\"11.0\"]>[\"PAN-OS\",\"11\",\"11.0\",\"11.0.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.0-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.0-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.0-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.0-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.1-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.1-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.1-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h21.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h30.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h31.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h36.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h37.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h39.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.11-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.11-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.11-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.11-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h21.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h22.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h23.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.14-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.16-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.16-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.16-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.16-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.16-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.16-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.18-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.18-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.18-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.18-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.18-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.2-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.2-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.2-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.2-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.3-h11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.3-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.3-h13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.3-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.3-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.3-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.4-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.4-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.4-h32.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.4-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.5-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.5-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.6-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.6-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h19.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h34.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h35.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7-h36.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.8-h13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.8-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.9-h11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.9-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.9-h16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.9-h18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.9-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.2\"]>[\"PAN-OS\",\"10\",\"10.2\",\"10.2.9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.10-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.10-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.11-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.11-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.12-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.13-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.13-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h19.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h20.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.3-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.4-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.5-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.5-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.6-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.6-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.6-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.6-h9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.7-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.8-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.8-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.8-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.1\"]>[\"PAN-OS\",\"10\",\"10.1\",\"10.1.9-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.11-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.11-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.11-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.12-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.8-h10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.8-h11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.8-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.8-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"10\"]>[\"PAN-OS\",\"10\",\"10.0\"]>[\"PAN-OS\",\"10\",\"10.0\",\"10.0.9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.11-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.11-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.11-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.11-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.12-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.12-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.12-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.12-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.13-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.13-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.13-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.13-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.14-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.14-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.14-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.14-h8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.15-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.16-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.16-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.16-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.17-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.19.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.2-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.3-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.1\"]>[\"PAN-OS\",\"9\",\"9.1\",\"9.1.9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.14-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.14-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.16-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.16-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.16-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.16-h6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.16-h7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.17-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.17-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.17-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.2-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.3-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.3-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.5-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.9-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"9\"]>[\"PAN-OS\",\"9\",\"9.0\"]>[\"PAN-OS\",\"9\",\"9.0\",\"9.0.9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.0.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.10.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.11.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.12.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.13.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.14-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.14.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.15-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.15.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.16.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.17.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.18.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.19.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.20-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.20.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.21-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.21-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.21-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.21.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.22.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.23-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.23.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.24-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.24-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.24.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.25-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.25-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.25-h3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.25.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.26-h1.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.26.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.3.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.4-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.6-h2.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.6.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.7.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.8-h5.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.8.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.9-h4.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.9.md\"]",
"[\"PAN-OS\"]>[\"PAN-OS\",\"8\"]>[\"PAN-OS\",\"8\",\"8.1\"]>[\"PAN-OS\",\"8\",\"8.1\",\"8.1.md\"]",
"[\"Prisma Access Agent\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"26\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"26\"]>[\"Prisma Access Agent\",\"26\",\"26.1-Linux.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"26\"]>[\"Prisma Access Agent\",\"26\",\"26.1.1.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"26\"]>[\"Prisma Access Agent\",\"26\",\"26.1.2.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.1.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.3.0-iOS.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.3.0.11-Android.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.3.1.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.3.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.4.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.6.1.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.6.2.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.6.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.7-Linux.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.7.1.md\"]",
"[\"Prisma Access Agent\"]>[\"Prisma Access Agent\",\"25\"]>[\"Prisma Access Agent\",\"25\",\"25.7.md\"]"
]
}
+2 -2
View File
@@ -21,9 +21,9 @@ function refreshIssuesForCurrentSelection() {
function loadProductTree() {
fetch('data/products.json')
.then(response => response.json())
.then(data => {
.then(async data => {
productsData = expandFilePrefixLevel(data);
renderProductTree(productsData);
await renderProductTree(productsData);
restoreTreeState();
refreshIssuesForCurrentSelection();
})
+32 -3
View File
@@ -1,4 +1,4 @@
import { CheckboxTree } from '../vendor/checkbox-tree/checkbox-tree.js';
import { CheckboxTree, loadManifest } from '../vendor/checkbox-tree/checkbox-tree.js';
import { getSortedKeys } from './sort.js';
const STORAGE_KEY = 'tree-state-v2';
@@ -14,11 +14,29 @@ export function initializeTree(containerId, onSelectionChange) {
productTree = new CheckboxTree(container, {
storageKey: STORAGE_KEY,
initiallyCollapsed: true,
onSelectionChange
onSelectionChange: event => {
onSelectionChange(event);
pushTreeState();
}
});
container.addEventListener('click', event => {
if (event.target.closest('.checkbox-tree__toggle')) {
pushTreeState();
}
});
window.addEventListener('popstate', () => {
productTree?.restoreStateFromLocation();
onSelectionChange({
selectedIds: productTree?.getSelectedIds() ?? [],
selectedNodes: productTree?.getSelectedNodes() ?? []
});
});
}
export function renderProductTree(productsData) {
export async function renderProductTree(productsData) {
const manifestSource = await fetch('data/product-tree-manifest.json').then(response => response.json());
requireTree().options.manifest = loadManifest(manifestSource);
requireTree().setData(toTreeNodes(productsData));
}
@@ -53,6 +71,17 @@ function requireTree() {
return productTree;
}
function pushTreeState() {
if (!productTree?.options.manifest) {
return;
}
const url = new URL(window.location.href);
url.hash = productTree.serializeStateToFragment();
if (url.href !== window.location.href) {
history.pushState(null, '', url);
}
}
function toTreeNodes(value, path = []) {
return getSortedKeys(value)
.filter(key => key !== 'addressed' && key !== 'known')
+124 -4
View File
@@ -1,5 +1,125 @@
# Checkbox Tree runtime snapshot
# Checkbox Tree
Vendored from `@aaronaxvig/checkbox-tree` version `0.1.0` while
`git.axvig.com` is unavailable. Do not edit these runtime files directly; update
the canonical `checkbox-tree` repository and refresh this snapshot.
A dependency-free, instance-based checkbox tree for browser ES modules. It
supports cascading selection, indeterminate parent states, expandable branches,
multiple independent instances, optional local-storage persistence, and compact
shareable URL state backed by an append-only node manifest.
## Install
```sh
npm install @aaronaxvig/checkbox-tree
```
The package is not published yet. During local development, install it by path:
```sh
npm install ../checkbox-tree
```
## Usage
```js
import { CheckboxTree } from "@aaronaxvig/checkbox-tree";
import "@aaronaxvig/checkbox-tree/styles.css";
const tree = new CheckboxTree(document.querySelector("#example-tree"), {
initiallySelected: true,
storageKey: "example-tree-state",
onSelectionChange({ selectedIds, selectedNodes }) {
console.log(selectedIds, selectedNodes);
},
});
tree.setData([
{
id: "fruit",
label: "Fruit",
children: [
{ id: "apple", label: "Apple", metadata: { color: "red" } },
{ id: "pear", label: "Pear", metadata: { color: "green" } },
],
},
]);
```
For applications without a bundler, serve or copy the two files in `src/` and
use relative URLs:
```html
<link rel="stylesheet" href="./checkbox-tree.css">
<script type="module">
import { CheckboxTree } from "./checkbox-tree.js";
</script>
```
Every node requires unique string `id` and `label` properties. Nodes may also
have `children`, application-owned `metadata`, and `selectable` or `disabled`
flags.
## API
- `new CheckboxTree(container, options)` creates an independent instance.
- `setData(nodes)` validates and renders nodes, then restores saved state.
- `getSelectedIds()` returns selected node IDs.
- `getSelectedNodes()` returns selected source node objects.
- `setSelectedIds(ids, { notify })` replaces the selection.
- `restoreState()` restores selection and expansion state.
- `destroy()` removes listeners, markup, and the root CSS class.
- `serializeStateToFragment(manifest)` returns `#v=1&c=...&x=...` state.
- `restoreStateFromLocation(manifest, location)` safely applies URL state.
- `validateManifest(manifest)` reports unregistered and missing paths.
Options:
- `initiallyCollapsed` defaults to `true`.
- `initiallySelected` defaults to `false`.
- `storageKey` defaults to `null`, which disables persistence.
- `onSelectionChange` receives `{ selectedIds, selectedNodes }`.
- `manifest` optionally supplies a parsed manifest and automatically restores
state from `window.location.hash` after `setData()`.
## Shareable URL state
Create a JSON manifest whose array positions are permanent slots. Canonical node
paths join ancestor IDs with `>`:
```json
{ "schema": 1, "nodes": ["fruit", "fruit>apple", "fruit>pear", null] }
```
Import `loadManifest`, pass its result as the `manifest` option, and call
`tree.serializeStateToFragment()` when creating a share link. Existing entries
must never be reordered. Append new paths, replace removed paths with `null`, and
edit a path in place for a logical rename or move. Node IDs therefore cannot
contain `>`.
The fragment adaptively encodes checked (`c`) and expanded (`x`) state using the
shortest of a dense bitset, sparse enabled slots, or sparse disabled slots.
Sparse slot numbers are delta-encoded variable-length integers. A coverage value
in the disabled-slot form ensures nodes appended later still default to unchecked
and collapsed. Malformed or unsupported state is ignored.
The helpers `encodeTreeState`, `decodeTreeState`, `applyTreeState`, and
`restoreStateFromLocation` are also exported for custom integrations.
Use `validateManifestEvolution(previous, next)` in a build check to reject
removed slots and tombstone reuse; path changes are reported for deliberate
rename/move review.
Styling is namespaced under `.checkbox-tree`. Override the custom properties
`--checkbox-tree-indent`, `--checkbox-tree-toggle-size`, and
`--checkbox-tree-hover-color` in the consuming application.
## Development
```sh
npm install
npm test
npm run pack:check
```
## Future demo ideas
- Add population metadata to the country, state, and county nodes and display the
total population represented by the current selection. Define the aggregation
rule carefully so checked ancestors and their checked descendants are not
counted twice; one option is to total only the most specific checked nodes.
+332 -3
View File
@@ -2,9 +2,310 @@ const DEFAULT_OPTIONS = {
initiallyCollapsed: true,
initiallySelected: false,
storageKey: null,
onSelectionChange: null
onSelectionChange: null,
manifest: null
};
const SERIALIZATION_VERSION = 1;
const PATH_DELIMITER = '>';
export function loadManifest(source) {
let records;
let schema = 1;
if (typeof source === 'string') {
records = source.split(/\r?\n/)
.map(line => line.trim())
.filter(line => line && !line.startsWith('#'))
.map(line => line === '!deleted' ? null : line);
} else if (source && typeof source === 'object' && Array.isArray(source.nodes)) {
schema = source.schema;
records = source.nodes;
} else if (source && Array.isArray(source.slots)) {
return normalizeManifest(source.schema, source.slots.map(slot => slot?.deleted ? null : slot?.path));
} else {
throw new TypeError('CheckboxTree manifest must be text or an object with a nodes array.');
}
return normalizeManifest(schema, records);
}
function normalizeManifest(schema, records) {
if (schema !== 1) {
throw new Error(`Unsupported CheckboxTree manifest schema: ${schema}`);
}
const pathToSlot = new Map();
const slots = records.map((record, index) => {
if (record === null || record === '!deleted') {
return { path: null, deleted: true };
}
if (typeof record !== 'string' || !record || record.trim() !== record) {
throw new TypeError(`Invalid CheckboxTree manifest entry at slot ${index}.`);
}
if (pathToSlot.has(record)) {
throw new Error(`Duplicate CheckboxTree manifest path: ${record}`);
}
pathToSlot.set(record, index);
return { path: record, deleted: false };
});
return { schema: 1, slots, pathToSlot };
}
export function setBit(bytes, bitIndex, value) {
const byteIndex = Math.floor(bitIndex / 8);
const mask = 1 << (bitIndex % 8);
if (value) bytes[byteIndex] |= mask;
else bytes[byteIndex] &= ~mask;
}
export function getBit(bytes, bitIndex) {
const byteIndex = Math.floor(bitIndex / 8);
return byteIndex < bytes.length && (bytes[byteIndex] & (1 << (bitIndex % 8))) !== 0;
}
export function bytesToBase64Url(bytes) {
let binary = '';
for (const byte of bytes) binary += String.fromCharCode(byte);
return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
}
export function base64UrlToBytes(value, maximumLength = Infinity) {
if (typeof value !== 'string' || !/^[A-Za-z0-9_-]*$/.test(value) || value.length % 4 === 1) {
throw new Error('Invalid Base64URL value.');
}
if (Number.isFinite(maximumLength) && value.length > Math.ceil(maximumLength * 4 / 3) + 2) {
throw new Error('Encoded tree state exceeds the manifest size.');
}
const base64 = value.replace(/-/g, '+').replace(/_/g, '/');
const binary = atob(base64 + '='.repeat((4 - base64.length % 4) % 4));
if (binary.length > maximumLength) throw new Error('Encoded tree state exceeds the manifest size.');
return Uint8Array.from(binary, character => character.charCodeAt(0));
}
function trimTrailingZeroBytes(bytes) {
let end = bytes.length;
while (end && bytes[end - 1] === 0) end--;
return bytes.slice(0, end);
}
function encodeUnsignedVarint(value) {
const bytes = [];
do {
let byte = value & 0x7f;
value = Math.floor(value / 128);
if (value) byte |= 0x80;
bytes.push(byte);
} while (value);
return bytes;
}
function decodeUnsignedVarint(bytes, offset) {
let value = 0;
let multiplier = 1;
for (let index = offset; index < bytes.length && index < offset + 8; index++) {
const byte = bytes[index];
value += (byte & 0x7f) * multiplier;
if ((byte & 0x80) === 0) return { value, offset: index + 1 };
multiplier *= 128;
if (!Number.isSafeInteger(value) || !Number.isSafeInteger(multiplier)) break;
}
throw new Error('Invalid adaptive tree-state integer.');
}
function encodeSparseIndexes(indexes) {
const bytes = [];
let previous = -1;
for (const index of indexes) {
bytes.push(...encodeUnsignedVarint(index - previous - 1));
previous = index;
}
return bytes;
}
function decodeSparseIndexes(bytes, offset, limit) {
const indexes = new Set();
let previous = -1;
while (offset < bytes.length) {
const decoded = decodeUnsignedVarint(bytes, offset);
const index = previous + decoded.value + 1;
if (index >= limit) throw new Error('Sparse tree state contains an out-of-range slot.');
indexes.add(index);
previous = index;
offset = decoded.offset;
}
return indexes;
}
export function encodeAdaptiveBitset(values, slotCount) {
const enabled = [];
const disabled = [];
const denseBytes = new Uint8Array(Math.ceil(slotCount / 8));
for (const [slot, value] of values) {
(value ? enabled : disabled).push(slot);
setBit(denseBytes, slot, value);
}
enabled.sort((left, right) => left - right);
disabled.sort((left, right) => left - right);
if (enabled.length === 0) return new Uint8Array();
const candidates = [
Uint8Array.from([0, ...trimTrailingZeroBytes(denseBytes)]),
Uint8Array.from([1, ...encodeSparseIndexes(enabled)]),
Uint8Array.from([2, ...encodeUnsignedVarint(slotCount), ...encodeSparseIndexes(disabled)])
];
return candidates.reduce((shortest, candidate) =>
candidate.length < shortest.length ? candidate : shortest
);
}
export function decodeAdaptiveBitset(bytes, slotCount) {
if (bytes.length === 0) return () => false;
const mode = bytes[0];
if (mode === 0) {
const dense = bytes.slice(1);
if (dense.length > Math.ceil(slotCount / 8)) {
throw new Error('Dense tree state exceeds the manifest size.');
}
return slot => getBit(dense, slot);
}
if (mode === 1) {
const enabled = decodeSparseIndexes(bytes, 1, slotCount);
return slot => enabled.has(slot);
}
if (mode === 2) {
const coverage = decodeUnsignedVarint(bytes, 1);
if (coverage.value > slotCount) throw new Error('Tree-state coverage exceeds the manifest size.');
const disabled = decodeSparseIndexes(bytes, coverage.offset, coverage.value);
return slot => slot < coverage.value && !disabled.has(slot);
}
throw new Error('Unknown adaptive tree-state mode.');
}
function asManifest(manifest) {
return manifest?.pathToSlot instanceof Map ? manifest : loadManifest(manifest);
}
export function validateManifest(manifest, tree) {
const normalized = asManifest(manifest);
const treePaths = new Set(tree.nodesByPath.keys());
return {
valid: Array.from(treePaths).every(path => normalized.pathToSlot.has(path)),
unregisteredPaths: Array.from(treePaths).filter(path => !normalized.pathToSlot.has(path)),
missingPaths: normalized.slots
.filter(slot => !slot.deleted && !treePaths.has(slot.path))
.map(slot => slot.path)
};
}
export function validateManifestEvolution(previous, next) {
const oldManifest = asManifest(previous);
const newManifest = asManifest(next);
const errors = [];
if (newManifest.slots.length < oldManifest.slots.length) {
errors.push('Manifest slots cannot be removed; use tombstones.');
}
oldManifest.slots.forEach((oldSlot, index) => {
const newSlot = newManifest.slots[index];
if (!newSlot) return;
if (oldSlot.deleted && !newSlot.deleted) {
errors.push(`Tombstoned slot ${index} cannot be reused.`);
}
if (!oldSlot.deleted && !newSlot.deleted && oldSlot.path !== newSlot.path) {
errors.push(`Slot ${index} changed path; confirm this is a logical rename or move.`);
}
});
return { valid: errors.length === 0, errors };
}
export function encodeTreeState(tree, manifest) {
const normalized = asManifest(manifest);
const checkedValues = new Map();
const expandedValues = new Map();
for (const [path, node] of tree.nodesByPath) {
const slot = normalized.pathToSlot.get(path);
if (slot === undefined) continue;
const item = tree.itemForNode(node.id);
const checkbox = item && tree.directCheckbox(item);
const toggle = item?.querySelector(':scope > .checkbox-tree__row > .checkbox-tree__toggle');
checkedValues.set(slot, Boolean(checkbox?.checked));
expandedValues.set(slot, toggle?.getAttribute('aria-expanded') === 'true');
}
const checkedValue = bytesToBase64Url(encodeAdaptiveBitset(checkedValues, normalized.slots.length));
const expandedValue = bytesToBase64Url(encodeAdaptiveBitset(expandedValues, normalized.slots.length));
return { version: SERIALIZATION_VERSION, checked: checkedValue || null, expanded: expandedValue || null };
}
export function decodeTreeState(fragment, manifest) {
const normalized = asManifest(manifest);
const value = fragment.startsWith('#') ? fragment.slice(1) : fragment;
const params = new URLSearchParams(value);
if (params.get('v') !== String(SERIALIZATION_VERSION)) {
return { applied: false, version: params.get('v'), warnings: ['Missing or unsupported serialization version.'] };
}
const maximumLength = Math.max(
Math.ceil(normalized.slots.length / 8) + 1,
normalized.slots.length * 2 + 10
);
try {
const checked = base64UrlToBytes(params.get('c') ?? '', maximumLength);
const expanded = base64UrlToBytes(params.get('x') ?? '', maximumLength);
decodeAdaptiveBitset(checked, normalized.slots.length);
decodeAdaptiveBitset(expanded, normalized.slots.length);
return {
applied: true,
version: SERIALIZATION_VERSION,
checked,
expanded,
warnings: []
};
} catch (error) {
return { applied: false, version: SERIALIZATION_VERSION, warnings: [error.message] };
}
}
export function applyTreeState(tree, manifest, state) {
if (!state?.applied) return false;
const normalized = asManifest(manifest);
let isChecked;
let isExpanded;
try {
isChecked = decodeAdaptiveBitset(state.checked, normalized.slots.length);
isExpanded = decodeAdaptiveBitset(state.expanded, normalized.slots.length);
} catch {
return false;
}
for (const [path, node] of tree.nodesByPath) {
const slot = normalized.pathToSlot.get(path);
if (slot === undefined) continue;
const item = tree.itemForNode(node.id);
const checkbox = item && tree.directCheckbox(item);
if (checkbox && !checkbox.disabled) checkbox.checked = isChecked(slot);
tree.setExpanded(item, isExpanded(slot));
}
tree.updateAllParentCheckboxes();
return true;
}
export function serializeStateToFragment(tree, manifest) {
const state = encodeTreeState(tree, manifest);
const params = new URLSearchParams({ v: String(state.version) });
if (state.checked) params.set('c', state.checked);
if (state.expanded) params.set('x', state.expanded);
return `#${params}`;
}
export function restoreStateFromLocation(tree, manifest, location = window.location) {
const state = decodeTreeState(location.hash ?? '', manifest);
if (state.applied) applyTreeState(tree, manifest, state);
return state;
}
export class CheckboxTree {
constructor(container, options = {}) {
if (!(container instanceof Element)) {
@@ -14,6 +315,7 @@ export class CheckboxTree {
this.container = container;
this.options = { ...DEFAULT_OPTIONS, ...options };
this.nodesById = new Map();
this.nodesByPath = new Map();
this.rootNodes = [];
this.handleChange = this.handleChange.bind(this);
this.handleClick = this.handleClick.bind(this);
@@ -29,11 +331,13 @@ export class CheckboxTree {
}
this.nodesById.clear();
this.nodesByPath.clear();
this.rootNodes = nodes;
this.indexNodes(nodes);
this.render();
this.updateAllParentCheckboxes();
this.restoreState();
if (this.options.manifest) this.restoreStateFromLocation();
}
getSelectedIds() {
@@ -66,9 +370,10 @@ export class CheckboxTree {
this.container.classList.remove('checkbox-tree');
this.container.replaceChildren();
this.nodesById.clear();
this.nodesByPath.clear();
}
indexNodes(nodes) {
indexNodes(nodes, parentPath = '') {
nodes.forEach(node => {
if (!node || typeof node.id !== 'string' || !node.id || typeof node.label !== 'string') {
throw new TypeError('Each CheckboxTree node requires non-empty string id and label properties.');
@@ -77,12 +382,18 @@ export class CheckboxTree {
throw new Error(`Duplicate CheckboxTree node id: ${node.id}`);
}
if (node.id.includes(PATH_DELIMITER)) {
throw new Error(`CheckboxTree node id cannot contain "${PATH_DELIMITER}": ${node.id}`);
}
this.nodesById.set(node.id, node);
const path = parentPath ? `${parentPath}${PATH_DELIMITER}${node.id}` : node.id;
this.nodesByPath.set(path, node);
if (node.children !== undefined) {
if (!Array.isArray(node.children)) {
throw new TypeError(`CheckboxTree node children must be an array: ${node.id}`);
}
this.indexNodes(node.children);
this.indexNodes(node.children, path);
}
});
}
@@ -191,6 +502,7 @@ export class CheckboxTree {
}
setExpanded(item, expanded) {
if (!item) return;
const toggle = item.querySelector(':scope > .checkbox-tree__row > .checkbox-tree__toggle');
const children = this.directChildrenContainer(item);
if (!toggle || !children) {
@@ -211,6 +523,11 @@ export class CheckboxTree {
return item.querySelector(':scope > .checkbox-tree__row .checkbox-tree__checkbox');
}
itemForNode(id) {
return Array.from(this.container.querySelectorAll('.checkbox-tree__item'))
.find(item => item.dataset.nodeId === id) ?? null;
}
updateAncestorCheckboxes(item) {
let parentItem = item.parentElement?.closest('.checkbox-tree__item');
while (parentItem && this.container.contains(parentItem)) {
@@ -286,4 +603,16 @@ export class CheckboxTree {
});
}
}
validateManifest(manifest = this.options.manifest) {
return validateManifest(manifest, this);
}
serializeStateToFragment(manifest = this.options.manifest) {
return serializeStateToFragment(this, manifest);
}
restoreStateFromLocation(manifest = this.options.manifest, location = window.location) {
return restoreStateFromLocation(this, manifest, location);
}
}