{
  "audit": "actual-source deterministic scan-interruption audit",
  "repository": "/Users/jack/code/010-cpt/008-zhct/zhctproject/android/ZhctWeightingTableYoukate",
  "head": "2f759f9415b46a7166215fa670d5b4fafeef615e",
  "working_tree_clean": true,
  "repository_unchanged_during_audit": true,
  "source_sha256": {
    "app/src/main/java/com/cpt/zhct/weighting/activity/HomeActivity.java": "20cc1064c0045998523f5e82534a7d829ac02b166b427f3820823174a3ed3ab7",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/AlarmType.java": "5777e51726e4fbc52df471a38d8b05a638a28b0dac728c54736e8d7b9606ae76",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/TrayRemovalConfirmationCountConfig.java": "21212093890922a08ae04ba9f9f21a021e6be5b3ca775a257e91aa8f36a2a0db",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/TrayRemovalConfirmationCountPolicy.java": "7687d025de591aa2010dde6808f8cb9b419ca0342c5a02afa4ccbda892c89f85",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/UnlockCodePolicy.java": "70f52d5e187de618e9ac81d89c1594d29c6ae46d317c9c15af32d98f87fe3c30",
    "app/src/main/java/com/cpt/zhct/weighting/hardware/YoukateHardwareManager.java": "67d407e6ef858c22e4349aca0918fed6fb5608efb3f5ade170e4858e5282505d",
    "app/src/main/java/com/cpt/zhct/weighting/utils/Constants.java": "6df52f31c7af08f7b600e14e2c6ed8603a6a054d7fa77b31f7c0a7a710d8c20e"
  },
  "extracted_method_sha256": {
    "private void handleYoukateScanCode(String scanCode)": "a59bcaa2e231ec763aa8bc2db0828297c2b9903b060e66317e4d3de2f1563c5c",
    "private void handleEmptyScanCode()": "56320415e6ae3d1c95ae82d54700240409a2fc57753fb585beab869350a275e9",
    "private String cleanScanCode(String code)": "64d852de557264eb0552f3cc67f0c64bd8375b608126a6c696f7ab786f83acaa"
  },
  "test_assets_sha256": {
    "run_audit.py": "0498438131665ba60d73bb3b0c74cf6f83477af3d68aca5850d657d251fb53ab",
    "flow-template.java.txt": "c9109702f2ef783a615ba370392261f87e5a6f285155094d107854cab6f64c30",
    "boundary-stubs.json": "1f3acf1e2fdf212e25e5171aa38837445b725a59a29bc474cb79400d68ab25e3"
  },
  "javac": "/Users/jack/Library/Java/JavaVirtualMachines/openjdk-17.0.2/Contents/Home/bin/javac",
  "result_count": 11,
  "results": [
    "PASS Actual config: upgraded installation without stored key becomes 3",
    "PASS Actual config: fresh installation without stored key becomes 7",
    "PASS Actual config: saved 3 preserved",
    "PASS Actual config: invalid 11 repaired to 7",
    "PASS Actual extracted flow: 7 consecutive empty callbacks end exactly once",
    "PASS Actual extracted flow: same ordinary valid code clears empty counter",
    "PASS Actual extracted methods: three nonempty short codes become empty and trigger removal",
    "PASS Actual extracted cleaner: CRLF appended to six digits is rejected before cleaning (PC681 parser normally trims ends first)",
    "PASS Actual extracted normal-flow branch: ignored admin code does not reset empty count",
    "PASS Actual extracted flow: 3 callbacks without delays end (duration_us=3)",
    "PASS Actual extracted routing: a different valid code directly starts recognition without removal callback"
  ],
  "boundary": "No native SDK, Android lifecycle, UI transactions, database, network, serial port or hardware executed. PASS reproduces current behavior; it does not assert product correctness. Business source copies and class files were temporary and removed."
}
