Full Code of henrypp/simplewall for AI

master b33787d02273 cached
98 files
1.0 MB
330.9k tokens
388 symbols
1 requests
Download .txt
Showing preview only (1,111K chars total). Download the full file or copy to clipboard to get everything.
Repository: henrypp/simplewall
Branch: master
Commit: b33787d02273
Files: 98
Total size: 1.0 MB

Directory structure:
gitextract_imtg74o1/

├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.md
│   └── workflows/
│       └── scorecard.yml
├── .gitignore
├── .gitmodules
├── CHANGELOG.md
├── CHANGELOGv1.md
├── LICENSE
├── README.md
├── VERSION
├── bin/
│   ├── History.txt
│   ├── License.txt
│   ├── Readme.txt
│   ├── i18n/
│   │   ├── !example.txt
│   │   ├── Arabic.ini
│   │   ├── Bulgarian.ini
│   │   ├── Catalan.ini
│   │   ├── Chinese (Simplified).ini
│   │   ├── Chinese (Traditional).ini
│   │   ├── Czech.ini
│   │   ├── Dutch.ini
│   │   ├── Finnish.ini
│   │   ├── French.ini
│   │   ├── German.ini
│   │   ├── Hungarian.ini
│   │   ├── Italian.ini
│   │   ├── Japanese.ini
│   │   ├── Korean.ini
│   │   ├── Persian.ini
│   │   ├── Polish.ini
│   │   ├── Portuguese (Brazil).ini
│   │   ├── Portuguese.ini
│   │   ├── Russian.ini
│   │   ├── Serbian (Cyrillic).ini
│   │   ├── Serbian (Latin).ini
│   │   ├── Slovak.ini
│   │   ├── Slovenian.ini
│   │   ├── Spanish.ini
│   │   ├── Swedish.ini
│   │   ├── Turkish.ini
│   │   ├── Ukrainian.ini
│   │   └── Vietnamese.ini
│   ├── profile_internal.xml
│   └── simplewall.lng
├── build.bat
├── build_locale.bat
├── build_simplewall_rules.bat
├── build_vc.bat
├── packages.config
├── simplewall.sln
├── simplewall.vcxproj
├── simplewall.vcxproj.filters
├── simplewall.vcxproj.user
└── src/
    ├── app.h
    ├── controls.c
    ├── controls.h
    ├── db.c
    ├── db.h
    ├── editor.c
    ├── editor.h
    ├── global.h
    ├── helper.c
    ├── helper.h
    ├── icons.c
    ├── icons.h
    ├── listview.c
    ├── listview.h
    ├── log.c
    ├── log.h
    ├── main.c
    ├── main.h
    ├── messages.c
    ├── messages.h
    ├── network.c
    ├── network.h
    ├── notifications.c
    ├── notifications.h
    ├── packages.c
    ├── packages.h
    ├── profile.c
    ├── profile.h
    ├── res/
    │   └── manifest.xml
    ├── resource.h
    ├── resource.rc
    ├── search.c
    ├── search.h
    ├── security.c
    ├── security.h
    ├── timer.c
    ├── timer.h
    ├── uwp.cpp
    ├── uwp.h
    ├── wfp.c
    └── wfp.h

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

================================================
FILE: .gitattributes
================================================
*.c diff
*.cpp diff
*.h diff
*.rc diff
*.ini diff
*.txt diff
*.xml diff
*.lng diff


================================================
FILE: .github/FUNDING.yml
================================================
custom: ["https://www.paypal.me/henrypp", "https://yoomoney.ru/to/4100115776040583", "https://www.blockchain.com/btc/address/1LrRTXPsvHcQWCNZotA9RcwjsGcRghG96c", "https://www.blockchain.com/eth/address/0xe2C84A62eb2a4EF154b19bec0c1c106734B95960"]


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug report
title: "[Bug]"
description: Let me know about crash or existing functionality not working like it should.
labels: [ "bug" ]
body:
  - type: markdown
    attributes:
      value: Thanks for taking the time to fill out this bug report!
  - type: checkboxes
    id: checklist
    attributes:
      label: Checklist
      options:
        - label: I have used the search function to see if someone else has already submitted the same bug report.
          required: true
        - label: I will describe the problem with as much detail as possible.
          required: true
  - type: input
    id: version
    attributes:
      label: App version
      description: What the application version do you use.
      placeholder: x.y.z
    validations:
      required: true
  - type: input
    id: windows_version
    attributes:
      label: Windows version
      description: What Windows version do you use.
    validations:
      required: true
  - type: textarea
    id: steps
    attributes:
      label: Steps to reproduce
      placeholder: |
        1. Go to '…'
        2. Click on '…'
        3. Scroll down to '…'
        4. etc.
    validations:
      required: true
  - type: textarea
    id: expected
    attributes:
      label: Expected behavior
      description: After following the steps, what did you think application would do?
    validations:
      required: false
  - type: textarea
    id: actual
    attributes:
      label: Actual behavior
      description: What did application do instead? Screenshots might help.
    validations:
      required: true
  - type: textarea
    id: logs
    attributes:
      label: Logs
      description: |
        - If application have debug log insert it here.
        - If application have crash dump please attach it here.

        Tip: You can attach images, log files or crash dumps by clicking this area to highlight it and then dragging files in.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature request
title: "[Feature]"
description: Suggest an idea for this project.
labels: [ "feature" ]
body:
  - type: checkboxes
    id: checklist
    attributes:
      label: Checklist
      options:
        - label: I have used the search function to see if someone else has already submitted the same feature request.
          required: true
        - label: I will describe the problem with as much detail as possible.
          required: true
        - label: This issue only contains a request for one single feature, **not** multiple (related) features.
          required: true
  - type: input
    id: version
    attributes:
      label: App version
      description: What the application version do you use.
      placeholder: x.y.z
    validations:
      required: true
  - type: textarea
    id: problem
    attributes:
      label: Problem you are trying to solve
      description: Give a brief explanation of the problem you are trying to solve.
    validations:
      required: true
  - type: textarea
    id: solution
    attributes:
      label: Suggested solution
      description: Describe how you would like the app to help you solve that problem. Try to be as specific as possible.
    validations:
      required: true
  - type: textarea
    id: screenshots
    attributes:
      label: Screenshots / Drawings / Technical details
      description: |
        If your request is about (or includes) changing or extending the user interface (UI), describe what the UI would look like and how the user would interact with it.

        Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.


================================================
FILE: .github/ISSUE_TEMPLATE/question.md
================================================
---
name: Question
about: Ask a question about application.
title: '[Question]'
labels: [ "question" ]
assignees: ''

---

Describe the question with as much detail as possible.

---

App version: <enter app version here>
Windows version: <enter windows version here>

================================================
FILE: .github/workflows/scorecard.yml
================================================
# This workflow uses actions that are not certified by GitHub. They are provided
# by a third-party and are governed by separate terms of service, privacy
# policy, and support documentation.

name: Scorecard supply-chain security
on:
  # For Branch-Protection check. Only the default branch is supported. See
  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
  branch_protection_rule:
  # To guarantee Maintained check is occasionally updated. See
  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
  schedule:
    - cron: '32 18 * * 3'
  push:
    branches: [ "master" ]

# Declare default permissions as read only.
permissions: read-all

jobs:
  analysis:
    name: Scorecard analysis
    runs-on: ubuntu-latest
    # `publish_results: true` only works when run from the default branch. conditional can be removed if disabled.
    if: github.event.repository.default_branch == github.ref_name || github.event_name == 'pull_request'
    permissions:
      # Needed to upload the results to code-scanning dashboard.
      security-events: write
      # Needed to publish results and get a badge (see publish_results below).
      id-token: write
      # Uncomment the permissions below if installing in a private repository.
      # contents: read
      # actions: read

    steps:
      - name: "Checkout code"
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          persist-credentials: false

      - name: "Run analysis"
        uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
        with:
          results_file: results.sarif
          results_format: sarif
          # (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
          # - you want to enable the Branch-Protection check on a *public* repository, or
          # - you are installing Scorecard on a *private* repository
          # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
          # repo_token: ${{ secrets.SCORECARD_TOKEN }}

          # Public repositories:
          #   - Publish results to OpenSSF REST API for easy access by consumers
          #   - Allows the repository to include the Scorecard badge.
          #   - See https://github.com/ossf/scorecard-action#publishing-results.
          # For private repositories:
          #   - `publish_results` will always be set to `false`, regardless
          #     of the value entered here.
          publish_results: true

          # (Optional) Uncomment file_mode if you have a .gitattributes with files marked export-ignore
          file_mode: git

      # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
      # format to the repository Actions tab.
      - name: "Upload artifact"
        uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
        with:
          name: SARIF file
          path: results.sarif
          retention-days: 5

      # Upload the results to GitHub's code scanning dashboard (optional).
      # Commenting out will disable upload of results to your repo's Code Scanning dashboard
      - name: "Upload to code-scanning"
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif


================================================
FILE: .gitignore
================================================
.vs/
.vscode/
temp/
packages/
bin/32/
bin/64/
bin/arm64/
x64/
win32/
arm64/
__pycache__

thumbs.db
ehthumbs.db
desktop.ini

*.cab
*.msi
*.msm
*.msp
*.lnk
*.jpg
*.zip
*.log
*.pdb
*.exp
*.sdf
*.opensdf
*.db
*.opendb
*.suo
*.exp
*.iobj
*.ipch
*.ipdb
*.ilk
*.obj
*.res
*.tlog

*PVS-Studio*


================================================
FILE: .gitmodules
================================================
[submodule "routine"]
	path = ../routine
	url = https://github.com/henrypp/routine.git

[submodule "builder"]
	path = ../builder
	url = https://github.com/henrypp/builder.git


