##\
# This file is a part of the CIDRAM package.
# Homepage: https://cidram.github.io/
#
# CIDRAM COPYRIGHT 2016 and beyond by Caleb Mazalevskis (Maikuolan).
#
# License: GNU/GPLv2
# @see LICENSE.txt
#
# This file: Defaults file (last modified: 2026.06.04).
##/

Config Defaults:
 general:
  stages:
   type: "checkbox"
   default: |
    BanCheck:Enable
    BanCheck:LogErrors
    Tests:Enable
    Tests:LogErrors
    Modules:Enable
    Modules:LogErrors
    Modules:Tracking
    SearchEngineVerification:Enable
    SearchEngineVerification:LogErrors
    SearchEngineVerification:Tracking
    SocialMediaVerification:Enable
    SocialMediaVerification:LogErrors
    SocialMediaVerification:Tracking
    OtherVerification:Enable
    OtherVerification:LogErrors
    OtherVerification:Tracking
    Aux:Enable
    Aux:LogErrors
    Aux:Tracking
    Tracking:Enable
    Tracking:LogErrors
    RL:Enable
    RL:LogErrors
    CAPTCHA:Enable
    CAPTCHA:LogErrors
    Reporting:Enable
    Reporting:LogErrors
    Statistics:Enable
    Statistics:LogErrors
    Webhooks:Enable
    Webhooks:LogErrors
    TriggerNotifications:Enable
    TriggerNotifications:LogErrors
    PrepareFields:Enable
    PrepareFields:LogErrors
    Output:Enable
    Output:LogErrors
    WriteLogs:Enable
    WriteLogs:LogErrors
    Terminate:Enable
    Terminate:LogErrors
    AuxRedirect:Enable
    AuxRedirect:LogErrors
    NonBlockedCAPTCHA:Enable
    NonBlockedCAPTCHA:LogErrors
   labels:
    Enable: "checkbox.Enable this stage"
    LogErrors: "checkbox.Log any errors generated during this stage"
    Tracking: "checkbox.Should infractions generated during this stage count towards IP tracking"
   choices:
    BanCheck: "stages.Check whether banned"
    Tests: "stages.Execute signature files tests"
    Modules: "stages.Execute modules"
    SearchEngineVerification: "stages.Execute search engine verification"
    SocialMediaVerification: "stages.Execute social media verification"
    OtherVerification: "stages.Execute other verification"
    Aux: "stages.Execute auxiliary rules"
    Tracking: "stages.Execute IP tracking"
    RL: "stages.Execute rate limiting"
    CAPTCHA: "stages.Deploy CAPTCHAs (blocked requests)"
    Reporting: "stages.Execute reporting"
    Statistics: "stages.Update statistics"
    Webhooks: "stages.Execute webhooks"
    TriggerNotifications: "stages.Process email trigger notification queue"
    PrepareFields: "stages.Prepare fields for output and logs"
    Output: "stages.Generate output (blocked requests)"
    WriteLogs: "stages.Write to logs (blocked requests)"
    Terminate: "stages.Terminate the request (blocked requests)"
    AuxRedirect: "stages.Redirect according to auxiliary rules"
    NonBlockedCAPTCHA: "stages.Deploy CAPTCHAs (non-blocked requests)"
   nonsense: |
    BanCheck:Tracking
    Tracking:Tracking
    RL:Tracking
    CAPTCHA:Tracking
    Reporting:Tracking
    Statistics:Tracking
    Webhooks:Tracking
    TriggerNotifications:Tracking
    PrepareFields:Tracking
    Output:Tracking
    WriteLogs:Tracking
    Terminate:Tracking
    AuxRedirect:Tracking
    NonBlockedCAPTCHA:Tracking
  fields:
   type: "checkbox"
   default: |
    ID:ShowInLogs
    ID:ShowInPageOutput
    ScriptIdent:ShowInLogs
    ScriptIdent:ShowInPageOutput
    DateTime:ShowInLogs
    DateTime:ShowInPageOutput
    IPAddr:ShowInLogs
    IPAddr:ShowInPageOutput
    IPAddrResolved:ShowInLogs
    IPAddrResolved:ShowInPageOutput
    IPAddrResolved:OmitIfEmpty
    Query:ShowInLogs
    Query:ShowInPageOutput
    Query:OmitIfEmpty
    Referrer:ShowInLogs
    Referrer:ShowInPageOutput
    Referrer:OmitIfEmpty
    UA:ShowInLogs
    UA:ShowInPageOutput
    UA:OmitIfEmpty
    UALC:OmitIfEmpty
    SignatureCount:ShowInLogs
    SignatureCount:ShowInPageOutput
    Signatures:ShowInLogs
    Signatures:ShowInPageOutput
    WhyReason:ShowInLogs
    WhyReason:ShowInPageOutput
    ReasonMessage:ShowInPageOutput
    ReasonMessage:OmitIfEmpty
    rURI:ShowInLogs
    rURI:ShowInPageOutput
    rURI:OmitIfEmpty
    Infractions:ShowInLogs
    ASNLookup:ShowInLogs
    ASNLookup:OmitIfEmpty
    CCLookup:ShowInLogs
    CCLookup:OmitIfEmpty
    Verified:ShowInLogs
    Verified:OmitIfEmpty
    Expired:OmitIfEmpty
    Ignored:OmitIfEmpty
    Request_Method:ShowInLogs
    Request_Method:OmitIfEmpty
    SEC_CH_UA_PLATFORM:ShowInLogs
    SEC_CH_UA_PLATFORM:OmitIfEmpty
    SEC_CH_UA_MOBILE:ShowInLogs
    SEC_CH_UA_MOBILE:OmitIfEmpty
    SEC_CH_UA:ShowInLogs
    SEC_CH_UA:OmitIfEmpty
    Hostname:ShowInLogs
    Hostname:ShowInPageOutput
    Hostname:OmitIfEmpty
    CAPTCHA:ShowInLogs
    Inspection:OmitIfEmpty
   labels:
    ShowInLogs: "checkbox.Should this field appear in log entries"
    ShowInPageOutput: "checkbox.Should this field appear on the access denied page"
    OmitIfEmpty: "checkbox.Omit this field when it_s empty"
   choices:
    ID: "field.ID"
    ScriptIdent: "field.Script version"
    DateTime: "field.DateTime"
    IPAddr: "field.IP address"
    IPAddrResolved: "field.IP address (resolved)"
    Query: "field.Query"
    Referrer: "field.Referrer"
    UA: "field.User agent"
    UALC: "field.User agent (lower-case)"
    SignatureCount: "field.Signatures count"
    Signatures: "field.Signatures reference"
    WhyReason: "field.Why blocked"
    ReasonMessage: "field.Why blocked (detailed)"
    rURI: "field.Reconstructed URI"
    Infractions: "field.Infractions"
    ASNLookup: "** {field.ASN lookup}"
    CCLookup: "** {field.Country code lookup}"
    Verified: "field.Verified identity"
    Expired: "field.Expired"
    Ignored: "field.Ignored"
    Request_Method: "field.Request method"
    Protocol: "field.Protocol"
    SEC_CH_UA_PLATFORM: "!! SEC_CH_UA_PLATFORM"
    SEC_CH_UA_MOBILE: "!! SEC_CH_UA_MOBILE"
    SEC_CH_UA: "!! SEC_CH_UA"
    Hostname: "field.Hostname"
    CAPTCHA: "field.CAPTCHA state"
    Inspection: "* {field.Conditions inspection}"
    ClientL10NAccepted: "field.Language resolution"
   nonsense: |
    ID:OmitIfEmpty
    ScriptIdent:OmitIfEmpty
    DateTime:OmitIfEmpty
    SignatureCount:OmitIfEmpty
    Infractions:OmitIfEmpty
    CAPTCHA:OmitIfEmpty
    Inspection:ShowInPageOutput
    ClientL10NAccepted:ShowInPageOutput
    ClientL10NAccepted:OmitIfEmpty
   hints:
    - "hints_inspection"
    - "hints_asnlookup"
    - "hints_client_hints"
  timezone:
   type: "timezone"
   default: "SYSTEM"
  time_offset:
   type: "int"
   default: 0
   preview: "minutes"
  time_format:
   type: "string"
   default: "{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} {tz}"
   preview: "allow_other"
   allow_other: true
   choices:
    "{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} {tz}": "{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} {tz}"
    "{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss}": "{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss}"
    "{Day}, {dd} {Mon} {yyyy}": "{Day}, {dd} {Mon} {yyyy}"
    "{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}": "{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}"
    "{yyyy}.{mm}.{dd} {hh}:{ii}:{ss}": "{yyyy}.{mm}.{dd} {hh}:{ii}:{ss}"
    "{yyyy}.{mm}.{dd}": "{yyyy}.{mm}.{dd}"
    "{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}": "{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}"
    "{yyyy}-{mm}-{dd} {hh}:{ii}:{ss}": "{yyyy}-{mm}-{dd} {hh}:{ii}:{ss}"
    "{yyyy}-{mm}-{dd}": "{yyyy}-{mm}-{dd}"
    "{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}": "{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}"
    "{yyyy}/{mm}/{dd} {hh}:{ii}:{ss}": "{yyyy}/{mm}/{dd} {hh}:{ii}:{ss}"
    "{yyyy}/{mm}/{dd}": "{yyyy}/{mm}/{dd}"
    "{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} {tz}": "{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} {tz}"
    "{dd}.{mm}.{yyyy} {hh}:{ii}:{ss}": "{dd}.{mm}.{yyyy} {hh}:{ii}:{ss}"
    "{dd}.{mm}.{yyyy}": "{dd}.{mm}.{yyyy}"
    "{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} {tz}": "{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} {tz}"
    "{dd}-{mm}-{yyyy} {hh}:{ii}:{ss}": "{dd}-{mm}-{yyyy} {hh}:{ii}:{ss}"
    "{dd}-{mm}-{yyyy}": "{dd}-{mm}-{yyyy}"
    "{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} {tz}": "{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} {tz}"
    "{dd}/{mm}/{yyyy} {hh}:{ii}:{ss}": "{dd}/{mm}/{yyyy} {hh}:{ii}:{ss}"
    "{dd}/{mm}/{yyyy}": "{dd}/{mm}/{yyyy}"
    "{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} {tz}": "{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} {tz}"
    "{mm}.{dd}.{yyyy} {hh}:{ii}:{ss}": "{mm}.{dd}.{yyyy} {hh}:{ii}:{ss}"
    "{mm}.{dd}.{yyyy}": "{mm}.{dd}.{yyyy}"
    "{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} {tz}": "{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} {tz}"
    "{mm}-{dd}-{yyyy} {hh}:{ii}:{ss}": "{mm}-{dd}-{yyyy} {hh}:{ii}:{ss}"
    "{mm}-{dd}-{yyyy}": "{mm}-{dd}-{yyyy}"
    "{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} {tz}": "{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} {tz}"
    "{mm}/{dd}/{yyyy} {hh}:{ii}:{ss}": "{mm}/{dd}/{yyyy} {hh}:{ii}:{ss}"
    "{mm}/{dd}/{yyyy}": "{mm}/{dd}/{yyyy}"
    "{yy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}": "{yy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}"
    "{yy}.{mm}.{dd} {hh}:{ii}:{ss}": "{yy}.{mm}.{dd} {hh}:{ii}:{ss}"
    "{yy}.{mm}.{dd}": "{yy}.{mm}.{dd}"
    "{yy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}": "{yy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}"
    "{yy}-{mm}-{dd} {hh}:{ii}:{ss}": "{yy}-{mm}-{dd} {hh}:{ii}:{ss}"
    "{yy}-{mm}-{dd}": "{yy}-{mm}-{dd}"
    "{yy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}": "{yy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}"
    "{yy}/{mm}/{dd} {hh}:{ii}:{ss}": "{yy}/{mm}/{dd} {hh}:{ii}:{ss}"
    "{yy}/{mm}/{dd}": "{yy}/{mm}/{dd}"
    "{dd}.{mm}.{yy} {hh}:{ii}:{ss} {tz}": "{dd}.{mm}.{yy} {hh}:{ii}:{ss} {tz}"
    "{dd}.{mm}.{yy} {hh}:{ii}:{ss}": "{dd}.{mm}.{yy} {hh}:{ii}:{ss}"
    "{dd}.{mm}.{yy}": "{dd}.{mm}.{yy}"
    "{dd}-{mm}-{yy} {hh}:{ii}:{ss} {tz}": "{dd}-{mm}-{yy} {hh}:{ii}:{ss} {tz}"
    "{dd}-{mm}-{yy} {hh}:{ii}:{ss}": "{dd}-{mm}-{yy} {hh}:{ii}:{ss}"
    "{dd}-{mm}-{yy}": "{dd}-{mm}-{yy}"
    "{dd}/{mm}/{yy} {hh}:{ii}:{ss} {tz}": "{dd}/{mm}/{yy} {hh}:{ii}:{ss} {tz}"
    "{dd}/{mm}/{yy} {hh}:{ii}:{ss}": "{dd}/{mm}/{yy} {hh}:{ii}:{ss}"
    "{dd}/{mm}/{yy}": "{dd}/{mm}/{yy}"
    "{mm}.{dd}.{yy} {hh}:{ii}:{ss} {tz}": "{mm}.{dd}.{yy} {hh}:{ii}:{ss} {tz}"
    "{mm}.{dd}.{yy} {hh}:{ii}:{ss}": "{mm}.{dd}.{yy} {hh}:{ii}:{ss}"
    "{mm}.{dd}.{yy}": "{mm}.{dd}.{yy}"
    "{mm}-{dd}-{yy} {hh}:{ii}:{ss} {tz}": "{mm}-{dd}-{yy} {hh}:{ii}:{ss} {tz}"
    "{mm}-{dd}-{yy} {hh}:{ii}:{ss}": "{mm}-{dd}-{yy} {hh}:{ii}:{ss}"
    "{mm}-{dd}-{yy}": "{mm}-{dd}-{yy}"
    "{mm}/{dd}/{yy} {hh}:{ii}:{ss} {tz}": "{mm}/{dd}/{yy} {hh}:{ii}:{ss} {tz}"
    "{mm}/{dd}/{yy} {hh}:{ii}:{ss}": "{mm}/{dd}/{yy} {hh}:{ii}:{ss}"
    "{mm}/{dd}/{yy}": "{mm}/{dd}/{yy}"
    "{yyyy}年{m}月{d}日 {hh}時{ii}分{ss}秒": "{yyyy}年{m}月{d}日 {hh}時{ii}分{ss}秒"
    "{yyyy}年{m}月{d}日 {hh}:{ii}:{ss} {tz}": "{yyyy}年{m}月{d}日 {hh}:{ii}:{ss} {tz}"
    "{yyyy}年{m}月{d}日": "{yyyy}年{m}月{d}日"
    "{yy}年{m}月{d}日 {hh}時{ii}分{ss}秒": "{yy}年{m}月{d}日 {hh}時{ii}分{ss}秒"
    "{yy}年{m}月{d}日 {hh}:{ii}:{ss} {tz}": "{yy}年{m}月{d}日 {hh}:{ii}:{ss} {tz}"
    "{yy}年{m}月{d}日": "{yy}年{m}月{d}日"
    "{yyyy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초": "{yyyy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초"
    "{yyyy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz}": "{yyyy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz}"
    "{yyyy}년 {m}월 {d}일": "{yyyy}년 {m}월 {d}일"
    "{yy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초": "{yy}년 {m}월 {d}일 {hh}시 {ii}분 {ss}초"
    "{yy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz}": "{yy}년 {m}월 {d}일 {hh}:{ii}:{ss} {tz}"
    "{yy}년 {m}월 {d}일": "{yy}년 {m}월 {d}일"
    "{yyyy}-{mm}-{dd}T{hh}:{ii}:{ss}{t:z}": "{yyyy}-{mm}-{dd}T{hh}:{ii}:{ss}{t:z}"
    "{d}. {m}. {yyyy}": "{d}. {m}. {yyyy}"
   hints: "hints_time_format"
  ipaddr:
   type: "string"
   default: "REMOTE_ADDR"
   preview: "allow_other"
   allow_other: true
   choices:
    HTTP_INCAP_CLIENT_IP: "HTTP_INCAP_CLIENT_IP (Incapsula)"
    HTTP_CF_CONNECTING_IP: "HTTP_CF_CONNECTING_IP (Cloudflare)"
    CF-Connecting-IP: "CF-Connecting-IP (Cloudflare)"
    HTTP_X_FORWARDED_FOR: "HTTP_X_FORWARDED_FOR (Cloudbric)"
    X-Forwarded-For: "X-Forwarded-For (Squid)"
    Forwarded: "Forwarded"
    REMOTE_ADDR: "REMOTE_ADDR ({label.Default})"
   See also:
    "NGINX Reverse Proxy": "https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/"
    "Squid configuration directive forwarded_for": "http://www.squid-cache.org/Doc/config/forwarded_for/"
    "Forwarded - HTTP | MDN": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded"
  http_response_header_code:
   type: "int"
   default:
    default: 403
    legal: 451
    banned: 503
   labels:
    default: "label.Default"
    legal: "Short.Legal"
    banned: "Short.Banned"
   choices:
    200: &200 "label.200 OK"
    403: &403 "label.403 Forbidden"
    410: &410 "label.410 Gone"
    418: &418 "label.418 I_m a teapot"
    451: &451 "label.451 Unavailable For Legal Reasons"
    503: &503 "label.503 Service Unavailable"
   style: "matrix"
   columns: "100px"
   hints: "hints_http_response_header_code"
  silent_mode:
   type: "url"
   default: ""
   autocomplete: "url"
  silent_mode_response_header_code:
   type: "int"
   default: 301
   choices:
    301: &301 "label.301 Moved Permanently"
    302: &302 "label.302 Found"
    307: &307 "label.307 Temporary Redirect"
    308: &308 "label.308 Permanent Redirect"
   style: "radio"
   hints: "hints_client_honour"
  lang:
   type: "string"
   default: "en"
   choices:
    af: "Afrikaans"
    ar: "العربية"
    bg: "Български"
    bn: "বাংলা"
    bs: "Bosanski"
    ca: "Català"
    cs: "Čeština"
    de: "Deutsch"
    en: "English (AU/GB/NZ)"
    en-CA: "English (CA)"
    en-US: "English (US)"
    es: "Español"
    fa: "فارسی"
    fr: "Français (FR)"
    fr-CA: "Français (CA)"
    gl: "Galego"
    gu: "ગુજરાતી"
    he: "עברית"
    hi: "हिंदी"
    hr: "Hrvatski"
    id: "Bahasa Indonesia"
    it: "Italiano"
    ja: "日本語"
    ko: "한국어"
    lv: "Latviešu"
    ml: "മലയാളം"
    mr: "मराठी"
    ms: "Bahasa Melayu"
    nl: "Nederlandse"
    no: "Norsk"
    pa: "ਪੰਜਾਬੀ"
    pl: "Polski"
    pt-BR: "Português (Brasil)"
    pt-PT: "Português (Europeu)"
    ro: "Română"
    ru: "Русский"
    sv: "Svenska"
    sr: "Српски"
    ta: "தமிழ்"
    th: "ภาษาไทย"
    tr: "Türkçe"
    uk: "Українська"
    ur: "اردو"
    vi: "Tiếng Việt"
    zh-Hans: "中文（简体）"
    zh-Hant: "中文（傳統）"
   defer:
    [cnr-Cyrl, cnr-220, bs-Cyrl, bs-220]: "sr"
    [cnr, sr-Latn, sr-215]: "bs"
    mo: "ro"
    nb: "no"
    [zh-HK, zh-MO, zh-TW]: "zh-Hant"
   assume:
    af: "af-ZA"
    bg: "bg-BG"
    bn: "bn-BD"
    bs: "bs-BA"
    ca: "ca-ES"
    cs: "cs-CZ"
    de: "de-DE"
    en: "en-AU"
    es: "es-ES"
    fa: "fa-IR"
    fr: "fr-FR"
    gl: "gl-ES"
    gu: "gu-IN"
    he: "he-IL"
    hi: "hi-IN"
    hr: "hr-HR"
    id: "id-ID"
    it: "it-IT"
    ja: "ja-JP"
    ko: "ko-KR"
    lv: "lv-LV"
    ml: "ml-IN"
    mo: "ro-MO"
    mr: "mr-IN"
    ms: "ms-MY"
    nb: "nb-NO"
    nl: "nl-NL"
    no: "nb-NO"
    pa: "pa-IN"
    pl: "pl-PL"
    pt: "pt-BR"
    ro: "ro-RO"
    ru: "ru-RU"
    sv: "sv-SE"
    sr: "sr-RS"
    ta: "ta-IN"
    th: "th-TH"
    tr: "tr-TR"
    uk: "uk-UA"
    ur: "ur-PK"
    vi: "vi-VN"
    zh: "zh-Hans"
  lang_override:
   type: "bool"
   default: true
  numbers:
   type: "string"
   default: "Latin-1"
   choices:
    Arabic-1: "١٢٣٤٥٦٧٫٨٩"
    Arabic-2: "١٬٢٣٤٬٥٦٧٫٨٩"
    Arabic-3: "۱٬۲۳۴٬۵۶۷٫۸۹"
    Arabic-4: "۱۲٬۳۴٬۵۶۷٫۸۹"
    Armenian: "Ճ̅Ի̅Գ̅ՏՇԿԷ"
    Base-12: "4b6547.a8"
    Base-16: "12d687.e3"
    Bengali-1: "১২,৩৪,৫৬৭.৮৯"
    Burmese-1: "၁၂၃၄၅၆၇.၈၉"
    China-1: "123,4567.89"
    Chinese-Simplified: "一百二十三万四千五百六十七点八九"
    Chinese-Simplified-Financial: "壹佰贰拾叁萬肆仟伍佰陆拾柒点捌玖"
    Chinese-Traditional: "一百二十三萬四千五百六十七點八九"
    Chinese-Traditional-Financial: "壹佰貳拾叄萬肆仟伍佰陸拾柒點捌玖"
    Fullwidth: "１２３４５６７.８９"
    Geez: "፻፳፫፼፵፭፻፷፯"
    Hebrew: "א׳׳ב׳קג׳יד׳ךסז"
    India-1: "12,34,567.89"
    India-2: "१२,३४,५६७.८९"
    India-3: "૧૨,૩૪,૫૬૭.૮૯"
    India-4: "੧੨,੩੪,੫੬੭.੮੯"
    India-5: "೧೨,೩೪,೫೬೭.೮೯"
    India-6: "౧౨,౩౪,౫౬౭.౮౯"
    Japanese: "百万二十万三万四千五百六十七・八九分"
    Javanese: "꧑꧒꧓꧔꧕꧖꧗.꧘꧙"
    Khmer-1: "១.២៣៤.៥៦៧,៨៩"
    Lao-1: "໑໒໓໔໕໖໗.໘໙"
    Latin-1: "1,234,567.89"
    Latin-2: "1 234 567.89"
    Latin-3: "1.234.567,89"
    Latin-4: "1 234 567,89"
    Latin-5: "1,234,567·89"
    Mayan: "𝋧𝋮𝋦𝋨𝋧.𝋱𝋰"
    Mongolian: "᠑᠒᠓᠔᠕᠖᠗.᠘᠙"
    NoSep-1: "1234567.89"
    NoSep-2: "1234567,89"
    Odia: "୧୨୩୪୫୬୭.୮୯"
    Roman: "M̅C̅C̅X̅X̅X̅I̅V̅DLXVII"
    SDN-Dwiggins: "4E6,547;X8"
    SDN-Pitman: "4↋6,547;↊8"
    Tamil: "௲௲௨௱௲௩௰௲௪௲௫௱௬௰௭"
    Thai-1: "๑,๒๓๔,๕๖๗.๘๙"
    Thai-2: "๑๒๓๔๕๖๗.๘๙"
    Tibetan: "༡༢༣༤༥༦༧.༨༩"
  emailaddr:
   type: "string"
   default: ""
  emailaddr_display_style:
   type: "string"
   default: "default"
   choices:
    default: "field.Clickable link"
    noclick: "field.Non-clickable text"
  default_dns:
   type: "string"
   default: |
    8.8.8.8
    8.8.4.4
   hints: "hints_default_dns"
  default_algo:
   type: "string"
   default: "PASSWORD_DEFAULT"
   choices:
    PASSWORD_DEFAULT: "PASSWORD_DEFAULT"
    PASSWORD_BCRYPT: "PASSWORD_BCRYPT"
    PASSWORD_ARGON2I: "PASSWORD_ARGON2I"
    PASSWORD_ARGON2ID: "PASSWORD_ARGON2ID (PHP >= 7.3.0)"
   choice_filter: "filterByDefined"
  statistics:
   type: "checkbox"
   default: |
    Blocked:IPv4
    Blocked:IPv6
    Blocked:Other
    Banned:IPv4
    Banned:IPv6
    ReportOK:IPv4
    ReportOK:IPv6
    ReportFailed:IPv4
    ReportFailed:IPv6
   labels:
    IPv4: "IPv4"
    IPv6: "IPv6"
    Other: "label.Other"
   choices:
    Blocked: "{label.Requests blocked}"
    Banned: "{label.Requests banned}"
    Passed: "{label.Requests passed}"
    ReportOK: "{label.Requests reported to external APIs} – {field.OK}"
    ReportFailed: "{label.Requests reported to external APIs} – {response.Failed}"
   nonsense: |
    Banned:Other
    ReportOK:Other
    ReportFailed:Other
   columns: "100px"
   hints: "hints_aux_stats"
  statistics_captchas:
   type: "checkbox"
   default: |
    HCaptcha:Failed
    HCaptcha:Passed
    HCaptcha:Served
    FriendlyCaptcha:Failed
    FriendlyCaptcha:Passed
    FriendlyCaptcha:Served
    CloudflareTurnstile:Failed
    CloudflareTurnstile:Passed
    CloudflareTurnstile:Served
   labels:
    Failed: "response.Failed"
    Passed: "response.Passed"
    Served: "response.Served"
   choices:
    HCaptcha: "hCaptcha"
    FriendlyCaptcha: "Friendly Captcha"
    CloudflareTurnstile: "Cloudflare Turnstile"
   columns: "100px"
   hints: "hints_aux_stats"
  force_hostname_lookup:
   type: "bool"
   default: false
  allow_gethostbyaddr_lookup:
   type: "bool"
   default: true
   hints: "hints_ipv6_on_32bit"
  disabled_channels:
   type: "checkbox"
   default: ""
   choices:
    GitHub: "<span class="origin bgHRdBl">US</span> GitHub"
    BitBucket: "<span class="origin bgHRdBl">US</span> BitBucket"
    Codeberg: "<span class="origin bgVBkRd fgYlw">DE</span> Codeberg"
    GoogleDNS: "<span class="origin bgHRdBl">US</span> GoogleDNS"
  request_proxy:
   type: "string"
   default: ""
  request_proxyauth:
   type: "string"
   default: ""
  default_timeout:
   type: "int"
   default: 12
   preview: "seconds"
  sensitive:
   type: "string"
   default: "~[/=](?:activate|contact|login|regist(?:er|ration)|signup)|act(?:ion)?=(?:edit|reg)|(?:activate|con(?:firm|tact)|login|lost-password|my-account|newuser|reg(?:ist(?:er|ration))?|signin|signup)(?:\\.php|[/=])|special:userlogin&|verifyemail|wp-comments-post~i"
  email_notification_address:
   type: "string"
   default: ""
  email_notification_name:
   type: "string"
   default: ""
  email_notification_when:
   type: "string"
   default: "Immediately"
   choices:
    Immediately: "field.Immediately"
    After24Hours: "field.After 24 hours, bundled together"
    ManuallyOnly: "field.Only when triggered manually"
   style: "radio"
 components:
  ipv4:
   type: "string"
   default: |
    ipv4.dat
    ipv4_bogons.dat
    ipv4_isps.dat
    ipv4_nonblocking.dat
    ipv4_other.dat
  ipv6:
   type: "string"
   default: |
    ipv6.dat
    ipv6_bogons.dat
    ipv6_isps.dat
    ipv6_nonblocking.dat
    ipv6_other.dat
  modules:
   type: "string"
   default: |
    botua.php
    cookies.php
    extras.php
  imports:
   type: "string"
   default: |
    bypasses.yml
    extras.yml
  events:
   type: "string"
   default: ""
 logging:
  standard_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  apache_style_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  serialised_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  error_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  outbound_request_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  report_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  truncate:
   type: "kb"
   default: "0KB"
  log_rotation_limit:
   type: "int"
   default: 0
  log_rotation_action:
   type: "string"
   default: "Delete"
   choices:
    Delete: "field.log_rotation_delete"
    Archive: "field.log_rotation_archive"
   style: "radio"
  log_banned_ips:
   type: "bool"
   default: true
  log_sanitisation:
   type: "bool"
   default: false
 frontend:
  frontend_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  signatures_update_event_log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
  max_login_attempts:
   type: "int"
   default: 5
  theme:
   type: "string"
   default: "default"
   preview: "allow_other"
   allow_other: true
   choices:
    default: "Default"
    bluemetal: "Blue Metal"
    fullmoon: "Full Moon"
    moss: "Moss"
    primer: "Primer"
    primerdark: "Primer Dark"
    rbi: "Red-Blue Inverted"
    slate: "Slate"
   choice_filter: "filterThemeFrontEnd"
  theme_mode:
   type: "string"
   default: "normal"
   choices:
    normal: "label.Normal"
    inverted: "label.Inverted"
   effects:
    inverted: ";filter:invert(1) hue-rotate(-180deg)"
   preview: "js:const root=document.documentElement;function config_frontend_theme_mode_function(){var sR=document.querySelector('input[name="config_frontend_theme_mode"]:checked');if(sR){root.style.filter=sR.value==='inverted'?'invert(1) hue-rotate(-180deg)':'none'}}"
   style: "radio"
  magnification:
   type: "float"
   step: "any"
   default: 1
  custom_header:
   type: "string"
   default: ""
  custom_footer:
   type: "string"
   default: ""
  remotes:
   type: "string"
   default: |
    https://raw.githubusercontent.com/CIDRAM/CIDRAM/v4/vault/installed.yml
    https://raw.githubusercontent.com/CIDRAM/CIDRAM-Extras/master/modules/modules.yml
  enable_two_factor:
   type: "bool"
   default: false
 signatures:
  shorthand:
   type: "checkbox"
   default: |
    Attacks:Block
    Attacks:Profile
    Bogon:Profile
    Cloud:Block
    Cloud:Profile
    Generic:Block
    Generic:Profile
    Legal:Block
    Legal:Profile
    Malware:Block
    Malware:Profile
    Proxy:Profile
    Spam:Block
    Spam:Profile
    Banned:Suppress
    BadIP:Profile
    RL:Suppress
    Other:Block
    Other:Profile
   labels:
    Block: "checkbox.Block it"
    Profile: "checkbox.Profile it"
    Suppress: "checkbox.When blocked, suppress output template"
   choices:
    Attacks: "Short.Attacks"
    Bogon: "⁰ {Short.Bogon}"
    Cloud: "Short.Cloud"
    Generic: "Short.Generic"
    Legal: "¹ {Short.Legal}"
    Malware: "Short.Malware"
    Proxy: "² {Short.Proxy}"
    Spam: "Short.Spam"
    Banned: "³ {Short.Banned}"
    BadIP: "³ {Short.BadIP}"
    RL: "³ {Short.RL}"
    Conflict: "³ {Short.Conflict}"
    Other: "⁴ {label.Other}"
   nonsense: |
    Banned:Block
    Banned:Profile
    BadIP:Block
    RL:Block
    RL:Profile
    Conflict:Block
    Conflict:Profile
   hints: "hints_shorthand"
  default_tracktime:
   type: "duration"
   default: "7d0°0′0″"
  infraction_limit:
   type: "int"
   default: 10
  tracking_override:
   type: "bool"
   default: true
  conflict_response:
   type: "int"
   default: 0
   choices:
    0: "label.Don_t block the request"
    409: &409 "label.409 Conflict"
    429: &429 "label.429 Too Many Requests"
   style: "radio"
 verification:
  search_engines:
   type: "checkbox"
   default: |
    Amazonbot:Verify
    Amazonbot:BlockNegatives
    Amazonbot:SingleHitBypass
    Amazonbot:UntrackPositives
    Applebot:Verify
    Applebot:BlockNegatives
    Applebot:UntrackPositives
    Baidu:Verify
    Baidu:BlockNegatives
    Baidu:UntrackPositives
    Bingbot:Verify
    Bingbot:BlockNegatives
    Bingbot:SingleHitBypass
    Bingbot:UntrackPositives
    DuckDuckBot:Verify
    DuckDuckBot:BlockNegatives
    DuckDuckBot:SingleHitBypass
    DuckDuckBot:UntrackPositives
    Googlebot:Verify
    Googlebot:BlockNegatives
    Googlebot:SingleHitBypass
    Googlebot:UntrackPositives
    MojeekBot:Verify
    MojeekBot:BlockNegatives
    MojeekBot:UntrackPositives
    PetalBot:Verify
    PetalBot:BlockNegatives
    PetalBot:UntrackPositives
    Qwantify:Verify
    Qwantify:BlockNegatives
    Qwantify:UntrackPositives
    SeznamBot:Verify
    SeznamBot:BlockNegatives
    SeznamBot:UntrackPositives
    Sogou:Verify
    Sogou:BlockNegatives
    Sogou:UntrackPositives
    Yahoo:Verify
    Yahoo:BlockNegatives
    Yahoo:UntrackPositives
    Yandex:Verify
    Yandex:BlockNegatives
    Yandex:UntrackPositives
    YoudaoBot:Verify
    YoudaoBot:BlockNegatives
    YoudaoBot:UntrackPositives
   labels:
    Verify: "checkbox.Attempt to verify"
    BlockNegatives: "checkbox.Block negatives"
    BlockNonVerified: "checkbox.Block non-verified requests"
    SingleHitBypass: "checkbox.Allow single-hit bypasses"
    UntrackPositives: "checkbox.Untrack positives"
   choices:
    Amazonbot: "Amazonbot"
    Applebot: "Applebot"
    Baidu: "* Baiduspider/百度"
    Bingbot: "* Bingbot"
    DuckDuckBot: "* DuckDuckBot"
    Googlebot: "* Googlebot"
    MojeekBot: "MojeekBot"
    PetalBot: "* PetalBot"
    Qwantify: "Qwantify/Bleriot"
    SeznamBot: "SeznamBot"
    Sogou: "* Sogou/搜狗"
    Yahoo: "Yahoo/Slurp"
    Yandex: "* Yandex/Яндекс"
    YoudaoBot: "YoudaoBot"
   hints:
    - "hints_verification"
    - "hints_has_bypass"
  social_media:
   type: "checkbox"
   default: |
    Embedly:Verify
    Embedly:BlockNegatives
    Facebook:Verify
    Facebook:BlockNegatives
    Facebook:UntrackPositives
    Pinterest:Verify
    Pinterest:BlockNegatives
    Pinterest:UntrackPositives
    Snapchat:Verify
    Snapchat:BlockNegatives
    Snapchat:UntrackPositives
    Twitterbot:UntrackPositives
   labels:
    Verify: "checkbox.Attempt to verify"
    BlockNegatives: "checkbox.Block negatives"
    BlockNonVerified: "checkbox.Block non-verified requests"
    SingleHitBypass: "checkbox.Allow single-hit bypasses"
    UntrackPositives: "checkbox.Untrack positives"
   choices:
    Embedly: "* Embedly"
    Facebook: "** Facebook"
    Pinterest: "* Pinterest"
    Snapchat: "* Snapchat"
    Twitterbot: "*!! Twitterbot"
   hints:
    - "hints_verification"
    - "hints_has_bypass"
    - "hints_asnlookup"
    - "hints_cause_fp iMessage"
  other:
   type: "checkbox"
   default: |
    AdSense:Verify
    AdSense:BlockNegatives
    AdSense:SingleHitBypass
    AdSense:UntrackPositives
    AmazonAdBot:Verify
    AmazonAdBot:BlockNegatives
    AmazonAdBot:SingleHitBypass
    AmazonAdBot:UntrackPositives
    ChatGPT-User:BlockNonVerified
    GPTBot:BlockNonVerified
    OAI-SearchBot:BlockNonVerified
    UptimeRobot:BlockNegatives
    UptimeRobot:SingleHitBypass
    UptimeRobot:UntrackPositives
    UptimeRobot:Verify
   labels:
    Verify: "checkbox.Attempt to verify"
    BlockNegatives: "checkbox.Block negatives"
    BlockNonVerified: "checkbox.Block non-verified requests"
    SingleHitBypass: "checkbox.Allow single-hit bypasses"
    UntrackPositives: "checkbox.Untrack positives"
   choices:
    AdSense: "AdSense"
    AmazonAdBot: "* AmazonAdBot"
    ChatGPT-User: "!! ChatGPT-User"
    GPTBot: "!! GPTBot"
    OAI-SearchBot: "!! OAI-SearchBot"
    UptimeRobot: "UptimeRobot"
   hints:
    - "hints_verification"
    - "hints_has_bypass"
    - "hints_want_to_block"
  adjust:
   type: "checkbox"
   default: |
    Negatives:HCaptcha
    Negatives:FriendlyCaptcha
    Negatives:CloudflareTurnstile
    NonVerified:HCaptcha
    NonVerified:FriendlyCaptcha
    NonVerified:CloudflareTurnstile
   labels:
    HCaptcha: "checkbox.Suppress hCaptcha"
    FriendlyCaptcha: "checkbox.Suppress Friendly Captcha"
    CloudflareTurnstile: "checkbox.Suppress Cloudflare Turnstile"
   choices:
    Negatives: "checkbox.Blocked negatives"
    NonVerified: "checkbox.Blocked non-verified"
 captcha:
  usemode:
   type: "int"
   default:
    hcaptcha: 0
    friendly: 0
    cloudflare: 0
   hints: "hints_usemode"
   labels:
    hcaptcha: "hCaptcha"
    friendly: "Friendly Captcha"
    cloudflare: "Cloudflare Turnstile"
   choices:
    0: "label.Never"
    1: "label.Only when blocked, within the signature limit, and not banned"
    2: "label.Only when blocked, specially marked for use, within the signature limit, and not banned"
    3: "label.Only when within the signature limit, and not banned (regardless of whether blocked)"
    4: "label.Only when not blocked"
    5: "label.Only when not blocked, or when specially marked for use, within the signature limit, and not banned"
    6: "label.Only when not blocked, at sensitive page requests"
   style: "matrix"
   columns: "100px"
  nonblocked_status_code:
   type: "int"
   default:
    hcaptcha: 200
    friendly: 200
    cloudflare: 200
   labels:
    hcaptcha: "hCaptcha"
    friendly: "Friendly Captcha"
    cloudflare: "Cloudflare Turnstile"
   choices:
    200: *200
    403: *403
    418: *418
    429: *429
    451: *451
   style: "matrix"
   columns: "100px"
  api:
   type: "string"
   default:
    hcaptcha: "v1"
    friendly: "v2"
    cloudflare: "v0"
   labels:
    hcaptcha: "hCaptcha"
    friendly: "Friendly Captcha"
    cloudflare: "Cloudflare Turnstile"
   choices:
    v0: "v0"
    v1: "v1"
    Invisible: "v1 ({label.Invisible})"
    v2: "v2"
   nonsense: |
    hcaptcha:v0
    hcaptcha:v2
    friendly:v0
    friendly:Invisible
    cloudflare:v1
    cloudflare:Invisible
    cloudflare:v2
   style: "matrix"
   columns: "100px"
  messages:
   type: "checkbox"
   default: |
    cookie_warning:hcaptcha
    cookie_warning:friendly
    cookie_warning:cloudflare
    api_message:hcaptcha
    api_message:friendly
    api_message:cloudflare
   labels:
    hcaptcha: "hCaptcha"
    friendly: "Friendly Captcha"
    cloudflare: "Cloudflare Turnstile"
   choices:
    cookie_warning: "label.Show cookie warning"
    api_message: "label.Show API message"
   columns: "100px"
  lockto:
   type: "string"
   default:
    hcaptcha: "user"
    friendly: "user"
    cloudflare: "user"
   labels:
    hcaptcha: "hCaptcha"
    friendly: "Friendly Captcha"
    cloudflare: "Cloudflare Turnstile"
   choices:
    ip: "label.Lock CAPTCHAs to the IP address of the user completing the CAPTCHA but not to the actual user"
    user: "label.Lock CAPTCHAs to the user completing the CAPTCHA but not to their IP address"
    both: "label.Lock CAPTCHAs to the user completing the CAPTCHA as well as to their IP address"
   style: "matrix"
   columns: "100px"
  hcaptcha_sitekey:
   type: "string"
   default: ""
   hints: "hint.This value can be found in the dashboard for your CAPTCHA service"
   See also:
    HCaptcha Dashboard: &HCaptchaDashboard "https://dashboard.hcaptcha.com/overview"
  hcaptcha_secret:
   type: "string"
   default: ""
   hints: "hint.This value can be found in the dashboard for your CAPTCHA service"
   See also:
    HCaptcha Dashboard: *HCaptchaDashboard
  friendly_sitekey:
   type: "string"
   default: ""
   hints: "hint.This value can be found in the dashboard for your CAPTCHA service"
   See also:
    Friendly Captcha Dashboard: &FriendlyDashboard "https://app.friendlycaptcha.eu/dashboard"
  friendly_apikey:
   type: "string"
   default: ""
   hints: "hint.This value can be found in the dashboard for your CAPTCHA service"
   See also:
    Friendly Captcha Dashboard: *FriendlyDashboard
  turnstile_sitekey:
   type: "string"
   default: ""
   hints: "hint.This value can be found in the dashboard for your CAPTCHA service"
   See also:
    Cloudflare Dashboard: &CloudflareDashboard "https://dash.cloudflare.com/"
  turnstile_secret:
   type: "string"
   default: ""
   hints: "hint.This value can be found in the dashboard for your CAPTCHA service"
   See also:
    Cloudflare Dashboard: *CloudflareDashboard
  expiry:
   type: "float"
   step: "any"
   default: 720
   preview: "hours"
  signature_limit:
   type: "int"
   default: 1
  log:
   type: "string"
   default: ""
   hints: "hints_logging_datetime"
 legal:
  pseudonymise_ip_addresses:
   type: "bool"
   default: true
   See also:
    9.3.5 IP ADDRESS PSEUDONYMISATION: "https://github.com/CIDRAM/Docs/blob/master/readme.en.md\#935-ip-address-pseudonymisation"
  privacy_policy:
   type: "url"
   default: ""
   autocomplete: "url"
 template_data:
  theme:
   type: "string"
   default: "default"
   preview: "allow_other"
   allow_other: true
   choices:
    default: "Default"
    bluemetal: "Blue Metal"
    fullmoon: "Full Moon"
    moss: "Moss"
    primer: "Primer"
    primerdark: "Primer Dark"
    rbi: "Red-Blue Inverted"
    slate: "Slate"
   choice_filter: "filterThemeCore"
   lightdark:
    default: "light"
    bluemetal: "dark"
    fullmoon: "dark"
    moss: "light"
    primer: "light"
    primerdark: "dark"
    rbi: "light"
    slate: "dark"
  theme_mode:
   type: "string"
   default: "normal"
   choices:
    normal: "label.Normal"
    inverted: "label.Inverted"
   effects:
    inverted: ";filter:invert(1) hue-rotate(-180deg)"
   style: "radio"
  magnification:
   type: "float"
   step: "any"
   default: 1
  css_url:
   type: "url"
   default: ""
   autocomplete: "url"
  block_event_title:
   type: "string"
   default: "CIDRAM"
   choices:
    CIDRAM: "CIDRAM"
    denied: "denied"
   preview: "allow_other"
   allow_other: true
  captcha_title:
   type: "string"
   default: "CIDRAM"
   choices:
    CIDRAM: "CIDRAM"
   preview: "allow_other"
   allow_other: true
  custom_header:
   type: "string"
   default: ""
  custom_footer:
   type: "string"
   default: ""
 rate_limiting:
  max_bandwidth:
   type: "kb"
   default: "0KB"
  max_requests:
   type: "int"
   default: 0
  precision_ipv4:
   type: "int"
   default: 32
   min: 1
   max: 32
  precision_ipv6:
   type: "int"
   default: 128
   min: 1
   max: 128
  allowance_period:
   type: "duration"
   default: "0°0′0″"
  exceptions:
   type: "checkbox"
   default: "FE"
   choices:
    Whitelisted: "field.Whitelisted requests"
    Verified: "field.Verified search engine and social media requests"
    FE: "field.Requests to the CIDRAM front-end"
  segregate:
   type: "bool"
   default: false
 supplementary_cache_options:
  prefix:
   type: "string"
   default: "CIDRAM_"
  enable_apcu:
   type: "bool"
   default: true
   required:
    apcu: "APCu"
  enable_memcached:
   type: "bool"
   default: false
   required:
    memcached: "Memcached"
  enable_redis:
   type: "bool"
   default: false
   required:
    redis: "Redis"
  enable_pdo:
   type: "bool"
   default: false
   required:
    pdo: "PDO"
  memcached_host:
   type: "string"
   default: "localhost"
  memcached_port:
   type: "int"
   default: 11211
   min: 0
   max: 65535
  redis_host:
   type: "string"
   default: "localhost"
  redis_port:
   type: "int"
   default: 6379
   min: 0
   max: 65535
  redis_timeout:
   type: "float"
   step: "any"
   default: 2.5
  redis_database_number:
   type: "int"
   default: 0
   min: 0
   max: 9999
  pdo_dsn:
   type: "string"
   default: "mysql:dbname=cidram;host=localhost;port=3306"
   hints: "hints_pdo_dsn"
  pdo_username:
   type: "string"
   default: ""
   autocomplete: "username"
  pdo_password:
   type: "string"
   default: ""
   autocomplete: "current-password"
