Full Code of SirMangler/PrimeHack-Updater for AI

master 1beaf97e224d cached
20 files
304.4 KB
158.1k tokens
55 symbols
1 requests
Download .txt
Showing preview only (316K chars total). Download the full file or copy to clipboard to get everything.
Repository: SirMangler/PrimeHack-Updater
Branch: master
Commit: 1beaf97e224d
Files: 20
Total size: 304.4 KB

Directory structure:
gitextract_nkdwtkcl/

├── .gitattributes
├── .gitignore
├── LICENSE
├── PrimeHack Updater/
│   ├── App.config
│   ├── ILMerge.props
│   ├── PrimeHack Updater.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   └── app.manifest
│   ├── Source/
│   │   ├── CfgManager.cs
│   │   ├── TimedWebClient.cs
│   │   ├── Updater.cs
│   │   ├── VersionCheck.cs
│   │   └── WinForms/
│   │       ├── UpdateUI.Designer.cs
│   │       ├── UpdateUI.cs
│   │       └── UpdateUI.resx
│   └── packages.config
├── PrimeHack Updater.sln
└── README.md

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

================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs     diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following 
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln       merge=binary
#*.csproj    merge=binary
#*.vbproj    merge=binary
#*.vcxproj   merge=binary
#*.vcproj    merge=binary
#*.dbproj    merge=binary
#*.fsproj    merge=binary
#*.lsproj    merge=binary
#*.wixproj   merge=binary
#*.modelproj merge=binary
#*.sqlproj   merge=binary
#*.wwaproj   merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg   binary
#*.png   binary
#*.gif   binary

###############################################################################
# diff behavior for common document formats
# 
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the 
# entries below.
###############################################################################
#*.doc   diff=astextplain
#*.DOC   diff=astextplain
#*.docx  diff=astextplain
#*.DOCX  diff=astextplain
#*.dot   diff=astextplain
#*.DOT   diff=astextplain
#*.pdf   diff=astextplain
#*.PDF   diff=astextplain
#*.rtf   diff=astextplain
#*.RTF   diff=astextplain


================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# DNX
project.lock.json
project.fragment.lock.json
artifacts/

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
#*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush
.cr/

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
/PrimeHackSettings/Properties/Settings.settings
/PrimeHackSettings/Properties/Settings.Designer.cs
/PrimeHackSettings/Properties/Resources.resx
/PrimeHackSettings/Properties/Resources.Designer.cs
/PrimeHackSettings/Properties/AssemblyInfo.cs
/PrimeHackSettings/Program.cs
/PrimeHackSettings/PrimeHackSettings.csproj
*.ini


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                            NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.


================================================
FILE: PrimeHack Updater/App.config
================================================
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
</configuration>

================================================
FILE: PrimeHack Updater/ILMerge.props
================================================
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <!--                                                                                   -->
    <!-- ILMerge project-specific settings. Almost never need to be set explicitly.       -->
    <!-- for details, see http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx -->
    <!--                                                                                   -->
    <!-- *** set this file to Type=None, CopyToOutput=Never ***                            -->

    <!-- If True, all copy local dependencies will also be merged from referenced projects whether they are referenced in the current project explicitly or not -->
    <ILMergeTransitive>true</ILMergeTransitive>

    <!-- Extra ILMerge library paths (semicolon-separated). Dont put your package dependencies here, they will be added automagically -->
    <ILMergeLibraryPath></ILMergeLibraryPath>

    <!-- The solution NuGet package directory if not standard 'SOLUTION\packages' -->
    <ILMergePackagesPath></ILMergePackagesPath>

    <!-- The merge order file name if differs from standard 'ILMergeOrder.txt' -->
    <ILMergeOrderFile></ILMergeOrderFile>

    <!-- The strong key file name if not specified in the project -->
    <ILMergeKeyFile></ILMergeKeyFile>

    <!-- The assembly version if differs for the version of the main assembly -->
    <ILMergeAssemblyVersion></ILMergeAssemblyVersion>

    <!-- added in Version 1.0.4 -->
    <ILMergeFileAlignment></ILMergeFileAlignment>

    <!-- added in Version 1.0.4, default=none -->
    <ILMergeAllowDuplicateType></ILMergeAllowDuplicateType>

    <!-- If the <see cref="CopyAttributes"/> is also set, any assembly-level attributes names that have the same type are copied over into the target assembly -->
    <ILMergeAllowMultipleAssemblyLevelAttributes></ILMergeAllowMultipleAssemblyLevelAttributes>

    <!-- See ILMerge documentation -->
    <ILMergeAllowZeroPeKind></ILMergeAllowZeroPeKind>

    <!-- The assembly level attributes of each input assembly are copied over into the target assembly -->
    <ILMergeCopyAttributes></ILMergeCopyAttributes>
    
    <!-- Creates a .pdb file for the output assembly and merges into it any .pdb files found for input assemblies, default=true -->
    <ILMergeDebugInfo></ILMergeDebugInfo>

    <!-- Target assembly will be delay signed -->
    <ILMergeDelaySign></ILMergeDelaySign>

    <!-- Types in assemblies other than the primary assembly have their visibility modified -->
    <ILMergeInternalize></ILMergeInternalize>

    <!-- The path name of the file that will be used to identify types that are not to have their visibility modified -->
    <ILMergeInternalizeExcludeFile></ILMergeInternalizeExcludeFile>

    <!-- XML documentation files are merged to produce an XML documentation file for the target assembly -->
    <ILMergeXmlDocumentation></ILMergeXmlDocumentation>

    <!-- External assembly references in the manifest of the target assembly will use full public keys (false) or public key tokens (true, default value) -->
    <ILMergePublicKeyTokens></ILMergePublicKeyTokens>

    <!-- Types with the same name are all merged into a single type in the target assembly -->
    <ILMergeUnionMerge></ILMergeUnionMerge>

    <!-- The version of the target framework, default 40 (works for 45 too) -->
    <ILTargetPlatform></ILTargetPlatform>
  </PropertyGroup>
</Project>