================================================
FILE: CHANGELOG.md
================================================
v3.8.7 (8 August 2025)
- fixed not logical crash (issue #2012)
- fixed context menu performance
- updated locale (issue #1984)
- updated project sdk
- cosmetic fixes

v3.8.6.1 (21 May 2025)
- fixed "open containing folder" error (issue #1977)
- fixed crash at startup (issue #1979)
- fixed crash dump (issue #1958)

v3.8.6 (1 April 2025)
- fixed check for update, does not bring up popup (issue #1923)
- fixed memory heap error (issue #1945)
- fixed possible crash
- improved dark theme support

v3.8.5 (27 November 2024)
- fixed adding apps with drive letters instead of specific apps (issue #1887)
- fixed creating rules for inaccessible paths (issue #1891)
- fixed opening log with spaces path (issue #1912)
- fixed windows 7 loopback rules
- cosmetic fixes

v3.8.4 (11 September 2024)
- added listview empty markup
- fixed tray icon middle click not worked when log ui is disabled
- fixed notification displays invalid signature (issue #1871)
- fixed does not show up tray icon (issue #1844)
- fixed crash when cleanup timers (issue #1860)
- fixed possible memory leak
- updated project sdk
- updated rule hint
- cosmetic fixes

v3.8.3 (8 August 2024)
- added remember last position of notification window (issue #1659)
- added watch services & uwp apps for install/uninstall
- added displays long time for apps
- improved windows 7 compatibility
- improved arm64 compatibility
- improved dark theme support
- fixed show log button does not work as expected (issue #1757, again!)
- fixed apps sometimes delete themselves (issue #1794, not fixed)
- fixed duplicate process at startup (issue #1769)
- fixed do not save hash when it is not enabled
- fixed row colors for dark mode (issue #1767)
- fixed log listview sorting by date
- fixed displaying timer tooltip
- updated project sdk

v3.8.2 (9 May 2024)
- revert back windows 7 & windows 8 support
- improved dark theme support
- improved log subscription
- fixed show log button does not work as expected (issue #1757)
- fixed search visibility

v3.8.1 (27 April 2024)
- fixed lacks search context (issue #1760)
- fixed incorrect log ui listview item counting
- updated confirm message for timers cleanup
- updated confirm message for unused cleanup
- updated cppwinrt package
- updated project sdk

v3.8 (1 April 2024)
- added mitigations (win10+) (issue #611)
- added dark theme support (issue #248)
- fixed displaying same context menu on apps and packets log
- updated search engine
- updated project sdk

v3.7.8 (28 January 2024)
- added saving flag state for install/uninstall filters
- fixed crash on tooltip (issue #1686)
- fixed apps disabled removal menu
- updated dropped packets (ui) listview context menu
- updated project sdk

v3.7.7 (3 January 2024)
- added error message when loading library on subscribe
- added comment item for apps/rules (issue #1664)
- added recheck app hash in properies dialog
- added highlighting of undelatable apps
- fixed displaying incorrect error messages
- fixed high disk usage (issue #1665)
- updated ports list

v3.7.6 (30 November 2023)
- fixed configuration of windows update (issue #1648)
- fixed auto update fails to install (issue #1565)
- updated project sdk

v3.7.5 (1 November 2023)
- fixed saving services and uwp apps (issue #1616)
- fixed file locked by simplewall (issue #1621)
- fixed removing unused apps
- fixed process creation
- updated project sdk

v3.7.4 (27 October 2023)
- added set option to disable apps removal from profile (issue #1155)
- fixed cannot save itself as unchecked (issue #1609)
- fixed could not save profile (issue #1594)
- fixed crash (issue #1582)
- updated project sdk

v3.7.3 (11 October 2023)
- added error message for saving profile
- removed redistributable package requirement (issue #1587)
- fixed profile was not found message (issue #1557)
- fixed crash on reading version information
- revert back certificates checking option
- updated project sdk

v3.7.2 (21 September 2023)
- dropped windows 7 and windows 8 support
- fixed launch of several copies of the application (issue #1547)
- fixed create filters for inaccessible apps (issue #1528)
- fixed displaying update dialog at startup (issue #1511)
- fixed retrieving version information for some files
- fixed slow apps search (issue #1477)
- fixed periodicaly crashing (issue #1486)
- fixed retrieving some apps icons
- fixed saving input on settings
- fixed saving unused apps
- fixed process creation
- improved signature checking
- updated project sdk

v3.7.1 (31 July 2023)
- fixed import not correcly worked (issue #1466)
- fixed crash when checking files (issue #1455)
- updated project sdk

v3.7 (27 July 2023)
- added profile encryption [oldest versions cannot open new profile] (issue #599)
- added terminate process into notification window (issue #1398)
- added checksum calculation for the apps (issue #394)
- added error message for log subscription
- improved search performance (issue #1383)
- fixed timer and apps timestamp displays incorrect information (32-bit only)
- fixed sometimes application displays incrorrect icons
- fixed possible crash when clearing log
- fixed silent uninstaller do not worked
- fixed arm64 build crash (issue #1228)
- fixed internal bugs
- fixed memory leaks
- updated nuget package
- updated project sdk
- updated locale

v3.6.7 (21 September 2022)
- added windows update service solution (issue #677, thx @taviso) [win10+]
- added feature to allow only the requested ip in notification (issue #1265)
- added 12 and 24 hour timer values (issue #1298)
- fixed opening editor are overlapped by notification window
- fixed uwp apps are reset after installing updates (issue #1294)
- fixed select all with search filter selects everything (issue #1264)
- fixed loading default icons for services and uwp apps
- fixed check update option in main menu (issue #1309)
- fixed port numbers are now verified (issue #1240)

v3.6.6 (12 August 2022)
- fixed editor does not disable save button when rule name is empty
- fixed network monitor duplicate calls
- fixed application crash (issue #1272)

v3.6.5 (11 August 2022)
- added group for apps with timers
- display long time in packets log date column
- fixed uwp packages display name parsing
- fixed blank notifications (again!) (issue #1009)

v3.6.4 (19 Juny 2022)
- added focus assistant support (win10rs3+)
- fixed notification sometimes can lose focus of fullscreen app
- fixed internal profile loading crash (issue #1228)

v3.6.3 (10 May 2022)
- fixed installer launches simplewall without asking user (issue #1119)
- fixed saving unused apps in profile (issue #1216)
- fixed app crash on create process (issue ##1224)
- fixed uninstaller delete not all files
- improved workqueue environment
- improved threading model
- fixed internal bugs

v3.6.2 (26 April 2022)
- added autoinstall non-executable updates feature (issue #1122)
- added clear search with escape button for editor
- added fallback for font loading when it does not exists
- improved uwp packages information loading
- fixed restore properties window position
- fixed rule tooltip whitespace
- fixed internal bugs
- updated network monitor
- updated locales
- cosmetic fixes

v3.6.1 (11 November 2021)
- added clear search with escape button
- fixed crash on delete filters (issue #1084)
- fixed import profile warning (issue #1086)
- fixed crash dumps processing
- updated locales
- cosmetic fixes

v3.6 (9 November 2021)
- improved multi-threading safety
- improved startup time
- improved dpi support
- added option to confirm allowing applications (issue #1070)
- added filtering for the application list (issue #663)
- added editor list items count mark for tab title
- added wfp initialization failure workaround
- added filtering for editor apps and rules
- added layer name into log
- moved log exclude configuration into another settings page (issue #1064)
- revert notification x button (issue #973)
- changed create rule toolbar icon (#723)
- fixed filters with hard permit can access internet (issue #689)
- fixed issue with hotkeys for switch tabs (issue #723)
- fixed rebar incrorrect resizing when dpi was changed
- fixed update installation issue (issue #1061)
- fixed notification multi-monitor support
- fixed service missing path (issue #1036)
- fixed editor can cause crash (#1071)
- fixed big memory leak (issue #1066)
- fixed net events unsubscription
- optimized listview sorting
- fixed internal bugs
- cosmetic fixes

v3.5.3 (18 October 2021)
- fixed using uninitialzed port variable in ip ranges [regression] (issue #1055)

v3.5.2 (17 October 2021)
- builded with windows 11 sdk
- fixed port can be omited when parsing ip ranges (issue #1010)
- fixed remote range replaces local range (issue #1044)
- fixed interface stuck by comctl library (issue #1009)
- fixed massive gdi handles leak
- fixed internal bugs

v3.5.1 (6 October 2021)
- optimized certificate checking
- fixed check apps for digital signatures option not works (issue #1037)
- fixed lock to avoid duplicate file information loading
- fixed crash on profile loading (issue #1033)

v3.5 (4 October 2021)
- in this release fqdn support was removed because of security issue (issues #1012)
- improved performance due caching network resolution and file information
- partially revert of windows defender power off (issue #1022)
- added ballon tip to display input limitations (issue #809)
- added compress internal profile in resources with lznt1
- fixed signatures information pointer use-after-free when dns resolver avoid arpa requests (issue #1008)
- fixed resolve network addresses can cause crash (issue #1015)
- fixed notification color issues (issue #1007)
- fixed update installation (issue #1016)
- fixed version information retrieval
- fixed workqueue environment
- fixed internal bugs

v3.4.3 (30 August 2021)
- added verify code signatures from catalog files (issue #1003)
- fixed crash at startup (issue #995)
- fixed rule reference (issue #1002)

v3.4.2 (24 August 2021)
- enable checking apps certificates by default
- show notifications immediately without waiting for busy operations to complete
- impoved listview responsiveness by using virtual listview callback
- fixed packets log displays incorrect direction (issue #945)
- fixed missed listview icons on refresh
- fixed thread environment
- fixed internal bugs
- cosmetic fixes

v3.4.1 (15 August 2021)
- fixed blocklist can does not change action status
- fixed crash at startup (issue #976)
- fixed profile import compatibility
- fixed install update

v3.4 (11 August 2021)
- added arm64 binaries (portable only)
- added protocol and host name information into network alert window (issue #843)
- added limit number of packets log entries (issue #941)
- added host resolving for packet logger listview
- added listview group for forever blocked apps
- fixed loading icons of each application freezes interface (issue #830)
- fixed log listview can have empty lines due to race condition
- fixed ui not properly display installation status (issue #962)
- fixed memory leak when loading profile (issue #888, #937)
- fixed high cpu usage for packet logger (issue #949)
- updated system rules
- updated project sdk
- fixed internal bugs

v3.3.5 (5 July 2021)
- added command line short opts
- use guid for tray icon
- updated project sdk
- fixed toolbar glitch on hidpi displays (issue #950)
- fixed multi-monitor with diffirent dpi support
- fixed installer creates unused files
- fixed internal bugs

v3.3.4 (3 June 2021)
- autoclean packets log ui when system suspended
- fixed config may not be saved when profile directory does not exist
- fixed unnecessary checking for app paths attributes
- fixed threadpool does not initialized com library
- fixed installer silent mode (issue #907)
- updated blocklist and system rules
- fixed internal bugs

v3.3.3 (29 April 2021)
- fixed listview tooltip can cause crash (issue #890)
- fixed editor does not create filters for the app
- fixed incorrect shared icons behaviour
- fixed interlocked operations logic
- fixed caching behaviour
- fixed internal bugs

v3.3.2 Beta (23 April 2021)
- added half an hour timer
- added missing spinlocks
- fixed file write operation can cause crash
- fixed path unexpand does not worked
- fixed running log viewer
- fixed little memory leak
- fixed bugs

v3.3.1 Beta (16 April 2021)
- added workaround for native paths on profile loading (issue #817)
- fixed net events does not subscribe on os version lower than 1607

v3.3 Beta (15 April 2021)
- added option for tray icon to open window in single click
- added warning message for allowing service host
- added quic service for internal rules (issue #819)
- added multiple rules at once in rules editor
- added properties dialog for apps
- added index column for logs
- added sorting for logs
- do not mark apps as unused if it applied for rules
- set limit for rules popup menu (issue #692)
- increased speed of service enumeration
- removed notification ignore button
- use threadpool for timers
- improved multi-monitor support
- improved listviews highlighting
- improved file dialogs
- fixed rule window does not display rule length limitation (issue #867)
- fixed update period timestamp does not set correctly (issue #745)
- fixed crash when user uses ipv6 range in rules (issue #822)
- fixed support filesystems with custom driver (issue #817)
- fixed blank notification window (issue #775)
- fixed dependencies load flags for win10rs1+
- fixed crash on app startup (issue #775)
- updated project sdk
- cosmetic fixes
- fixed bugs

v3.2.4 (5 September 2020)
- removed assertion from release builds (issue #764)
- removed user service instance from the list (win10+)
- fixed parsing not existing apps (issue #732, #739)
- displays incorrect name on timer expiration
- check app timer expiration on profile load
- incorrect read-only rules tooltip markup
- create filter does not report errors
- fixed checking of file attributes
- fixed parsing ip/port ranges
- cosmetic fixes
- fixed bugs

v3.2.3 (25 August 2020)
- added ncsi system rule (issue #709)
- added command line mutex checking (issue #750)
- added noficitation window redraw (issue #731)
- use logical sorting order (issue #735)
- check for provider status before create filters
- do not highlight connections in log tab
- fixed support oldest win7 versions (issue #737)
- removed listview empty markup
- cosmetic fixes
- fixed bugs

v3.2.2 (29 July 2020)
- user rules broken with 3.2.1 (issue #729)

v3.2.1 (29 July 2020)
- added Enable silent-mode when full screen app in foreground option
- added error message for createprocess failure (issue #720)
- highlighting valid connections in network tab
- changed "Disabled apps" group title into "Apps without internet access"
- skip uac warning does not worked (issue #724)
- notification window localized in english only
- revert ip version selection ipv4/ipv6 in rules editor (issue #723)
- revert expand rules in tooltip (issue #723)
- revert "recommended" tag (fix #719)
- fixed bugs

v3.2 Beta (18 July 2020)
- new rules editor
- added option "IsInternalRulesDisabled" for completely disable internal rules (issue #630)
- added temporary filtering mode whether is active until reboot (issue #576)
- added packets logging interface (issue #672)
- added tile view for listview
- added information for export profile failure (issue #707)
- improved tooltips details for apps and rules
- improved listview resizing performance
- changed "Enabled apps" group title into "Apps with internet access"
- now highlight app with user rules only when user rules group is disabled
- removed compatibility with v2 profile databases
- removed special group for rules
- removed user id from title
- fixed local network connection treats as valid network connection (issue #579)
- fixed notification window will bring focus to it's parent window (issue #668)
- fixed "/uninstall" argument does not removing filters (issue #645)
- fixed wfp engine security violation (issue #680)
- fixed support custom windows themes (issue #701)
- fixed getting uwp app paths and timestamps
- fixed dpi support (issue #693)
- fixed internal upnp rule
- fixed bugs

v3.1.2 (26 March 2020)
- reverted disable windows firewall on startup (issue #559 and #562)
- fixed application cannot be started because of continuously restart
- fixed possible duplicate apps entries with short path (issue #640)
- fixed network alert steals the focus (issue #637)
- fixed network paths parsing (issue #629)
- fixed netbios direction (issue #636)
- fixed localization (issue #607)
- fixed bugs

v3.1.1 (27 February 2020)
- fixed displaying tooltips for non-existing apps in network tab (issue #422)
- fixed wsl apps do not display names in the network tab (issue #606)
- fixed incorrect default locale name on some systems (issue #621)
- fixed process mitigation policy (win10rs2+) (issue #611)
- fixed persistent dark theme (win10rs5+) (issue #609)
- fixed update window does not close (issue #616)
- fixed log cleanup (issue #613)
- updated blocklist
- fixed bugs

v3.1 (8 February 2020)
- changed compiler build settings
- changed settings interface
- improved windows 10 1903+ suppport
- show log cleanup confirmation only when it has entries
- fixed notification tabstop processing (issue #497) by @flipkick
- fixed downloading updates progress gets stuck (issue #568)
- fixed find dialog does not worked correctly (issue #511)
- fixed drawing filename in notification (issue #595)
- fixed adjust privileges (theoretically fixes #596)
- fixed inbound direction recognition (issue #581)
- fixed search for next/active notification
- fixed notification hotkeys (issue #597)
- fixed memory duplicate allocation
- updated project sdk (routine++)
- updated ports definitions
- updated blocklist
- fixed bugs

v3.0.9 (15 November 2019)
- do not set notification to top when fullscreen apps working
- fixed disable notifications for app from notification (issue #563)
- fixed crash on system settings changing (issue #552)
- fixed winhttp encoding conversion (issue #568)
- fixed statusbar glitch (issue #569)
- updated blocklist
- fixed bugs

v3.0.8 (8 November 2019)
- removed disable windows firewall on startup (issue #554)
- updated default timer values (issue #340)
- fixed non-default system dpi (issue #544)
- fixed overwrite notifications
- fixed crash (issue #552)
- cosmetics fixes
- fixed bugs

v3.0.7 (1 November 2019)
- improved dpi support (win81+)
- fixed ended timer handling on restart
- fixed regular update message (issue #543)
- fixed components update installation
- fixed window and listview sizing
- updated project sdk
- updated blocklist
- cosmetics fixes
- fixed bugs

v3.0.6 RC (12 October 2019)
- added windows 10 1903+ support
- added csv file title (clear the log to see changes)
- disable network address resolution in network tab by default (issue #515)
- improved refreshing filters on device connecting
- improved network monitoring speed and ui
- improved notification ui
- improved dpi support (win81+)
- fixed collecting services & uwp information
- fixed device names resolution (issue #529)
- fixed toolbar gray text draw (issue #437)
- fixed network items blinking on refresh
- fixed flickering on window resizing
- fixed notification windows refresh
- fixed hostname restricted symbols
- fixed wfp security attributes
- fixed highlighting priority
- fixed memory leak
- updated system rules
- cosmetics fixes
- fixed bugs

v3.0.5 RC (6 August 2019)
- added option to block outbound connections globally
- added close connection feature (issue #506)
- added powerful blocklist configuration
- removed listen layer
- skip saving default rules configuration
- fixed connections port byte order (issue #504)
- fixed user rules ui bug (issue #500)
- fixed dropped packets log layout
- fixed internal rules editor
- fixed ipv6 rule formatting (issue #475)
- fixed connections hashing
- listview menu cosmetics
- cosmetics fixes
- fixed bugs

v3.0.4 RC (23 July 2019)
- added rules and blocklist options into main menu
- set security settings enabled by default
- set protocol names based on IEEE
- made correct backups for profile on reset
- bring notification window to top
- correct determine connections for apps
- fixed error message on new device insertion (issue #215)
- fixed missing connections (issue #423)
- fixed listview sorting does not save state sometimes
- fixed listview sorting compare checked items
- fixed uninstaller does not remove new profile
- fixed tray menu notifications cosmetics
- optimized group items counting
- optimized listview sorting
- cosmetics fixes
- fixed bugs

v3.0.3 Beta (3 July 2019)
- added option to show notification window on tray
- added highlighting for network tab
- redraw app item on connection change
- remove "beta" mark from network tab
- improved wfp transactions
- fixed ipv6 rules port parsing for system rules (issue #475)
- fixed direction case for log and notification (issue #474)
- fixed notification action adds timer (issue #472)
- fixed timer set does not work (issue #484)
- fixed notification refresh when app remove
- fixed configuration reset does not work
- fixed menu graphics (issue #473)
- fixed log stack cleanup
- updated port service names
- cosmetics fixes
- fixed bugs

v3.0.2 Beta (22 Juny 2019)
- new notification ui
- allow microsoft update & microsoft apps servers by default
- added information about ports into the log
- moved icmp4 and icmp6 rules into custom rules
- improved dropped packets log markup cosmetics
- improved network monitoring speed
- improved blocklist configuration
- fixed saving special rules for uwp apps and services (issue #454)
- fixed tray icon dissapear sometimes (issue #450)
- fixed profile import does not work (issue #445)
- fixed semicolons in app paths (issue #462)
- fixed windows 20h1 uwp apps loading crash
- fixed parsing rules with "*"
- updated locales
- cosmetic fixes
- fixed bugs

v3.0.1 Beta (22 May 2019)
- new profile structure
- added checking for correct xml file format before import
- added service name resolution for connections
- added Reverse DNS Lookup for IP
- more flexible autoresizing for listview
- fixed column size initialization (issue #426)
- fixed apps list sorting by date (issue #412)
- fixed status refreshing on timer deletion
- fixed table view for rules (issue #438)
- fixed connections recognition condition
- fixed highlighting (issue #408)
- fixed timers sets (issue #424)
- fixed services icons
- updated locales
- cosmetic fixes
- fixed bugs

v3.0 Beta (7 May 2019)
- dropped windows vista support
- improved dpi support (ui)
- moved rules list into main window
- added services and uwp apps tab
- added network connections monitor
- fixed displaying notifications when it's disabled
- fixed log file write through (issue #369)
- fixed notifications safety timeout
- fixed possible race conditions
- fixed services path retrieve
- fixed notifications cleanup
- improved listview resizing
- improved listview sorting
- removed blacklist mode
- cosmetic fixes
- fixed bugs


================================================
FILE: CHANGELOGv1.md
================================================
v2.4.6 (27 March 2019)
- enabled special rules group by default (issue #352)
- fixed removing dropped packet items when overflow
- fixed notifications crashing (issue #360)
- fixed checkbox saving state (issue #355)
- fixed possible memory dereferencing
- fixed errors log overflow
- cosmetic fixes
- fixed bugs

v2.4.5 (20 March 2019)
- fixed user reported bugs

v2.4.4 Beta (15 March 2019)
- added safety timeout for notification buttons
- added filename highlighting into notification window (issue #344)
- fixed new notifications replacing old one (issue #299)
- fixed updates installation in some cases
- cosmetic fixes
- fixed bugs

v2.4.3 Beta (9 March 2019)
- fixed filters access rights
- fixed race conditions crash (issue #337)
- fixed notifications locale
- fixed bugs

v2.4.2 Beta (5 March 2019)
- fixed crash (issue #337)
- updated blocklist
- cosmetic fixes
- fixed bugs

v2.4.1 Beta (1 March 2019)
- improved notifications speed
- fixed rules listview sorting
- fixed notification ui
- cosmetic fixes
- fixed bugs

v2.4 Beta (21 February 2019)
- new notification ui
- improved transactions processing
- added predefined rules (ftp, http etc)
- added option to configure 6to4 redirections (it's allowed, but undocumented earlier)
- added double-click for statusbar parts to make purgen faster
- added option to secure installed filters
- added more list view modes
- fixed notifications stay visible when special rules applied for the app
- fixed possible duplicate of special rules from notifications
- fixed multithreading and possible race conditions
- fixed duplicate filters callback on device arrival (issue #291)
- fixed dropped packets csv log delimeter
- fixed packages path retrieving (win8+)
- replaced netsh commands by com interface
- cosmetic fixes
- fixed bugs

v2.3.13 (3 January 2019)
- added dns resolver caching
- added dns resolver winsock fallback (issue #290)
- avoid window flickering on window sizing
- revert refresh filters on device arrival
- fixed access rights for wfp provider and sublayer
- fixed allocated strings dereferencing (issue #285)
- fixed parsing hosnames with dashes (issue #271)
- fixed localization (issue #288)
- fixed bugs

v2.3.12 (25 December 2018)
- added (partialy) win10rs5+ dark theme (issue #248)
- allow loopback connections by default for new users
- fixed allocated strings dereferencing (issue #283)
- cosmetic fixes
- fixed bugs

v2.3.11 (14 December 2018)
- added "/install" argument for install filtering
- added cache auto clean up (to prevent overflow)
- changed minimum size of main window (issue #269)
- changed installation message
- increased rule parsing speed (issue #276)
- memory optimization
- fixed notification window appears on taskbar (regression)
- fixed exclude user rules option was not working
- cosmetic fixes
- fixed bugs

v2.3.10 (28 November 2018)
- fixed old bug where incorrect rules are may accepted as filters
- fixed bugs

v2.3.9 (20 November 2018)
- fixed resolving ip addresses may hang out net events thread (issue #256)
- fixed net events subscription when option is not set
- fixed protocol names
- fixed bugs

v2.3.8 (7 November 2018)
- fixed #251
- fixed #253

v2.3.7 (5 November 2018)
- fixed dropped events callback subscription on latest win10
- fixed notifications sound cannot be played in some cases
- fixed fastlock race condition (critical)
- cosmetic fixes
- fixed bugs

v2.3.6 (16 October 2018)
- added purgen submenu into tray menu
- added more statusbar information
- set extra large icons view by default
- tray menu services counting bug
- fixed app with overdue timer still enabled on profile load
- fixed resetting some data on profile load
- fixed timer resetting on profie load
- fixed listview checkboxes
- cosmetic fixes
- fixed bugs

v2.3.5 (14 October 2018)
- added extra large icons view
- use correct function for netevents subscription (win10rs4+)
- fixed forced cleartype font style (issue #233)
- fixed possible buffer overflow
- rerwritten timer engine
- cosmetic fixes

v2.3.4 (21 September 2018)
- fixed dns system rules when dns service is stopped
- fixed listen filter conditions (issue #213, #222)
- fixed memory referencing bug (issue #221)
- fixed massive handles leak (issue #230)
- fixed thread termination
- various ui fixes

v2.3.3 (8 July 2018)
- added system rules update feature
- fixed inaccurate timeout between notifications  (issue #194)
- fixed fullscreen apps showstopper (issue #209)
- fixed possible crash for device path resolution
- fixed skipuac warnings for some machines
- fixed some services path resolution
- fixed saving empty rules config
- fixed update engine (issue #182)
- updated system rules

v2.3.2 (27 Juny 2018)
- added sorting by state for user rules in app context menu
- increased priority for blocking user rules
- fixed loading on startup (issue #75)
- fixed editor apps list sorting
- fixed service names displaying

v2.3.1 (25 Juny 2018)
- fixed loopback rules (added more reserved ip addresses)
- fixed sometimes system cannot be going to sleep
- fixed applying rules for services (appcrash)
- fixed update sometimes cannot be installed
- fixed services enumeration
- fixed system rules

v2.3 (19 Juny 2018)
- added allowed connections monitoring in dropped packets log (win8+)
- added inbound multicast and broadcast connections logging (win8+)
- added outbound redirection filter layer (win7+)
- added separation for remote/local address/port in rules editor
- added hotkeys for import/export profile
- added win10 rs5 support
- prevent memory overflow for singly linked lists (win7+) (issue #193)
- do not load icons for processes if icons displaying are disabled
- improved multiple rules applying speed in settings window
- increased time limit for displaying same notification (win7+)
- search loading dlls in system directories only (safety)
- check for correct xml data type before loading
- store last notification timestamp for apps
- removed proxy support (win8+)
- fixed dropped events callback crash (win7+)
- fixed applying services filters
- fixed alphanumeric sorting
- improved port scanning defense
- improved loopback connections
- improved boot-time filters
- stability improvements
- cleanup xml atributes
- updated system rules
- cosmetics fixes
- fixed ui bugs
- fixed bugs

v2.2.12 (6 Juny 2018)
- added win10 rs4 support

v2.2.11 (6 Juny 2018)
- fixed double race condition lock (critical)

v2.2.10 (6 Juny 2018)
- added feature to disable special rules group (issue #181)
- revert special rules highlighting
- fixed listview focusing (issue #164)
- fixed switching modes
- fixed reported bugs
- code cleanup
- fixed bugs

v2.2.9 (5 Juny 2018)
- added exclude custom rules from notifications feature (issue #177)
- fixed app does not change group when special rule was removed
- fixed sometimes netevents cannot be unsubcribed
- fixed ipv6 addresses loopbacks
- fixed thread event synchronization
- fixed special rules group sorting
- cosmetics fixes
- fixed bugs

v2.2.8 RC (21 May 2018)
- fixed device changes notifications (issue #128)
- fixed fullscreen apps loses focus (issue #178)
- fixed saving new rules (issue #179)
- fixed loopback condition flag
- code cleanup

v2.2.7 RC (13 May 2018)
- removed search feature (do not used by anyone)
- stability improvements
- fixed loopback blocking (adobe software now working well when you enable loopback connections)
- fixed singly linked list structure alignment for 32-bit
- fixed timers does not applied from notification window (issue #172)
- fixed apps does not change sorting sometimes
- fixed apps does not change group sometimes
- fixed bugs

v2.2.6 RC (11 May 2018)
- fixed special rules does not change apps group
- fixed notifications indexing
- fixed notifications icon redraw
- fixed another dns caching
- fixed ui bugs
- fixed bugs

v2.2.5 Beta (4 May 2018)
- fixed saving profile on manual apps state changing
- fixed some untranslated strings
- fixed installer/uninstaller
- fixed rules checkboxes
- fixed ui bugs
- fixed bugs

v2.2.4 Beta (3 May 2018)
- now simplewall install filters fastest than Manco pulls out his revolver
- reworked update engine, now it check all components updates automatically
- sort rules alphabeticaly
- fixed threads priority race condition
- fixed applying filters without pause
- fixed dns caching (issue #153)
- fixed ui bugs
- fixed bugs

v2.2.3 Beta (16 April 2018)
- added drop settings to default feature
- changed log format to csv (comma-separated values) table
- changed install/uninstall filters button icon
- notifications: instant timer applying in notification window
- notifications: cosmetics ui (issue #150)
- notifications: restored "disable notifications for this app" button
- notifications: fixed notification buttons behavior
- notifications: removed timeout threshold
- changed current locale version calculation method (more precision)
- removed special rules highlighting (they have own group for it)
- updated to the latest pugixml 1.9
- cosmetics update engine
- fixed ui bugs
- fixed bugs

v2.2.2 Beta (26 March 2018)
- new update engine
- show full app paths in notifications when "show filenames only" is unchecked
- added grouping for apps with user rules
- added opening file properties feature
- cosmetics for the notification ui (issue #146)
- cosmetics for the apps menu
- fixed installer who does not removing profile backups
- fixed signature of apps cannot be checked at startup
- fixed dns resolution in some cases (issue #127)
- fixed various memory leaks because of icons resources
- fixed ui bugs
- fixed bugs

v2.2.1 Beta (14 March 2018)
- instant apps list sorting
- notifications: added information about blocked protocol
- notifications: replaced "disable notifications for this app" icon
- notifications: changed default timeout between same notifications
- notifications: tray popup sometimes won't shown on some systems
- notifications: ignore button combined with block button
- notifications: changed texts for remote/local addresses
- timer does not removed when user manually uncheck apps
- removed font boldening for itself (issue #135)
- changed minimal width of main window
- fixed timers formatting
- fixed ui bugs
- fixed bugs

v2.2 Beta (4 March 2018)
- new notification ui
- now simplewall added to the apps list automatically (issue #106)
- added windows services support [beta] (issue #88)
- added profile timestamping
- new localization engine (single .lng file)
- more sensitive notifications (issue #107)
- lock-free dropped events callback (win7+)
- added group total items count indication
- added block action for notifications (issue #123)
- automatic profile backup (issue #110)
- added network address resolution
- make internal apps undeletable
- menu bitmap transparent icons
- app paths case correction
- added timers (issue #96)
- set process high priority
- ipsec dropped packets logging (win8+)
- removed wow64 redirection (use simplewall 64-bit binaries for win64)
- revert "purge unused apps" feature
- optimized apps types recognition
- improved tray context menu (issue #103)
- improved memory allocation
- changed verify signatures algorithm (issue #94)
- changed "purge invalid apps" hotkey
- changed default font
- cosmetics for filter names
- cosmetic fixes (issue #108)
- stability improvements
- updated default colors
- updated localization
- fixed dropped events callback failure (win10 rs3 and above)
- fixed steal focus at startup and when notification displaying
- fixed working under blacklist mode
- fixed multi-monitor support
- fixed ui bugs
- fixed bugs

v2.1.4 (27 November 2017)
- do not verify signatures for store apps (win8+)
- optimized digital signatures verification (issue #94)
- fixed appcontainers listing (removed firewallapi.dll dependence) (win8+) (issue #104)
- fixed notifications race conditions (it may fix issue #73)
- fixed status does not changed when app deleted
- fixed "system" process marked as pico
- updated blocklist
- code cleanup
- fixed bugs

v2.1.3 (22 November 2017)
- disabled loopback and digital signatures config by default
- fixed displaying name of store apps (win8+) (issue #98)
- fixed network paths rules (issue #102)

v2.1.2 RC (21 November 2017)
- added option to disable apps signature checking
- set selected apps when you are open rules editor from main window
- reworked special rules (minimized memory usage and speed improvements, also removed limit in apps selection for special rules)
- removed ocsp signature verification (issue #94)
- improved apps version receiving
- renamed "filters" into "rules"
- fixed various rules editor crashes (issue #89)
- fixed notifications race conditions (it may fix issue #73)
- fixed blocklist incorrect check state
- fixed restoring after hibernation
- updated localization
- fixed ui bugs
- fixed bugs

v2.1.1 Beta (17 November 2017)
- reworked filter settings page
- added option to disable hosts support for rules
- added option to load blocklist extra rules
- cosmetic fixes for ipv6 address format
- fixed dns resolutions where it does not required (issue #94)
- fixed various rules editor crashes (issue #89)
- fixed windows store icon destroying
- removed filters configuration from menu (use settings dialog instead)
- removed internal rules files from distro
- updated internal rules
- updated localization
- fixed ui bugs
- fixed bugs

v2.1 Beta (12 November 2017)
- added windows store apps support (win8+)
- revert allowing loopback connection feature
- converted log limit unit to kilobytes
- dropped packets log cosmetic fixes
- improved confirmation dialogs
- updated localization
- fixed settings will not be applied for main menu
- fixed displaying icons for some processes
- fixed rules editor crash (issue #89)
- fixed color items reorganization
- fixed ui bugs
- fixed bugs

v2.0.20 (6 November 2017)
- now custom rules will overwrite system rules
- added warning message for listen connections option
- apply filters on demand in settings dialog
- added port support for ip ranges
- removed rules configuration from menu (use settings dialog instead)
- fixed rule apps does not saved when checkbox are checked
- fixed rule generation from notification window
- fixed listen connections does not blocked
- fixed highlighting special rules for apps
- fixed running under non-admin account
- fixed skip-uac working directory
- fixed listview sorting
- fixed ui bugs
- fixed bugs

v2.0.19 (1 November 2017)
- new rules editor ui
- added highlighting rules with errors
- automatically sorting rules after changing
- added feature to set custom dns ipv4 server ("DnsServerV4" in .ini)
- added option to exclude blocklist rules from notifications
- show process information in statusbar on menu item hover
- optimized signature information retrieving from binaries
- updated localization
- fixed saving profile in some cases
- fixed parsing rules types (issue #70)
- fixed dns queries
- fixed ui bugs
- fixed bugs

v2.0.18 (20 October 2017)
- added setting to disable proxy support (win8+)
- prevent notifications duplicate
- fixed windows firewall disabling on win10
- fixed notifications sound configuration does not saved
- fixed notifications sound does not played on some systems
- cosmetic fixes about notifications cross button
- updated localization
- updated blocklist
- fixed dpi support
- fixed ui bugs

v2.0.17 (12 October 2017)
- clear notifications cache on apply filters and configuration
- show more address information on notification window tooltip
- fixed redraw listview after notification actions
- fixed ui hangouts for a long time sometimes
- fixed race conditions
- fixed ui bugs
- fixed bugs

v2.0.16 (6 October 2017)
- fixed internal rules configuration saving

v2.0.15 (6 October 2017)
- make current settings backup before import
- changed default listview font
- fixed settings listview groups does not changed immediately
- fixed notification window display at startup
- fixed uninstaller do not removed some files

v2.0.14 (5 October 2017)
- apply settings on demand (too much faster)
- revert listen connections blocking feature (request)
- set font also for settings lists
- revert forgotten rules editor button
- updated localization
- fixed ui bugs

v2.0.13 (4 October 2017)
- new settings ui
- fixed settings reset on device arrival
- fixed colors configuration checkboxes

v2.0.12 RC (3 October 2017)
- use colors and tooltip for notification icon same as in main window
- do not show notifications on tray hover when it is disabled
- do not bring notifications window into the foreground when it shows
- revert error log tray menu
- fixed network paths detection
- fixed displaying non interesting errors
- fixed some device path conversions
- fixed notifications cleanup
- updated localization
- fixed ui bugs

v2.0.11 Beta (30 September 2017)
- subscribe for net events only when filters are installed (win7+)
- fixed incorrect filters applied for special rules
- fixed all apps are in lowercase

v2.0.10 Beta (29 September 2017)
- added selection counting for remove items dialog
- show signature information in notification app icon tooltip
- show exit confirmation dialog when filters are installing
- set low-limit for notification timeout
- revert forgotten privelege (regression)
- fixed filters for non existing paths (regression)
- fixed string case for cyrillic symbols
- fixed filters thread
- fixed minimize button
- fixed ui bugs
- fixed bugs

v2.0.9 Beta (25 September 2017)
- improved notifications cleanup
- revert processes icons
- fixed nt path conversions (regression)
- fixed notification ui display timeout
- fixed ui bugs
- fixed bugs

v2.0.8 Beta (21 September 2017)
- new logo
- changed minimal size of main window
- updated notification ui
- updated icons pack
- updated blocklist
- fixed font quality (use cleartype ever)
- fixed notifications sound
- fixed bugs

v2.0.7 Beta (14 September 2017)
- added count marks for all groups
- added font selection for listview
- prefer "blocklist_full.xml" parsing if it's presented
- improved signatures checking
- optimized listview redraw items
- optimized listview autosizing columns
- disable retrieving icon handle for network paths for notification dialog
- changed default listview colors
- optimized loading speed
- code cleanup
- fixed ui hanging in some cases
- fixed bugs

v2.0.6 Beta (11 September 2017)
- added signature checking for apps
- added set default language as in system
- changed default listview colors
- updated project sdk
- fixed allowed apps cannot recieve any data from network (when stealth-mode enabled)
- fixed retrieving nt path for reparse point files (issue #59)
- fixed update checking not working on some systems
- fixed bugs

v2.0.5 Beta (30 August 2017)
- added proxy support (win8+)
- added indication for inbound connections for all (when stealth-mode enabled)
- added group for special rules (rules applied for apps)
- added apps list selection indication
- changed experimental settings mark into "for experts only"
- removed process list menu icons
- improved retrieving file path by handle
- improved notifications ui
- updated project sdk
- fixed ui bugs
- fixed bugs

v2.0.4 Beta (23 August 2017)
- added grouping for rules
- removed listen connections blocking feature
- improved import/export xml database
- fixed open rules editor action in main window
- fixed crash on delete rules
- fixed ui bugs
- fixed bugs

v2.0.3 Beta (17 August 2017)
- added import/export applications list feature
- added mode selection into installation dialog
- added tooltips into the notifications ui
- added remembering collapsed state for the listview groups
- increased internal rules loading speed (please update blocklist.xml and rules_system.xml to latest versions)
- increased rules list icons size
- changed default sorting configuration
- fixed notifications ui logic
- fixed filters installation state flag
- fixed support some domains
- fixed carriage return type for rules_system.xml
- fixed thread spinlock
- updated localization
- updated project sdk
- updated blocklist
- fixed bugs

v2.0.2 Beta (7 August 2017)
- fixed incorrect vector index

v2.0.1 Beta (7 August 2017)
- added update checking for new beta version
- added flush dns cache after filters applied
- set max prefix length for ipv6 addresses to 64
- new rules editor interface
- changed minimum width for a main window
- fixed running with "/minimized" argument under uac
- updated localization
- fixed bugs

v2.0 Beta (1 August 2017)
- new notification ui
- show notifications only for whitelist mode
- allow listen connections for all is enabled by default
- added import custom rules from file feature
- added support to load large xml files
- added more information into the main window
- added apps grouping (allowed/blocked)
- added custom rules syntax checking
- added support dns resolution for custom rules
- added resolving shortcut path
- added notification display timeout config
- save internal rules configuration into xml
- purgen remove only apps with errors
- minimized dropped packets log size (union remote and local address information)
- minimized memory usage
- removed "trust no one" mode
- updated system rules
- updated blocklist
- fixed dropped packets logging hibernation (win7+)
- fixed remember windows size and position sometimes
- fixed version string trimming
- fixed ui bugs
- fixed memory leaks
- fixed bugs

v1.6.5 (1 June 2017)
- do not block listen connections on stealth-mode
- do not block listen connections on boot-time
- fixed dropped events does not shutdown on exit (win7+)
- fixed memory leak

v1.6.4 (31 May 2017)
- added fallback if blocklist and/or system rules not found
- added more dropped events logging (win7+)
- fixed dropped events subscription duplicate (win7+)
- fixed run as admin does not work sometimes
- updated blocklist
- fixed bugs

v1.6.3 (27 May 2017)
- generate unique session key at startup
- fixed custom app rules crash on delete
- fixed lookup account sid length mismatch
- fixed dropped packets logging crash (win7+)
- stability improvements
- updated system rules
- fixed bugs

v1.6.2 (24 May 2017)
- create filter even if file doesn't exists (drive must be mounted)
- allow inbound & listen traffic only if stealth-mode does not enabled
- added required rules for the ipv6 stack to work properly
- stealth-mode marked as experimental
- fixed com library initialization (again!)
- fixed stealth-mode
- fixed bugs

v1.6.1 (23 May 2017)
- added username and domain information to the window title
- added configuration refresh on user logon
- removed static wfp session key (request)
- fixed com library initialization
- fixed incorrect return value on file not found error

v1.6 (19 May 2017)
- added stealth-mode (to prevent udp/tcp port scanning)
- added acl (access control list) to the engine
- added gridline for the listview config
- added item into the custom rules menu for open rules editor
- added version-independent network events api call (win7+)
- added dropped packets log file size limit to 1mb (win7+)
- reset windows firewall to its initial state when restore it back
- blocklist marked as experimental
- removed custom rules from package
- fixed dropped packets logging stop sometimes (win7+)
- fixed removing custom rules
- fixed classic ui
- fixed bugs
- ui fixes

v1.5.5 (6 May 2017)
- added installer
- added static wfp session key
- copy filter name if description is not available for dropped packets log
- removed "file not found" xml parsing errors
- revert trim rules back (request)
- fixed index flag cannot be set (win8+)
- fixed ui bugs

v1.5.4 (30 April 2017)
- trim executable version string
- fixed filters uninstallation
- fixed duplicate update checking
- fixed bugs

v1.5.3 (27 April 2017)
- fixed restoring windows firewall state
- fixed incorrect window size at startup sometimes

v1.5.2 (27 April 2017)
- fixed dropped packets log spinlock cannot be unlocked (critical)
- fixed displaying "file not found" errors
- restore listview selection after application delete
- disable main button on filters installation
- improved shutting down windows firewall feature
- removed unnecessary whitespace trims
- optimized window resizing
- updated to the latest sdk
- fixed bugs

v1.5.1 (17 April 2017)
- added remember window position and size feature
- added "enable errors notifications" config
- added f11 hotkey for maximize window
- disable wow64 filesystem redirection
- changed error log notification text
- fixed possible memory leak

v1.5 (15 April 2017)
- added index flag to the filters, to help enable faster lookup during classification (win8+)
- added app container loopback traffic permission (win8+)
- added "allow listen connections for all" config
- added loopback indication for dropped packets log
- copy real path instead display path on copy command in main window listview
- do not show dropped packets notifications when filters are not installed
- if boot-time filters enabled then apply system rules for boot-time too
- custom rules for apps does not saved sometimes
- removed running without admin rights feature
- changed notification about errors logic
- changed alt+f4 behaviour (request)
- cosmetic fixes for tooltips
- fixed disabling windows firewall on some systems
- fixed settings tabstop doesn't work
- fixed incorrect listview icons for some apps
- fixed process list some apps have no icons
- fixed possible duplicate filters
- fixed purge unused apps
- stability improvements
- updated translations
- updated system rules
- updated pugixml
- fixed bugs

v1.4.6 (5 April 2017)
- added write error logs into a file feature
- fixed process list does not recognize pico applications on win10
- updated translations
- fixed bugs

v1.4.5 (4 April 2017)
- added pico support (subsystem for unix-based applications) for win10
- added l2tp/ipsec for system rules
- added localhost for custom rules
- fixed access denied for some self protected applications (like "ekrn.exe" for nod32)

v1.4.4 (28 March 2017)
- added ipsec connections monitoring into the log (win8+)
- cosmetic fixes about tray notifications
- fixed dropped packets callback crash (critical)
- fixed displaying tray notifications on win10
- fixed possible duplicate filters

v1.4.3 (27 March 2017)
- added provider information into the log/notifications
- added displaying error messages on filters configuration via tray popup
- fixed link processing in settings window
- cosmetic changes about debug error messages
- removed "nlatunicast" flag from loopback permissions
- updated blocklist
- code cleanup

v1.4.2 (19 February 2017)
- added hints to rules pages
- fixed filter creation for nonexistent apps (critical)
- fixed resource definition
- fixed purge unused apps
- cosmetic changes about rules tooltip

v1.4.1 (4 February 2017)
- fixed suspended drop event callback (critical)
- fixed suspended apply filters thread (critical)
- fixed purge unused apps

v1.4.0 (31 January 2017)
* revert original project name
- added mode changing confirmation
- added reading information about "System" process
- added protocol and version (ports only) option into the rules editor
- added blocklist editor (set it "on" or "off" only)
- added custom rules applying to the apps feature
- added "show filenames only" option
- added icon indication for rules
- added loopback permission for "trust no one" mode
- moved system rules into the "rules_system.xml" file
- clear log even if logging to a file is not enabled
- do not load information about apps from shared resources
- fixed profile not saved if filters is not installed
- removed tray balloon tips on filters changing
- boot-time filters marked as experimental
- improved working under uac (no rights)
- improved system apps detection
- cosmetic fixes in process list
- cosmetic fixes in apps tooltip
- fixed race conditions
- updated translation
- updated blocklist
- updated ui
- fixed bugs

v1.3.7 (21 November 2016)
- fixed special rules crash on apply settings
- fixed special rules reinitialization in main menu/tray menu
- updated translation

v1.3.6 (20 November 2016)
- added loopback permission for boot-time filters
- added ip:port syntax for special rules
- added default values for new special rules
- fixed restore listview selection
- fixed special rules crash on delete item
- fixed log path unexpand environment strings

v1.3.5 (17 November 2016)
- fixed configuration saving (critical)
- fixed xml saving (critical)

v1.3.3 (14 November 2016)
- added boot-time filters for prevent data leak during system startup, even before "Base Filtering Engine" (BFE) service starts
- added "purge unused applications" feature
- added "hide icons" feature
- added documentation for rules editor and filter page
- added special rules to main menu/tray menu
- fixed multi-select configuration in listview
- fixed system imagelist destroying
- fixed dropped packets filters decription empty sometimes
- fixed find dialog crash
- removed inbound events logging for some reason
- updated translation
- updated pugixml

v1.3.2 (29 October 2016)
- added domain\username indication to log events
- added filter name to log events
- added ip/port range support for rules
- combined ip and port rules settings page
- added save checkbox state on install/delete message
- added listen loopback permission
- added inbound events logging
- set xml load encoding to auto
- improved logic for detect incorrect applications
- listview empty text indication doesn't changed at locale change
- changed default log parameters for "system" & "svchost.exe"
- fixed inbound ip doesn't affected in applied rules
- changed default color for silent applications
- removed output log into debug log feature
- improved open/save file dialog flags
- optimized log callback
- updated blocklist
- updated translation
- minor improvements

v1.3.1 (21 October 2016)
- added option to set application for open log file
- added option to exclude application from log
- added option for disable notification sound
- added middle click on tray icon now open log file
- added empty listview text indication
- added rules highlighting
- added usage examples to rules.xml 
- reorganized log settings
- fixed unit of time for notification timeout had in minutes (instead seconds)
- fixed special rules saved twice
- fixed skip user account control not worked
- fixed special rules saved empty when filters not installed
- fixed system rules cannot be unchecked automatically
- changed auto byte order mask for xml load/save
- replaced QueryFullProcessImageName to NtQueryInformationProcess
- stability improvements
- updated translation
- ui improvements

v1.3 (15 October 2016)
- disable/enable windows firewall on filters installation/deletion
- normalize nt paths for dropped packets callback
- exclude "svchost.exe" & "system" from log configuration
- abbility to show/clear log
- resize support as in alpha builds
- hotkeys for menu items
- PathUnExpandEnvStrings for log path
- confirmation settings for exit/deleting application/log clear
- changed message boxes style
- changed default color for invalid applications
- fixed access denied for some processes
- config doesn't saved if user don't trigger apply filters
- improved windows firewall control
- stability improvements
- updated translation

v1.2.118 (5 October 2016)
- fixed crash on filters installation
- save sort order into profile (regression)
- unable to clear log path config
- stability improvements
- updated translation

v1.2.117 (4 October 2016)
* changed ui by IAEA safety standards (issue #2)
- added logging configuration
- now filters disabled by default
- inbound ports doesn't blocked for special rules
- updated translation
- minor improvements

v1.1.116 (30 September 2016)
- added "listen" layer blocking
- added forgotten rules into settings menu
- added open folder by double click for listview
- added shared resources highlighting
- dropped packets logging optimizations
- fixed process list menu icons with classic ui
- updated translation
- minor improvements

v1.1.115 (22 September 2016)
- added more information to dropped packets logging (win7+)
- fixed inbound dont't blocking
- cannot add port in rules editor
- updated translation

v1.1.114 (21 September 2016)
- rules in settings dialog cannot be saved

v1.1.113 (20 September 2016)
- fixed cannot delete application from list bug
- fixed default values for settings
- filters for services do not set
- fixed dhcpv6 ports configuration
- fixed windows firewall configuration
- updated translation
- fixed bugs

v1.1.112 (19 September 2016)
* project renamed
- added "trust no one" mode
- added dropped packets logging to debugview (win7+)
- added automatic rules applying on insert device
- added name for filters
- moved telemetry rules to the resources
- rewritten rules editor
- improved classic ui config
- fixed tray tooltip visibility
- decreased ballon tips

v1.0.101 (7 September 2016)
- added outbound connections configuration for rules
- added color configuration
- changed weight for sublayer
- removed startup popup notification
- updated translation

v1.0.100 (30 August 2016)
- added individual applicaiton rules
- added highlight for invalid items
- added icons for process popup menu
- rewritten process retrieving code (fixed many bugs)
- restored "Refresh" listview feature
- prevent for duplicate filters on some configurations
- unlocked application layer configuration in "for all (global)" rules
- loaded default rules on initilize settings
- updated translation
- fixed bugs

v1.0.99 (25 August 2016)
- added windows update and http protocol allow rule
- blocking list editor context menu does not showed
- blocking list editor first item cannot be edited
- fix rules checkbox displaying in settings window
- rules re-grouped by OSI model
- changed listview custom draw
- updated translation
- updated ui

v1.0.98b (22 August 2016)
- added ballon tip on remove filters
- changed default rules for all
- changed default rules for allowed

v1.0.96b (21 August 2016)
- settings improvements
- fixed duplicate popup on startup
- cleanup code/resources
- updated translation

v1.0.94b (20 August 2016)
- updated translation
- removed excess tray popups
- filters not applied when firewall started manually
- tray icon does not change on firewall enable
- improved block list editor

v1.0.90b (19 August 2016)
- now compiled with "treat warnings as error" parameter
- added global rules configuration
- added "disable windows firewall" param
- added balloon tips param
- started localization
- fixed buffer overflow on remove filters
- finished blocking list editor
- removed duplicate filters
- fixed memory leaks on change window icon
- ui improvements
- now checking updates worked
- fixed statusbar redraw forgotten
- updated translation
- ui fixes

v1.0.81a (18 August 2016)
- added indication allowed/blocked item count
- added edit blocking list support
- added loopback configuration into profile
- fixed profile mask set to default at startup
- improved profile configuration dialog

v1.0.79a (17 August 2016)
- added tooltips
- inbound traffic not blocked sometimes

v1.0.77a (16 August 2016)
- added profiles for applications
- added more hotkeys
- find now worked
- increased startup speed (moved filters applying function into another thread)
- fixed ntp setting
- fixed memory leak
- ui improvements

v1.0.52a (13 August 2016)
- fixed main window dpi
- fixed scroll height on change icon size
- removed comments/debug strings
- fixed application state does not saved on check/uncheck
- added "select all" (ctrl+a) hotkey
- added "telemetry.xml"
- ip parsing optimization (due ParseNetworkString)
- ui improvements

v1.0.42a (12 August 2016)
- added outbound/inbound ICMP permission
- auto apply filters on settings change
- removed "Apply rules" button (do not need it anymore)
- increased startup speed
- removed process monitor
- changed config defaults
- ui improvements
- small bug fixes

v1.0.30a (11 August 2016)
- added outbound loopback permission
- fixed DHCP/DNS/NTP allowed for all
- fixed memory leak

v1.0.23a (6 August 2016)
- added support to allow DHCP/DNS/NTP through svchost.exe
- fixed NtOpenProcess access rights

v1.0.21a (4 August 2016)
- fixed uncheck item doesn't saved
- previous build changes extended
- removed duplicate function calling
- menu fixes

v1.0.18a (4 August 2016)
- added internal telemetry blocking
- added menu accelerators
- moved process monitor to low-level
- fixed provider persistency
- re-fuck-to-ring

v1.0.13a (2 August 2016)
- added search abbility for existing application filters and show them
- added tray icon indication
- added find in application list feature
- increased speed (due transactions)
- fixed 32-bit working under 64-bit system
- ui improvements

v1.0.10a (30 July 2016)
- fixed xml saving/parsing bug
- fixed read memory access on filter enumeration

v1.0.7a (29 July 2016)
- added inbound loopback permission
- added balloon tips on events
- fixed inbound permission for allowed applications
- fixed critical bug (incorrect memory address access)
- common optimizations
- ui improvements

v1.0.4a (27 July 2016)
- added icons size configuration
- fixed background thread to catch applications doesn't worked
- fixed v6 callout misstake
- ui improvements

v1.0.3a (26 July 2016)
- added more settings
- improved ui
- removed service (do not need it anymore)

v1.0.2a (26 July 2016)
- first public version


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  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
them 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 prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  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.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

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

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey 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;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If 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 convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU 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 that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  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.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
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.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     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
state 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 3 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, see <http://www.gnu.org/licenses/>.

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

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

    <program>  Copyright (C) <year>  <name of author>
    This program 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, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

  The GNU 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.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.


================================================
FILE: README.md
================================================
<h1 align="center">simplewall</h1>

<p align="center">
	<a href="https://github.com/henrypp/simplewall/releases"><img src="https://img.shields.io/github/v/release/henrypp/simplewall?style=flat-square&include_prereleases&label=version" /></a>
	<a href="https://github.com/henrypp/simplewall/releases"><img src="https://img.shields.io/github/downloads/henrypp/simplewall/total.svg?style=flat-square" /></a>
	<a href="https://github.com/henrypp/simplewall/issues"><img src="https://img.shields.io/github/issues-raw/henrypp/simplewall.svg?style=flat-square&label=issues" /></a>
	<a href="https://github.com/henrypp/simplewall/graphs/contributors"><img src="https://img.shields.io/github/contributors/henrypp/simplewall?style=flat-square" /></a>
	<a href="https://github.com/henrypp/simplewall/blob/master/LICENSE"><img src="https://img.shields.io/github/license/henrypp/simplewall?style=flat-square" /></a>
</p>

<p align="center">
	<i>Definitely for advanced users.</i>
</p>

-------

<p align="center">
	<img src="/images/simplewall.png?cache" />
</p>

### Description:
Simple tool to configure [Windows Filtering Platform (WFP)](https://docs.microsoft.com/en-us/windows/win32/fwp/windows-filtering-platform-start-page) which can configure network activity on your computer.

The lightweight application is less than a megabyte, and it is compatible with Windows 7 SP1 and higher operating systems.
You can download either the installer or portable version. For correct working you are require administrator rights.

### Nota bene:
Keep in mind, simplewall is not a control UI over Windows Firewall, and does not interact in any level with Windows Firewall. It works
over Windows Filtering Platform (WFP) which is a set of internal API and system services that provide a platform for creating network filtering
applications. Windows Filtering Platform is a development technology and not a firewall itself, but simplewall is the tool that uses this technology.

### Features:
- Simple interface without annoying pop ups
- [Rules editor](https://github.com/henrypp/simplewall#rules-editor) (create your own rules)
- [Internal blocklist](https://crazymax.dev/WindowsSpyBlocker/blocking-rules/simplewall/) (block Windows spy / telemetry)
- Dropped packets information with notification and logging to a file feature (win7+)
- Allowed packets information with logging to a file feature (win8+)
- Windows Subsystem for Linux (WSL) support
- Windows Store support (win8+)
- Windows services support
- Free and open source
- Localization support
- IPv6 support

```
To activate portable mode, create "simplewall.ini" in application folder, or move it from "%APPDATA%\Henry++\simplewall".
```

### System requirements:
- Windows 7, 8, 8.1, 10, 11 64-bit/ARM64
- An SSE2-capable CPU
- <s>KB2533623</s> [KB3063858](https://www.microsoft.com/en-us/download/details.aspx?id=47442) update for Windows 7 was required

### Donate:
- [Bitcoin](https://www.blockchain.com/btc/address/1LrRTXPsvHcQWCNZotA9RcwjsGcRghG96c) (BTC)
- [Ethereum](https://www.blockchain.com/explorer/addresses/eth/0xe2C84A62eb2a4EF154b19bec0c1c106734B95960) (ETH)
- [Yandex Money](https://yoomoney.ru/to/4100115776040583) (RUB)
- [Paypal](https://paypal.me/henrypp) (USD)

### GPG Signature:
Binaries have GPG signature `simplewall.exe.sig` in application folder.

- Public key: [pubkey.asc](https://raw.githubusercontent.com/henrypp/builder/master/pubkey.asc) ([pgpkeys.eu](https://pgpkeys.eu/pks/lookup?op=index&fingerprint=on&search=0x5635B5FD))
- Key ID: 0x5635B5FD
- Fingerprint: D985 2361 1524 AB29 BE73 30AC 2881 20A7 5635 B5FD

### Reviews of idiots:
[<img src="/images/idiot_n1.png" />](https://alternativeto.net/software/simplewall-firewall/about/)

Look at them, he does not know about [.gitmodules](https://github.com/henrypp/simplewall/blob/master/.gitmodules) and how to use, lol.

PS: Without idiots we are not to be fun, yeah!

### Installation:
When install rules, you can choose two modes:
- Permanent rules - rules are working until you <a href="#uninstall">disable it manually</a>.
- Temporary rules - rules are reset after the next reboot.

### Uninstall:
When you uninstall simplewall, all previously configured filters stay alive in system.
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.

### Command line:

~~~
-install - enable filtering.
-install -temp - enable filtering until next reboot.
-install -silent - enable filtering without prompt.
-uninstall - remove all installed filters.
~~~

### Rules editor:
simplewall have two types of custom user rules rules:
- **Global rules:** rule applied for all applications.
- **Special rules:** rule applied only for specified applications.

<img src="/images/simplewall_rules.png?cache2" />

### Rule syntax format:

To set rule applications, open rule and then navigate to "Apps" tab.

<details>
<summary>Rule syntax format:</summary>

---
- IP addresses `192.168.0.1; 192.168.0.1; [fc00::]`
- IP addresses with port `192.168.0.1:80; 192.168.0.1:443; [fc00::]:443;`
- IP ranges `192.168.0.1-192.168.0.255; 192.168.0.1-192.168.0.255;`
- IP ranges (with port) `192.168.0.1-192.168.0.255:80; 192.168.0.1-192.168.0.255:443;` (v2.0.20+)
- IP with prefix lengths (CIDR) `192.168.0.0/16; 192.168.0.0/24; fe80::/10`
- Ports `21; 80; 443;`
- Ports ranges `20-21; 49152-65534;`

_To specify more than one ip, port and/or host, use semicolon._
---
</details>

<details>
<summary>IPv4 CIDR blocks:</summary>

---
| Address format | Mask |
| -------- | ------- |
| a.b.c.d/32 | 255.255.255.255 |
| a.b.c.d/31 | 255.255.255.254 |
| a.b.c.d/30 | 255.255.255.252 |
| a.b.c.d/29 | 255.255.255.248 |
| a.b.c.d/28 | 255.255.255.240 |
| a.b.c.d/27 | 255.255.255.224 |
| a.b.c.d/26 | 255.255.255.192 |
| a.b.c.d/25 | 255.255.255.128 |
| a.b.c.0/24 | 255.255.255.0|
| a.b.c.0/23 | 255.255.254.0|
| a.b.c.0/22 | 255.255.252.0|
| a.b.c.0/21 | 255.255.248.0|
| a.b.c.0/20 | 255.255.240.0|
| a.b.c.0/19 | 255.255.224.0|
| a.b.c.0/18 | 255.255.192.0|
| a.b.c.0/17 | 255.255.128.0|
| a.b.0.0/16 | 255.255.0.0|
| a.b.0.0/15 | 255.254.0.0|
| a.b.0.0/14 | 255.252.0.0|
| a.b.0.0/13 | 255.248.0.0|
| a.b.0.0/12 | 255.240.0.0|
| a.b.0.0/11 | 255.224.0.0|
| a.b.0.0/10 | 255.192.0.0|
| a.b.0.0/9 | 255.128.0.0|
| a.0.0.0/8 | 255.0.0.0|
| a.0.0.0/7 | 254.0.0.0|
| a.0.0.0/6 | 252.0.0.0|
| a.0.0.0/5 | 248.0.0.0|
| a.0.0.0/4 | 240.0.0.0|
| a.0.0.0/3 | 224.0.0.0|
| a.0.0.0/2 | 192.0.0.0|
| a.0.0.0/1 | 128.0.0.0|
| 0.0.0.0/0 | 0.0.0.0|
---
</details>

<details>
<summary>IPv6 CIDR blocks:</summary>

---
[IPv6 CIDR blocks](https://www.mediawiki.org/wiki/Help:Range_blocks/IPv6)
---
</details>

### FAQ:
#### Q: Are internet connections blocked when simplewall is not running?
A: Yes. Installed filters are working even if simplewall is terminated.

#### Q: What apps are blocked in default configuration?
A: By default, simplewall blocks **all** applications. You do not need to create custom rules to block specific applications.

#### Q: Is it safe to use simplewall with Windows Firewall?
A: Yes. You do not need to disable Windows Firewall. These two firewalls work independently.

#### Q: How can i disable blocklist entirely?
A: Open `Settings` -> `Blocklist` and then click the radio buttons labeled `Disable`.

#### Q: Where is blacklist mode?
A: Blacklist was removed many days ago for uselessness. But if you need it, you can still configure it.

<details>
<summary>Solution: Configure blacklist mode in simplewall:</summary>

---
1) Open `Settings` -> `Rules`
2) Uncheck `Block outbound for all` and `Block inbound for all` options.
3) Create user rule (green cross on toolbar) with block action, any direction, `Block connection` name and empty remote and local rule.
4) You can assign this rule for apps whatever you want to block network access.
---
</details>

#### Q: Why does my network icon have an exclamation mark?
A: When you are connected to a network, Windows checks for internet connectivity using Active Probing. This feature is named as NCSI (Network Connectivity Status Indicator). You can resolve this problem in one of the following ways:

<details>
<summary>Solution 1: Enable NCSI through internal system rule:</summary>

---
1) Open `System rules` tab.
2) Allow `NCSI` rule (enabled by default).
---
</details>

<details>
<summary>Solution 2: Disable NCSI through system registry:</summary>

---
Create `Disable NCSI.reg` and import it into registry.

```reg
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkConnectivityStatusIndicator]
"NoActiveProbe"=dword:00000001
"DisablePassivePolling"=dword:00000001
```
---
</details>

<details>
<summary>Solution 3: Disable NCSI through group policy:</summary>

---
1) Launch the group policy editor (`gpedit.msc` ).
2) Go to `Computer Configuration -> Administrative Templates -> System -> Internet Communication Management -> Internet Communication Settings`.
3) Double-click `Turn off Windows Network Connectivity Status Indicator active tests` and then select Enabled. Click Ok.
4) Open the Command Prompt (Admin) and enter `gpupdate /force` to enforce the changes made to the Group Policies.
---
</details>

#### Q: How can I disable Windows Firewall?
Start the command line _as an administrator_, and enter the commands below.

<details>
<summary>Disable Windows Firewall profiles:</summary>

---
~~~bat
netsh advfirewall set allprofiles state off
~~~
---
</details>

<details>
<summary>Enable Windows Firewall profiles:</summary>

---
~~~bat
netsh advfirewall set allprofiles state on
~~~
---
</details>

#### Q: How can I view all filters information?
Start the command line _as an administrator_, and enter the commands below.

<details>
<summary>Dump filters information saved into a `filters.xml` file:</summary>

---
~~~bat
cd /d %USERPROFILE%\Desktop

netsh wfp show filters
~~~
---
</details>

<details>
<summary>Dump providers, callouts and layers information into a `wfpstate.xml` file:</summary>

---
~~~bat
cd /d %USERPROFILE%\Desktop

netsh wfp show state
~~~
---
</details>

Open it in any text editor and study.

#### Q: How to fix Windows Update internet access?
<details>
<summary>Windows 10 and above:</summary>

---
Open main window menu `Settings` -> `Rules` -> `Allow Windows Update`.
<br />
This is working by method described [here](https://github.com/henrypp/simplewall/issues/677).

---
</details>

<details>
<summary>Windows 8.1:</summary>

---
Open main window, Navigate into `System rules` tab and then enable `Windows Update service` rule.

---
</details>

#### Q: Other questions:
- [Windows Security center integration (impossible)](https://stackoverflow.com/questions/3698285/how-can-i-tell-the-windows-security-center-that-im-an-antivirus/3698375#3698375)
---
- Website: [github.com/henrypp](https://github.com/henrypp)
- Support: sforce5@mail.ru
---
(c) 2016-2026 Henry++


================================================
FILE: VERSION
================================================
simplewall=3.8.7|https://github.com/henrypp/simplewall/releases/download/v.3.8.7/simplewall-3.8.7-setup.exe;
language=1770315696|https://raw.githubusercontent.com/henrypp/simplewall/master/bin/simplewall.lng;
rules_internal=1717635779|https://raw.githubusercontent.com/henrypp/simplewall/master/bin/profile_internal.sp;


================================================
FILE: bin/History.txt
================================================
v3.8.7 (8 August 2025)
- fixed not logical crash (issue #2012)
- fixed context menu performance
- updated locale (issue #1984)
- updated project sdk
- cosmetic fixes

v3.8.6.1 (21 May 2025)
- fixed "open containing folder" error (issue #1977)
- fixed crash at startup (issue #1979)
- fixed crash dump (issue #1958)

v3.8.6 (1 April 2025)
- fixed check for update, does not bring up popup (issue #1923)
- fixed memory heap error (issue #1945)
- fixed possible crash
- improved dark theme support

v3.8.5 (27 November 2024)
- fixed adding apps with drive letters instead of specific apps (issue #1887)
- fixed creating rules for inaccessible paths (issue #1891)
- fixed opening log with spaces path (issue #1912)
- fixed windows 7 loopback rules
- cosmetic fixes

v3.8.4 (11 September 2024)
- added listview empty markup
- fixed tray icon middle click not worked when log ui is disabled
- fixed notification displays invalid signature (issue #1871)
- fixed does not show up tray icon (issue #1844)
- fixed crash when cleanup timers (issue #1860)
- fixed possible memory leak
- updated project sdk
- updated rule hint
- cosmetic fixes

v3.8.3 (8 August 2024)
- added remember last position of notification window (issue #1659)
- added watch services & uwp apps for install/uninstall
- added displays long time for apps
- improved windows 7 compatibility
- improved arm64 compatibility
- improved dark theme support
- fixed show log button does not work as expected (issue #1757, again!)
- fixed apps sometimes delete themselves (issue #1794, not fixed)
- fixed duplicate process at startup (issue #1769)
- fixed do not save hash when it is not enabled
- fixed row colors for dark mode (issue #1767)
- fixed log listview sorting by date
- fixed displaying timer tooltip
- updated project sdk

v3.8.2 (9 May 2024)
- revert back windows 7 & windows 8 support
- improved dark theme support
- improved log subscription
- fixed show log button does not work as expected (issue #1757)
- fixed search visibility

v3.8.1 (27 April 2024)
- fixed lacks search context (issue #1760)
- fixed incorrect log ui listview item counting
- updated confirm message for timers cleanup
- updated confirm message for unused cleanup
- updated cppwinrt package
- updated project sdk

v3.8 (1 April 2024)
- added mitigations (win10+) (issue #611)
- added dark theme support (issue #248)
- fixed displaying same context menu on apps and packets log
- updated search engine
- updated project sdk

v3.7.8 (28 January 2024)
- added saving flag state for install/uninstall filters
- fixed crash on tooltip (issue #1686)
- fixed apps disabled removal menu
- updated dropped packets (ui) listview context menu
- updated project sdk

v3.7.7 (3 January 2024)
- added error message when loading library on subscribe
- added comment item for apps/rules (issue #1664)
- added recheck app hash in properies dialog
- added highlighting of undelatable apps
- fixed displaying incorrect error messages
- fixed high disk usage (issue #1665)
- updated ports list

v3.7.6 (30 November 2023)
- fixed configuration of windows update (issue #1648)
- fixed auto update fails to install (issue #1565)
- updated project sdk

v3.7.5 (1 November 2023)
- fixed saving services and uwp apps (issue #1616)
- fixed file locked by simplewall (issue #1621)
- fixed removing unused apps
- fixed process creation
- updated project sdk

v3.7.4 (27 October 2023)
- added set option to disable apps removal from profile (issue #1155)
- fixed cannot save itself as unchecked (issue #1609)
- fixed could not save profile (issue #1594)
- fixed crash (issue #1582)
- updated project sdk

v3.7.3 (11 October 2023)
- added error message for saving profile
- removed redistributable package requirement (issue #1587)
- fixed profile was not found message (issue #1557)
- fixed crash on reading version information
- revert back certificates checking option
- updated project sdk

v3.7.2 (21 September 2023)
- dropped windows 7 and windows 8 support
- fixed launch of several copies of the application (issue #1547)
- fixed create filters for inaccessible apps (issue #1528)
- fixed displaying update dialog at startup (issue #1511)
- fixed retrieving version information for some files
- fixed slow apps search (issue #1477)
- fixed periodicaly crashing (issue #1486)
- fixed retrieving some apps icons
- fixed saving input on settings
- fixed saving unused apps
- fixed process creation
- improved signature checking
- updated project sdk

v3.7.1 (31 July 2023)
- fixed import not correcly worked (issue #1466)
- fixed crash when checking files (issue #1455)
- updated project sdk

v3.7 (27 July 2023)
- added profile encryption [oldest versions cannot open new profile] (issue #599)
- added terminate process into notification window (issue #1398)
- added checksum calculation for the apps (issue #394)
- added error message for log subscription
- improved search performance (issue #1383)
- fixed timer and apps timestamp displays incorrect information (32-bit only)
- fixed sometimes application displays incrorrect icons
- fixed possible crash when clearing log
- fixed silent uninstaller do not worked
- fixed arm64 build crash (issue #1228)
- fixed internal bugs
- fixed memory leaks
- updated nuget package
- updated project sdk
- updated locale

v3.6.7 (21 September 2022)
- added windows update service solution (issue #677, thx @taviso) [win10+]
- added feature to allow only the requested ip in notification (issue #1265)
- added 12 and 24 hour timer values (issue #1298)
- fixed opening editor are overlapped by notification window
- fixed uwp apps are reset after installing updates (issue #1294)
- fixed select all with search filter selects everything (issue #1264)
- fixed loading default icons for services and uwp apps
- fixed check update option in main menu (issue #1309)
- fixed port numbers are now verified (issue #1240)

v3.6.6 (12 August 2022)
- fixed editor does not disable save button when rule name is empty
- fixed network monitor duplicate calls
- fixed application crash (issue #1272)

v3.6.5 (11 August 2022)
- added group for apps with timers
- display long time in packets log date column
- fixed uwp packages display name parsing
- fixed blank notifications (again!) (issue #1009)

v3.6.4 (19 Juny 2022)
- added focus assistant support (win10rs3+)
- fixed notification sometimes can lose focus of fullscreen app
- fixed internal profile loading crash (issue #1228)

v3.6.3 (10 May 2022)
- fixed installer launches simplewall without asking user (issue #1119)
- fixed saving unused apps in profile (issue #1216)
- fixed app crash on create process (issue ##1224)
- fixed uninstaller delete not all files
- improved workqueue environment
- improved threading model
- fixed internal bugs

v3.6.2 (26 April 2022)
- added autoinstall non-executable updates feature (issue #1122)
- added clear search with escape button for editor
- added fallback for font loading when it does not exists
- improved uwp packages information loading
- fixed restore properties window position
- fixed rule tooltip whitespace
- fixed internal bugs
- updated network monitor
- updated locales
- cosmetic fixes

v3.6.1 (11 November 2021)
- added clear search with escape button
- fixed crash on delete filters (issue #1084)
- fixed import profile warning (issue #1086)
- fixed crash dumps processing
- updated locales
- cosmetic fixes

v3.6 (9 November 2021)
- improved multi-threading safety
- improved startup time
- improved dpi support
- added option to confirm allowing applications (issue #1070)
- added filtering for the application list (issue #663)
- added editor list items count mark for tab title
- added wfp initialization failure workaround
- added filtering for editor apps and rules
- added layer name into log
- moved log exclude configuration into another settings page (issue #1064)
- revert notification x button (issue #973)
- changed create rule toolbar icon (#723)
- fixed filters with hard permit can access internet (issue #689)
- fixed issue with hotkeys for switch tabs (issue #723)
- fixed rebar incrorrect resizing when dpi was changed
- fixed update installation issue (issue #1061)
- fixed notification multi-monitor support
- fixed service missing path (issue #1036)
- fixed editor can cause crash (#1071)
- fixed big memory leak (issue #1066)
- fixed net events unsubscription
- optimized listview sorting
- fixed internal bugs
- cosmetic fixes

v3.5.3 (18 October 2021)
- fixed using uninitialzed port variable in ip ranges [regression] (issue #1055)

v3.5.2 (17 October 2021)
- builded with windows 11 sdk
- fixed port can be omited when parsing ip ranges (issue #1010)
- fixed remote range replaces local range (issue #1044)
- fixed interface stuck by comctl library (issue #1009)
- fixed massive gdi handles leak
- fixed internal bugs

v3.5.1 (6 October 2021)
- optimized certificate checking
- fixed check apps for digital signatures option not works (issue #1037)
- fixed lock to avoid duplicate file information loading
- fixed crash on profile loading (issue #1033)

v3.5 (4 October 2021)
- in this release fqdn support was removed because of security issue (issues #1012)
- improved performance due caching network resolution and file information
- partially revert of windows defender power off (issue #1022)
- added ballon tip to display input limitations (issue #809)
- added compress internal profile in resources with lznt1
- fixed signatures information pointer use-after-free when dns resolver avoid arpa requests (issue #1008)
- fixed resolve network addresses can cause crash (issue #1015)
- fixed notification color issues (issue #1007)
- fixed update installation (issue #1016)
- fixed version information retrieval
- fixed workqueue environment
- fixed internal bugs

v3.4.3 (30 August 2021)
- added verify code signatures from catalog files (issue #1003)
- fixed crash at startup (issue #995)
- fixed rule reference (issue #1002)

v3.4.2 (24 August 2021)
- enable checking apps certificates by default
- show notifications immediately without waiting for busy operations to complete
- impoved listview responsiveness by using virtual listview callback
- fixed packets log displays incorrect direction (issue #945)
- fixed missed listview icons on refresh
- fixed thread environment
- fixed internal bugs
- cosmetic fixes

v3.4.1 (15 August 2021)
- fixed blocklist can does not change action status
- fixed crash at startup (issue #976)
- fixed profile import compatibility
- fixed install update

v3.4 (11 August 2021)
- added arm64 binaries (portable only)
- added protocol and host name information into network alert window (issue #843)
- added limit number of packets log entries (issue #941)
- added host resolving for packet logger listview
- added listview group for forever blocked apps
- fixed loading icons of each application freezes interface (issue #830)
- fixed log listview can have empty lines due to race condition
- fixed ui not properly display installation status (issue #962)
- fixed memory leak when loading profile (issue #888, #937)
- fixed high cpu usage for packet logger (issue #949)
- updated system rules
- updated project sdk
- fixed internal bugs

v3.3.5 (5 July 2021)
- added command line short opts
- use guid for tray icon
- updated project sdk
- fixed toolbar glitch on hidpi displays (issue #950)
- fixed multi-monitor with diffirent dpi support
- fixed installer creates unused files
- fixed internal bugs

v3.3.4 (3 June 2021)
- autoclean packets log ui when system suspended
- fixed config may not be saved when profile directory does not exist
- fixed unnecessary checking for app paths attributes
- fixed threadpool does not initialized com library
- fixed installer silent mode (issue #907)
- updated blocklist and system rules
- fixed internal bugs

v3.3.3 (29 April 2021)
- fixed listview tooltip can cause crash (issue #890)
- fixed editor does not create filters for the app
- fixed incorrect shared icons behaviour
- fixed interlocked operations logic
- fixed caching behaviour
- fixed internal bugs

v3.3.2 Beta (23 April 2021)
- added half an hour timer
- added missing spinlocks
- fixed file write operation can cause crash
- fixed path unexpand does not worked
- fixed running log viewer
- fixed little memory leak
- fixed bugs

v3.3.1 Beta (16 April 2021)
- added workaround for native paths on profile loading (issue #817)
- fixed net events does not subscribe on os version lower than 1607

v3.3 Beta (15 April 2021)
- added option for tray icon to open window in single click
- added warning message for allowing service host
- added quic service for internal rules (issue #819)
- added multiple rules at once in rules editor
- added properties dialog for apps
- added index column for logs
- added sorting for logs
- do not mark apps as unused if it applied for rules
- set limit for rules popup menu (issue #692)
- increased speed of service enumeration
- removed notification ignore button
- use threadpool for timers
- improved multi-monitor support
- improved listviews highlighting
- improved file dialogs
- fixed rule window does not display rule length limitation (issue #867)
- fixed update period timestamp does not set correctly (issue #745)
- fixed crash when user uses ipv6 range in rules (issue #822)
- fixed support filesystems with custom driver (issue #817)
- fixed blank notification window (issue #775)
- fixed dependencies load flags for win10rs1+
- fixed crash on app startup (issue #775)
- updated project sdk
- cosmetic fixes
- fixed bugs

v3.2.4 (5 September 2020)
- removed assertion from release builds (issue #764)
- removed user service instance from the list (win10+)
- fixed parsing not existing apps (issue #732, #739)
- displays incorrect name on timer expiration
- check app timer expiration on profile load
- incorrect read-only rules tooltip markup
- create filter does not report errors
- fixed checking of file attributes
- fixed parsing ip/port ranges
- cosmetic fixes
- fixed bugs

v3.2.3 (25 August 2020)
- added ncsi system rule (issue #709)
- added command line mutex checking (issue #750)
- added noficitation window redraw (issue #731)
- use logical sorting order (issue #735)
- check for provider status before create filters
- do not highlight connections in log tab
- fixed support oldest win7 versions (issue #737)
- removed listview empty markup
- cosmetic fixes
- fixed bugs

v3.2.2 (29 July 2020)
- user rules broken with 3.2.1 (issue #729)

v3.2.1 (29 July 2020)
- added Enable silent-mode when full screen app in foreground option
- added error message for createprocess failure (issue #720)
- highlighting valid connections in network tab
- changed "Disabled apps" group title into "Apps without internet access"
- skip uac warning does not worked (issue #724)
- notification window localized in english only
- revert ip version selection ipv4/ipv6 in rules editor (issue #723)
- revert expand rules in tooltip (issue #723)
- revert "recommended" tag (fix #719)
- fixed bugs

v3.2 Beta (18 July 2020)
- new rules editor
- added option "IsInternalRulesDisabled" for completely disable internal rules (issue #630)
- added temporary filtering mode whether is active until reboot (issue #576)
- added packets logging interface (issue #672)
- added tile view for listview
- added information for export profile failure (issue #707)
- improved tooltips details for apps and rules
- improved listview resizing performance
- changed "Enabled apps" group title into "Apps with internet access"
- now highlight app with user rules only when user rules group is disabled
- removed compatibility with v2 profile databases
- removed special group for rules
- removed user id from title
- fixed local network connection treats as valid network connection (issue #579)
- fixed notification window will bring focus to it's parent window (issue #668)
- fixed "/uninstall" argument does not removing filters (issue #645)
- fixed wfp engine security violation (issue #680)
- fixed support custom windows themes (issue #701)
- fixed getting uwp app paths and timestamps
- fixed dpi support (issue #693)
- fixed internal upnp rule
- fixed bugs

v3.1.2 (26 March 2020)
- reverted disable windows firewall on startup (issue #559 and #562)
- fixed application cannot be started because of continuously restart
- fixed possible duplicate apps entries with short path (issue #640)
- fixed network alert steals the focus (issue #637)
- fixed network paths parsing (issue #629)
- fixed netbios direction (issue #636)
- fixed localization (issue #607)
- fixed bugs

v3.1.1 (27 February 2020)
- fixed displaying tooltips for non-existing apps in network tab (issue #422)
- fixed wsl apps do not display names in the network tab (issue #606)
- fixed incorrect default locale name on some systems (issue #621)
- fixed process mitigation policy (win10rs2+) (issue #611)
- fixed persistent dark theme (win10rs5+) (issue #609)
- fixed update window does not close (issue #616)
- fixed log cleanup (issue #613)
- updated blocklist
- fixed bugs

v3.1 (8 February 2020)
- changed compiler build settings
- changed settings interface
- improved windows 10 1903+ suppport
- show log cleanup confirmation only when it has entries
- fixed notification tabstop processing (issue #497) by @flipkick
- fixed downloading updates progress gets stuck (issue #568)
- fixed find dialog does not worked correctly (issue #511)
- fixed drawing filename in notification (issue #595)
- fixed adjust privileges (theoretically fixes #596)
- fixed inbound direction recognition (issue #581)
- fixed search for next/active notification
- fixed notification hotkeys (issue #597)
- fixed memory duplicate allocation
- updated project sdk (routine++)
- updated ports definitions
- updated blocklist
- fixed bugs

v3.0.9 (15 November 2019)
- do not set notification to top when fullscreen apps working
- fixed disable notifications for app from notification (issue #563)
- fixed crash on system settings changing (issue #552)
- fixed winhttp encoding conversion (issue #568)
- fixed statusbar glitch (issue #569)
- updated blocklist
- fixed bugs

v3.0.8 (8 November 2019)
- removed disable windows firewall on startup (issue #554)
- updated default timer values (issue #340)
- fixed non-default system dpi (issue #544)
- fixed overwrite notifications
- fixed crash (issue #552)
- cosmetics fixes
- fixed bugs

v3.0.7 (1 November 2019)
- improved dpi support (win81+)
- fixed ended timer handling on restart
- fixed regular update message (issue #543)
- fixed components update installation
- fixed window and listview sizing
- updated project sdk
- updated blocklist
- cosmetics fixes
- fixed bugs

v3.0.6 RC (12 October 2019)
- added windows 10 1903+ support
- added csv file title (clear the log to see changes)
- disable network address resolution in network tab by default (issue #515)
- improved refreshing filters on device connecting
- improved network monitoring speed and ui
- improved notification ui
- improved dpi support (win81+)
- fixed collecting services & uwp information
- fixed device names resolution (issue #529)
- fixed toolbar gray text draw (issue #437)
- fixed network items blinking on refresh
- fixed flickering on window resizing
- fixed notification windows refresh
- fixed hostname restricted symbols
- fixed wfp security attributes
- fixed highlighting priority
- fixed memory leak
- updated system rules
- cosmetics fixes
- fixed bugs

v3.0.5 RC (6 August 2019)
- added option to block outbound connections globally
- added close connection feature (issue #506)
- added powerful blocklist configuration
- removed listen layer
- skip saving default rules configuration
- fixed connections port byte order (issue #504)
- fixed user rules ui bug (issue #500)
- fixed dropped packets log layout
- fixed internal rules editor
- fixed ipv6 rule formatting (issue #475)
- fixed connections hashing
- listview menu cosmetics
- cosmetics fixes
- fixed bugs

v3.0.4 RC (23 July 2019)
- added rules and blocklist options into main menu
- set security settings enabled by default
- set protocol names based on IEEE
- made correct backups for profile on reset
- bring notification window to top
- correct determine connections for apps
- fixed error message on new device insertion (issue #215)
- fixed missing connections (issue #423)
- fixed listview sorting does not save state sometimes
- fixed listview sorting compare checked items
- fixed uninstaller does not remove new profile
- fixed tray menu notifications cosmetics
- optimized group items counting
- optimized listview sorting
- cosmetics fixes
- fixed bugs

v3.0.3 Beta (3 July 2019)
- added option to show notification window on tray
- added highlighting for network tab
- redraw app item on connection change
- remove "beta" mark from network tab
- improved wfp transactions
- fixed ipv6 rules port parsing for system rules (issue #475)
- fixed direction case for log and notification (issue #474)
- fixed notification action adds timer (issue #472)
- fixed timer set does not work (issue #484)
- fixed notification refresh when app remove
- fixed configuration reset does not work
- fixed menu graphics (issue #473)
- fixed log stack cleanup
- updated port service names
- cosmetics fixes
- fixed bugs

v3.0.2 Beta (22 Juny 2019)
- new notification ui
- allow microsoft update & microsoft apps servers by default
- added information about ports into the log
- moved icmp4 and icmp6 rules into custom rules
- improved dropped packets log markup cosmetics
- improved network monitoring speed
- improved blocklist configuration
- fixed saving special rules for uwp apps and services (issue #454)
- fixed tray icon dissapear sometimes (issue #450)
- fixed profile import does not work (issue #445)
- fixed semicolons in app paths (issue #462)
- fixed windows 20h1 uwp apps loading crash
- fixed parsing rules with "*"
- updated locales
- cosmetic fixes
- fixed bugs

v3.0.1 Beta (22 May 2019)
- new profile structure
- added checking for correct xml file format before import
- added service name resolution for connections
- added Reverse DNS Lookup for IP
- more flexible autoresizing for listview
- fixed column size initialization (issue #426)
- fixed apps list sorting by date (issue #412)
- fixed status refreshing on timer deletion
- fixed table view for rules (issue #438)
- fixed connections recognition condition
- fixed highlighting (issue #408)
- fixed timers sets (issue #424)
- fixed services icons
- updated locales
- cosmetic fixes
- fixed bugs

v3.0 Beta (7 May 2019)
- dropped windows vista support
- improved dpi support (ui)
- moved rules list into main window
- added services and uwp apps tab
- added network connections monitor
- fixed displaying notifications when it's disabled
- fixed log file write through (issue #369)
- fixed notifications safety timeout
- fixed possible race conditions
- fixed services path retrieve
- fixed notifications cleanup
- improved listview resizing
- improved listview sorting
- removed blacklist mode
- cosmetic fixes
- fixed bugs


================================================
FILE: bin/License.txt
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  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
them 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 prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  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.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

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

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey 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;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If 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 convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU 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 that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  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.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
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.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     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
state 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 3 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, see <http://www.gnu.org/licenses/>.

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

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

    <program>  Copyright (C) <year>  <name of author>
    This program 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, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

  The GNU 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.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.


================================================
FILE: bin/Readme.txt
================================================
simplewall

Description:
Simple tool to configure Windows Filtering Platform (WFP) which can configure network activity on your computer.

The lightweight application is less than a megabyte, and it is compatible with Windows 7 SP1 and higher operating systems.
You can download either the installer or portable version. For correct working you are require administrator rights.

System requirements:
- Windows 7, 8, 8.1, 10, 11 64-bit/ARM64
- An SSE2-capable CPU

Nota bene:
Keep in mind, simplewall is not a control UI over Windows Firewall, and does not interact in any level with Windows Firewall. It works
over Windows Filtering Platform (WFP) which is a set of internal API and system services that provide a platform for creating network filtering
applications. Windows Filtering Platform is a development technology and not a firewall itself, but simplewall is the tool that uses this technology.

Command line:
List of arguments for simplewall.
-install - enable filtering (you can set "-silent" argument to skip prompt)
-uninstall - remove all installed filters

Uninstall:
When you uninstall simplewall, all previously installed filters are stay alive in system.
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.

Features:
- Simple interface without annoying pop ups
- Rules editor (create your own rules)
- Internal blocklist rules (block Windows spy / telemetry)
- Dropped packets information with notification and logging to a file feature (win7+)
- Allowed packets information with logging to a file feature (win8+)
- Windows Subsystem for Linux (WSL) support
- Windows Store support (win8+)
- Windows services support
- Free and open source
- Localization support
- IPv6 support

To activate portable mode, create "simplewall.ini" in application folder, or move it from "%APPDATA%\Henry++\simplewall".

Installation:
When install rules, you can choose two modes:
- Permanent rules - rules are working until you disable it manually.
- Temporary rules - rules are reset after the next reboot.

Uninstall:
When you uninstall simplewall, all previously configured filters stay alive in system.
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.

Command line:
-install - enable filtering.
-install -temp - enable filtering until next reboot.
-install -silent - enable filtering without prompt.
-uninstall - remove all installed filters.

Website: https://github.com/henrypp
Support: sforce5@mail.ru

(c) 2016-2026 Henry++


================================================
FILE: bin/profile_internal.xml
================================================
<?xml version="1.0" ?>
<!--Internal rules for simplewall-->
<!--Minimum required version is 3.8-->
<root timestamp="1717635779" type="4" version="5">
	<rules_system>
		<item name="Cryptographic service" apps="CryptSvc" is_enabled="true" />
		<item name="DHCP" rule="67-68;546-547" rule_local="67-68;546-547" dir="2" protocol="17" apps="Dhcp" is_enabled="true" />
		<item name="DNS" rule="53" protocol="17" apps="Dnscache" is_enabled="true" />
		<item name="IGMP" rule="224.0.0.0/4" protocol="2" is_services="true" is_enabled="true" />
		<item name="IKEv2/IPSEC/L2TP" rule="500;1701;4500" protocol="17" is_services="true" />
		<item name="KMS service" rule="1688" protocol="6" apps="%systemroot%\system32\SppExtComObj.exe" os_version="6.2" is_enabled="true" />
		<item name="LLMNR" rule="224.0.0.252:5355;[ff02::1:3]:5355" protocol="17" is_services="true" is_enabled="true" />
		<item name="mDNS" rule="224.0.0.251:5353;[ff02::fb]:5353" protocol="17" is_services="true" is_enabled="true" />
		<item name="Microsoft account" apps="wlidsvc" os_version="6.2" />
		<item name="NetBIOS [inbound]" rule_local="137-139" dir="1" is_services="true" is_enabled="true" />
		<item name="NetBIOS [outbound]" rule="137-139" is_services="true" is_enabled="true" />
		<item name="NCSI" apps="NlaSvc" is_enabled="true" />
		<item name="NTP" rule="123" protocol="17" is_services="true" is_enabled="true" />
		<item name="Printer Service" rule_remote="515;631" protocol="6" apps="Spooler" />
		<item name="RDP [inbound]" rule_local="3389" dir="1" is_services="true" />
		<item name="RDP [outbound]" rule="3389" is_services="true" />
		<item name="Security policy" apps="%systemroot%\system32\lsass.exe" is_enabled="true" />
		<item name="SMB [inbound]" rule_local="445" dir="1" protocol="6" is_services="true" />
		<item name="SMB [outbound]" rule="445" protocol="6" is_services="true" />
		<item name="SNMP" rule="161-162" dir="2" protocol="17" is_services="true" />
		<item name="SSDP [inbound]" rule_local="1900" dir="1" protocol="17" is_services="true" is_enabled="true" />
		<item name="SSDP [outbound]" rule="1900" protocol="17" is_services="true" is_enabled="true" />
		<item name="UPnP" rule="2869;5000" is_services="true" is_enabled="true" />
		<item name="Windows Update service" apps="wuauserv" />
		<item name="Windows Update Delivery service" apps="DoSvc|UsoSvc" os_version="10.0" />
		<item name="WS-Discovery" rule="3702" protocol="17" is_services="true" is_enabled="true" />
		<item name="WS-Discovery [events]" rule="5357-5358" protocol="6" is_services="true" is_enabled="true" />
	</rules_system>
	<rules_custom>
		<item name="DNS protocol" rule="53" protocol="17" />
		<item name="FTP" rule="20-21;49152-65534" protocol="6" />
		<item name="HTTP" rule="80;443;8000;8008;8080;8443-8444" protocol="6" />
		<item name="ICMPv4" dir="2" protocol="1" />
		<item name="ICMPv6" dir="2" protocol="58" />
		<item name="IMAP/POP3/SMTP" rule="25;110;143;465;587;993;995;2525" protocol="6" />
		<item name="QUIC" rule="443" protocol="17" />
		<item name="SSH" rule="22" protocol="6" />
		<item name="Telnet" rule="23" protocol="6" />
	</rules_custom>
	<rules_blocklist>
		<item name="extra_13.64.186.225" rule="13.64.186.225" />
		<item name="extra_13.69.116.104" rule="13.69.116.104" />
		<item name="extra_13.69.146.58" rule="13.69.146.58" />
		<item name="extra_13.69.239.72" rule="13.69.239.72" />
		<item name="extra_13.69.239.73" rule="13.69.239.73" />
		<item name="extra_13.69.239.74" rule="13.69.239.74" />
		<item name="extra_13.69.244.117" rule="13.69.244.117" />
		<item name="extra_13.70.180.171" rule="13.70.180.171" />
		<item name="extra_13.76.218.117" rule="13.76.218.117" />
		<item name="extra_13.76.219.191" rule="13.76.219.191" />
		<item name="extra_13.76.219.210" rule="13.76.219.210" />
		<item name="extra_13.77.112.132" rule="13.77.112.132" />
		<item name="extra_13.77.115.36" rule="13.77.115.36" />
		<item name="extra_13.78.111.198" rule="13.78.111.198" />
		<item name="extra_13.78.111.199" rule="13.78.111.199" />
		<item name="extra_13.78.235.126" rule="13.78.235.126" />
		<item name="extra_13.78.235.247" rule="13.78.235.247" />
		<item name="extra_13.79.7.57" rule="13.79.7.57" />
		<item name="extra_13.79.239.69" rule="13.79.239.69" />
		<item name="extra_13.79.239.82" rule="13.79.239.82" />
		<item name="extra_13.80.7.77" rule="13.80.7.77" />
		<item name="extra_13.80.12.54" rule="13.80.12.54" />
		<item name="extra_13.81.5.53" rule="13.81.5.53" />
		<item name="extra_13.81.118.91" rule="13.81.118.91" />
		<item name="extra_13.83.65.212" rule="13.83.65.212" />
		<item name="extra_13.83.98.37" rule="13.83.98.37" />
		<item name="extra_13.85.88.16" rule="13.85.88.16" />
		<item name="extra_13.86.252.235" rule="13.86.252.235" />
		<item name="extra_13.88.28.53" rule="13.88.28.53" />
		<item name="extra_13.88.139.208" rule="13.88.139.208" />
		<item name="extra_13.88.145.128" rule="13.88.145.128" />
		<item name="extra_13.89.51.159" rule="13.89.51.159" />
		<item name="extra_13.89.178.26" rule="13.89.178.26" />
		<item name="extra_13.89.178.27" rule="13.89.178.27" />
		<item name="extra_13.89.179.8" rule="13.89.179.8" />
		<item name="extra_13.89.179.9" rule="13.89.179.9" />
		<item name="extra_13.89.179.10" rule="13.89.179.10" />
		<item name="extra_13.89.179.12" rule="13.89.179.12" />
		<item name="extra_13.89.202.241" rule="13.89.202.241" />
		<item name="extra_13.95.147.73" rule="13.95.147.73" />
		<item name="extra_13.104.158.177" rule="13.104.158.177" />
		<item name="extra_13.104.158.179" rule="13.104.158.179" />
		<item name="extra_13.104.158.180" rule="13.104.158.180" />
		<item name="extra_13.104.158.183" rule="13.104.158.183" />
		<item name="extra_13.104.208.160" rule="13.104.208.160" />
		<item name="extra_13.104.208.162" rule="13.104.208.162" />
		<item name="extra_13.104.208.164" rule="13.104.208.164" />
		<item name="extra_13.104.208.165" rule="13.104.208.165" />
		<item name="extra_13.105.66.144" rule="13.105.66.144" />
		<item name="extra_13.105.74.49" rule="13.105.74.49" />
		<item name="extra_13.107.3.128" rule="13.107.3.128" />
		<item name="extra_13.107.3.254" rule="13.107.3.254" />
		<item name="extra_13.107.5.80" rule="13.107.5.80" />
		<item name="extra_13.107.5.88" rule="13.107.5.88" />
		<item name="extra_13.107.5.91" rule="13.107.5.91" />
		<item name="extra_13.107.6.156" rule="13.107.6.156" />
		<item name="extra_13.107.6.158" rule="13.107.6.158" />
		<item name="extra_13.107.6.163" rule="13.107.6.163" />
		<item name="extra_13.107.6.254" rule="13.107.6.254" />
		<item name="extra_13.107.13.88" rule="13.107.13.88" />
		<item name="extra_13.107.13.91" rule="13.107.13.91" />
		<item name="extra_13.107.18.11" rule="13.107.18.11" />
		<item name="extra_13.107.18.254" rule="13.107.18.254" />
		<item name="extra_13.107.19.254" rule="13.107.19.254" />
		<item name="extra_13.107.21.200" rule="13.107.21.200" />
		<item name="extra_13.107.21.229" rule="13.107.21.229" />
		<item name="extra_13.107.22.200" rule="13.107.22.200" />
		<item name="extra_13.107.40.203" rule="13.107.40.203" />
		<item name="extra_13.107.42.11" rule="13.107.42.11" />
		<item name="extra_13.107.42.12" rule="13.107.42.12" />
		<item name="extra_13.107.42.13" rule="13.107.42.13" />
		<item name="extra_13.107.42.14" rule="13.107.42.14" />
		<item name="extra_13.107.42.23" rule="13.107.42.23" />
		<item name="extra_13.107.42.254" rule="13.107.42.254" />
		<item name="extra_13.107.43.12" rule="13.107.43.12" />
		<item name="extra_13.107.43.14" rule="13.107.43.14" />
		<item name="extra_13.107.43.23" rule="13.107.43.23" />
		<item name="extra_13.107.46.88" rule="13.107.46.88" />
		<item name="extra_13.107.47.88" rule="13.107.47.88" />
		<item name="extra_13.107.49.254" rule="13.107.49.254" />
		<item name="extra_13.107.128.254" rule="13.107.128.254" />
		<item name="extra_13.107.136.254" rule="13.107.136.254" />
		<item name="extra_13.107.140.254" rule="13.107.140.254" />
		<item name="extra_13.107.213.42" rule="13.107.213.42" />
		<item name="extra_13.107.246.10" rule="13.107.246.10" />
		<item name="extra_13.107.246.13" rule="13.107.246.13" />
		<item name="extra_13.107.246.19" rule="13.107.246.19" />
		<item name="extra_13.107.246.254" rule="13.107.246.254" />
		<item name="extra_13.107.255.72" rule="13.107.255.72" />
		<item name="extra_13.107.255.73" rule="13.107.255.73" />
		<item name="extra_13.107.255.74" rule="13.107.255.74" />
		<item name="extra_13.107.255.76" rule="13.107.255.76" />
		<item name="extra_20.36.218.63" rule="20.36.218.63" />
		<item name="extra_20.36.218.70" rule="20.36.218.70" />
		<item name="extra_20.36.246.225" rule="20.36.246.225" />
		<item name="extra_20.36.253.92" rule="20.36.253.92" />
		<item name="extra_20.38.96.100" rule="20.38.96.100" />
		<item name="extra_20.38.101.132" rule="20.38.101.132" />
		<item name="extra_20.38.101.228" rule="20.38.101.228" />
		<item name="extra_20.38.122.68" rule="20.38.122.68" />
		<item name="extra_20.38.122.100" rule="20.38.122.100" />
		<item name="extra_20.38.122.132" rule="20.38.122.132" />
		<item name="extra_20.38.122.228" rule="20.38.122.228" />
		<item name="extra_20.40.129.122" rule="20.40.129.122" />
		<item name="extra_20.40.136.238" rule="20.40.136.238" />
		<item name="extra_20.42.65.84" rule="20.42.65.84" />
		<item name="extra_20.42.65.85" rule="20.42.65.85" />
		<item name="extra_20.42.65.88" rule="20.42.65.88" />
		<item name="extra_20.42.65.89" rule="20.42.65.89" />
		<item name="extra_20.42.65.90" rule="20.42.65.90" />
		<item name="extra_20.42.65.92" rule="20.42.65.92" />
		<item name="extra_20.42.72.131" rule="20.42.72.131" />
		<item name="extra_20.42.73.24" rule="20.42.73.24" />
		<item name="extra_20.42.73.25" rule="20.42.73.25" />
		<item name="extra_20.42.73.26" rule="20.42.73.26" />
		<item name="extra_20.42.73.27" rule="20.42.73.27" />
		<item name="extra_20.42.73.29" rule="20.42.73.29" />
		<item name="extra_20.43.92.14" rule="20.43.92.14" />
		<item name="extra_20.44.10.122" rule="20.44.10.122" />
		<item name="extra_20.44.10.123" rule="20.44.10.123" />
		<item name="extra_20.44.82.31" rule="20.44.82.31" />
		<item name="extra_20.44.208.51" rule="20.44.208.51" />
		<item name="extra_20.44.232.74" rule="20.44.232.74" />
		<item name="extra_20.46.146.84" rule="20.46.146.84" />
		<item name="extra_20.49.157.6" rule="20.49.157.6" />
		<item name="extra_20.50.73.9" rule="20.50.73.9" />
		<item name="extra_20.50.73.10" rule="20.50.73.10" />
		<item name="extra_20.50.80.209" rule="20.50.80.209" />
		<item name="extra_20.50.80.210" rule="20.50.80.210" />
		<item name="extra_20.50.102.62" rule="20.50.102.62" />
		<item name="extra_20.50.201.195" rule="20.50.201.195" />
		<item name="extra_20.50.201.200" rule="20.50.201.200" />
		<item name="extra_20.54.64.202" rule="20.54.64.202" />
		<item name="extra_20.54.88.152" rule="20.54.88.152" />
		<item name="extra_20.54.122.82" rule="20.54.122.82" />
		<item name="extra_20.60.18.36" rule="20.60.18.36" />
		<item name="extra_20.60.30.36" rule="20.60.30.36" />
		<item name="extra_20.60.30.68" rule="20.60.30.68" />
		<item name="extra_20.60.58.97" rule="20.60.58.97" />
		<item name="extra_20.60.59.193" rule="20.60.59.193" />
		<item name="extra_20.60.59.235" rule="20.60.59.235" />
		<item name="extra_20.60.133.132" rule="20.60.133.132" />
		<item name="extra_20.60.178.4" rule="20.60.178.4" />
		<item name="extra_20.60.179.4" rule="20.60.179.4" />
		<item name="extra_20.60.181.193" rule="20.60.181.193" />
		<item name="extra_20.60.181.225" rule="20.60.181.225" />
		<item name="extra_20.60.240.33" rule="20.60.240.33" />
		<item name="extra_20.60.240.65" rule="20.60.240.65" />
		<item name="extra_20.67.112.184" rule="20.67.112.184" />
		<item name="extra_20.67.219.150" rule="20.67.219.150" />
		<item name="extra_20.69.130.185" rule="20.69.130.185" />
		<item name="extra_20.72.78.248" rule="20.72.78.248" />
		<item name="extra_20.73.128.142" rule="20.73.128.142" />
		<item name="extra_20.82.209.104" rule="20.82.209.104" />
		<item name="extra_20.82.209.183" rule="20.82.209.183" />
		<item name="extra_20.82.210.154" rule="20.82.210.154" />
		<item name="extra_20.82.217.86" rule="20.82.217.86" />
		<item name="extra_20.82.250.189" rule="20.82.250.189" />
		<item name="extra_20.86.161.79" rule="20.86.161.79" />
		<item name="extra_20.86.173.234" rule="20.86.173.234" />
		<item name="extra_20.86.186.134" rule="20.86.186.134" />
		<item name="extra_20.93.58.141" rule="20.93.58.141" />
		<item name="extra_20.140.48.69" rule="20.140.48.69" />
		<item name="extra_20.140.56.70" rule="20.140.56.70" />
		<item name="extra_20.150.17.68" rule="20.150.17.68" />
		<item name="extra_20.150.29.228" rule="20.150.29.228" />
		<item name="extra_20.150.36.228" rule="20.150.36.228" />
		<item name="extra_20.150.50.4" rule="20.150.50.4" />
		<item name="extra_20.150.50.132" rule="20.150.50.132" />
		<item name="extra_20.150.77.68" rule="20.150.77.68" />
		<item name="extra_20.150.77.100" rule="20.150.77.100" />
		<item name="extra_20.150.88.4" rule="20.150.88.4" />
		<item name="extra_20.150.88.132" rule="20.150.88.132" />
		<item name="extra_20.150.88.196" rule="20.150.88.196" />
		<item name="extra_20.150.95.4" rule="20.150.95.4" />
		<item name="extra_20.150.95.132" rule="20.150.95.132" />
		<item name="extra_20.150.95.164" rule="20.150.95.164" />
		<item name="extra_20.150.95.196" rule="20.150.95.196" />
		<item name="extra_20.150.95.228" rule="20.150.95.228" />
		<item name="extra_20.188.76.57" rule="20.188.76.57" />
		<item name="extra_20.189.74.153" rule="20.189.74.153" />
		<item name="extra_20.189.79.72" rule="20.189.79.72" />
		<item name="extra_20.189.118.208" rule="20.189.118.208" />
		<item name="extra_20.189.173.1" rule="20.189.173.1" />
		<item name="extra_20.189.173.2" rule="20.189.173.2" />
		<item name="extra_20.189.173.3" rule="20.189.173.3" />
		<item name="extra_20.189.173.4" rule="20.189.173.4" />
		<item name="extra_20.189.173.5" rule="20.189.173.5" />
		<item name="extra_20.189.173.6" rule="20.189.173.6" />
		<item name="extra_20.189.173.7" rule="20.189.173.7" />
		<item name="extra_20.189.173.8" rule="20.189.173.8" />
		<item name="extra_20.189.173.9" rule="20.189.173.9" />
		<item name="extra_20.189.173.10" rule="20.189.173.10" />
		<item name="extra_20.189.173.11" rule="20.189.173.11" />
		<item name="extra_20.189.173.12" rule="20.189.173.12" />
		<item name="extra_20.189.173.13" rule="20.189.173.13" />
		<item name="extra_20.189.173.14" rule="20.189.173.14" />
		<item name="extra_20.189.173.15" rule="20.189.173.15" />
		<item name="extra_20.189.173.20" rule="20.189.173.20" />
		<item name="extra_20.189.173.21" rule="20.189.173.21" />
		<item name="extra_20.189.173.22" rule="20.189.173.22" />
		<item name="extra_20.190.129.2" rule="20.190.129.2" />
		<item name="extra_20.190.129.17" rule="20.190.129.17" />
		<item name="extra_20.190.129.19" rule="20.190.129.19" />
		<item name="extra_20.190.129.24" rule="20.190.129.24" />
		<item name="extra_20.190.129.128" rule="20.190.129.128" />
		<item name="extra_20.190.129.130" rule="20.190.129.130" />
		<item name="extra_20.190.129.133" rule="20.190.129.133" />
		<item name="extra_20.190.129.160" rule="20.190.129.160" />
		<item name="extra_20.190.137.6" rule="20.190.137.6" />
		<item name="extra_20.190.137.10" rule="20.190.137.10" />
		<item name="extra_20.190.137.14" rule="20.190.137.14" />
		<item name="extra_20.190.137.69" rule="20.190.137.69" />
		<item name="extra_20.190.137.73" rule="20.190.137.73" />
		<item name="extra_20.190.137.75" rule="20.190.137.75" />
		<item name="extra_20.190.137.96" rule="20.190.137.96" />
		<item name="extra_20.190.137.98" rule="20.190.137.98" />
		<item name="extra_20.190.159.0" rule="20.190.159.0" />
		<item name="extra_20.190.159.2" rule="20.190.159.2" />
		<item name="extra_20.190.159.4" rule="20.190.159.4" />
		<item name="extra_20.190.159.23" rule="20.190.159.23" />
		<item name="extra_20.190.159.30" rule="20.190.159.30" />
		<item name="extra_20.190.159.32" rule="20.190.159.32" />
		<item name="extra_20.190.159.64" rule="20.190.159.64" />
		<item name="extra_20.190.159.71" rule="20.190.159.71" />
		<item name="extra_20.190.159.73" rule="20.190.159.73" />
		<item name="extra_20.190.159.132" rule="20.190.159.132" />
		<item name="extra_20.190.159.134" rule="20.190.159.134" />
		<item name="extra_20.190.159.136" rule="20.190.159.136" />
		<item name="extra_20.190.159.138" rule="20.190.159.138" />
		<item name="extra_20.190.159.161" rule="20.190.159.161" />
		<item name="extra_20.190.159.162" rule="20.190.159.162" />
		<item name="extra_20.190.160.2" rule="20.190.160.2" />
		<item name="extra_20.190.160.4" rule="20.190.160.4" />
		<item name="extra_20.190.160.6" rule="20.190.160.6" />
		<item name="extra_20.190.160.8" rule="20.190.160.8" />
		<item name="extra_20.190.160.14" rule="20.190.160.14" />
		<item name="extra_20.190.160.17" rule="20.190.160.17" />
		<item name="extra_20.190.160.20" rule="20.190.160.20" />
		<item name="extra_20.190.160.22" rule="20.190.160.22" />
		<item name="extra_20.190.160.24" rule="20.190.160.24" />
		<item name="extra_20.190.160.67" rule="20.190.160.67" />
		<item name="extra_20.190.160.69" rule="20.190.160.69" />
		<item name="extra_20.190.160.71" rule="20.190.160.71" />
		<item name="extra_20.190.160.73" rule="20.190.160.73" />
		<item name="extra_20.190.160.75" rule="20.190.160.75" />
		<item name="extra_20.190.160.129" rule="20.190.160.129" />
		<item name="extra_20.190.160.132" rule="20.190.160.132" />
		<item name="extra_20.190.160.134" rule="20.190.160.134" />
		<item name="extra_20.190.160.136" rule="20.190.160.136" />
		<item name="extra_23.96.52.53" rule="23.96.52.53" />
		<item name="extra_23.96.208.208" rule="23.96.208.208" />
		<item name="extra_23.97.61.137" rule="23.97.61.137" />
		<item name="extra_23.97.153.169" rule="23.97.153.169" />
		<item name="extra_23.97.178.173" rule="23.97.178.173" />
		<item name="extra_23.97.209.97" rule="23.97.209.97" />
		<item name="extra_23.99.109.44" rule="23.99.109.44" />
		<item name="extra_23.99.109.64" rule="23.99.109.64" />
		<item name="extra_23.99.116.116" rule="23.99.116.116" />
		<item name="extra_23.99.121.207" rule="23.99.121.207" />
		<item name="extra_23.99.206.110" rule="23.99.206.110" />
		<item name="extra_23.100.122.175" rule="23.100.122.17
Download .txt
gitextract_imtg74o1/

├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.md
│   └── workflows/
│       └── scorecard.yml
├── .gitignore
├── .gitmodules
├── CHANGELOG.md
├── CHANGELOGv1.md
├── LICENSE
├── README.md
├── VERSION
├── bin/
│   ├── History.txt
│   ├── License.txt
│   ├── Readme.txt
│   ├── i18n/
│   │   ├── !example.txt
│   │   ├── Arabic.ini
│   │   ├── Bulgarian.ini
│   │   ├── Catalan.ini
│   │   ├── Chinese (Simplified).ini
│   │   ├── Chinese (Traditional).ini
│   │   ├── Czech.ini
│   │   ├── Dutch.ini
│   │   ├── Finnish.ini
│   │   ├── French.ini
│   │   ├── German.ini
│   │   ├── Hungarian.ini
│   │   ├── Italian.ini
│   │   ├── Japanese.ini
│   │   ├── Korean.ini
│   │   ├── Persian.ini
│   │   ├── Polish.ini
│   │   ├── Portuguese (Brazil).ini
│   │   ├── Portuguese.ini
│   │   ├── Russian.ini
│   │   ├── Serbian (Cyrillic).ini
│   │   ├── Serbian (Latin).ini
│   │   ├── Slovak.ini
│   │   ├── Slovenian.ini
│   │   ├── Spanish.ini
│   │   ├── Swedish.ini
│   │   ├── Turkish.ini
│   │   ├── Ukrainian.ini
│   │   └── Vietnamese.ini
│   ├── profile_internal.xml
│   └── simplewall.lng
├── build.bat
├── build_locale.bat
├── build_simplewall_rules.bat
├── build_vc.bat
├── packages.config
├── simplewall.sln
├── simplewall.vcxproj
├── simplewall.vcxproj.filters
├── simplewall.vcxproj.user
└── src/
    ├── app.h
    ├── controls.c
    ├── controls.h
    ├── db.c
    ├── db.h
    ├── editor.c
    ├── editor.h
    ├── global.h
    ├── helper.c
    ├── helper.h
    ├── icons.c
    ├── icons.h
    ├── listview.c
    ├── listview.h
    ├── log.c
    ├── log.h
    ├── main.c
    ├── main.h
    ├── messages.c
    ├── messages.h
    ├── network.c
    ├── network.h
    ├── notifications.c
    ├── notifications.h
    ├── packages.c
    ├── packages.h
    ├── profile.c
    ├── profile.h
    ├── res/
    │   └── manifest.xml
    ├── resource.h
    ├── resource.rc
    ├── search.c
    ├── search.h
    ├── security.c
    ├── security.h
    ├── timer.c
    ├── timer.h
    ├── uwp.cpp
    ├── uwp.h
    ├── wfp.c
    └── wfp.h
Download .txt
SYMBOL INDEX (388 symbols across 27 files)

FILE: src/controls.c
  function VOID (line 6) | VOID _app_getapptooltipstring (
  function _Ret_maybenull_ (line 294) | _Ret_maybenull_
  function VOID (line 458) | VOID _app_settab_id (
  function LPWSTR (line 495) | LPWSTR _app_getstateaction (
  function HBITMAP (line 525) | HBITMAP _app_getstatebitmap (
  function INT (line 546) | INT _app_getstateicon (
  function LPCWSTR (line 567) | LPCWSTR _app_getstatelocale (
  function BOOLEAN (line 602) | BOOLEAN _app_initinterfacestate (
  function VOID (line 620) | VOID _app_restoreinterfacestate (
  function VOID (line 638) | VOID _app_setinterfacestate (
  function VOID (line 674) | VOID _app_settrayicon (
  function VOID (line 704) | VOID _app_imagelist_init (
  function HFONT (line 816) | HFONT _app_createfont (
  function VOID (line 837) | VOID _app_windowloadfont (
  function VOID (line 855) | VOID _app_toolbar_init (
  function VOID (line 948) | VOID _app_toolbar_resize (
  function VOID (line 1008) | VOID _app_toolbar_setfont ()
  function VOID (line 1017) | VOID _app_window_resize (
  function VOID (line 1087) | VOID _app_refreshstatus (

FILE: src/db.c
  function _app_db_initialize (line 6) | _Success_ (SUCCEEDED (return))
  function VOID (line 17) | VOID _app_db_destroy (
  function _app_db_encrypt (line 27) | _Success_ (NT_SUCCESS (return))
  function _app_db_decrypt (line 60) | _Success_ (NT_SUCCESS (return))
  function _app_db_gethash (line 93) | _Success_ (NT_SUCCESS (return))
  function BYTE (line 119) | BYTE _app_getprofiletype ()
  function _app_db_ishashvalid (line 141) | _Success_ (NT_SUCCESS (return))
  function _app_db_openfrombuffer (line 169) | _Success_ (NT_SUCCESS (return))
  function _app_db_openfromfile (line 186) | _Success_ (NT_SUCCESS (return))
  function VOID (line 221) | VOID _app_db_parse_app (
  function VOID (line 319) | VOID _app_db_parse_rule (
  function VOID (line 514) | VOID _app_db_parse_ruleconfig (
  function _app_db_decodebody (line 556) | _Success_ (NT_SUCCESS (return))
  function _app_db_encodebody (line 643) | _Success_ (NT_SUCCESS (return))
  function _app_db_generatebody (line 731) | _Success_ (NT_SUCCESS (return))
  function _app_db_decodebuffer (line 782) | _Success_ (NT_SUCCESS (return))
  function BOOLEAN (line 828) | BOOLEAN _app_db_parse (
  function _app_db_savetofile (line 906) | _Success_ (NT_SUCCESS (return))
  function _app_db_save_streamtofile (line 942) | _Success_ (NT_SUCCESS (return))
  function FORCEINLINE (line 981) | FORCEINLINE VOID _app_db_writeelementstart (
  function FORCEINLINE (line 991) | FORCEINLINE VOID _app_db_writeelementend (
  function VOID (line 1000) | VOID _app_db_save_app (
  function VOID (line 1069) | VOID _app_db_save_rule (
  function VOID (line 1142) | VOID _app_db_save_ruleconfig (
  function _Ret_maybenull_ (line 1206) | _Ret_maybenull_
  function _Ret_maybenull_ (line 1253) | _Ret_maybenull_
  function LPCWSTR (line 1324) | LPCWSTR _app_db_getprotoname (
  function _Ret_maybenull_ (line 1408) | _Ret_maybenull_

FILE: src/db.h
  type ENUM_TYPE_XML (line 7) | typedef enum _ENUM_TYPE_XML
  type ENUM_VERSION_XML (line 14) | typedef enum _ENUM_VERSION_XML
  type DB_INFORMATION (line 26) | typedef struct _DB_INFORMATION

FILE: src/editor.c
  function _Ret_maybenull_ (line 6) | _Ret_maybenull_
  function VOID (line 30) | VOID _app_editor_deletewindow (
  function _Ret_maybenull_ (line 37) | _Ret_maybenull_
  function VOID (line 49) | VOID _app_editor_setcontext (
  function VOID (line 57) | VOID _app_editor_addtabitem (
  function VOID (line 80) | VOID _app_editor_settabtitle (
  function _Ret_maybenull_ (line 118) | _Ret_maybenull_
  function VOID (line 180) | VOID _app_editor_setrulestolistview (
  function INT_PTR (line 211) | INT_PTR CALLBACK EditorRuleProc (
  function INT_PTR (line 422) | INT_PTR CALLBACK EditorPagesProc (
  function INT_PTR (line 1527) | INT_PTR CALLBACK EditorProc (

FILE: src/editor.h
  type EDITOR_CONTEXT (line 6) | typedef struct _EDITOR_CONTEXT

FILE: src/helper.c
  function VOID (line 6) | VOID NTAPI _app_dereferenceapp (
  function VOID (line 33) | VOID NTAPI _app_dereferenceappinfo (
  function VOID (line 51) | VOID NTAPI _app_dereferenceruleconfig (
  function VOID (line 66) | VOID NTAPI _app_dereferencelog (
  function VOID (line 102) | VOID NTAPI _app_dereferencenetwork (
  function VOID (line 129) | VOID NTAPI _app_dereferencerule (
  function VOID (line 156) | VOID _app_addcachetable (
  function BOOLEAN (line 178) | BOOLEAN _app_getcachetable (
  function PR_STRING (line 203) | PR_STRING _app_formatarpa (
  function _Ret_maybenull_ (line 256) | _Ret_maybenull_
  function PR_STRING (line 312) | PR_STRING _app_formataddress_interlocked (
  function _app_formatip (line 343) | _Success_ (NT_SUCCESS (return))
  function PR_STRING (line 392) | PR_STRING _app_formatport (
  function _Ret_maybenull_ (line 407) | _Ret_maybenull_
  function _app_getappinfoparam2 (line 421) | _Success_ (return)
  function BOOLEAN (line 526) | BOOLEAN _app_isappsigned (
  function BOOLEAN (line 543) | BOOLEAN _app_isappvalidbinary (
  function BOOLEAN (line 559) | BOOLEAN _app_isappvalidpath (
  function _Ret_maybenull_ (line 575) | _Ret_maybenull_
  function _Ret_maybenull_ (line 624) | _Ret_maybenull_
  function VOID (line 660) | VOID _app_getfileicon (
  function _app_calculatefilehash (line 681) | _Success_ (return)
  function _Ret_maybenull_ (line 769) | _Ret_maybenull_
  function LONG (line 817) | LONG _app_verifyfromfile (
  function NTSTATUS (line 871) | NTSTATUS _app_verifyfilefromcatalog (
  function VOID (line 956) | VOID _app_getfilesignatureinfo (
  function VOID (line 1007) | VOID _app_getfileversioninfo (
  function _Ret_maybenull_ (line 1099) | _Ret_maybenull_
  function ULONG (line 1120) | ULONG _app_addcolor (
  function COLORREF (line 1146) | COLORREF _app_getcolorvalue (
  function VOID (line 1160) | VOID _app_generate_rulescontrol (
  function VOID (line 1252) | VOID _app_generate_timerscontrol (
  function BOOLEAN (line 1295) | BOOLEAN _app_setruletoapp (
  function _app_parsenetworkstring (line 1337) | _Success_ (return)
  function _app_preparserulestring (line 1441) | _Success_ (return)
  function _app_parserulestring (line 1548) | _Success_ (return)
  function _Ret_maybenull_ (line 1617) | _Ret_maybenull_
  function PR_STRING (line 1666) | PR_STRING _app_resolveaddress_interlocked (
  function VOID (line 1707) | VOID _app_fileloggingenable ()
  function VOID (line 1733) | VOID NTAPI _app_timercallback (
  function VOID (line 1779) | VOID _app_getfileinformation (
  function VOID (line 1824) | VOID _app_queue_resolver (
  function VOID (line 1843) | VOID NTAPI _app_queue_fileinformation (
  function VOID (line 1893) | VOID NTAPI _app_queue_notifyinformation (
  function VOID (line 2030) | VOID NTAPI _app_queue_resolveinformation (
  function BOOLEAN (line 2078) | BOOLEAN _app_wufixenabled ()
  function VOID (line 2096) | VOID _app_wufixhelper (
  function VOID (line 2155) | VOID _app_wufixenable (

FILE: src/helper.h
  type ICON_INFORMATION (line 6) | typedef struct _ICON_INFORMATION

FILE: src/icons.c
  function PICON_INFORMATION (line 6) | PICON_INFORMATION _app_icons_getdefault ()
  function _Ret_maybenull_ (line 57) | _Ret_maybenull_
  function _Ret_maybenull_ (line 70) | _Ret_maybenull_
  function LONG (line 92) | LONG _app_icons_getdefaultapp_id (
  function _Ret_maybenull_ (line 112) | _Ret_maybenull_
  function VOID (line 160) | VOID _app_icons_loaddefaults (
  function VOID (line 207) | VOID _app_icons_loadfromfile (

FILE: src/listview.c
  function _Ret_maybenull_ (line 6) | _Ret_maybenull_
  function INT (line 24) | INT _app_listview_getbytype (
  function VOID (line 73) | VOID _app_listview_additems (
  function VOID (line 112) | VOID _app_listview_clearitems (
  function VOID (line 122) | VOID _app_listview_addappitem (
  function VOID (line 146) | VOID _app_listview_addruleitem (
  function VOID (line 172) | VOID _app_listview_addnetworkitem (
  function VOID (line 180) | VOID _app_listview_addlogitem (
  function BOOLEAN (line 194) | BOOLEAN _app_listview_islocked (
  function VOID (line 209) | VOID _app_listview_lock (
  function LONG_PTR (line 229) | LONG_PTR _app_listview_createcontext (
  function VOID (line 242) | VOID _app_listview_destroycontext (
  function ULONG_PTR (line 249) | ULONG_PTR _app_listview_getcontextcode (
  function ULONG (line 261) | ULONG _app_listview_getappcontext (
  function ULONG_PTR (line 319) | ULONG_PTR _app_listview_getitemcontext (
  function BOOLEAN (line 335) | BOOLEAN _app_listview_isitemhidden (
  function INT (line 350) | INT _app_listview_finditem (
  function VOID (line 379) | VOID _app_listview_removeitem (
  function VOID (line 402) | VOID _app_listview_showitemby_id (
  function VOID (line 430) | VOID _app_listview_showitemby_param (
  function VOID (line 474) | VOID _app_listview_updateby_id (
  function VOID (line 532) | VOID _app_listview_updateby_param (
  function VOID (line 569) | VOID _app_listview_updateitemby_param (
  function VOID (line 625) | VOID _app_listview_updateitemby_id (
  function VOID (line 634) | VOID _app_listview_loadfont (
  function VOID (line 651) | VOID _app_listview_refreshgroups (
  function VOID (line 791) | VOID _app_listview_resize (
  function VOID (line 933) | VOID _app_listview_setfont (
  function VOID (line 942) | VOID _app_listview_setview (
  function INT (line 994) | INT CALLBACK _app_listview_compare_callback (
  function VOID (line 1123) | VOID _app_listview_sort (

FILE: src/listview.h
  type ITEM_LISTVIEW_CONTEXT (line 6) | typedef struct _ITEM_LISTVIEW_CONTEXT

FILE: src/log.c
  function VOID (line 6) | VOID _app_loginit (
  function VOID (line 54) | VOID _app_loginitfile (
  function ULONG (line 78) | ULONG _app_getloghash (
  function _Ret_maybenull_ (line 105) | _Ret_maybenull_
  function _Ret_maybenull_ (line 115) | _Ret_maybenull_
  function BOOLEAN (line 136) | BOOLEAN _app_islogfound (
  function BOOLEAN (line 149) | BOOLEAN _app_logislimitreached (
  function VOID (line 166) | VOID _app_logclear (
  function VOID (line 189) | VOID _app_logclear_ui (
  function VOID (line 204) | VOID _app_logwrite (
  function VOID (line 276) | VOID _app_logwrite_ui (
  function VOID (line 326) | VOID _wfp_logsubscribe (
  function VOID (line 450) | VOID _wfp_logunsubscribe (
  function VOID (line 470) | VOID _wfp_logsetoption (
  function VOID (line 520) | VOID CALLBACK _wfp_logcallback (
  function FORCEINLINE (line 720) | FORCEINLINE BOOLEAN log_struct_to_f (
  function VOID (line 1281) | VOID CALLBACK _wfp_logcallback0 (
  function VOID (line 1293) | VOID CALLBACK _wfp_logcallback1 (
  function VOID (line 1305) | VOID CALLBACK _wfp_logcallback2 (
  function VOID (line 1317) | VOID CALLBACK _wfp_logcallback3 (
  function VOID (line 1329) | VOID CALLBACK _wfp_logcallback4 (
  function VOID (line 1340) | VOID NTAPI _app_logthread (

FILE: src/main.c
  function BOOLEAN (line 6) | BOOLEAN _app_changefilters (
  function BOOLEAN (line 43) | BOOLEAN _app_installmessage (
  function VOID (line 151) | VOID _app_config_apply (
  function INT_PTR (line 575) | INT_PTR CALLBACK SettingsProc (
  function VOID (line 1833) | VOID _app_addwindowtabs (
  function VOID (line 1910) | VOID _app_tabs_init (
  function VOID (line 2037) | VOID _app_initialize (
  function INT (line 2153) | INT FirstDriveFromMask (
  function INT_PTR (line 2170) | INT_PTR CALLBACK DlgProc (
  function BOOLEAN (line 3907) | BOOLEAN NTAPI _app_parseargs (
  function INT (line 3974) | INT APIENTRY wWinMain (

FILE: src/main.h
  type ENUM_TYPE_DATA (line 32) | typedef enum _ENUM_TYPE_DATA
  type ENUM_INSTALL_TYPE (line 52) | typedef enum _ENUM_INSTALL_TYPE
  type ENUM_INFO_DATA (line 59) | typedef enum _ENUM_INFO_DATA
  type ENUM_INFO_DATA2 (line 76) | typedef enum _ENUM_INFO_DATA2
  type STATIC_DATA (line 175) | typedef struct _STATIC_DATA
  type PROFILE_DATA (line 245) | typedef struct _PROFILE_DATA
  type ITEM_APP (line 254) | typedef struct _ITEM_APP
  type ITEM_APP_INFO (line 290) | typedef struct _ITEM_APP_INFO
  type ITEM_FILTER_CONFIG (line 308) | typedef struct _ITEM_FILTER_CONFIG
  type ITEM_RULE (line 315) | typedef struct _ITEM_RULE
  type ITEM_RULE_CONFIG (line 356) | typedef struct _ITEM_RULE_CONFIG
  type ITEM_NETWORK (line 364) | typedef struct _ITEM_NETWORK
  type ITEM_LOG (line 403) | typedef struct _ITEM_LOG
  type ITEM_STATUS (line 454) | typedef struct _ITEM_STATUS
  type ITEM_CONTEXT (line 465) | typedef struct _ITEM_CONTEXT
  type ITEM_COLOR (line 482) | typedef struct _ITEM_COLOR
  type ITEM_ADDRESS (line 492) | typedef struct _ITEM_ADDRESS
  type ITEM_LOG_CALLBACK (line 519) | typedef struct _ITEM_LOG_CALLBACK
  type ITEM_TAB_CONTEXT (line 554) | typedef struct _ITEM_TAB_CONTEXT

FILE: src/messages.c
  function VOID (line 6) | VOID _app_message_initialize (
  function VOID (line 151) | VOID _app_message_localize (
  function VOID (line 474) | VOID _app_message_uninitialize (
  function VOID (line 481) | VOID _app_generate_appmenu (
  function VOID (line 520) | VOID _app_message_contextmenu (
  function VOID (line 807) | VOID _app_message_contextmenu_columns (
  function VOID (line 852) | VOID _app_message_traycontextmenu (
  function VOID (line 937) | VOID _app_message_dpichanged (
  function LONG_PTR (line 977) | LONG_PTR _app_message_custdraw (
  function VOID (line 1113) | VOID _app_displayinfoapp_callback (
  function VOID (line 1219) | VOID _app_displayinforule_callback (
  function VOID (line 1322) | VOID _app_displayinfonetwork_callback (
  function VOID (line 1506) | VOID _app_displayinfolog_callback (
  function BOOLEAN (line 1717) | BOOLEAN _app_message_displayinfo (
  function VOID (line 1812) | VOID _app_command_idtorules (
  function VOID (line 1881) | VOID _app_command_idtotimers (
  function VOID (line 1932) | VOID _app_command_logshow (
  function VOID (line 1998) | VOID _app_command_logclear (
  function VOID (line 2037) | VOID _app_command_logerrshow (
  function VOID (line 2074) | VOID _app_command_logerrclear (
  function VOID (line 2091) | VOID _app_command_copy (
  function VOID (line 2158) | VOID _app_command_checkbox (
  function VOID (line 2280) | VOID _app_command_delete (
  function VOID (line 2489) | VOID _app_command_disable (
  function VOID (line 2547) | VOID _app_command_openeditor (
  function VOID (line 2705) | VOID _app_command_properties (
  function VOID (line 2853) | VOID _app_command_purgeunused (
  function VOID (line 2942) | VOID _app_command_purgetimers (
  function VOID (line 3031) | VOID _app_command_selectfont (

FILE: src/network.c
  function _Ret_maybenull_ (line 6) | _Ret_maybenull_
  function VOID (line 25) | VOID _app_network_initialize (
  function VOID (line 59) | VOID _app_network_uninitialize (
  function VOID (line 72) | VOID _app_network_generatetable (
  function _Ret_maybenull_ (line 395) | _Ret_maybenull_
  function ULONG (line 416) | ULONG _app_network_getappitem (
  function ULONG (line 435) | ULONG _app_network_gethash (
  function BOOLEAN (line 476) | BOOLEAN _app_network_getpath (
  function BOOLEAN (line 571) | BOOLEAN _app_network_isapphaveconnection (
  function BOOLEAN (line 604) | BOOLEAN _app_network_isitemfound (
  function BOOLEAN (line 623) | BOOLEAN _app_network_isvalidconnection (
  function VOID (line 661) | VOID _app_network_printlistviewtable (
  function VOID (line 733) | VOID _app_network_removeitem (
  function VOID (line 749) | VOID NTAPI _app_network_threadproc (

FILE: src/network.h
  type ITEM_NETWORK_CONTEXT (line 6) | typedef struct _ITEM_NETWORK_CONTEXT

FILE: src/notifications.c
  function _Ret_maybenull_ (line 6) | _Ret_maybenull_
  function _Ret_maybenull_ (line 33) | _Ret_maybenull_
  function VOID (line 45) | VOID _app_notify_setcontext (
  function BOOLEAN (line 63) | BOOLEAN _app_notify_command (
  function BOOLEAN (line 131) | BOOLEAN _app_notify_addobject (
  function VOID (line 165) | VOID _app_notify_freeobject (
  function _Ret_maybenull_ (line 193) | _Ret_maybenull_
  function _Ret_maybenull_ (line 213) | _Ret_maybenull_
  function ULONG (line 228) | ULONG _app_notify_getapp_id (
  function ULONG (line 242) | ULONG _app_notify_getnextapp_id (
  function VOID (line 279) | VOID _app_notify_setapp_icon (
  function VOID (line 304) | VOID _app_notify_setapp_id (
  function VOID (line 319) | VOID _app_notify_show (
  function VOID (line 439) | VOID _app_notify_playsound ()
  function VOID (line 475) | VOID _app_notify_queueinfo (
  function VOID (line 490) | VOID _app_notify_killprocess (
  function VOID (line 573) | VOID _app_notify_refresh (
  function VOID (line 609) | VOID _app_notify_setposition (
  function VOID (line 687) | VOID _app_notify_settimeout (
  function VOID (line 700) | VOID _app_notify_initialize (
  function VOID (line 812) | VOID _app_notify_destroy (
  function VOID (line 839) | VOID _app_notify_drawgradient (
  function INT_PTR (line 877) | INT_PTR CALLBACK NotificationProc (

FILE: src/notifications.h
  type NOTIFY_CONTEXT (line 6) | typedef struct _NOTIFY_CONTEXT

FILE: src/packages.c
  function BOOLEAN (line 6) | BOOLEAN _app_package_isnotexists (
  function VOID (line 23) | VOID _app_package_parsepath (
  function VOID (line 97) | VOID _app_package_getpackagebyname (
  function VOID (line 183) | VOID _app_package_getpackagebysid (
  function VOID (line 270) | VOID NTAPI _app_package_threadproc (
  function VOID (line 406) | VOID _app_package_getpackageslist (
  function VOID (line 474) | VOID _app_package_getserviceslist (

FILE: src/profile.c
  function _app_getappinfo (line 6) | _Success_ (return)
  function _app_getappinfobyhash (line 168) | _Success_ (return)
  function VOID (line 193) | VOID _app_setappinfo (
  function VOID (line 311) | VOID _app_setappinfobyhash (
  function _app_getruleinfo (line 329) | _Success_ (return)
  function _app_getruleinfobyid (line 378) | _Success_ (return)
  function ULONG (line 402) | ULONG _app_addapplication (
  function PITEM_RULE (line 518) | PITEM_RULE _app_addrule (
  function _Ret_maybenull_ (line 575) | _Ret_maybenull_
  function _Ret_maybenull_ (line 591) | _Ret_maybenull_
  function _Ret_maybenull_ (line 605) | _Ret_maybenull_
  function _Ret_maybenull_ (line 631) | _Ret_maybenull_
  function _Ret_maybenull_ (line 666) | _Ret_maybenull_
  function _Ret_maybenull_ (line 680) | _Ret_maybenull_
  function ULONG (line 695) | ULONG _app_getlogapp (
  function COLORREF (line 716) | COLORREF _app_getappcolor (
  function VOID (line 799) | VOID _app_deleteappitem (
  function VOID (line 819) | VOID _app_freeapplication (
  function VOID (line 847) | VOID _app_getcount (
  function COLORREF (line 906) | COLORREF _app_getrulecolor (
  function VOID (line 936) | VOID _app_setappiteminfo (
  function VOID (line 948) | VOID _app_setruleiteminfo (
  function VOID (line 972) | VOID _app_ruleenable (
  function VOID (line 1011) | VOID _app_ruleremoveapp (
  function BOOLEAN (line 1037) | BOOLEAN _app_ruleblocklistsetchange (
  function BOOLEAN (line 1066) | BOOLEAN _app_ruleblocklistsetstate (
  function VOID (line 1093) | VOID _app_ruleblocklistset (
  function _Ret_maybenull_ (line 1160) | _Ret_maybenull_
  function _Ret_maybenull_ (line 1210) | _Ret_maybenull_
  function _Ret_maybenull_ (line 1296) | _Ret_maybenull_
  function BOOLEAN (line 1337) | BOOLEAN _app_isappfromsystem (
  function BOOLEAN (line 1354) | BOOLEAN _app_isapphavedrive (
  function BOOLEAN (line 1394) | BOOLEAN _app_isapphaverule (
  function BOOLEAN (line 1426) | BOOLEAN _app_isappexists (
  function BOOLEAN (line 1464) | BOOLEAN _app_isappfound (
  function BOOLEAN (line 1477) | BOOLEAN _app_isappunused (
  function BOOLEAN (line 1493) | BOOLEAN _app_isappused (
  function BOOLEAN (line 1506) | BOOLEAN _app_issystemhash (
  function BOOLEAN (line 1513) | BOOLEAN _app_isrulesupportedbyos (
  function VOID (line 1543) | VOID _app_profile_initialize ()
  function NTSTATUS (line 1558) | NTSTATUS _app_profile_load_fromresource (
  function VOID (line 1582) | VOID _app_profile_load_fallback ()
  function VOID (line 1610) | VOID _app_profile_load_internal (
  function VOID (line 1676) | VOID _app_profile_refresh (
  function NTSTATUS (line 1706) | NTSTATUS _app_profile_load (
  function NTSTATUS (line 1787) | NTSTATUS _app_profile_save (

FILE: src/profile.h
  function FORCEINLINE (line 6) | FORCEINLINE BOOLEAN _app_isdisabledremoval (

FILE: src/search.c
  function VOID (line 7) | VOID _app_search_initialize (
  function VOID (line 41) | VOID _app_search_create (
  function VOID (line 69) | VOID _app_search_initializeimages (
  function VOID (line 127) | VOID _app_search_themechanged (
  function VOID (line 145) | VOID _app_search_setvisible (
  function VOID (line 178) | VOID _app_search_drawwindow (
  function VOID (line 205) | VOID _app_search_drawbutton (
  function VOID (line 241) | VOID _app_search_getbuttonrect (
  function BOOLEAN (line 255) | BOOLEAN _app_search_isstringfound (
  function BOOLEAN (line 298) | BOOLEAN _app_search_applyfiltercallback (
  function BOOLEAN (line 330) | BOOLEAN _app_search_applyfilteritem (
  function VOID (line 591) | VOID _app_search_applyfilter (
  function VOID (line 603) | VOID _app_search_createbufferedcontext (
  function VOID (line 621) | VOID _app_search_destroybufferedcontext (
  function LRESULT (line 633) | LRESULT CALLBACK _app_search_subclass_proc (

FILE: src/search.h
  type SEARCH_CONTEXT (line 7) | typedef struct _SEARCH_CONTEXT

FILE: src/security.c
  function _Ret_maybenull_ (line 6) | _Ret_maybenull_
  function VOID (line 30) | VOID _app_generate_credentials ()
  function _Ret_maybenull_ (line 48) | _Ret_maybenull_
  function VOID (line 139) | VOID _app_setexplicitaccess (
  function VOID (line 156) | VOID _app_setenginesecurity (
  function VOID (line 406) | VOID _app_setprovidersecurity (
  function VOID (line 465) | VOID _app_setsublayersecurity (
  function VOID (line 524) | VOID _app_setcalloutsecurity (
  function VOID (line 584) | VOID _app_setfiltersecurity (

FILE: src/timer.c
  function BOOLEAN (line 6) | BOOLEAN _app_istimersactive ()
  function BOOLEAN (line 28) | BOOLEAN _app_istimerset (
  function VOID (line 38) | VOID _app_timer_set (
  function VOID (line 98) | VOID _app_timer_reset (
  function VOID (line 115) | VOID _app_timer_remove (
  function VOID (line 129) | VOID CALLBACK _app_timer_callback (

FILE: src/uwp.cpp
  function BOOLEAN (line 16) | BOOLEAN _app_uwp_loadpackageinfo (
  function BOOLEAN (line 65) | BOOLEAN _app_uwp_getpackageinfo (

FILE: src/wfp.c
  function BOOLEAN (line 6) | BOOLEAN _wfp_isfiltersapplying ()
  function ENUM_INSTALL_TYPE (line 11) | ENUM_INSTALL_TYPE _wfp_isproviderinstalled (
  function ENUM_INSTALL_TYPE (line 42) | ENUM_INSTALL_TYPE _wfp_issublayerinstalled (
  function BOOLEAN (line 69) | BOOLEAN _wfp_isfiltersinstalled ()
  function HANDLE (line 78) | HANDLE _wfp_getenginehandle ()
  function ENUM_INSTALL_TYPE (line 140) | ENUM_INSTALL_TYPE _wfp_getinstalltype ()
  function PR_STRING (line 145) | PR_STRING _wfp_getlayername (
  function BOOLEAN (line 210) | BOOLEAN _wfp_initialize (
  function VOID (line 401) | VOID _wfp_uninitialize (
  function VOID (line 498) | VOID _wfp_installfilters (
  function BOOLEAN (line 623) | BOOLEAN _wfp_transact_start (
  function BOOLEAN (line 646) | BOOLEAN _wfp_transact_commit (
  function BOOLEAN (line 668) | BOOLEAN _wfp_deletefilter (
  function FORCEINLINE (line 693) | FORCEINLINE LPCWSTR _wfp_filtertypetostring (
  function ULONG (line 739) | ULONG _wfp_createcallout (
  function ULONG (line 767) | ULONG _wfp_createfilter (
  function VOID (line 864) | VOID _wfp_clearfilter_ids ()
  function VOID (line 904) | VOID _wfp_destroyfilters (
  function VOID (line 928) | VOID _wfp_destroyfilters_array (
  function BOOLEAN (line 969) | BOOLEAN _wfp_createrulefilter (
  function BOOLEAN (line 1377) | BOOLEAN _wfp_create4filters (
  function BOOLEAN (line 1605) | BOOLEAN _wfp_create3filters (
  function BOOLEAN (line 1724) | BOOLEAN _wfp_create2filters (
  function ULONG (line 2518) | ULONG _wfp_dumpcallouts (
  function ULONG (line 2588) | ULONG _wfp_dumpfilters (
  function VOID (line 2654) | VOID NTAPI _wfp_applythread (
  function VOID (line 2704) | VOID _wfp_firewallenable (
  function BOOLEAN (line 2733) | BOOLEAN _wfp_firewallisenabled ()
  function _FwpmGetAppIdFromFileName1 (line 2769) | _Success_ (NT_SUCCESS (return))
  function VOID (line 2863) | VOID ByteBlobAlloc (
  function VOID (line 2881) | VOID ByteBlobFree (
Condensed preview — 98 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,245K chars).
[
  {
    "path": ".gitattributes",
    "chars": 91,
    "preview": "*.c diff\r\n*.cpp diff\r\n*.h diff\r\n*.rc diff\r\n*.ini diff\r\n*.txt diff\r\n*.xml diff\r\n*.lng diff\r\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 248,
    "preview": "custom: [\"https://www.paypal.me/henrypp\", \"https://yoomoney.ru/to/4100115776040583\", \"https://www.blockchain.com/btc/add"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 1926,
    "preview": "name: Bug report\ntitle: \"[Bug]\"\ndescription: Let me know about crash or existing functionality not working like it shoul"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 28,
    "preview": "blank_issues_enabled: false\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 1672,
    "preview": "name: Feature request\ntitle: \"[Feature]\"\ndescription: Suggest an idea for this project.\nlabels: [ \"feature\" ]\nbody:\n  - "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/question.md",
    "chars": 267,
    "preview": "---\nname: Question\nabout: Ask a question about application.\ntitle: '[Question]'\nlabels: [ \"question\" ]\nassignees: ''\n\n--"
  },
  {
    "path": ".github/workflows/scorecard.yml",
    "chars": 3428,
    "preview": "# This workflow uses actions that are not certified by GitHub. They are provided\n# by a third-party and are governed by "
  },
  {
    "path": ".gitignore",
    "chars": 327,
    "preview": ".vs/\r\n.vscode/\r\ntemp/\r\npackages/\r\nbin/32/\r\nbin/64/\r\nbin/arm64/\r\nx64/\r\nwin32/\r\narm64/\r\n__pycache__\r\n\r\nthumbs.db\r\nehthumbs"
  },
  {
    "path": ".gitmodules",
    "chars": 182,
    "preview": "[submodule \"routine\"]\r\n\tpath = ../routine\r\n\turl = https://github.com/henrypp/routine.git\r\n\r\n[submodule \"builder\"]\r\n\tpath"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 23639,
    "preview": "v3.8.7 (8 August 2025)\r\n- fixed not logical crash (issue #2012)\r\n- fixed context menu performance\r\n- updated locale (iss"
  },
  {
    "path": "CHANGELOGv1.md",
    "chars": 38520,
    "preview": "v2.4.6 (27 March 2019)\r\n- enabled special rules group by default (issue #352)\r\n- fixed removing dropped packet items whe"
  },
  {
    "path": "LICENSE",
    "chars": 35821,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\r\n                       Version 3, 29 June 2007\r\n\r\n Copyright (C) 2007 Fr"
  },
  {
    "path": "README.md",
    "chars": 10881,
    "preview": "<h1 align=\"center\">simplewall</h1>\n\n<p align=\"center\">\n\t<a href=\"https://github.com/henrypp/simplewall/releases\"><img sr"
  },
  {
    "path": "VERSION",
    "chars": 320,
    "preview": "simplewall=3.8.7|https://github.com/henrypp/simplewall/releases/download/v.3.8.7/simplewall-3.8.7-setup.exe;\nlanguage=17"
  },
  {
    "path": "bin/History.txt",
    "chars": 23639,
    "preview": "v3.8.7 (8 August 2025)\r\n- fixed not logical crash (issue #2012)\r\n- fixed context menu performance\r\n- updated locale (iss"
  },
  {
    "path": "bin/License.txt",
    "chars": 35821,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\r\n                       Version 3, 29 June 2007\r\n\r\n Copyright (C) 2007 Fr"
  },
  {
    "path": "bin/Readme.txt",
    "chars": 2590,
    "preview": "simplewall\r\n\r\nDescription:\r\nSimple tool to configure Windows Filtering Platform (WFP) which can configure network activi"
  },
  {
    "path": "bin/profile_internal.xml",
    "chars": 90794,
    "preview": "<?xml version=\"1.0\" ?>\n<!--Internal rules for simplewall-->\n<!--Minimum required version is 3.8-->\n<root timestamp=\"1717"
  },
  {
    "path": "build.bat",
    "chars": 77,
    "preview": "@echo off\r\n\r\ncd ..\\builder\r\ncall build simplewall 3.8.7 simplewall\r\n\r\npause\r\n"
  },
  {
    "path": "build_locale.bat",
    "chars": 67,
    "preview": "@echo off\r\n\r\ncd ..\\builder\r\ncall build_locale simplewall\r\n\r\npause\r\n"
  },
  {
    "path": "build_simplewall_rules.bat",
    "chars": 127,
    "preview": "@echo off\n\ncd ..\\builder\ncall build_simplewall_rules update %~dp0bin\\profile_internal.xml %~dp0bin\\profile_internal.xml\n"
  },
  {
    "path": "build_vc.bat",
    "chars": 848,
    "preview": "@echo off\n@setlocal enableextensions\nrem @cd /d \"%~dp0\\..\\\"\n\nrem VS 2026\n\nif exist \"%ProgramFiles%\\Microsoft Visual Stud"
  },
  {
    "path": "packages.config",
    "chars": 157,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n  <package id=\"Microsoft.Windows.CppWinRT\" version=\"2.0.230706.1\" tar"
  },
  {
    "path": "simplewall.sln",
    "chars": 1429,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 18\nVisualStudioVersion = 18.1.1131"
  },
  {
    "path": "simplewall.vcxproj",
    "chars": 25793,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/m"
  },
  {
    "path": "simplewall.vcxproj.filters",
    "chars": 5663,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "simplewall.vcxproj.user",
    "chars": 1729,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"Current\" xmlns=\"http://schemas.microsoft.com/developer/ms"
  },
  {
    "path": "src/app.h",
    "chars": 311,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\n#define APP_NAME L\"simplewall\"\r\n#define APP_NAME_SH"
  },
  {
    "path": "src/controls.c",
    "chars": 28176,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\nVOID _app_getapptooltipstring (\r\n\t_Inout_ PR"
  },
  {
    "path": "src/controls.h",
    "chars": 1508,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\nEXTERN_C const IID IID_IImageList2;\r\n\r\n_Ret_maybenu"
  },
  {
    "path": "src/db.c",
    "chars": 67488,
    "preview": "// simplewall\n// Copyright (c) 2019-2025 Henry++\n\n#include \"global.h\"\n\n_Success_ (SUCCEEDED (return))\nHRESULT _app_db_in"
  },
  {
    "path": "src/db.h",
    "chars": 4665,
    "preview": "// simplewall\n// Copyright (c) 2019-2025 Henry++\n\n#pragma once\n\n// profile types\ntypedef enum _ENUM_TYPE_XML\n{\n\tXML_TYPE"
  },
  {
    "path": "src/editor.c",
    "chars": 52269,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2025 Henry++\r\n\r\n#include \"global.h\"\r\n\r\n_Ret_maybenull_\r\nPEDITOR_CONTEXT _app_editor"
  },
  {
    "path": "src/editor.h",
    "chars": 1588,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2025 Henry++\r\n\r\n#pragma once\r\n\r\ntypedef struct _EDITOR_CONTEXT\r\n{\r\n\tR_LAYOUT_MANAGE"
  },
  {
    "path": "src/global.h",
    "chars": 3242,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\n#include \"routine.h\"\r\n\r\n#include <winsock2.h>\r\n#inc"
  },
  {
    "path": "src/helper.c",
    "chars": 52188,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\nVOID NTAPI _app_dereferenceapp (\r\n\t_In_ PVOI"
  },
  {
    "path": "src/helper.h",
    "chars": 4798,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\ntypedef struct _ICON_INFORMATION\r\n{\r\n\tHICON app_hic"
  },
  {
    "path": "src/icons.c",
    "chars": 4542,
    "preview": "// simplewall\n// Copyright (c) 2016-2025 Henry++\n\n#include \"global.h\"\n\nPICON_INFORMATION _app_icons_getdefault ()\n{\n\tsta"
  },
  {
    "path": "src/icons.h",
    "chars": 736,
    "preview": "// simplewall\n// Copyright (c) 2016-2025 Henry++\n\n#pragma once\n\nPICON_INFORMATION _app_icons_getdefault ();\n\n_Ret_mayben"
  },
  {
    "path": "src/listview.c",
    "chars": 24211,
    "preview": "// simplewall\n// Copyright (c) 2016-2025 Henry++\n\n#include \"global.h\"\n\n_Ret_maybenull_\nPITEM_TAB_CONTEXT _app_listview_g"
  },
  {
    "path": "src/listview.h",
    "chars": 3388,
    "preview": "// simplewall\n// Copyright (c) 2016-2025 Henry++\n\n#pragma once\n\ntypedef struct _ITEM_LISTVIEW_CONTEXT\n{\n\tULONG_PTR id_co"
  },
  {
    "path": "src/log.c",
    "chars": 42584,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\nVOID _app_loginit (\r\n\t_In_ BOOLEAN is_instal"
  },
  {
    "path": "src/log.h",
    "chars": 2699,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\n// FwpmNetEventSubscribe4 (win10rs5+)\r\ntypedef ULON"
  },
  {
    "path": "src/main.c",
    "chars": 97789,
    "preview": "// simplewall\n// Copyright (c) 2016-2026 Henry++\n\n#include \"global.h\"\n\nBOOLEAN _app_changefilters (\n\t_In_ HWND hwnd,\n\t_I"
  },
  {
    "path": "src/main.h",
    "chars": 11623,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\n#include \"routine.h\"\r\n\r\n#include \"resource.h\"\r\n#inc"
  },
  {
    "path": "src/messages.c",
    "chars": 88452,
    "preview": "// simplewall\r\n// Copyright (c) 2021-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\nVOID _app_message_initialize (\r\n\t_In_ HWND h"
  },
  {
    "path": "src/messages.h",
    "chars": 1831,
    "preview": "// simplewall\r\n// Copyright (c) 2021-2026 Henry++\r\n\r\n#pragma once\r\n\r\nVOID _app_message_initialize (\r\n\t_In_ HWND hwnd\r\n);"
  },
  {
    "path": "src/network.c",
    "chars": 21602,
    "preview": "// simplewall\n// Copyright (c) 2019-2025 Henry++\n\n#include \"global.h\"\n\n_Ret_maybenull_\nPITEM_NETWORK_CONTEXT _app_networ"
  },
  {
    "path": "src/network.h",
    "chars": 1421,
    "preview": "// simplewall\n// Copyright (c) 2019-2025 Henry++\n\n#pragma once\n\ntypedef struct _ITEM_NETWORK_CONTEXT\n{\n\tHWND hwnd;\n\n\tR_Q"
  },
  {
    "path": "src/notifications.c",
    "chars": 39301,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\n_Ret_maybenull_\r\nHWND _app_notify_getwindow "
  },
  {
    "path": "src/notifications.h",
    "chars": 2048,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\ntypedef struct _NOTIFY_CONTEXT\r\n{\r\n\tHWND hwnd;\r\n\r\n\t"
  },
  {
    "path": "src/packages.c",
    "chars": 15940,
    "preview": "// simplewall\n// Copyright (c) 2016-2025 Henry++\n\n#include \"global.h\"\n\nBOOLEAN _app_package_isnotexists (\n\t_In_ PR_STRIN"
  },
  {
    "path": "src/packages.h",
    "chars": 591,
    "preview": "// simplewall\n// Copyright (c) 2016-2025 Henry++\n\n#pragma once\n\nBOOLEAN _app_package_isnotexists (\n\t_In_ PR_STRING packa"
  },
  {
    "path": "src/profile.c",
    "chars": 40309,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\n_Success_ (return)\r\nBOOLEAN _app_getappinfo "
  },
  {
    "path": "src/profile.h",
    "chars": 5355,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\nFORCEINLINE BOOLEAN _app_isdisabledremoval (\r\n\t_In_"
  },
  {
    "path": "src/res/manifest.xml",
    "chars": 1975,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVers"
  },
  {
    "path": "src/resource.h",
    "chars": 17826,
    "preview": "#ifndef __RESOURCE_H__\r\n#define __RESOURCE_H__\r\n\r\n#ifndef IDC_STATIC\r\n#define IDC_STATIC (-1)\r\n#endif\r\n\r\n// Acceleration"
  },
  {
    "path": "src/resource.rc",
    "chars": 33188,
    "preview": "#include <windows.h>\r\n#include <commctrl.h>\r\n#include <richedit.h>\r\n\r\n#include \"resource.h\"\r\n#include \"rconfig.h\"\r\n#incl"
  },
  {
    "path": "src/search.c",
    "chars": 22981,
    "preview": "// simplewall\r\n// Copyright (c) 2012-2021 dmex\r\n// Copyright (c) 2021-2025 Henry++\r\n\r\n#include \"global.h\"\r\n\r\nVOID _app_s"
  },
  {
    "path": "src/search.h",
    "chars": 1881,
    "preview": "// simplewall\r\n// Copyright (c) 2012-2021 dmex\r\n// Copyright (c) 2021-2025 Henry++\r\n\r\n#pragma once\r\n\r\ntypedef struct _SE"
  },
  {
    "path": "src/security.c",
    "chars": 16328,
    "preview": "// simplewall\r\n// Copyright (c) 2020-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\n_Ret_maybenull_\r\nPSID _app_quyerybuiltinsid "
  },
  {
    "path": "src/security.h",
    "chars": 1020,
    "preview": "// simplewall\r\n// Copyright (c) 2020-2026 Henry++\r\n\r\n#pragma once\r\n\r\n_Ret_maybenull_\r\nPSID _app_quyerybuiltinsid (\r\n\t_In"
  },
  {
    "path": "src/timer.c",
    "chars": 3784,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2024 Henry++\r\n\r\n#include \"global.h\"\r\n\r\nBOOLEAN _app_istimersactive ()\r\n{\r\n\tPITEM_AP"
  },
  {
    "path": "src/timer.h",
    "chars": 543,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2024 Henry++\r\n\r\n#pragma once\r\n\r\nBOOLEAN _app_istimersactive ();\r\n\r\nBOOLEAN _app_ist"
  },
  {
    "path": "src/uwp.cpp",
    "chars": 1998,
    "preview": "// simplewall\n// Copyright (c) 2022-2024 Henry++\n\n#include \"routine.h\"\n\n#include <winrt/windows.foundation.h>\n#include <"
  },
  {
    "path": "src/uwp.h",
    "chars": 433,
    "preview": "// simplewall\n// Copyright (c) 2022-2024 Henry++\n\n#pragma once\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n_Success_ (retur"
  },
  {
    "path": "src/wfp.c",
    "chars": 67200,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#include \"global.h\"\r\n\r\nBOOLEAN _wfp_isfiltersapplying ()\r\n{\r\n\tretur"
  },
  {
    "path": "src/wfp.h",
    "chars": 4233,
    "preview": "// simplewall\r\n// Copyright (c) 2016-2026 Henry++\r\n\r\n#pragma once\r\n\r\n// guids\r\nDEFINE_GUID (GUID_WfpProvider, 0xB0D553E2"
  }
]

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

About this extraction

This page contains the full source code of the henrypp/simplewall GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 98 files (1.0 MB), approximately 330.9k tokens, and a symbol index with 388 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!