{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000012457371,
        "rte": "az",
        "prob": 0.000012457371
      }
    ],
    "prob": 0.000012457371,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001245737075805664,
        "type": "xz"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012209017768327612,
        "type": "python"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011066596016462427,
        "type": "python"
      },
      {
        "id": 15,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010281801223754883,
        "type": "python_bytecode"
      },
      {
        "id": 17,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010281801223754883,
        "type": "python_bytecode"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-01T06:06:51Z"
  },
  "path": "py312-flask-flatpages-0.9.0.tgz",
  "raw": {
    "files": [
      {
        "id": 0,
        "mol": "H₂(Cm₃F)",
        "sha": "20a304f70475d11bff9bef17a6c565bd98cc803c30be295c3a60ed94c695f4cb",
        "path": "/data/samples/incoming/forager/netbsd/netbsd.org/_/py312-flask-flatpages-0.9.0/py312-flask-flatpages-0.9.0.tgz",
        "risk": 2,
        "size": 20084,
        "type": "xz",
        "facts": {
          "metrics": {
            "file": {
              "size": 20084,
              "entropy": 7.99
            },
            "binary": {
              "peak_region_bytes": 20084,
              "peak_region_entropy": 7.84
            },
            "consistency": {
              "extension_content_mismatch": 1,
              "extension_content_mismatch.archive_as_archive": 1
            }
          }
        },
        "ident": {
          "name": {
            "value": "py312-flask-flatpages",
            "source": "file.basename",
            "verified": false
          },
          "trust": "unsigned",
          "version": {
            "value": "0.9.0",
            "source": "file.basename",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 23
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-dist",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python runtime dependencies",
            "from": [
              {
                "file": 23
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/traverse::traverse-walk-call",
            "conf": 0.84,
            "crit": 3,
            "desc": "Calls os.walk for filesystem enumeration",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 23
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/response::source-http-404-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Source calls HTTP 404 response",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-license-file",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package license file",
            "from": [
              {
                "file": 23
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/domain::http-url-binary",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.7,
            "crit": 3,
            "desc": "Embedded HTTP or WebSocket URL",
            "from": [
              {
                "file": 15
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 23
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 23
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-python",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares supported Python versions",
            "from": [
              {
                "file": 23
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "a%FjhBzkM9BA]0vB-7Yhx(v)gaARJAA+fc0wPw[/vrcc]z*c7wBy/YsaARJAnk@qSe*qF-3jpx=z/3RsD2NFnxcp]9AbP=savxNNy**^?wH[%6D2Ns}vr8Y?ze:AlBrCBeA+/i7CwW+1A=k!qzddE2wn=Wfe[GoHwO#N6z/fRsx(d*cA=-Blz!9A)x-",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "arUiaw/$C/x(mTbuTCj5wO+%fay/tcBy/uiefF?szdLdS3lQDlarR^Har\u00260N3lQDlarR^Haw3D+Bzkf1x(^\u0026dBzbkdpgn0Jwk^O\u003cx(mMPpC8$YarR^HarR^Hi=FIFvqNb%z/fVdzGE]Zra]?=B98CpzF78lzY\u0026I2aARTnvru6\u003eayPslvixSkA+eV@3lQDlarR^HauBEIA:-/czEEx[iV}ynwGU(0zdK\u0026izY\u0026FgBywV)aARJABzbkdB98ClvqNRts7#F!3lQDlarR^HarR^HayX[8v@DmaB.$Y2azCZowIdQFaw#=VwmY^IA=M8sB0bHix(^\u0026@ayYQsAcV.qzep*iarR^HarR^Ha%FirarR^HarR^HB9hCkAWSv?uTEI+x()Y?c$vgkBy/uidgdguarR^HarU-py?tqqvqPM#jS[SJzdK4Y3s)ZWazbLjv}x1\u0026zFrQ0wmWfjvqH6$efFIwv@C)(zF89RB-.jEi3G)@wPz*fA=Tw/B94",
            "ln": 389,
            "col": 3,
            "line": 22
          },
          {
            "b": "z*c7wmr\u0026]=zGxJgzxJ\u003ebygQ)%B1N!xarR^}CYWImB7]MgB0bKywN/B^x\u003ep/$Cwhejaz2CjA^qRxx(n2nB98CpzFa2kB7/Gmy?aU$wGUG3zF0P}B-I57aA.:tzF6q0arR!mu}9*Qr8t\u003eJmn)LZsx4Z:q+o+WuQEQ:mOc9Gu%\u003eO]3lQDlatbn?uQF:xwK{JKx()]E3lQDlarR^HxMOuniXJdgCxUVKA+e*ax(^*6z7Y:Exd[jAz!-\u0026[BAo9OD30.rzy]ZlA+/i7CwY63z!9AIx(4H9wEoL5arSo?ayv@\u003cxkIi$BAoF=xMOuniXJd9D1Q#9zGG}Lz/PFz3lQDlar\u00260N3lQDlazCBgw]7)$Aa9x\u003cB2\u003cTJarR^HarR!rCYWImB7]MgB09Q*w]7)$Aa9x\u003cB1Q%vzF0P}c)AIpA+/i7CwZ=0CYWImB7]MgB0r4uao",
            "ln": 1359,
            "col": 24,
            "line": 50
          },
          {
            "b": "z/fRsjS)%m3lQDlarR^Haz2!twO#N6z/e](z/ff3xlbgUaBwIz3lQDlarR^HazbLjaz2!twO#N6z/cXizxJ\u003erx\u003eIc$vqGpZCYWImB7]MgB2\u003cTJarR^HarR^HarR!vw/$/ex(n0lvqYN^c$NTBwO#N6z/d9GB98BKayPd#ar\u003erlwmYB*y?X05a%pPqaz2!twO#N6z/dPyarR^HarR^HarR^HarR^Hv@Dmbx(n683lQDlarR^HarR^Haz2w6w/$/ex(n0lvqYN^c$NTBwO#N6z/d9Gv@C)?",
            "ln": 1980,
            "col": 16,
            "line": 67
          },
          {
            "b": "CYWImB7]MgefG1QAW:3RarR^HarR^HarR^HarR^Hx\u003ewG0CYWImB7]MgazCZoz/PM8x(mu}uT[1(w[+)s3lQDlarR^HarR^HarR^HarR^Haz2!twO#N6z/e](z/ff3xldo*CYWImB7]Mgt{8oMz/PM8x(mu}uT[1(",
            "ln": 2330,
            "col": 28,
            "line": 76
          },
          {
            "b": "y?l%:wOc0iB98XzwJy@PBAeG!ar\u003eucw)]*#BrSdReJ$p#BAfzHarR^Ha%Fi(A+funA=9]XBzbkdlSl]awmYv!zFsibz/fRsw]zYjBzbkdu{!\u003cywK{JKx()]]uM-6KA+/i7CwXKxy\u0026%x8zy#n6arR^Hi=FIFvqNcdBA}XliV}ynwGT/{xkIi$BAnNjB98XzwNF\u003c/Bz\u0026pAB7D%h3lQDlawV(\u003eC{3KsvqfK^vR/P#x\u003ewF}p\u003cDX\u003cwO#Qhu%+3\u003cB1N!barR^He?OnNlVlHDnnh)OBy^GuarR^HarR!uBAzE.fe4J[Cp)GFwO371B7xiae]L=yfk$@IygQ)%B1.GTBzbPg",
            "ln": 2661,
            "col": 17,
            "line": 86
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "TypeVar"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "value.decode"
            ],
            [
              "",
              "flatpages.config"
            ],
            [
              "",
              "flatpages.config"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "extensions.append"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "markdown.markdown"
            ],
            [
              "",
              "PygmentsHtmlFormatter"
            ],
            [
              "",
              "formatter.get_style_defs"
            ],
            [
              "",
              ".imports"
            ],
            [
              "",
              ".imports.PygmentsHtmlFormatter"
            ],
            [
              "",
              "Callable"
            ],
            [
              "",
              "StringIO"
            ],
            [
              "",
              "TypeVar"
            ],
            [
              "",
              "codehilite"
            ],
            [
              "",
              "io"
            ],
            [
              "",
              "markdown"
            ],
            [
              "",
              "markdown.extensions"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "codehilite.CodeHiliteExtension",
            "extensions.append",
            "flatpages.config",
            "formatter.get_style_defs",
            "markdown.markdown",
            "self.name",
            "super().__init__",
            "value.decode"
          ],
          "tgt": [
            "PygmentsHtmlFormatter",
            "TypeVar",
            "extensions.append",
            "flatpages.config",
            "formatter.get_style_defs",
            "isinstance",
            "markdown.markdown",
            "super",
            "super().__init__",
            "value.decode"
          ],
          "funcs": [
            [
              "__init__",
              391
            ],
            [
              "force_unicode",
              734
            ],
            [
              "pygmented_markdown",
              955
            ],
            [
              "pygments_style_defs",
              2645
            ]
          ],
          "metrics": {
            "ast": {
              "op.land": 1,
              "max_depth": 14,
              "call_count": 14,
              "node_count": 479,
              "member_count": 8,
              "max_array_len": 1,
              "op_density.land": 0,
              "member_depth_max": 2
            },
            "file": {
              "size": 3151,
              "entropy": 4.67
            },
            "text": {
              "lines": 99,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 637,
              "char_entropy": 4.67,
              "unique_chars": 65,
              "top_char_null": 0,
              "string_density": 0.15,
              "top_char_ratio": 0.08,
              "avg_line_length": 30.83,
              "max_line_length": 77,
              "empty_line_ratio": 0.25,
              "last_line_length": 50,
              "whitespace_ratio": 0.23,
              "identifier_density": 1.04,
              "line_length_stddev": 24.65,
              "normalized_string_count": 1.51,
              "repeated_char_sequences": 9,
              "suspicious_string_ratio": 0.33,
              "suspicious_identifier_ratio": 0.03,
              "normalized_unique_identifiers": 6.03
            },
            "binds": {
              "count": 13
            },
            "binary": {
              "peak_region_bytes": 3151,
              "peak_region_entropy": 4.7
            },
            "source": {
              "class_count": 1,
              "function_count": 4
            },
            "imports": {
              "count": 10,
              "relative": 2,
              "stdlib_count": 2,
              "stdlib_ratio": 0.2,
              "relative_ratio": 0.2,
              "third_party_count": 8,
              "third_party_ratio": 0.8
            },
            "strings": {
              "sql": 1,
              "bytes": 1449,
              "count": 15,
              "shell": 3,
              "avg_length": 96.6,
              "max_length": 619,
              "avg_entropy": 3.29,
              "entropy_stddev": 1.18,
              "embedded_code_candidates": 1
            },
            "functions": {
              "count": 5,
              "density": 4.04,
              "avg_params": 2.25,
              "code_ratio": 0.73,
              "max_params": 3,
              "length_stddev": 14.78,
              "avg_name_length": 14.5,
              "avg_length_lines": 18,
              "max_length_lines": 43,
              "min_length_lines": 5,
              "high_entropy_names": 1,
              "avg_param_name_length": 5.78
            },
            "identifiers": {
              "count": 103,
              "unique": 40,
              "avg_length": 9.25,
              "max_length": 21,
              "min_length": 1,
              "avg_entropy": 2.57,
              "reuse_ratio": 0.39,
              "length_stddev": 5.15,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.03,
              "high_entropy_count": 3,
              "high_entropy_ratio": 0.08,
              "all_lowercase_ratio": 0.8,
              "all_uppercase_ratio": 0.03,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 1,
        "mol": "H(Cm)",
        "path": "/data/samples/incoming/forager/netbsd/netbsd.org/_/py312-flask-flatpages-0.9.0/py312-flask-flatpages-0.9.0.tgz!!lib/python3.12/site-packages/flask_flatpages/utils.py",
        "risk": 1,
        "sha": "3384c701d15e9a8ea3d0af91c78d223c6b08c1e514f7f8f64bed73f1ba7b68f4",
        "size": 3151,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "spans": [
              [
                1523,
                61
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%Fj2y*?B8vp%d)az2!twO#N6z/dfKa%Ev3w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGue0ze:AlBrCHy3tBu@z/P}xCvtJfx(mN83tar%z6itby\u00260V)BzkVhB1Q)gv\u003c2G5AbP=saw3V^A::6dATDA0z/3ReB-7Yhz/oB",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "p*[0Fu)6w%ygQ)%B1OTXa{[V1arR^KiV{?4w)]*#BrC7izF0P}B-H]jx(v(iw]zYjmR(HPp*[0FB0b4sBy/uhx(v\u003e@arR^HwmYvYB.(ebv@Dl%x\u003eFLKasENtarR^HarR^Pb64QuBrSmUb5*$6wPG4Aed9HxarR^HarS6RwQ5rdzGxJgzxZROa$^LJzepyBed9HxarR^HarS6RwO#0@wnb{]a$K\u0026XB-.jEi3G!53lQDlarR^HasFBEBzU\u00263A+fc0wPzv5a$K\u003cQD1Q#9zGGD2uU%j(yH?vczyEazarR^HarR^Hc)AIpA+/g",
            "ln": 497,
            "col": 32,
            "line": 23
          },
          {
            "b": "zE\u003c}NawM\u0026)wH[%wvqPNpaAITBaBCqbz/fbejS)HrzE\u003emT3lQDlarR^Har\u00260NnP5l:x\u003c\u003e*(DsXi*y*?AZvp%d)az2!twO#N6z/dfm3lQDlarR^HauBEIA:-/cvq{fDax-S9AV!!fAbok#vruj4zz050vqWh%wGU]dx([DdwftO#aBd)Fay!?@yZIpcarR^HarR^HarR^HarR^HarSZZwPRPDu$\u003cH)ByeD}A9%/8vru73e^-ZzarR^HarSZ!D2Nsqvq{fDavdbhv@bN{B2)YTw]7)%yC57)vrli(azC.mByx5%wEoL5arR^HarSZ:vrb^[az$R8wJy@kxK@r7vqPM#w]zYjBzbxfavZfQBwMyUwPF#dzGx]dzEWlgaxrF]wftG5AV/gpz!\u003c68x9]+7arR^HarR^HarR^HarR^HarU/Cay/tcw[+)2C42ifwPF#pB7]J83lQDlarR^HarR^HarR^H",
            "ln": 1009,
            "col": 39,
            "line": 39
          },
          {
            "b": "c[cOL3lQDlay]4}ay/tcw[+)aB7Gf1efF.tC@^6?BAe/\u003e3lQDlarR^Har\u00260NqE%oEayO=4BZY8ev@Dl%x\u003eINevruj4zxJLiz/3Q^y*?y2ayPkdy?Wx/BzkVhay/tcw[+)g3jm)#arR^HarSZ:vrb^[azULliV}amCv+/8vrl05v@Dl%x\u003eFM7wQbzgA=k!qi:)bLAYNPswObv[y\u0026\u003c2]z/ff3xj8\u003c7B-qed3lQDlarR^Har\u00260N3lQDlarR^HaAz4nB-Ivxv%8*jwO#P%vq{frv@Dl%x\u003eHS]uM}aqz!T8qd05%ow?EOizF0P}uVp3%w[=GvazULle{hbLwPxgFdjFKf",
            "ln": 2434,
            "col": 39,
            "line": 76
          },
          {
            "b": "3lQDlarR^HaAg+4wGTbUB7Gf1e[X:qc#-QpxEKoharR^HarR!vw/$#fBrCKhxjTaharR^HarR^HarR^HvpBd}Bsn$1g:@+OarR^HarR!EwPS6nzxJ[bxjRzSarR^HwmYu}x(mTbuTW[)d05%ow?k6kAbW\u0026XmR(HOyBIpKarR^HarR^Ha%FirarR^HarR^HrDzZ]Bz\u0026pozFsibvqGU7wGUA0ayPkdy?Wx/BzkVhe^.}darR^HarR!bwOc73azbLjaAg+gB7]J8ayPdgvq{fdy*?A%AV!!dwftr1A3e+3v@#TfC{46mBAz8mzGvAq3lQDlarR^HauBEIA:-/cvq{fDaBd)FAV!!fAbok#vruj4zvdHearR^HarSZ!D2Nsqvq{fDayMxNv@bN{B2)YTw]7)%yC57)vrli(azC.mByx5%wEoL5arR^HarR\u003cLa{]CnarR^HarR)Kq/({",
            "ln": 3284,
            "col": 12,
            "line": 103
          },
          {
            "b": "arR^Ja%EvparR^HarR!axK@qQy*?y2avf%=y?Wx/BzkVhayPtjz!0G\u0026By!#9CwhejaARphB0b4sBy/uhx(v(w3jm)#arR^HarS%Wv}x.5x(mMaBzbkdvq{g4x\u003e7N[x(v(ix(n0lvqYN^aARphB0bWnC{3*xaz#atayO/7x(^\u0026@e*abbx(:R7arR^H",
            "ln": 4296,
            "col": 6,
            "line": 135
          },
          {
            "b": "wft#cwGUP0y?j.%zffGewNEa$arR^HarR^Ha%FirarR^HarR^HzffGewGTbUz/WKIvrufnxjVg4BzkP6c$WgfwO${[wHN%earR^HarR!pvpJ$Zwfs2TB7Gf1e)\u0026j8y?l%-vpJ$Ze[X:qc$WgfwO${[wHN@[arR^HarR^Hx\u003ewF$vpJ$Zwftq#wftw\u003cv}YB:tqozajV%{8Bn",
            "ln": 6706,
            "col": 59,
            "line": 203
          },
          {
            "b": "x(mMajS[/Sy?tqfz/ff3xda%nzEWP}x(mMcdgcz8arR^HarR^HarR!Jx([2hz/xo9c$WgfwO${[wH[%nzEWP}x(mMDwO#0@wnb{]diJ5uazth3wnC*$iTM#LarR^HarR^HarR^HarUfjzGGDcBrAZ?xKL^?y?mStA+eV\u0026c[bGgarR^HarR^HarR^HAa9x\u003cauZ\u0026*wO+%huVoB]B7D+fz/fVdzGEALAa9\u003c4efF$Ay*Rc\u0026Bz99garR^HarR^HarR^HB7Gf1e)\u0026j8y?l%-vpJ$Ztv}O=wO${[wD",
            "ln": 6932,
            "col": 18,
            "line": 211
          },
          {
            "b": "pFLq9e^-ZzarR^HarR^HarR\u003cLa{]CnarR^HarR^HarUomAV!\u003emA:J=]Bz9iFuO0six(4u#vqPN%azCZoz/WKPvqGZcB7Gf1e]\u003e(GBsxlTarR^HarR^HarR^HarR^HA+f5]Aa9\u003c4auZ\u0026SB-H\u0026dvrufnA+fiavpJ\u003c%B7Gf1e]\u003e(GBsXKUa$kcXB98CpA42TCe]$PydgdguarR^HarR^HarR^HarUSiBzb32A+e\u0026%CPYc(BAILswHIOgy*Rc\u0026Bz9pFAbolgc#TeVB7GqtdiJtpaAz4fuVoB}xDQ(5B7DExdgcz8arR^HarR^HarR^HarR!sz/M$rvqPM#x(k59x(4u#vqPN%iTM#LarR^HarR^HarR^HarR^HarUxgaz#ataz$R8wIdLiwoh%eBz97lCYWImB7]Mgdlm!UarR^HarR^HarR^HarR^HarR^HarR!pz/fVhzGPH$3lQDlarR^HarR^HarR^HarR^Hazb+jy*R6*z2",
            "ln": 7631,
            "col": 41,
            "line": 234
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "\"_\".join"
            ],
            [
              "",
              "name.upper"
            ],
            [
              "",
              "self.init_app"
            ],
            [
              "",
              "iter"
            ],
            [
              "",
              "self._pages.values"
            ],
            [
              "",
              "\"_\".join"
            ],
            [
              "",
              "key.upper"
            ],
            [
              "",
              "self.get"
            ],
            [
              "",
              "abort"
            ],
            [
              "",
              "\"_\".join"
            ],
            [
              "",
              "key.upper"
            ],
            [
              "",
              "app.config.setdefault"
            ],
            [
              "",
              "app.before_request"
            ],
            [
              "",
              "warnings.warn"
            ],
            [
              "",
              "warnings.warn"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "os.path.join"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "os.path.join"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "force_unicode"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "self.reload"
            ],
            [
              "",
              "os.path.getmtime"
            ],
            [
              "",
              "self._file_cache.get"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "handler.read"
            ],
            [
              "",
              "self._parse"
            ],
            [
              "",
              "os.walk"
            ],
            [
              "",
              "cur_path.replace(self.root, \"\").lstrip"
            ],
            [
              "",
              "cur_path.replace"
            ],
            [
              "",
              "tuple"
            ],
            [
              "",
              "rel_path.split"
            ],
            [
              "",
              "name.endswith"
            ],
            [
              "",
              "os.path.join"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "name.endswith"
            ],
            [
              "",
              "\"/\".join"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "path.lower"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "tuple"
            ],
            [
              "",
              "extension.split"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "tuple"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "type"
            ],
            [
              "",
              "walker"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "self._load_file"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "legacy_parser"
            ],
            [
              "",
              "libyaml_parser"
            ],
            [
              "",
              "self.config"
            ],
            [
              "",
              "callable"
            ],
            [
              "",
              "import_string"
            ],
            [
              "",
              "self._smart_html_renderer"
            ],
            [
              "",
              "Page"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "getfullargspec"
            ],
            [
              "",
              "html_renderer"
            ],
            [
              "",
              "html_renderer"
            ],
            [
              "",
              "html_renderer"
            ],
            [
              "",
              "html_renderer"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              ".page"
            ],
            [
              "",
              ".page.Page"
            ],
            [
              "",
              ".parsers"
            ],
            [
              "",
              ".parsers.legacy_parser"
            ],
            [
              "",
              ".parsers.libyaml_parser"
            ],
            [
              "",
              ".utils"
            ],
            [
              "",
              ".utils.WrappedRenderer"
            ],
            [
              "",
              ".utils.force_unicode"
            ],
            [
              "",
              ".utils.pygmented_markdown"
            ],
            [
              "",
              "Flask"
            ],
            [
              "",
              "Iterator"
            ],
            [
              "",
              "abort"
            ],
            [
              "",
              "cached_property"
            ],
            [
              "",
              "collections.abc"
            ],
            [
              "",
              "current_app"
            ],
            [
              "",
              "flask"
            ],
            [
              "",
              "functools"
            ],
            [
              "",
              "getfullargspec"
            ],
            [
              "",
              "import_string"
            ],
            [
              "",
              "inspect"
            ],
            [
              "",
              "os"
            ],
            [
              "",
              "warnings"
            ],
            [
              "",
              "werkzeug.utils"
            ]
          ],
          "mbr": [
            "app.before_request",
            "app.config",
            "app.config.setdefault",
            "app.extensions",
            "app.extensions.flatpages",
            "app.setter",
            "cur_path.replace",
            "cur_path.replace().lstrip",
            "current_app.config",
            "current_app.instance_path",
            "current_app.root_path",
            "extension.split",
            "getfullargspec().args",
            "handler.read",
            "key.upper",
            "name.endswith",
            "name.upper",
            "os.path",
            "os.path.getmtime",
            "os.path.join",
            "os.sep",
            "os.walk",
            "page.body",
            "path.lower",
            "rel_path.split",
            "self.__dict__",
            "self.__dict__._pages",
            "self._app",
            "self._conditional_auto_reset",
            "self._file_cache",
            "self._file_cache.get",
            "self._load_file",
            "self._pages",
            "self._pages.values",
            "self._parse",
            "self._root",
            "self._smart_html_renderer",
            "self.app",
            "self.app.debug",
            "self.config",
            "self.config_prefix",
            "self.default_config",
            "self.get",
            "self.init_app",
            "self.name",
            "self.reload",
            "self.root",
            "type().__name__",
            "warnings.warn"
          ],
          "tgt": [
            "Page",
            "ValueError",
            "_walker",
            "abort",
            "app.before_request",
            "app.config.setdefault",
            "callable",
            "cur_path.replace",
            "cur_path.replace().lstrip",
            "extension.split",
            "force_unicode",
            "getfullargspec",
            "handler.read",
            "html_renderer",
            "import_string",
            "isinstance",
            "iter",
            "key.upper",
            "legacy_parser",
            "len",
            "libyaml_parser",
            "name.endswith",
            "name.upper",
            "open",
            "os.path.getmtime",
            "os.path.join",
            "os.walk",
            "path.lower",
            "rel_path.split",
            "self._file_cache.get",
            "self._load_file",
            "self._pages.values",
            "self._parse",
            "self._smart_html_renderer",
            "self.config",
            "self.get",
            "self.init_app",
            "self.reload",
            "tuple",
            "type",
            "warnings.warn"
          ],
          "funcs": [
            [
              "__init__",
              975
            ],
            [
              "__iter__",
              2306
            ],
            [
              "config",
              2443
            ],
            [
              "get",
              2711
            ],
            [
              "get_or_404",
              3108
            ],
            [
              "init_app",
              3384
            ],
            [
              "app",
              4267
            ],
            [
              "app",
              4976
            ],
            [
              "reload",
              5264
            ],
            [
              "root",
              5620
            ],
            [
              "_conditional_auto_reset",
              6273
            ],
            [
              "_load_file",
              6523
            ],
            [
              "_pages",
              7226
            ],
            [
              "_walker",
              7421
            ],
            [
              "_parse",
              9666
            ],
            [
              "_smart_html_renderer",
              10627
            ],
            [
              "wrapper",
              11396
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 1,
              "op.bor": 3,
              "op.sub": 1,
              "op.land": 1,
              "max_depth": 21,
              "call_count": 70,
              "node_count": 2064,
              "member_count": 49,
              "max_array_len": 10,
              "op_density.add": 0,
              "op_density.bor": 0,
              "op_density.sub": 0,
              "op_density.land": 0,
              "max_concat_chain": 2,
              "member_depth_max": 3
            },
            "file": {
              "size": 12453,
              "entropy": 4.31
            },
            "text": {
              "lines": 363,
              "top_char": 101,
              "max_ws_run": 2,
              "digit_ratio": 0,
              "space_count": 3817,
              "char_entropy": 4.31,
              "unique_chars": 84,
              "top_char_null": 0,
              "string_density": 0.19,
              "top_char_ratio": 0.07,
              "avg_line_length": 33.31,
              "max_line_length": 79,
              "empty_line_ratio": 0.19,
              "last_line_length": 22,
              "whitespace_ratio": 0.34,
              "identifier_density": 1.16,
              "line_length_stddev": 24.57,
              "normalized_string_count": 3.57,
              "repeated_char_sequences": 113,
              "suspicious_string_ratio": 0.28,
              "normalized_unique_identifiers": 13.88
            },
            "binds": {
              "count": 39
            },
            "binary": {
              "peak_region_bytes": 7168,
              "peak_region_entropy": 4.61
            },
            "source": {
              "class_count": 1,
              "function_count": 16
            },
            "imports": {
              "count": 23,
              "relative": 9,
              "stdlib_count": 5,
              "stdlib_ratio": 0.22,
              "relative_ratio": 0.39,
              "third_party_count": 18,
              "third_party_ratio": 0.78
            },
            "strings": {
              "sql": 3,
              "bytes": 4901,
              "count": 68,
              "shell": 14,
              "avg_length": 72.07,
              "max_length": 896,
              "avg_entropy": 3.12,
              "empty_count": 1,
              "entropy_stddev": 1.21,
              "embedded_code_candidates": 2
            },
            "comments": {
              "chars": 777,
              "count": 17,
              "lines": 17,
              "to_code_ratio": 0.05
            },
            "functions": {
              "count": 17,
              "nested": 2,
              "density": 4.68,
              "avg_params": 1.82,
              "code_ratio": 0.99,
              "max_params": 4,
              "length_stddev": 15.82,
              "avg_name_length": 8.12,
              "no_params_count": 1,
              "avg_length_lines": 21.24,
              "max_length_lines": 62,
              "min_length_lines": 3,
              "avg_nesting_depth": 0.12,
              "max_nesting_depth": 1,
              "high_entropy_names": 1,
              "avg_param_name_length": 5.03
            },
            "identifiers": {
              "count": 422,
              "unique": 118,
              "avg_length": 7.73,
              "max_length": 23,
              "min_length": 1,
              "avg_entropy": 2.46,
              "reuse_ratio": 0.28,
              "length_stddev": 4.16,
              "has_digit_ratio": 0.01,
              "single_char_count": 1,
              "single_char_ratio": 0.01,
              "high_entropy_count": 4,
              "high_entropy_ratio": 0.03,
              "all_lowercase_ratio": 0.92,
              "all_uppercase_ratio": 0.01,
              "numeric_suffix_count": 1,
              "double_underscore_count": 4,
              "underscore_prefix_count": 14
            }
          }
        },
        "id": 3,
        "mol": "H₂(CmF)",
        "path": "/data/samples/incoming/forager/netbsd/netbsd.org/_/py312-flask-flatpages-0.9.0/py312-flask-flatpages-0.9.0.tgz!!lib/python3.12/site-packages/flask_flatpages/flatpages.py",
        "risk": 2,
        "sha": "bd471c43b0413c66e7ac36f87e98310f875a537384b9826756630c8344c7f6b6",
        "size": 12453,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/response::source-http-404-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Source calls HTTP 404 response",
            "spans": [
              [
                3348,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/traverse::traverse-walk-call",
            "conf": 0.84,
            "crit": 3,
            "desc": "Calls os.walk for filesystem enumeration",
            "spans": [
              [
                7695,
                7
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "spans": [
              [
                7059,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "+ma)/00000Um}^/pyEj6\u0026@x5V000000000000SA6000000p##^005t=wb]^kwc3ixyYOwOs]@Kys{1^9wc3iyyY)]Awc3izyZ1UWs{t0cwcDGFyZj!.s{Lcewc3iCyZB}=s{+og0SV^lwc/jp00000003ggwDDAJx8#MLw=-?I003gi0SUZ\u003cwc)[?wc#(PwE+:z00000003gkwd-tWGAkl/wd\u0026zYwEJeLwdsg}s}LoUwdAeVwdJkWw=#SQGAUJ(C(]GfDnnGx",
            "ln": 0
          },
          {
            "b": "JrGpZD\u0026ZnG0000000031D\u0026!V}uJHic00000004oBdfs?V3lQDlarR^Haw3D+Bzkf1x(^\u0026dBzbkdpgn0Jwk^O\u003cx(mMPpC8$YarR^HarR^Hi=FIFvqNb%z/fVdzGE]Zra]?=B98CpzF78lzY\u0026I2aARTnvru6\u003eayPslvixSkA+eV@3lQDlarR^HauBEIA:-/czEEx[iV}ynwGU(0zdK\u0026izY\u0026FgBywV)aARJABzbkdB98ClvqNQ",
            "ln": 521
          },
          {
            "b": "vrcc]z*c7wmr\u0026]=zGxJgzxJ\u003ebygQ)%B1N!xarR^}CYWImB7]MgB0bKywN/B^x\u003ep/$Cwhejaz2CjA^qRxx(n2nB98CpzFa2kB7/Gmy?aU$wGUG3zF0P}B-I57aA.:tzF6q0arR!mu}9*Qr8t\u003eJmn)LZsx4Z:q+o+WuQEQ:mOc9Gu%\u003eO]3lQDlatbn?uQF:xwK{JKx()]E3lQDlarR^HxMOuniXJdgCxUVKA+e*ax(^*6z7Y:Exd[jAz!-\u0026[BAo9OD30.rzy]ZlA+/i7CwY63z!9AIx(4H9wEoL5arSo?ayv@\u003cxkIi$BAoF=xMOuniXJd9D1Q#9zGG}Lz/PFz3lQDlaLEGCvrcc]z*c8awQ5rdzGxJgzGBIzwQ5rdzGxJgzEl)(zF0P}B8?A:001CH*6RzoBy/uhx(v)gAWpX=04wic24IN?w[+)#2lj-7AVj#U0cf4V0043y0002M6glXGwK{JKx()]PCYWImB7]Mg*6g#8",
            "ln": 2168
          },
          {
            "b": "wce!j00000002{$dfB0Q0rr9XA+funA=9]XBzbkdlSl]awmYv!zFsibz/fRsw]zYjBzbkdu{!\u003cywK{JKx()]]uM-6KA+/i7CwXKxy\u0026%x8zy#n6arR^Hi=FIFvqNcdBA}XliV}ynwGT/{xkIi$BAnNjB98XzwNF\u003c/Bz\u0026pAB7D%h3lQDlawV(\u003eC{3I",
            "ln": 3013
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "pyc": {
              "timestamp": 1779897519,
              "source_size": 3151,
              "source_file_count": 1
            },
            "file": {
              "size": 3824,
              "entropy": 5.61
            },
            "binary": {
              "peak_region_bytes": 2800,
              "peak_region_entropy": 5.89
            }
          }
        },
        "id": 15,
        "mol": "H(Cm)",
        "path": "/data/samples/incoming/forager/netbsd/netbsd.org/_/py312-flask-flatpages-0.9.0/py312-flask-flatpages-0.9.0.tgz!!lib/python3.12/site-packages/flask_flatpages/__pycache__/utils.cpython-312.opt-1.pyc",
        "pid": 0,
        "risk": 1,
        "sha": "1c410af602d3d10cbaeef34b8073e3927ef85131d59298e40a6530c833f53c31",
        "size": 3824,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/domain::http-url-binary",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.7,
            "crit": 3,
            "desc": "Embedded HTTP or WebSocket URL",
            "spans": [
              [
                2329,
                26
              ],
              [
                2412,
                20
              ]
            ]
          }
        ],
        "type": "python_bytecode"
      },
      {
        "ctx": [
          {
            "b": "+ma)/00000Um}^/pyEj6\u0026@x5V000000000000SA6000000p##^005t=wb]^kwc3ixyYOwOs]@Kys{1^9wc3iyyY)]Awc3izyZ1UWs{t0cwcDGFyZj!.s{Lcewc3iCyZB}=s{+og0SV^lwc/jp00000003ggwDDAJx8#MLw=-?I003gi0SUZ\u003cwc)[?wc#(PwE+:z00000003gkwd-tWGAkl/wd\u0026zYwEJeLwdsg}s}LoUwdAeVwdJkWw=#SQGAUJ(C(]GfDnnGx",
            "ln": 0
          },
          {
            "b": "JrGpZD\u0026ZnG0000000031D\u0026!V}uJHic00000004oBdfs?V3lQDlarR^Haw3D+Bzkf1x(^\u0026dBzbkdpgn0Jwk^O\u003cx(mMPpC8$YarR^HarR^Hi=FIFvqNb%z/fVdzGE]Zra]?=B98CpzF78lzY\u0026I2aARTnvru6\u003eayPslvixSkA+eV@3lQDlarR^HauBEIA:-/czEEx[iV}ynwGU(0zdK\u0026izY\u0026FgBywV)aARJABzbkdB98ClvqNQ",
            "ln": 521
          },
          {
            "b": "vrcc]z*c7wmr\u0026]=zGxJgzxJ\u003ebygQ)%B1N!xarR^}CYWImB7]MgB0bKywN/B^x\u003ep/$Cwhejaz2CjA^qRxx(n2nB98CpzFa2kB7/Gmy?aU$wGUG3zF0P}B-I57aA.:tzF6q0arR!mu}9*Qr8t\u003eJmn)LZsx4Z:q+o+WuQEQ:mOc9Gu%\u003eO]3lQDlatbn?uQF:xwK{JKx()]E3lQDlarR^HxMOuniXJdgCxUVKA+e*ax(^*6z7Y:Exd[jAz!-\u0026[BAo9OD30.rzy]ZlA+/i7CwY63z!9AIx(4H9wEoL5arSo?ayv@\u003cxkIi$BAoF=xMOuniXJd9D1Q#9zGG}Lz/PFz3lQDlaLEGCvrcc]z*c8awQ5rdzGxJgzGBIzwQ5rdzGxJgzEl)(zF0P}B8?A:001CH*6RzoBy/uhx(v)gAWpX=04wic24IN?w[+)#2lj-7AVj#U0cf4V0043y0002M6glXGwK{JKx()]PCYWImB7]Mg*6g#8",
            "ln": 2168
          },
          {
            "b": "wce!j00000002{$dfB0Q0rr9XA+funA=9]XBzbkdlSl]awmYv!zFsibz/fRsw]zYjBzbkdu{!\u003cywK{JKx()]]uM-6KA+/i7CwXKxy\u0026%x8zy#n6arR^Hi=FIFvqNcdBA}XliV}ynwGT/{xkIi$BAnNjB98XzwNF\u003c/Bz\u0026pAB7D%h3lQDlawV(\u003eC{3I",
            "ln": 3013
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "pyc": {
              "timestamp": 1779897519,
              "source_size": 3151,
              "source_file_count": 1
            },
            "file": {
              "size": 3824,
              "entropy": 5.61
            },
            "binary": {
              "peak_region_bytes": 2800,
              "peak_region_entropy": 5.89
            }
          }
        },
        "id": 17,
        "mol": "H(Cm)",
        "path": "/data/samples/incoming/forager/netbsd/netbsd.org/_/py312-flask-flatpages-0.9.0/py312-flask-flatpages-0.9.0.tgz!!lib/python3.12/site-packages/flask_flatpages/__pycache__/utils.cpython-312.pyc",
        "pid": 0,
        "risk": 1,
        "sha": "1c410af602d3d10cbaeef34b8073e3927ef85131d59298e40a6530c833f53c31",
        "size": 3824,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/domain::http-url-binary",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.7,
            "crit": 3,
            "desc": "Embedded HTTP or WebSocket URL",
            "spans": [
              [
                2329,
                26
              ],
              [
                2412,
                20
              ]
            ]
          }
        ],
        "type": "python_bytecode"
      }
    ],
    "rev": "01871",
    "v": "8"
  }
}