================================================
FILE: PrimeHack Updater/PrimeHack Updater.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="..\packages\MSBuild.ILMerge.Task.1.0.5\build\MSBuild.ILMerge.Task.props" Condition="Exists('..\packages\MSBuild.ILMerge.Task.1.0.5\build\MSBuild.ILMerge.Task.props')" />
  <Import Project="..\packages\ILMerge.3.0.29\build\ILMerge.props" Condition="Exists('..\packages\ILMerge.3.0.29\build\ILMerge.props')" />
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{BC203460-914A-46A0-90E3-97897438CE4E}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <RootNamespace>PrimeHack_Updater</RootNamespace>
    <AssemblyName>PrimeHack Updater</AssemblyName>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <Deterministic>true</Deterministic>
    <NuGetPackageImportStamp>
    </NuGetPackageImportStamp>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>TRACE;DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <RunCodeAnalysis>true</RunCodeAnalysis>
  </PropertyGroup>
  <PropertyGroup>
    <StartupObject>PrimeHack_Updater.Updater</StartupObject>
  </PropertyGroup>
  <PropertyGroup>
    <ApplicationIcon>metroid_prime.ico</ApplicationIcon>
  </PropertyGroup>
  <PropertyGroup>
    <SignManifests>false</SignManifests>
  </PropertyGroup>
  <PropertyGroup>
    <SignAssembly>true</SignAssembly>
  </PropertyGroup>
  <PropertyGroup>
    <AssemblyOriginatorKeyFile>PrimeHack.pfx</AssemblyOriginatorKeyFile>
  </PropertyGroup>
  <PropertyGroup>
    <ManifestCertificateThumbprint>7687A0E9F25BEFCB5EE943B02778E8E3F6308A33</ManifestCertificateThumbprint>
  </PropertyGroup>
  <PropertyGroup>
    <ManifestKeyFile>PrimeHack Updater_TemporaryKey.pfx</ManifestKeyFile>
  </PropertyGroup>
  <PropertyGroup>
    <TargetZone>Internet</TargetZone>
  </PropertyGroup>
  <PropertyGroup>
    <GenerateManifests>false</GenerateManifests>
  </PropertyGroup>
  <PropertyGroup>
    <ApplicationManifest>Properties\app.manifest</ApplicationManifest>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.IO.Compression" />
    <Reference Include="System.IO.Compression.FileSystem" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="WindowsBase" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Properties\Resources.Designer.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Source\CfgManager.cs" />
    <Compile Include="Source\Updater.cs" />
    <Compile Include="Source\VersionCheck.cs" />
    <Compile Include="Source\WinForms\UpdateUI.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Source\WinForms\UpdateUI.Designer.cs">
      <DependentUpon>UpdateUI.cs</DependentUpon>
    </Compile>
    <Compile Include="Source\TimedWebClient.cs">
      <SubType>Component</SubType>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <None Include="App.config" />
    <None Include="ILMerge.props" />
    <None Include="packages.config" />
    <None Include="PrimeHack.pfx" />
    <None Include="Properties\app.manifest">
      <SubType>Designer</SubType>
    </None>
    <None Include="Resources\Deface_Regular_v1.ttf" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="metroid_prime.ico" />
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Include="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
      <SubType>Designer</SubType>
    </EmbeddedResource>
    <EmbeddedResource Include="Source\WinForms\UpdateUI.resx">
      <DependentUpon>UpdateUI.cs</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
      <Visible>False</Visible>
      <ProductName>Microsoft .NET Framework 4.5.2 %28x86 and x64%29</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\ILMerge.3.0.29\build\ILMerge.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\ILMerge.3.0.29\build\ILMerge.props'))" />
    <Error Condition="!Exists('..\packages\MSBuild.ILMerge.Task.1.0.5\build\MSBuild.ILMerge.Task.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSBuild.ILMerge.Task.1.0.5\build\MSBuild.ILMerge.Task.props'))" />
    <Error Condition="!Exists('..\packages\MSBuild.ILMerge.Task.1.0.5\build\MSBuild.ILMerge.Task.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSBuild.ILMerge.Task.1.0.5\build\MSBuild.ILMerge.Task.targets'))" />
  </Target>
  <UsingTask TaskName="ILMerge.MSBuild.Tasks.ILMerge" AssemblyFile="$(SolutionDir)\packages\ILMerge.MSBuild.Tasks.1.0.0.3\tools\ILMerge.MSBuild.Tasks.dll" />
  <Target Name="AfterBuild">
    <ItemGroup>
      <MergeAsm Include="$(OutputPath)$(TargetFileName)" />
      <MergeAsm Include="$(OutputPath)Newtonsoft.Json.dll" />
    </ItemGroup>
    <PropertyGroup>
      <MergedAssembly>$(ProjectDir)$(OutDir)PrimeHack Updater.exe</MergedAssembly>
    </PropertyGroup>
    <Message Text="ILMerge @(MergeAsm) -&gt; $(MergedAssembly)" Importance="high" />
    <ILMerge InputAssemblies="@(MergeAsm)" OutputFile="$(MergedAssembly)" TargetKind="SameAsPrimaryAssembly" />
  </Target>
  <PropertyGroup>
    <PostBuildEvent>
    </PostBuildEvent>
  </PropertyGroup>
</Project>

================================================
FILE: PrimeHack Updater/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("PrimeHack Updater")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("PrimeHack Updater")]
[assembly: AssemblyCopyright("Copyright ©  2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("bc203460-914a-46a0-90e3-97897438ce4e")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.5.0")]
[assembly: AssemblyFileVersion("1.0.5.0")]


================================================
FILE: PrimeHack Updater/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace PrimeHack_Updater.Properties {
    using System;
    
    
    /// <summary>
    ///   A strongly-typed resource class, for looking up localized strings, etc.
    /// </summary>
    // This class was auto-generated by the StronglyTypedResourceBuilder
    // class via a tool like ResGen or Visual Studio.
    // To add or remove a member, edit your .ResX file then rerun ResGen
    // with the /str option, or rebuild your VS project.
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {
        
        private static global::System.Resources.ResourceManager resourceMan;
        
        private static global::System.Globalization.CultureInfo resourceCulture;
        
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        
        /// <summary>
        ///   Returns the cached ResourceManager instance used by this class.
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PrimeHack_Updater.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        
        /// <summary>
        ///   Overrides the current thread's CurrentUICulture property for all
        ///   resource lookups using this strongly typed resource class.
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
        
        /// <summary>
        ///   Looks up a localized resource of type System.Byte[].
        /// </summary>
        internal static byte[] Deface_Regular_v1 {
            get {
                object obj = ResourceManager.GetObject("Deface_Regular_v1", resourceCulture);
                return ((byte[])(obj));
            }
        }
    }
}


================================================
FILE: PrimeHack Updater/Properties/Resources.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <data name="Deface_Regular_v1" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\Deface_Regular_v1.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </data>
</root>

================================================
FILE: PrimeHack Updater/Properties/app.manifest
================================================
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="PrimeHackUpdater" />
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC Manifest Options
             If you want to change the Windows User Account Control level replace the 
             requestedExecutionLevel node with one of the following.

        

        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            Specifying requestedExecutionLevel element will disable file and registry virtualization. 
            Remove this element if your application requires this virtualization for backwards
            compatibility.
        -->
      <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
      <applicationRequestMinimum>
        <defaultAssemblyRequest permissionSetReference="Custom" />
        <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- A list of the Windows versions that this application has been tested on
           and is designed to work with. Uncomment the appropriate elements
           and Windows will automatically select the most compatible environment. -->
      <!-- Windows Vista -->
      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
      <!-- Windows 7 -->
      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
      <!-- Windows 8 -->
      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
      <!-- Windows 8.1 -->
      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
      <!-- Windows 10 -->
      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
    </application>
  </compatibility>
  <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
       DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need 
       to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should 
       also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
  <!--
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
  </application>
  -->
  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
  <!--
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>
  -->
