{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.035016496,
        "rte": "az",
        "prob": 0.035016496
      },
      {
        "cls": 0,
        "raw": 0.006571889,
        "rte": "az/tar",
        "prob": 0.006571889
      }
    ],
    "prob": 0.035016496,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0350164957344532,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002978245356644038,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002654393574630376,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014235575690690894,
        "type": "ruby"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000019371509552001953,
        "type": "ruby"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015596548109897412,
        "type": "ruby"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000018805265426635742,
        "type": "ruby"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001477201749366941,
        "type": "ruby"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012050072655256372,
        "type": "ruby"
      },
      {
        "id": 21,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      },
      {
        "id": 22,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      },
      {
        "id": 23,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      },
      {
        "id": 24,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001424551010131836,
        "type": "registry"
      },
      {
        "id": 25,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      },
      {
        "id": 26,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014543533325195312,
        "type": "registry"
      },
      {
        "id": 27,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      },
      {
        "id": 28,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-07T00:26:14Z"
  },
  "path": "app-info-2.2.0.gem",
  "raw": {
    "fetched": [
      {
        "kind": "dependency",
        "cached": true,
        "locator": "pkg:gem/ruby-macho",
        "outcome": "skipped",
        "fetched_at": 1788740773,
        "source_offset": 0,
        "source_sha256": "33c47fb2fa644fed6bc6dd8d3ae859415a532f6ca14253d63ecaa41588dbf346",
        "content_sha256": "8264de61e98f1eadf546c69bc7b1da573cb29e5bf0fc0497aeaaab54d241b529"
      },
      {
        "kind": "dependency",
        "size": 59904,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "59904"
          ],
          [
            "x-amz-id-2",
            "snYu7Oz1RgxvpLIr7gMCGKMgkQ7nqtGwRW3zFAmTkF9Y3rVsOx9K/ZhtfudBhXTIgEBFoXW/FWA="
          ],
          [
            "x-amz-request-id",
            "01KM1M292SM3KFPK"
          ],
          [
            "x-amz-replication-status",
            "PENDING"
          ],
          [
            "last-modified",
            "Tue, 01 Sep 2026 20:50:31 GMT"
          ],
          [
            "etag",
            "\"b30b26594fc6ed5f2c3ed2aaf7d05877\""
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "x-amz-meta-sha256",
            "JomU1E1iKC0c/Zm/EOrkjXJnGZFYrX6j4f7i2pRYtpU="
          ],
          [
            "x-amz-meta-gem",
            "rubyzip"
          ],
          [
            "x-amz-meta-version",
            "3.6.0"
          ],
          [
            "cache-control",
            "max-age=31536000"
          ],
          [
            "x-amz-meta-platform",
            "ruby"
          ],
          [
            "x-amz-meta-surrogate-key",
            "gem/rubyzip"
          ],
          [
            "x-amz-version-id",
            "EVJbQakWJZItKldbuBTa_3bkuoOuNoM."
          ],
          [
            "content-type",
            "application/octet-stream"
          ],
          [
            "via",
            "1.1 varnish, 1.1 varnish"
          ],
          [
            "x-backend",
            "F_S3 52.92.204.90:443, fastlyshield--shield_ssl_cache_bfi_krnt7300086_BFI 167.82.143.86:443"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "age",
            "408847"
          ],
          [
            "date",
            "Sun, 06 Sep 2026 14:24:38 GMT"
          ],
          [
            "x-served-by",
            "cache-bfi-krnt7300086-BFI, cache-pdx12329-PDX"
          ],
          [
            "x-cache",
            "HIT, HIT"
          ],
          [
            "x-cache-hits",
            "119, 0"
          ],
          [
            "x-timer",
            "S1788704679.933366,VS0,VE1"
          ],
          [
            "server",
            "RubyGems.org"
          ]
        ],
        "locator": "pkg:gem/rubyzip@3.6.0?checksum=sha256:268994d44d62282d1cfd99bf10eae48d7267199158ad7ea3e1fee2da9458b695\u0026platform=ruby",
        "outcome": "ok",
        "final_url": "https://rubygems.org/downloads/rubyzip-3.6.0.gem",
        "fetched_at": 1788704678,
        "pin_verified": true,
        "resolved_url": "https://rubygems.org/downloads/rubyzip-3.6.0.gem",
        "source_offset": 0,
        "source_sha256": "33c47fb2fa644fed6bc6dd8d3ae859415a532f6ca14253d63ecaa41588dbf346",
        "content_sha256": "268994d44d62282d1cfd99bf10eae48d7267199158ad7ea3e1fee2da9458b695"
      }
    ],
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgmfFA",
            "ln": 0
          }
        ],
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "sha": "33c47fb2fa644fed6bc6dd8d3ae859415a532f6ca14253d63ecaa41588dbf346",
        "path": "app-info-2.2.0.gem",
        "refs": [
          {
            "to": "pkg:gem/CFPropertyList",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/image_size",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/pngdefry",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/ruby-macho",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/ruby_android",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/rubyzip",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/uuidtools",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 6,
        "size": 18432,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 10,
              "runtime_dependency_count": 7,
              "development_dependency_count": 3
            },
            "file": {
              "size": 18432,
              "entropy": 7.41
            },
            "binary": {
              "peak_region_bytes": 14336,
              "peak_region_entropy": 7.82
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 15533,
              "max_filename_length": 17,
              "rtlo_filename_count": 0,
              "format.regular_count": 3,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            },
            "references": {
              "declared_count": 7,
              "unresolved_count": 0,
              "security_hold_count": 0,
              "unresolved_extension_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "app-info",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "http://github.com/icyleaf/app-info",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "icyleaf",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "2.2.0",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/fs/directory/delete::ruby-fileutils-rm-rf",
            "atk": "T1070.004",
            "mbc": "C0047",
            "conf": 0.95,
            "crit": 3,
            "desc": "Ruby recursively deletes a directory tree"
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree"
          },
          {
            "id": "micro-behaviors/crypto/certificate/usage::x509-string",
            "conf": 0.6,
            "crit": 2,
            "desc": "References X.509 certificate terminology"
          },
          {
            "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"
          },
          {
            "id": "micro-behaviors/crypto/certificate/usage::certificate-ref",
            "conf": 0.5,
            "crit": 2,
            "desc": "References certificate terminology"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-public-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby public_send method dispatch"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 14265,
              "entropy": 7.98
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 14265,
              "peak_region_entropy": 7.82
            }
          }
        },
        "id": 1,
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "path": "app-info-2.2.0.gem!!data.tar.gz",
        "pid": 0,
        "risk": 6,
        "sha": "7411ca3c3cef8e572e4b9696ba38f1080959059cdd23f200100a2b229c327ed1",
        "size": 14265,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          },
          {
            "id": "micro-behaviors/crypto/certificate/usage::certificate-ref",
            "conf": 0.5,
            "crit": 2,
            "desc": "References certificate terminology"
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree"
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-public-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby public_send method dispatch"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call"
          },
          {
            "id": "micro-behaviors/fs/directory/delete::ruby-fileutils-rm-rf",
            "atk": "T1070.004",
            "mbc": "C0047",
            "conf": 0.95,
            "crit": 3,
            "desc": "Ruby recursively deletes a directory tree"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "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"
          },
          {
            "id": "micro-behaviors/crypto/certificate/usage::x509-string",
            "conf": 0.6,
            "crit": 2,
            "desc": "References X.509 certificate terminology"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "boQPsz*C#juVQsfx(mM\u003cy?X05A:-=BaARTDwEn=Xx\u003c@hFavZ6YwIdLsAa9S{uVoB}xECkXe?.3PvKAYHuTDn]oHSq}dgds]pEdxQp^F5Ke{h5MxLz72c#rQbdiJ+Jy?mWeas6SRk$26Rk#Zxcx(mA%B.25Fc#rQbdgg9bADL#owGSveAbYe#zF0/uC4CYnx(v(p3jopmz8%ZRAaJJ[w[+:-BzkVhe]ClAay]ykD#\u003cmrv%!RaaAIHkv\u003eIUczdK?jarR^HarR^HjS(aXAbWyyzF0/m3lQEjAaJJiC4CYnx(v(iarR^HarS/\u0026l2Z^mzF0/Fi-XWEq+o+W3lQEjAaJJivrDW9z/P[warR^HarS/\u0026tpjb{D2d52w*Z\u003c\u003earU-AwN^u7zddc{arR^HarR^HauZ\u0026KcUW7oy?m3!e[n=:xkI6\u003ey+xjoz6@P@3lQEjAaJJiB9htpvrcSoarR^HarS/\u0026cSBU=A+69jzxK4tz!{Ldz/M$qz^)A%wGUA2A42Btvj#5dyBHxmzE:(2q=#*qw[=6)efFwsvqHjgx(+zlwPRG]vrt{2y?WV@aA?spB7]MgefF?szdLmvx\u003e870cKH$sB8UY2e[wKmv@=p5BzkVharR^\u0026asyc1vrb)%CwXKBz/oCmw]v",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "azC.9z.u0Bx(!wsvqYP#e]tJox(4v1A=lbnB7]Mgazbt7wPGjaarU-AwN^uaz/668vp%c]arR^HauZ?{xMOuniXJd0x([3hvLheez7/QkD2d52w?NOiA4L^ww]x47arU-AwN^uex\u003e7Z(B7DEparR^HauZ?{o?wqi3lQEjAaJJiw[=6)B08OFarR^HarS/\u0026u$Tg}az=9Jw[=6)B095Xu[MIty?W#tb3YvDa$kc+wOL^^BrC]MD$E:Gw?E}eByO#jc31usd0f3wBBndGwN*a1wNPX6A+fqvfmtn(Ef}8tB8UY2e[Gosv%8)4vR/Q%arR^\u0026aAIHkv\u003eIwcy?mVuxl4N5c)-[Xus!v)fmtn(DMWYFD($))y?kkdve",
            "ln": 557,
            "col": 88,
            "line": 14
          },
          {
            "b": "wmYZ\u003ezE^r@v%GgAA:--{cOcw/k0p2yfFk4b3lQEjAaJJivpS[QwmY{}y\u0026sofwO#P%wmYZ\u003ezE^r@v%GgAA=Vhhv\u003c-/IcW[l4gCgve3t19=3i",
            "ln": 1384,
            "col": 24,
            "line": 31
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "expand_path"
            ],
            [
              "",
              "unshift"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "name"
            ],
            [
              "",
              "version"
            ],
            [
              "",
              "authors"
            ],
            [
              "",
              "email"
            ],
            [
              "",
              "summary"
            ],
            [
              "",
              "description"
            ],
            [
              "",
              "homepage"
            ],
            [
              "",
              "license"
            ],
            [
              "",
              "files"
            ],
            [
              "",
              "reject"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "match"
            ],
            [
              "",
              "executables"
            ],
            [
              "",
              "grep"
            ],
            [
              "",
              "files"
            ],
            [
              "",
              "basename"
            ],
            [
              "",
              "require_paths"
            ],
            [
              "",
              "required_ruby_version"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "app_info/version"
            ]
          ],
          "mbr": [
            "File.basename",
            "File.expand_path",
            "f.match",
            "spec.add_dependency",
            "spec.add_development_dependency",
            "spec.authors",
            "spec.description",
            "spec.email",
            "spec.executables",
            "spec.files",
            "spec.files.grep",
            "spec.homepage",
            "spec.license",
            "spec.name",
            "spec.require_paths",
            "spec.required_ruby_version",
            "spec.summary",
            "spec.version"
          ],
          "tgt": [
            "add_dependency",
            "add_development_dependency",
            "authors",
            "basename",
            "description",
            "email",
            "executables",
            "expand_path",
            "files",
            "grep",
            "homepage",
            "include?",
            "license",
            "match",
            "name",
            "new",
            "reject",
            "require",
            "require_paths",
            "required_ruby_version",
            "split",
            "summary",
            "unshift",
            "version"
          ],
          "metrics": {
            "ast": {
              "max_depth": 11,
              "op.concat": 32,
              "call_count": 33,
              "node_count": 408,
              "member_count": 18,
              "max_array_len": 2,
              "member_depth_max": 3,
              "op_density.concat": 0.08
            },
            "file": {
              "size": 1469,
              "entropy": 5.05
            },
            "text": {
              "lines": 33,
              "top_char": 101,
              "max_ws_run": 10,
              "digit_ratio": 0.04,
              "space_count": 212,
              "char_entropy": 5.05,
              "unique_chars": 80,
              "top_char_null": 0,
              "string_density": 1.09,
              "top_char_ratio": 0.09,
              "avg_line_length": 43.52,
              "max_line_length": 126,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.17,
              "identifier_density": 2.15,
              "line_length_stddev": 30.63,
              "normalized_string_count": 6.27,
              "repeated_char_sequences": 1,
              "suspicious_identifier_ratio": 0.03,
              "normalized_unique_identifiers": 6.54
            },
            "binds": {
              "count": 13
            },
            "binary": {
              "peak_region_bytes": 1469,
              "peak_region_entropy": 5.04
            },
            "imports": {
              "count": 1,
              "third_party_count": 1,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 484,
              "count": 36,
              "url_count": 1,
              "avg_length": 13.44,
              "max_length": 101,
              "path_count": 5,
              "avg_entropy": 2.76,
              "email_count": 1,
              "entropy_stddev": 0.64
            },
            "comments": {
              "chars": 28,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.03
            },
            "identifiers": {
              "count": 71,
              "unique": 33,
              "avg_length": 7.88,
              "max_length": 26,
              "min_length": 1,
              "avg_entropy": 2.46,
              "reuse_ratio": 0.46,
              "length_stddev": 5.05,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.03,
              "all_lowercase_ratio": 0.79,
              "all_uppercase_ratio": 0.06,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 2,
        "mol": "H₂(Cm₂Po)Md(Pa)",
        "path": "app-info-2.2.0.gem!!data.tar.gz!!app_info.gemspec",
        "risk": 3,
        "sha": "7b494266c492b25dda0e97dafaab5ddca3d603e86e30815ffc1c73b1ae982800",
        "size": 1469,
        "traits": [
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name",
            "spans": [
              [
                158,
                55
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix",
            "spans": [
              [
                621,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                621,
                18
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution",
            "spans": [
              [
                709,
                17
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal",
            "spans": [
              [
                621,
                0
              ]
            ]
          },
          {
            "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": [
              [
                621,
                34
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 3,
        "mol": "H(Db)",
        "sha": "ee7407514109da259393c8a1a094b2d729a1dc7d125b8e97bad0eea8bb1313b4",
        "path": "app-info-2.2.0.gem!!data.tar.gz!!lib/app_info.rb",
        "risk": 1,
        "size": 2338,
        "type": "ruby",
        "depth": 2
      },
      {
        "ctx": [
          {
            "b": "boQPsz*C#juVQsfx(mM\u003cy?X05A:-=BaARTDwEn+?avy6^D2^RixMOqrA:-V#A%:cmlVl{?azbUjz6iIlBz#pZfe3%LBzb/ae[n*pflgGny\u0026.mIvqfL0fjF:ovLqObB97#lfjwvjx)a6eB-qqrA=-%Jx\u003c@-7v@#BdwNxI3AbY-oBt4cxA+eP?CYUPSvRPE:Bt4-RC}KbD3jpS*wozZ1avf%=nP5cU3lQEdz!a0bwGT@)D0$e#wGSiUzF%67v(:@tarR!qwD",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "vqPNdzFr]KasnATvR/%)yHpZ*C4CLQ3lQDlarR^HazCBgvR/%)yC64ox([RMDs.bnkmeIQarR^HarR^Hx(n0lvqYN^uUay?y:ZStdgdguarR^HarUliB7CX3arR^HarR^HaBdWjy?aVfwO+@=arR^HarR^HwO#2=arR^HarUliB7]keA+frhz/f8)Bz\u003cw(zdN*5z!9i)vqPN83lQDlarR^HaAhEjy?Wx^B7Gl1c#AKqxM4A*zEEx[efDAJA+xCAaspMlz!0Mi3lQDlarR!rzE:7%arR!rzE:7YarR^HwmYu}BAhTIc#AKqxM4A*zEEx[auZ\u0026+x(2sydQ^vgB1wBXvR/%)yBGPkarR^HazCBgzdN*5z!9i)vqPNdzFr]KasnATvR/%)",
            "ln": 266,
            "col": 18,
            "line": 9
          },
          {
            "b": "ar@0\u0026v{%g\u0026ePUGyiTM#LboO9KBAhTPdQ:\u003eJcsOzharR)oarR)KnP5Y\u0026yH}MfBzbkdAckSax\u003e5o5wPRQ7wfu8fz/YFjzEEx[azkR7B0a[jazbtdB95KkA+xJiwO#PjyisPtaz++cwEoL5boOHQBZ/f3v{:p*zE+muwn=42efFIGv}xR3aARp9BrCpfaARpdaAz46wODs0AV![hwPF#iz/^axwPI*ezE:(izY\u0026+oaARpd3lQDoay!?@y-)+fBAIRwB08#Jx(2pxA::66wPw]nxKL^3A:-W6x(mMavqWi0CW\u003er7BzkVhe^-ZzbmkLoboP%0x(+zlwPRQ7wftPcay]4}x(mG)aARJAvR3V\u003cvR/P#Bz\u0026pCA+PSb3lQDo3lQDoarR^(AaK6hz/dgHA^o5]zEEx[dgdgubmkLoboQYrB97#4wft/53lQDo3lQDoarQ",
            "ln": 850,
            "col": 2,
            "line": 40
          },
          {
            "b": "Bz\u003eJ2diG\u0026TjW70ax(2syA::66wPw]nxKL^3fBw{BbmkLoboPo)xlw65zGG}xvqYP#vR/%)yJyRbA+cw9z/Q5gA+5-(aARJABzbkdzdN*5z!6#8w/$/9C5Iecwi75uar}joar@0Kav6):B98EQBAhTPi+q-fxKt*%x\u003e7Z9atLw*wn-PrvjSKgD\u003cQ$",
            "ln": 1755,
            "col": 16,
            "line": 74
          },
          {
            "b": "arR^He?O:-arR)KarUlkwc%C4bmkLoboQccBS+g5zxJw7B8JghvqG:5BAhTHCwhejayMy4y\u0026r*0aA}KwxM53nayO+\u0026wPh:9zF782zxJwdxlw65zGEALvqYP#BzbkdvR/%)yyhgbboRhAy?$k6wGUY8B97\u0026dv}x1UC42hmwN(]$zGx]hvpRzaarR)o",
            "ln": 2259,
            "col": 5,
            "line": 90
          },
          {
            "b": "aA}:AyyhgbboRhABz8!hzGx]dzEWm0aA7\u003cmv@bN{B7GznBzb98ay]ykzF%RtxKM6}as*k%ygQ)%d\u003cenqz/fhgBzbl1AV!!dv}x.6z/P[I3lQDoaz++cwGUI$A+e:5aAIWmv@bN{B7Gznz!paxlsB}Hv]3MGwN/*je^.}dar@9rarR)Ki=eCIxM4Ax",
            "ln": 2528,
            "col": 76,
            "line": 98
          },
          {
            "b": "diG\u0026TjW6#-z+T!+xM4AIA=M8siV@M.wmYv!zE)u3zdN*5z!6$#B-p\u00260B7DZww]zYjf!$KCnP5SYxjV8\u003cwO#2=",
            "ln": 2947,
            "col": 23,
            "line": 113
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "nil?"
            ],
            [
              "",
              "block_given?"
            ],
            [
              "",
              "zero?"
            ],
            [
              "",
              "arity"
            ],
            [
              "",
              "instance_eval"
            ],
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "public_send"
            ],
            [
              "",
              "nil?"
            ],
            [
              "",
              "block_given?"
            ],
            [
              "",
              "zero?"
            ],
            [
              "",
              "arity"
            ],
            [
              "",
              "instance_eval"
            ],
            [
              "",
              "public_send"
            ],
            [
              "",
              "include"
            ]
          ],
          "mbr": [
            "block.arity",
            "block.arity.zero?",
            "method_name.nil?"
          ],
          "tgt": [
            "arity",
            "block_given?",
            "include",
            "instance_eval",
            "nil?",
            "public_send",
            "respond_to?",
            "zero?"
          ],
          "funcs": [
            [
              "try",
              207
            ],
            [
              "try!",
              502
            ]
          ],
          "metrics": {
            "ast": {
              "op.land": 2,
              "max_depth": 14,
              "op.concat": 6,
              "call_count": 14,
              "node_count": 258,
              "member_count": 3,
              "op_density.land": 0.01,
              "member_depth_max": 3,
              "op_density.concat": 0.02
            },
            "file": {
              "size": 3015,
              "entropy": 4.6
            },
            "text": {
              "lines": 114,
              "top_char": 101,
              "max_ws_run": 5,
              "digit_ratio": 0.01,
              "space_count": 673,
              "char_entropy": 4.6,
              "unique_chars": 68,
              "top_char_null": 0,
              "top_char_ratio": 0.08,
              "avg_line_length": 25.45,
              "max_line_length": 110,
              "empty_line_ratio": 0.05,
              "last_line_length": 3,
              "whitespace_ratio": 0.26,
              "identifier_density": 0.35,
              "line_length_stddev": 26.15,
              "repeated_char_sequences": 4,
              "suspicious_comment_ratio": 0.01,
              "suspicious_identifier_ratio": 0.06,
              "normalized_unique_identifiers": 2.49
            },
            "binary": {
              "peak_region_bytes": 3015,
              "peak_region_entropy": 4.64
            },
            "source": {
              "class_count": 3,
              "function_count": 2
            },
            "comments": {
              "chars": 2044,
              "count": 80,
              "empty": 27,
              "lines": 53,
              "high_entropy": 1,
              "to_code_ratio": 0.87,
              "url_in_comments": 1
            },
            "functions": {
              "count": 5
            },
            "identifiers": {
              "count": 40,
              "unique": 17,
              "avg_length": 6.82,
              "max_length": 13,
              "min_length": 1,
              "avg_entropy": 2.47,
              "reuse_ratio": 0.43,
              "length_stddev": 3.43,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.06,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.06,
              "all_lowercase_ratio": 0.53
            }
          }
        },
        "id": 5,
        "mol": "H₃(CmDbPo)",
        "path": "app-info-2.2.0.gem!!data.tar.gz!!lib/app_info/core_ext/object/try.rb",
        "risk": 3,
        "sha": "2142706e81a49940352a75626fb2c4356c4d9f26f656264cef4dc50fd9b5b61d",
        "size": 3015,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                62,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-public-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby public_send method dispatch",
            "spans": [
              [
                439,
                11
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call",
            "spans": [
              [
                330,
                13
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 6,
        "mol": "H(F)",
        "sha": "8ae88ee1089d161917e265295b27a7c0be6fcde258123e7037bc06489b0fd982",
        "path": "app-info-2.2.0.gem!!data.tar.gz!!lib/app_info/ipa.rb",
        "risk": 1,
        "size": 3609,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 7,
        "mol": "H(Db)",
        "sha": "d3684ffb7e154de30327a34c29f2a581ae546c3c651201a185b6107f454a4904",
        "path": "app-info-2.2.0.gem!!data.tar.gz!!lib/app_info/ipa/info_plist.rb",
        "risk": 1,
        "size": 2904,
        "type": "ruby",
        "depth": 2
      },
      {
        "ctx": [
          {
            "b": "boQPsz*C#juVQsfx(mM\u003cy?X05A:-=BaARTDwEn=+wPq\u003cbA+cvvz/xo9B8#dB3uxY$B.L(casyVhAb](owPz)ry?W%jcKK)9ADL#owGSveAbYe#zF0/uB-.tlcKG",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "vrliovqG:#CpcVsjV%{fA=\u003e}2arR^HarU(wwO@RKzdc{)A%:3jarR^HarR?rwP?=$wPGFwx(30varR^HarUliB7CX3arR^HarR!Evqf^]avQr\u003ez/NxKb2i5#azCXiy?mD{zGE1Bx([2hAbn%8w]zZbiV]U]Abn%8w]zZbEiG1varR^Haz2C33lQDlaz2C33jm)#arR)Kl$HEKv@@\u00264AbV}vBz(hhaAR)FwEoL5arR)oarR^HboR2ry*?A%wftY5zFIo",
            "ln": 1777,
            "col": 28,
            "line": 85
          },
          {
            "b": "wPz\u0026t3lQDlarR^HarR!pvq]T:x(4H9x\u003equdjuK-ls7b]YwPPpbarR^HarR^HCw7M9asy(vBy/FAvq{fqvrD9{zZL(marR^HarR^Hay!\u00260vpA}!x([62B09Ocasx-#By+",
            "ln": 4283,
            "col": 53,
            "line": 156
          },
          {
            "b": "B-.qdzGGP5vruj4zy]{vA=#ebwPGFjB-.Llx(4Pqv@=c\u003ewO#Q7vqEJmA=lbnwmY^e3lQDlarR^HarR!pvq]T:x(4H9x\u003equdjuK-ll3mo/mRMWPavyfXwmYU2x\u003c\u003e*2p\u0026ZF$x\u003ed",
            "ln": 4527,
            "col": 36,
            "line": 162
          },
          {
            "b": "av6^ZvRGT\u0026Ab](ux(!0bzxI7+zFr]fB-82bB8@D[x(4ukwQ4{gBu.fsAa9\u003c4dgcz8arR^Hay[]5vivYQmRMWIe]\u003eJiwgfYZvrufi3lQDlarR!qvrt{2jS[//A+PG1AbolfByfljvq{f%AWUEbByuQvB-82bB8@EkAbolfBu.f:vrt{b3lQDlarR!yx(!wsjS)9Yp\u0026ZF[wPz)roLFM\u0026iYY@GB963LwP]Lkvrt{say[]5vjr*LvqH6$3lQDlao",
            "ln": 6158,
            "col": 13,
            "line": 204
          },
          {
            "b": "vRGT\u0026Ab](ux(!0bzz33KC{\u003eZTt}v9#BzkLzw]zZbvrt\u003c(wQbXvwPRQ7wm6j.zdLdBaBFLzarR^HarR^HzeS($y?mNaz*2\u0026ox(v(wB7Gl1c#AKqxM4A*zEEx[diK1=3lQDlarR^HaAIWAwPwb2arR!rzE:7YarR^HwmYu}A+frhz/f8)Bz\u003eJ6x(!ufzF8fZzdN*5z!9i)vqPNbasZ/uxlbHearR^HarUJtvRGT\u0026Ab](ux(!0bzz2Zo",
            "ln": 6536,
            "col": 9,
            "line": 215
          },
          {
            "b": "ByxiiuVo{$zGEG-wO#3=AbPDdBx]j@arR!rzE:7YarR^HboPx=C4CGdAaK5jlUgpWx\u003ez6?vru5/arR^Hv@bN{B09\u003eZC4CGdAaK5SwPz)bw[+:-By+!4arR^HayPwlA:J\u0026#vpS}\u0026auBKKCm1W1arR^Hay]4}azC.cBzkf1x)KtswmoN*dgdguarR^HarS{\u0026vrS?SawV@/zC%FciYZw2fGzfPlUgpWx\u003ez6?vru6kzE[2uwmoN*dgdguarR^HwO#2=3lQDlarR!qwO965vqPM.arR^HarR^HkYQpSe]#eAygQ)%e{82svj(eazE:(paBF6nzdLmvuO0sbD(@",
            "ln": 7089,
            "col": 12,
            "line": 236
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "development?"
            ],
            [
              "",
              "adhoc?"
            ],
            [
              "",
              "appstore?"
            ],
            [
              "",
              "inhouse?"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "to_sym"
            ],
            [
              "",
              "downcase"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "empty?"
            ],
            [
              "",
              "each_with_object"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "to_sym"
            ],
            [
              "",
              "downcase"
            ],
            [
              "",
              "nil?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "to_sym"
            ],
            [
              "",
              "downcase"
            ],
            [
              "",
              "development?"
            ],
            [
              "",
              "key?"
            ],
            [
              "",
              "development?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "development?"
            ],
            [
              "",
              "nil?"
            ],
            [
              "",
              "development?"
            ],
            [
              "",
              "adhoc?"
            ],
            [
              "",
              "appstore?"
            ],
            [
              "",
              "adhoc?"
            ],
            [
              "",
              "appstore?"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "nil?"
            ],
            [
              "",
              "exist?"
            ],
            [
              "",
              "read"
            ],
            [
              "",
              "strip_plist_wrapper"
            ],
            [
              "",
              "bplist?"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "native_types"
            ],
            [
              "",
              "try"
            ],
            [
              "",
              "format_key"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "key?"
            ],
            [
              "",
              "format_key"
            ],
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "index"
            ],
            [
              "",
              "index"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "attr_reader"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "find"
            ],
            [
              "",
              "to_a"
            ],
            [
              "",
              "subject"
            ],
            [
              "",
              "not_after"
            ],
            [
              "",
              "not_before"
            ],
            [
              "",
              "app_info/util"
            ],
            [
              "",
              "cfpropertylist"
            ],
            [
              "",
              "openssl"
            ]
          ],
          "mbr": [
            "@raw.not_after",
            "@raw.not_before",
            "@raw.subject",
            "@raw.subject.to_a",
            "@raw.subject.to_a.find",
            "CFPropertyList.native_types",
            "DeveloperCertificate.new",
            "File.exist?",
            "File.read",
            "Util.format_key",
            "capabilities.include?",
            "certs.each_with_object",
            "certs.empty?",
            "devices.nil?",
            "end_tag.size",
            "entitlements.each",
            "entitlements.key?",
            "key.to_s",
            "mobileprovision.key?",
            "mobileprovision.nil?",
            "mobileprovision.respond_to?",
            "mobileprovision.send",
            "mobileprovision.try",
            "platform.downcase",
            "platform.downcase.to_sym",
            "platforms.map",
            "raw.index",
            "v.downcase",
            "v.downcase.to_sym"
          ],
          "tgt": [
            "adhoc?",
            "appstore?",
            "attr_reader",
            "bplist?",
            "development?",
            "downcase",
            "each",
            "each_with_object",
            "empty?",
            "exist?",
            "find",
            "format_key",
            "include?",
            "index",
            "inhouse?",
            "key?",
            "map",
            "native_types",
            "new",
            "nil?",
            "not_after",
            "not_before",
            "raise",
            "read",
            "require",
            "respond_to?",
            "send",
            "size",
            "strip_plist_wrapper",
            "subject",
            "to_a",
            "to_s",
            "to_sym",
            "try",
            "value"
          ],
          "funcs": [
            [
              "initialize",
              175
            ],
            [
              "name",
              228
            ],
            [
              "app_name",
              289
            ],
            [
              "type",
              359
            ],
            [
              "platforms",
              523
            ],
            [
              "platform",
              714
            ],
            [
              "devices",
              759
            ],
            [
              "team_identifier",
              837
            ],
            [
              "team_name",
              919
            ],
            [
              "profile_name",
              989
            ],
            [
              "created_date",
              1058
            ],
            [
              "expired_date",
              1135
            ],
            [
              "entitlements",
              1214
            ],
            [
              "developer_certs",
              1291
            ],
            [
              "development?",
              1681
            ],
            [
              "appstore?",
              2055
            ],
            [
              "adhoc?",
              2325
            ],
            [
              "inhouse?",
              2450
            ],
            [
              "enabled_capabilities",
              2691
            ],
            [
              "[]",
              6009
            ],
            [
              "empty?",
              6075
            ],
            [
              "mobileprovision",
              6126
            ],
            [
              "method_missing",
              6481
            ],
            [
              "respond_to_missing?",
              6664
            ],
            [
              "bplist?",
              6860
            ],
            [
              "strip_plist_wrapper",
              6918
            ],
            [
              "initialize",
              7210
            ],
            [
              "name",
              7300
            ],
            [
              "created_date",
              7390
            ],
            [
              "expired_date",
              7447
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 6,
              "op.add": 1,
              "op.lor": 5,
              "op.shl": 32,
              "op.sub": 1,
              "op.land": 4,
              "op.lnot": 8,
              "max_depth": 17,
              "op.concat": 50,
              "call_count": 70,
              "node_count": 1476,
              "member_count": 29,
              "op_density.eq": 0,
              "op_density.add": 0,
              "op_density.lor": 0,
              "op_density.shl": 0.02,
              "op_density.sub": 0,
              "op_density.land": 0,
              "op_density.lnot": 0.01,
              "member_depth_max": 4,
              "op_density.concat": 0.03
            },
            "file": {
              "size": 7516,
              "entropy": 4.59
            },
            "text": {
              "lines": 260,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 1706,
              "char_entropy": 4.59,
              "unique_chars": 81,
              "top_char_null": 0,
              "string_density": 0.34,
              "top_char_ratio": 0.09,
              "avg_line_length": 27.91,
              "max_line_length": 102,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.26,
              "identifier_density": 0.94,
              "line_length_stddev": 22.88,
              "normalized_string_count": 5.46,
              "repeated_char_sequences": 29,
              "suspicious_comment_ratio": 0.13,
              "suspicious_identifier_ratio": 0.01,
              "normalized_unique_identifiers": 10.72
            },
            "binds": {
              "count": 15
            },
            "binary": {
              "peak_region_bytes": 7168,
              "peak_region_entropy": 4.63
            },
            "source": {
              "class_count": 3,
              "function_count": 25
            },
            "imports": {
              "count": 3,
              "third_party_count": 3,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 1993,
              "count": 88,
              "avg_length": 22.65,
              "max_length": 72,
              "avg_entropy": 3.32,
              "entropy_stddev": 0.66
            },
            "comments": {
              "chars": 461,
              "count": 15,
              "empty": 3,
              "lines": 12,
              "high_entropy": 2,
              "to_code_ratio": 0.05,
              "url_in_comments": 3
            },
            "functions": {
              "count": 28
            },
            "identifiers": {
              "count": 245,
              "unique": 86,
              "avg_length": 7.95,
              "max_length": 20,
              "min_length": 1,
              "avg_entropy": 2.49,
              "reuse_ratio": 0.35,
              "length_stddev": 4.57,
              "has_digit_ratio": 0.01,
              "sequential_names": 1,
              "single_char_count": 2,
              "single_char_ratio": 0.02,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 0.69,
              "all_uppercase_ratio": 0.01,
              "numeric_suffix_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 8,
        "mol": "H(Db)",
        "path": "app-info-2.2.0.gem!!data.tar.gz!!lib/app_info/ipa/mobile_provision.rb",
        "risk": 2,
        "sha": "3dd1a6a8bf85026e523c75f1b40cff839ed070209f4853fbd2df88b9bd091760",
        "size": 7516,
        "traits": [
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send",
            "spans": [
              [
                6600,
                4
              ]
            ]
          },
          {
            "id": "micro-behaviors/crypto/certificate/usage::certificate-ref",
            "conf": 0.5,
            "crit": 2,
            "desc": "References certificate terminology",
            "spans": [
              [
                7137,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/crypto/certificate/usage::x509-string",
            "conf": 0.6,
            "crit": 2,
            "desc": "References X.509 certificate terminology",
            "spans": [
              [
                7255,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "boQPsz*C#juVQsfx(mM\u003cy?X05A:-=BaARTDwEn=+wPq\u003cbA+cvvDtdsC3uxY$B.L(casy=ny?m:hx(4\u0026r3uxY$B.L(caszkwv%8*6A:-\u0026@z/3\u003ce3t\u003cY(B.\u003eRil2V",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "AbPS9zGGfja{]CnarUlkwc@U^arR^Kaxrq/A:@=%C4z!xx(Chbx(4t/arR^HbmkLoarR)KB8Mhwv}vXzxMOunB2\u003e%cxk8E3BZ=$kz/4dGz!rP)B1.urxlw9aByxkzvR/%(fkUcsBy/FCy?Wuiy**$0zFsi3B1.lDvj(Of3lQDlay]4}aAIagw?Fjzvrb\u003c\u003ex)a5ow[=6)efF[uBz9YTzFr]o3lQDlarR!Cvruf9jS[YLBz8^Yar\u00264SAa9\u003c4EjVS=iV]^$3lQC",
            "ln": 856,
            "col": 38,
            "line": 34
          },
          {
            "b": "D\u003cQ#sarR^HarR^HarUo6Aa9\u003c4auZ\u0026px(4ukyhW*7c#%lABye#}Bz9iFw?E$fzdLd6arR^HarR^HarR^HmRMWIrDI}\u003eB1RrBwnc6\u003eA41g\u0026y?kkfx(X91zdLbcuVoB}xELwqarR^HarR^HarR^HDtdt9w[=6)e[GoHA:-E1c$U1Mw)YH=Bz99CB-82bB8@D[x(4ukwQ4{gBu.f=uVoB}xEKoharR^HarR^Haz2C33lQDlarR^Haz2C33lQDlarR!rzE:7YarQ",
            "ln": 1279,
            "col": 30,
            "line": 47
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "size_to_humanable"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "format"
            ],
            [
              "",
              "to_f"
            ],
            [
              "",
              "mktmpdir"
            ],
            [
              "",
              "hex"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "block_given?"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "name"
            ],
            [
              "",
              "mkdir_p"
            ],
            [
              "",
              "dirname"
            ],
            [
              "",
              "extract"
            ],
            [
              "",
              "exist?"
            ],
            [
              "",
              "fileutils"
            ],
            [
              "",
              "securerandom"
            ],
            [
              "",
              "zip"
            ]
          ],
          "mbr": [
            "Dir.mktmpdir",
            "FILE_SIZE_UNITS.size",
            "File.dirname",
            "File.exist?",
            "File.join",
            "File.size",
            "FileUtils.mkdir_p",
            "Math.log",
            "SecureRandom.hex",
            "exponent.to_f",
            "f.name",
            "key.include?",
            "key.split",
            "key.split.map",
            "key.split.map.join",
            "key.to_s",
            "number.to_i",
            "zip_file.each",
            "zip_file.extract"
          ],
          "tgt": [
            "block_given?",
            "dirname",
            "each",
            "exist?",
            "extract",
            "format",
            "freeze",
            "hex",
            "include?",
            "join",
            "log",
            "map",
            "mkdir_p",
            "mktmpdir",
            "name",
            "open",
            "require",
            "size",
            "size_to_humanable",
            "split",
            "to_f",
            "to_i",
            "to_s"
          ],
          "funcs": [
            [
              "format_key",
              187
            ],
            [
              "file_size",
              337
            ],
            [
              "size_to_humanable",
              479
            ],
            [
              "unarchive",
              993
            ]
          ],
          "metrics": {
            "ast": {
              "op.gt": 1,
              "op.lt": 1,
              "op.div": 2,
              "op.pow": 1,
              "op.sub": 1,
              "max_depth": 19,
              "op.concat": 23,
              "call_count": 29,
              "node_count": 435,
              "member_count": 19,
              "op_density.gt": 0,
              "op_density.lt": 0,
              "op_density.div": 0,
              "op_density.pow": 0,
              "op_density.sub": 0,
              "member_depth_max": 4,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 1521,
              "entropy": 4.81
            },
            "text": {
              "lines": 58,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 353,
              "char_entropy": 4.81,
              "unique_chars": 71,
              "top_char_null": 0,
              "string_density": 0.21,
              "top_char_ratio": 0.08,
              "avg_line_length": 25.22,
              "max_line_length": 82,
              "empty_line_ratio": 0.16,
              "last_line_length": 3,
              "whitespace_ratio": 0.27,
              "identifier_density": 1.71,
              "line_length_stddev": 21.68,
              "normalized_string_count": 1.58,
              "repeated_char_sequences": 6,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 7.85
            },
            "binds": {
              "count": 11
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.92
            },
            "source": {
              "class_count": 2,
              "function_count": 4
            },
            "imports": {
              "count": 3,
              "third_party_count": 3,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 151,
              "count": 12,
              "avg_length": 12.58,
              "max_length": 50,
              "avg_entropy": 2.62,
              "empty_count": 2,
              "entropy_stddev": 1.55
            },
            "comments": {
              "chars": 137,
              "count": 5,
              "empty": 1,
              "lines": 4,
              "to_code_ratio": 0.07,
              "url_in_comments": 1
            },
            "functions": {
              "count": 6
            },
            "identifiers": {
              "count": 99,
              "unique": 46,
              "avg_length": 6.33,
              "max_length": 17,
              "min_length": 1,
              "avg_entropy": 2.35,
              "reuse_ratio": 0.46,
              "length_stddev": 3.24,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.04,
              "all_lowercase_ratio": 0.74,
              "all_uppercase_ratio": 0.02
            }
          }
        },
        "id": 10,
        "mol": "H₂(CmF)",
        "path": "app-info-2.2.0.gem!!data.tar.gz!!lib/app_info/util.rb",
        "risk": 2,
        "sha": "45e9358015ff7f8c010e0d71867ace90a9c2e97ece878a945d22c77a623ba75b",
        "size": 1521,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                920,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree",
            "spans": [
              [
                1343,
                18
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 21,
        "sha": "c3781e46034f76bb931a26dc4c760c2f6fa1e9ef4e46a1b68fc7ccdfdd75958b",
        "path": "CFPropertyList@4.0.0.registry.json",
        "size": 902,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 22,
        "sha": "7c3097bd52955dddb279b74e56924635192e767653b71ef9080aeeaf6ee79755",
        "path": "image_size@3.6.0.registry.json",
        "size": 1013,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 23,
        "sha": "532c1d8ae49e480fd85fdd65b032cc47398bd6d4183c0938f2771a8be40c58e5",
        "path": "pngdefry@0.1.3.registry.json",
        "size": 820,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 24,
        "mol": "Md(Re)",
        "sha": "58c05081621332a26f5bcd425b5142823b2f952ea330acb406b909bdc4df8f6d",
        "path": "ruby-macho@7.0.0.registry.json",
        "risk": 1,
        "size": 850,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 25,
        "sha": "0fee5d438eae9e9effdd5dad8a50e8439bb6311bb292faa751c3479d269daf68",
        "path": "ruby_android@0.7.7.registry.json",
        "size": 858,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 26,
        "mol": "Md(Re)",
        "sha": "2c7eb1e44f3d19da45774581740d0d1d97eaf0473fb130f6da697b8f5f793c82",
        "path": "rubyzip@3.6.0.registry.json",
        "risk": 1,
        "size": 930,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 27,
        "sha": "a6ad9477b12c38647758e10bd6f3ee1299fd5b39cc6aa3d36c5868963622fe60",
        "path": "uuidtools@3.0.0.registry.json",
        "size": 847,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 28,
        "sha": "4685de301a985c3c1d92d9f6bbb67ddd3aa29bc5fb4d2e898a3fe2757fc570c7",
        "path": "app-info@2.2.0.registry.json",
        "size": 915,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 11,
    "rev": "479f3",
    "v": "8"
  }
}