Provide:
 Initialise SimulateBlockEvent:
  CIDRAM:
   Aux Redirect: ""
   Aux Status Code: 200
   Banned: false
   ForciblyDisableCloudflareTurnstile: false
   ForciblyDisableFriendlyCaptcha: false
   ForciblyDisableHCaptcha: false
   Hostname: ""
   LastTestIP: 0
   Legal block triggered: false
   MarkForUseWithCloudflareTurnstile: false
   MarkForUseWithFriendlyCaptcha: false
   MarkForUseWithHCaptcha: false
   Other Status Code: 0
   Other Status: ""
   Suppress logging: false
   Suppress output template: false
   Suppress reports: false
   ThisStatusHTTP: 200
   Trackable: null
   Tracking options override: ""
   Whitelisted: false
 CAPTCHA choices for modules: &CaptchaChoicesForModules {MarkForUseWithHCaptcha: "label.aux.Mark for use with hCaptcha", ForciblyDisableHCaptcha: "label.aux.Forcibly disable hCaptcha", MarkForUseWithFriendlyCaptcha: "label.aux.Mark for use with Friendly Captcha", ForciblyDisableFriendlyCaptcha: "label.aux.Forcibly disable Friendly Captcha", MarkForUseWithCloudflareTurnstile: "label.aux.Mark for use with Cloudflare Turnstile", ForciblyDisableCloudflareTurnstile: "label.aux.Forcibly disable Cloudflare Turnstile"}
 Auxiliary Rules:
  Modes:
   - "Whitelist"
   - "Greylist"
   - "Block"
   - "Bypass"
   - "Redirect"
   - "Run"
   - "Profile"
  Sources:
   BlockInfo:
    IPAddr: "field.IP address"
    IPAddrResolved: "field.IP address (resolved)"
    Query: "field.Query"
    Referrer: "field.Referrer"
    UA: "field.User agent"
    UALC: "field.User agent (lower-case)"
    SignatureCount: "field.Signatures count"
    Signatures: "field.Signatures reference"
    WhyReason: "field.Why blocked"
    ReasonMessage: "field.Why blocked (detailed)"
    rURI: "field.Reconstructed URI"
    Infractions: "field.Infractions"
    ASNLookup: "field.ASN lookup"
    CCLookup: "field.Country code lookup"
    Verified: "field.Verified identity"
    Expired: "field.Expired"
    Ignored: "field.Ignored"
    Request_Method: "field.Request method"
    Protocol: "field.Protocol"
    SEC_CH_UA_PLATFORM: "SEC_CH_UA_PLATFORM"
    SEC_CH_UA_MOBILE: "SEC_CH_UA_MOBILE"
    SEC_CH_UA: "SEC_CH_UA"
   Profiles: "field.Profile"
   CIDRAM:
    Hostname: "field.Hostname"
    Factors: "CIDR"
   ClientL10NAccepted: "field.Language resolution"
   Cache:
    "Statistics-Blocked:IPv4": "{link.Statistics} – {label.Requests blocked} – IPv4"
    "Statistics-Blocked:IPv6": "{link.Statistics} – {label.Requests blocked} – IPv6"
    "Statistics-Blocked:Other": "{link.Statistics} – {label.Requests blocked} – {label.Other}"
    "Statistics-Banned:IPv4": "{link.Statistics} – {label.Requests banned} – IPv4"
    "Statistics-Banned:IPv6": "{link.Statistics} – {label.Requests banned} – IPv6"
    "Statistics-Passed:IPv4": "{link.Statistics} – {label.Requests passed} – IPv4"
    "Statistics-Passed:IPv6": "{link.Statistics} – {label.Requests passed} – IPv6"
    "Statistics-Passed:Other": "{link.Statistics} – {label.Requests passed} – {label.Other}"
    "Statistics-HCaptcha:Failed": "{link.Statistics} – HCaptcha – {response.Failed}"
    "Statistics-HCaptcha:Passed": "{link.Statistics} – HCaptcha – {response.Passed}"
    "Statistics-HCaptcha:Served": "{link.Statistics} – HCaptcha – {response.Served}"
    "Statistics-FriendlyCaptcha:Failed": "{link.Statistics} – Friendly Captcha – {response.Failed}"
    "Statistics-FriendlyCaptcha:Passed": "{link.Statistics} – Friendly Captcha – {response.Passed}"
    "Statistics-FriendlyCaptcha:Served": "{link.Statistics} – Friendly Captcha – {response.Served}"
    "Statistics-CloudflareTurnstile:Failed": "{link.Statistics} – Cloudflare Turnstile – {response.Failed}"
    "Statistics-CloudflareTurnstile:Passed": "{link.Statistics} – Cloudflare Turnstile – {response.Passed}"
    "Statistics-CloudflareTurnstile:Served": "{link.Statistics} – Cloudflare Turnstile – {response.Served}"
  Flags:
   CAPTCHA:
    Hint: "{label.aux.When forcibly disabled, marking for use won_t have any effect} {label.See also} <code translate="no">captcha➡usemode</code>"
    Mark for use with HCaptcha:
     Label: "label.aux.Mark for use with hCaptcha"
     Sets:
      CIDRAM: {MarkForUseWithHCaptcha: true}
    Forcibly disable HCaptcha:
     Label: "label.aux.Forcibly disable hCaptcha"
     Sets:
      CIDRAM: {ForciblyDisableHCaptcha: true}
    Mark for use with Friendly Captcha:
     Label: "label.aux.Mark for use with Friendly Captcha"
     Sets:
      CIDRAM: {MarkForUseWithFriendlyCaptcha: true}
    Forcibly disable Friendly Captcha:
     Label: "label.aux.Forcibly disable Friendly Captcha"
     Sets:
      CIDRAM: {ForciblyDisableFriendlyCaptcha: true}
    Mark for use with Cloudflare Turnstile:
     Label: "label.aux.Mark for use with Cloudflare Turnstile"
     Sets:
      CIDRAM: {MarkForUseWithCloudflareTurnstile: true}
    Forcibly disable Cloudflare Turnstile:
     Label: "label.aux.Forcibly disable Cloudflare Turnstile"
     Sets:
      CIDRAM: {ForciblyDisableCloudflareTurnstile: true}
   Output template:
    Label: "label.aux.Suppress output template"
    Suppress output template:
     Label: "label.aux.Suppress output template"
     Sets:
      CIDRAM: {Suppress output template: true}
   Logging:
    Label: "label.aux.Suppress logging"
    Suppress logging:
     Label: "label.aux.Suppress logging"
     Icon: "<span class="bckpicon"><span class="bckpicon auxbl logs"></span><span class="bckpicon auxrd disabledoverlay"></span></span>"
     Sets:
      CIDRAM: {Suppress logging: true}
   Reports:
    Label: "label.aux.Suppress reports"
    Hint: "{label.See also} <code translate="no">abuseipdb➡report_back</code>"
    Suppress reports:
     Label: "label.aux.Suppress reports"
     Sets:
      CIDRAM: {Suppress reports: true}
   IP Tracking:
    Label: "link.IP Tracking"
    Forcibly enable IP tracking:
     Label: "label.aux.Forcibly enable IP tracking"
     Icon: "<span class="bckpicon auxbl tracking"></span>"
     Sets:
      CIDRAM: {Trackable: true}
    Forcibly disable IP tracking:
     Label: "label.aux.Forcibly disable IP tracking"
     Icon: "<span class="bckpicon"><span class="bckpicon auxbl tracking"></span><span class="bckpicon auxrd disabledoverlay"></span></span>"
     Sets:
      CIDRAM: {Trackable: false}
   Values for IP tracking:
    Label: "label.Values for IP tracking"
    Enforce extended IP tracking options:
     Label: "label.aux.Enforce extended IP tracking options"
     Sets:
      CIDRAM: {Tracking options override: "extended"}
    Enforce default IP tracking options:
     Label: "label.aux.Enforce default IP tracking options"
     Sets:
      CIDRAM: {Tracking options override: "default"}
   Statistics:
    Label: "link.Statistics"
    Track this rule:
     Icon: "<span class="bckpicon auxbl statistics"></span>"
     Label: "label.aux.Track this rule"
   Email:
    Label: "label.aux.Email"
    Hint: "{label.aux.Requires PHPMailer} {label.See also} <code>general➡email_notification_address</code>, <code translate="no">general➡email_notification_name</code>"
    Email:
     Icon: "<span class="bckpicon auxbl email"></span>"
     Label: "label.aux.Send trigger notification to the configured email notification address"
   Disable this rule:
    Label: "label.aux.Disable this rule"
    Disable this rule:
     Label: "label.aux.Disable this rule"
     Icon: "<span class="bckpicon auxbl auxpausebig"></span>"