</assembly>

================================================
FILE: PrimeHack Updater/Source/CfgManager.cs
================================================
using System;
using System.IO;

namespace PrimeHack_Updater
{
    class CfgManager
    {
        string version = "";
        string isopath = "";
        bool mainbranch = true;
        bool immersive_mode = false;

        public CfgManager()
        {
            loadCfg();
        }

        public void loadCfg()
        {
            if (File.Exists("./updater.cfg"))
            {
                foreach (string line in File.ReadAllLines("./updater.cfg"))
                {
                    if (line.StartsWith("version="))
                    {
                        version = line.Replace("version=", "");
                        continue;
                    }

                    if (line.StartsWith("isopath="))
                    {
                        isopath = line.Replace("isopath=", "");
                        continue;
                    }

                    if (line.StartsWith("mainbranch="))
                    {
                        Boolean.TryParse(line.Replace("mainbranch=", ""), out mainbranch);
                        continue;
                    }

                    if (line.StartsWith("immersive_mode="))
                    {
                        Boolean.TryParse(line.Replace("immersive_mode=", ""), out immersive_mode);
                        continue;
                    }
                }
            } else
            {
                if (!Updater.WriteAccess(".\\"))
                    Updater.restartAsAdmin();

                File.Create("./updater.cfg");
            }
        }

        public string getISOPath()
        {
            if (!File.Exists("./updater.cfg"))
                loadCfg();

            return isopath;
        }

        public bool getImmersiveMode()
        {
            if (!File.Exists("./updater.cfg"))
                loadCfg();

            return immersive_mode;
        }

        public string getVersion()
        {
            if (!File.Exists("./updater.cfg"))
                loadCfg();

            return version;
        }

        public bool isMainBranch()
        {
            if (!File.Exists("./updater.cfg"))
                loadCfg();

            return mainbranch;
        }

        public void saveCfg()
        {
            if (!Updater.WriteAccess(".\\"))
                Updater.restartAsAdmin();

            if (!File.Exists("./updater.cfg"))
                loadCfg();

            string[] lines = new string[4];
            lines[0] = "version="+version;
            lines[1] = "isopath=" + isopath;
            lines[2] = "mainbranch=" + mainbranch;
            lines[3] = "immersive_mode=" + immersive_mode;

            File.WriteAllLines("./updater.cfg", lines);

            if (File.Exists("./version.txt"))
                File.Delete("./version.txt");
        }

        public void setVersion(string ver)
        {
            version = ver + (isMainBranch() ? "" : "I");
            saveCfg();
        }

        public void setISOPath(string path)
        {
            isopath = path;
            saveCfg();
        }

        public void setImmersiveMode(bool mode)
        {
            immersive_mode = mode;
            saveCfg();
        }

        public void setMainbranch(bool branch)
        {
            mainbranch = branch;
            saveCfg();
        }

        public bool isVersionsEqual(string remote)
        {
            if (version.Equals(remote + (isMainBranch() ? "" : "I")))
            {
                return true;
            }

            return false;
        }
    }
}


================================================
FILE: PrimeHack Updater/Source/TimedWebClient.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace PrimeHack_Updater
{
    class TimedWebClient : WebClient
    {
        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest w = base.GetWebRequest(address);
            w.Timeout = 3000;
            return w;
        }
    }
}


================================================
FILE: PrimeHack Updater/Source/Updater.cs
================================================
using Newtonsoft.Json.Linq;
using System;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Reflection;
using System.ComponentModel;
using PrimeHack_Updater.Source.WinForms;

namespace PrimeHack_Updater
{
    class Updater
    {
        public static string sysversion = "1.7.0";

        public static readonly CfgManager cfg = new CfgManager();
        public static UpdateUI ui;
        static string[] arguments = new string[0];

