Implementation of the SOAP server - server.php:
<?php
// turn off WSDL caching
ini_set("soap.wsdl_cache_enabled","0");
// model, which uses in web service functions as parameter| "Aalborg,Denmark,AAL" "Aarhus,Denmark,AAR" "Aasiaat,Greenland,JEG" "Abadan,Iran,ABD" "Abaiang Atoll Airport,Kiribati,ABF" "Abakan,Russia,ABA" "Abbotsford,Canada,YXX" "Abdul Rachman Saleh,Indonesia,MLG" "Abeche,Chad,AEH" "Abel Santamaria,Cuba,SNU" "Abemama Atoll Airport,Kiribati,AEA" "Aberdeen Regional Airport,United States,ABR" "Abha,Saudi Arabia,AHB" "Abidjan Felix Houphouet Boigny Intl,Cote d'Ivoire,ABJ" "Abilene Rgnl,United States,ABI" "Abraham Gonzalez Intl,Mexico,CJS" "Abraham Lincoln Capital,United States,SPI" "Abu Dhabi Intl,United Arab Emirates,AUH" "Abu Simbel,Egypt,ABS" "Acadiana Rgnl,United States,ARA" "Achmad Yani,Indonesia,SRG" "Achutupo Airport,Panama,ACU" "Adak Airport,United States,ADK" "Adams Fld,United States,LIT" "Adana,Turkey,ADA" "Adana-Incirlik Airbase,Turkey,UAB" "Addison,United States,ADS" "Adelaide Intl,Australia,ADL" "Aden Adde International Airport,Somalia,MGQ" "Aden Intl,Yemen,ADE" "Adi Sumarmo Wiryokusumo,Indonesia,SOC" "Adi Sutjipto,Indonesia,JOG" "Adirondack Regional Airport,Uni | 
| @echo off | |
| setlocal | |
| call :setESC | |
| cls | |
| echo %ESC%[101;93m STYLES %ESC%[0m | |
| echo ^<ESC^>[0m %ESC%[0mReset%ESC%[0m | |
| echo ^<ESC^>[1m %ESC%[1mBold%ESC%[0m | |
| echo ^<ESC^>[4m %ESC%[4mUnderline%ESC%[0m | 
| ### | |
| ### | |
| ### UPDATE: For Win 11, I recommend using this tool in place of this script: | |
| ### https://christitus.com/windows-tool/ | |
| ### https://github.com/ChrisTitusTech/winutil | |
| ### https://www.youtube.com/watch?v=6UQZ5oQg8XA | |
| ### iwr -useb https://christitus.com/win | iex | |
| ### | |
| ### OR take a look at | |
| ### https://github.com/HotCakeX/Harden-Windows-Security | 
| using System; | |
| using System.Drawing; | |
| using System.IO; | |
| using System.Net.Http; | |
| using System.Text; | |
| using System.Threading; | |
| using System.Threading.Tasks; | |
| namespace SimpleMJPEGStreamViewer { | |
| static class SimpleMJPEGDecoder { | 
| using UnityEngine; | |
| using System; | |
| using System.Collections; | |
| using System.Collections.Generic; | |
| using System.IO; | |
| using System.Threading; | |
| class BitmapEncoder | |
| { | |
| public static void WriteBitmap(Stream stream, int width, int height, byte[] imageData) | 
| // this is the background code... | |
| // listen for our browerAction to be clicked | |
| chrome.browserAction.onClicked.addListener(function (tab) { | |
| // for the current tab, inject the "inject.js" file & execute it | |
| chrome.tabs.executeScript(tab.ib, { | |
| file: 'inject.js' | |
| }); | |
| }); | 
| # This hosts file is brought to you by Dan Pollock and can be found at | |
| # http://someonewhocares.org/hosts/ | |
| # You are free to copy and distribute this file for non-commercial uses, | |
| # as long the original URL and attribution is included. | |
| #<localhost> | |
| 127.0.0.1 localhost | |
| 127.0.0.1 localhost.localdomain | |
| 255.255.255.255 broadcasthost | |
| ::1 localhost | 
| <?php | |
| $certificateCAcer = '/certificate.cer'; | |
| $certificateCAcerContent = file_get_contents($certificateCAcer); | |
| /* Convert .cer to .pem, cURL uses .pem */ | |
| $certificateCApemContent = '-----BEGIN CERTIFICATE-----'.PHP_EOL | |
| .chunk_split(base64_encode($certificateCAcerContent), 64, PHP_EOL) | |
| .'-----END CERTIFICATE-----'.PHP_EOL; | 
| <!doctype html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>App Redirection</title> | |
| </head> | |
| <body> | |
| <!-- | |
| NOTE: This was a great hack in days gone by, but now both Apple and Google have improved their support for custom | |
| protocol handlers. |