Links: !lazy
 AbuseIPDB: "<a href="https://abuseipdb.com/" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">AbuseIPDB</a>"
 BGPView: "<a href="https://bgpview.io/" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">BGPView</a>"
 CIDRAM:
  Bitbucket: "<a href="https://bitbucket.org/Maikuolan/cidram" dir="ltr" hreflang="en" rel="noopener noreferrer external">bitbucket.org/Maikuolan/cidram</a>"
  Codeberg: "<a href="https://codeberg.org/Maikuolan/CIDRAM" dir="ltr" hreflang="en" rel="noopener noreferrer external">codeberg.org/Maikuolan/CIDRAM</a>"
  Docs Base Path: "https://github.com/CIDRAM/Docs/blob/master/"
  Extras: "<a href="https://github.com/CIDRAM/CIDRAM-Extras" dir="ltr" hreflang="en" rel="noopener noreferrer external">github.com/CIDRAM/CIDRAM-Extras</a>"
  Issues: "<a href="https://github.com/CIDRAM/CIDRAM/issues" dir="ltr" hreflang="en" rel="noopener noreferrer external">github.com/CIDRAM/CIDRAM/issues</a>"
  WordPress: "<a href="https://wordpress.org/plugins/cidram/" dir="ltr" hreflang="en" rel="noopener noreferrer external">wordpress.org/plugins/cidram</a>"
 ConfigRef:
  sensitive: "<a onclick="javascript:toggleconfigNav('generalRow','generalShowLink')" href="\#config_general_sensitive"><code dir="ltr" translate="no">general➡sensitive</code></a>"
  sensitive_rtl: "<a onclick="javascript:toggleconfigNav('generalRow','generalShowLink')" href="\#config_general_sensitive"><code dir="rtl" translate="no">sensitive⬅general</code></a>"
  time_format: "<a onclick="javascript:toggleconfigNav('generalRow','generalShowLink')" href="\#config_general_time_format"><code dir="ltr" translate="no">general➡time_format</code></a>"
  time_format_rtl: "<a onclick="javascript:toggleconfigNav('generalRow','generalShowLink')" href="\#config_general_time_format"><code dir="rtl" translate="no">time_format⬅general</code></a>"
  signature_limit: "<a onclick="javascript:toggleconfigNav('captchaRow','captchaShowLink')" href="\#config_captcha_signature_limit"><code dir="ltr" translate="no">captcha➡signature_limit</code></a>"
  signature_limit_rtl: "<a onclick="javascript:toggleconfigNav('captchaRow','captchaShowLink')" href="\#config_captcha_signature_limit"><code dir="rtl" translate="no">signature_limit⬅captcha</code></a>"
 Discussions: "https://github.com/CIDRAM/CIDRAM/discussions"
 Documentation: "https://cidram.github.io/\#documentation"
 IP-API: "<a href="https://ip-api.com/" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">IP-API</a>"
 ISO:
  3166: "<a href="https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes" dir="ltr" hreflang="en-US" rel="nofollow noopener noreferrer external" target="_blank">ISO-3166</a>"
 MDN:
  Client hints: "<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-UA\#browser_compatibility" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">Sec-CH-UA - HTTP | MDN</a>"
  Homepage: "<a href="https://developer.mozilla.org/en-US/" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">MDN Web Docs</a>"
 MIT: "<a href="https://opensource.org/licenses/MIT" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">MIT</a>"
 PHP:
  Earth:
   Facebook: "<a href="https://www.facebook.com/groups/2204685680/" dir="ltr" rel="noopener noreferrer external">PHP.earth@Facebook</a>"
   Website: "<a href="https://php.earth/" dir="ltr" hreflang="en" rel="noopener noreferrer external">PHP.earth</a>"
 PHPMailer:
  License: "<a href="https://github.com/PHPMailer/PHPMailer/blob/master/LICENSE" dir="ltr" hreflang="en-US" rel="noopener external">LGPLv2.1</a>"
  PHPMailer: "<a href="https://github.com/PHPMailer/PHPMailer" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">PHPMailer</a>"
 RFC2324: "<a href="https://tools.ietf.org/html/rfc2324" dir="ltr" hreflang="en-US" rel="noopener noreferrer external">RFC 2324</a>"
 SFS: "<a href="https://www.stopforumspam.com/" dir="ltr" rel="noopener noreferrer external">Stop Forum Spam</a>"
 Website: "<a href="https://cidram.github.io/" hreflang="en-US" rel="noopener external"><span class="navicon link"></span>cidram.github.io</a>"
Extra SVG Icons:
 IP Testing: "<span onclick="javascript:{document.getElementById('ipTestFormInput').value='%s';document.getElementById('ipTestForm').submit()}" title="{link.IP Testing}" class="translateIcon navicon test" tabindex="0" role="button"></span>"
SVGs form data:
 IP Testing: "<form id="ipTestForm" action="?cidram-page=ip-testing" method="POST" style="display:none"><input type="hidden" name="ip-addr-focus" id="ipTestFormInput" /><input type="hidden" name="TestsSwitch" value="on" /></form>"
Excerpts: !lazy
 Bogon signature: "<code dir="ltr" lang="zxx" translate="no">0.0.0.0/8 Deny Bogon</code>"
 Module signature: "<code dir="ltr" lang="zxx" translate="no">$this->trigger(strpos($this->BlockInfo['UA'], 'Foobar') !== false, 'Foobar-UA', 'User agent "Foobar" not allowed.');</code>"