        [STAThread]
        static void Main(string[] args)
        {
            if (args.Length != 0)
                arguments = args;

            Application.SetCompatibleTextRenderingDefault(false);

            string html = VersionCheck.getJSONInfo(@"https://api.github.com/repos/SirMangler/PrimeHack-Updater/releases/latest");
            string remoteversion = VersionCheck.getVersion(html);

            #if (!DEBUG)
            if (!remoteversion.Equals(sysversion))
            {
                DialogResult dialogResult = MessageBox.Show("PrimeHack Updater has a new update. "
                        + "It is recommended you update as this may contain crucial bug fixes or migration tools for new PrimeHack versions.\n"
                        + "\nhttps://github.com/SirMangler/PrimeHack-Updater/releases"
                        + "\n\nOpen this link now?", "PrimeHack Updater", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (dialogResult == DialogResult.Yes)
                {
                    Process.Start("https://github.com/SirMangler/PrimeHack-Updater/releases");
                    System.Environment.Exit(0);
                }
            }
            #endif

            string repo;
            if (cfg.isMainBranch()) repo = @"https://api.github.com/repos/shiiion/dolphin/releases/latest";
            else repo = @"https://api.github.com/repos/shiiion/Ishiiruka/releases/latest";

            html = VersionCheck.getJSONInfo(repo);
            remoteversion = VersionCheck.getVersion(html);

            if (cfg.isVersionsEqual(remoteversion))
            {
                if (!IsPathValid(cfg.getISOPath()))
                {
                    Application.Run(ui = new UpdateUI());
                }
                else runPrimeHack(cfg.getISOPath());
            }
            else
            {
                if (!WriteAccess(".\\"))
                    restartAsAdmin();

                dynamic j = JObject.Parse(html);
                JArray ja = j.assets;
                dynamic assets = ja[0];
                string url = assets.browser_download_url;

                sysversion = remoteversion;

                Application.Run(ui = new UpdateUI(url));
            }
        }

        public static void Update(string url)
        {
            migrate(ui);

            while (true)
            {
                Process[] runningProcesses = Process.GetProcessesByName("Dolphin");
                if (runningProcesses.Length != 0)
                {
                    MessageBox.Show("Dolphin is currently running. Please close Dolphin to continue updating.", "PrimeHack Updater", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    break;
                }
            }

            DownloadLatest(url);
        }

        public static void DownloadLatest(string url)
        {
            ui.writeLine("New Update!\r\n\r\nDownloading: " + url);

            Uri uri;
            Uri.TryCreate(url, UriKind.Absolute, out uri);

            using (var client = new TimedWebClient())
            {
                client.Proxy = null;
                client.DownloadFileAsync(uri, Path.GetTempPath() + "\\PrimeHackRelease.zip");
                client.DownloadProgressChanged += ui.UpdateProgress;
                client.DownloadFileCompleted += InstallPrimeHack;
            }
        }

        public static void InstallPrimeHack(object sender, AsyncCompletedEventArgs e)
        {
            ui.writeLine("Extracting PrimeHackRelease.zip");

            ZipArchive archive = ZipFile.OpenRead(Path.GetTempPath() + "\\PrimeHackRelease.zip");

            foreach (ZipArchiveEntry file in archive.Entries)
            {
                string completeFileName = Path.Combine(".\\", file.FullName);
                string directory = Path.GetDirectoryName(completeFileName);

                if (!Directory.Exists(directory))
                    Directory.CreateDirectory(directory);

                if (File.Exists(completeFileName))
                {
                    if (completeFileName.EndsWith("hack_config.ini"))
                        continue;

                    long ziptime = file.LastWriteTime.ToFileTime();
                    long oldtime = File.GetLastWriteTime(completeFileName).ToFileTime();

                    if (ziptime == oldtime)
                        continue;
                }

                if (file.Name != "")
                {
                    file.ExtractToFile(completeFileName, true);
                }
            }

            archive.Dispose();

            ui.writeLine("Deleting PrimeHackRelease.zip");
            File.Delete(Path.GetTempPath() + "\\PrimeHackRelease.zip");

            cfg.setVersion(sysversion);
            ui.writeLine("Successfully updated to version: " + sysversion);

            ui.FinishedInstalling();
        }

        public static void restartAsAdmin()
        {
            WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
            bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);
            if (!hasAdministrativeRight)
            {
                string fileName = Assembly.GetExecutingAssembly().Location;
                ProcessStartInfo processInfo = new ProcessStartInfo();
                processInfo.Verb = "runas";
                processInfo.FileName = fileName;

                try
                {
                    Process.Start(processInfo);
                }
                catch (Win32Exception e)
                {
                    MessageBox.Show("Failed to restart with administrator.\nError: " + e.Message, "PrimeHack Updater", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                System.Environment.Exit(0);
            }
        }

        static string DE = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\Documents\Dolphin Emulator\");
        public static void migrate(UpdateUI ui)
        {
            string primesettings = "";
            bool beam = false;

            if (File.Exists("hack_config.ini"))
            {
                ui.writeLine("Importing PrimeHack settings");
                foreach (string line in File.ReadLines("hack_config.ini"))
                {
                    if (line.StartsWith("[beam]"))
                    {
                        beam = true;
                        continue;
                    }

                    if (line.StartsWith("[visor]"))
                    {
                        beam = false;
                        continue;
                    }

                    if (line.StartsWith("sensitivity"))
                    {
                        primesettings += "PrimeHack/Camera Sensitivity = " + line.Replace("sensitivity = ", "") + "\n";
                        continue;
                    }

                    if (line.StartsWith("cursor_sensitivity"))
                    {
                        primesettings += "PrimeHack/Cursor Sensitivity = " + line.Replace("cursor_sensitivity = ", "") + "\n";
                        continue;
                    }

                    if (line.StartsWith("fov"))
                    {
                        primesettings += "PrimeHack/Field of View = " + line.Replace("fov = ", "") + "\n";
                        continue;
                    }

                    if (line.StartsWith("inverted_y"))
                    {
                        primesettings += "PrimeHack/Invert Y axis = " + line.Replace("inverted_y = ", "") + "\n";
                        continue;
                    }

                    string nline;

                    if (line.StartsWith("index_0"))
                    {
                        if (beam)
                            nline = "PrimeHack/Beam 1 = " + line.Replace("index_0 = ", "");
                        else
                            nline = "PrimeHack/Visor 1 = " + line.Replace("index_0 = ", "");

                        primesettings += Regex.Replace(nline, "\b&\b", " & ") + "\n";

                        continue;
                    }

                    if (line.StartsWith("index_1"))
                    {
                        if (beam)
                            nline = "PrimeHack/Beam 2 = " + line.Replace("index_1 = ", "");
                        else
                            nline = "PrimeHack/Visor 2 = " + line.Replace("index_1 = ", "");

                        primesettings += Regex.Replace(nline, "\b&\b", " & ") + "\n";

                        continue;
                    }

                    if (line.StartsWith("index_2"))
                    {
                        if (beam)
                            nline = "PrimeHack/Beam 3 = " + line.Replace("index_2 = ", "");
                        else
                            nline = "PrimeHack/Visor 3 = " + line.Replace("index_2 = ", "");

                        primesettings += Regex.Replace(nline, "\b&\b", " & ") + "\n";

                        continue;
                    }

                    if (line.StartsWith("index_3"))
                    {
                        if (beam)
                            nline = "PrimeHack/Beam 4 = " + line.Replace("index_3 = ", "");
                        else
                            nline = "PrimeHack/Visor 4 = " + line.Replace("index_3 = ", "");

                        primesettings += Regex.Replace(nline, "\b&\b", " & ") + "\n";

                        continue;
                    }
                }

                string config = DE + "\\Config\\WiimoteNew.ini";
                if (!File.Exists(config))
                {
                    FileStream f = File.Create(config);
                    f.Close();

                    primesettings = "[Wiimote1]\n" + primesettings;

                    File.WriteAllLines(config, primesettings.Split('\n'));
                }
                else
                {
                    string[] oldwiimotenew = File.ReadAllLines(config);
                    List<string> newwiimote = new List<string>();

                    newwiimote.AddRange(oldwiimotenew);
                    newwiimote.Insert(2, primesettings.Substring(0, primesettings.Length - 1));

                    File.WriteAllLines(config, newwiimote.ToArray());
                }

                File.Delete(".\\hack_config.ini");
            }
        }

        public static void runPrimeHack(string path)
        {
            if (!File.Exists(".\\Dolphin.exe")) { 
                MessageBox.Show("Unable to locate Dolphin.exe!\n\nRemove updater.cfg and try again.", 
                                                      "PrimeHack Updater", MessageBoxButtons.OK, MessageBoxIcon.Error);

                System.Environment.Exit(0);
            }

            Process p = new Process();
            p.StartInfo.FileName = ".\\Dolphin.exe";
            p.StartInfo.UseShellExecute = true;


            if (path != null && !path.Equals("") && !path.Equals("NEVER"))
            {
                p.StartInfo.Arguments = "-e \"" + path + "\"";

                if (cfg.getImmersiveMode())
                    p.StartInfo.Arguments += " -b";
            }
            else
            {
                p.StartInfo.Arguments = string.Join(" ", arguments);
            }

            if (!cfg.isMainBranch())
            {
                if (!WriteAccess(".\\"))
                    p.StartInfo.Verb = "runas";
            }

            p.Start();

            System.Environment.Exit(0);
        }

        public static bool IsPathValid(string path)
        {
            if (path.Equals(""))
                return false;

            if (!File.Exists(path))
                return false;

            return true;
        }

        //Modified version of https://stackoverflow.com/a/3769421
        public static bool WriteAccess(string folderName)
        {
            if ((File.GetAttributes(folderName) & FileAttributes.ReadOnly) != 0)
                return false;

            // Get the access rules of the specified files (user groups and user names that have access to the file)
            var rules = Directory.GetAccessControl(folderName).GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier));

            // Get the identity of the current user and the groups that the user is in.
            var groups = WindowsIdentity.GetCurrent().Groups;
            string sidCurrentUser = WindowsIdentity.GetCurrent().User.Value;

            // Check if writing to the file is explicitly denied for this user or a group the user is in.
            if (rules.OfType<FileSystemAccessRule>().Any(r => (groups.Contains(r.IdentityReference) || r.IdentityReference.Value == sidCurrentUser) && r.AccessControlType == AccessControlType.Deny && (r.FileSystemRights & FileSystemRights.WriteData) == FileSystemRights.WriteData))
                return false;

            // Check if writing is allowed
            return rules.OfType<FileSystemAccessRule>().Any(r => (groups.Contains(r.IdentityReference) || r.IdentityReference.Value == sidCurrentUser) && r.AccessControlType == AccessControlType.Allow && (r.FileSystemRights & FileSystemRights.WriteData) == FileSystemRights.WriteData);
        }
    }
}


================================================
FILE: PrimeHack Updater/Source/VersionCheck.cs
================================================
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PrimeHack_Updater
{
    class VersionCheck
    {
        public static string getVersion(string html)
        {
            if (html == null || html.Length == 0)
            {
                VersionCheckError();
                return "-1";
            }

            dynamic j = JObject.Parse(html);
            string version = (string) j.tag_name;

            return version;
        }

        public static string getJSONInfo(string url)
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
            | SecurityProtocolType.Tls11
            | SecurityProtocolType.Tls12
            | SecurityProtocolType.Ssl3;

            string html = string.Empty;

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.AutomaticDecompression = DecompressionMethods.GZip;
                request.UserAgent = "PrimeHackUpdater";

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                using (Stream stream = response.GetResponseStream())
                using (StreamReader reader = new StreamReader(stream))
                {
                    html = reader.ReadToEnd();
                }
            }
            catch (Exception e)
            {
                Updater.ui.writeLine("Failed to retrieve version info: " + e.Message);
                VersionCheckError();
            }

            return html;
        }

        public static void VersionCheckError()
        {
            DialogResult result = MessageBox.Show("Failed to download the metadata for the latest version. Try again?", "PrimeHack Updater", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);

            if (result == DialogResult.Yes)
            {
                Updater.restartAsAdmin();
            }
            else if (result == DialogResult.No)
            {
                Updater.runPrimeHack("");
            }
            else if (result == DialogResult.Cancel)
            {
                Environment.Exit(0);
            }
        }
    }
}


================================================
FILE: PrimeHack Updater/Source/WinForms/UpdateUI.Designer.cs
================================================
namespace PrimeHack_Updater.Source.WinForms
{
    partial class UpdateUI
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UpdateUI));
      this.UpdatePanel = new System.Windows.Forms.SplitContainer();
      this.console = new System.Windows.Forms.TextBox();
      this.progressBar = new System.Windows.Forms.ProgressBar();
      this.SelectionPanel = new System.Windows.Forms.Panel();
      this.groupBox1 = new System.Windows.Forms.GroupBox();
      this.portableMode = new System.Windows.Forms.CheckBox();
      this.immersiveMode = new System.Windows.Forms.CheckBox();
      this.label1 = new System.Windows.Forms.Label();
      this.browse_button = new System.Windows.Forms.Button();
      this.path_box = new System.Windows.Forms.TextBox();
      this.Never = new System.Windows.Forms.Button();
      this.Later = new System.Windows.Forms.Button();
      this.Yes = new System.Windows.Forms.Button();
      ((System.ComponentModel.ISupportInitialize)(this.UpdatePanel)).BeginInit();
      this.UpdatePanel.Panel1.SuspendLayout();
      this.UpdatePanel.Panel2.SuspendLayout();
      this.UpdatePanel.SuspendLayout();
      this.SelectionPanel.SuspendLayout();
      this.groupBox1.SuspendLayout();
      this.SuspendLayout();
      // 
      // UpdatePanel
      // 
      this.UpdatePanel.Dock = System.Windows.Forms.DockStyle.Fill;
      this.UpdatePanel.Location = new System.Drawing.Point(0, 0);
      this.UpdatePanel.Name = "UpdatePanel";
      this.UpdatePanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
      // 
      // UpdatePanel.Panel1
      // 
      this.UpdatePanel.Panel1.Controls.Add(this.console);
      // 
      // UpdatePanel.Panel2
      // 
      this.UpdatePanel.Panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(39)))), ((int)(((byte)(39)))));
      this.UpdatePanel.Panel2.Controls.Add(this.progressBar);
      this.UpdatePanel.Size = new System.Drawing.Size(460, 150);
      this.UpdatePanel.SplitterDistance = 104;
      this.UpdatePanel.TabIndex = 0;
      // 
      // console
      // 
      this.console.BackColor = System.Drawing.Color.Black;
      this.console.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
      this.console.Dock = System.Windows.Forms.DockStyle.Fill;
      this.console.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(214)))), ((int)(((byte)(255)))));
      this.console.Location = new System.Drawing.Point(0, 0);
      this.console.Multiline = true;
      this.console.Name = "console";
      this.console.ReadOnly = true;
      this.console.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
      this.console.Size = new System.Drawing.Size(460, 104);
      this.console.TabIndex = 0;
      // 
      // progressBar
      // 
      this.progressBar.BackColor = System.Drawing.Color.Black;
      this.progressBar.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(102)))), ((int)(((byte)(0)))));
      this.progressBar.Location = new System.Drawing.Point(12, 11);
      this.progressBar.Name = "progressBar";
      this.progressBar.Size = new System.Drawing.Size(436, 19);
      this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
      this.progressBar.TabIndex = 0;
      // 
      // SelectionPanel
      // 
      this.SelectionPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(39)))), ((int)(((byte)(39)))));
      this.SelectionPanel.Controls.Add(this.groupBox1);
      this.SelectionPanel.Controls.Add(this.Never);
      this.SelectionPanel.Controls.Add(this.Later);
      this.SelectionPanel.Controls.Add(this.Yes);
      this.SelectionPanel.Dock = System.Windows.Forms.DockStyle.Fill;
      this.SelectionPanel.Location = new System.Drawing.Point(0, 0);
      this.SelectionPanel.Name = "SelectionPanel";
      this.SelectionPanel.Size = new System.Drawing.Size(460, 150);
      this.SelectionPanel.TabIndex = 1;
      // 
      // groupBox1
      // 
      this.groupBox1.Controls.Add(this.portableMode);
      this.groupBox1.Controls.Add(this.immersiveMode);
      this.groupBox1.Controls.Add(this.label1);
      this.groupBox1.Controls.Add(this.browse_button);
      this.groupBox1.Controls.Add(this.path_box);
      this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      this.groupBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(214)))), ((int)(((byte)(255)))));
      this.groupBox1.Location = new System.Drawing.Point(13, 3);
      this.groupBox1.Name = "groupBox1";
      this.groupBox1.Size = new System.Drawing.Size(435, 105);
      this.groupBox1.TabIndex = 9;
      this.groupBox1.TabStop = false;
      this.groupBox1.Text = "QuickLaunch (Optional)";
      // 
      // portableMode
      // 
      this.portableMode.AutoSize = true;
      this.portableMode.Location = new System.Drawing.Point(318, 80);
      this.portableMode.Name = "portableMode";
      this.portableMode.Size = new System.Drawing.Size(108, 17);
      this.portableMode.TabIndex = 8;
      this.portableMode.Text = "Portable Mode";
      this.portableMode.UseVisualStyleBackColor = true;
      this.portableMode.CheckedChanged += new System.EventHandler(this.PortableChecked);
      // 
      // immersiveMode
      // 
      this.immersiveMode.AutoSize = true;
      this.immersiveMode.Location = new System.Drawing.Point(14, 80);
      this.immersiveMode.Name = "immersiveMode";
      this.immersiveMode.Size = new System.Drawing.Size(288, 17);
      this.immersiveMode.TabIndex = 7;
      this.immersiveMode.Text = "Run Game Immersively (Hide Dolphin Window)";
      this.immersiveMode.UseVisualStyleBackColor = true;
      this.immersiveMode.CheckedChanged += new System.EventHandler(this.ImmersiveChecked);
      // 
      // label1
      // 
      this.label1.AutoSize = true;
      this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(102)))), ((int)(((byte)(0)))));
      this.label1.Location = new System.Drawing.Point(12, 17);
      this.label1.Name = "label1";
      this.label1.Size = new System.Drawing.Size(340, 26);
      this.label1.TabIndex = 6;
      this.label1.Text = "Do you want the PrimeHack Updater to automatically boot \r\ninto your game?";
      // 
      // browse_button
      // 
      this.browse_button.BackColor = System.Drawing.Color.DimGray;
      this.browse_button.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(214)))), ((int)(((byte)(255)))));
      this.browse_button.Location = new System.Drawing.Point(334, 51);
      this.browse_button.Name = "browse_button";
      this.browse_button.Size = new System.Drawing.Size(87, 24);
      this.browse_button.TabIndex = 4;
      this.browse_button.Text = "Browse";
      this.browse_button.UseVisualStyleBackColor = false;
      this.browse_button.Click += new System.EventHandler(this.browse_button_Click);
      // 
      // path_box
      // 
      this.path_box.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(102)))), ((int)(((byte)(0)))));
      this.path_box.Font = new System.Drawing.Font("SansSerif", 9.749999F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
      this.path_box.Location = new System.Drawing.Point(14, 51);
      this.path_box.Name = "path_box";
      this.path_box.ReadOnly = true;
      this.path_box.Size = new System.Drawing.Size(314, 23);
      this.path_box.TabIndex = 3;
      // 
      // Never
      // 
      this.Never.BackColor = System.Drawing.Color.DimGray;
      this.Never.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(214)))), ((int)(((byte)(255)))));
      this.Never.Location = new System.Drawing.Point(169, 114);
      this.Never.Name = "Never";
      this.Never.Size = new System.Drawing.Size(121, 27);
      this.Never.TabIndex = 8;
      this.Never.Text = "Never";
      this.Never.UseVisualStyleBackColor = false;
      this.Never.Click += new System.EventHandler(this.Never_Click);
      // 
      // Later
      // 
      this.Later.BackColor = System.Drawing.Color.DimGray;
      this.Later.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(214)))), ((int)(((byte)(255)))));
      this.Later.Location = new System.Drawing.Point(327, 114);
      this.Later.Name = "Later";
      this.Later.Size = new System.Drawing.Size(121, 27);
      this.Later.TabIndex = 7;
      this.Later.Text = "Ask Later";
      this.Later.UseVisualStyleBackColor = false;
      this.Later.Click += new System.EventHandler(this.Later_Click);
      // 
      // Yes
      // 
      this.Yes.BackColor = System.Drawing.Color.DimGray;
      this.Yes.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(214)))), ((int)(((byte)(255)))));
      this.Yes.Location = new System.Drawing.Point(13, 114);
      this.Yes.Name = "Yes";
      this.Yes.Size = new System.Drawing.Size(121, 27);
      this.Yes.TabIndex = 6;
      this.Yes.Text = "Yes";
      this.Yes.UseVisualStyleBackColor = false;
      this.Yes.Click += new System.EventHandler(this.Yes_Click);
      // 
      // UpdateUI
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(460, 150);
      this.Controls.Add(this.UpdatePanel);
      this.Controls.Add(this.SelectionPanel);
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
      this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
      this.MaximizeBox = false;
      this.Name = "UpdateUI";
      this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
      this.Text = "PrimeHack Updater";
      this.UpdatePanel.Panel1.ResumeLayout(false);
      this.UpdatePanel.Panel1.PerformLayout();
      this.UpdatePanel.Panel2.ResumeLayout(false);
      ((System.ComponentModel.ISupportInitialize)(this.UpdatePanel)).EndInit();
      this.UpdatePanel.ResumeLayout(false);
      this.SelectionPanel.ResumeLayout(false);
      this.groupBox1.ResumeLayout(false);
      this.groupBox1.PerformLayout();
      this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.SplitContainer UpdatePanel;
        private System.Windows.Forms.TextBox console;
        private System.Windows.Forms.ProgressBar progressBar;
        private System.Windows.Forms.Panel SelectionPanel;
        private System.Windows.Forms.GroupBox groupBox1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Button browse_button;
        private System.Windows.Forms.TextBox path_box;
        private System.Windows.Forms.Button Never;
        private System.Windows.Forms.Button Later;
        private System.Windows.Forms.Button Yes;
        private System.Windows.Forms.CheckBox immersiveMode;
    private System.Windows.Forms.CheckBox portableMode;
  }
}

================================================
FILE: PrimeHack Updater/Source/WinForms/UpdateUI.cs
================================================
using System;
using System.Drawing.Text;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace PrimeHack_Updater.Source.WinForms
{
    public partial class UpdateUI : Form
    {
        public UpdateUI()
        {
            LoadFont();

            InitializeComponent();
            Show();

            ISOSelection();
        }

        public UpdateUI(string url)
        {
            LoadFont();

            InitializeComponent();
            Show();

            new Thread(() => Updater.Update(url)).Start();
        }

        public void writeLine(string line)
        {
            BeginInvoke((Action)(() => console.AppendText(line+"\r\n")));
        }

        public void ISOSelection()
        {
            writeLine("ISO selector");

            immersiveMode.Checked = Updater.cfg.getImmersiveMode();
            portableMode.Checked = File.Exists("./portable.txt");

            UpdatePanel.Hide();
            SelectionPanel.Show();

            FlashWindowEx(this);
        }

        private void Yes_Click(object sender, EventArgs e)
        {
            Updater.cfg.setISOPath(path_box.Text);
            Updater.runPrimeHack(path_box.Text);
        }

        private void Never_Click(object sender, EventArgs e)
        {
            Updater.cfg.setISOPath("NEVER");
            Updater.runPrimeHack("NEVER");
        }

        private void Later_Click(object sender, EventArgs e)
        {
            Updater.runPrimeHack("");
        }

        private void browse_button_Click(object sender, EventArgs e)
        {
            OpenFileDialog filedialog = new OpenFileDialog();
            filedialog.Title = "Select your Metroid Prime: Trilogy or Metroid Prime GC dump";
            filedialog.Filter = "All GC/Wii files|*.elf;*.dol;*.gcm;*.tgc;*.iso;*.wbfs;*.ciso;*.gcz;*.wad;*.dff;*.wia;*.rvz|ISO Files|*.iso|GCZ Files|*.gcz|WIA Files|*.wia|RVZ Files|*.rvz";
            filedialog.FilterIndex = 1;

            if (STAShowDialog(filedialog) == DialogResult.OK)
            {
                path_box.Text = filedialog.FileName;
            }
        }

        private void ImmersiveChecked(object sender, EventArgs e)
        {
            Updater.cfg.setImmersiveMode(immersiveMode.Checked);
        }

        private void PortableChecked(object sender, EventArgs e)
        {      
            if (portableMode.Checked && !File.Exists("./portable.txt"))
              File.Create("./portable.txt").Close();
            else if (!portableMode.Checked && File.Exists("./portable.txt")) 
              File.Delete("./portable.txt");
        }

        public void UpdateProgress(object sender, DownloadProgressChangedEventArgs e)
        {
            BeginInvoke((Action)(() =>
            {
                progressBar.Value = e.ProgressPercentage;
            }));
        }

        public void FinishedInstalling()
        {
            if (!Updater.IsPathValid(Updater.cfg.getISOPath()))
                BeginInvoke((Action)(() => ISOSelection()));
            else Updater.runPrimeHack(Updater.cfg.getISOPath());
        }

        public static DialogResult STAShowDialog(FileDialog dialog)
        {
            DialogState state = new DialogState();

            state.dialog = dialog;

            System.Threading.Thread t = new System.Threading.Thread(state.ThreadProcShowDialog);

            t.SetApartmentState(System.Threading.ApartmentState.STA);

            t.Start();

            t.Join();

            return state.result;
        }

        public class DialogState
        {
            public DialogResult result;
            public FileDialog dialog;

            public void ThreadProcShowDialog()
            {
                result = dialog.ShowDialog();
            }
        }

        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool FlashWindowEx(ref FLASHWINFO pwfi);

        public const UInt32 FLASHW_ALL = 3;
        public const UInt32 FLASHW_TIMERNOFG = 12;

        [StructLayout(LayoutKind.Sequential)]
        public struct FLASHWINFO
        {
            public UInt32 cbSize;
            public IntPtr hwnd;
            public UInt32 dwFlags;
            public UInt32 uCount;
            public UInt32 dwTimeout;
        }
        public static bool FlashWindowEx(Form form)
        {
            IntPtr hWnd = form.Handle;
            FLASHWINFO fInfo = new FLASHWINFO();

            fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
            fInfo.hwnd = hWnd;
            fInfo.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG;
            fInfo.uCount = UInt32.MaxValue;
            fInfo.dwTimeout = 0;

            return FlashWindowEx(ref fInfo);
        }

        [System.Runtime.InteropServices.DllImport("gdi32.dll")]
        private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont,
            IntPtr pdv, [System.Runtime.InteropServices.In] ref uint pcFonts);

        private PrivateFontCollection fonts = new PrivateFontCollection();

        // Source: https://stackoverflow.com/questions/556147/how-to-quickly-and-easily-embed-fonts-in-winforms-app-in-c-sharp/23519499#23519499
        public void LoadFont()
        {
            byte[] fontData = Properties.Resources.Deface_Regular_v1;
            IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length);
            System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length);
            uint dummy = 0;
            fonts.AddMemoryFont(fontPtr, Properties.Resources.Deface_Regular_v1.Length);
            AddFontMemResourceEx(fontPtr, (uint)Properties.Resources.Deface_Regular_v1.Length, IntPtr.Zero, ref dummy);
            System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
        }
  }
}


================================================
FILE: PrimeHack Updater/Source/WinForms/UpdateUI.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        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
        585fQnh4XSUB77J+KNy4HArGCwnQ
Download .txt
gitextract_nkdwtkcl/

├── .gitattributes
├── .gitignore
├── LICENSE
├── PrimeHack Updater/
│   ├── App.config
│   ├── ILMerge.props
│   ├── PrimeHack Updater.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   └── app.manifest
│   ├── Source/
│   │   ├── CfgManager.cs
│   │   ├── TimedWebClient.cs
│   │   ├── Updater.cs
│   │   ├── VersionCheck.cs
│   │   └── WinForms/
│   │       ├── UpdateUI.Designer.cs
│   │       ├── UpdateUI.cs
│   │       └── UpdateUI.resx
│   └── packages.config
├── PrimeHack Updater.sln
└── README.md
Download .txt
SYMBOL INDEX (55 symbols across 7 files)

FILE: PrimeHack Updater/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: PrimeHack Updater/Source/CfgManager.cs
  class CfgManager (line 6) | class CfgManager
    method CfgManager (line 13) | public CfgManager()
    method loadCfg (line 18) | public void loadCfg()
    method getISOPath (line 57) | public string getISOPath()
    method getImmersiveMode (line 65) | public bool getImmersiveMode()
    method getVersion (line 73) | public string getVersion()
    method isMainBranch (line 81) | public bool isMainBranch()
    method saveCfg (line 89) | public void saveCfg()
    method setVersion (line 109) | public void setVersion(string ver)
    method setISOPath (line 115) | public void setISOPath(string path)
    method setImmersiveMode (line 121) | public void setImmersiveMode(bool mode)
    method setMainbranch (line 127) | public void setMainbranch(bool branch)
    method isVersionsEqual (line 133) | public bool isVersionsEqual(string remote)

FILE: PrimeHack Updater/Source/TimedWebClient.cs
  class TimedWebClient (line 10) | class TimedWebClient : WebClient
    method GetWebRequest (line 12) | protected override WebRequest GetWebRequest(Uri address)

FILE: PrimeHack Updater/Source/Updater.cs
  class Updater (line 18) | class Updater
    method Main (line 26) | [STAThread]
    method Update (line 84) | public static void Update(string url)
    method DownloadLatest (line 104) | public static void DownloadLatest(string url)
    method InstallPrimeHack (line 120) | public static void InstallPrimeHack(object sender, AsyncCompletedEvent...
    method restartAsAdmin (line 163) | public static void restartAsAdmin()
    method migrate (line 188) | public static void migrate(UpdateUI ui)
    method runPrimeHack (line 310) | public static void runPrimeHack(string path)
    method IsPathValid (line 347) | public static bool IsPathValid(string path)
    method WriteAccess (line 359) | public static bool WriteAccess(string folderName)

FILE: PrimeHack Updater/Source/VersionCheck.cs
  class VersionCheck (line 13) | class VersionCheck
    method getVersion (line 15) | public static string getVersion(string html)
    method getJSONInfo (line 29) | public static string getJSONInfo(string url)
    method VersionCheckError (line 60) | public static void VersionCheckError()

FILE: PrimeHack Updater/Source/WinForms/UpdateUI.Designer.cs
  class UpdateUI (line 3) | partial class UpdateUI
    method Dispose (line 14) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 29) | private void InitializeComponent()

FILE: PrimeHack Updater/Source/WinForms/UpdateUI.cs
  class UpdateUI (line 12) | public partial class UpdateUI : Form
    method UpdateUI (line 14) | public UpdateUI()
    method UpdateUI (line 24) | public UpdateUI(string url)
    method writeLine (line 34) | public void writeLine(string line)
    method ISOSelection (line 39) | public void ISOSelection()
    method Yes_Click (line 52) | private void Yes_Click(object sender, EventArgs e)
    method Never_Click (line 58) | private void Never_Click(object sender, EventArgs e)
    method Later_Click (line 64) | private void Later_Click(object sender, EventArgs e)
    method browse_button_Click (line 69) | private void browse_button_Click(object sender, EventArgs e)
    method ImmersiveChecked (line 82) | private void ImmersiveChecked(object sender, EventArgs e)
    method PortableChecked (line 87) | private void PortableChecked(object sender, EventArgs e)
    method UpdateProgress (line 95) | public void UpdateProgress(object sender, DownloadProgressChangedEvent...
    method FinishedInstalling (line 103) | public void FinishedInstalling()
    method STAShowDialog (line 110) | public static DialogResult STAShowDialog(FileDialog dialog)
    class DialogState (line 127) | public class DialogState
      method ThreadProcShowDialog (line 132) | public void ThreadProcShowDialog()
    method FlashWindowEx (line 138) | [DllImport("user32.dll")]
    type FLASHWINFO (line 145) | [StructLayout(LayoutKind.Sequential)]
    method FlashWindowEx (line 154) | public static bool FlashWindowEx(Form form)
    method AddFontMemResourceEx (line 168) | [System.Runtime.InteropServices.DllImport("gdi32.dll")]
    method LoadFont (line 175) | public void LoadFont()
Condensed preview — 20 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (319K chars).
[
  {
    "path": ".gitattributes",
    "chars": 2518,
    "preview": "###############################################################################\n# Set default behavior to automatically "
  },
  {
    "path": ".gitignore",
    "chars": 4628,
    "preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n# User"
  },
  {
    "path": "LICENSE",
    "chars": 18092,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Fr"
  },
  {
    "path": "PrimeHack Updater/App.config",
    "chars": 182,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n    <startup> \n        <supportedRuntime version=\"v4.0\" sku=\".N"
  },
  {
    "path": "PrimeHack Updater/ILMerge.props",
    "chars": 3540,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "PrimeHack Updater/PrimeHack Updater.csproj",
    "chars": 8518,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "PrimeHack Updater/Properties/AssemblyInfo.cs",
    "chars": 1402,
    "preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
  },
  {
    "path": "PrimeHack Updater/Properties/Resources.Designer.cs",
    "chars": 3146,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "PrimeHack Updater/Properties/Resources.resx",
    "chars": 6082,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "PrimeHack Updater/Properties/app.manifest",
    "chars": 3162,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">\n  <ass"
  },
  {
    "path": "PrimeHack Updater/Source/CfgManager.cs",
    "chars": 3557,
    "preview": "using System;\nusing System.IO;\n\nnamespace PrimeHack_Updater\n{\n    class CfgManager\n    {\n        string version = \"\";\n "
  },
  {
    "path": "PrimeHack Updater/Source/TimedWebClient.cs",
    "chars": 410,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net;\nusing System.Text;\nusing System.Th"
  },
  {
    "path": "PrimeHack Updater/Source/Updater.cs",
    "chars": 14032,
    "preview": "using Newtonsoft.Json.Linq;\nusing System;\nusing System.Diagnostics;\nusing System.IO;\nusing System.IO.Compression;\nusing"
  },
  {
    "path": "PrimeHack Updater/Source/VersionCheck.cs",
    "chars": 2333,
    "preview": "using Newtonsoft.Json.Linq;\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing S"
  },
  {
    "path": "PrimeHack Updater/Source/WinForms/UpdateUI.Designer.cs",
    "chars": 12084,
    "preview": "namespace PrimeHack_Updater.Source.WinForms\n{\n    partial class UpdateUI\n    {\n        /// <summary>\n        /// Requir"
  },
  {
    "path": "PrimeHack Updater/Source/WinForms/UpdateUI.cs",
    "chars": 5895,
    "preview": "using System;\nusing System.Drawing.Text;\nusing System.IO;\nusing System.Net;\nusing System.Runtime.InteropServices;\nusing"
  },
  {
    "path": "PrimeHack Updater/Source/WinForms/UpdateUI.resx",
    "chars": 219551,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "PrimeHack Updater/packages.config",
    "chars": 289,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n  <package id=\"ILMerge\" version=\"3.0.29\" targetFramework=\"net452\" />\n"
  },
  {
    "path": "PrimeHack Updater.sln",
    "chars": 1858,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.3050"
  },
  {
    "path": "README.md",
    "chars": 471,
    "preview": "# PrimeHack-Updater\nAn Updater/Installer for the [latest PrimeHack versions by Shiiion](https://github.com/shiiion/dolph"
  }
]

About this extraction

This page contains the full source code of the SirMangler/PrimeHack-Updater GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 20 files (304.4 KB), approximately 158.1k tokens, and a symbol index with 55 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!