From 936811ff5c0774ac1e087bdf3d09f5444f0d9eab Mon Sep 17 00:00:00 2001 From: Wind4 Date: Mon, 24 Oct 2016 21:32:24 +0800 Subject: [PATCH] vlmcsd-svn1085-2016-10-21-Hotbird64 --- GNUmakefile | 3 + VisualStudio/vlmcs/vlmcs.vcxproj | 1 + VisualStudio/vlmcsd.sln | 4 +- etc/vlmcsd.ini | 8 + floppy/floppy144.vfd | Bin 1474560 -> 1474560 bytes hotbird64-mass-build/make_dragonfly | 2 +- man/vlmcs.1 | 4 +- man/vlmcs.1.dos.txt | 4 +- man/vlmcs.1.html | 10 +- man/vlmcs.1.pdf | Bin 26351 -> 26377 bytes man/vlmcs.1.unix.txt | 4 +- man/vlmcsd-floppy.7.html | 23 +- man/vlmcsd-floppy.7.pdf | Bin 35003 -> 35005 bytes man/vlmcsd.7.html | 63 +- man/vlmcsd.7.pdf | Bin 17301 -> 17301 bytes man/vlmcsd.8 | 23 +- man/vlmcsd.8.dos.txt | 37 +- man/vlmcsd.8.html | 66 +- man/vlmcsd.8.pdf | Bin 39652 -> 40985 bytes man/vlmcsd.8.unix.txt | 37 +- man/vlmcsd.ini.5 | 21 +- man/vlmcsd.ini.5.dos.txt | 109 ++- man/vlmcsd.ini.5.html | 59 +- man/vlmcsd.ini.5.pdf | Bin 20918 -> 22074 bytes man/vlmcsd.ini.5.unix.txt | 109 ++- man/vlmcsdmulti.1.html | 6 +- man/vlmcsdmulti.1.pdf | Bin 10042 -> 10042 bytes src/GNUmakefile | 6 +- .../usr/include/_G_config.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/aio.h | 0 .../usr/include/aliases.h | 0 .../usr/include/alloca.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/ar.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/argp.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/argz.h | 0 .../usr/include/arpa/ftp.h | 0 .../usr/include/arpa/inet.h | 0 .../usr/include/arpa/nameser.h | 0 .../usr/include/arpa/nameser_compat.h | 0 .../usr/include/arpa/telnet.h | 0 .../usr/include/arpa/tftp.h | 0 .../usr/include/asm-generic/auxvec.h | 0 .../usr/include/asm-generic/bitsperlong.h | 0 .../usr/include/asm-generic/errno-base.h | 0 .../usr/include/asm-generic/errno.h | 0 .../usr/include/asm-generic/fcntl.h | 0 .../usr/include/asm-generic/int-l64.h | 0 .../usr/include/asm-generic/int-ll64.h | 0 .../usr/include/asm-generic/ioctl.h | 0 .../usr/include/asm-generic/ioctls.h | 0 .../usr/include/asm-generic/ipcbuf.h | 0 .../usr/include/asm-generic/kvm_para.h | 0 .../usr/include/asm-generic/mman-common.h | 0 .../usr/include/asm-generic/mman.h | 0 .../usr/include/asm-generic/msgbuf.h | 0 .../usr/include/asm-generic/param.h | 0 .../usr/include/asm-generic/poll.h | 0 .../usr/include/asm-generic/posix_types.h | 0 .../usr/include/asm-generic/resource.h | 0 .../usr/include/asm-generic/sembuf.h | 0 .../usr/include/asm-generic/setup.h | 0 .../usr/include/asm-generic/shmbuf.h | 0 .../usr/include/asm-generic/shmparam.h | 0 .../usr/include/asm-generic/siginfo.h | 0 .../usr/include/asm-generic/signal-defs.h | 0 .../usr/include/asm-generic/signal.h | 0 .../usr/include/asm-generic/socket.h | 0 .../usr/include/asm-generic/sockios.h | 0 .../usr/include/asm-generic/stat.h | 0 .../usr/include/asm-generic/statfs.h | 0 .../usr/include/asm-generic/swab.h | 0 .../usr/include/asm-generic/termbits.h | 0 .../usr/include/asm-generic/termios.h | 0 .../usr/include/asm-generic/types.h | 0 .../usr/include/asm-generic/ucontext.h | 0 .../usr/include/asm-generic/unistd.h | 0 .../usr/include/asm/a.out.h | 0 .../usr/include/asm/auxvec.h | 0 .../usr/include/asm/bitsperlong.h | 0 .../usr/include/asm/boot.h | 0 .../usr/include/asm/bootparam.h | 0 .../usr/include/asm/byteorder.h | 0 .../usr/include/asm/debugreg.h | 0 .../usr/include/asm/e820.h | 0 .../usr/include/asm/errno.h | 0 .../usr/include/asm/fcntl.h | 0 .../usr/include/asm/hw_breakpoint.h | 0 .../usr/include/asm/hyperv.h | 0 .../usr/include/asm/ioctl.h | 0 .../usr/include/asm/ioctls.h | 0 .../usr/include/asm/ipcbuf.h | 0 .../usr/include/asm/ist.h | 0 .../usr/include/asm/kvm.h | 0 .../usr/include/asm/kvm_para.h | 0 .../usr/include/asm/kvm_perf.h | 0 .../usr/include/asm/ldt.h | 0 .../usr/include/asm/mce.h | 0 .../usr/include/asm/mman.h | 0 .../usr/include/asm/msgbuf.h | 0 .../usr/include/asm/msr-index.h | 0 .../usr/include/asm/msr.h | 0 .../usr/include/asm/mtrr.h | 0 .../usr/include/asm/param.h | 0 .../usr/include/asm/perf_regs.h | 0 .../usr/include/asm/poll.h | 0 .../usr/include/asm/posix_types.h | 0 .../usr/include/asm/posix_types_32.h | 0 .../usr/include/asm/posix_types_64.h | 0 .../usr/include/asm/posix_types_x32.h | 0 .../usr/include/asm/prctl.h | 0 .../usr/include/asm/processor-flags.h | 0 .../usr/include/asm/ptrace-abi.h | 0 .../usr/include/asm/ptrace.h | 0 .../usr/include/asm/resource.h | 0 .../usr/include/asm/sembuf.h | 0 .../usr/include/asm/setup.h | 0 .../usr/include/asm/shmbuf.h | 0 .../usr/include/asm/sigcontext.h | 0 .../usr/include/asm/sigcontext32.h | 0 .../usr/include/asm/siginfo.h | 0 .../usr/include/asm/signal.h | 0 .../usr/include/asm/socket.h | 0 .../usr/include/asm/sockios.h | 0 .../usr/include/asm/stat.h | 0 .../usr/include/asm/statfs.h | 0 .../usr/include/asm/svm.h | 0 .../usr/include/asm/swab.h | 0 .../usr/include/asm/termbits.h | 0 .../usr/include/asm/termios.h | 0 .../usr/include/asm/types.h | 0 .../usr/include/asm/ucontext.h | 0 .../usr/include/asm/unistd.h | 0 .../usr/include/asm/unistd_32.h | 0 .../usr/include/asm/unistd_64.h | 0 .../usr/include/asm/unistd_x32.h | 0 .../usr/include/asm/vm86.h | 0 .../usr/include/asm/vmx.h | 0 .../usr/include/asm/vsyscall.h | 0 .../usr/include/assert.h | 0 .../usr/include/bits/a.out.h | 0 .../usr/include/bits/auxv.h | 0 .../usr/include/bits/byteswap-16.h | 0 .../usr/include/bits/byteswap.h | 0 .../usr/include/bits/cmathcalls.h | 0 .../usr/include/bits/confname.h | 0 .../usr/include/bits/dirent.h | 0 .../usr/include/bits/dlfcn.h | 0 .../usr/include/bits/elfclass.h | 0 .../usr/include/bits/endian.h | 0 .../usr/include/bits/environments.h | 0 .../usr/include/bits/epoll.h | 0 .../usr/include/bits/errno.h | 0 .../usr/include/bits/error.h | 0 .../usr/include/bits/eventfd.h | 0 .../usr/include/bits/fcntl-linux.h | 0 .../usr/include/bits/fcntl.h | 0 .../usr/include/bits/fcntl2.h | 0 .../usr/include/bits/fenv.h | 0 .../usr/include/bits/fenvinline.h | 0 .../usr/include/bits/huge_val.h | 0 .../usr/include/bits/huge_valf.h | 0 .../usr/include/bits/huge_vall.h | 0 .../usr/include/bits/hwcap.h | 0 .../usr/include/bits/in.h | 0 .../usr/include/bits/inf.h | 0 .../usr/include/bits/initspin.h | 0 .../usr/include/bits/inotify.h | 0 .../usr/include/bits/ioctl-types.h | 0 .../usr/include/bits/ioctls.h | 0 .../usr/include/bits/ipc.h | 0 .../usr/include/bits/ipctypes.h | 0 .../usr/include/bits/libio-ldbl.h | 0 .../usr/include/bits/libm-simd-decl-stubs.h | 0 .../usr/include/bits/link.h | 0 .../usr/include/bits/local_lim.h | 0 .../usr/include/bits/locale.h | 0 .../usr/include/bits/math-finite.h | 0 .../usr/include/bits/math-vector.h | 0 .../usr/include/bits/mathcalls.h | 0 .../usr/include/bits/mathdef.h | 0 .../usr/include/bits/mathinline.h | 0 .../usr/include/bits/mman-linux.h | 0 .../usr/include/bits/mman.h | 0 .../usr/include/bits/monetary-ldbl.h | 0 .../usr/include/bits/mqueue.h | 0 .../usr/include/bits/mqueue2.h | 0 .../usr/include/bits/msq.h | 0 .../usr/include/bits/nan.h | 0 .../usr/include/bits/netdb.h | 0 .../usr/include/bits/param.h | 0 .../usr/include/bits/poll.h | 0 .../usr/include/bits/poll2.h | 0 .../usr/include/bits/posix1_lim.h | 0 .../usr/include/bits/posix2_lim.h | 0 .../usr/include/bits/posix_opt.h | 0 .../usr/include/bits/printf-ldbl.h | 0 .../usr/include/bits/pthreadtypes.h | 0 .../usr/include/bits/resource.h | 0 .../usr/include/bits/sched.h | 0 .../usr/include/bits/select.h | 0 .../usr/include/bits/select2.h | 0 .../usr/include/bits/sem.h | 0 .../usr/include/bits/semaphore.h | 0 .../usr/include/bits/setjmp.h | 0 .../usr/include/bits/setjmp2.h | 0 .../usr/include/bits/shm.h | 0 .../usr/include/bits/sigaction.h | 0 .../usr/include/bits/sigcontext.h | 0 .../usr/include/bits/siginfo.h | 0 .../usr/include/bits/signalfd.h | 0 .../usr/include/bits/signum.h | 0 .../usr/include/bits/sigset.h | 0 .../usr/include/bits/sigstack.h | 0 .../usr/include/bits/sigthread.h | 0 .../usr/include/bits/sockaddr.h | 0 .../usr/include/bits/socket.h | 0 .../usr/include/bits/socket2.h | 0 .../usr/include/bits/socket_type.h | 0 .../usr/include/bits/stab.def | 0 .../usr/include/bits/stat.h | 0 .../usr/include/bits/statfs.h | 0 .../usr/include/bits/statvfs.h | 0 .../usr/include/bits/stdio-ldbl.h | 0 .../usr/include/bits/stdio.h | 0 .../usr/include/bits/stdio2.h | 0 .../usr/include/bits/stdio_lim.h | 0 .../usr/include/bits/stdlib-bsearch.h | 0 .../usr/include/bits/stdlib-float.h | 0 .../usr/include/bits/stdlib-ldbl.h | 0 .../usr/include/bits/stdlib.h | 0 .../usr/include/bits/string.h | 0 .../usr/include/bits/string2.h | 0 .../usr/include/bits/string3.h | 0 .../usr/include/bits/stropts.h | 0 .../usr/include/bits/sys_errlist.h | 0 .../usr/include/bits/syscall.h | 0 .../usr/include/bits/sysctl.h | 0 .../usr/include/bits/syslog-ldbl.h | 0 .../usr/include/bits/syslog-path.h | 0 .../usr/include/bits/syslog.h | 0 .../usr/include/bits/termios.h | 0 .../usr/include/bits/time.h | 0 .../usr/include/bits/timerfd.h | 0 .../usr/include/bits/timex.h | 0 .../usr/include/bits/types.h | 0 .../usr/include/bits/typesizes.h | 0 .../usr/include/bits/uio.h | 0 .../usr/include/bits/unistd.h | 0 .../usr/include/bits/ustat.h | 0 .../usr/include/bits/utmp.h | 0 .../usr/include/bits/utmpx.h | 0 .../usr/include/bits/utsname.h | 0 .../usr/include/bits/waitflags.h | 0 .../usr/include/bits/waitstatus.h | 0 .../usr/include/bits/wchar-ldbl.h | 0 .../usr/include/bits/wchar.h | 0 .../usr/include/bits/wchar2.h | 0 .../usr/include/bits/wordsize.h | 0 .../usr/include/bits/xopen_lim.h | 0 .../usr/include/bits/xtitypes.h | 0 .../usr/include/byteswap.h | 0 .../usr/include/complex.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/cpio.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/crypt.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/ctype.h | 0 .../usr/include/dirent.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/dlfcn.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/elf.h | 0 .../usr/include/endian.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/envz.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/err.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/errno.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/error.h | 0 .../usr/include/execinfo.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/fcntl.h | 0 .../usr/include/features.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/fenv.h | 0 .../usr/include/fmtmsg.h | 0 .../usr/include/fnmatch.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/fstab.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/fts.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/ftw.h | 0 .../usr/include/gawkapi.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/gconv.h | 0 .../usr/include/getopt.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/glob.h | 0 .../usr/include/gnu-versions.h | 0 .../usr/include/gnumake.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/grp.h | 0 .../usr/include/gshadow.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/iconv.h | 0 .../usr/include/ifaddrs.h | 0 .../usr/include/inttypes.h | 0 .../usr/include/langinfo.h | 0 .../usr/include/lastlog.h | 0 .../usr/include/libgen.h | 0 .../usr/include/libintl.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/libio.h | 0 .../usr/include/limits.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/link.h | 0 .../usr/include/locale.h | 0 .../usr/include/malloc.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/math.h | 0 .../usr/include/mcheck.h | 0 .../usr/include/memory.h | 0 .../usr/include/misc/cxl.h | 0 .../usr/include/mntent.h | 0 .../usr/include/monetary.h | 0 .../usr/include/mqueue.h | 0 .../usr/include/net/ethernet.h | 0 .../usr/include/net/if.h | 0 .../usr/include/net/if_arp.h | 0 .../usr/include/net/if_packet.h | 0 .../usr/include/net/if_ppp.h | 0 .../usr/include/net/if_shaper.h | 0 .../usr/include/net/if_slip.h | 0 .../usr/include/net/ppp-comp.h | 0 .../usr/include/net/ppp_defs.h | 0 .../usr/include/net/route.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/netdb.h | 0 .../usr/include/netinet/ether.h | 0 .../usr/include/netinet/icmp6.h | 0 .../usr/include/netinet/if_ether.h | 0 .../usr/include/netinet/if_fddi.h | 0 .../usr/include/netinet/if_tr.h | 0 .../usr/include/netinet/igmp.h | 0 .../usr/include/netinet/in.h | 0 .../usr/include/netinet/in_systm.h | 0 .../usr/include/netinet/ip.h | 0 .../usr/include/netinet/ip6.h | 0 .../usr/include/netinet/ip_icmp.h | 0 .../usr/include/netinet/tcp.h | 0 .../usr/include/netinet/udp.h | 0 .../usr/include/nl_types.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/nss.h | 0 .../usr/include/obstack.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/paths.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/poll.h | 0 .../usr/include/printf.h | 0 .../usr/include/protocols/routed.h | 0 .../usr/include/protocols/rwhod.h | 0 .../usr/include/protocols/talkd.h | 0 .../usr/include/protocols/timed.h | 0 .../usr/include/pthread.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/pty.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/pwd.h | 0 .../usr/include/re_comp.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/regex.h | 0 .../usr/include/regexp.h | 0 .../usr/include/resolv.h | 0 .../usr/include/rpc/auth.h | 0 .../usr/include/rpc/auth_des.h | 0 .../usr/include/rpc/auth_unix.h | 0 .../usr/include/rpc/clnt.h | 0 .../usr/include/rpc/des_crypt.h | 0 .../usr/include/rpc/key_prot.h | 0 .../usr/include/rpc/netdb.h | 0 .../usr/include/rpc/pmap_clnt.h | 0 .../usr/include/rpc/pmap_prot.h | 0 .../usr/include/rpc/pmap_rmt.h | 0 .../usr/include/rpc/rpc.h | 0 .../usr/include/rpc/rpc_des.h | 0 .../usr/include/rpc/rpc_msg.h | 0 .../usr/include/rpc/svc.h | 0 .../usr/include/rpc/svc_auth.h | 0 .../usr/include/rpc/types.h | 0 .../usr/include/rpc/xdr.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/sched.h | 0 .../usr/include/search.h | 0 .../usr/include/semaphore.h | 0 .../usr/include/setjmp.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/sgtty.h | 0 .../usr/include/shadow.h | 0 .../usr/include/signal.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/spawn.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/stab.h | 0 .../usr/include/stdc-predef.h | 0 .../usr/include/stdint.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/stdio.h | 0 .../usr/include/stdio_ext.h | 0 .../usr/include/stdlib.h | 0 .../usr/include/string.h | 0 .../usr/include/strings.h | 0 .../usr/include/stropts.h | 0 .../usr/include/sudo_plugin.h | 0 .../usr/include/sys/acct.h | 0 .../usr/include/sys/acl.h | 0 .../usr/include/sys/asoundlib.h | 0 .../usr/include/sys/auxv.h | 0 .../usr/include/sys/bitypes.h | 0 .../usr/include/sys/capability.h | 0 .../usr/include/sys/cdefs.h | 0 .../usr/include/sys/debugreg.h | 0 .../usr/include/sys/dir.h | 0 .../usr/include/sys/elf.h | 0 .../usr/include/sys/epoll.h | 0 .../usr/include/sys/errno.h | 0 .../usr/include/sys/eventfd.h | 0 .../usr/include/sys/fanotify.h | 0 .../usr/include/sys/fcntl.h | 0 .../usr/include/sys/file.h | 0 .../usr/include/sys/fsuid.h | 0 .../usr/include/sys/gmon.h | 0 .../usr/include/sys/gmon_out.h | 0 .../usr/include/sys/inotify.h | 0 .../usr/include/sys/io.h | 0 .../usr/include/sys/ioctl.h | 0 .../usr/include/sys/ipc.h | 0 .../usr/include/sys/kd.h | 0 .../usr/include/sys/klog.h | 0 .../usr/include/sys/mman.h | 0 .../usr/include/sys/mount.h | 0 .../usr/include/sys/msg.h | 0 .../usr/include/sys/mtio.h | 0 .../usr/include/sys/param.h | 0 .../usr/include/sys/pci.h | 0 .../usr/include/sys/perm.h | 0 .../usr/include/sys/personality.h | 0 .../usr/include/sys/poll.h | 0 .../usr/include/sys/prctl.h | 0 .../usr/include/sys/procfs.h | 0 .../usr/include/sys/profil.h | 0 .../usr/include/sys/ptrace.h | 0 .../usr/include/sys/queue.h | 0 .../usr/include/sys/quota.h | 0 .../usr/include/sys/raw.h | 0 .../usr/include/sys/reboot.h | 0 .../usr/include/sys/reg.h | 0 .../usr/include/sys/resource.h | 0 .../usr/include/sys/select.h | 0 .../usr/include/sys/sem.h | 0 .../usr/include/sys/sendfile.h | 0 .../usr/include/sys/shm.h | 0 .../usr/include/sys/signal.h | 0 .../usr/include/sys/signalfd.h | 0 .../usr/include/sys/socket.h | 0 .../usr/include/sys/socketvar.h | 0 .../usr/include/sys/soundcard.h | 0 .../usr/include/sys/stat.h | 0 .../usr/include/sys/statfs.h | 0 .../usr/include/sys/statvfs.h | 0 .../usr/include/sys/stropts.h | 0 .../usr/include/sys/swap.h | 0 .../usr/include/sys/syscall.h | 0 .../usr/include/sys/sysctl.h | 0 .../usr/include/sys/sysinfo.h | 0 .../usr/include/sys/syslog.h | 0 .../usr/include/sys/sysmacros.h | 0 .../usr/include/sys/termios.h | 0 .../usr/include/sys/time.h | 0 .../usr/include/sys/timeb.h | 0 .../usr/include/sys/timerfd.h | 0 .../usr/include/sys/times.h | 0 .../usr/include/sys/timex.h | 0 .../usr/include/sys/ttychars.h | 0 .../usr/include/sys/ttydefaults.h | 0 .../usr/include/sys/types.h | 0 .../usr/include/sys/ucontext.h | 0 .../usr/include/sys/uio.h | 0 .../usr/include/sys/ultrasound.h | 0 .../usr/include/sys/un.h | 0 .../usr/include/sys/unistd.h | 0 .../usr/include/sys/user.h | 0 .../usr/include/sys/ustat.h | 0 .../usr/include/sys/utsname.h | 0 .../usr/include/sys/vfs.h | 0 .../usr/include/sys/vlimit.h | 0 .../usr/include/sys/vm86.h | 0 .../usr/include/sys/vt.h | 0 .../usr/include/sys/vtimes.h | 0 .../usr/include/sys/wait.h | 0 .../usr/include/sys/xattr.h | 0 .../usr/include/syscall.h | 0 .../usr/include/sysexits.h | 0 .../usr/include/syslog.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/tar.h | 0 .../usr/include/termio.h | 0 .../usr/include/termios.h | 0 .../usr/include/tgmath.h | 0 .../usr/include/thread_db.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/time.h | 0 .../usr/include/ttyent.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/uchar.h | 0 .../usr/include/ucontext.h | 0 .../usr/include/ulimit.h | 0 .../usr/include/unistd.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/ustat.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/utime.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/utmp.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/utmpx.h | 0 .../usr/include/values.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/wait.h | 0 .../gcc5-x86_64-linux-gnu/usr/include/wchar.h | 0 .../usr/include/wctype.h | 0 .../usr/include/wordexp.h | 0 .../usr/include/xlocale.h | 0 src/config.h | 35 +- src/helpers.c | 185 ++-- src/helpers.h | 1 + src/kms.c | 809 ++++++++++-------- src/kms.h | 7 +- src/libkms.c | 29 +- src/libkms.h | 2 +- src/msrpc-client.c | 3 +- src/msrpc-client.h | 3 +- src/network.c | 332 +++---- src/output.c | 22 +- src/rpc.c | 62 +- src/rpc.h | 3 +- src/shared_globals.c | 15 +- src/shared_globals.h | 23 +- src/types.h | 65 +- .../vlmcs-linux-remote.vcxproj | 86 +- .../vlmcs-linux-remote.vcxproj.filters | 62 +- src/vlmcs.c | 87 +- .../vlmcsd-linux-remote.vcxproj | 76 +- .../vlmcsd-linux-remote.vcxproj.filters | 52 +- src/vlmcsd.c | 169 ++-- src/vlmcsd.h | 2 + src/vlmcsdmulti.c | 2 +- 520 files changed, 1646 insertions(+), 1085 deletions(-) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/_G_config.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/aio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/aliases.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/alloca.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ar.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/argp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/argz.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/ftp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/inet.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser_compat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/telnet.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/tftp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/auxvec.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/bitsperlong.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno-base.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/fcntl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-l64.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-ll64.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctls.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ipcbuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/kvm_para.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman-common.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/msgbuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/param.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/poll.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/posix_types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/resource.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sembuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/setup.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmbuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmparam.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/siginfo.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal-defs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/socket.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sockios.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/stat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/statfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/swab.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termbits.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termios.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ucontext.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/unistd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/a.out.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/auxvec.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bitsperlong.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/boot.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bootparam.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/byteorder.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/debugreg.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/e820.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/errno.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/fcntl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hw_breakpoint.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hyperv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctls.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ipcbuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ist.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_para.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_perf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ldt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mce.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mman.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msgbuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr-index.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mtrr.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/param.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/perf_regs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/poll.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_32.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_64.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_x32.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/prctl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/processor-flags.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace-abi.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/resource.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sembuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/setup.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/shmbuf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext32.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/siginfo.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/signal.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/socket.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sockios.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/stat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/statfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/svm.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/swab.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termbits.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termios.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ucontext.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_32.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_64.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_x32.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vm86.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vmx.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vsyscall.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/assert.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/a.out.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/auxv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap-16.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/cmathcalls.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/confname.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dirent.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dlfcn.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/elfclass.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/endian.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/environments.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/epoll.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/errno.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/error.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/eventfd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl-linux.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenvinline.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_val.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_valf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_vall.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/hwcap.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/in.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/initspin.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inotify.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctl-types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctls.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipc.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipctypes.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libio-ldbl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/link.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/local_lim.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/locale.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-finite.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-vector.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathcalls.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathdef.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathinline.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman-linux.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/monetary-ldbl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/msq.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/nan.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/netdb.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/param.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix1_lim.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix2_lim.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix_opt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/printf-ldbl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/pthreadtypes.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/resource.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sched.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sem.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/semaphore.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/shm.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigaction.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigcontext.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/siginfo.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signalfd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signum.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigset.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigstack.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigthread.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sockaddr.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket_type.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stab.def (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statvfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio-ldbl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio_lim.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-bsearch.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-float.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-ldbl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string3.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stropts.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sys_errlist.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syscall.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sysctl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-ldbl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-path.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/termios.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/time.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timerfd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timex.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/typesizes.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/uio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/unistd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ustat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmpx.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utsname.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitflags.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitstatus.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar-ldbl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar2.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wordsize.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xopen_lim.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xtitypes.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/byteswap.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/complex.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/cpio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/crypt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ctype.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/dirent.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/dlfcn.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/elf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/endian.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/envz.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/err.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/errno.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/error.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/execinfo.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/fcntl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/features.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/fenv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/fmtmsg.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/fnmatch.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/fstab.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/fts.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ftw.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/gawkapi.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/gconv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/getopt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/glob.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnu-versions.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnumake.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/grp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/gshadow.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/iconv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ifaddrs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/inttypes.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/langinfo.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/lastlog.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/libgen.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/libintl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/libio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/limits.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/link.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/locale.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/malloc.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/math.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/mcheck.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/memory.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/misc/cxl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/mntent.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/monetary.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/mqueue.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ethernet.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_arp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_packet.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_ppp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_shaper.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_slip.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp-comp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp_defs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/route.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netdb.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ether.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/icmp6.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_ether.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_fddi.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_tr.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/igmp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in_systm.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip6.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip_icmp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/tcp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/udp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/nl_types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/nss.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/obstack.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/paths.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/poll.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/printf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/routed.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/rwhod.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/talkd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/timed.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/pthread.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/pty.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/pwd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/re_comp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/regex.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/regexp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/resolv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_des.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_unix.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/clnt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/des_crypt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/key_prot.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/netdb.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_clnt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_prot.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_rmt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_des.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_msg.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc_auth.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/xdr.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sched.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/search.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/semaphore.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/setjmp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sgtty.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/shadow.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/signal.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/spawn.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/stab.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdc-predef.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdint.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio_ext.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdlib.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/string.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/strings.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/stropts.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sudo_plugin.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acct.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/asoundlib.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/auxv.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/bitypes.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/capability.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/cdefs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/debugreg.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/dir.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/elf.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/epoll.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/errno.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/eventfd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fanotify.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fcntl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/file.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fsuid.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon_out.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/inotify.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/io.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ioctl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ipc.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/kd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/klog.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mman.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mount.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/msg.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mtio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/param.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/pci.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/perm.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/personality.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/poll.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/prctl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/procfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/profil.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ptrace.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/queue.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/quota.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/raw.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reboot.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reg.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/resource.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/select.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sem.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sendfile.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/shm.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signal.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signalfd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socket.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socketvar.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/soundcard.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statvfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stropts.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/swap.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syscall.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysctl.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysinfo.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syslog.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysmacros.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/termios.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/time.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timeb.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timerfd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/times.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timex.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttychars.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttydefaults.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/types.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ucontext.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/uio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ultrasound.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/un.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/unistd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/user.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ustat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/utsname.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vfs.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vlimit.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vm86.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vt.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vtimes.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/wait.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/xattr.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/syscall.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/sysexits.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/syslog.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/tar.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/termio.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/termios.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/tgmath.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/thread_db.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/time.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ttyent.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/uchar.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ucontext.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ulimit.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/unistd.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/ustat.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/utime.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmpx.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/values.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/wait.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/wchar.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/wctype.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/wordexp.h (100%) rename {VisualStudio-Linux-Remote => src/VisualStudio-Linux-Remote}/toolchains/gcc5-x86_64-linux-gnu/usr/include/xlocale.h (100%) rename vlmcs-linux-remote.vcxproj => src/vlmcs-linux-remote.vcxproj (75%) rename vlmcs-linux-remote.vcxproj.filters => src/vlmcs-linux-remote.vcxproj.filters (60%) rename vlmcsd-linux-remote.vcxproj => src/vlmcsd-linux-remote.vcxproj (77%) rename vlmcsd-linux-remote.vcxproj.filters => src/vlmcsd-linux-remote.vcxproj.filters (61%) diff --git a/GNUmakefile b/GNUmakefile index b8350ca..673074e 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -189,6 +189,7 @@ help: @echo "Useful CFLAGS to save memory when running $(BASE_PROGRAM_NAME) on very small embedded devices (finer control than FEATURES=)" @echo " -DNO_EXTENDED_PRODUCT_LIST Don't compile the detailed product list." @echo " -DNO_BASIC_PRODUCT_LIST Don't compile the basic product list." + @echo " -DNO_STRICT_MODES Don't support enhanced emulator detection prevention." @echo " -DNO_VERBOSE_LOG Don't support verbose logging. Removes -v option." @echo " -DNO_LOG Don't add support for logging. Implies -DNO_VERBOSE_LOG -DNO_EXTENDED_PRODUCT_LIST and -DNO_BASIC_PRODUCT_LIST." @echo " -DNO_RANDOM_EPID Don't support random ePIDs." @@ -199,6 +200,8 @@ help: @echo " -DNO_CUSTOM_INTERVALS Don't support custom intervals for retry and refresh activation. Removes -A and -R options." @echo " -DNO_FREEBIND Don't support binding to foreign IP addresses. Removes -F0 and -F1 options. Only affects FreeBSD and Linux." @echo " -DNO_SOCKETS Don't support standalone operation. Requires an internet superserver to start $(BASE_PROGRAM_NAME)." + @echo " -DSIMPLE_SOCKETS Don't support listening on explicit IP addresses. Always listens on all IP addresses." + @echo " -DSIMPLE_RPC Don't support RPC with NDR64 and BTFN in $(BASE_PROGRAM_NAME) (but do in $(BASE_CLIENT_NAME)). Makes emulator detection easy." @echo " -DNO_CL_PIDS Don't support specifying ePIDs and HwId from the command line in $(BASE_PROGRAM_NAME)." @echo " -DNO_LIMIT Don't support limiting concurrent clients in $(BASE_PROGRAM_NAME)." @echo " -DNO_SIGHUP Don't support SIGHUP handling in $(BASE_PROGRAM_NAME)." diff --git a/VisualStudio/vlmcs/vlmcs.vcxproj b/VisualStudio/vlmcs/vlmcs.vcxproj index 7a62e37..7c510f0 100644 --- a/VisualStudio/vlmcs/vlmcs.vcxproj +++ b/VisualStudio/vlmcs/vlmcs.vcxproj @@ -177,6 +177,7 @@ false false $(ExternalCompilerOptions) %(AdditionalOptions) + true true diff --git a/VisualStudio/vlmcsd.sln b/VisualStudio/vlmcsd.sln index 4c2ade7..dcce7ec 100755 --- a/VisualStudio/vlmcsd.sln +++ b/VisualStudio/vlmcsd.sln @@ -11,9 +11,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcsdmulti-Windows", "vlmc EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libkms-Windows", "libkms\libkms.vcxproj", "{2A0FC04D-C3C0-43E2-8812-53AE901C5395}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcsd-gcc5", "..\vlmcsd-linux-remote.vcxproj", "{CC2FBE0B-B9DF-4306-88A1-20706BBD2B0C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcsd-gcc5", "..\src\vlmcsd-linux-remote.vcxproj", "{CC2FBE0B-B9DF-4306-88A1-20706BBD2B0C}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcs-gcc5", "..\vlmcs-linux-remote.vcxproj", "{1ED83566-8AE1-4EE8-9B62-37188A7AC7CA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcs-gcc5", "..\src\vlmcs-linux-remote.vcxproj", "{1ED83566-8AE1-4EE8-9B62-37188A7AC7CA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/etc/vlmcsd.ini b/etc/vlmcsd.ini index cb56f4f..089e005 100644 --- a/etc/vlmcsd.ini +++ b/etc/vlmcsd.ini @@ -82,6 +82,14 @@ # Command line: -v and -q ;LogVerbose = true +# Whitelist known products +# Command line: -K0, -K1, -K2, -K3 +;WhiteListingLevel = 0 + +# Check that the client time is within +/- 4 hours of the system time +# Command Line: -c0, -c1 +;CheckClientTime = false + # Set activation interval to 2 hours # Command line: -A ;ActivationInterval = 2h diff --git a/floppy/floppy144.vfd b/floppy/floppy144.vfd index c5d591b51902b2dc02d5ae62f2dab3edc0ace533..73dd760c2a5c4cf211b18d51b08ea74587419426 100644 GIT binary patch delta 79910 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

5H0P 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 SwE8_hebl)@1cfT`*RkSI1L8t~;2I9l%i- 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 diff --git a/hotbird64-mass-build/make_dragonfly b/hotbird64-mass-build/make_dragonfly index f2e3df7..5ca86e1 100755 --- a/hotbird64-mass-build/make_dragonfly +++ b/hotbird64-mass-build/make_dragonfly @@ -19,7 +19,7 @@ CF45="-static-libgcc -pipe -fno-common -fno-exceptions -fno-stack-protector -fno CFCLANG="-pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants" LF="-Wl,-z,norelro -Wl,--hash-style=sysv -Wl,--build-id=none" LFCLANG="-Wl,-z,norelro -Wl,--hash-style=sysv" -export CC=gcc5 +export CC=gcc6 gmake $MAKEFLAGS MULTI_NAME=$BINDIR/vlmcsdmulti-DragonFly-x64 PROGRAM_NAME=$BINDIR/vlmcsd-DragonFly-x64 CLIENT_NAME=$BINDIR/vlmcs-DragonFly-x64 CFLAGS="$CF" LDFLAGS="$LF" allmulti diff --git a/man/vlmcs.1 b/man/vlmcs.1 index 7ef8f93..5c81e30 100644 --- a/man/vlmcs.1 +++ b/man/vlmcs.1 @@ -1,5 +1,5 @@ .mso www.tmac -.TH VLMCS 1 "May 2016" "Hotbird64" "KMS Activation Manual" +.TH VLMCS 1 "October 2016" "Hotbird64" "KMS Activation Manual" .LO 1 .SH NAME @@ -76,7 +76,7 @@ to specify applications that are not listed with \fB-x\fR. The option is used as a shortcut for the most common applications. .IP "\fB-K\fR \fIprotocol-version\fR" -Force a specific version of the KMS protocol. Valid versions are 4.0, 5.0 and 6.0. The default is to select a suitable version according to the \fIapplication\fR selected. You may use \fB-K\fR to send an incorrect protocol version to the KMS server and see how it behaves. Genuine KMS servers return HRESULT 0x8007000D if the KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do the same. When sending a request with an incorrect protocol number, vlmcs ignores the minor protocol number (e.g. sends a v4 request for version 4.1). If the major version number is less then 4, it sends a v4 request. If the major version is greater then 6, is sends a v6 request. In any case the \fIprotocol-version\fR as specified by \fB-K\fR is put in the version fields of the request. +Force a specific version of the KMS protocol. Valid versions are 4.0, 5.0 and 6.0. The default is to select a suitable version according to the \fIapplication\fR selected. You may use \fB-K\fR to send an incorrect protocol version to the KMS server and see how it behaves. Genuine KMS servers return HRESULT 0x8007000D if the KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do the same. When sending a request with an incorrect protocol number, vlmcs ignores the minor protocol number (e.g. sends a v4 request for version 4.1). If the major version number is less then 4, it sends a v4 request. If the major version is greater then 6, it sends a v6 request. In any case the \fIprotocol-version\fR as specified by \fB-K\fR is put in the version fields of the request. .IP "\fB-4\fR, \fB-5\fR and \fB-6" Force version 4, 5 or 6 of the KMS protocol. These options are actually shortcuts of \fB-K 4.0\fR, \fB-K 5.0\fR and \fB-K 6.0\fR. diff --git a/man/vlmcs.1.dos.txt b/man/vlmcs.1.dos.txt index dcd26b6..73874ea 100644 --- a/man/vlmcs.1.dos.txt +++ b/man/vlmcs.1.dos.txt @@ -90,7 +90,7 @@ OPTIONS same. When sending a request with an incorrect protocol number, vlmcs ignores the minor protocol number (e.g. sends a v4 request for version 4.1). If the major version number is less then 4, it - sends a v4 request. If the major version is greater then 6, is + sends a v4 request. If the major version is greater then 6, it sends a v6 request. In any case the protocol-version as speci‐ fied by -K is put in the version fields of the request. @@ -323,4 +323,4 @@ SEE ALSO -Hotbird64 May 2016 VLMCS(1) +Hotbird64 October 2016 VLMCS(1) diff --git a/man/vlmcs.1.html b/man/vlmcs.1.html index afe1e6d..85dc558 100644 --- a/man/vlmcs.1.html +++ b/man/vlmcs.1.html @@ -1,5 +1,5 @@ - + @@ -39,7 +39,7 @@ -

vlmcs − a +

vlmcs - a client for testing and/or charging KMS servers

SYNOPSIS @@ -197,7 +197,7 @@ the same. When sending a request with an incorrect protocol number, vlmcs ignores the minor protocol number (e.g. sends a v4 request for version 4.1). If the major version number is less then 4, it sends a v4 request. If the major version -is greater then 6, is sends a v6 request. In any case the +is greater then 6, it sends a v6 request. In any case the protocol-version as specified by -K is put in the version fields of the request.

@@ -292,7 +292,7 @@ ExtendedProductList).

Send requests requests to the server. The default is to send at least one request and enough subsequent requests that the server is fully -charged afterwards for the application−guid you +charged afterwards for the application-guid you selected (explicitly with -a or implicitly by using -l).

@@ -384,7 +384,7 @@ what was specified with -r. This option can be used to "overcharge" a Microsoft KMS server.

-

−t status

+

-t status

Reports a specific license status to the KMS server. status is a number that can diff --git a/man/vlmcs.1.pdf b/man/vlmcs.1.pdf index ecf5c4c49a769eaf34db3d17319a133f8d98c7d6..e9515aa6750fa048f3d41cff73e3df2358d394fa 100644 GIT binary patch delta 12606 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 - + @@ -42,9 +42,8 @@

-

floppy144.vfd -− a bootable floppy disk with Linux and -vlmcsd(8)

+

floppy144.vfd - +a bootable floppy disk with Linux and vlmcsd(8)

DESCRIPTION @@ -549,9 +548,9 @@ addresses and all user names and passwords.

Logging into the system
There are 5 local logins provided on /dev/tty2 to /dev/tty6. -To switch to these logins, simply press ALT−F2 to -ALT−F6. To return to the console on /dev/tty1, press -ALT−F1. If inetd(8) is running you can also use +To switch to these logins, simply press ALT-F2 to ALT-F6. To +return to the console on /dev/tty1, press ALT-F1. If +inetd(8) is running you can also use telnet(1). This allows you use a terminal program (e.g. putty) that can utilize your keyboard layout, can be resized and has full UTF-8 support. The local terminals @@ -571,11 +570,11 @@ editor of your choice and transfer them back to the

The menu system
-You’ll find a menu system on /dev/tty8 (press -ALT−F8 to see it). It allows you performing some -administrative tasks and to view various system information. -It is mainly for users that do not have much experience with -Unix commands.
+You’ll find a menu system on /dev/tty8 (press ALT-F8 +to see it). It allows you performing some administrative +tasks and to view various system information. It is mainly +for users that do not have much experience with Unix +commands.
1) (Re)start vlmcsd

Starts or restarts diff --git a/man/vlmcsd-floppy.7.pdf b/man/vlmcsd-floppy.7.pdf index 34d2675a8dda6b409c1340409cdd9397b4bd3184..f4197eb54f874079a9812245467d4483c436db5e 100644 GIT binary patch delta 15388 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 delta 15386 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 - + @@ -35,7 +35,7 @@ -

vlmcsd − a +

vlmcsd - a guide to KMS activation using vlmcsd

SYNOPSIS @@ -169,34 +169,29 @@ inofficial GVLKs that work with consumer-only versions of Windows. Here is a list:

-

TX9XD−98N7V−6WMQ6−BX7FG−H8Q99 +

TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 - Windows 10 Home
-3KHY7−WNT83−DGQKR−F7HPR−844BM - -Windows 10 Home N
-7HNRX−D7KGG−3K4RQ−4WPJ4−YTDFH - -Windows 10 Home Single Language
-PVMJN−6DFY6−9CCP6−7BKTT−D3WVR - -Windows 10 Home Country Specific
-789NJ−TQK6T−6XTH8−J39CJ−J8D3P - -Windows 8.1 Professional with Media Center
-M9Q9P−WNJJT−6PXPY−DWX8H−6XWKK - -Windows 8.1 Core
-7B9N3−D94CG−YTVHR−QBPX3−RJP64 - -Windows 8.1 Core N
-BB6NG−PQ82V−VRDPW−8XVD2−V8P66 - -Windows 8.1 Core Single Language
-NCTT7−2RGK8−WMHRF−RY7YQ−JTXG3 - -Windows 8.1 Core Country Specific
-GNBB8−YVD74−QJHX6−27H4K−8QHDG - -Windows 8 Professional with Media Center
-BN3D2−R7TKB−3YPBD−8DRP2−27GG4 - -Windows 8 Core
-8N2M2−HWPGY−7PGT9−HGDD8−GVGGY - -Windows 8 Core N
-2WN2H−YGCQR−KFX6K−CD6TF−84YXQ - -Windows 8 Core Single Language
-4K36P−JN4VD−GDC6V−KDT89−DYFKP - -Windows 8 Core Country Specific

+3KHY7-WNT83-DGQKR-F7HPR-844BM - Windows 10 Home N
+7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH - Windows 10 Home Single +Language
+PVMJN-6DFY6-9CCP6-7BKTT-D3WVR - Windows 10 Home Country +Specific
+789NJ-TQK6T-6XTH8-J39CJ-J8D3P - Windows 8.1 Professional +with Media Center
+M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK - Windows 8.1 Core
+7B9N3-D94CG-YTVHR-QBPX3-RJP64 - Windows 8.1 Core N
+BB6NG-PQ82V-VRDPW-8XVD2-V8P66 - Windows 8.1 Core Single +Language
+NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 - Windows 8.1 Core Country +Specific
+GNBB8-YVD74-QJHX6-27H4K-8QHDG - Windows 8 Professional with +Media Center
+BN3D2-R7TKB-3YPBD-8DRP2-27GG4 - Windows 8 Core
+8N2M2-HWPGY-7PGT9-HGDD8-GVGGY - Windows 8 Core N
+2WN2H-YGCQR-KFX6K-CD6TF-84YXQ - Windows 8 Core Single +Language
+4K36P-JN4VD-GDC6V-KDT89-DYFKP - Windows 8 Core Country +Specific

The above keys require activation renewal every 45 days (Win 8.1) or 30 @@ -240,9 +235,9 @@ turned out to be non-working, you can use Examples

slmgr /ipk -GCRJD−8NW9H−F2CDX−CCM8D−9D6T9
+GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
cscript -ospp.vbs /inpkey:YC7DK−G2NP3−2QQC3−J6H88−GVGXT

+ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT

Why doesn’t Office accpet a GVLK?
@@ -306,7 +301,7 @@ automatically. This may take a while.
You may type

slmgr /ato
-−or−
+-or-
cscript ospp.vbs /act

at any time to @@ -325,8 +320,8 @@ like this:

Connecting to 127.0.0.1:1688 ... successful
-Sending activation request (KMS V4) 1 of 1 −> -06401−00206−296−206344−03−5179−9600.0000−3432013

+Sending activation request (KMS V4) 1 of 1 -> +06401-00206-296-206344-03-5179-9600.0000-3432013

If anything goes wrong, you’ll see an error message. Next try diff --git a/man/vlmcsd.7.pdf b/man/vlmcsd.7.pdf index 3532e68cdd41cbafc4ab795b8218304bcf9d8423..e78deb44f74d6d62d9e54abde49eb6f6bb6fe738 100644 GIT binary patch delta 6949 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 diff --git a/man/vlmcsd.8 b/man/vlmcsd.8 index 8a7749b..d75cb1b 100644 --- a/man/vlmcsd.8 +++ b/man/vlmcsd.8 @@ -1,5 +1,5 @@ .mso www.tmac -.TH VLMCSD 8 "September 2016" "Hotbird64" "KMS Activation Manual" +.TH VLMCSD 8 "October 2016" "Hotbird64" "KMS Activation Manual" .LO 8 .SH NAME @@ -184,6 +184,25 @@ for a list of valid \fILCID\fRs. Please note that some of them are not recognize Most other KMS emulators use a fixed \fILCID\fR of 1033 (English - US). To achive the same behavior in vlmcsd use \fB-C 1033\fR. +.IP "\fB-K0\fR, \fB-K1\fR, \fB-K2\fR and \fB-K3\fR" +Sets the whitelisting level to determine which products vlmcsd activates or refuses. The default is \fB-K0\fR. + +.RS 12 +\fB-K0\fR: activate all products with an unknown, retail or beta/preview KMS ID. +.br +\fB-K1\fR: activate products with a retail or beta/preview KMS ID but refuse to activate products with an unknown KMS ID. +.br +\fB-K2\fR: activate products with an unknown KMS ID but refuse products with a retail or beta/preview KMS ID. +.br +\fB-K3\fR: activate only products with a known volume license RTM KMS ID and refuse all others. +.RE + +.IP "" +The SKU ID is not checked. Like a genuine KMS server vlmcsd activates a product that has a random or unknown SKU ID. If you select \fB-K1\fR or \fB-K3\fR, vlmcsd also checks the Application ID for correctness. If Microsoft introduces a new KMS ID for a new product, you cannot activate it if you used \fB-K1\fR or \fB-K3\fR until a new version of vlmcsd is available. + +.IP "\fB-c0\fR and \fB-c1\fR" +\fB-c1\fR causes vlmcsd to check if the client time differs no more than four hours from the system time. \fB-c0\fR (the default) disables this check. \fB-c1\fR is useful to prevent emulator detection. A client that tries to detect an emulator could simply send two subsequent request with two time stamps that differ more than four hours from each other. If both requests succeed, the server is an emulator. If you specify \fB-c1\fR on a system with no reliable time source, activations will fail. It is ok to set the correct system time after you started vlmcsd. + .IP "\fB-R\fR \fIrenewal-interval\fR" Instructs clients to renew activation every \fIrenewal-interval\fR. The \fIrenewal-interval\fR is a number optionally immediately followed by a letter indicating the unit. Valid unit letters are s (seconds), m (minutes), h (hours), d (days) and w (weeks). If you do not specify a letter, minutes is assumed. @@ -274,8 +293,6 @@ Installs \fBvlmcsd\fR as a Windows service with low privileges and logs everythi An ePID specified in an ini file must not contain spaces. .SH INTENTIONAL BUGS -vlmcsd activates non-VL (retail) and beta/preview versions of Windows. -.br vlmcsd always reports enough active clients to satisfy the N count policy of the request. .SH AUTHOR diff --git a/man/vlmcsd.8.dos.txt b/man/vlmcsd.8.dos.txt index 02cd578..241624d 100644 --- a/man/vlmcsd.8.dos.txt +++ b/man/vlmcsd.8.dos.txt @@ -415,6 +415,40 @@ OPTIONS US). To achive the same behavior in vlmcsd use -C 1033. + -K0, -K1, -K2 and -K3 + Sets the whitelisting level to determine which products vlmcsd + activates or refuses. The default is -K0. + + -K0: activate all products with an unknown, retail or + beta/preview KMS ID. + -K1: activate products with a retail or beta/preview KMS ID + but refuse to activate products with an unknown KMS ID. + -K2: activate products with an unknown KMS ID but refuse + products with a retail or beta/preview KMS ID. + -K3: activate only products with a known volume license RTM + KMS ID and refuse all others. + + + The SKU ID is not checked. Like a genuine KMS server vlmcsd + activates a product that has a random or unknown SKU ID. If you + select -K1 or -K3, vlmcsd also checks the Application ID for + correctness. If Microsoft introduces a new KMS ID for a new + product, you cannot activate it if you used -K1 or -K3 until a + new version of vlmcsd is available. + + + -c0 and -c1 + -c1 causes vlmcsd to check if the client time differs no more + than four hours from the system time. -c0 (the default) disables + this check. -c1 is useful to prevent emulator detection. A + client that tries to detect an emulator could simply send two + subsequent request with two time stamps that differ more than + four hours from each other. If both requests succeed, the server + is an emulator. If you specify -c1 on a system with no reliable + time source, activations will fail. It is ok to set the correct + system time after you started vlmcsd. + + -R renewal-interval Instructs clients to renew activation every renewal-interval. The renewal-interval is a number optionally immediately followed @@ -592,7 +626,6 @@ BUGS INTENTIONAL BUGS - vlmcsd activates non-VL (retail) and beta/preview versions of Windows. vlmcsd always reports enough active clients to satisfy the N count pol‐ icy of the request. @@ -612,4 +645,4 @@ SEE ALSO -Hotbird64 September 2016 VLMCSD(8) +Hotbird64 October 2016 VLMCSD(8) diff --git a/man/vlmcsd.8.html b/man/vlmcsd.8.html index a427d4f..32b732d 100644 --- a/man/vlmcsd.8.html +++ b/man/vlmcsd.8.html @@ -1,5 +1,5 @@ - + @@ -43,8 +43,8 @@

-

vlmcsd − -a fully Microsoft compatible KMS server

+

vlmcsd - a +fully Microsoft compatible KMS server

SYNOPSIS @@ -619,6 +619,54 @@ them are not recognized by .NET Framework 4.0.

emulators use a fixed LCID of 1033 (English - US). To achive the same behavior in vlmcsd use -C 1033.

+

-K0, -K1, +-K2 and -K3

+ +

Sets the whitelisting level to +determine which products vlmcsd activates or refuses. The +default is -K0.

+ +

-K0: +activate all products with an unknown, retail or +beta/preview KMS ID.
+-K1
: activate products with a retail or beta/preview KMS +ID but refuse to activate products with an unknown KMS ID. +
+-K2
: activate products with an unknown KMS ID but refuse +products with a retail or beta/preview KMS ID.
+-K3
: activate only products with a known volume license +RTM KMS ID and refuse all others.

+ + + + + +
+ + +

The SKU ID is not checked. Like a genuine KMS server +vlmcsd activates a product that has a random or unknown SKU +ID. If you select -K1 or -K3, vlmcsd also +checks the Application ID for correctness. If Microsoft +introduces a new KMS ID for a new product, you cannot +activate it if you used -K1 or -K3 until a new +version of vlmcsd is available.

+ +

-c0 and -c1

+ +

-c1 causes vlmcsd to +check if the client time differs no more than four hours +from the system time. -c0 (the default) disables this +check. -c1 is useful to prevent emulator detection. A +client that tries to detect an emulator could simply send +two subsequent request with two time stamps that differ more +than four hours from each other. If both requests succeed, +the server is an emulator. If you specify -c1 on a +system with no reliable time source, activations will fail. +It is ok to set the correct system time after you started +vlmcsd.

+

-R renewal-interval

@@ -736,8 +784,8 @@ directory.

convenience you can use the special username "/l" as a shortcut for "NT AUTHORITY\LocalService" and "/n" for "NT AUTHORITY\NetworkService". -"vlmcsd −s −U /n" -installs the service to run as "NT +"vlmcsd -s -U /n" installs the +service to run as "NT AUTHORITY\NetworkService".

-W password

@@ -928,11 +976,9 @@ specified in an ini file must not contain spaces.

-

vlmcsd -activates non-VL (retail) and beta/preview versions of -Windows.
-vlmcsd always reports enough active clients to satisfy the N -count policy of the request.

+

vlmcsd always +reports enough active clients to satisfy the N count policy +of the request.

AUTHOR diff --git a/man/vlmcsd.8.pdf b/man/vlmcsd.8.pdf index 58abdf8dac307ae398976a2beac4bda20b5e70d4..e5dc3a6c0c22045517f21e677fbda27f839374aa 100644 GIT binary patch delta 26488 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 diff --git a/man/vlmcsd.8.unix.txt b/man/vlmcsd.8.unix.txt index a25f92b..efc45f3 100644 --- a/man/vlmcsd.8.unix.txt +++ b/man/vlmcsd.8.unix.txt @@ -415,6 +415,40 @@ OPTIONS US). To achive the same behavior in vlmcsd use -C 1033. + -K0, -K1, -K2 and -K3 + Sets the whitelisting level to determine which products vlmcsd + activates or refuses. The default is -K0. + + -K0: activate all products with an unknown, retail or + beta/preview KMS ID. + -K1: activate products with a retail or beta/preview KMS ID + but refuse to activate products with an unknown KMS ID. + -K2: activate products with an unknown KMS ID but refuse + products with a retail or beta/preview KMS ID. + -K3: activate only products with a known volume license RTM + KMS ID and refuse all others. + + + The SKU ID is not checked. Like a genuine KMS server vlmcsd + activates a product that has a random or unknown SKU ID. If you + select -K1 or -K3, vlmcsd also checks the Application ID for + correctness. If Microsoft introduces a new KMS ID for a new + product, you cannot activate it if you used -K1 or -K3 until a + new version of vlmcsd is available. + + + -c0 and -c1 + -c1 causes vlmcsd to check if the client time differs no more + than four hours from the system time. -c0 (the default) disables + this check. -c1 is useful to prevent emulator detection. A + client that tries to detect an emulator could simply send two + subsequent request with two time stamps that differ more than + four hours from each other. If both requests succeed, the server + is an emulator. If you specify -c1 on a system with no reliable + time source, activations will fail. It is ok to set the correct + system time after you started vlmcsd. + + -R renewal-interval Instructs clients to renew activation every renewal-interval. The renewal-interval is a number optionally immediately followed @@ -592,7 +626,6 @@ BUGS INTENTIONAL BUGS - vlmcsd activates non-VL (retail) and beta/preview versions of Windows. vlmcsd always reports enough active clients to satisfy the N count pol‐ icy of the request. @@ -612,4 +645,4 @@ SEE ALSO -Hotbird64 September 2016 VLMCSD(8) +Hotbird64 October 2016 VLMCSD(8) diff --git a/man/vlmcsd.ini.5 b/man/vlmcsd.ini.5 index a6a9da9..b3f3e2d 100644 --- a/man/vlmcsd.ini.5 +++ b/man/vlmcsd.ini.5 @@ -1,4 +1,4 @@ -.TH VLMCSD.INI 5 "September 2016" "Hotbird64" "KMS Activation Manual" +.TH VLMCSD.INI 5 "October 2016" "Hotbird64" "KMS Activation Manual" .LO 8 .SH NAME @@ -99,6 +99,25 @@ Can be TRUE or FALSE. The default is TRUE. If set to FALSE, logging output does .IP "\fBLogVerbose\fR" Set this to either TRUE or FALSE. The default is FALSE. If set to TRUE, more details of each activation will be logged. You use \fB-v\fR and \fB-q\fR in the command line to control this setting. \fBLogVerbose\fR has an effect only if you specify a log file or redirect logging to \fBstdout\fR(3). +.IP "\fBWhitelistingLevel\fR" +Can be 0, 1, 2 or 3. The default is 0. Sets the whitelisting level to determine which products vlmcsd activates or refuses. + +.RS 12 +\fB0\fR: activate all products with an unknown, retail or beta/preview KMS ID. +.br +\fB1\fR: activate products with a retail or beta/preview KMS ID but refuse to activate products with an unknown KMS ID. +.br +\fB2\fR: activate products with an unknown KMS ID but refuse products with a retail or beta/preview KMS ID. +.br +\fB3\fR: activate only products with a known volume license RTM KMS ID and refuse all others. +.RE + +.IP "" +The SKU ID is not checked. Like a genuine KMS server vlmcsd activates a product that has a random or unknown SKU ID. If you select \fB1\fR or \fB3\fR, vlmcsd also checks the Application ID for correctness. If Microsoft introduces a new KMS ID for a new product, you cannot activate it if you used \fB1\fR or \fB3\fR until a new version of vlmcsd is available. + +.IP "\fBCheckClientTime\fR" +Can be TRUE or FALSE. The default is FALSE. If you set this to TRUE \fBvlmcsd\fR(8) checks if the client time differs no more than four hours from the system time. This is useful to prevent emulator detection. A client that tries to detect an emulator could simply send two subsequent request with two time stamps that differ more than four hours from each other. If both requests succeed, the server is an emulator. If you set this to TRUE on a system with no reliable time source, activations will fail. It is ok to set the correct system time after you started \fBvlmcsd\fR(8). + .IP "\fBActivationInterval\fR" This is the same as specifying \fB-A\fR on the command line. See \fBvlmcsd\fR(8) for details. The default is 2 hours. Example: ActivationInterval = 1h diff --git a/man/vlmcsd.ini.5.dos.txt b/man/vlmcsd.ini.5.dos.txt index 5f6f84d..f5b6348 100644 --- a/man/vlmcsd.ini.5.dos.txt +++ b/man/vlmcsd.ini.5.dos.txt @@ -208,88 +208,123 @@ KEYWORDS logging to stdout(3). + WhitelistingLevel + Can be 0, 1, 2 or 3. The default is 0. Sets the whitelisting + level to determine which products vlmcsd activates or refuses. + + 0: activate all products with an unknown, retail or + beta/preview KMS ID. + 1: activate products with a retail or beta/preview KMS ID + but refuse to activate products with an unknown KMS ID. + 2: activate products with an unknown KMS ID but refuse + products with a retail or beta/preview KMS ID. + 3: activate only products with a known volume license RTM + KMS ID and refuse all others. + + + The SKU ID is not checked. Like a genuine KMS server vlmcsd + activates a product that has a random or unknown SKU ID. If you + select 1 or 3, vlmcsd also checks the Application ID for cor‐ + rectness. If Microsoft introduces a new KMS ID for a new prod‐ + uct, you cannot activate it if you used 1 or 3 until a new ver‐ + sion of vlmcsd is available. + + + CheckClientTime + Can be TRUE or FALSE. The default is FALSE. If you set this to + TRUE vlmcsd(8) checks if the client time differs no more than + four hours from the system time. This is useful to prevent emu‐ + lator detection. A client that tries to detect an emulator could + simply send two subsequent request with two time stamps that + differ more than four hours from each other. If both requests + succeed, the server is an emulator. If you set this to TRUE on a + system with no reliable time source, activations will fail. It + is ok to set the correct system time after you started vlm‐ + csd(8). + + ActivationInterval - This is the same as specifying -A on the command line. See vlm‐ + This is the same as specifying -A on the command line. See vlm‐ csd(8) for details. The default is 2 hours. Example: Activation‐ Interval = 1h RenewalInterval - This is the same as specifying -R on the command line. See vlm‐ - csd(8) for details. The default is 7 days. Example: RenewalIn‐ + This is the same as specifying -R on the command line. See vlm‐ + csd(8) for details. The default is 7 days. Example: RenewalIn‐ terval = 3d. Please note that the KMS client decides itself when to renew activation. Even though vlmcsd sends the renewal inter‐ - val you specify, it is no more than some kind of recommendation - to the client. Older KMS clients did follow the recommendation + val you specify, it is no more than some kind of recommendation + to the client. Older KMS clients did follow the recommendation from a KMS server or emulator. Newer clients do not. - User Run vlmcsd as another, preferrably less privileged, user. The - argument can be a user name or a numeric user id. You must have - the required privileges (capabilities on Linux) to change the - security context of a process without providing any credentials - (a password in most cases). On most unixoid OSses 'root' is the + User Run vlmcsd as another, preferrably less privileged, user. The + argument can be a user name or a numeric user id. You must have + the required privileges (capabilities on Linux) to change the + security context of a process without providing any credentials + (a password in most cases). On most unixoid OSses 'root' is the only user who has these privileges in the default configuration. - This setting is not available in the native Windows version of - vlmcsd. See -u in vlmcsd(8). This setting cannot be changed on + This setting is not available in the native Windows version of + vlmcsd. See -u in vlmcsd(8). This setting cannot be changed on the fly by sending SIGHUP to vlmcsd. - Group Run vlmcsd as another, preferrably less privileged, group. The - argument can be a group name or a numeric group id. You must - have the required privileges (capabilities on Linux) to change - the security context of a process without providing any creden‐ - tials (a password in most cases). On most unixoid OSses 'root' + Group Run vlmcsd as another, preferrably less privileged, group. The + argument can be a group name or a numeric group id. You must + have the required privileges (capabilities on Linux) to change + the security context of a process without providing any creden‐ + tials (a password in most cases). On most unixoid OSses 'root' is the only user who has these privileges in the default config‐ - uration. This setting is not available in the native Windows - version of vlmcsd. See -g in vlmcsd(8). This setting cannot be + uration. This setting is not available in the native Windows + version of vlmcsd. See -g in vlmcsd(8). This setting cannot be changed on the fly by sending SIGHUP to vlmcsd. Windows - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Windows activations. If specified, RandomizationLevel + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Windows activations. If specified, RandomizationLevel for Windows activitations will be ignored. Office2010 - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Office 2010 activations. If specified, Randomization‐ + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Office 2010 activations. If specified, Randomization‐ Level for Office 2010 activitations will be ignored. Office2013 - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Office 2013 activations. If specified, Randomization‐ + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Office 2013 activations. If specified, Randomization‐ Level for Office 2013 activitations will be ignored. Office2016 - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Office 2016 activations. If specified, Randomization‐ + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Office 2016 activations. If specified, Randomization‐ Level for Office 2016 activitations will be ignored. VALID EPIDS - The ePID is currently a comment only. You can specify any string up to - 63 bytes. In Windows 7 Microsoft has blacklisted few ( < 10 ) ePIDs - that were used in KMSv5 versions of the "Ratiborus Virtual Machine". - Microsoft has given up on blacklisting when KMS emulators appeared in + The ePID is currently a comment only. You can specify any string up to + 63 bytes. In Windows 7 Microsoft has blacklisted few ( < 10 ) ePIDs + that were used in KMSv5 versions of the "Ratiborus Virtual Machine". + Microsoft has given up on blacklisting when KMS emulators appeared in the wild. Even if you can use "Activated by cool hacker guys" as an ePID, you may wish to use ePIDs that cannot be detected as non-MS ePIDs. If you don't - know how these "valid" ePIDs look like exactly, do not use GUIDS in - vlmcsd.ini. vlmcsd provides internal mechanisms to generate valid + know how these "valid" ePIDs look like exactly, do not use GUIDS in + vlmcsd.ini. vlmcsd provides internal mechanisms to generate valid ePIDs. If you use non-ASCII characters in your ePID (you shouldn't do anyway), - these must be in UTF-8 format. This is especially important when you + these must be in UTF-8 format. This is especially important when you run vlmcsd on Windows or cygwin because UTF-8 is not the default encod‐ ing for most editors. If you are specifying an optional HWID it follows the same syntax as in - the -H option in vlmcsd(8) ecxept that you must not enclose a HWID in + the -H option in vlmcsd(8) ecxept that you must not enclose a HWID in quotes even if it contains spaces. @@ -303,7 +338,7 @@ AUTHOR CREDITS - Thanks to CODYQX4, deagles, eIcn, mikmik38, nosferati87, qad, Rati‐ + Thanks to CODYQX4, deagles, eIcn, mikmik38, nosferati87, qad, Rati‐ borus, ... @@ -312,4 +347,4 @@ SEE ALSO -Hotbird64 September 2016 VLMCSD.INI(5) +Hotbird64 October 2016 VLMCSD.INI(5) diff --git a/man/vlmcsd.ini.5.html b/man/vlmcsd.ini.5.html index 56a6dd4..34c9bcb 100644 --- a/man/vlmcsd.ini.5.html +++ b/man/vlmcsd.ini.5.html @@ -1,5 +1,5 @@ - + @@ -41,7 +41,7 @@

vlmcsd.ini -− vlmcsd KMS emulator configuration file

+- vlmcsd KMS emulator configuration file

SYNOPSIS @@ -267,8 +267,8 @@ randomized. The argument must be a number between 1 and 32767. While any number in that range is valid, you should use an offcial LCID. A list of assigned LCIDs can be found at -http://msdn.microsoft.com/en−us/goglobal/bb964664.aspx. -On the command line you control this setting with option +http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx. On +the command line you control this setting with option -C.

@@ -339,6 +339,53 @@ each activation will be logged. You use -v and LogVerbose has an effect only if you specify a log file or redirect logging to stdout(3).

+

WhitelistingLevel

+ +

Can be 0, 1, 2 or 3. The +default is 0. Sets the whitelisting level to determine which +products vlmcsd activates or refuses.

+ +

0: +activate all products with an unknown, retail or +beta/preview KMS ID.
+1
: activate products with a retail or beta/preview KMS +ID but refuse to activate products with an unknown KMS ID. +
+2
: activate products with an unknown KMS ID but refuse +products with a retail or beta/preview KMS ID.
+3
: activate only products with a known volume license +RTM KMS ID and refuse all others.

+ + + + + +
+ + +

The SKU ID is not checked. Like a genuine KMS server +vlmcsd activates a product that has a random or unknown SKU +ID. If you select 1 or 3, vlmcsd also checks +the Application ID for correctness. If Microsoft introduces +a new KMS ID for a new product, you cannot activate it if +you used 1 or 3 until a new version of vlmcsd +is available.

+ +

CheckClientTime

+ +

Can be TRUE or FALSE. The +default is FALSE. If you set this to TRUE vlmcsd(8) +checks if the client time differs no more than four hours +from the system time. This is useful to prevent emulator +detection. A client that tries to detect an emulator could +simply send two subsequent request with two time stamps that +differ more than four hours from each other. If both +requests succeed, the server is an emulator. If you set this +to TRUE on a system with no reliable time source, +activations will fail. It is ok to set the correct system +time after you started vlmcsd(8).

+

ActivationInterval

This is the same as specifying @@ -465,8 +512,8 @@ UTF-8 is not the default encoding for most editors.

If you are specifying an optional HWID it follows the same syntax as in -the −H option in vlmcsd(8) ecxept that -you must not enclose a HWID in quotes even if it contains +the -H option in vlmcsd(8) ecxept that you +must not enclose a HWID in quotes even if it contains spaces.

FILES diff --git a/man/vlmcsd.ini.5.pdf b/man/vlmcsd.ini.5.pdf index cc766290edf671088f00e6e02fbfefd53bb0dde7..2a11c63d87e47d4ce3cd0a30ce05be3819ad0c06 100644 GIT binary patch delta 13536 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%0AT}htQr`$KNF^_<$!I3pOgV#gI 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

%Xa$EPjmlJTWZ#RO>MKZv_@%v@|1TkqJ3U zBr52hWe)zKr^!*B^PPVLi6@J;rx)p6ic%ii&XdpFH0+9{SJ3+e&EmTv{gT3FG9`fj z(_>&++E+k*^;p3VHB!I_>`bZ4l_FT$CpJ31w7PfB4u;xcmGdvhz6TLOwkhaW!XeO0 zXOM^bF#a6>X3-UAOqSDXU<9+ky!Z11H;_xw6bH|feIkQAvQCl8p8c07RgmG`%zjtQ zkkyE-LNv5;SBfHseI()ogjbUD1M#+5{jw5>#14`1peH~g?W8;ysF&*0j20w^tm0Ru zSuOv2aV*`4F_0>{Pgb8{=@TwGq+^O<13E6dFMSlIEsu#Fua3lhc zgbzd&w~dPKk(I}ZsgCH0h}YVBLy8M^SOs-*9UO84!B~WW7$#(HvZaUUERDWn z7&AnO^`NgkkwSiy!t=$V{K0eo1RWD>v@}|E!(sk9wMP2`{SR($?c|xpR<|tbjaUXe zW~t(4Ez9bCF>3bFb6d=yjP$;HRIzGa!YCYu_V{(AYWCVr?&xfC-Y$VWW$?TTSakZB zGj9LxUvp8$<*%E1cVD=g)jkDd1f#pG8x*qfND*fvRm>| z8En?Wl9Ez2TD8hm?Sa|=!3zS7{2`JGW}f)BO_&kj$-1Zf!0fqk)c%AWGvWt3LmJko zwI<7tSbDyg@!NjCrs(^n03Me}l(Z^EaU#4jsS)EcG-*7#k`{>#UBkx?L#GB;)szd0 zUzd^UJDqq=g=}XQrr{(#lsJ2Fj9Tj7vppjk=%WFa zS;3!x;m;zyp(mWwWX{;6LW$51rg5ri=%~EeE!Laye!lWyCl92;O1@r&5QAqv<6y24 zv7)2!gB*5lL<)u`=`AT}LkJau_!gxS3tm69r|cH2d2UM5m8i;}o22@&s>H5w5)6mj zE=F7@*ZP{sEaf_Xyg;TAYN}&hq1B>UFfd%eX!ON$M&7lFOsIs&p|&wf7Cmu>n|}rr z1`Dz3g9qOAe;S_!nA^T17CUoq?4PVXy*^(bBSbKJd)3`a?fUm>r^94i0;Jxmi}olb>1s>_5AnwZqNS~Oh39A zv=z{?7XV%I>%uSZx65Z{nzBp8^5g2+tnMTBXr35^@ZP7A3t{pBS^6f_5vL+`qk7`Y zpMMyd@%AQ`kjH))-sp=^*-ZdM7-Hcm@bAcjrS%Ov&uhKs-i^1byNA!;Z4^UjF!)(Y z#m|^8mk{}K*kYINuUz=99cM51bKt}~mEGHT?xBLh=MV1900;bh%I*5MGZMtCuCOe) zE9#j?!aX6v=@XFwm-+Zvo3qF(9Ox2kchJH;-me5lnJ;k4bI(`{NAv%G&Mn20-4KSI zjg^Cqhb?7`UGV?eEkqoQgh(9Rq`ai8r0S&bEYch)+A4{-oUFX;q^$pUkvfvX|9=KM z8wUqh%7+Rsz{$?X^#?zO{4ZZNPPYH|pcFebQ3N(F O9u9aaDk&9d`2Pc0;k!%# delta 12361 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 hw*TD9ee4{P|&&0;e2}eO8t|$Tbe*i%qU_t-@ diff --git a/man/vlmcsd.ini.5.unix.txt b/man/vlmcsd.ini.5.unix.txt index c7836ef..7506aaa 100644 --- a/man/vlmcsd.ini.5.unix.txt +++ b/man/vlmcsd.ini.5.unix.txt @@ -208,88 +208,123 @@ KEYWORDS logging to stdout(3). + WhitelistingLevel + Can be 0, 1, 2 or 3. The default is 0. Sets the whitelisting + level to determine which products vlmcsd activates or refuses. + + 0: activate all products with an unknown, retail or + beta/preview KMS ID. + 1: activate products with a retail or beta/preview KMS ID + but refuse to activate products with an unknown KMS ID. + 2: activate products with an unknown KMS ID but refuse + products with a retail or beta/preview KMS ID. + 3: activate only products with a known volume license RTM + KMS ID and refuse all others. + + + The SKU ID is not checked. Like a genuine KMS server vlmcsd + activates a product that has a random or unknown SKU ID. If you + select 1 or 3, vlmcsd also checks the Application ID for cor‐ + rectness. If Microsoft introduces a new KMS ID for a new prod‐ + uct, you cannot activate it if you used 1 or 3 until a new ver‐ + sion of vlmcsd is available. + + + CheckClientTime + Can be TRUE or FALSE. The default is FALSE. If you set this to + TRUE vlmcsd(8) checks if the client time differs no more than + four hours from the system time. This is useful to prevent emu‐ + lator detection. A client that tries to detect an emulator could + simply send two subsequent request with two time stamps that + differ more than four hours from each other. If both requests + succeed, the server is an emulator. If you set this to TRUE on a + system with no reliable time source, activations will fail. It + is ok to set the correct system time after you started vlm‐ + csd(8). + + ActivationInterval - This is the same as specifying -A on the command line. See vlm‐ + This is the same as specifying -A on the command line. See vlm‐ csd(8) for details. The default is 2 hours. Example: Activation‐ Interval = 1h RenewalInterval - This is the same as specifying -R on the command line. See vlm‐ - csd(8) for details. The default is 7 days. Example: RenewalIn‐ + This is the same as specifying -R on the command line. See vlm‐ + csd(8) for details. The default is 7 days. Example: RenewalIn‐ terval = 3d. Please note that the KMS client decides itself when to renew activation. Even though vlmcsd sends the renewal inter‐ - val you specify, it is no more than some kind of recommendation - to the client. Older KMS clients did follow the recommendation + val you specify, it is no more than some kind of recommendation + to the client. Older KMS clients did follow the recommendation from a KMS server or emulator. Newer clients do not. - User Run vlmcsd as another, preferrably less privileged, user. The - argument can be a user name or a numeric user id. You must have - the required privileges (capabilities on Linux) to change the - security context of a process without providing any credentials - (a password in most cases). On most unixoid OSses 'root' is the + User Run vlmcsd as another, preferrably less privileged, user. The + argument can be a user name or a numeric user id. You must have + the required privileges (capabilities on Linux) to change the + security context of a process without providing any credentials + (a password in most cases). On most unixoid OSses 'root' is the only user who has these privileges in the default configuration. - This setting is not available in the native Windows version of - vlmcsd. See -u in vlmcsd(8). This setting cannot be changed on + This setting is not available in the native Windows version of + vlmcsd. See -u in vlmcsd(8). This setting cannot be changed on the fly by sending SIGHUP to vlmcsd. - Group Run vlmcsd as another, preferrably less privileged, group. The - argument can be a group name or a numeric group id. You must - have the required privileges (capabilities on Linux) to change - the security context of a process without providing any creden‐ - tials (a password in most cases). On most unixoid OSses 'root' + Group Run vlmcsd as another, preferrably less privileged, group. The + argument can be a group name or a numeric group id. You must + have the required privileges (capabilities on Linux) to change + the security context of a process without providing any creden‐ + tials (a password in most cases). On most unixoid OSses 'root' is the only user who has these privileges in the default config‐ - uration. This setting is not available in the native Windows - version of vlmcsd. See -g in vlmcsd(8). This setting cannot be + uration. This setting is not available in the native Windows + version of vlmcsd. See -g in vlmcsd(8). This setting cannot be changed on the fly by sending SIGHUP to vlmcsd. Windows - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Windows activations. If specified, RandomizationLevel + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Windows activations. If specified, RandomizationLevel for Windows activitations will be ignored. Office2010 - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Office 2010 activations. If specified, Randomization‐ + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Office 2010 activations. If specified, Randomization‐ Level for Office 2010 activitations will be ignored. Office2013 - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Office 2013 activations. If specified, Randomization‐ + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Office 2013 activations. If specified, Randomization‐ Level for Office 2013 activitations will be ignored. Office2016 - The argument has the form ePID [ / HwId ]. Always use ePID and - HwId for Office 2016 activations. If specified, Randomization‐ + The argument has the form ePID [ / HwId ]. Always use ePID and + HwId for Office 2016 activations. If specified, Randomization‐ Level for Office 2016 activitations will be ignored. VALID EPIDS - The ePID is currently a comment only. You can specify any string up to - 63 bytes. In Windows 7 Microsoft has blacklisted few ( < 10 ) ePIDs - that were used in KMSv5 versions of the "Ratiborus Virtual Machine". - Microsoft has given up on blacklisting when KMS emulators appeared in + The ePID is currently a comment only. You can specify any string up to + 63 bytes. In Windows 7 Microsoft has blacklisted few ( < 10 ) ePIDs + that were used in KMSv5 versions of the "Ratiborus Virtual Machine". + Microsoft has given up on blacklisting when KMS emulators appeared in the wild. Even if you can use "Activated by cool hacker guys" as an ePID, you may wish to use ePIDs that cannot be detected as non-MS ePIDs. If you don't - know how these "valid" ePIDs look like exactly, do not use GUIDS in - vlmcsd.ini. vlmcsd provides internal mechanisms to generate valid + know how these "valid" ePIDs look like exactly, do not use GUIDS in + vlmcsd.ini. vlmcsd provides internal mechanisms to generate valid ePIDs. If you use non-ASCII characters in your ePID (you shouldn't do anyway), - these must be in UTF-8 format. This is especially important when you + these must be in UTF-8 format. This is especially important when you run vlmcsd on Windows or cygwin because UTF-8 is not the default encod‐ ing for most editors. If you are specifying an optional HWID it follows the same syntax as in - the -H option in vlmcsd(8) ecxept that you must not enclose a HWID in + the -H option in vlmcsd(8) ecxept that you must not enclose a HWID in quotes even if it contains spaces. @@ -303,7 +338,7 @@ AUTHOR CREDITS - Thanks to CODYQX4, deagles, eIcn, mikmik38, nosferati87, qad, Rati‐ + Thanks to CODYQX4, deagles, eIcn, mikmik38, nosferati87, qad, Rati‐ borus, ... @@ -312,4 +347,4 @@ SEE ALSO -Hotbird64 September 2016 VLMCSD.INI(5) +Hotbird64 October 2016 VLMCSD.INI(5) diff --git a/man/vlmcsdmulti.1.html b/man/vlmcsdmulti.1.html index 0c35402..48d1f96 100644 --- a/man/vlmcsdmulti.1.html +++ b/man/vlmcsdmulti.1.html @@ -1,5 +1,5 @@ - + @@ -36,8 +36,8 @@

-

vlmcsdmulti -− a multi-call binary containing vlmcs(1) and +

vlmcsdmulti - a +multi-call binary containing vlmcs(1) and vlmcsd(8)

SYNOPSIS diff --git a/man/vlmcsdmulti.1.pdf b/man/vlmcsdmulti.1.pdf index c1b9b77b82cc3877788087ec010b534dd3e1f7c1..777415892e08924893eff2f7978c2ab46d50b198 100644 GIT binary patch delta 67 zcmdnxx65zCR7S>Wo2M~Ku(PmVSh{HPCXO_ABSQmYLvzE)@|-p>_U0r`9vNO^GX)C; R1BD<3E`2xS&DE;=83D*|5~=_I delta 67 zcmdnxx65zCR7S>So2M~Ku(KR`y3}FvCXO_ALqj7&V-wTK@|-p>_U0r`9vNOkGX)C; R1BD<3E`2w{&DE;=83E(Y6DR-x diff --git a/src/GNUmakefile b/src/GNUmakefile index 2b76ec2..dc9bc49 100644 --- a/src/GNUmakefile +++ b/src/GNUmakefile @@ -62,7 +62,7 @@ DNS_PARSER ?= OS # You should supply your own version string here -VLMCSD_VERSION ?= $(shell test -d .svn && echo svn`svnversion`) +VLMCSD_VERSION ?= $(shell test -d ../.svn && echo svn`svnversion`) FEATURES ?= full VERBOSE ?= NO @@ -251,14 +251,14 @@ else STRIPFLAGS += -s endif -LIBRARY_CFLAGS = -DSIMPLE_SOCKETS -DNO_TIMEOUT -DNO_SIGHUP -DNO_CL_PIDS -DNO_EXTENDED_PRODUCT_LIST -DNO_BASIC_PRODUCT_LIST -DNO_LOG -DNO_RANDOM_EPID -DNO_INI_FILE -DNO_HELP -DNO_CUSTOM_INTERVALS -DNO_PID_FILE -DNO_USER_SWITCH -DNO_VERBOSE_LOG -DNO_LIMIT -DNO_VERSION_INFORMATION -DNO_PRIVATE_IP_DETECT +LIBRARY_CFLAGS = -DSIMPLE_SOCKETS -DNO_TIMEOUT -DNO_SIGHUP -DNO_CL_PIDS -DNO_EXTENDED_PRODUCT_LIST -DNO_BASIC_PRODUCT_LIST -DNO_LOG -DNO_RANDOM_EPID -DNO_INI_FILE -DNO_HELP -DNO_CUSTOM_INTERVALS -DNO_PID_FILE -DNO_USER_SWITCH -DNO_VERBOSE_LOG -DNO_LIMIT -DNO_VERSION_INFORMATION -DNO_PRIVATE_IP_DETECT -UNO_SOCKETS -USIMPLE_RPC ifeq ($(FEATURES), embedded) BASECFLAGS += -DNO_HELP -DNO_USER_SWITCH -DNO_BASIC_PRODUCT_LIST -DNO_CUSTOM_INTERVALS -DNO_PID_FILE -DNO_VERBOSE_LOG -DNO_VERSION_INFORMATION else ifeq ($(FEATURES), autostart) BASECFLAGS += -DNO_HELP -DNO_VERSION_INFORMATION else ifeq ($(FEATURES), minimum) - BASECFLAGS += -DSIMPLE_SOCKETS -DNO_TIMEOUT -DNO_SIGHUP -DNO_CL_PIDS -DNO_EXTENDED_PRODUCT_LIST -DNO_BASIC_PRODUCT_LIST -DNO_LOG -DNO_RANDOM_EPID -DNO_INI_FILE -DNO_HELP -DNO_CUSTOM_INTERVALS -DNO_PID_FILE -DNO_USER_SWITCH -DNO_VERBOSE_LOG -DNO_LIMIT -DNO_VERSION_INFORMATION -DNO_PRIVATE_IP_DETECT -DSMALL_AES + BASECFLAGS += -DSIMPLE_RPC -DSIMPLE_SOCKETS -DNO_TIMEOUT -DNO_SIGHUP -DNO_CL_PIDS -DNO_EXTENDED_PRODUCT_LIST -DNO_BASIC_PRODUCT_LIST -DNO_LOG -DNO_RANDOM_EPID -DNO_INI_FILE -DNO_HELP -DNO_CUSTOM_INTERVALS -DNO_PID_FILE -DNO_USER_SWITCH -DNO_VERBOSE_LOG -DNO_LIMIT -DNO_VERSION_INFORMATION -DNO_PRIVATE_IP_DETECT -DSMALL_AES else ifeq ($(FEATURES), most) BASECFLAGS += -DNO_SIGHUP -DNO_PID_FILE -DNO_LIMIT else ifeq ($(FEATURES), inetd) diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/_G_config.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/_G_config.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/_G_config.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/_G_config.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aliases.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aliases.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aliases.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/aliases.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/alloca.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/alloca.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/alloca.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/alloca.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ar.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ar.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ar.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ar.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argz.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argz.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argz.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/argz.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/ftp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/ftp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/ftp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/ftp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/inet.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/inet.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/inet.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/inet.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser_compat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser_compat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser_compat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/nameser_compat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/telnet.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/telnet.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/telnet.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/telnet.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/tftp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/tftp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/tftp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/arpa/tftp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/auxvec.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/auxvec.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/auxvec.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/auxvec.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/bitsperlong.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/bitsperlong.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/bitsperlong.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/bitsperlong.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno-base.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno-base.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno-base.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno-base.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/errno.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/fcntl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/fcntl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/fcntl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/fcntl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-l64.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-l64.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-l64.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-l64.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-ll64.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-ll64.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-ll64.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/int-ll64.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctls.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctls.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctls.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ioctls.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ipcbuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ipcbuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ipcbuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ipcbuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/kvm_para.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/kvm_para.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/kvm_para.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/kvm_para.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman-common.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman-common.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman-common.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman-common.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/mman.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/msgbuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/msgbuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/msgbuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/msgbuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/param.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/param.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/param.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/param.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/poll.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/poll.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/poll.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/poll.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/posix_types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/posix_types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/posix_types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/posix_types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/resource.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/resource.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/resource.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/resource.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sembuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sembuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sembuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sembuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/setup.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/setup.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/setup.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/setup.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmbuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmbuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmbuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmbuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmparam.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmparam.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmparam.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/shmparam.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/siginfo.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/siginfo.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/siginfo.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/siginfo.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal-defs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal-defs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal-defs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal-defs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/signal.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/socket.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/socket.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/socket.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/socket.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sockios.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sockios.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sockios.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/sockios.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/stat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/stat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/stat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/stat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/statfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/statfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/statfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/statfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/swab.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/swab.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/swab.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/swab.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termbits.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termbits.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termbits.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termbits.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termios.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termios.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termios.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/termios.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ucontext.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ucontext.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ucontext.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/ucontext.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/unistd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/unistd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/unistd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm-generic/unistd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/a.out.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/a.out.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/a.out.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/a.out.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/auxvec.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/auxvec.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/auxvec.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/auxvec.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bitsperlong.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bitsperlong.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bitsperlong.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bitsperlong.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/boot.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/boot.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/boot.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/boot.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bootparam.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bootparam.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bootparam.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/bootparam.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/byteorder.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/byteorder.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/byteorder.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/byteorder.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/debugreg.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/debugreg.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/debugreg.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/debugreg.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/e820.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/e820.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/e820.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/e820.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/errno.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/errno.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/errno.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/errno.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/fcntl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/fcntl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/fcntl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/fcntl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hw_breakpoint.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hw_breakpoint.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hw_breakpoint.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hw_breakpoint.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hyperv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hyperv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hyperv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/hyperv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctls.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctls.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctls.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ioctls.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ipcbuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ipcbuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ipcbuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ipcbuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ist.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ist.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ist.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ist.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_para.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_para.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_para.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_para.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_perf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_perf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_perf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/kvm_perf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ldt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ldt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ldt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ldt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mce.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mce.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mce.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mce.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mman.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mman.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mman.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mman.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msgbuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msgbuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msgbuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msgbuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr-index.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr-index.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr-index.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr-index.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/msr.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mtrr.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mtrr.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mtrr.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/mtrr.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/param.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/param.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/param.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/param.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/perf_regs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/perf_regs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/perf_regs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/perf_regs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/poll.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/poll.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/poll.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/poll.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_32.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_32.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_32.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_32.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_64.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_64.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_64.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_64.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_x32.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_x32.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_x32.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/posix_types_x32.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/prctl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/prctl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/prctl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/prctl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/processor-flags.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/processor-flags.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/processor-flags.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/processor-flags.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace-abi.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace-abi.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace-abi.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace-abi.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ptrace.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/resource.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/resource.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/resource.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/resource.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sembuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sembuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sembuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sembuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/setup.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/setup.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/setup.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/setup.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/shmbuf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/shmbuf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/shmbuf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/shmbuf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext32.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext32.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext32.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sigcontext32.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/siginfo.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/siginfo.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/siginfo.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/siginfo.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/signal.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/signal.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/signal.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/signal.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/socket.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/socket.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/socket.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/socket.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sockios.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sockios.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sockios.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/sockios.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/stat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/stat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/stat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/stat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/statfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/statfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/statfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/statfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/svm.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/svm.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/svm.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/svm.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/swab.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/swab.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/swab.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/swab.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termbits.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termbits.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termbits.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termbits.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termios.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termios.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termios.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/termios.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ucontext.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ucontext.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ucontext.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/ucontext.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_32.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_32.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_32.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_32.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_64.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_64.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_64.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_64.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_x32.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_x32.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_x32.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/unistd_x32.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vm86.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vm86.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vm86.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vm86.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vmx.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vmx.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vmx.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vmx.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vsyscall.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vsyscall.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vsyscall.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/asm/vsyscall.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/assert.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/assert.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/assert.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/assert.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/a.out.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/a.out.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/a.out.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/a.out.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/auxv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/auxv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/auxv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/auxv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap-16.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap-16.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap-16.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap-16.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/byteswap.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/cmathcalls.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/cmathcalls.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/cmathcalls.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/cmathcalls.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/confname.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/confname.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/confname.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/confname.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dirent.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dirent.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dirent.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dirent.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dlfcn.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dlfcn.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dlfcn.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/dlfcn.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/elfclass.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/elfclass.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/elfclass.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/elfclass.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/endian.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/endian.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/endian.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/endian.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/environments.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/environments.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/environments.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/environments.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/epoll.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/epoll.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/epoll.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/epoll.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/errno.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/errno.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/errno.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/errno.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/error.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/error.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/error.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/error.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/eventfd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/eventfd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/eventfd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/eventfd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl-linux.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl-linux.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl-linux.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl-linux.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fcntl2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenvinline.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenvinline.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenvinline.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/fenvinline.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_val.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_val.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_val.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_val.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_valf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_valf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_valf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_valf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_vall.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_vall.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_vall.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/huge_vall.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/hwcap.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/hwcap.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/hwcap.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/hwcap.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/in.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/in.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/in.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/in.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/initspin.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/initspin.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/initspin.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/initspin.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inotify.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inotify.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inotify.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/inotify.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctl-types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctl-types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctl-types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctl-types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctls.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctls.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctls.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ioctls.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipc.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipc.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipc.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipc.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipctypes.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipctypes.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipctypes.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ipctypes.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libio-ldbl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libio-ldbl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libio-ldbl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libio-ldbl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/link.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/link.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/link.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/link.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/local_lim.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/local_lim.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/local_lim.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/local_lim.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/locale.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/locale.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/locale.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/locale.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-finite.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-finite.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-finite.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-finite.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-vector.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-vector.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-vector.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/math-vector.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathcalls.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathcalls.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathcalls.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathcalls.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathdef.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathdef.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathdef.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathdef.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathinline.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathinline.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathinline.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mathinline.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman-linux.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman-linux.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman-linux.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman-linux.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mman.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/monetary-ldbl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/monetary-ldbl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/monetary-ldbl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/monetary-ldbl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/mqueue2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/msq.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/msq.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/msq.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/msq.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/nan.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/nan.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/nan.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/nan.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/netdb.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/netdb.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/netdb.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/netdb.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/param.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/param.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/param.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/param.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/poll2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix1_lim.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix1_lim.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix1_lim.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix1_lim.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix2_lim.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix2_lim.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix2_lim.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix2_lim.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix_opt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix_opt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix_opt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/posix_opt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/printf-ldbl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/printf-ldbl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/printf-ldbl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/printf-ldbl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/pthreadtypes.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/pthreadtypes.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/pthreadtypes.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/pthreadtypes.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/resource.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/resource.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/resource.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/resource.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sched.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sched.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sched.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sched.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/select2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sem.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sem.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sem.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sem.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/semaphore.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/semaphore.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/semaphore.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/semaphore.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/setjmp2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/shm.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/shm.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/shm.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/shm.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigaction.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigaction.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigaction.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigaction.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigcontext.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigcontext.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigcontext.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigcontext.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/siginfo.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/siginfo.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/siginfo.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/siginfo.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signalfd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signalfd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signalfd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signalfd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signum.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signum.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signum.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/signum.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigset.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigset.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigset.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigset.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigstack.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigstack.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigstack.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigstack.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigthread.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigthread.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigthread.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sigthread.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sockaddr.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sockaddr.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sockaddr.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sockaddr.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket_type.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket_type.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket_type.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/socket_type.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stab.def b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stab.def similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stab.def rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stab.def diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statvfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statvfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statvfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/statvfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio-ldbl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio-ldbl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio-ldbl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio-ldbl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio_lim.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio_lim.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio_lim.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdio_lim.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-bsearch.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-bsearch.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-bsearch.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-bsearch.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-float.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-float.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-float.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-float.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-ldbl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-ldbl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-ldbl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib-ldbl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stdlib.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string3.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string3.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string3.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/string3.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stropts.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stropts.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stropts.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/stropts.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sys_errlist.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sys_errlist.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sys_errlist.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sys_errlist.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syscall.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syscall.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syscall.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syscall.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sysctl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sysctl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sysctl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/sysctl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-ldbl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-ldbl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-ldbl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-ldbl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-path.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-path.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-path.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog-path.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/syslog.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/termios.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/termios.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/termios.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/termios.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/time.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/time.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/time.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/time.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timerfd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timerfd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timerfd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timerfd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timex.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timex.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timex.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/timex.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/typesizes.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/typesizes.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/typesizes.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/typesizes.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/uio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/uio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/uio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/uio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/unistd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/unistd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/unistd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/unistd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ustat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ustat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ustat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/ustat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmpx.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmpx.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmpx.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utmpx.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utsname.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utsname.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utsname.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/utsname.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitflags.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitflags.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitflags.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitflags.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitstatus.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitstatus.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitstatus.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/waitstatus.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar-ldbl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar-ldbl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar-ldbl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar-ldbl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar2.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar2.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar2.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wchar2.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wordsize.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wordsize.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wordsize.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/wordsize.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xopen_lim.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xopen_lim.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xopen_lim.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xopen_lim.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xtitypes.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xtitypes.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xtitypes.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/bits/xtitypes.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/byteswap.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/byteswap.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/byteswap.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/byteswap.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/complex.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/complex.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/complex.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/complex.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/cpio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/cpio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/cpio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/cpio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/crypt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/crypt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/crypt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/crypt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ctype.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ctype.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ctype.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ctype.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dirent.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dirent.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dirent.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dirent.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dlfcn.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dlfcn.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dlfcn.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/dlfcn.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/elf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/elf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/elf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/elf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/endian.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/endian.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/endian.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/endian.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/envz.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/envz.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/envz.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/envz.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/err.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/err.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/err.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/err.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/errno.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/errno.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/errno.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/errno.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/error.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/error.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/error.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/error.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/execinfo.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/execinfo.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/execinfo.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/execinfo.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fcntl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fcntl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fcntl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fcntl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/features.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/features.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/features.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/features.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fenv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fenv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fenv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fenv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fmtmsg.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fmtmsg.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fmtmsg.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fmtmsg.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fnmatch.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fnmatch.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fnmatch.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fnmatch.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fstab.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fstab.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fstab.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fstab.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fts.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fts.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fts.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/fts.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ftw.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ftw.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ftw.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ftw.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gawkapi.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gawkapi.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gawkapi.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gawkapi.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gconv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gconv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gconv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gconv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/getopt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/getopt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/getopt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/getopt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/glob.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/glob.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/glob.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/glob.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnu-versions.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnu-versions.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnu-versions.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnu-versions.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnumake.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnumake.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnumake.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gnumake.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/grp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/grp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/grp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/grp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gshadow.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gshadow.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gshadow.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/gshadow.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/iconv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/iconv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/iconv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/iconv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ifaddrs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ifaddrs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ifaddrs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ifaddrs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/inttypes.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/inttypes.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/inttypes.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/inttypes.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/langinfo.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/langinfo.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/langinfo.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/langinfo.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/lastlog.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/lastlog.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/lastlog.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/lastlog.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libgen.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libgen.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libgen.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libgen.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libintl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libintl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libintl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libintl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/libio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/limits.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/limits.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/limits.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/limits.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/link.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/link.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/link.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/link.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/locale.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/locale.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/locale.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/locale.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/malloc.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/malloc.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/malloc.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/malloc.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/math.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/math.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/math.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/math.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mcheck.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mcheck.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mcheck.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mcheck.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/memory.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/memory.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/memory.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/memory.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/misc/cxl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/misc/cxl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/misc/cxl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/misc/cxl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mntent.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mntent.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mntent.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mntent.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/monetary.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/monetary.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/monetary.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/monetary.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mqueue.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mqueue.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mqueue.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/mqueue.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ethernet.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ethernet.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ethernet.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ethernet.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_arp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_arp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_arp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_arp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_packet.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_packet.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_packet.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_packet.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_ppp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_ppp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_ppp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_ppp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_shaper.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_shaper.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_shaper.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_shaper.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_slip.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_slip.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_slip.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/if_slip.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp-comp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp-comp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp-comp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp-comp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp_defs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp_defs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp_defs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/ppp_defs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/route.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/route.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/route.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/net/route.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netdb.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netdb.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netdb.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netdb.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ether.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ether.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ether.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ether.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/icmp6.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/icmp6.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/icmp6.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/icmp6.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_ether.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_ether.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_ether.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_ether.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_fddi.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_fddi.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_fddi.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_fddi.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_tr.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_tr.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_tr.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/if_tr.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/igmp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/igmp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/igmp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/igmp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in_systm.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in_systm.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in_systm.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/in_systm.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip6.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip6.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip6.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip6.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip_icmp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip_icmp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip_icmp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/ip_icmp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/tcp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/tcp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/tcp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/tcp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/udp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/udp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/udp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/netinet/udp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nl_types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nl_types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nl_types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nl_types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nss.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nss.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nss.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/nss.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/obstack.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/obstack.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/obstack.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/obstack.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/paths.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/paths.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/paths.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/paths.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/poll.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/poll.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/poll.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/poll.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/printf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/printf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/printf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/printf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/routed.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/routed.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/routed.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/routed.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/rwhod.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/rwhod.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/rwhod.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/rwhod.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/talkd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/talkd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/talkd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/talkd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/timed.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/timed.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/timed.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/protocols/timed.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pthread.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pthread.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pthread.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pthread.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pty.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pty.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pty.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pty.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pwd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pwd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pwd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/pwd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/re_comp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/re_comp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/re_comp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/re_comp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regex.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regex.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regex.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regex.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regexp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regexp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regexp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/regexp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/resolv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/resolv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/resolv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/resolv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_des.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_des.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_des.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_des.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_unix.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_unix.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_unix.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/auth_unix.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/clnt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/clnt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/clnt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/clnt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/des_crypt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/des_crypt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/des_crypt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/des_crypt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/key_prot.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/key_prot.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/key_prot.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/key_prot.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/netdb.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/netdb.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/netdb.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/netdb.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_clnt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_clnt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_clnt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_clnt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_prot.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_prot.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_prot.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_prot.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_rmt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_rmt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_rmt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/pmap_rmt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_des.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_des.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_des.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_des.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_msg.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_msg.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_msg.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/rpc_msg.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc_auth.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc_auth.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc_auth.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/svc_auth.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/xdr.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/xdr.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/xdr.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/rpc/xdr.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sched.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sched.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sched.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sched.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/search.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/search.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/search.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/search.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/semaphore.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/semaphore.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/semaphore.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/semaphore.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/setjmp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/setjmp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/setjmp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/setjmp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sgtty.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sgtty.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sgtty.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sgtty.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/shadow.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/shadow.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/shadow.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/shadow.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/signal.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/signal.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/signal.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/signal.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/spawn.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/spawn.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/spawn.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/spawn.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stab.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stab.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stab.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stab.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdc-predef.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdc-predef.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdc-predef.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdc-predef.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdint.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdint.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdint.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdint.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio_ext.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio_ext.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio_ext.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdio_ext.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdlib.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdlib.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdlib.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stdlib.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/string.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/string.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/string.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/string.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/strings.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/strings.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/strings.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/strings.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stropts.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stropts.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stropts.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/stropts.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sudo_plugin.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sudo_plugin.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sudo_plugin.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sudo_plugin.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acct.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acct.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acct.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acct.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/acl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/asoundlib.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/asoundlib.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/asoundlib.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/asoundlib.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/auxv.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/auxv.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/auxv.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/auxv.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/bitypes.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/bitypes.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/bitypes.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/bitypes.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/capability.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/capability.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/capability.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/capability.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/cdefs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/cdefs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/cdefs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/cdefs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/debugreg.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/debugreg.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/debugreg.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/debugreg.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/dir.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/dir.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/dir.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/dir.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/elf.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/elf.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/elf.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/elf.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/epoll.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/epoll.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/epoll.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/epoll.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/errno.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/errno.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/errno.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/errno.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/eventfd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/eventfd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/eventfd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/eventfd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fanotify.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fanotify.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fanotify.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fanotify.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fcntl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fcntl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fcntl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fcntl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/file.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/file.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/file.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/file.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fsuid.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fsuid.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fsuid.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/fsuid.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon_out.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon_out.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon_out.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/gmon_out.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/inotify.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/inotify.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/inotify.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/inotify.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/io.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/io.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/io.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/io.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ioctl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ioctl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ioctl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ioctl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ipc.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ipc.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ipc.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ipc.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/kd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/kd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/kd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/kd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/klog.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/klog.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/klog.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/klog.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mman.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mman.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mman.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mman.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mount.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mount.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mount.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mount.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/msg.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/msg.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/msg.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/msg.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mtio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mtio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mtio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/mtio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/param.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/param.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/param.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/param.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/pci.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/pci.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/pci.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/pci.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/perm.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/perm.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/perm.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/perm.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/personality.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/personality.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/personality.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/personality.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/poll.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/poll.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/poll.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/poll.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/prctl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/prctl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/prctl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/prctl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/procfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/procfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/procfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/procfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/profil.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/profil.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/profil.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/profil.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ptrace.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ptrace.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ptrace.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ptrace.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/queue.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/queue.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/queue.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/queue.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/quota.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/quota.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/quota.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/quota.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/raw.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/raw.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/raw.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/raw.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reboot.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reboot.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reboot.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reboot.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reg.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reg.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reg.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/reg.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/resource.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/resource.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/resource.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/resource.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/select.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/select.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/select.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/select.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sem.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sem.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sem.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sem.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sendfile.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sendfile.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sendfile.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sendfile.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/shm.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/shm.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/shm.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/shm.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signal.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signal.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signal.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signal.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signalfd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signalfd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signalfd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/signalfd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socket.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socket.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socket.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socket.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socketvar.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socketvar.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socketvar.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/socketvar.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/soundcard.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/soundcard.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/soundcard.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/soundcard.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statvfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statvfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statvfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/statvfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stropts.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stropts.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stropts.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/stropts.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/swap.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/swap.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/swap.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/swap.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syscall.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syscall.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syscall.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syscall.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysctl.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysctl.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysctl.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysctl.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysinfo.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysinfo.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysinfo.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysinfo.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syslog.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syslog.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syslog.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/syslog.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysmacros.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysmacros.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysmacros.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/sysmacros.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/termios.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/termios.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/termios.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/termios.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/time.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/time.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/time.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/time.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timeb.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timeb.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timeb.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timeb.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timerfd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timerfd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timerfd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timerfd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/times.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/times.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/times.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/times.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timex.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timex.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timex.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/timex.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttychars.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttychars.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttychars.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttychars.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttydefaults.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttydefaults.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttydefaults.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ttydefaults.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/types.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/types.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/types.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/types.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ucontext.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ucontext.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ucontext.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ucontext.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/uio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/uio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/uio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/uio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ultrasound.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ultrasound.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ultrasound.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ultrasound.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/un.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/un.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/un.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/un.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/unistd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/unistd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/unistd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/unistd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/user.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/user.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/user.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/user.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ustat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ustat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ustat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/ustat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/utsname.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/utsname.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/utsname.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/utsname.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vfs.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vfs.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vfs.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vfs.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vlimit.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vlimit.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vlimit.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vlimit.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vm86.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vm86.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vm86.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vm86.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vt.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vt.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vt.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vt.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vtimes.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vtimes.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vtimes.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/vtimes.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/wait.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/wait.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/wait.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/wait.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/xattr.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/xattr.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/xattr.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sys/xattr.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syscall.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syscall.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syscall.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syscall.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sysexits.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sysexits.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sysexits.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/sysexits.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syslog.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syslog.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syslog.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/syslog.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tar.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tar.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tar.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tar.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termio.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termio.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termio.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termio.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termios.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termios.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termios.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/termios.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tgmath.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tgmath.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tgmath.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/tgmath.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/thread_db.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/thread_db.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/thread_db.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/thread_db.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/time.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/time.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/time.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/time.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ttyent.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ttyent.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ttyent.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ttyent.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/uchar.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/uchar.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/uchar.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/uchar.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ucontext.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ucontext.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ucontext.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ucontext.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ulimit.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ulimit.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ulimit.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ulimit.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/unistd.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/unistd.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/unistd.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/unistd.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ustat.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ustat.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ustat.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/ustat.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utime.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utime.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utime.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utime.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmpx.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmpx.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmpx.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/utmpx.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/values.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/values.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/values.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/values.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wait.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wait.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wait.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wait.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wchar.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wchar.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wchar.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wchar.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wctype.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wctype.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wctype.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wctype.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wordexp.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wordexp.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wordexp.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/wordexp.h diff --git a/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/xlocale.h b/src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/xlocale.h similarity index 100% rename from VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/xlocale.h rename to src/VisualStudio-Linux-Remote/toolchains/gcc5-x86_64-linux-gnu/usr/include/xlocale.h diff --git a/src/config.h b/src/config.h index 24d9aed..73dc113 100644 --- a/src/config.h +++ b/src/config.h @@ -37,19 +37,19 @@ */ #ifndef EPID_WINDOWS -#define EPID_WINDOWS "03612-00206-471-494932-03-1033-14393.0000-2382016" +#define EPID_WINDOWS "03612-00206-471-109239-03-1033-14393.0000-2932016" #endif #ifndef EPID_OFFICE2010 -#define EPID_OFFICE2010 "03612-00096-199-954738-03-1033-14393.0000-2382016" +#define EPID_OFFICE2010 "03612-00096-199-390352-03-1033-14393.0000-2932016" #endif #ifndef EPID_OFFICE2013 -#define EPID_OFFICE2013 "03612-00206-234-177489-03-1033-14393.0000-2382016" +#define EPID_OFFICE2013 "03612-00206-234-938378-03-1033-14393.0000-2932016" #endif #ifndef EPID_OFFICE2016 -#define EPID_OFFICE2016 "03612-00206-437-728387-03-1033-14393.0000-2382016" +#define EPID_OFFICE2016 "03612-00206-437-305903-03-1033-14393.0000-2932016" #endif #ifndef HWID // HwId from the Ratiborus VM @@ -455,6 +455,20 @@ +#ifndef NO_STRICT_MODES +/* + * Disables the product whitelisting features. Removes -K0, -K1, -K2 and -K3 from vlmcsd + * command line options and WhitelistingLevel from INI file parameters. vlmcsd always behaves + * as if it was started with -K0. + */ + +//#define NO_STRICT_MODES + +#endif // NO_STRICT_MODES + + + + #ifndef NO_RANDOM_EPID /* * Disables the ability to generate random ePIDs. Useful if you managed to grab ePID/HWID from a @@ -619,6 +633,19 @@ +#ifndef SIMPLE_RPC +/* + * Uses a simple version of the RPC protocol which does not support NDR64 and BTFN. + * Supports RPC with the features present in Windows XP and earlier only. Using this creates + * smaller binaries but makes emulator detection easier. + */ + +//#define SIMPLE_RPC +#endif // !SIMPLE_RPC + + + + #ifndef SIMPLE_SOCKETS /* * Disables the ability to choose IP addresses using the -L option in vlmcsd. vlmcsd will listen on all IP addresses. diff --git a/src/helpers.c b/src/helpers.c index 9c85025..b702e03 100644 --- a/src/helpers.c +++ b/src/helpers.c @@ -29,85 +29,85 @@ -/* - * UCS2 <-> UTF-8 functions - * All functions use little endian UCS2 since we only need it to communicate with Windows via RPC - */ - -// Convert one character from UTF-8 to UCS2 -// Returns 0xffff, if utf-8 evaluates to > 0xfffe (outside basic multilingual pane) -WCHAR utf8_to_ucs2_char (const unsigned char *input, const unsigned char **end_ptr) + /* + * UCS2 <-> UTF-8 functions + * All functions use little endian UCS2 since we only need it to communicate with Windows via RPC + */ + + // Convert one character from UTF-8 to UCS2 + // Returns 0xffff, if utf-8 evaluates to > 0xfffe (outside basic multilingual pane) +WCHAR utf8_to_ucs2_char(const unsigned char *input, const unsigned char **end_ptr) { - *end_ptr = input; - if (input[0] == 0) - return ~0; + *end_ptr = input; + if (input[0] == 0) + return ~0; - if (input[0] < 0x80) { - *end_ptr = input + 1; - return LE16(input[0]); - } + if (input[0] < 0x80) { + *end_ptr = input + 1; + return LE16(input[0]); + } - if ((input[0] & 0xE0) == 0xE0) { + if ((input[0] & 0xE0) == 0xE0) { - if (input[1] == 0 || input[2] == 0) - return ~0; + if (input[1] == 0 || input[2] == 0) + return ~0; - *end_ptr = input + 3; + *end_ptr = input + 3; - return - LE16((input[0] & 0x0F)<<12 | - (input[1] & 0x3F)<<6 | - (input[2] & 0x3F)); - } + return + LE16((input[0] & 0x0F) << 12 | + (input[1] & 0x3F) << 6 | + (input[2] & 0x3F)); + } - if ((input[0] & 0xC0) == 0xC0) { - if (input[1] == 0) - return ~0; + if ((input[0] & 0xC0) == 0xC0) { + if (input[1] == 0) + return ~0; - *end_ptr = input + 2; + *end_ptr = input + 2; - return - LE16((input[0] & 0x1F)<<6 | - (input[1] & 0x3F)); - } - return ~0; + return + LE16((input[0] & 0x1F) << 6 | + (input[1] & 0x3F)); + } + return ~0; } // Convert one character from UCS2 to UTF-8 // Returns length of UTF-8 char (1, 2 or 3) or -1 on error (UTF-16 outside UCS2) // char *utf8 must be large enough to hold 3 bytes -int ucs2_to_utf8_char (const WCHAR ucs2_le, char *utf8) +int ucs2_to_utf8_char(const WCHAR ucs2_le, char *utf8) { - const WCHAR ucs2 = LE16(ucs2_le); - - if (ucs2 < 0x80) { - utf8[0] = (char)ucs2; - utf8[1] = '\0'; - return 1; - } - - if (ucs2 >= 0x80 && ucs2 < 0x800) { - utf8[0] = (ucs2 >> 6) | 0xC0; - utf8[1] = (ucs2 & 0x3F) | 0x80; - utf8[2] = '\0'; - return 2; - } - - if (ucs2 >= 0x800 && ucs2 < 0xFFFF) { - - if (ucs2 >= 0xD800 && ucs2 <= 0xDFFF) { - /* Ill-formed (UTF-16 ouside of BMP) */ - return -1; - } - - utf8[0] = ((ucs2 >> 12) ) | 0xE0; - utf8[1] = ((ucs2 >> 6 ) & 0x3F) | 0x80; - utf8[2] = ((ucs2 ) & 0x3F) | 0x80; - utf8[3] = '\0'; - return 3; - } - - return -1; + const WCHAR ucs2 = LE16(ucs2_le); + + if (ucs2 < 0x80) { + utf8[0] = (char)ucs2; + utf8[1] = '\0'; + return 1; + } + + if (ucs2 >= 0x80 && ucs2 < 0x800) { + utf8[0] = (ucs2 >> 6) | 0xC0; + utf8[1] = (ucs2 & 0x3F) | 0x80; + utf8[2] = '\0'; + return 2; + } + + if (ucs2 >= 0x800 && ucs2 < 0xFFFF) { + + if (ucs2 >= 0xD800 && ucs2 <= 0xDFFF) { + /* Ill-formed (UTF-16 ouside of BMP) */ + return -1; + } + + utf8[0] = ((ucs2 >> 12)) | 0xE0; + utf8[1] = ((ucs2 >> 6) & 0x3F) | 0x80; + utf8[2] = ((ucs2) & 0x3F) | 0x80; + utf8[3] = '\0'; + return 3; + } + + return -1; } @@ -141,13 +141,13 @@ BOOL ucs2_to_utf8(const WCHAR* const ucs2_le, char* utf8, size_t maxucs2, size_t const WCHAR* current_ucs2 = ucs2_le; unsigned int index_utf8 = 0; - for(*utf8 = 0; *current_ucs2; current_ucs2++) + for (*utf8 = 0; *current_ucs2; current_ucs2++) { if (current_ucs2 - ucs2_le > (intptr_t)maxucs2) return FALSE; int len = ucs2_to_utf8_char(*current_ucs2, utf8_char); if (index_utf8 + len > maxutf8) return FALSE; strncat(utf8, utf8_char, len); - index_utf8+=len; + index_utf8 += len; } return TRUE; @@ -164,7 +164,7 @@ BOOL stringToInt(const char *const szValue, const unsigned int min, const unsign errno = 0; long long result = vlmcsd_strtoll(szValue, &nextchar, 10); - if (errno || result < (long long)min || result > (long long)max || *nextchar) + if (errno || result < (long long)min || result >(long long)max || *nextchar) { return FALSE; } @@ -200,9 +200,9 @@ int_fast8_t string2Uuid(const char *const restrict input, GUID *const restrict g hex2bin((BYTE*)&guid->Data3, inputCopy + 14, 4); hex2bin(guid->Data4, input + 19, 16); - guid->Data1 = BE32(guid->Data1); - guid->Data2 = BE16(guid->Data2); - guid->Data3 = BE16(guid->Data3); + guid->Data1 = BE32(guid->Data1); + guid->Data2 = BE16(guid->Data2); + guid->Data3 = BE16(guid->Data3); return TRUE; } @@ -210,14 +210,25 @@ int_fast8_t string2Uuid(const char *const restrict input, GUID *const restrict g // convert GUID to little-endian void LEGUID(GUID *const restrict out, const GUID* const restrict in) { - #if __BYTE_ORDER != __LITTLE_ENDIAN +# if __BYTE_ORDER != __LITTLE_ENDIAN out->Data1 = LE32(in->Data1); out->Data2 = LE16(in->Data2); out->Data3 = LE16(in->Data3); memcpy(out->Data4, in->Data4, sizeof(out->Data4)); - #else +# else memcpy(out, in, sizeof(GUID)); - #endif +# endif +} + +__pure int IsEqualGuidLE(const GUID *const restrict first, const GUID *const restrict second) +{ +# if __BYTE_ORDER != __LITTLE_ENDIAN + GUID guid; + LEGUID(&guid, first); + return IsEqualGUID(&guid, second); +# else + return IsEqualGUID(first, second); +# endif } #if !IS_LIBRARY @@ -229,7 +240,7 @@ __pure unsigned int getOptionArgumentInt(const char o, const unsigned int min, c if (!stringToInt(optarg, min, max, &result)) { printerrorf("Fatal: Option \"-%c\" must be numeric between %u and %u.\n", o, min, max); - exit(!0); + exit(VLMCSD_EINVAL); } return result; @@ -238,16 +249,16 @@ __pure unsigned int getOptionArgumentInt(const char o, const unsigned int min, c // Resets getopt() to start parsing from the beginning void optReset(void) { - #if __minix__ || defined(__BSD__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) +#if __minix__ || defined(__BSD__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) optind = 1; optreset = 1; // Makes newer BSD getopt happy - #elif defined(__UCLIBC__) // uClibc headers also define __GLIBC__ so be careful here +#elif defined(__UCLIBC__) // uClibc headers also define __GLIBC__ so be careful here optind = 0; // uClibc seeks compatibility with GLIBC - #elif defined(__GLIBC__) +#elif defined(__GLIBC__) optind = 0; // Makes GLIBC getopt happy - #else // Standard for most systems +#else // Standard for most systems optind = 1; - #endif +#endif } #endif // !IS_LIBRARY @@ -256,7 +267,7 @@ void optReset(void) // Returns a static message buffer containing text for a given Win32 error. Not thread safe (same as strerror) char* win_strerror(const int message) { - #define STRERROR_BUFFER_SIZE 256 +#define STRERROR_BUFFER_SIZE 256 static char buffer[STRERROR_BUFFER_SIZE]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_MAX_WIDTH_MASK, NULL, message, 0, buffer, STRERROR_BUFFER_SIZE, NULL); @@ -317,7 +328,7 @@ void randomNumberInit() __noreturn void OutOfMemory(void) { errorout("Fatal: Out of memory"); - exit(!0); + exit(VLMCSD_ENOMEM); } @@ -360,17 +371,17 @@ __pure BOOL getArgumentBool(int_fast8_t *result, const char *const argument) !strncasecmp(argument, "on", 2) || !strncasecmp(argument, "yes", 3) || !strncasecmp(argument, "1", 1) - ) + ) { *result = TRUE; return TRUE; } else if ( - !strncasecmp(argument, "false", 5) || - !strncasecmp(argument, "off", 3) || - !strncasecmp(argument, "no", 2) || - !strncasecmp(argument, "0", 1) - ) + !strncasecmp(argument, "false", 5) || + !strncasecmp(argument, "off", 3) || + !strncasecmp(argument, "no", 2) || + !strncasecmp(argument, "0", 1) + ) { *result = FALSE; return TRUE; diff --git a/src/helpers.h b/src/helpers.h index 2a7460e..af5a53a 100644 --- a/src/helpers.h +++ b/src/helpers.h @@ -29,6 +29,7 @@ __noreturn void OutOfMemory(void); void* vlmcsd_malloc(size_t len); void hex2bin(BYTE *const bin, const char *hex, const size_t maxbin); __pure BOOL getArgumentBool(int_fast8_t *result, const char *const argument); +__pure int IsEqualGuidLE(const GUID *const restrict first, const GUID *const restrict second); #endif // HELPERS_H diff --git a/src/kms.c b/src/kms.c index 77363f2..5a499b9 100644 --- a/src/kms.c +++ b/src/kms.c @@ -63,265 +63,270 @@ const KmsIdList ProductList[] = { /* 022 */ { { 0x6e9fc069, 0x257d, 0x4bc4, { 0xb4, 0xa7, 0x75, 0x05, 0x14, 0xd3, 0x27, 0x43, } } /*6e9fc069-257d-4bc4-b4a7-750514d32743*/, LOGTEXT("Windows Server 2016"), EPID_WINDOWS, 6, 5 }, /* 023 */ { { 0x969fe3c0, 0xa3ec, 0x491a, { 0x9f, 0x25, 0x42, 0x36, 0x05, 0xde, 0xb3, 0x65, } } /*969fe3c0-a3ec-491a-9f25-423605deb365*/, LOGTEXT("Windows 10 2016 (Volume)"), EPID_WINDOWS, 6, 25 }, # endif // NO_BASIC_PRODUCT_LIST - /* 024 */ { { 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, } }, NULL, NULL, 0, 0 } }; -#ifndef NO_LOG +#ifndef NO_STRICT_MODES +const ProdListIndex_t RetailAndBetaProducts[] = { KMS_ID_WIN10_RETAIL, KMS_ID_WIN81_RETAIL, KMS_ID_WIN8_RETAIL, KMS_ID_WIN_BETA, KMS_ID_WIN_SRV_BETA, KMS_ID_OFFICE2013_BETA }; +#endif // !NO_STRICT_MODES + + +#if !defined(NO_LOG) || !defined(NO_STRICT_MODES) // Application ID is used by KMS server to count KeyManagementServiceCurrentCount // Do not change the order of this list. Append items as necessary const KmsIdList AppList[] = { /* 000 */ { { 0x55c92734, 0xd682, 0x4d71, { 0x98, 0x3e, 0xd6, 0xec, 0x3f, 0x16, 0x05, 0x9f } } /*"55C92734-D682-4D71-983E-D6EC3F16059F"*/, LOGTEXT(FRIENDLY_NAME_WINDOWS), EPID_WINDOWS, 0, 0}, /* 001 */ { { 0x59A52881, 0xa989, 0x479d, { 0xaf, 0x46, 0xf2, 0x75, 0xc6, 0x37, 0x06, 0x63 } } /*"59A52881-A989-479D-AF46-F275C6370663"*/, LOGTEXT(FRIENDLY_NAME_OFFICE2010), EPID_OFFICE2010, 0, 0}, /* 002 */ { { 0x0FF1CE15, 0xA989, 0x479D, { 0xaf, 0x46, 0xf2, 0x75, 0xc6, 0x37, 0x06, 0x63 } } /*"0FF1CE15-A989-479D-AF46-F275C6370663"*/, LOGTEXT(FRIENDLY_NAME_OFFICE2013), EPID_OFFICE2013, 0, 0}, - /* 003 */ { { 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, NULL, NULL, 0, 0 } }; -#endif // NO_LOG +#endif // !defined(NO_LOG) || !defined(NO_STRICT_MODES) #ifndef NO_EXTENDED_PRODUCT_LIST -const KmsIdList ExtendedProductList [] = { - // Windows 10 (Retail) - { { 0x58e97c99, 0xf377, 0x4ef1, { 0x81, 0xd5, 0x4a, 0xd5, 0x52, 0x2b, 0x5f, 0xd8, } } /*58e97c99-f377-4ef1-81d5-4ad5522b5fd8*/, LOGTEXT("Windows 10 Home"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, - { { 0xa9107544, 0xf4a0, 0x4053, { 0xa9, 0x6a, 0x14, 0x79, 0xab, 0xde, 0xf9, 0x12, } } /*a9107544-f4a0-4053-a96a-1479abdef912*/, LOGTEXT("Windows 10 Home Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, - { { 0x7b9e1751, 0xa8da, 0x4f75, { 0x95, 0x60, 0x5f, 0xad, 0xfe, 0x3d, 0x8e, 0x38, } } /*7b9e1751-a8da-4f75-9560-5fadfe3d8e38*/, LOGTEXT("Windows 10 Home N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, - { { 0xcd918a57, 0xa41b, 0x4c82, { 0x8d, 0xce, 0x1a, 0x53, 0x8e, 0x22, 0x1a, 0x83, } } /*cd918a57-a41b-4c82-8dce-1a538e221a83*/, LOGTEXT("Windows 10 Home Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, - - // Windows 10 2015 (Volume) - { { 0xe0c42288, 0x980c, 0x4788, { 0xa0, 0x14, 0xc0, 0x80, 0xd2, 0xe1, 0x92, 0x6e, } } /*e0c42288-980c-4788-a014-c080d2e1926e*/, LOGTEXT("Windows 10 Education"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x3c102355, 0xd027, 0x42c6, { 0xad, 0x23, 0x2e, 0x7e, 0xf8, 0xa0, 0x25, 0x85, } } /*3c102355-d027-42c6-ad23-2e7ef8a02585*/, LOGTEXT("Windows 10 Education N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x73111121, 0x5638, 0x40f6, { 0xbc, 0x11, 0xf1, 0xd7, 0xb0, 0xd6, 0x43, 0x00, } } /*73111121-5638-40f6-bc11-f1d7b0d64300*/, LOGTEXT("Windows 10 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x7b51a46c, 0x0c04, 0x4e8f, { 0x9a, 0xf4, 0x84, 0x96, 0xcc, 0xa9, 0x0d, 0x5e, } } /*7b51a46c-0c04-4e8f-9af4-8496cca90d5e*/, LOGTEXT("Windows 10 Enterprise 2015 LTSB"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x87b838b7, 0x41b6, 0x4590, { 0x83, 0x18, 0x57, 0x97, 0x95, 0x1d, 0x85, 0x29, } } /*87b838b7-41b6-4590-8318-5797951d8529*/, LOGTEXT("Windows 10 Enterprise 2015 LTSB N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0xe272e3e2, 0x732f, 0x4c65, { 0xa8, 0xf0, 0x48, 0x47, 0x47, 0xd0, 0xd9, 0x47, } } /*e272e3e2-732f-4c65-a8f0-484747d0d947*/, LOGTEXT("Windows 10 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x43f2ab05, 0x7c87, 0x4d56, { 0xb2, 0x7c, 0x44, 0xd0, 0xf9, 0xa3, 0xda, 0xbd, } } /*43f2ab05-7c87-4d56-b27c-44d0f9a3dabd*/, LOGTEXT("Windows 10 Enterprise Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x2de67392, 0xb7a7, 0x462a, { 0xb1, 0xca, 0x10, 0x8d, 0xd1, 0x89, 0xf5, 0x88, } } /*2de67392-b7a7-462a-b1ca-108dd189f588*/, LOGTEXT("Windows 10 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x3f1afc82, 0xf8ac, 0x4f6c, { 0x80, 0x05, 0x1d, 0x23, 0x3e, 0x60, 0x6e, 0xee, } } /*3f1afc82-f8ac-4f6c-8005-1d233e606eee*/, LOGTEXT("Windows 10 Professional Education"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0x5300b18c, 0x2e33, 0x4dc2, { 0x82, 0x91, 0x47, 0xff, 0xce, 0xc7, 0x46, 0xdd, } } /*5300b18c-2e33-4dc2-8291-47ffcec746dd*/, LOGTEXT("Windows 10 Professional Education N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0xa80b5abf, 0x76ad, 0x428b, { 0xb0, 0x5d, 0xa4, 0x7d, 0x2d, 0xff, 0xee, 0xbf, } } /*a80b5abf-76ad-428b-b05d-a47d2dffeebf*/, LOGTEXT("Windows 10 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - { { 0xff808201, 0xfec6, 0x4fd4, { 0xae, 0x16, 0xab, 0xbd, 0xda, 0xde, 0x57, 0x06, } } /*ff808201-fec6-4fd4-ae16-abbddade5706*/, LOGTEXT("Windows 10 Professional Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, - - // Windows 10 2016 (Volume) - { { 0x2d5a5a60, 0x3040, 0x48bf, { 0xbe, 0xb0, 0xfc, 0xd7, 0x70, 0xc2, 0x0c, 0xe0, } } /*2d5a5a60-3040-48bf-beb0-fcd770c20ce0*/, LOGTEXT("Windows 10 Enterprise 2016 LTSB"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_LTSB2016 }, - { { 0x9f776d83, 0x7156, 0x45b2, { 0x8a, 0x5c, 0x35, 0x9b, 0x9c, 0x9f, 0x22, 0xa3, } } /*9f776d83-7156-45b2-8a5c-359b9c9f22a3*/, LOGTEXT("Windows 10 Enterprise 2016 LTSB N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_LTSB2016 }, - - // Windows 10 Unknown (Volume) - - // Windows 7 - { { 0xdb537896, 0x376f, 0x48ae, { 0xa4, 0x92, 0x53, 0xd0, 0x54, 0x77, 0x73, 0xd0, } } /*db537896-376f-48ae-a492-53d0547773d0*/, LOGTEXT("Windows 7 Embedded POSReady"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0xe1a8296a, 0xdb37, 0x44d1, { 0x8c, 0xce, 0x7b, 0xc9, 0x61, 0xd5, 0x9c, 0x54, } } /*e1a8296a-db37-44d1-8cce-7bc961d59c54*/, LOGTEXT("Windows 7 Embedded Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0xae2ee509, 0x1b34, 0x41c0, { 0xac, 0xb7, 0x6d, 0x46, 0x50, 0x16, 0x89, 0x15, } } /*ae2ee509-1b34-41c0-acb7-6d4650168915*/, LOGTEXT("Windows 7 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0x46bbed08, 0x9c7b, 0x48fc, { 0xa6, 0x14, 0x95, 0x25, 0x05, 0x73, 0xf4, 0xea, } } /*46bbed08-9c7b-48fc-a614-95250573f4ea*/, LOGTEXT("Windows 7 Enterprise E"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0x1cb6d605, 0x11b3, 0x4e14, { 0xbb, 0x30, 0xda, 0x91, 0xc8, 0xe3, 0x98, 0x3a, } } /*1cb6d605-11b3-4e14-bb30-da91c8e3983a*/, LOGTEXT("Windows 7 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0xb92e9980, 0xb9d5, 0x4821, { 0x9c, 0x94, 0x14, 0x0f, 0x63, 0x2f, 0x63, 0x12, } } /*b92e9980-b9d5-4821-9c94-140f632f6312*/, LOGTEXT("Windows 7 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0x5a041529, 0xfef8, 0x4d07, { 0xb0, 0x6f, 0xb5, 0x9b, 0x57, 0x3b, 0x32, 0xd2, } } /*5a041529-fef8-4d07-b06f-b59b573b32d2*/, LOGTEXT("Windows 7 Professional E"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0x54a09a0d, 0xd57b, 0x4c10, { 0x8b, 0x69, 0xa8, 0x42, 0xd6, 0x59, 0x0a, 0xd5, } } /*54a09a0d-d57b-4c10-8b69-a842d6590ad5*/, LOGTEXT("Windows 7 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - { { 0xaa6dd3aa, 0xc2b4, 0x40e2, { 0xa5, 0x44, 0xa6, 0xbb, 0xb3, 0xf5, 0xc3, 0x95, } } /*aa6dd3aa-c2b4-40e2-a544-a6bbb3f5c395*/, LOGTEXT("Windows 7 ThinPC"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, - - // Windows 8 (Retail) - { { 0xc04ed6bf, 0x55c8, 0x4b47, { 0x9f, 0x8e, 0x5a, 0x1f, 0x31, 0xce, 0xee, 0x60, } } /*c04ed6bf-55c8-4b47-9f8e-5a1f31ceee60*/, LOGTEXT("Windows 8 Core"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, - { { 0x9d5584a2, 0x2d85, 0x419a, { 0x98, 0x2c, 0xa0, 0x08, 0x88, 0xbb, 0x9d, 0xdf, } } /*9d5584a2-2d85-419a-982c-a00888bb9ddf*/, LOGTEXT("Windows 8 Core Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, - { { 0x197390a0, 0x65f6, 0x4a95, { 0xbd, 0xc4, 0x55, 0xd5, 0x8a, 0x3b, 0x02, 0x53, } } /*197390a0-65f6-4a95-bdc4-55d58a3b0253*/, LOGTEXT("Windows 8 Core N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, - { { 0x8860fcd4, 0xa77b, 0x4a20, { 0x90, 0x45, 0xa1, 0x50, 0xff, 0x11, 0xd6, 0x09, } } /*8860fcd4-a77b-4a20-9045-a150ff11d609*/, LOGTEXT("Windows 8 Core Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, - { { 0xa00018a3, 0xf20f, 0x4632, { 0xbf, 0x7c, 0x8d, 0xaa, 0x53, 0x51, 0xc9, 0x14, } } /*a00018a3-f20f-4632-bf7c-8daa5351c914*/, LOGTEXT("Windows 8 Professional WMC"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, - - // Windows 8 (Volume) - { { 0x18db1848, 0x12e0, 0x4167, { 0xb9, 0xd7, 0xda, 0x7f, 0xcd, 0xa5, 0x07, 0xdb, } } /*18db1848-12e0-4167-b9d7-da7fcda507db*/, LOGTEXT("Windows 8 Embedded Industry Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, - { { 0x10018baf, 0xce21, 0x4060, { 0x80, 0xbd, 0x47, 0xfe, 0x74, 0xed, 0x4d, 0xab, } } /*10018baf-ce21-4060-80bd-47fe74ed4dab*/, LOGTEXT("Windows 8 Embedded Industry Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, - { { 0x458e1bec, 0x837a, 0x45f6, { 0xb9, 0xd5, 0x92, 0x5e, 0xd5, 0xd2, 0x99, 0xde, } } /*458e1bec-837a-45f6-b9d5-925ed5d299de*/, LOGTEXT("Windows 8 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, - { { 0xe14997e7, 0x800a, 0x4cf7, { 0xad, 0x10, 0xde, 0x4b, 0x45, 0xb5, 0x78, 0xdb, } } /*e14997e7-800a-4cf7-ad10-de4b45b578db*/, LOGTEXT("Windows 8 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, - { { 0xa98bcd6d, 0x5343, 0x4603, { 0x8a, 0xfe, 0x59, 0x08, 0xe4, 0x61, 0x11, 0x12, } } /*a98bcd6d-5343-4603-8afe-5908e4611112*/, LOGTEXT("Windows 8 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, - { { 0xebf245c1, 0x29a8, 0x4daf, { 0x9c, 0xb1, 0x38, 0xdf, 0xc6, 0x08, 0xa8, 0xc8, } } /*ebf245c1-29a8-4daf-9cb1-38dfc608a8c8*/, LOGTEXT("Windows 8 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, - - // Windows 8.1 (Retail) - { { 0xfe1c3238, 0x432a, 0x43a1, { 0x8e, 0x25, 0x97, 0xe7, 0xd1, 0xef, 0x10, 0xf3, } } /*fe1c3238-432a-43a1-8e25-97e7d1ef10f3*/, LOGTEXT("Windows 8.1 Core"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - { { 0xffee456a, 0xcd87, 0x4390, { 0x8e, 0x07, 0x16, 0x14, 0x6c, 0x67, 0x2f, 0xd0, } } /*ffee456a-cd87-4390-8e07-16146c672fd0*/, LOGTEXT("Windows 8.1 Core ARM"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - { { 0xdb78b74f, 0xef1c, 0x4892, { 0xab, 0xfe, 0x1e, 0x66, 0xb8, 0x23, 0x1d, 0xf6, } } /*db78b74f-ef1c-4892-abfe-1e66b8231df6*/, LOGTEXT("Windows 8.1 Core Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - { { 0x78558a64, 0xdc19, 0x43fe, { 0xa0, 0xd0, 0x80, 0x75, 0xb2, 0xa3, 0x70, 0xa3, } } /*78558a64-dc19-43fe-a0d0-8075b2a370a3*/, LOGTEXT("Windows 8.1 Core N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - { { 0xc72c6a1d, 0xf252, 0x4e7e, { 0xbd, 0xd1, 0x3f, 0xca, 0x34, 0x2a, 0xcb, 0x35, } } /*c72c6a1d-f252-4e7e-bdd1-3fca342acb35*/, LOGTEXT("Windows 8.1 Core Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - { { 0xe58d87b5, 0x8126, 0x4580, { 0x80, 0xfb, 0x86, 0x1b, 0x22, 0xf7, 0x92, 0x96, } } /*e58d87b5-8126-4580-80fb-861b22f79296*/, LOGTEXT("Windows 8.1 Professional Student"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - { { 0xcab491c7, 0xa918, 0x4f60, { 0xb5, 0x02, 0xda, 0xb7, 0x5e, 0x33, 0x4f, 0x40, } } /*cab491c7-a918-4f60-b502-dab75e334f40*/, LOGTEXT("Windows 8.1 Professional Student N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - { { 0x096ce63d, 0x4fac, 0x48a9, { 0x82, 0xa9, 0x61, 0xae, 0x9e, 0x80, 0x0e, 0x5f, } } /*096ce63d-4fac-48a9-82a9-61ae9e800e5f*/, LOGTEXT("Windows 8.1 Professional WMC"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, - - // Windows 8.1 (Volume) - { { 0xe9942b32, 0x2e55, 0x4197, { 0xb0, 0xbd, 0x5f, 0xf5, 0x8c, 0xba, 0x88, 0x60, } } /*e9942b32-2e55-4197-b0bd-5ff58cba8860*/, LOGTEXT("Windows 8.1 Core Connected"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0xba998212, 0x460a, 0x44db, { 0xbf, 0xb5, 0x71, 0xbf, 0x09, 0xd1, 0xc6, 0x8b, } } /*ba998212-460a-44db-bfb5-71bf09d1c68b*/, LOGTEXT("Windows 8.1 Core Connected Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0xc6ddecd6, 0x2354, 0x4c19, { 0x90, 0x9b, 0x30, 0x6a, 0x30, 0x58, 0x48, 0x4e, } } /*c6ddecd6-2354-4c19-909b-306a3058484e*/, LOGTEXT("Windows 8.1 Core Connected N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0xb8f5e3a3, 0xed33, 0x4608, { 0x81, 0xe1, 0x37, 0xd6, 0xc9, 0xdc, 0xfd, 0x9c, } } /*b8f5e3a3-ed33-4608-81e1-37d6c9dcfd9c*/, LOGTEXT("Windows 8.1 Core Connected Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0xf7e88590, 0xdfc7, 0x4c78, { 0xbc, 0xcb, 0x6f, 0x38, 0x65, 0xb9, 0x9d, 0x1a, } } /*f7e88590-dfc7-4c78-bccb-6f3865b99d1a*/, LOGTEXT("Windows 8.1 Embedded Industry Automotive"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0xcd4e2d9f, 0x5059, 0x4a50, { 0xa9, 0x2d, 0x05, 0xd5, 0xbb, 0x12, 0x67, 0xc7, } } /*cd4e2d9f-5059-4a50-a92d-05d5bb1267c7*/, LOGTEXT("Windows 8.1 Embedded Industry Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0x0ab82d54, 0x47f4, 0x4acb, { 0x81, 0x8c, 0xcc, 0x5b, 0xf0, 0xec, 0xb6, 0x49, } } /*0ab82d54-47f4-4acb-818c-cc5bf0ecb649*/, LOGTEXT("Windows 8.1 Embedded Industry Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0x81671aaf, 0x79d1, 0x4eb1, { 0xb0, 0x04, 0x8c, 0xbb, 0xe1, 0x73, 0xaf, 0xea, } } /*81671aaf-79d1-4eb1-b004-8cbbe173afea*/, LOGTEXT("Windows 8.1 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0x113e705c, 0xfa49, 0x48a4, { 0xbe, 0xea, 0x7d, 0xd8, 0x79, 0xb4, 0x6b, 0x14, } } /*113e705c-fa49-48a4-beea-7dd879b46b14*/, LOGTEXT("Windows 8.1 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0xc06b6981, 0xd7fd, 0x4a35, { 0xb7, 0xb4, 0x05, 0x47, 0x42, 0xb7, 0xaf, 0x67, } } /*c06b6981-d7fd-4a35-b7b4-054742b7af67*/, LOGTEXT("Windows 8.1 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - { { 0x7476d79f, 0x8e48, 0x49b4, { 0xab, 0x63, 0x4d, 0x0b, 0x81, 0x3a, 0x16, 0xe4, } } /*7476d79f-8e48-49b4-ab63-4d0b813a16e4*/, LOGTEXT("Windows 8.1 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, - - // Windows Preview - # ifdef INCLUDE_BETAS - { { 0xcde952c7, 0x2f96, 0x4d9d, { 0x8f, 0x2b, 0x2d, 0x34, 0x9f, 0x64, 0xfc, 0x51, } } /*cde952c7-2f96-4d9d-8f2b-2d349f64fc51*/, LOGTEXT("Windows 10 Enterprise Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, - { { 0xa4383e6b, 0xdada, 0x423d, { 0xa4, 0x3d, 0xf2, 0x56, 0x78, 0x42, 0x96, 0x76, } } /*a4383e6b-dada-423d-a43d-f25678429676*/, LOGTEXT("Windows 10 Professional Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, - { { 0xcf59a07b, 0x1a2a, 0x4be0, { 0xbf, 0xe0, 0x42, 0x3b, 0x58, 0x23, 0xe6, 0x63, } } /*cf59a07b-1a2a-4be0-bfe0-423b5823e663*/, LOGTEXT("Windows 10 Professional WMC Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, - { { 0x2b9c337f, 0x7a1d, 0x4271, { 0x90, 0xa3, 0xc6, 0x85, 0x5a, 0x2b, 0x8a, 0x1c, } } /*2b9c337f-7a1d-4271-90a3-c6855a2b8a1c*/, LOGTEXT("Windows 8.x Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, - { { 0x631ead72, 0xa8ab, 0x4df8, { 0xbb, 0xdf, 0x37, 0x20, 0x29, 0x98, 0x9b, 0xdd, } } /*631ead72-a8ab-4df8-bbdf-372029989bdd*/, LOGTEXT("Windows 8.x Preview ARM"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, - # endif // INCLUDE_BETAS - - // Windows Server 2008 A (Web and HPC) - { { 0x7afb1156, 0x2c1d, 0x40fc, { 0xb2, 0x60, 0xaa, 0xb7, 0x44, 0x2b, 0x62, 0xfe, } } /*7afb1156-2c1d-40fc-b260-aab7442b62fe*/, LOGTEXT("Windows Server 2008 Compute Cluster"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008A }, - { { 0xddfa9f7c, 0xf09e, 0x40b9, { 0x8c, 0x1a, 0xbe, 0x87, 0x7a, 0x9a, 0x7f, 0x4b, } } /*ddfa9f7c-f09e-40b9-8c1a-be877a9a7f4b*/, LOGTEXT("Windows Server 2008 Web"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008A }, - - // Windows Server 2008 B (Standard and Enterprise) - { { 0xc1af4d90, 0xd1bc, 0x44ca, { 0x85, 0xd4, 0x00, 0x3b, 0xa3, 0x3d, 0xb3, 0xb9, } } /*c1af4d90-d1bc-44ca-85d4-003ba33db3b9*/, LOGTEXT("Windows Server 2008 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, - { { 0x8198490a, 0xadd0, 0x47b2, { 0xb3, 0xba, 0x31, 0x6b, 0x12, 0xd6, 0x47, 0xb4, } } /*8198490a-add0-47b2-b3ba-316b12d647b4*/, LOGTEXT("Windows Server 2008 Enterprise without Hyper-V"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, - { { 0xad2542d4, 0x9154, 0x4c6d, { 0x8a, 0x44, 0x30, 0xf1, 0x1e, 0xe9, 0x69, 0x89, } } /*ad2542d4-9154-4c6d-8a44-30f11ee96989*/, LOGTEXT("Windows Server 2008 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, - { { 0x2401e3d0, 0xc50a, 0x4b58, { 0x87, 0xb2, 0x7e, 0x79, 0x4b, 0x7d, 0x26, 0x07, } } /*2401e3d0-c50a-4b58-87b2-7e794b7d2607*/, LOGTEXT("Windows Server 2008 Standard without Hyper-V"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, - - // Windows Server 2008 C (Datacenter) - { { 0x68b6e220, 0xcf09, 0x466b, { 0x92, 0xd3, 0x45, 0xcd, 0x96, 0x4b, 0x95, 0x09, } } /*68b6e220-cf09-466b-92d3-45cd964b9509*/, LOGTEXT("Windows Server 2008 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008C }, - { { 0xfd09ef77, 0x5647, 0x4eff, { 0x80, 0x9c, 0xaf, 0x2b, 0x64, 0x65, 0x9a, 0x45, } } /*fd09ef77-5647-4eff-809c-af2b64659a45*/, LOGTEXT("Windows Server 2008 Datacenter without Hyper-V"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008C }, - { { 0x01ef176b, 0x3e0d, 0x422a, { 0xb4, 0xf8, 0x4e, 0xa8, 0x80, 0x03, 0x5e, 0x8f, } } /*01ef176b-3e0d-422a-b4f8-4ea880035e8f*/, LOGTEXT("Windows Server 2008 for Itanium"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008C }, - - // Windows Server 2008 R2 A (Web and HPC) - { { 0xf772515c, 0x0e87, 0x48d5, { 0xa6, 0x76, 0xe6, 0x96, 0x2c, 0x3e, 0x11, 0x95, } } /*f772515c-0e87-48d5-a676-e6962c3e1195*/, LOGTEXT("Windows MultiPoint Server 2010"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2A }, - { { 0xcda18cf3, 0xc196, 0x46ad, { 0xb2, 0x89, 0x60, 0xc0, 0x72, 0x86, 0x99, 0x94, } } /*cda18cf3-c196-46ad-b289-60c072869994*/, LOGTEXT("Windows Server 2008 R2 HPC Edition"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2A }, - { { 0xa78b8bd9, 0x8017, 0x4df5, { 0xb8, 0x6a, 0x09, 0xf7, 0x56, 0xaf, 0xfa, 0x7c, } } /*a78b8bd9-8017-4df5-b86a-09f756affa7c*/, LOGTEXT("Windows Server 2008 R2 Web"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2A }, - - // Windows Server 2008 R2 B (Standard and Enterprise) - { { 0x620e2b3d, 0x09e7, 0x42fd, { 0x80, 0x2a, 0x17, 0xa1, 0x36, 0x52, 0xfe, 0x7a, } } /*620e2b3d-09e7-42fd-802a-17a13652fe7a*/, LOGTEXT("Windows Server 2008 R2 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2B }, - { { 0x68531fb9, 0x5511, 0x4989, { 0x97, 0xbe, 0xd1, 0x1a, 0x0f, 0x55, 0x63, 0x3f, } } /*68531fb9-5511-4989-97be-d11a0f55633f*/, LOGTEXT("Windows Server 2008 R2 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2B }, - - // Windows Server 2008 R2 C (Datacenter) - { { 0x7482e61b, 0xc589, 0x4b7f, { 0x8e, 0xcc, 0x46, 0xd4, 0x55, 0xac, 0x3b, 0x87, } } /*7482e61b-c589-4b7f-8ecc-46d455ac3b87*/, LOGTEXT("Windows Server 2008 R2 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2C }, - { { 0x8a26851c, 0x1c7e, 0x48d3, { 0xa6, 0x87, 0xfb, 0xca, 0x9b, 0x9a, 0xc1, 0x6b, } } /*8a26851c-1c7e-48d3-a687-fbca9b9ac16b*/, LOGTEXT("Windows Server 2008 R2 for Itanium Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2C }, - - // Windows Server 2012 - { { 0xd3643d60, 0x0c42, 0x412d, { 0xa7, 0xd6, 0x52, 0xe6, 0x63, 0x53, 0x27, 0xf6, } } /*d3643d60-0c42-412d-a7d6-52e6635327f6*/, LOGTEXT("Windows Server 2012 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, - { { 0x95fd1c83, 0x7df5, 0x494a, { 0xbe, 0x8b, 0x13, 0x00, 0xe1, 0xc9, 0xd1, 0xcd, } } /*95fd1c83-7df5-494a-be8b-1300e1c9d1cd*/, LOGTEXT("Windows Server 2012 MultiPoint Premium"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, - { { 0x7d5486c7, 0xe120, 0x4771, { 0xb7, 0xf1, 0x7b, 0x56, 0xc6, 0xd3, 0x17, 0x0c, } } /*7d5486c7-e120-4771-b7f1-7b56c6d3170c*/, LOGTEXT("Windows Server 2012 MultiPoint Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, - { { 0xf0f5ec41, 0x0d55, 0x4732, { 0xaf, 0x02, 0x44, 0x0a, 0x44, 0xa3, 0xcf, 0x0f, } } /*f0f5ec41-0d55-4732-af02-440a44a3cf0f*/, LOGTEXT("Windows Server 2012 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, - - // Windows Server 2012 R2 - { { 0xb743a2be, 0x68d4, 0x4dd3, { 0xaf, 0x32, 0x92, 0x42, 0x5b, 0x7b, 0xb6, 0x23, } } /*b743a2be-68d4-4dd3-af32-92425b7bb623*/, LOGTEXT("Windows Server 2012 R2 Cloud Storage"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, - { { 0x00091344, 0x1ea4, 0x4f37, { 0xb7, 0x89, 0x01, 0x75, 0x0b, 0xa6, 0x98, 0x8c, } } /*00091344-1ea4-4f37-b789-01750ba6988c*/, LOGTEXT("Windows Server 2012 R2 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, - { { 0x21db6ba4, 0x9a7b, 0x4a14, { 0x9e, 0x29, 0x64, 0xa6, 0x0c, 0x59, 0x30, 0x1d, } } /*21db6ba4-9a7b-4a14-9e29-64a60c59301d*/, LOGTEXT("Windows Server 2012 R2 Essentials"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, - { { 0xb3ca044e, 0xa358, 0x4d68, { 0x98, 0x83, 0xaa, 0xa2, 0x94, 0x1a, 0xca, 0x99, } } /*b3ca044e-a358-4d68-9883-aaa2941aca99*/, LOGTEXT("Windows Server 2012 R2 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, - - // Windows Server 2016 - { { 0x3dbf341b, 0x5f6c, 0x4fa7, { 0xb9, 0x36, 0x69, 0x9d, 0xce, 0x9e, 0x26, 0x3f, } } /*3dbf341b-5f6c-4fa7-b936-699dce9e263f*/, LOGTEXT("Windows Server 2016 Azure Core"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, - { { 0x7b4433f4, 0xb1e7, 0x4788, { 0x89, 0x5a, 0xc4, 0x53, 0x78, 0xd3, 0x82, 0x53, } } /*7b4433f4-b1e7-4788-895a-c45378d38253*/, LOGTEXT("Windows Server 2016 Cloud Storage"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, - { { 0x21c56779, 0xb449, 0x4d20, { 0xad, 0xfc, 0xee, 0xce, 0x0e, 0x1a, 0xd7, 0x4b, } } /*21c56779-b449-4d20-adfc-eece0e1ad74b*/, LOGTEXT("Windows Server 2016 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, - { { 0x2b5a1b0f, 0xa5ab, 0x4c54, { 0xac, 0x2f, 0xa6, 0xd9, 0x48, 0x24, 0xa2, 0x83, } } /*2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283*/, LOGTEXT("Windows Server 2016 Essentials"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, - { { 0x8c1c5410, 0x9f39, 0x4805, { 0x8c, 0x9d, 0x63, 0xa0, 0x77, 0x06, 0x35, 0x8f, } } /*8c1c5410-9f39-4805-8c9d-63a07706358f*/, LOGTEXT("Windows Server 2016 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, - - // Windows Server Preview - # ifdef INCLUDE_BETAS - { { 0xba947c44, 0xd19d, 0x4786, { 0xb6, 0xae, 0x22, 0x77, 0x0b, 0xc9, 0x4c, 0x54, } } /*ba947c44-d19d-4786-b6ae-22770bc94c54*/, LOGTEXT("Windows Server 2016 Datacenter Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_SRV_BETA }, - # endif // INCLUDE_BETAS - - // Windows Vista - { { 0x4f3d1606, 0x3fea, 0x4c01, { 0xbe, 0x3c, 0x8d, 0x67, 0x1c, 0x40, 0x1e, 0x3b, } } /*4f3d1606-3fea-4c01-be3c-8d671c401e3b*/, LOGTEXT("Windows Vista Business"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, - { { 0x2c682dc2, 0x8b68, 0x4f63, { 0xa1, 0x65, 0xae, 0x29, 0x1d, 0x4c, 0xf1, 0x38, } } /*2c682dc2-8b68-4f63-a165-ae291d4cf138*/, LOGTEXT("Windows Vista Business N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, - { { 0xcfd8ff08, 0xc0d7, 0x452b, { 0x9f, 0x60, 0xef, 0x5c, 0x70, 0xc3, 0x20, 0x94, } } /*cfd8ff08-c0d7-452b-9f60-ef5c70c32094*/, LOGTEXT("Windows Vista Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, - { { 0xd4f54950, 0x26f2, 0x4fb4, { 0xba, 0x21, 0xff, 0xab, 0x16, 0xaf, 0xca, 0xde, } } /*d4f54950-26f2-4fb4-ba21-ffab16afcade*/, LOGTEXT("Windows Vista Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, - - // Office 2010 - { { 0x8ce7e872, 0x188c, 0x4b98, { 0x9d, 0x90, 0xf8, 0xf9, 0x0b, 0x7a, 0xad, 0x02, } } /*8ce7e872-188c-4b98-9d90-f8f90b7aad02*/, LOGTEXT("Office Access 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xcee5d470, 0x6e3b, 0x4fcc, { 0x8c, 0x2b, 0xd1, 0x74, 0x28, 0x56, 0x8a, 0x9f, } } /*cee5d470-6e3b-4fcc-8c2b-d17428568a9f*/, LOGTEXT("Office Excel 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x8947d0b8, 0xc33b, 0x43e1, { 0x8c, 0x56, 0x9b, 0x67, 0x4c, 0x05, 0x28, 0x32, } } /*8947d0b8-c33b-43e1-8c56-9b674c052832*/, LOGTEXT("Office Groove 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xca6b6639, 0x4ad6, 0x40ae, { 0xa5, 0x75, 0x14, 0xde, 0xe0, 0x7f, 0x64, 0x30, } } /*ca6b6639-4ad6-40ae-a575-14dee07f6430*/, LOGTEXT("Office InfoPath 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x09ed9640, 0xf020, 0x400a, { 0xac, 0xd8, 0xd7, 0xd8, 0x67, 0xdf, 0xd9, 0xc2, } } /*09ed9640-f020-400a-acd8-d7d867dfd9c2*/, LOGTEXT("Office Mondo 1 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xef3d4e49, 0xa53d, 0x4d81, { 0xa2, 0xb1, 0x2c, 0xa6, 0xc2, 0x55, 0x6b, 0x2c, } } /*ef3d4e49-a53d-4d81-a2b1-2ca6c2556b2c*/, LOGTEXT("Office Mondo 2 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xab586f5c, 0x5256, 0x4632, { 0x96, 0x2f, 0xfe, 0xfd, 0x8b, 0x49, 0xe6, 0xf4, } } /*ab586f5c-5256-4632-962f-fefd8b49e6f4*/, LOGTEXT("Office OneNote 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xecb7c192, 0x73ab, 0x4ded, { 0xac, 0xf4, 0x23, 0x99, 0xb0, 0x95, 0xd0, 0xcc, } } /*ecb7c192-73ab-4ded-acf4-2399b095d0cc*/, LOGTEXT("Office OutLook 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x45593b1d, 0xdfb1, 0x4e91, { 0xbb, 0xfb, 0x2d, 0x5d, 0x0c, 0xe2, 0x22, 0x7a, } } /*45593b1d-dfb1-4e91-bbfb-2d5d0ce2227a*/, LOGTEXT("Office PowerPoint 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x6f327760, 0x8c5c, 0x417c, { 0x9b, 0x61, 0x83, 0x6a, 0x98, 0x28, 0x7e, 0x0c, } } /*6f327760-8c5c-417c-9b61-836a98287e0c*/, LOGTEXT("Office Professional Plus 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xdf133ff7, 0xbf14, 0x4f95, { 0xaf, 0xe3, 0x7b, 0x48, 0xe7, 0xe3, 0x31, 0xef, } } /*df133ff7-bf14-4f95-afe3-7b48e7e331ef*/, LOGTEXT("Office Project Pro 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x5dc7bf61, 0x5ec9, 0x4996, { 0x9c, 0xcb, 0xdf, 0x80, 0x6a, 0x2d, 0x0e, 0xfe, } } /*5dc7bf61-5ec9-4996-9ccb-df806a2d0efe*/, LOGTEXT("Office Project Standard 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xb50c4f75, 0x599b, 0x43e8, { 0x8d, 0xcd, 0x10, 0x81, 0xa7, 0x96, 0x72, 0x41, } } /*b50c4f75-599b-43e8-8dcd-1081a7967241*/, LOGTEXT("Office Publisher 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xea509e87, 0x07a1, 0x4a45, { 0x9e, 0xdc, 0xeb, 0xa5, 0xa3, 0x9f, 0x36, 0xaf, } } /*ea509e87-07a1-4a45-9edc-eba5a39f36af*/, LOGTEXT("Office Small Business Basics 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x9da2a678, 0xfb6b, 0x4e67, { 0xab, 0x84, 0x60, 0xdd, 0x6a, 0x9c, 0x81, 0x9a, } } /*9da2a678-fb6b-4e67-ab84-60dd6a9c819a*/, LOGTEXT("Office Standard 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x92236105, 0xbb67, 0x494f, { 0x94, 0xc7, 0x7f, 0x7a, 0x60, 0x79, 0x29, 0xbd, } } /*92236105-bb67-494f-94c7-7f7a607929bd*/, LOGTEXT("Office Visio Premium 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0xe558389c, 0x83c3, 0x4b29, { 0xad, 0xfe, 0x5e, 0x4d, 0x7f, 0x46, 0xc3, 0x58, } } /*e558389c-83c3-4b29-adfe-5e4d7f46c358*/, LOGTEXT("Office Visio Pro 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x9ed833ff, 0x4f92, 0x4f36, { 0xb3, 0x70, 0x86, 0x83, 0xa4, 0xf1, 0x32, 0x75, } } /*9ed833ff-4f92-4f36-b370-8683a4f13275*/, LOGTEXT("Office Visio Standard 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - { { 0x2d0882e7, 0xa4e7, 0x423b, { 0x8c, 0xcc, 0x70, 0xd9, 0x1e, 0x01, 0x58, 0xb1, } } /*2d0882e7-a4e7-423b-8ccc-70d91e0158b1*/, LOGTEXT("Office Word 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, - - // Office 2013 - { { 0x6ee7622c, 0x18d8, 0x4005, { 0x9f, 0xb7, 0x92, 0xdb, 0x64, 0x4a, 0x27, 0x9b, } } /*6ee7622c-18d8-4005-9fb7-92db644a279b*/, LOGTEXT("Office Access 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xf7461d52, 0x7c2b, 0x43b2, { 0x87, 0x44, 0xea, 0x95, 0x8e, 0x0b, 0xd0, 0x9a, } } /*f7461d52-7c2b-43b2-8744-ea958e0bd09a*/, LOGTEXT("Office Excel 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xa30b8040, 0xd68a, 0x423f, { 0xb0, 0xb5, 0x9c, 0xe2, 0x92, 0xea, 0x5a, 0x8f, } } /*a30b8040-d68a-423f-b0b5-9ce292ea5a8f*/, LOGTEXT("Office InfoPath 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0x1b9f11e3, 0xc85c, 0x4e1b, { 0xbb, 0x29, 0x87, 0x9a, 0xd2, 0xc9, 0x09, 0xe3, } } /*1b9f11e3-c85c-4e1b-bb29-879ad2c909e3*/, LOGTEXT("Office Lync 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xdc981c6b, 0xfc8e, 0x420f, { 0xaa, 0x43, 0xf8, 0xf3, 0x3e, 0x5c, 0x09, 0x23, } } /*dc981c6b-fc8e-420f-aa43-f8f33e5c0923*/, LOGTEXT("Office Mondo 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xefe1f3e6, 0xaea2, 0x4144, { 0xa2, 0x08, 0x32, 0xaa, 0x87, 0x2b, 0x65, 0x45, } } /*efe1f3e6-aea2-4144-a208-32aa872b6545*/, LOGTEXT("Office OneNote 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0x771c3afa, 0x50c5, 0x443f, { 0xb1, 0x51, 0xff, 0x25, 0x46, 0xd8, 0x63, 0xa0, } } /*771c3afa-50c5-443f-b151-ff2546d863a0*/, LOGTEXT("Office OutLook 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0x8c762649, 0x97d1, 0x4953, { 0xad, 0x27, 0xb7, 0xe2, 0xc2, 0x5b, 0x97, 0x2e, } } /*8c762649-97d1-4953-ad27-b7e2c25b972e*/, LOGTEXT("Office PowerPoint 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xb322da9c, 0xa2e2, 0x4058, { 0x9e, 0x4e, 0xf5, 0x9a, 0x69, 0x70, 0xbd, 0x69, } } /*b322da9c-a2e2-4058-9e4e-f59a6970bd69*/, LOGTEXT("Office Professional Plus 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0x4a5d124a, 0xe620, 0x44ba, { 0xb6, 0xff, 0x65, 0x89, 0x61, 0xb3, 0x3b, 0x9a, } } /*4a5d124a-e620-44ba-b6ff-658961b33b9a*/, LOGTEXT("Office Project Pro 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0x427a28d1, 0xd17c, 0x4abf, { 0xb7, 0x17, 0x32, 0xc7, 0x80, 0xba, 0x6f, 0x07, } } /*427a28d1-d17c-4abf-b717-32c780ba6f07*/, LOGTEXT("Office Project Standard 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0x00c79ff1, 0x6850, 0x443d, { 0xbf, 0x61, 0x71, 0xcd, 0xe0, 0xde, 0x30, 0x5f, } } /*00c79ff1-6850-443d-bf61-71cde0de305f*/, LOGTEXT("Office Publisher 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xb13afb38, 0xcd79, 0x4ae5, { 0x9f, 0x7f, 0xee, 0xd0, 0x58, 0xd7, 0x50, 0xca, } } /*b13afb38-cd79-4ae5-9f7f-eed058d750ca*/, LOGTEXT("Office Standard 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xe13ac10e, 0x75d0, 0x4aff, { 0xa0, 0xcd, 0x76, 0x49, 0x82, 0xcf, 0x54, 0x1c, } } /*e13ac10e-75d0-4aff-a0cd-764982cf541c*/, LOGTEXT("Office Visio Pro 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xac4efaf0, 0xf81f, 0x4f61, { 0xbd, 0xf7, 0xea, 0x32, 0xb0, 0x2a, 0xb1, 0x17, } } /*ac4efaf0-f81f-4f61-bdf7-ea32b02ab117*/, LOGTEXT("Office Visio Standard 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - { { 0xd9f5b1c6, 0x5386, 0x495a, { 0x88, 0xf9, 0x9a, 0xd6, 0xb4, 0x1a, 0xc9, 0xb3, } } /*d9f5b1c6-5386-495a-88f9-9ad6b41ac9b3*/, LOGTEXT("Office Word 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, - - // Office 2013 (Pre-Release) - # ifdef INCLUDE_BETAS - { { 0x44b538e2, 0xfb34, 0x4732, { 0x81, 0xe4, 0x64, 0x4c, 0x17, 0xd2, 0xe7, 0x46, } } /*44b538e2-fb34-4732-81e4-644c17d2e746*/, LOGTEXT("Office Access 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x9373bfa0, 0x97b3, 0x4587, { 0xab, 0x73, 0x30, 0x93, 0x44, 0x61, 0xd5, 0x5c, } } /*9373bfa0-97b3-4587-ab73-30934461d55c*/, LOGTEXT("Office Excel 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0xaa286eb4, 0x556f, 0x4eeb, { 0x96, 0x7c, 0xc1, 0xb7, 0x71, 0xb7, 0x67, 0x3e, } } /*aa286eb4-556f-4eeb-967c-c1b771b7673e*/, LOGTEXT("Office Groove 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x7ccc8256, 0xfbaa, 0x49c6, { 0xb2, 0xa9, 0xf5, 0xaf, 0xb4, 0x25, 0x7c, 0xd2, } } /*7ccc8256-fbaa-49c6-b2a9-f5afb4257cd2*/, LOGTEXT("Office InfoPath 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0xc53dfe17, 0xcc00, 0x4967, { 0xb1, 0x88, 0xa0, 0x88, 0xa9, 0x65, 0x49, 0x4d, } } /*c53dfe17-cc00-4967-b188-a088a965494d*/, LOGTEXT("Office Lync 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x2816a87d, 0xe1ed, 0x4097, { 0xb3, 0x11, 0xe2, 0x34, 0x1c, 0x57, 0xb1, 0x79, } } /*2816a87d-e1ed-4097-b311-e2341c57b179*/, LOGTEXT("Office Mondo 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x67c0f908, 0x184f, 0x4f64, { 0x82, 0x50, 0x12, 0xdb, 0x79, 0x7a, 0xb3, 0xc3, } } /*67c0f908-184f-4f64-8250-12db797ab3c3*/, LOGTEXT("Office OneNote 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x7bce4e7a, 0xdd80, 0x4682, { 0x98, 0xfa, 0xf9, 0x93, 0x72, 0x58, 0x03, 0xd2, } } /*7bce4e7a-dd80-4682-98fa-f993725803d2*/, LOGTEXT("Office Outlook 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x1ec10c0a, 0x54f6, 0x453e, { 0xb8, 0x5a, 0x6f, 0xa1, 0xbb, 0xfe, 0xa9, 0xb7, } } /*1ec10c0a-54f6-453e-b85a-6fa1bbfea9b7*/, LOGTEXT("Office PowerPoint 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x87d2b5bf, 0xd47b, 0x41fb, { 0xaf, 0x62, 0x71, 0xc3, 0x82, 0xf5, 0xcc, 0x85, } } /*87d2b5bf-d47b-41fb-af62-71c382f5cc85*/, LOGTEXT("Office Professional Plus 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x3cfe50a9, 0x0e03, 0x4b29, { 0x97, 0x54, 0x9f, 0x19, 0x3f, 0x07, 0xb7, 0x1f, } } /*3cfe50a9-0e03-4b29-9754-9f193f07b71f*/, LOGTEXT("Office Project Pro 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x39e49e57, 0xae68, 0x4ee3, { 0xb0, 0x98, 0x26, 0x48, 0x0d, 0xf3, 0xda, 0x96, } } /*39e49e57-ae68-4ee3-b098-26480df3da96*/, LOGTEXT("Office Project Standard 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x15aa2117, 0x8f79, 0x49a8, { 0x83, 0x17, 0x75, 0x30, 0x26, 0xd6, 0xa0, 0x54, } } /*15aa2117-8f79-49a8-8317-753026d6a054*/, LOGTEXT("Office Publisher 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0xcfbfd60e, 0x0b5f, 0x427d, { 0x91, 0x7c, 0xa4, 0xdf, 0x42, 0xa8, 0x0e, 0x44, } } /*cfbfd60e-0b5f-427d-917c-a4df42a80e44*/, LOGTEXT("Office Visio Pro 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0x7012cc81, 0x8887, 0x42e9, { 0xb1, 0x7d, 0x4e, 0x5e, 0x42, 0x76, 0x0f, 0x0d, } } /*7012cc81-8887-42e9-b17d-4e5e42760f0d*/, LOGTEXT("Office Visio Standard 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - { { 0xde9c7eb6, 0x5a85, 0x420d, { 0x97, 0x03, 0xff, 0xf1, 0x1b, 0xdd, 0x4d, 0x43, } } /*de9c7eb6-5a85-420d-9703-fff11bdd4d43*/, LOGTEXT("Office Word 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, - # endif // INCLUDE_BETAS - - // Office 2016 - { { 0x67c0fc0c, 0xdeba, 0x401b, { 0xbf, 0x8b, 0x9c, 0x8a, 0xd8, 0x39, 0x58, 0x04, } } /*67c0fc0c-deba-401b-bf8b-9c8ad8395804*/, LOGTEXT("Office Access 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xc3e65d36, 0x141f, 0x4d2f, { 0xa3, 0x03, 0xa8, 0x42, 0xee, 0x75, 0x6a, 0x29, } } /*c3e65d36-141f-4d2f-a303-a842ee756a29*/, LOGTEXT("Office Excel 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0x9caabccb, 0x61b1, 0x4b4b, { 0x8b, 0xec, 0xd1, 0x0a, 0x3c, 0x3a, 0xc2, 0xce, } } /*9caabccb-61b1-4b4b-8bec-d10a3c3ac2ce*/, LOGTEXT("Office Mondo 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xe914ea6e, 0xa5fa, 0x4439, { 0xa3, 0x94, 0xa9, 0xbb, 0x32, 0x93, 0xca, 0x09, } } /*e914ea6e-a5fa-4439-a394-a9bb3293ca09*/, LOGTEXT("Office Mondo R 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xd8cace59, 0x33d2, 0x4ac7, { 0x9b, 0x1b, 0x9b, 0x72, 0x33, 0x9c, 0x51, 0xc8, } } /*d8cace59-33d2-4ac7-9b1b-9b72339c51c8*/, LOGTEXT("Office OneNote 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xec9d9265, 0x9d1e, 0x4ed0, { 0x83, 0x8a, 0xcd, 0xc2, 0x0f, 0x25, 0x51, 0xa1, } } /*ec9d9265-9d1e-4ed0-838a-cdc20f2551a1*/, LOGTEXT("Office Outlook 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xd70b1bba, 0xb893, 0x4544, { 0x96, 0xe2, 0xb7, 0xa3, 0x18, 0x09, 0x1c, 0x33, } } /*d70b1bba-b893-4544-96e2-b7a318091c33*/, LOGTEXT("Office Powerpoint 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xd450596f, 0x894d, 0x49e0, { 0x96, 0x6a, 0xfd, 0x39, 0xed, 0x4c, 0x4c, 0x64, } } /*d450596f-894d-49e0-966a-fd39ed4c4c64*/, LOGTEXT("Office Professional Plus 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0x4f414197, 0x0fc2, 0x4c01, { 0xb6, 0x8a, 0x86, 0xcb, 0xb9, 0xac, 0x25, 0x4c, } } /*4f414197-0fc2-4c01-b68a-86cbb9ac254c*/, LOGTEXT("Office Project Pro 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0x829b8110, 0x0e6f, 0x4349, { 0xbc, 0xa4, 0x42, 0x80, 0x35, 0x77, 0x78, 0x8d, } } /*829b8110-0e6f-4349-bca4-42803577788d*/, LOGTEXT("Office Project Pro 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xda7ddabc, 0x3fbe, 0x4447, { 0x9e, 0x01, 0x6a, 0xb7, 0x44, 0x0b, 0x4c, 0xd4, } } /*da7ddabc-3fbe-4447-9e01-6ab7440b4cd4*/, LOGTEXT("Office Project Standard 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xcbbaca45, 0x556a, 0x4416, { 0xad, 0x03, 0xbd, 0xa5, 0x98, 0xea, 0xa7, 0xc8, } } /*cbbaca45-556a-4416-ad03-bda598eaa7c8*/, LOGTEXT("Office Project Standard 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0x041a06cb, 0xc5b8, 0x4772, { 0x80, 0x9f, 0x41, 0x6d, 0x03, 0xd1, 0x66, 0x54, } } /*041a06cb-c5b8-4772-809f-416d03d16654*/, LOGTEXT("Office Publisher 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0x83e04ee1, 0xfa8d, 0x436d, { 0x89, 0x94, 0xd3, 0x1a, 0x86, 0x2c, 0xab, 0x77, } } /*83e04ee1-fa8d-436d-8994-d31a862cab77*/, LOGTEXT("Office Skype for Business 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xdedfa23d, 0x6ed1, 0x45a6, { 0x85, 0xdc, 0x63, 0xca, 0xe0, 0x54, 0x6d, 0xe6, } } /*dedfa23d-6ed1-45a6-85dc-63cae0546de6*/, LOGTEXT("Office Standard 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0x6bf301c1, 0xb94a, 0x43e9, { 0xba, 0x31, 0xd4, 0x94, 0x59, 0x8c, 0x47, 0xfb, } } /*6bf301c1-b94a-43e9-ba31-d494598c47fb*/, LOGTEXT("Office Visio Pro 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xb234abe3, 0x0857, 0x4f9c, { 0xb0, 0x5a, 0x4d, 0xc3, 0x14, 0xf8, 0x55, 0x57, } } /*b234abe3-0857-4f9c-b05a-4dc314f85557*/, LOGTEXT("Office Visio Pro 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xaa2a7821, 0x1827, 0x4c2c, { 0x8f, 0x1d, 0x45, 0x13, 0xa3, 0x4d, 0xda, 0x97, } } /*aa2a7821-1827-4c2c-8f1d-4513a34dda97*/, LOGTEXT("Office Visio Standard 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0x361fe620, 0x64f4, 0x41b5, { 0xba, 0x77, 0x84, 0xf8, 0xe0, 0x79, 0xb1, 0xf7, } } /*361fe620-64f4-41b5-ba77-84f8e079b1f7*/, LOGTEXT("Office Visio Standard 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - { { 0xbb11badf, 0xd8aa, 0x470e, { 0x93, 0x11, 0x20, 0xea, 0xf8, 0x0f, 0xe5, 0xcc, } } /*bb11badf-d8aa-470e-9311-20eaf80fe5cc*/, LOGTEXT("Office Word 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, - - // End marker (necessity should be removed when time permits) - - { { 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, NULL, NULL, 0, 0 } +const KmsIdList ExtendedProductList[] = { + // Windows 10 (Retail) + { { 0x58e97c99, 0xf377, 0x4ef1, { 0x81, 0xd5, 0x4a, 0xd5, 0x52, 0x2b, 0x5f, 0xd8, } } /*58e97c99-f377-4ef1-81d5-4ad5522b5fd8*/, LOGTEXT("Windows 10 Home"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, + { { 0xa9107544, 0xf4a0, 0x4053, { 0xa9, 0x6a, 0x14, 0x79, 0xab, 0xde, 0xf9, 0x12, } } /*a9107544-f4a0-4053-a96a-1479abdef912*/, LOGTEXT("Windows 10 Home Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, + { { 0x7b9e1751, 0xa8da, 0x4f75, { 0x95, 0x60, 0x5f, 0xad, 0xfe, 0x3d, 0x8e, 0x38, } } /*7b9e1751-a8da-4f75-9560-5fadfe3d8e38*/, LOGTEXT("Windows 10 Home N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, + { { 0xcd918a57, 0xa41b, 0x4c82, { 0x8d, 0xce, 0x1a, 0x53, 0x8e, 0x22, 0x1a, 0x83, } } /*cd918a57-a41b-4c82-8dce-1a538e221a83*/, LOGTEXT("Windows 10 Home Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_RETAIL }, + + // Windows 10 2015 (Volume) + { { 0xe0c42288, 0x980c, 0x4788, { 0xa0, 0x14, 0xc0, 0x80, 0xd2, 0xe1, 0x92, 0x6e, } } /*e0c42288-980c-4788-a014-c080d2e1926e*/, LOGTEXT("Windows 10 Education"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x3c102355, 0xd027, 0x42c6, { 0xad, 0x23, 0x2e, 0x7e, 0xf8, 0xa0, 0x25, 0x85, } } /*3c102355-d027-42c6-ad23-2e7ef8a02585*/, LOGTEXT("Windows 10 Education N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x73111121, 0x5638, 0x40f6, { 0xbc, 0x11, 0xf1, 0xd7, 0xb0, 0xd6, 0x43, 0x00, } } /*73111121-5638-40f6-bc11-f1d7b0d64300*/, LOGTEXT("Windows 10 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x7b51a46c, 0x0c04, 0x4e8f, { 0x9a, 0xf4, 0x84, 0x96, 0xcc, 0xa9, 0x0d, 0x5e, } } /*7b51a46c-0c04-4e8f-9af4-8496cca90d5e*/, LOGTEXT("Windows 10 Enterprise 2015 LTSB"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x87b838b7, 0x41b6, 0x4590, { 0x83, 0x18, 0x57, 0x97, 0x95, 0x1d, 0x85, 0x29, } } /*87b838b7-41b6-4590-8318-5797951d8529*/, LOGTEXT("Windows 10 Enterprise 2015 LTSB N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0xe272e3e2, 0x732f, 0x4c65, { 0xa8, 0xf0, 0x48, 0x47, 0x47, 0xd0, 0xd9, 0x47, } } /*e272e3e2-732f-4c65-a8f0-484747d0d947*/, LOGTEXT("Windows 10 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x43f2ab05, 0x7c87, 0x4d56, { 0xb2, 0x7c, 0x44, 0xd0, 0xf9, 0xa3, 0xda, 0xbd, } } /*43f2ab05-7c87-4d56-b27c-44d0f9a3dabd*/, LOGTEXT("Windows 10 Enterprise Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x2de67392, 0xb7a7, 0x462a, { 0xb1, 0xca, 0x10, 0x8d, 0xd1, 0x89, 0xf5, 0x88, } } /*2de67392-b7a7-462a-b1ca-108dd189f588*/, LOGTEXT("Windows 10 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x3f1afc82, 0xf8ac, 0x4f6c, { 0x80, 0x05, 0x1d, 0x23, 0x3e, 0x60, 0x6e, 0xee, } } /*3f1afc82-f8ac-4f6c-8005-1d233e606eee*/, LOGTEXT("Windows 10 Professional Education"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0x5300b18c, 0x2e33, 0x4dc2, { 0x82, 0x91, 0x47, 0xff, 0xce, 0xc7, 0x46, 0xdd, } } /*5300b18c-2e33-4dc2-8291-47ffcec746dd*/, LOGTEXT("Windows 10 Professional Education N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0xa80b5abf, 0x76ad, 0x428b, { 0xb0, 0x5d, 0xa4, 0x7d, 0x2d, 0xff, 0xee, 0xbf, } } /*a80b5abf-76ad-428b-b05d-a47d2dffeebf*/, LOGTEXT("Windows 10 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + { { 0xff808201, 0xfec6, 0x4fd4, { 0xae, 0x16, 0xab, 0xbd, 0xda, 0xde, 0x57, 0x06, } } /*ff808201-fec6-4fd4-ae16-abbddade5706*/, LOGTEXT("Windows 10 Professional Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_VL }, + + // Windows 10 2016 (Volume) + { { 0x2d5a5a60, 0x3040, 0x48bf, { 0xbe, 0xb0, 0xfc, 0xd7, 0x70, 0xc2, 0x0c, 0xe0, } } /*2d5a5a60-3040-48bf-beb0-fcd770c20ce0*/, LOGTEXT("Windows 10 Enterprise 2016 LTSB"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_LTSB2016 }, + { { 0x9f776d83, 0x7156, 0x45b2, { 0x8a, 0x5c, 0x35, 0x9b, 0x9c, 0x9f, 0x22, 0xa3, } } /*9f776d83-7156-45b2-8a5c-359b9c9f22a3*/, LOGTEXT("Windows 10 Enterprise 2016 LTSB N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN10_LTSB2016 }, + + // Windows 10 Unknown (Volume) + + // Windows 7 + { { 0xdb537896, 0x376f, 0x48ae, { 0xa4, 0x92, 0x53, 0xd0, 0x54, 0x77, 0x73, 0xd0, } } /*db537896-376f-48ae-a492-53d0547773d0*/, LOGTEXT("Windows 7 Embedded POSReady"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0xe1a8296a, 0xdb37, 0x44d1, { 0x8c, 0xce, 0x7b, 0xc9, 0x61, 0xd5, 0x9c, 0x54, } } /*e1a8296a-db37-44d1-8cce-7bc961d59c54*/, LOGTEXT("Windows 7 Embedded Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0xae2ee509, 0x1b34, 0x41c0, { 0xac, 0xb7, 0x6d, 0x46, 0x50, 0x16, 0x89, 0x15, } } /*ae2ee509-1b34-41c0-acb7-6d4650168915*/, LOGTEXT("Windows 7 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0x46bbed08, 0x9c7b, 0x48fc, { 0xa6, 0x14, 0x95, 0x25, 0x05, 0x73, 0xf4, 0xea, } } /*46bbed08-9c7b-48fc-a614-95250573f4ea*/, LOGTEXT("Windows 7 Enterprise E"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0x1cb6d605, 0x11b3, 0x4e14, { 0xbb, 0x30, 0xda, 0x91, 0xc8, 0xe3, 0x98, 0x3a, } } /*1cb6d605-11b3-4e14-bb30-da91c8e3983a*/, LOGTEXT("Windows 7 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0xb92e9980, 0xb9d5, 0x4821, { 0x9c, 0x94, 0x14, 0x0f, 0x63, 0x2f, 0x63, 0x12, } } /*b92e9980-b9d5-4821-9c94-140f632f6312*/, LOGTEXT("Windows 7 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0x5a041529, 0xfef8, 0x4d07, { 0xb0, 0x6f, 0xb5, 0x9b, 0x57, 0x3b, 0x32, 0xd2, } } /*5a041529-fef8-4d07-b06f-b59b573b32d2*/, LOGTEXT("Windows 7 Professional E"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0x54a09a0d, 0xd57b, 0x4c10, { 0x8b, 0x69, 0xa8, 0x42, 0xd6, 0x59, 0x0a, 0xd5, } } /*54a09a0d-d57b-4c10-8b69-a842d6590ad5*/, LOGTEXT("Windows 7 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + { { 0xaa6dd3aa, 0xc2b4, 0x40e2, { 0xa5, 0x44, 0xa6, 0xbb, 0xb3, 0xf5, 0xc3, 0x95, } } /*aa6dd3aa-c2b4-40e2-a544-a6bbb3f5c395*/, LOGTEXT("Windows 7 ThinPC"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN7 }, + + // Windows 8 (Retail) + { { 0xc04ed6bf, 0x55c8, 0x4b47, { 0x9f, 0x8e, 0x5a, 0x1f, 0x31, 0xce, 0xee, 0x60, } } /*c04ed6bf-55c8-4b47-9f8e-5a1f31ceee60*/, LOGTEXT("Windows 8 Core"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, + { { 0x9d5584a2, 0x2d85, 0x419a, { 0x98, 0x2c, 0xa0, 0x08, 0x88, 0xbb, 0x9d, 0xdf, } } /*9d5584a2-2d85-419a-982c-a00888bb9ddf*/, LOGTEXT("Windows 8 Core Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, + { { 0x197390a0, 0x65f6, 0x4a95, { 0xbd, 0xc4, 0x55, 0xd5, 0x8a, 0x3b, 0x02, 0x53, } } /*197390a0-65f6-4a95-bdc4-55d58a3b0253*/, LOGTEXT("Windows 8 Core N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, + { { 0x8860fcd4, 0xa77b, 0x4a20, { 0x90, 0x45, 0xa1, 0x50, 0xff, 0x11, 0xd6, 0x09, } } /*8860fcd4-a77b-4a20-9045-a150ff11d609*/, LOGTEXT("Windows 8 Core Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, + { { 0xa00018a3, 0xf20f, 0x4632, { 0xbf, 0x7c, 0x8d, 0xaa, 0x53, 0x51, 0xc9, 0x14, } } /*a00018a3-f20f-4632-bf7c-8daa5351c914*/, LOGTEXT("Windows 8 Professional WMC"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_RETAIL }, + + // Windows 8 (Volume) + { { 0x18db1848, 0x12e0, 0x4167, { 0xb9, 0xd7, 0xda, 0x7f, 0xcd, 0xa5, 0x07, 0xdb, } } /*18db1848-12e0-4167-b9d7-da7fcda507db*/, LOGTEXT("Windows 8 Embedded Industry Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, + { { 0x10018baf, 0xce21, 0x4060, { 0x80, 0xbd, 0x47, 0xfe, 0x74, 0xed, 0x4d, 0xab, } } /*10018baf-ce21-4060-80bd-47fe74ed4dab*/, LOGTEXT("Windows 8 Embedded Industry Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, + { { 0x458e1bec, 0x837a, 0x45f6, { 0xb9, 0xd5, 0x92, 0x5e, 0xd5, 0xd2, 0x99, 0xde, } } /*458e1bec-837a-45f6-b9d5-925ed5d299de*/, LOGTEXT("Windows 8 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, + { { 0xe14997e7, 0x800a, 0x4cf7, { 0xad, 0x10, 0xde, 0x4b, 0x45, 0xb5, 0x78, 0xdb, } } /*e14997e7-800a-4cf7-ad10-de4b45b578db*/, LOGTEXT("Windows 8 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, + { { 0xa98bcd6d, 0x5343, 0x4603, { 0x8a, 0xfe, 0x59, 0x08, 0xe4, 0x61, 0x11, 0x12, } } /*a98bcd6d-5343-4603-8afe-5908e4611112*/, LOGTEXT("Windows 8 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, + { { 0xebf245c1, 0x29a8, 0x4daf, { 0x9c, 0xb1, 0x38, 0xdf, 0xc6, 0x08, 0xa8, 0xc8, } } /*ebf245c1-29a8-4daf-9cb1-38dfc608a8c8*/, LOGTEXT("Windows 8 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN8_VL }, + + // Windows 8.1 (Retail) + { { 0xfe1c3238, 0x432a, 0x43a1, { 0x8e, 0x25, 0x97, 0xe7, 0xd1, 0xef, 0x10, 0xf3, } } /*fe1c3238-432a-43a1-8e25-97e7d1ef10f3*/, LOGTEXT("Windows 8.1 Core"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + { { 0xffee456a, 0xcd87, 0x4390, { 0x8e, 0x07, 0x16, 0x14, 0x6c, 0x67, 0x2f, 0xd0, } } /*ffee456a-cd87-4390-8e07-16146c672fd0*/, LOGTEXT("Windows 8.1 Core ARM"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + { { 0xdb78b74f, 0xef1c, 0x4892, { 0xab, 0xfe, 0x1e, 0x66, 0xb8, 0x23, 0x1d, 0xf6, } } /*db78b74f-ef1c-4892-abfe-1e66b8231df6*/, LOGTEXT("Windows 8.1 Core Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + { { 0x78558a64, 0xdc19, 0x43fe, { 0xa0, 0xd0, 0x80, 0x75, 0xb2, 0xa3, 0x70, 0xa3, } } /*78558a64-dc19-43fe-a0d0-8075b2a370a3*/, LOGTEXT("Windows 8.1 Core N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + { { 0xc72c6a1d, 0xf252, 0x4e7e, { 0xbd, 0xd1, 0x3f, 0xca, 0x34, 0x2a, 0xcb, 0x35, } } /*c72c6a1d-f252-4e7e-bdd1-3fca342acb35*/, LOGTEXT("Windows 8.1 Core Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + { { 0xe58d87b5, 0x8126, 0x4580, { 0x80, 0xfb, 0x86, 0x1b, 0x22, 0xf7, 0x92, 0x96, } } /*e58d87b5-8126-4580-80fb-861b22f79296*/, LOGTEXT("Windows 8.1 Professional Student"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + { { 0xcab491c7, 0xa918, 0x4f60, { 0xb5, 0x02, 0xda, 0xb7, 0x5e, 0x33, 0x4f, 0x40, } } /*cab491c7-a918-4f60-b502-dab75e334f40*/, LOGTEXT("Windows 8.1 Professional Student N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + { { 0x096ce63d, 0x4fac, 0x48a9, { 0x82, 0xa9, 0x61, 0xae, 0x9e, 0x80, 0x0e, 0x5f, } } /*096ce63d-4fac-48a9-82a9-61ae9e800e5f*/, LOGTEXT("Windows 8.1 Professional WMC"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_RETAIL }, + + // Windows 8.1 (Volume) + { { 0xe9942b32, 0x2e55, 0x4197, { 0xb0, 0xbd, 0x5f, 0xf5, 0x8c, 0xba, 0x88, 0x60, } } /*e9942b32-2e55-4197-b0bd-5ff58cba8860*/, LOGTEXT("Windows 8.1 Core Connected"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0xba998212, 0x460a, 0x44db, { 0xbf, 0xb5, 0x71, 0xbf, 0x09, 0xd1, 0xc6, 0x8b, } } /*ba998212-460a-44db-bfb5-71bf09d1c68b*/, LOGTEXT("Windows 8.1 Core Connected Country Specific"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0xc6ddecd6, 0x2354, 0x4c19, { 0x90, 0x9b, 0x30, 0x6a, 0x30, 0x58, 0x48, 0x4e, } } /*c6ddecd6-2354-4c19-909b-306a3058484e*/, LOGTEXT("Windows 8.1 Core Connected N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0xb8f5e3a3, 0xed33, 0x4608, { 0x81, 0xe1, 0x37, 0xd6, 0xc9, 0xdc, 0xfd, 0x9c, } } /*b8f5e3a3-ed33-4608-81e1-37d6c9dcfd9c*/, LOGTEXT("Windows 8.1 Core Connected Single Language"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0xf7e88590, 0xdfc7, 0x4c78, { 0xbc, 0xcb, 0x6f, 0x38, 0x65, 0xb9, 0x9d, 0x1a, } } /*f7e88590-dfc7-4c78-bccb-6f3865b99d1a*/, LOGTEXT("Windows 8.1 Embedded Industry Automotive"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0xcd4e2d9f, 0x5059, 0x4a50, { 0xa9, 0x2d, 0x05, 0xd5, 0xbb, 0x12, 0x67, 0xc7, } } /*cd4e2d9f-5059-4a50-a92d-05d5bb1267c7*/, LOGTEXT("Windows 8.1 Embedded Industry Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0x0ab82d54, 0x47f4, 0x4acb, { 0x81, 0x8c, 0xcc, 0x5b, 0xf0, 0xec, 0xb6, 0x49, } } /*0ab82d54-47f4-4acb-818c-cc5bf0ecb649*/, LOGTEXT("Windows 8.1 Embedded Industry Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0x81671aaf, 0x79d1, 0x4eb1, { 0xb0, 0x04, 0x8c, 0xbb, 0xe1, 0x73, 0xaf, 0xea, } } /*81671aaf-79d1-4eb1-b004-8cbbe173afea*/, LOGTEXT("Windows 8.1 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0x113e705c, 0xfa49, 0x48a4, { 0xbe, 0xea, 0x7d, 0xd8, 0x79, 0xb4, 0x6b, 0x14, } } /*113e705c-fa49-48a4-beea-7dd879b46b14*/, LOGTEXT("Windows 8.1 Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0xc06b6981, 0xd7fd, 0x4a35, { 0xb7, 0xb4, 0x05, 0x47, 0x42, 0xb7, 0xaf, 0x67, } } /*c06b6981-d7fd-4a35-b7b4-054742b7af67*/, LOGTEXT("Windows 8.1 Professional"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + { { 0x7476d79f, 0x8e48, 0x49b4, { 0xab, 0x63, 0x4d, 0x0b, 0x81, 0x3a, 0x16, 0xe4, } } /*7476d79f-8e48-49b4-ab63-4d0b813a16e4*/, LOGTEXT("Windows 8.1 Professional N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN81_VL }, + + // Windows Preview +# ifdef INCLUDE_BETAS + { { 0xcde952c7, 0x2f96, 0x4d9d, { 0x8f, 0x2b, 0x2d, 0x34, 0x9f, 0x64, 0xfc, 0x51, } } /*cde952c7-2f96-4d9d-8f2b-2d349f64fc51*/, LOGTEXT("Windows 10 Enterprise Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, + { { 0xa4383e6b, 0xdada, 0x423d, { 0xa4, 0x3d, 0xf2, 0x56, 0x78, 0x42, 0x96, 0x76, } } /*a4383e6b-dada-423d-a43d-f25678429676*/, LOGTEXT("Windows 10 Professional Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, + { { 0xcf59a07b, 0x1a2a, 0x4be0, { 0xbf, 0xe0, 0x42, 0x3b, 0x58, 0x23, 0xe6, 0x63, } } /*cf59a07b-1a2a-4be0-bfe0-423b5823e663*/, LOGTEXT("Windows 10 Professional WMC Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, + { { 0x2b9c337f, 0x7a1d, 0x4271, { 0x90, 0xa3, 0xc6, 0x85, 0x5a, 0x2b, 0x8a, 0x1c, } } /*2b9c337f-7a1d-4271-90a3-c6855a2b8a1c*/, LOGTEXT("Windows 8.x Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, + { { 0x631ead72, 0xa8ab, 0x4df8, { 0xbb, 0xdf, 0x37, 0x20, 0x29, 0x98, 0x9b, 0xdd, } } /*631ead72-a8ab-4df8-bbdf-372029989bdd*/, LOGTEXT("Windows 8.x Preview ARM"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_BETA }, +# endif // INCLUDE_BETAS + + // Windows Server 2008 A (Web and HPC) + { { 0x7afb1156, 0x2c1d, 0x40fc, { 0xb2, 0x60, 0xaa, 0xb7, 0x44, 0x2b, 0x62, 0xfe, } } /*7afb1156-2c1d-40fc-b260-aab7442b62fe*/, LOGTEXT("Windows Server 2008 Compute Cluster"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008A }, + { { 0xddfa9f7c, 0xf09e, 0x40b9, { 0x8c, 0x1a, 0xbe, 0x87, 0x7a, 0x9a, 0x7f, 0x4b, } } /*ddfa9f7c-f09e-40b9-8c1a-be877a9a7f4b*/, LOGTEXT("Windows Server 2008 Web"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008A }, + + // Windows Server 2008 B (Standard and Enterprise) + { { 0xc1af4d90, 0xd1bc, 0x44ca, { 0x85, 0xd4, 0x00, 0x3b, 0xa3, 0x3d, 0xb3, 0xb9, } } /*c1af4d90-d1bc-44ca-85d4-003ba33db3b9*/, LOGTEXT("Windows Server 2008 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, + { { 0x8198490a, 0xadd0, 0x47b2, { 0xb3, 0xba, 0x31, 0x6b, 0x12, 0xd6, 0x47, 0xb4, } } /*8198490a-add0-47b2-b3ba-316b12d647b4*/, LOGTEXT("Windows Server 2008 Enterprise without Hyper-V"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, + { { 0xad2542d4, 0x9154, 0x4c6d, { 0x8a, 0x44, 0x30, 0xf1, 0x1e, 0xe9, 0x69, 0x89, } } /*ad2542d4-9154-4c6d-8a44-30f11ee96989*/, LOGTEXT("Windows Server 2008 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, + { { 0x2401e3d0, 0xc50a, 0x4b58, { 0x87, 0xb2, 0x7e, 0x79, 0x4b, 0x7d, 0x26, 0x07, } } /*2401e3d0-c50a-4b58-87b2-7e794b7d2607*/, LOGTEXT("Windows Server 2008 Standard without Hyper-V"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008B }, + + // Windows Server 2008 C (Datacenter) + { { 0x68b6e220, 0xcf09, 0x466b, { 0x92, 0xd3, 0x45, 0xcd, 0x96, 0x4b, 0x95, 0x09, } } /*68b6e220-cf09-466b-92d3-45cd964b9509*/, LOGTEXT("Windows Server 2008 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008C }, + { { 0xfd09ef77, 0x5647, 0x4eff, { 0x80, 0x9c, 0xaf, 0x2b, 0x64, 0x65, 0x9a, 0x45, } } /*fd09ef77-5647-4eff-809c-af2b64659a45*/, LOGTEXT("Windows Server 2008 Datacenter without Hyper-V"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008C }, + { { 0x01ef176b, 0x3e0d, 0x422a, { 0xb4, 0xf8, 0x4e, 0xa8, 0x80, 0x03, 0x5e, 0x8f, } } /*01ef176b-3e0d-422a-b4f8-4ea880035e8f*/, LOGTEXT("Windows Server 2008 for Itanium"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008C }, + + // Windows Server 2008 R2 A (Web and HPC) + { { 0xf772515c, 0x0e87, 0x48d5, { 0xa6, 0x76, 0xe6, 0x96, 0x2c, 0x3e, 0x11, 0x95, } } /*f772515c-0e87-48d5-a676-e6962c3e1195*/, LOGTEXT("Windows MultiPoint Server 2010"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2A }, + { { 0xcda18cf3, 0xc196, 0x46ad, { 0xb2, 0x89, 0x60, 0xc0, 0x72, 0x86, 0x99, 0x94, } } /*cda18cf3-c196-46ad-b289-60c072869994*/, LOGTEXT("Windows Server 2008 R2 HPC Edition"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2A }, + { { 0xa78b8bd9, 0x8017, 0x4df5, { 0xb8, 0x6a, 0x09, 0xf7, 0x56, 0xaf, 0xfa, 0x7c, } } /*a78b8bd9-8017-4df5-b86a-09f756affa7c*/, LOGTEXT("Windows Server 2008 R2 Web"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2A }, + + // Windows Server 2008 R2 B (Standard and Enterprise) + { { 0x620e2b3d, 0x09e7, 0x42fd, { 0x80, 0x2a, 0x17, 0xa1, 0x36, 0x52, 0xfe, 0x7a, } } /*620e2b3d-09e7-42fd-802a-17a13652fe7a*/, LOGTEXT("Windows Server 2008 R2 Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2B }, + { { 0x68531fb9, 0x5511, 0x4989, { 0x97, 0xbe, 0xd1, 0x1a, 0x0f, 0x55, 0x63, 0x3f, } } /*68531fb9-5511-4989-97be-d11a0f55633f*/, LOGTEXT("Windows Server 2008 R2 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2B }, + + // Windows Server 2008 R2 C (Datacenter) + { { 0x7482e61b, 0xc589, 0x4b7f, { 0x8e, 0xcc, 0x46, 0xd4, 0x55, 0xac, 0x3b, 0x87, } } /*7482e61b-c589-4b7f-8ecc-46d455ac3b87*/, LOGTEXT("Windows Server 2008 R2 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2C }, + { { 0x8a26851c, 0x1c7e, 0x48d3, { 0xa6, 0x87, 0xfb, 0xca, 0x9b, 0x9a, 0xc1, 0x6b, } } /*8a26851c-1c7e-48d3-a687-fbca9b9ac16b*/, LOGTEXT("Windows Server 2008 R2 for Itanium Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2008R2C }, + + // Windows Server 2012 + { { 0xd3643d60, 0x0c42, 0x412d, { 0xa7, 0xd6, 0x52, 0xe6, 0x63, 0x53, 0x27, 0xf6, } } /*d3643d60-0c42-412d-a7d6-52e6635327f6*/, LOGTEXT("Windows Server 2012 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, + { { 0x95fd1c83, 0x7df5, 0x494a, { 0xbe, 0x8b, 0x13, 0x00, 0xe1, 0xc9, 0xd1, 0xcd, } } /*95fd1c83-7df5-494a-be8b-1300e1c9d1cd*/, LOGTEXT("Windows Server 2012 MultiPoint Premium"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, + { { 0x7d5486c7, 0xe120, 0x4771, { 0xb7, 0xf1, 0x7b, 0x56, 0xc6, 0xd3, 0x17, 0x0c, } } /*7d5486c7-e120-4771-b7f1-7b56c6d3170c*/, LOGTEXT("Windows Server 2012 MultiPoint Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, + { { 0xf0f5ec41, 0x0d55, 0x4732, { 0xaf, 0x02, 0x44, 0x0a, 0x44, 0xa3, 0xcf, 0x0f, } } /*f0f5ec41-0d55-4732-af02-440a44a3cf0f*/, LOGTEXT("Windows Server 2012 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012 }, + + // Windows Server 2012 R2 + { { 0xb743a2be, 0x68d4, 0x4dd3, { 0xaf, 0x32, 0x92, 0x42, 0x5b, 0x7b, 0xb6, 0x23, } } /*b743a2be-68d4-4dd3-af32-92425b7bb623*/, LOGTEXT("Windows Server 2012 R2 Cloud Storage"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, + { { 0x00091344, 0x1ea4, 0x4f37, { 0xb7, 0x89, 0x01, 0x75, 0x0b, 0xa6, 0x98, 0x8c, } } /*00091344-1ea4-4f37-b789-01750ba6988c*/, LOGTEXT("Windows Server 2012 R2 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, + { { 0x21db6ba4, 0x9a7b, 0x4a14, { 0x9e, 0x29, 0x64, 0xa6, 0x0c, 0x59, 0x30, 0x1d, } } /*21db6ba4-9a7b-4a14-9e29-64a60c59301d*/, LOGTEXT("Windows Server 2012 R2 Essentials"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, + { { 0xb3ca044e, 0xa358, 0x4d68, { 0x98, 0x83, 0xaa, 0xa2, 0x94, 0x1a, 0xca, 0x99, } } /*b3ca044e-a358-4d68-9883-aaa2941aca99*/, LOGTEXT("Windows Server 2012 R2 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2012R2 }, + + // Windows Server 2016 + { { 0x3dbf341b, 0x5f6c, 0x4fa7, { 0xb9, 0x36, 0x69, 0x9d, 0xce, 0x9e, 0x26, 0x3f, } } /*3dbf341b-5f6c-4fa7-b936-699dce9e263f*/, LOGTEXT("Windows Server 2016 Azure Core"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, + { { 0x7b4433f4, 0xb1e7, 0x4788, { 0x89, 0x5a, 0xc4, 0x53, 0x78, 0xd3, 0x82, 0x53, } } /*7b4433f4-b1e7-4788-895a-c45378d38253*/, LOGTEXT("Windows Server 2016 Cloud Storage"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, + { { 0x21c56779, 0xb449, 0x4d20, { 0xad, 0xfc, 0xee, 0xce, 0x0e, 0x1a, 0xd7, 0x4b, } } /*21c56779-b449-4d20-adfc-eece0e1ad74b*/, LOGTEXT("Windows Server 2016 Datacenter"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, + { { 0x2b5a1b0f, 0xa5ab, 0x4c54, { 0xac, 0x2f, 0xa6, 0xd9, 0x48, 0x24, 0xa2, 0x83, } } /*2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283*/, LOGTEXT("Windows Server 2016 Essentials"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, + { { 0x8c1c5410, 0x9f39, 0x4805, { 0x8c, 0x9d, 0x63, 0xa0, 0x77, 0x06, 0x35, 0x8f, } } /*8c1c5410-9f39-4805-8c9d-63a07706358f*/, LOGTEXT("Windows Server 2016 Standard"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN2016 }, + + // Windows Server Preview +# ifdef INCLUDE_BETAS + { { 0xba947c44, 0xd19d, 0x4786, { 0xb6, 0xae, 0x22, 0x77, 0x0b, 0xc9, 0x4c, 0x54, } } /*ba947c44-d19d-4786-b6ae-22770bc94c54*/, LOGTEXT("Windows Server 2016 Datacenter Preview"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_WIN_SRV_BETA }, +# endif // INCLUDE_BETAS + + // Windows Vista + { { 0x4f3d1606, 0x3fea, 0x4c01, { 0xbe, 0x3c, 0x8d, 0x67, 0x1c, 0x40, 0x1e, 0x3b, } } /*4f3d1606-3fea-4c01-be3c-8d671c401e3b*/, LOGTEXT("Windows Vista Business"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, + { { 0x2c682dc2, 0x8b68, 0x4f63, { 0xa1, 0x65, 0xae, 0x29, 0x1d, 0x4c, 0xf1, 0x38, } } /*2c682dc2-8b68-4f63-a165-ae291d4cf138*/, LOGTEXT("Windows Vista Business N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, + { { 0xcfd8ff08, 0xc0d7, 0x452b, { 0x9f, 0x60, 0xef, 0x5c, 0x70, 0xc3, 0x20, 0x94, } } /*cfd8ff08-c0d7-452b-9f60-ef5c70c32094*/, LOGTEXT("Windows Vista Enterprise"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, + { { 0xd4f54950, 0x26f2, 0x4fb4, { 0xba, 0x21, 0xff, 0xab, 0x16, 0xaf, 0xca, 0xde, } } /*d4f54950-26f2-4fb4-ba21-ffab16afcade*/, LOGTEXT("Windows Vista Enterprise N"), EPID_WINDOWS, APP_ID_WINDOWS, KMS_ID_VISTA }, + + // Office 2010 + { { 0x8ce7e872, 0x188c, 0x4b98, { 0x9d, 0x90, 0xf8, 0xf9, 0x0b, 0x7a, 0xad, 0x02, } } /*8ce7e872-188c-4b98-9d90-f8f90b7aad02*/, LOGTEXT("Office Access 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xcee5d470, 0x6e3b, 0x4fcc, { 0x8c, 0x2b, 0xd1, 0x74, 0x28, 0x56, 0x8a, 0x9f, } } /*cee5d470-6e3b-4fcc-8c2b-d17428568a9f*/, LOGTEXT("Office Excel 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x8947d0b8, 0xc33b, 0x43e1, { 0x8c, 0x56, 0x9b, 0x67, 0x4c, 0x05, 0x28, 0x32, } } /*8947d0b8-c33b-43e1-8c56-9b674c052832*/, LOGTEXT("Office Groove 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xca6b6639, 0x4ad6, 0x40ae, { 0xa5, 0x75, 0x14, 0xde, 0xe0, 0x7f, 0x64, 0x30, } } /*ca6b6639-4ad6-40ae-a575-14dee07f6430*/, LOGTEXT("Office InfoPath 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x09ed9640, 0xf020, 0x400a, { 0xac, 0xd8, 0xd7, 0xd8, 0x67, 0xdf, 0xd9, 0xc2, } } /*09ed9640-f020-400a-acd8-d7d867dfd9c2*/, LOGTEXT("Office Mondo 1 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xef3d4e49, 0xa53d, 0x4d81, { 0xa2, 0xb1, 0x2c, 0xa6, 0xc2, 0x55, 0x6b, 0x2c, } } /*ef3d4e49-a53d-4d81-a2b1-2ca6c2556b2c*/, LOGTEXT("Office Mondo 2 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xab586f5c, 0x5256, 0x4632, { 0x96, 0x2f, 0xfe, 0xfd, 0x8b, 0x49, 0xe6, 0xf4, } } /*ab586f5c-5256-4632-962f-fefd8b49e6f4*/, LOGTEXT("Office OneNote 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xecb7c192, 0x73ab, 0x4ded, { 0xac, 0xf4, 0x23, 0x99, 0xb0, 0x95, 0xd0, 0xcc, } } /*ecb7c192-73ab-4ded-acf4-2399b095d0cc*/, LOGTEXT("Office OutLook 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x45593b1d, 0xdfb1, 0x4e91, { 0xbb, 0xfb, 0x2d, 0x5d, 0x0c, 0xe2, 0x22, 0x7a, } } /*45593b1d-dfb1-4e91-bbfb-2d5d0ce2227a*/, LOGTEXT("Office PowerPoint 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x6f327760, 0x8c5c, 0x417c, { 0x9b, 0x61, 0x83, 0x6a, 0x98, 0x28, 0x7e, 0x0c, } } /*6f327760-8c5c-417c-9b61-836a98287e0c*/, LOGTEXT("Office Professional Plus 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xdf133ff7, 0xbf14, 0x4f95, { 0xaf, 0xe3, 0x7b, 0x48, 0xe7, 0xe3, 0x31, 0xef, } } /*df133ff7-bf14-4f95-afe3-7b48e7e331ef*/, LOGTEXT("Office Project Pro 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x5dc7bf61, 0x5ec9, 0x4996, { 0x9c, 0xcb, 0xdf, 0x80, 0x6a, 0x2d, 0x0e, 0xfe, } } /*5dc7bf61-5ec9-4996-9ccb-df806a2d0efe*/, LOGTEXT("Office Project Standard 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xb50c4f75, 0x599b, 0x43e8, { 0x8d, 0xcd, 0x10, 0x81, 0xa7, 0x96, 0x72, 0x41, } } /*b50c4f75-599b-43e8-8dcd-1081a7967241*/, LOGTEXT("Office Publisher 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xea509e87, 0x07a1, 0x4a45, { 0x9e, 0xdc, 0xeb, 0xa5, 0xa3, 0x9f, 0x36, 0xaf, } } /*ea509e87-07a1-4a45-9edc-eba5a39f36af*/, LOGTEXT("Office Small Business Basics 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x9da2a678, 0xfb6b, 0x4e67, { 0xab, 0x84, 0x60, 0xdd, 0x6a, 0x9c, 0x81, 0x9a, } } /*9da2a678-fb6b-4e67-ab84-60dd6a9c819a*/, LOGTEXT("Office Standard 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x92236105, 0xbb67, 0x494f, { 0x94, 0xc7, 0x7f, 0x7a, 0x60, 0x79, 0x29, 0xbd, } } /*92236105-bb67-494f-94c7-7f7a607929bd*/, LOGTEXT("Office Visio Premium 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0xe558389c, 0x83c3, 0x4b29, { 0xad, 0xfe, 0x5e, 0x4d, 0x7f, 0x46, 0xc3, 0x58, } } /*e558389c-83c3-4b29-adfe-5e4d7f46c358*/, LOGTEXT("Office Visio Pro 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x9ed833ff, 0x4f92, 0x4f36, { 0xb3, 0x70, 0x86, 0x83, 0xa4, 0xf1, 0x32, 0x75, } } /*9ed833ff-4f92-4f36-b370-8683a4f13275*/, LOGTEXT("Office Visio Standard 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + { { 0x2d0882e7, 0xa4e7, 0x423b, { 0x8c, 0xcc, 0x70, 0xd9, 0x1e, 0x01, 0x58, 0xb1, } } /*2d0882e7-a4e7-423b-8ccc-70d91e0158b1*/, LOGTEXT("Office Word 2010"), EPID_OFFICE2010, APP_ID_OFFICE2010, KMS_ID_OFFICE2010 }, + + // Office 2013 + { { 0x6ee7622c, 0x18d8, 0x4005, { 0x9f, 0xb7, 0x92, 0xdb, 0x64, 0x4a, 0x27, 0x9b, } } /*6ee7622c-18d8-4005-9fb7-92db644a279b*/, LOGTEXT("Office Access 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xf7461d52, 0x7c2b, 0x43b2, { 0x87, 0x44, 0xea, 0x95, 0x8e, 0x0b, 0xd0, 0x9a, } } /*f7461d52-7c2b-43b2-8744-ea958e0bd09a*/, LOGTEXT("Office Excel 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xa30b8040, 0xd68a, 0x423f, { 0xb0, 0xb5, 0x9c, 0xe2, 0x92, 0xea, 0x5a, 0x8f, } } /*a30b8040-d68a-423f-b0b5-9ce292ea5a8f*/, LOGTEXT("Office InfoPath 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0x1b9f11e3, 0xc85c, 0x4e1b, { 0xbb, 0x29, 0x87, 0x9a, 0xd2, 0xc9, 0x09, 0xe3, } } /*1b9f11e3-c85c-4e1b-bb29-879ad2c909e3*/, LOGTEXT("Office Lync 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xdc981c6b, 0xfc8e, 0x420f, { 0xaa, 0x43, 0xf8, 0xf3, 0x3e, 0x5c, 0x09, 0x23, } } /*dc981c6b-fc8e-420f-aa43-f8f33e5c0923*/, LOGTEXT("Office Mondo 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xefe1f3e6, 0xaea2, 0x4144, { 0xa2, 0x08, 0x32, 0xaa, 0x87, 0x2b, 0x65, 0x45, } } /*efe1f3e6-aea2-4144-a208-32aa872b6545*/, LOGTEXT("Office OneNote 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0x771c3afa, 0x50c5, 0x443f, { 0xb1, 0x51, 0xff, 0x25, 0x46, 0xd8, 0x63, 0xa0, } } /*771c3afa-50c5-443f-b151-ff2546d863a0*/, LOGTEXT("Office OutLook 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0x8c762649, 0x97d1, 0x4953, { 0xad, 0x27, 0xb7, 0xe2, 0xc2, 0x5b, 0x97, 0x2e, } } /*8c762649-97d1-4953-ad27-b7e2c25b972e*/, LOGTEXT("Office PowerPoint 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xb322da9c, 0xa2e2, 0x4058, { 0x9e, 0x4e, 0xf5, 0x9a, 0x69, 0x70, 0xbd, 0x69, } } /*b322da9c-a2e2-4058-9e4e-f59a6970bd69*/, LOGTEXT("Office Professional Plus 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0x4a5d124a, 0xe620, 0x44ba, { 0xb6, 0xff, 0x65, 0x89, 0x61, 0xb3, 0x3b, 0x9a, } } /*4a5d124a-e620-44ba-b6ff-658961b33b9a*/, LOGTEXT("Office Project Pro 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0x427a28d1, 0xd17c, 0x4abf, { 0xb7, 0x17, 0x32, 0xc7, 0x80, 0xba, 0x6f, 0x07, } } /*427a28d1-d17c-4abf-b717-32c780ba6f07*/, LOGTEXT("Office Project Standard 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0x00c79ff1, 0x6850, 0x443d, { 0xbf, 0x61, 0x71, 0xcd, 0xe0, 0xde, 0x30, 0x5f, } } /*00c79ff1-6850-443d-bf61-71cde0de305f*/, LOGTEXT("Office Publisher 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xb13afb38, 0xcd79, 0x4ae5, { 0x9f, 0x7f, 0xee, 0xd0, 0x58, 0xd7, 0x50, 0xca, } } /*b13afb38-cd79-4ae5-9f7f-eed058d750ca*/, LOGTEXT("Office Standard 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xe13ac10e, 0x75d0, 0x4aff, { 0xa0, 0xcd, 0x76, 0x49, 0x82, 0xcf, 0x54, 0x1c, } } /*e13ac10e-75d0-4aff-a0cd-764982cf541c*/, LOGTEXT("Office Visio Pro 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xac4efaf0, 0xf81f, 0x4f61, { 0xbd, 0xf7, 0xea, 0x32, 0xb0, 0x2a, 0xb1, 0x17, } } /*ac4efaf0-f81f-4f61-bdf7-ea32b02ab117*/, LOGTEXT("Office Visio Standard 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + { { 0xd9f5b1c6, 0x5386, 0x495a, { 0x88, 0xf9, 0x9a, 0xd6, 0xb4, 0x1a, 0xc9, 0xb3, } } /*d9f5b1c6-5386-495a-88f9-9ad6b41ac9b3*/, LOGTEXT("Office Word 2013"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013 }, + + // Office 2013 (Pre-Release) +# ifdef INCLUDE_BETAS + { { 0x44b538e2, 0xfb34, 0x4732, { 0x81, 0xe4, 0x64, 0x4c, 0x17, 0xd2, 0xe7, 0x46, } } /*44b538e2-fb34-4732-81e4-644c17d2e746*/, LOGTEXT("Office Access 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x9373bfa0, 0x97b3, 0x4587, { 0xab, 0x73, 0x30, 0x93, 0x44, 0x61, 0xd5, 0x5c, } } /*9373bfa0-97b3-4587-ab73-30934461d55c*/, LOGTEXT("Office Excel 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0xaa286eb4, 0x556f, 0x4eeb, { 0x96, 0x7c, 0xc1, 0xb7, 0x71, 0xb7, 0x67, 0x3e, } } /*aa286eb4-556f-4eeb-967c-c1b771b7673e*/, LOGTEXT("Office Groove 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x7ccc8256, 0xfbaa, 0x49c6, { 0xb2, 0xa9, 0xf5, 0xaf, 0xb4, 0x25, 0x7c, 0xd2, } } /*7ccc8256-fbaa-49c6-b2a9-f5afb4257cd2*/, LOGTEXT("Office InfoPath 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0xc53dfe17, 0xcc00, 0x4967, { 0xb1, 0x88, 0xa0, 0x88, 0xa9, 0x65, 0x49, 0x4d, } } /*c53dfe17-cc00-4967-b188-a088a965494d*/, LOGTEXT("Office Lync 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x2816a87d, 0xe1ed, 0x4097, { 0xb3, 0x11, 0xe2, 0x34, 0x1c, 0x57, 0xb1, 0x79, } } /*2816a87d-e1ed-4097-b311-e2341c57b179*/, LOGTEXT("Office Mondo 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x67c0f908, 0x184f, 0x4f64, { 0x82, 0x50, 0x12, 0xdb, 0x79, 0x7a, 0xb3, 0xc3, } } /*67c0f908-184f-4f64-8250-12db797ab3c3*/, LOGTEXT("Office OneNote 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x7bce4e7a, 0xdd80, 0x4682, { 0x98, 0xfa, 0xf9, 0x93, 0x72, 0x58, 0x03, 0xd2, } } /*7bce4e7a-dd80-4682-98fa-f993725803d2*/, LOGTEXT("Office Outlook 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x1ec10c0a, 0x54f6, 0x453e, { 0xb8, 0x5a, 0x6f, 0xa1, 0xbb, 0xfe, 0xa9, 0xb7, } } /*1ec10c0a-54f6-453e-b85a-6fa1bbfea9b7*/, LOGTEXT("Office PowerPoint 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x87d2b5bf, 0xd47b, 0x41fb, { 0xaf, 0x62, 0x71, 0xc3, 0x82, 0xf5, 0xcc, 0x85, } } /*87d2b5bf-d47b-41fb-af62-71c382f5cc85*/, LOGTEXT("Office Professional Plus 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x3cfe50a9, 0x0e03, 0x4b29, { 0x97, 0x54, 0x9f, 0x19, 0x3f, 0x07, 0xb7, 0x1f, } } /*3cfe50a9-0e03-4b29-9754-9f193f07b71f*/, LOGTEXT("Office Project Pro 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x39e49e57, 0xae68, 0x4ee3, { 0xb0, 0x98, 0x26, 0x48, 0x0d, 0xf3, 0xda, 0x96, } } /*39e49e57-ae68-4ee3-b098-26480df3da96*/, LOGTEXT("Office Project Standard 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x15aa2117, 0x8f79, 0x49a8, { 0x83, 0x17, 0x75, 0x30, 0x26, 0xd6, 0xa0, 0x54, } } /*15aa2117-8f79-49a8-8317-753026d6a054*/, LOGTEXT("Office Publisher 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0xcfbfd60e, 0x0b5f, 0x427d, { 0x91, 0x7c, 0xa4, 0xdf, 0x42, 0xa8, 0x0e, 0x44, } } /*cfbfd60e-0b5f-427d-917c-a4df42a80e44*/, LOGTEXT("Office Visio Pro 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0x7012cc81, 0x8887, 0x42e9, { 0xb1, 0x7d, 0x4e, 0x5e, 0x42, 0x76, 0x0f, 0x0d, } } /*7012cc81-8887-42e9-b17d-4e5e42760f0d*/, LOGTEXT("Office Visio Standard 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, + { { 0xde9c7eb6, 0x5a85, 0x420d, { 0x97, 0x03, 0xff, 0xf1, 0x1b, 0xdd, 0x4d, 0x43, } } /*de9c7eb6-5a85-420d-9703-fff11bdd4d43*/, LOGTEXT("Office Word 2013 (Pre-Release)"), EPID_OFFICE2013, APP_ID_OFFICE2013, KMS_ID_OFFICE2013_BETA }, +# endif // INCLUDE_BETAS + + // Office 2016 + { { 0x67c0fc0c, 0xdeba, 0x401b, { 0xbf, 0x8b, 0x9c, 0x8a, 0xd8, 0x39, 0x58, 0x04, } } /*67c0fc0c-deba-401b-bf8b-9c8ad8395804*/, LOGTEXT("Office Access 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xc3e65d36, 0x141f, 0x4d2f, { 0xa3, 0x03, 0xa8, 0x42, 0xee, 0x75, 0x6a, 0x29, } } /*c3e65d36-141f-4d2f-a303-a842ee756a29*/, LOGTEXT("Office Excel 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0x9caabccb, 0x61b1, 0x4b4b, { 0x8b, 0xec, 0xd1, 0x0a, 0x3c, 0x3a, 0xc2, 0xce, } } /*9caabccb-61b1-4b4b-8bec-d10a3c3ac2ce*/, LOGTEXT("Office Mondo 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xe914ea6e, 0xa5fa, 0x4439, { 0xa3, 0x94, 0xa9, 0xbb, 0x32, 0x93, 0xca, 0x09, } } /*e914ea6e-a5fa-4439-a394-a9bb3293ca09*/, LOGTEXT("Office Mondo R 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xd8cace59, 0x33d2, 0x4ac7, { 0x9b, 0x1b, 0x9b, 0x72, 0x33, 0x9c, 0x51, 0xc8, } } /*d8cace59-33d2-4ac7-9b1b-9b72339c51c8*/, LOGTEXT("Office OneNote 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xec9d9265, 0x9d1e, 0x4ed0, { 0x83, 0x8a, 0xcd, 0xc2, 0x0f, 0x25, 0x51, 0xa1, } } /*ec9d9265-9d1e-4ed0-838a-cdc20f2551a1*/, LOGTEXT("Office Outlook 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xd70b1bba, 0xb893, 0x4544, { 0x96, 0xe2, 0xb7, 0xa3, 0x18, 0x09, 0x1c, 0x33, } } /*d70b1bba-b893-4544-96e2-b7a318091c33*/, LOGTEXT("Office Powerpoint 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xd450596f, 0x894d, 0x49e0, { 0x96, 0x6a, 0xfd, 0x39, 0xed, 0x4c, 0x4c, 0x64, } } /*d450596f-894d-49e0-966a-fd39ed4c4c64*/, LOGTEXT("Office Professional Plus 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0x4f414197, 0x0fc2, 0x4c01, { 0xb6, 0x8a, 0x86, 0xcb, 0xb9, 0xac, 0x25, 0x4c, } } /*4f414197-0fc2-4c01-b68a-86cbb9ac254c*/, LOGTEXT("Office Project Pro 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0x829b8110, 0x0e6f, 0x4349, { 0xbc, 0xa4, 0x42, 0x80, 0x35, 0x77, 0x78, 0x8d, } } /*829b8110-0e6f-4349-bca4-42803577788d*/, LOGTEXT("Office Project Pro 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xda7ddabc, 0x3fbe, 0x4447, { 0x9e, 0x01, 0x6a, 0xb7, 0x44, 0x0b, 0x4c, 0xd4, } } /*da7ddabc-3fbe-4447-9e01-6ab7440b4cd4*/, LOGTEXT("Office Project Standard 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xcbbaca45, 0x556a, 0x4416, { 0xad, 0x03, 0xbd, 0xa5, 0x98, 0xea, 0xa7, 0xc8, } } /*cbbaca45-556a-4416-ad03-bda598eaa7c8*/, LOGTEXT("Office Project Standard 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0x041a06cb, 0xc5b8, 0x4772, { 0x80, 0x9f, 0x41, 0x6d, 0x03, 0xd1, 0x66, 0x54, } } /*041a06cb-c5b8-4772-809f-416d03d16654*/, LOGTEXT("Office Publisher 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0x83e04ee1, 0xfa8d, 0x436d, { 0x89, 0x94, 0xd3, 0x1a, 0x86, 0x2c, 0xab, 0x77, } } /*83e04ee1-fa8d-436d-8994-d31a862cab77*/, LOGTEXT("Office Skype for Business 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xdedfa23d, 0x6ed1, 0x45a6, { 0x85, 0xdc, 0x63, 0xca, 0xe0, 0x54, 0x6d, 0xe6, } } /*dedfa23d-6ed1-45a6-85dc-63cae0546de6*/, LOGTEXT("Office Standard 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0x6bf301c1, 0xb94a, 0x43e9, { 0xba, 0x31, 0xd4, 0x94, 0x59, 0x8c, 0x47, 0xfb, } } /*6bf301c1-b94a-43e9-ba31-d494598c47fb*/, LOGTEXT("Office Visio Pro 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xb234abe3, 0x0857, 0x4f9c, { 0xb0, 0x5a, 0x4d, 0xc3, 0x14, 0xf8, 0x55, 0x57, } } /*b234abe3-0857-4f9c-b05a-4dc314f85557*/, LOGTEXT("Office Visio Pro 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xaa2a7821, 0x1827, 0x4c2c, { 0x8f, 0x1d, 0x45, 0x13, 0xa3, 0x4d, 0xda, 0x97, } } /*aa2a7821-1827-4c2c-8f1d-4513a34dda97*/, LOGTEXT("Office Visio Standard 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0x361fe620, 0x64f4, 0x41b5, { 0xba, 0x77, 0x84, 0xf8, 0xe0, 0x79, 0xb1, 0xf7, } } /*361fe620-64f4-41b5-ba77-84f8e079b1f7*/, LOGTEXT("Office Visio Standard 2016 XC2R"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, + { { 0xbb11badf, 0xd8aa, 0x470e, { 0x93, 0x11, 0x20, 0xea, 0xf8, 0x0f, 0xe5, 0xcc, } } /*bb11badf-d8aa-470e-9311-20eaf80fe5cc*/, LOGTEXT("Office Word 2016"), EPID_OFFICE2016, APP_ID_OFFICE2013, KMS_ID_OFFICE2016 }, }; // necessary because other .c files cannot access _countof() __pure ProdListIndex_t getExtendedProductListSize(void) { - return _countof(ExtendedProductList) - 1; + return _countof(ExtendedProductList); } -#ifndef NO_LOG +#endif // NO_EXTENDED_PRODUCT_LIST + +#if !defined(NO_LOG) || !defined(NO_STRICT_MODES) __pure ProdListIndex_t getAppListSize(void) { return _countof(AppList); } -#endif // NO_LOG +#endif // !defined(NO_LOG) || !defined(NO_STRICT_MODES) + +__pure ProdListIndex_t getProductListSize(void) +{ + return _countof(ProductList); +} -#endif // NO_EXTENDED_PRODUCT_LIST #endif // IS_LIBRARY @@ -330,18 +335,18 @@ __pure ProdListIndex_t getAppListSize(void) static const struct KMSHostOS { uint16_t Type; uint16_t Build; } HostOS[] = { { 55041, 6002 }, // Windows Server 2008 SP2 - { 55041, 7601 }, // Windows Server 2008 R2 SP1 - { 5426, 9200 }, // Windows Server 2012 - { 6401, 9600 }, // Windows Server 2012 R2 + { 55041, 7601 }, // Windows Server 2008 R2 SP1 + { 5426, 9200 }, // Windows Server 2012 + { 6401, 9600 }, // Windows Server 2012 R2 { 3612, 14393 }, // Windows Server 2016 }; // GroupID and PIDRange static const struct PKEYCONFIG { uint16_t GroupID; uint32_t RangeMin; uint32_t RangeMax; } pkeyconfig[] = { - { 206, 471000000, 530999999 }, // Windows Server 2016 - { 96, 199000000, 217999999 }, // Office2010 - { 206, 234000000, 255999999 }, // Office2013 - { 206, 437000000, 458999999 }, // Office2016 + { 206, 471000000, 530999999 }, // Windows Server 2016 + { 96, 199000000, 217999999 }, // Office2010 + { 206, 234000000, 255999999 }, // Office2013 + { 206, 437000000, 458999999 }, // Office2016 }; // Valid language identifiers to be used in the ePID @@ -373,19 +378,20 @@ uint16_t IsValidLcid(const uint16_t Lcid) #endif // NO_RANDOM_EPID -// Unix time is seconds from 1970-01-01. Should be 64 bits to avoid Year 2035 overflow bug. +// Unix time is seconds from 1970-01-01. Should be 64 bits to avoid Year 2038 overflow bug. // FILETIME is 100 nanoseconds from 1601-01-01. Must be 64 bits. void getUnixTimeAsFileTime(FILETIME *const ts) { int64_t unixtime = (int64_t)time(NULL); int64_t *filetime = (int64_t*)ts; - *filetime = LE64( (unixtime + 11644473600LL) * 10000000LL ); + //*filetime = LE64((unixtime + 11644473600LL) * 10000000LL); + PUT_UA64LE(filetime, (unixtime + 11644473600LL) * 10000000LL); } __pure int64_t fileTimeToUnixTime(const FILETIME *const ts) { - return LE64( *((const int64_t *const)ts) ) / 10000000LL - 11644473600LL; + return GET_UA64LE(ts) / 10000000LL - 11644473600LL; } @@ -393,9 +399,9 @@ __pure int64_t fileTimeToUnixTime(const FILETIME *const ts) * Get's a product name with a GUID in host-endian order. * List can be any list defined above. */ -const char* getProductNameHE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t *const i) +const char* getProductNameHE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t maxList, ProdListIndex_t *const i) { - for (*i = 0; List[*i].name != NULL; (*i)++) + for (*i = 0; *i < maxList; (*i)++) { if (IsEqualGUID(guid, &List[*i].guid)) return List[*i].name; @@ -408,15 +414,15 @@ const char* getProductNameHE(const GUID *const guid, const KmsIdList *const List /* * same as getProductnameHE except GUID is in little-endian (network) order */ -const char* getProductNameLE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t *const i) +const char* getProductNameLE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t maxList, ProdListIndex_t *const i) { - #if __BYTE_ORDER != __LITTLE_ENDIAN +#if __BYTE_ORDER != __LITTLE_ENDIAN GUID HeGUID; LEGUID(&HeGUID, guid); - return getProductNameHE(&HeGUID, List, i); - #else - return getProductNameHE(guid, List, i); - #endif + return getProductNameHE(&HeGUID, List, maxList, i); +#else + return getProductNameHE(guid, List, maxList, i); +#endif } @@ -426,7 +432,7 @@ static char* itoc(char *const c, const int i, uint_fast8_t digits) { char formatString[8]; if (digits > 9) digits = 0; - strcpy(formatString,"%"); + strcpy(formatString, "%"); if (digits) { @@ -442,22 +448,22 @@ static char* itoc(char *const c, const int i, uint_fast8_t digits) static int getRandomServerType() { -# ifndef USE_MSRPC - if (!UseRpcBTFN) -# endif // USE_MSRPC +# if defined(USE_MSRPC) || defined(SIMPLE_RPC) + + return rand() % (int)_countof(HostOS); + +# else // !defined(USE_MSRPC) && !defined(SIMPLE_RPC) + if (!UseServerRpcBTFN) { // This isn't possible at all, e.g. KMS host on XP return rand() % (int)_countof(HostOS); } -# ifndef USE_MSRPC - else - { - // return 9200/9600 if NDR64 is in use, otherwise 6002/7601 - // return (rand() % 2) + (UseRpcNDR64 ? 2 : 0); - if (UseRpcNDR64) return (rand() % 3) + 2; - return (rand() % 2); - } -# endif // USE_MSRPC + + // return 9200/9600/14393 if NDR64 is in use, otherwise 6002/7601 + if (UseServerRpcNDR64) return (rand() % 3) + 2; + return (rand() % 2); + +# endif // !defined(USE_MSRPC) && !defined(SIMPLE_RPC) } @@ -476,7 +482,7 @@ static void generateRandomPid(int index, char *const szPid, int serverType, int1 strcpy(szPid, itoc(numberBuffer, HostOS[serverType].Type, 5)); strcat(szPid, "-"); - if (index > 3) index=0; + if (index > 3) index = 0; strcat(szPid, itoc(numberBuffer, pkeyconfig[index].GroupID, 5)); strcat(szPid, "-"); @@ -525,7 +531,7 @@ void randomPidInit() ProdListIndex_t i; int serverType = getRandomServerType(); - int16_t lang = Lcid ? Lcid : LcidList[rand() % _countof(LcidList)]; + int16_t lang = Lcid ? Lcid : LcidList[rand() % _countof(LcidList)]; for (i = 0; i < MAX_KMSAPPS; i++) { @@ -538,9 +544,9 @@ void randomPidInit() strcpy((char*)KmsResponseParameters[i].Epid, Epid); - #ifndef NO_LOG +#ifndef NO_LOG KmsResponseParameters[i].EpidSource = "randomized at program start"; - #endif // NO_LOG +#endif // NO_LOG } } @@ -557,19 +563,19 @@ static void logRequest(const REQUEST *const baseRequest) char clientname[64]; ProdListIndex_t index; - #ifndef NO_EXTENDED_PRODUCT_LIST - productName = getProductNameLE(&baseRequest->ActID, ExtendedProductList, &index); - if (++index >= (int)_countof(ExtendedProductList)) - #endif // NO_EXTENDED_PRODUCT_LIST +#ifndef NO_EXTENDED_PRODUCT_LIST + productName = getProductNameLE(&baseRequest->ActID, ExtendedProductList, _countof(ExtendedProductList), &index); + if (index >= (int)_countof(ExtendedProductList)) +#endif // NO_EXTENDED_PRODUCT_LIST { - productName = getProductNameLE(&baseRequest->KMSID, ProductList, &index); - if (++index >= (int)_countof(ProductList)) + productName = getProductNameLE(&baseRequest->KMSID, ProductList, _countof(ProductList), &index); + if (index >= (int)_countof(ProductList)) { - productName = getProductNameLE(&baseRequest->AppID, AppList, &index); + productName = getProductNameLE(&baseRequest->AppID, AppList, _countof(AppList), &index); } } - #ifndef NO_VERBOSE_LOG +#ifndef NO_VERBOSE_LOG if (logverbose) { logger("<<< Incoming KMS request\n"); @@ -577,12 +583,12 @@ static void logRequest(const REQUEST *const baseRequest) } else { - #endif // NO_VERBOSE_LOG +#endif // NO_VERBOSE_LOG ucs2_to_utf8(baseRequest->WorkstationName, clientname, 64, 64); logger("KMS v%i.%i request from %s for %s\n", LE16(baseRequest->MajorVer), LE16(baseRequest->MinorVer), clientname, productName); - #ifndef NO_VERBOSE_LOG +#ifndef NO_VERBOSE_LOG } - #endif // NO_VERBOSE_LOG +#endif // NO_VERBOSE_LOG } #endif // NO_LOG @@ -606,38 +612,38 @@ static void getEpid(RESPONSE *const baseResponse, const char** EpidSource, const const char* pid; if (KmsResponseParameters[index].Epid == NULL) { - #ifndef NO_RANDOM_EPID +#ifndef NO_RANDOM_EPID if (RandomizationLevel == 2) { char szPid[PID_BUFFER_SIZE]; generateRandomPid(index, szPid, -1, Lcid ? Lcid : -1); pid = szPid; - #ifndef NO_LOG +#ifndef NO_LOG *EpidSource = "randomized on every request"; - #endif // NO_LOG +#endif // NO_LOG } else - #endif // NO_RANDOM_EPID +#endif // NO_RANDOM_EPID { - switch(index) + switch (index) { - case EPID_INDEX_OFFICE2016: - pid = EPID_OFFICE2016; - break; - case EPID_INDEX_OFFICE2013: - pid = EPID_OFFICE2013; - break; - case EPID_INDEX_OFFICE2010: - pid = EPID_OFFICE2010; - break; - default: - pid = EPID_WINDOWS; - break; + case EPID_INDEX_OFFICE2016: + pid = EPID_OFFICE2016; + break; + case EPID_INDEX_OFFICE2013: + pid = EPID_OFFICE2013; + break; + case EPID_INDEX_OFFICE2010: + pid = EPID_OFFICE2010; + break; + default: + pid = EPID_WINDOWS; + break; } - #ifndef NO_LOG +#ifndef NO_LOG *EpidSource = "vlmcsd default"; - #endif // NO_LOG +#endif // NO_LOG } } else @@ -647,9 +653,9 @@ static void getEpid(RESPONSE *const baseResponse, const char** EpidSource, const if (HwId && KmsResponseParameters[index].HwId != NULL) memcpy(HwId, KmsResponseParameters[index].HwId, sizeof(((RESPONSE_V6 *)0)->HwId)); - #ifndef NO_LOG +#ifndef NO_LOG *EpidSource = KmsResponseParameters[index].EpidSource; - #endif // NO_LOG +#endif // NO_LOG } getEpidFromString(baseResponse, pid); } @@ -678,7 +684,7 @@ static void CheckRequest(const REQUEST *const Request) if (LE32(Request->IsClientVM) > 1) logger("Warning: Virtual Machine field in request must be 0 or 1 but is %u\n", LE32(Request->IsClientVM)); - if (LE32(Request->LicenseStatus) > 6 ) + if (LE32(Request->LicenseStatus) > 6) logger("Warning: License status must be between 0 and 6 but is %u\n", LE32(Request->LicenseStatus)); } #endif // !defined(NO_LOG) && defined(_PEDANTIC) @@ -693,62 +699,120 @@ static void logResponse(const RESPONSE *const baseResponse, const BYTE *const hw char utf8pid[PID_BUFFER_SIZE * 3]; ucs2_to_utf8(baseResponse->KmsPID, utf8pid, PID_BUFFER_SIZE, PID_BUFFER_SIZE * 3); - #ifndef NO_VERBOSE_LOG +#ifndef NO_VERBOSE_LOG if (!logverbose) { - #endif // NO_VERBOSE_LOG +#endif // NO_VERBOSE_LOG logger("Sending ePID (%s): %s\n", EpidSource, utf8pid); - #ifndef NO_VERBOSE_LOG +#ifndef NO_VERBOSE_LOG } else { logger(">>> Sending response, ePID source = %s\n", EpidSource); logResponseVerbose(utf8pid, hwId, baseResponse, &logger); } - #endif // NO_VERBOSE_LOG +#endif // NO_VERBOSE_LOG } #endif +#if __UCLIBC__ && !defined(NO_STRICT_MODES) +long long int llabs(long long int j); +#endif + + /* * Creates the unencrypted base response */ #ifndef IS_LIBRARY -static BOOL __stdcall CreateResponseBaseCallback(const REQUEST *const baseRequest, RESPONSE *const baseResponse, BYTE *const hwId, const char* const ipstr) +static HRESULT __stdcall CreateResponseBaseCallback(const REQUEST *const baseRequest, RESPONSE *const baseResponse, BYTE *const hwId, const char* const ipstr) { const char* EpidSource; - #ifndef NO_LOG +#ifndef NO_LOG logRequest(baseRequest); - #ifdef _PEDANTIC +#ifdef _PEDANTIC CheckRequest(baseRequest); - #endif // _PEDANTIC - #endif // NO_LOG +#endif // _PEDANTIC +#endif // NO_LOG ProdListIndex_t index; + getProductNameLE(&baseRequest->KMSID, ProductList, _countof(ProductList), &index); + +# ifndef NO_STRICT_MODES + if (CheckClientTime) + { + time_t requestTime = (time_t)fileTimeToUnixTime(&baseRequest->ClientTime); + + if (llabs(requestTime - time(NULL)) > 60 * 60 * 4) + { +# ifndef NO_LOG + logger("Client time differs more than 4 hours from system time.\n"); +# endif // !NO_LOG + + return 0xC004F06C; + } + } + + if (WhitelistingLevel & 2) + { + uint_fast8_t i; + for (i = 0; i < _countof(RetailAndBetaProducts); i++) + { + if (IsEqualGuidLE(&ProductList[RetailAndBetaProducts[i]].guid, &baseRequest->KMSID)) + { +# ifndef NO_LOG + logger("Refusing retail or beta product\n"); +# endif // !NO_LOG + + return 0xC004F042; + } + } + } - getProductNameLE(&baseRequest->KMSID, ProductList, &index); + if ((WhitelistingLevel & 1) && index >= _countof(ProductList)) + { +# ifndef NO_LOG + logger("Refusing unknown product\n"); +# endif // !NO_LOG + + return 0xC004F042; + } +# endif // !NO_STRICT_MODES - switch(index) + + switch (index) { - case KMS_ID_OFFICE2016: - index = EPID_INDEX_OFFICE2016; - break; - - case KMS_ID_OFFICE2013: - case KMS_ID_OFFICE2013_BETA: - index = EPID_INDEX_OFFICE2013; - break; - - case KMS_ID_OFFICE2010: - index = EPID_INDEX_OFFICE2010; - break; - - default: - index = EPID_INDEX_WINDOWS; - break; + case KMS_ID_OFFICE2016: + index = EPID_INDEX_OFFICE2016; + break; + + case KMS_ID_OFFICE2013: + case KMS_ID_OFFICE2013_BETA: + index = EPID_INDEX_OFFICE2013; + break; + + case KMS_ID_OFFICE2010: + index = EPID_INDEX_OFFICE2010; + break; + + default: + index = EPID_INDEX_WINDOWS; + break; } +# if !defined(NO_STRICT_MODES) + ProdListIndex_t appIndex = index >= _countof(AppList) ? _countof(AppList) - 1 : index; + + if ((WhitelistingLevel & 1) && !IsEqualGuidLE(&AppList[appIndex].guid, &baseRequest->AppID)) + { +# ifndef NO_LOG + logger("Refusing product with incorrect Application ID\n"); +# endif // NO_LOG + return 0xC004F042; + } +# endif // !defined(NO_STRICT_MODES) + getEpid(baseResponse, &EpidSource, index, hwId); baseResponse->Version = baseRequest->Version; @@ -756,17 +820,20 @@ static BOOL __stdcall CreateResponseBaseCallback(const REQUEST *const baseReques memcpy(&baseResponse->CMID, &baseRequest->CMID, sizeof(GUID)); memcpy(&baseResponse->ClientTime, &baseRequest->ClientTime, sizeof(FILETIME)); - baseResponse->Count = index > 0 && index < 4 ? LE32(10) : LE32(50); - baseResponse->VLActivationInterval = LE32(VLActivationInterval); - baseResponse->VLRenewalInterval = LE32(VLRenewalInterval); + DWORD required_clients = LE32(baseRequest->N_Policy) << 1; + DWORD minimum_answer_clients = index > 0 && index < 4 ? 10 : 50; + + baseResponse->Count = LE32(required_clients > minimum_answer_clients ? required_clients : minimum_answer_clients); + baseResponse->VLActivationInterval = LE32(VLActivationInterval); + baseResponse->VLRenewalInterval = LE32(VLRenewalInterval); if (LE32(baseRequest->N_Policy) > LE32(baseResponse->Count)) baseResponse->Count = LE32(LE32(baseRequest->N_Policy) << 1); - #ifndef NO_LOG +#ifndef NO_LOG logResponse(baseResponse, hwId, EpidSource); - #endif // NO_LOG +#endif // NO_LOG - return !0; + return S_OK; } RequestCallback_t CreateResponseBase = &CreateResponseBaseCallback; @@ -792,10 +859,11 @@ size_t CreateResponseV4(REQUEST_V4 *const request_v4, BYTE *const responseBuffer { RESPONSE_V4* Response = (RESPONSE_V4*)responseBuffer; - if ( !CreateResponseBase(&request_v4->RequestBase, &Response->ResponseBase, NULL, ipstr) ) return 0; + HRESULT hResult; + if (FAILED(hResult = CreateResponseBase(&request_v4->RequestBase, &Response->ResponseBase, NULL, ipstr))) return hResult; DWORD pidSize = LE32(Response->ResponseBase.PIDSize); - BYTE* postEpidPtr = responseBuffer + V4_PRE_EPID_SIZE + pidSize; + BYTE* postEpidPtr = responseBuffer + V4_PRE_EPID_SIZE + pidSize; memmove(postEpidPtr, &Response->ResponseBase.CMID, V4_POST_EPID_SIZE); size_t encryptSize = V4_PRE_EPID_SIZE + V4_POST_EPID_SIZE + pidSize; @@ -833,10 +901,10 @@ static int_fast8_t CreateV6Hmac(BYTE *const encrypt_start, const size_t encryptS // When generating a response tolerance must be 0. // If verifying the hash, try tolerance -1, 0 and +1. One of them must match. - timeSlot = LE64( (GET_UA64LE(ft) / TIME_C1 * TIME_C2 + TIME_C3) + (tolerance * TIME_C1) ); + timeSlot = LE64((GET_UA64LE(ft) / TIME_C1 * TIME_C2 + TIME_C3) + (tolerance * TIME_C1)); // The time slot is hashed with SHA256 so it is not so obvious that it is time - Sha256((BYTE*) &timeSlot, sizeof(timeSlot), hash); + Sha256((BYTE*)&timeSlot, sizeof(timeSlot), hash); // The last 16 bytes of the hashed time slot are the actual HMAC key if (!Sha256Hmac @@ -871,10 +939,10 @@ size_t CreateResponseV6(REQUEST_V6 *restrict request_v6, BYTE *const responseBuf RESPONSE_V6* Response = (RESPONSE_V6*)responseBuffer; RESPONSE* baseResponse = &Response->ResponseBase; - #ifdef _DEBUG +#ifdef _DEBUG // ReSharper disable once CppEntityNeverUsed RESPONSE_V6_DEBUG* xxx = (RESPONSE_V6_DEBUG*)responseBuffer; - #endif +#endif static const BYTE DefaultHwid[8] = { HWID }; int_fast8_t v6 = LE16(request_v6->MajorVer) > 5; @@ -896,8 +964,8 @@ size_t CreateResponseV6(REQUEST_V6 *restrict request_v6, BYTE *const responseBuf // pre-fill with default HwId (not required for v5) memcpy(Response->HwId, DefaultHwid, sizeof(Response->HwId)); - // Just copy decrypted request IV (using Null IV) here. Note this is identical - // to XORing non-decrypted request and reponse IVs + // Just copy decrypted request IV (using Null IV) here. Note this is identical + // to XORing non-decrypted request and reponse IVs memcpy(Response->XoredIVs, request_v6->IV, sizeof(Response->XoredIVs)); } else // V5 specific stuff @@ -911,11 +979,12 @@ size_t CreateResponseV6(REQUEST_V6 *restrict request_v6, BYTE *const responseBuf XorBlock(request_v6->IV, Response->RandomXoredIVs); // Get the base response - if ( !CreateResponseBase(&request_v6->RequestBase, baseResponse, Response->HwId, ipstr) ) return 0; + HRESULT hResult; + if (FAILED(hResult = CreateResponseBase(&request_v6->RequestBase, baseResponse, Response->HwId, ipstr))) return hResult; // Convert the fixed sized struct into variable sized DWORD pidSize = LE32(baseResponse->PIDSize); - BYTE* postEpidPtr = responseBuffer + V6_PRE_EPID_SIZE + pidSize; + BYTE* postEpidPtr = responseBuffer + V6_PRE_EPID_SIZE + pidSize; size_t post_epid_size = v6 ? V6_POST_EPID_SIZE : V5_POST_EPID_SIZE; memmove(postEpidPtr, &baseResponse->CMID, post_epid_size); @@ -1015,8 +1084,8 @@ RESPONSE_RESULT DecryptResponseV4(RESPONSE_V4* response_v4, const int responseSi int copySize = V4_PRE_EPID_SIZE + (LE32(((RESPONSE_V4*)rawResponse)->ResponseBase.PIDSize) <= PID_BUFFER_SIZE << 1 ? - LE32(((RESPONSE_V4*)rawResponse)->ResponseBase.PIDSize) : - PID_BUFFER_SIZE << 1); + LE32(((RESPONSE_V4*)rawResponse)->ResponseBase.PIDSize) : + PID_BUFFER_SIZE << 1); int messageSize = copySize + V4_POST_EPID_SIZE; @@ -1024,7 +1093,7 @@ RESPONSE_RESULT DecryptResponseV4(RESPONSE_V4* response_v4, const int responseSi memcpy(&response_v4->ResponseBase.CMID, rawResponse + copySize, responseSize - copySize); // ensure PID is null terminated - response_v4->ResponseBase.KmsPID[PID_BUFFER_SIZE-1] = 0; + response_v4->ResponseBase.KmsPID[PID_BUFFER_SIZE - 1] = 0; uint8_t* mac = rawResponse + messageSize; AesCmacV4(rawResponse, messageSize, mac); @@ -1032,20 +1101,20 @@ RESPONSE_RESULT DecryptResponseV4(RESPONSE_V4* response_v4, const int responseSi REQUEST_V4* request_v4 = (REQUEST_V4*)rawRequest; RESPONSE_RESULT result; - result.mask = (DWORD)~0; - result.PidLengthOK = checkPidLength((RESPONSE*)rawResponse); - result.VersionOK = response_v4->ResponseBase.Version == request_v4->RequestBase.Version; - result.HashOK = !memcmp(&response_v4->MAC, mac, sizeof(response_v4->MAC)); - result.TimeStampOK = !memcmp(&response_v4->ResponseBase.ClientTime, &request_v4->RequestBase.ClientTime, sizeof(FILETIME)); - result.ClientMachineIDOK = !memcmp(&response_v4->ResponseBase.CMID, &request_v4->RequestBase.CMID, sizeof(GUID)); + result.mask = (DWORD)~0; + result.PidLengthOK = checkPidLength((RESPONSE*)rawResponse); + result.VersionOK = response_v4->ResponseBase.Version == request_v4->RequestBase.Version; + result.HashOK = !memcmp(&response_v4->MAC, mac, sizeof(response_v4->MAC)); + result.TimeStampOK = !memcmp(&response_v4->ResponseBase.ClientTime, &request_v4->RequestBase.ClientTime, sizeof(FILETIME)); + result.ClientMachineIDOK = !memcmp(&response_v4->ResponseBase.CMID, &request_v4->RequestBase.CMID, sizeof(GUID)); result.effectiveResponseSize = responseSize; - result.correctResponseSize = sizeof(RESPONSE_V4) - sizeof(response_v4->ResponseBase.KmsPID) + LE32(response_v4->ResponseBase.PIDSize); + result.correctResponseSize = sizeof(RESPONSE_V4) - sizeof(response_v4->ResponseBase.KmsPID) + LE32(response_v4->ResponseBase.PIDSize); return result; } -static RESPONSE_RESULT VerifyResponseV6(RESPONSE_RESULT result, const AesCtx* Ctx, RESPONSE_V6* response_v6, REQUEST_V6* request_v6, BYTE* const rawResponse) +static RESPONSE_RESULT VerifyResponseV6(RESPONSE_RESULT result, const AesCtx* Ctx, RESPONSE_V6* response_v6, REQUEST_V6* request_v6, BYTE* const rawResponse) { // Check IVs result.IVsOK = !memcmp // In V6 the XoredIV is actually the request IV @@ -1103,7 +1172,7 @@ static RESPONSE_RESULT VerifyResponseV6(RESPONSE_RESULT result, const AesCtx* Ct static RESPONSE_RESULT VerifyResponseV5(RESPONSE_RESULT result, REQUEST_V5* request_v5, RESPONSE_V5* response_v5) { // Check IVs: in V5 (and only v5) request and response IVs must match - result.IVsOK = !memcmp(request_v5->IV, response_v5->IV, sizeof(request_v5->IV)); + result.IVsOK = !memcmp(request_v5->IV, response_v5->IV, sizeof(request_v5->IV)); // V5 has no Hmac, always set to TRUE result.HmacSha256OK = TRUE; @@ -1147,19 +1216,19 @@ RESPONSE_RESULT DecryptResponseV6(RESPONSE_V6* response_v6, int responseSize, BY // Check if pad bytes are all the same BYTE* padByte; for (padByte = lastPadByte - *lastPadByte + 1; padByte < lastPadByte; padByte++) - if (*padByte != *lastPadByte) - { - result.DecryptSuccess = FALSE; - return result; - } + if (*padByte != *lastPadByte) + { + result.DecryptSuccess = FALSE; + return result; + } // Add size of Version, KmsPIDLen and variable size PID - DWORD pidSize = LE32(((RESPONSE_V6*) response)->ResponseBase.PIDSize); + DWORD pidSize = LE32(((RESPONSE_V6*)response)->ResponseBase.PIDSize); copySize1 += - V6_UNENCRYPTED_SIZE + + V6_UNENCRYPTED_SIZE + sizeof(response_v6->ResponseBase.PIDSize) + - (pidSize <= PID_BUFFER_SIZE << 1 ? pidSize : PID_BUFFER_SIZE << 1); + (pidSize <= PID_BUFFER_SIZE << 1 ? pidSize : PID_BUFFER_SIZE << 1); // Copy part 1 of response up to variable sized PID memcpy(response_v6, response, copySize1); @@ -1175,7 +1244,7 @@ RESPONSE_RESULT DecryptResponseV6(RESPONSE_V6* response_v6, int responseSize, BY // A basic client doesn't need the stuff below this comment but we want to use vlmcs // as a debug tool for KMS emulators. - REQUEST_V6* request_v6 = (REQUEST_V6*) rawRequest; + REQUEST_V6* request_v6 = (REQUEST_V6*)rawRequest; DWORD decryptSize = sizeof(request_v6->IV) + sizeof(request_v6->RequestBase) + sizeof(request_v6->Pad); AesDecryptCbc(&Ctx, NULL, request_v6->IV, decryptSize); @@ -1187,9 +1256,9 @@ RESPONSE_RESULT DecryptResponseV6(RESPONSE_V6* response_v6, int responseSize, BY request_v6->Version == request_v6->RequestBase.Version; // Check Base Request - result.PidLengthOK = checkPidLength(&((RESPONSE_V6*) response)->ResponseBase); - result.TimeStampOK = !memcmp(&response_v6->ResponseBase.ClientTime, &request_v6->RequestBase.ClientTime, sizeof(FILETIME)); - result.ClientMachineIDOK = IsEqualGUID(&response_v6->ResponseBase.CMID, &request_v6->RequestBase.CMID); + result.PidLengthOK = checkPidLength(&((RESPONSE_V6*)response)->ResponseBase); + result.TimeStampOK = !memcmp(&response_v6->ResponseBase.ClientTime, &request_v6->RequestBase.ClientTime, sizeof(FILETIME)); + result.ClientMachineIDOK = IsEqualGUID(&response_v6->ResponseBase.CMID, &request_v6->RequestBase.CMID); // Rebuild Random Key and Sha256 Hash BYTE HashVerify[sizeof(response_v6->Hash)]; diff --git a/src/kms.h b/src/kms.h index 96bbc8c..97251ea 100644 --- a/src/kms.h +++ b/src/kms.h @@ -270,7 +270,7 @@ typedef struct #define POFFICE2010GUID &AppList[APP_ID_OFFICE2010].guid #define POFFICE2013GUID &AppList[APP_ID_OFFICE2013].guid -typedef BOOL(__stdcall *RequestCallback_t)(const REQUEST *const baseRequest, RESPONSE *const baseResponse, BYTE *const hwId, const char* const ipstr); +typedef HRESULT(__stdcall *RequestCallback_t)(const REQUEST *const baseRequest, RESPONSE *const baseResponse, BYTE *const hwId, const char* const ipstr); size_t CreateResponseV4(REQUEST_V4 *const Request, BYTE *const response_data, const char* const ipstr); size_t CreateResponseV6(REQUEST_V6 *restrict Request, BYTE *const response_data, const char* const ipstr); @@ -282,10 +282,11 @@ RESPONSE_RESULT DecryptResponseV6(RESPONSE_V6* Response_v6, int responseSize, BY RESPONSE_RESULT DecryptResponseV4(RESPONSE_V4* Response_v4, const int responseSize, BYTE* const response, const BYTE* const request); void getUnixTimeAsFileTime(FILETIME *const ts); __pure int64_t fileTimeToUnixTime(const FILETIME *const ts); -const char* getProductNameHE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t *const i); -const char* getProductNameLE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t *const i); +const char* getProductNameHE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t maxList, ProdListIndex_t *const i); +const char* getProductNameLE(const GUID *const guid, const KmsIdList *const List, ProdListIndex_t maxList, ProdListIndex_t *const i); __pure ProdListIndex_t getExtendedProductListSize(); __pure ProdListIndex_t getAppListSize(void); +__pure ProdListIndex_t getProductListSize(void); extern const KmsIdList ProductList[]; extern const KmsIdList AppList[]; diff --git a/src/libkms.c b/src/libkms.c index bd50333..d4b8153 100644 --- a/src/libkms.c +++ b/src/libkms.c @@ -13,7 +13,7 @@ #define EXTERNAL dllexport -#define DLLVERSION 0x30002 +#define DLLVERSION 0x40000 #include "libkms.h" #include "shared_globals.h" @@ -51,7 +51,7 @@ EXTERNC __declspec(EXTERNAL) char* __cdecl GetErrorMessage() return ErrorMessage; } -EXTERNC __declspec(EXTERNAL) SOCKET __cdecl ConnectToServer(const char* host, const char* port, const int addressFamily) +EXTERNC __declspec(EXTERNAL)SOCKET __cdecl ConnectToServer(const char* host, const char* port, const int addressFamily) { SOCKET sock; *ErrorMessage = 0; @@ -74,11 +74,13 @@ EXTERNC __declspec(EXTERNAL) SOCKET __cdecl ConnectToServer(const char* host, co return sock; } -EXTERNC __declspec(EXTERNAL) RpcStatus __cdecl BindRpc(const SOCKET sock, const int_fast8_t useMultiplexedRpc) +EXTERNC __declspec(EXTERNAL)RpcStatus __cdecl BindRpc(const SOCKET sock, const int_fast8_t useMultiplexedRpc, const int_fast8_t useRpcNDR64, const int_fast8_t useRpcBTFN, PRpcDiag_t rpcDiag) { *ErrorMessage = 0; UseMultiplexedRpc = useMultiplexedRpc; - return rpcBindClient(sock, FALSE); + UseClientRpcNDR64 = useRpcNDR64; + UseClientRpcBTFN = useRpcBTFN; + return rpcBindClient(sock, FALSE, rpcDiag); } EXTERNC __declspec(EXTERNAL) void __cdecl CloseConnection(const SOCKET sock) @@ -87,24 +89,24 @@ EXTERNC __declspec(EXTERNAL) void __cdecl CloseConnection(const SOCKET sock) } -EXTERNC __declspec(EXTERNAL) DWORD __cdecl SendKMSRequest(const SOCKET sock, RESPONSE* baseResponse, REQUEST* baseRequest, RESPONSE_RESULT* result, BYTE *hwid) +EXTERNC __declspec(EXTERNAL)DWORD __cdecl SendKMSRequest(const SOCKET sock, RESPONSE* baseResponse, REQUEST* baseRequest, RESPONSE_RESULT* result, BYTE *hwid) { *ErrorMessage = 0; return SendActivationRequest(sock, baseResponse, baseRequest, result, hwid); } -EXTERNC __declspec(EXTERNAL) int_fast8_t __cdecl IsDisconnected(const SOCKET sock) +EXTERNC __declspec(EXTERNAL)int_fast8_t __cdecl IsDisconnected(const SOCKET sock) { return isDisconnected(sock); } -EXTERNC __declspec(EXTERNAL) DWORD __cdecl StartKmsServer(const int port, RequestCallback_t requestCallback) +EXTERNC __declspec(EXTERNAL)DWORD __cdecl StartKmsServer(const int port, RequestCallback_t requestCallback) { #ifndef SIMPLE_SOCKETS char listenAddress[64]; - if (IsServerStarted) return !0; + if (IsServerStarted) return SOCKET_EALREADY; # ifdef _WIN32 int error = initializeWinSockets(); @@ -120,7 +122,7 @@ EXTERNC __declspec(EXTERNAL) DWORD __cdecl StartKmsServer(const int port, Reques if (checkProtocolStack(AF_INET)) { haveIPv4 = TRUE; maxsockets++; } if (checkProtocolStack(AF_INET6)) { haveIPv6 = TRUE; maxsockets++; } - if(!maxsockets) return !0; + if (!maxsockets) return SOCKET_EAFNOSUPPORT; SocketList = (SOCKET*)vlmcsd_malloc(sizeof(SOCKET) * (size_t)maxsockets); numsockets = 0; @@ -140,7 +142,7 @@ EXTERNC __declspec(EXTERNAL) DWORD __cdecl StartKmsServer(const int port, Reques if (!numsockets) { free(SocketList); - return !0; + return SOCKET_EADDRNOTAVAIL; } IsServerStarted = TRUE; @@ -152,7 +154,7 @@ EXTERNC __declspec(EXTERNAL) DWORD __cdecl StartKmsServer(const int port, Reques # else // SIMPLE_SOCKETS - if (IsServerStarted) return !0; + if (IsServerStarted) return SOCKET_EALREADY; int error; # ifdef _WIN32 @@ -165,6 +167,7 @@ EXTERNC __declspec(EXTERNAL) DWORD __cdecl StartKmsServer(const int port, Reques CreateResponseBase = requestCallback; error = listenOnAllAddresses(); + free(defaultport); if (error) return error; IsServerStarted = TRUE; @@ -178,9 +181,9 @@ EXTERNC __declspec(EXTERNAL) DWORD __cdecl StartKmsServer(const int port, Reques } -EXTERNC __declspec(EXTERNAL) DWORD __cdecl StopKmsServer() +EXTERNC __declspec(EXTERNAL)DWORD __cdecl StopKmsServer() { - if (!IsServerStarted) return !0; + if (!IsServerStarted) return VLMCSD_EPERM; closeAllListeningSockets(); diff --git a/src/libkms.h b/src/libkms.h index 6babaa7..ece9d1c 100644 --- a/src/libkms.h +++ b/src/libkms.h @@ -26,7 +26,7 @@ EXTERNC __declspec(EXTERNAL) const char* const __cdecl GetEmulatorVersion(); EXTERNC __declspec(EXTERNAL) SOCKET __cdecl ConnectToServer(const char* host, const char* port, const int addressFamily); EXTERNC __declspec(EXTERNAL) char* __cdecl GetErrorMessage(); EXTERNC __declspec(EXTERNAL) void __cdecl CloseConnection(const SOCKET sock); -EXTERNC __declspec(EXTERNAL) RpcStatus __cdecl BindRpc(const SOCKET sock, const int_fast8_t useMultiplexedRpc); +EXTERNC __declspec(EXTERNAL) RpcStatus __cdecl BindRpc(const SOCKET sock, const int_fast8_t useMultiplexedRpc, const int_fast8_t useRpcNDR64, const int_fast8_t useRpcBTFN, PRpcDiag_t rpcDiag); EXTERNC __declspec(EXTERNAL) int_fast8_t __cdecl IsDisconnected(const SOCKET sock); //EXTERN_C __declspec(EXTERNAL) unsigned int __cdecl GetRandom32(); diff --git a/src/msrpc-client.c b/src/msrpc-client.c index bbabcc0..864874c 100644 --- a/src/msrpc-client.c +++ b/src/msrpc-client.c @@ -90,7 +90,7 @@ RpcCtx connectToAddress(char *const addr, const int AddressFamily_unused, int_fa /* * Does not do RPC binding on the wire. Just initializes the interface */ -RpcStatus rpcBindClient(const RpcCtx handle, const int_fast8_t verbose) +RpcStatus rpcBindClient(const RpcCtx handle, const int_fast8_t verbose, PRpcDiag_t rpcDiag) { RPC_STATUS status; @@ -99,6 +99,7 @@ RpcStatus rpcBindClient(const RpcCtx handle, const int_fast8_t verbose) errorout("\n%s\n", win_strerror(status)); } + rpcDiag->HasRpcDiag = FALSE; return status; } diff --git a/src/msrpc-client.h b/src/msrpc-client.h index fba073d..603e3b8 100644 --- a/src/msrpc-client.h +++ b/src/msrpc-client.h @@ -7,6 +7,7 @@ #define MSRPC_CLIENT_H_ #include "types.h" +#include "shared_globals.h" #include #include "output.h" @@ -15,7 +16,7 @@ typedef RPC_STATUS RpcStatus; RpcCtx connectToAddress(char *const addr, const int AddressFamily_unused, int_fast8_t showHostName); int_fast8_t isDisconnected(const RpcCtx handle); -RpcStatus rpcBindClient(const RpcCtx handle, const int_fast8_t verbose); +RpcStatus rpcBindClient(const RpcCtx handle, const int_fast8_t verbose, PRpcDiag_t rpcDiag); RpcStatus rpcSendRequest(const RpcCtx handle, BYTE* KmsRequest, size_t requestSize, BYTE **KmsResponse, size_t *responseSize); RpcStatus closeRpc(RpcCtx s); diff --git a/src/network.c b/src/network.c index bb07ca4..08d158e 100644 --- a/src/network.c +++ b/src/network.c @@ -46,7 +46,7 @@ #include "rpc.h" #ifndef _WIN32 -typedef ssize_t (*sendrecv_t)(int, void*, size_t, int); +typedef ssize_t(*sendrecv_t)(int, void*, size_t, int); #else typedef int (WINAPI *sendrecv_t)(SOCKET, void*, int, int); #endif @@ -57,17 +57,16 @@ int_fast8_t sendrecv(SOCKET sock, BYTE *data, int len, int_fast8_t do_send) { int n; sendrecv_t f = do_send - ? (sendrecv_t) send - : (sendrecv_t) recv; + ? (sendrecv_t)send + : (sendrecv_t)recv; do { - n = f(sock, data, len, 0); - } - while ( - ( n < 0 && socket_errno == VLMCSD_EINTR ) || ( n > 0 && ( data += n, (len -= n) > 0 ) )); + n = f(sock, data, len, 0); + } while ( + (n < 0 && socket_errno == SOCKET_EINTR) || (n > 0 && (data += n, (len -= n) > 0))); - return ! len; + return !len; } @@ -78,15 +77,15 @@ static int_fast8_t ip2str(char *restrict result, const size_t resultLength, cons char ipAddress[64], portNumber[8]; if (getnameinfo - ( - socketAddress, - socketLength, - ipAddress, - sizeof(ipAddress), - portNumber, - sizeof(portNumber), - NI_NUMERICHOST | NI_NUMERICSERV - )) + ( + socketAddress, + socketLength, + ipAddress, + sizeof(ipAddress), + portNumber, + sizeof(portNumber), + NI_NUMERICHOST | NI_NUMERICSERV + )) { return FALSE; } @@ -133,12 +132,12 @@ static int_fast8_t setBlockingEnabled(SOCKET fd, int_fast8_t blocking) { if (fd == INVALID_SOCKET) return FALSE; - #ifdef _WIN32 +#ifdef _WIN32 unsigned long mode = blocking ? 0 : 1; return (ioctlsocket(fd, FIONBIO, &mode) == 0) ? TRUE : FALSE; - #else // POSIX +#else // POSIX int flags = fcntl(fd, F_GETFL, 0); @@ -147,7 +146,7 @@ static int_fast8_t setBlockingEnabled(SOCKET fd, int_fast8_t blocking) flags = blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK); return (fcntl(fd, F_SETFL, flags) == 0) ? TRUE : FALSE; - #endif // POSIX +#endif // POSIX } @@ -182,45 +181,45 @@ static int_fast8_t isPrivateIPAddress(struct sockaddr* addr, socklen_t* length) switch (addr->sa_family) { - case AF_INET6: - { - union v6addr* ipv6addr = (union v6addr*)&((struct sockaddr_in6*)addr)->sin6_addr; + case AF_INET6: + { + union v6addr* ipv6addr = (union v6addr*)&((struct sockaddr_in6*)addr)->sin6_addr; - if + if ( - (ipv6addr->qwords[0] != 0 || BE64(ipv6addr->qwords[1]) != 1) && // ::1 IPv6 localhost - (BE16(ipv6addr->words[0]) & 0xe000) == 0x2000 // !2000::/3 - ) - { - return FALSE; - } - - if (length) *length = sizeof(struct sockaddr_in6); - break; + (ipv6addr->qwords[0] != 0 || BE64(ipv6addr->qwords[1]) != 1) && // ::1 IPv6 localhost + (BE16(ipv6addr->words[0]) & 0xe000) == 0x2000 // !2000::/3 + ) + { + return FALSE; } - case AF_INET: - { - uint32_t ipv4addr = BE32(((struct sockaddr_in*)addr)->sin_addr.s_addr); + if (length) *length = sizeof(struct sockaddr_in6); + break; + } + + case AF_INET: + { + uint32_t ipv4addr = BE32(((struct sockaddr_in*)addr)->sin_addr.s_addr); - if + if ( - (ipv4addr & 0xff000000) != 0x7f000000 && // 127.x.x.x localhost + (ipv4addr & 0xff000000) != 0x7f000000 && // 127.x.x.x localhost (ipv4addr & 0xffff0000) != 0xc0a80000 && // 192.168.x.x private routeable (ipv4addr & 0xffff0000) != 0xa9fe0000 && // 169.254.x.x link local (ipv4addr & 0xff000000) != 0x0a000000 && // 10.x.x.x private routeable (ipv4addr & 0xfff00000) != 0xac100000 // 172.16-31.x.x private routeable - ) - { - return FALSE; - } - - if (length) *length = sizeof(struct sockaddr_in); - break; + ) + { + return FALSE; } - default: - return FALSE; + if (length) *length = sizeof(struct sockaddr_in); + break; + } + + default: + return FALSE; } return TRUE; @@ -278,7 +277,7 @@ SOCKET connectToAddress(const char *const addr, const int AddressFamily, int_fas break; } - printerrorf("%s: %s\n", szAddr, socket_errno == VLMCSD_EINPROGRESS ? "Timed out" : vlmcsd_strerror(socket_errno)); + printerrorf("%s: %s\n", szAddr, socket_errno == SOCKET_EINPROGRESS ? "Timed out" : vlmcsd_strerror(socket_errno)); socketclose(s); s = INVALID_SOCKET; @@ -323,47 +322,52 @@ int listenOnAllAddresses() if (!stringToInt(defaultport, 1, 65535, &port_listen)) { printerrorf("Fatal: Port must be numeric between 1 and 65535.\n"); - exit(!0); + exit(VLMCSD_EINVAL); } +# if defined(AF_INET6) && defined(IPV6_V6ONLY) + struct sockaddr_in6 addr; memset(&addr, 0, sizeof(addr)); addr.sin6_family = AF_INET6; addr.sin6_port = BE16((uint16_t)port_listen); addr.sin6_addr = in6addr_any; BOOL v6only = FALSE; - s_server = socket(AF_INET6, SOCK_STREAM, 0); if (s_server == INVALID_SOCKET - || allowSocketReuse(s_server) - || setsockopt(s_server, IPPROTO_IPV6, IPV6_V6ONLY, (sockopt_t)&v6only, sizeof(v6only)) - || bind(s_server, (struct sockaddr *)&addr, sizeof(addr)) - || listen(s_server, SOMAXCONN) ) + || allowSocketReuse(s_server) + || setsockopt(s_server, IPPROTO_IPV6, IPV6_V6ONLY, (sockopt_t)&v6only, sizeof(v6only)) + || bind(s_server, (struct sockaddr *)&addr, sizeof(addr)) + || listen(s_server, SOMAXCONN)) { socketclose(s_server); - struct sockaddr_in addr = { +# endif // defined(AF_INET6) && defined(IPV6_V6ONLY) + struct sockaddr_in addr4 = { .sin_family = AF_INET, - .sin_port = BE16((uint16_t)port_listen), + .sin_port = BE16((uint16_t)port_listen), + .sin_addr.s_addr = BE32(INADDR_ANY) }; - addr.sin_addr.s_addr = BE32(INADDR_ANY); s_server = socket(AF_INET, SOCK_STREAM, 0); - if ( s_server == INVALID_SOCKET - || allowSocketReuse(s_server) - || bind(s_server, (struct sockaddr *)&addr, sizeof(addr)) - || listen(s_server, SOMAXCONN) ) + if (s_server == INVALID_SOCKET + || allowSocketReuse(s_server) + || bind(s_server, (struct sockaddr *)&addr4, sizeof(addr4)) + || listen(s_server, SOMAXCONN)) { int error = socket_errno; printerrorf("Fatal: Cannot bind to TCP port %u: %s\n", port_listen, vlmcsd_strerror(error)); return error; } + +# if defined(AF_INET6) && defined(IPV6_V6ONLY) } +# endif // defined(AF_INET6) && defined(IPV6_V6ONLY) - #ifndef NO_LOG +#ifndef NO_LOG logger("Listening on TCP port %u\n", port_listen); - #endif // NO_LOG +#endif // NO_LOG return 0; } @@ -380,18 +384,18 @@ void getPrivateIPAddresses(int* numAddresses, char*** ipAddresses) PIP_ADAPTER_ADDRESSES firstAdapter, currentAdapter; - DWORD dwRetVal; - ULONG outBufLen = 16384; - ULONG flags = GAA_FLAG_SKIP_MULTICAST | GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_DNS_SERVER | GAA_FLAG_SKIP_FRIENDLY_NAME; + DWORD dwRetVal; + ULONG outBufLen = 16384; + ULONG flags = GAA_FLAG_SKIP_MULTICAST | GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_DNS_SERVER | GAA_FLAG_SKIP_FRIENDLY_NAME; - firstAdapter = (PIP_ADAPTER_ADDRESSES)vlmcsd_malloc(outBufLen); + firstAdapter = (PIP_ADAPTER_ADDRESSES)vlmcsd_malloc(outBufLen); - if ((dwRetVal = GetAdaptersAddresses(AF_UNSPEC, flags, NULL, firstAdapter, &outBufLen)) == ERROR_BUFFER_OVERFLOW) - { - free(firstAdapter); - firstAdapter = (PIP_ADAPTER_ADDRESSES)vlmcsd_malloc(outBufLen); - dwRetVal = GetAdaptersAddresses(AF_UNSPEC, flags, NULL, firstAdapter, &outBufLen); - } + if ((dwRetVal = GetAdaptersAddresses(AF_UNSPEC, flags, NULL, firstAdapter, &outBufLen)) == ERROR_BUFFER_OVERFLOW) + { + free(firstAdapter); + firstAdapter = (PIP_ADAPTER_ADDRESSES)vlmcsd_malloc(outBufLen); + dwRetVal = GetAdaptersAddresses(AF_UNSPEC, flags, NULL, firstAdapter, &outBufLen); + } if (dwRetVal != NO_ERROR) { @@ -478,12 +482,12 @@ void getPrivateIPAddresses(int* numAddresses, char*** ipAddresses) size_t adrlen = strlen(ipAddress); if - ( - addr->ifa_addr->sa_family == AF_INET6 && - adrlen > 5 && - !strchr(ipAddress, '%') && - (BE16(*(uint16_t*)&((struct sockaddr_in6*)addr->ifa_addr)->sin6_addr) & 0xffc0) == 0xfe80 - ) + ( + addr->ifa_addr->sa_family == AF_INET6 && + adrlen > 5 && + !strchr(ipAddress, '%') && + (BE16(*(uint16_t*)&((struct sockaddr_in6*)addr->ifa_addr)->sin6_addr) & 0xffc0) == 0xfe80 + ) { size_t ifnamelen = strlen(addr->ifa_name); char* workaroundIpAddress = (char*)vlmcsd_malloc(adrlen + ifnamelen + 2); @@ -556,10 +560,10 @@ static int listenOnAddress(const struct addrinfo *const ai, SOCKET *s) { # ifdef _PEDANTIC # if defined(_WIN32) || defined(__CYGWIN__) -// if (IsWindowsVistaOrGreater()) //Doesn't work with older version of MingW32-w64 toolchain - if ((GetVersion() & 0xff) > 5) + // if (IsWindowsVistaOrGreater()) //Doesn't work with older version of MingW32-w64 toolchain + if ((GetVersion() & 0xff) > 5) # endif // _WIN32 - printerrorf("Warning: %s does not support socket option IPV6_V6ONLY: %s\n", ipstr, vlmcsd_strerror(socket_errno)); + printerrorf("Warning: %s does not support socket option IPV6_V6ONLY: %s\n", ipstr, vlmcsd_strerror(socket_errno)); # endif // _PEDANTIC } # endif @@ -645,9 +649,9 @@ BOOL addListeningSocket(const char *const addr) if (numsockets >= FD_SETSIZE) { - #ifdef _PEDANTIC // Do not report this error in normal builds to keep file size low +#ifdef _PEDANTIC // Do not report this error in normal builds to keep file size low printerrorf("Warning: Cannot listen on %s. Your OS only supports %u listening sockets in an FD_SET.\n", addr, FD_SETSIZE); - #endif +#endif break; } @@ -680,39 +684,39 @@ __pure int_fast8_t checkProtocolStack(const int addressfamily) // Build an fd_set of all listening socket then use select to wait for an incoming connection static SOCKET network_accept_any() { - fd_set ListeningSocketsList; - SOCKET maxSocket, sock; - int i; - int status; - - FD_ZERO(&ListeningSocketsList); - maxSocket = 0; - - for (i = 0; i < numsockets; i++) - { - FD_SET(SocketList[i], &ListeningSocketsList); - if (SocketList[i] > maxSocket) maxSocket = SocketList[i]; - } - - status = select((int)maxSocket + 1, &ListeningSocketsList, NULL, NULL, NULL); - - if (status < 0) return INVALID_SOCKET; - - sock = INVALID_SOCKET; - - for (i = 0; i < numsockets; i++) - { - if (FD_ISSET(SocketList[i], &ListeningSocketsList)) - { - sock = SocketList[i]; - break; - } - } - - if (sock == INVALID_SOCKET) - return INVALID_SOCKET; - else - return accept(sock, NULL, NULL); + fd_set ListeningSocketsList; + SOCKET maxSocket, sock; + int i; + int status; + + FD_ZERO(&ListeningSocketsList); + maxSocket = 0; + + for (i = 0; i < numsockets; i++) + { + FD_SET(SocketList[i], &ListeningSocketsList); + if (SocketList[i] > maxSocket) maxSocket = SocketList[i]; + } + + status = select((int)maxSocket + 1, &ListeningSocketsList, NULL, NULL, NULL); + + if (status < 0) return INVALID_SOCKET; + + sock = INVALID_SOCKET; + + for (i = 0; i < numsockets; i++) + { + if (FD_ISSET(SocketList[i], &ListeningSocketsList)) + { + sock = SocketList[i]; + break; + } + } + + if (sock == INVALID_SOCKET) + return INVALID_SOCKET; + else + return accept(sock, NULL, NULL); } #endif // !SIMPLE_SOCKETS @@ -734,7 +738,7 @@ void closeAllListeningSockets() socketclose(SocketList[i]); } - #endif // !SIMPLE_SOCKETS +#endif // !SIMPLE_SOCKETS } #endif // NO_SOCKETS @@ -749,7 +753,7 @@ static void serveClient(const SOCKET s_client, const DWORD RpcAssocGroup) to.tv_sec = ServerTimeout; to.tv_usec = 0; - #else // Windows requires a DWORD with milliseconds +#else // Windows requires a DWORD with milliseconds DWORD to = ServerTimeout * 1000; @@ -761,11 +765,11 @@ static void serveClient(const SOCKET s_client, const DWORD RpcAssocGroup) setsockopt(s_client, SOL_SOCKET, SO_RCVTIMEO, (sockopt_t)&to, sizeof(to)) || setsockopt(s_client, SOL_SOCKET, SO_SNDTIMEO, (sockopt_t)&to, sizeof(to)); - if (result) logger("Warning: Set timeout failed: %s\n", vlmcsd_strerror(socket_errno)); + if (result) logger("Warning: Set timeout failed: %s\n", vlmcsd_strerror(socket_errno)); # else // !(!defined(NO_LOG) && defined(_PEDANTIC)) - setsockopt(s_client, SOL_SOCKET, SO_RCVTIMEO, (sockopt_t)&to, sizeof(to)); + setsockopt(s_client, SOL_SOCKET, SO_RCVTIMEO, (sockopt_t)&to, sizeof(to)); setsockopt(s_client, SOL_SOCKET, SO_SNDTIMEO, (sockopt_t)&to, sizeof(to)); # endif // !(!defined(NO_LOG) && defined(_PEDANTIC)) @@ -796,7 +800,7 @@ static void serveClient(const SOCKET s_client, const DWORD RpcAssocGroup) static const char *const fIP = "%s connection %s: %s.\n"; logger(fIP, connection_type, cAccepted, ipstr); - #endif // NO_LOG +#endif // NO_LOG # if !defined(NO_PRIVATE_IP_DETECT) @@ -828,23 +832,23 @@ static void serveClient(const SOCKET s_client, const DWORD RpcAssocGroup) #ifndef NO_SOCKETS static void post_sem(void) { - #if !defined(NO_LIMIT) && !__minix__ +#if !defined(NO_LIMIT) && !__minix__ if (!InetdMode && MaxTasks != SEM_VALUE_MAX) { semaphore_post(Semaphore); } - #endif // !defined(NO_LIMIT) && !__minix__ +#endif // !defined(NO_LIMIT) && !__minix__ } static void wait_sem(void) { - #if !defined(NO_LIMIT) && !__minix__ +#if !defined(NO_LIMIT) && !__minix__ if (!InetdMode && MaxTasks != SEM_VALUE_MAX) { semaphore_wait(Semaphore); } - #endif // !defined(NO_LIMIT) && !__minix__ +#endif // !defined(NO_LIMIT) && !__minix__ } #endif // NO_SOCKETS @@ -853,7 +857,7 @@ static void wait_sem(void) #if defined(_WIN32) || defined(__CYGWIN__) // Win32 Threads static DWORD WINAPI serveClientThreadProc(PCLDATA clData) #else // Posix threads -static void *serveClientThreadProc (PCLDATA clData) +static void *serveClientThreadProc(PCLDATA clData) #endif // Thread proc is identical in WIN32 and Posix threads { serveClient(clData->socket, clData->RpcAssocGroup); @@ -896,18 +900,19 @@ static int ServeClientAsyncPosixThreads(const PCLDATA thr_CLData) { pthread_t p_thr; pthread_attr_t attr; + int error; wait_sem(); // Must set detached state to avoid memory leak - if (pthread_attr_init(&attr) || - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) || - pthread_create(&p_thr, &attr, (void * (*)(void *))serveClientThreadProc, thr_CLData)) + if ((error = pthread_attr_init(&attr)) || + (error = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)) || + (error = pthread_create(&p_thr, &attr, (void * (*)(void *))serveClientThreadProc, thr_CLData))) { socketclose(thr_CLData->socket); free(thr_CLData); post_sem(); - return !0; + return error; } return 0; @@ -921,11 +926,11 @@ static void ChildSignalHandler(const int signal) post_sem(); - #ifndef NO_LOG +#ifndef NO_LOG logger("Warning: Child killed/crashed by %s\n", strsignal(signal)); - #endif // NO_LOG +#endif // NO_LOG - exit(!0); + exit(ECHILD); } static int ServeClientAsyncFork(const SOCKET s_client, const DWORD RpcAssocGroup) @@ -937,7 +942,7 @@ static int ServeClientAsyncFork(const SOCKET s_client, const DWORD RpcAssocGroup { return errno; } - else if ( pid ) + else if (pid) { // Parent process socketclose(s_client); @@ -950,7 +955,7 @@ static int ServeClientAsyncFork(const SOCKET s_client, const DWORD RpcAssocGroup // Setup a Child Handler for most common termination signals struct sigaction sa; - sa.sa_flags = 0; + sa.sa_flags = 0; sa.sa_handler = ChildSignalHandler; static int signallist[] = { SIGHUP, SIGINT, SIGTERM, SIGSEGV, SIGILL, SIGFPE, SIGBUS }; @@ -975,27 +980,27 @@ static int ServeClientAsyncFork(const SOCKET s_client, const DWORD RpcAssocGroup int serveClientAsync(const SOCKET s_client, const DWORD RpcAssocGroup) { - #ifndef USE_THREADS // fork() implementation +#ifndef USE_THREADS // fork() implementation return ServeClientAsyncFork(s_client, RpcAssocGroup); - #else // threads implementation +#else // threads implementation PCLDATA thr_CLData = (PCLDATA)vlmcsd_malloc(sizeof(CLDATA)); thr_CLData->socket = s_client; thr_CLData->RpcAssocGroup = RpcAssocGroup; - #if defined(_WIN32) || defined (__CYGWIN__) // Windows threads +#if defined(_WIN32) || defined (__CYGWIN__) // Windows threads return serveClientAsyncWinThreads(thr_CLData); - #else // Posix Threads +#else // Posix Threads return ServeClientAsyncPosixThreads(thr_CLData); - #endif // Posix Threads +#endif // Posix Threads - #endif // USE_THREADS +#endif // USE_THREADS } #endif // NO_SOCKETS @@ -1006,11 +1011,11 @@ int runServer() DWORD RpcAssocGroup = rand32(); // If compiled for inetd-only mode just serve the stdin socket - #ifdef NO_SOCKETS +#ifdef NO_SOCKETS serveClient(STDIN_FILENO, RpcAssocGroup); return 0; - #else - // In inetd mode just handle the stdin socket +#else +// In inetd mode just handle the stdin socket if (InetdMode) { serveClient(STDIN_FILENO, RpcAssocGroup); @@ -1022,31 +1027,42 @@ int runServer() int error; SOCKET s_client; - #ifdef SIMPLE_SOCKETS - if ( (s_client = accept(s_server, NULL, NULL)) == INVALID_SOCKET ) - #else // Standalone mode fully featured sockets - if ( (s_client = network_accept_any()) == INVALID_SOCKET ) - #endif // Standalone mode fully featured sockets +# ifdef SIMPLE_SOCKETS + if ((s_client = accept(s_server, NULL, NULL)) == INVALID_SOCKET) +# else // Standalone mode fully featured sockets + if ((s_client = network_accept_any()) == INVALID_SOCKET) +# endif // Standalone mode fully featured sockets { error = socket_errno; + if (error == SOCKET_EINTR || error == SOCKET_ECONNABORTED) continue; - if (error == VLMCSD_EINTR || error == VLMCSD_ECONNABORTED) continue; - - #ifdef _NTSERVICE +# ifdef _NTSERVICE if (ServiceShutdown) return 0; - #endif +# endif - #ifndef NO_LOG - logger("Fatal: %s\n",vlmcsd_strerror(error)); - #endif +# ifndef NO_LOG + logger("Fatal: %s\n", vlmcsd_strerror(error)); +# endif return error; } RpcAssocGroup++; + +# if !defined(NO_LOG) && defined(_PEDANTIC) + if ((error = serveClientAsync(s_client, RpcAssocGroup))) + { +# ifdef USE_THREADS + logger("Warning: Could not create client thread: %s\n", vlmcsd_strerror(error)); +# else // !USE_THREADS + logger("Warning: Could not fork client: %s\n", vlmcsd_strerror(error)); +# endif // !USE_THREADS + } +# else // NO_LOG || !_PEDANTIC serveClientAsync(s_client, RpcAssocGroup); +# endif // NO_LOG || !_PEDANTIC } - #endif // NO_SOCKETS +# endif // NO_SOCKETS } #endif // USE_MSRPC diff --git a/src/output.c b/src/output.c index 03c6247..0050fb5 100644 --- a/src/output.c +++ b/src/output.c @@ -154,12 +154,12 @@ int errorout(const char* fmt, ...) } -#ifndef NO_VERBOSE_LOG +#if !defined(NO_VERBOSE_LOG) && !defined(NO_LOG) static const char *LicenseStatusText[] = { "Unlicensed", "Licensed", "OOB grace", "OOT grace", "Non-Genuine", "Notification", "Extended grace" }; -#endif // NO_VERBOSE_LOG +#endif // !defined(NO_VERBOSE_LOG) && !defined(NO_LOG) void uuid2StringLE(const GUID *const guid, char *const string) @@ -192,13 +192,13 @@ void logRequestVerbose(const REQUEST *const Request, const PRINTFUNC p) p("Remaining time (0 = forever) : %i minutes\n", (uint32_t)LE32(Request->BindingExpiration)); uuid2StringLE(&Request->AppID, guidBuffer); - productName = getProductNameLE(&Request->AppID, AppList, &index); + productName = getProductNameLE(&Request->AppID, AppList, getAppListSize(), &index); p("Application ID : %s (%s)\n", guidBuffer, productName); uuid2StringLE(&Request->ActID, guidBuffer); # ifndef NO_EXTENDED_PRODUCT_LIST - productName = getProductNameLE(&Request->ActID, ExtendedProductList, &index); + productName = getProductNameLE(&Request->ActID, ExtendedProductList, getExtendedProductListSize(), &index); # else productName = "Unknown"; # endif @@ -206,7 +206,7 @@ void logRequestVerbose(const REQUEST *const Request, const PRINTFUNC p) p("SKU ID (aka Activation ID) : %s (%s)\n", guidBuffer, productName); uuid2StringLE(&Request->KMSID, guidBuffer); - productName = getProductNameLE(&Request->KMSID, ProductList, &index); + productName = getProductNameLE(&Request->KMSID, ProductList, getProductListSize(), &index); p("KMS ID (aka KMS counted ID) : %s (%s)\n", guidBuffer, productName); uuid2StringLE(&Request->CMID, guidBuffer); @@ -578,6 +578,10 @@ void printServerFlags() " NO_HELP" # endif // NO_HELP +# ifdef NO_STRICT_MODES + " NO_STRICT_MODES" +# endif // NO_STRICT_MODES + # ifdef NO_CUSTOM_INTERVALS " NO_CUSTOM_INTERVALS" # endif // NO_CUSTOM_INTERVALS @@ -618,6 +622,14 @@ void printServerFlags() " SIMPLE_SOCKETS" # endif // !defined(NO_SOCKETS) && defined(SIMPLE_SOCKETS) +# ifdef SIMPLE_RPC + " SIMPLE_RPC" +# endif // SIMPLE_RPC + +# ifdef NO_STRICT_MODES + " NO_STRICT_MODES" +# endif // NO_STRICT_MODES + # if (_WIN32 || __CYGWIN__) && (!defined(USE_MSRPC) || defined(SUPPORT_WINE)) " SUPPORT_WINE" # endif // (_WIN32 || __CYGWIN__) && (!defined(USE_MSRPC) || defined(SUPPORT_WINE)) diff --git a/src/rpc.c b/src/rpc.c index 3f481a4..71ee473 100644 --- a/src/rpc.c +++ b/src/rpc.c @@ -43,6 +43,7 @@ static const BYTE InterfaceUuid[] = { 0x75, 0x21, 0xc8, 0x51, 0x4e, 0x84, 0x50, 0x47, 0xB0, 0xD8, 0xEC, 0x25, 0x55, 0x55, 0xBC, 0x06 }; +//#ifndef SIMPLE_RPC static const BYTE TransferSyntaxNDR64[] = { 0x33, 0x05, 0x71, 0x71, 0xba, 0xbe, 0x37, 0x49, 0x83, 0x19, 0xb5, 0xdb, 0xef, 0x9c, 0xcc, 0x36 }; @@ -50,7 +51,7 @@ static const BYTE TransferSyntaxNDR64[] = { static const BYTE BindTimeFeatureNegotiation[] = { 0x2c, 0x1c, 0xb7, 0x6c, 0x12, 0x98, 0x40, 0x45, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - +//#endif // SIMPLE_RPC // // Dispatch RPC payload to kms.c @@ -181,6 +182,8 @@ static unsigned int checkRpcRequestSize(const RPC_REQUEST64 *const Request, cons uint16_t majorIndex, minor; DWORD version; +# ifndef SIMPLE_RPC + if (Ctx != *Ndr64Ctx) { version = LE32(*(DWORD*)Request->Ndr.Data); @@ -190,6 +193,12 @@ static unsigned int checkRpcRequestSize(const RPC_REQUEST64 *const Request, cons version = LE32(*(DWORD*)Request->Ndr64.Data); } +# else // SIMPLE_RPC + + version = LE32(*(DWORD*)Request->Ndr.Data); + +# endif // SIMPLE_RPC + majorIndex = (uint16_t)(version >> 16) - 4; minor = (uint16_t)(version & 0xffff); @@ -218,12 +227,15 @@ static unsigned int checkRpcRequestSize(const RPC_REQUEST64 *const Request, cons static int rpcRequest(const RPC_REQUEST64 *const Request, RPC_RESPONSE64 *const Response, const DWORD RpcAssocGroup_unused, const SOCKET sock_unused, WORD* NdrCtx, WORD* Ndr64Ctx, BYTE isValid, const char* const ipstr) { int ResponseSize; // <0 = Errorcode (HRESULT) - WORD Ctx = LE16(Request->ContextId); BYTE* requestData; BYTE* responseData; BYTE* pRpcReturnCode; int len; +# ifndef SIMPLE_RPC + + WORD Ctx = LE16(Request->ContextId); + if (Ctx != *Ndr64Ctx) { requestData = (BYTE*)&Request->Ndr.Data; @@ -235,6 +247,13 @@ static int rpcRequest(const RPC_REQUEST64 *const Request, RPC_RESPONSE64 *const responseData = (BYTE*)&Response->Ndr64.Data; } +# else // SIMPLE_RPC + + requestData = (BYTE*)&Request->Ndr.Data; + responseData = (BYTE*)&Response->Ndr.Data; + +# endif // SIMPLE_RPC + ResponseSize = 0x8007000D; // Invalid Data if (isValid) @@ -243,8 +262,12 @@ static int rpcRequest(const RPC_REQUEST64 *const Request, RPC_RESPONSE64 *const if (!((ResponseSize = _Versions[majorIndex].CreateResponse(requestData, responseData, ipstr)))) ResponseSize = 0x8007000D; } +# ifndef SIMPLE_RPC + if (Ctx != *Ndr64Ctx) { + +# endif // !SIMPLE_RPC if (ResponseSize < 0) { Response->Ndr.DataSizeMax = Response->Ndr.DataLength = 0; @@ -256,6 +279,9 @@ static int rpcRequest(const RPC_REQUEST64 *const Request, RPC_RESPONSE64 *const Response->Ndr.DataLength = Response->Ndr.DataSizeIs = LE32(ResponseSize); len = ResponseSize + sizeof(Response->Ndr); } + +# ifndef SIMPLE_RPC + } else { @@ -272,6 +298,8 @@ static int rpcRequest(const RPC_REQUEST64 *const Request, RPC_RESPONSE64 *const } } +# endif // !SIMPLE_RPC + pRpcReturnCode = ((BYTE*)&Response->Ndr) + len; UA32(pRpcReturnCode) = ResponseSize < 0 ? LE32(ResponseSize) : 0; len += sizeof(DWORD); @@ -417,7 +445,9 @@ static int rpcBind(const RPC_BIND_REQUEST *const Request, RPC_BIND_RESPONSE* Res Response->NumResults = Request->NumCtxItems; - if (UseRpcNDR64) +# ifndef SIMPLE_RPC + + if (UseServerRpcNDR64) { for (i = 0; i < numCtxItems; i++) { @@ -437,6 +467,8 @@ static int rpcBind(const RPC_BIND_REQUEST *const Request, RPC_BIND_RESPONSE* Res } } +# endif // !SIMPLE_RPC + for (i = 0; i < numCtxItems; i++) { memset(&Response->Results[i].TransferSyntax, 0, sizeof(GUID)); @@ -450,6 +482,9 @@ static int rpcBind(const RPC_BIND_REQUEST *const Request, RPC_BIND_RESPONSE* Res _st = TRUE; } + +# ifndef SIMPLE_RPC + else if (IsNDR64possible && IsEqualGUID((GUID*)TransferSyntaxNDR64, &Request->CtxItems[i].TransferSyntax)) { Response->Results[i].SyntaxVersion = LE32(1); @@ -459,7 +494,7 @@ static int rpcBind(const RPC_BIND_REQUEST *const Request, RPC_BIND_RESPONSE* Res _st = TRUE; } - else if (UseRpcBTFN && !memcmp(BindTimeFeatureNegotiation, (BYTE*)(&Request->CtxItems[i].TransferSyntax), 8)) + else if (UseServerRpcBTFN && !memcmp(BindTimeFeatureNegotiation, (BYTE*)(&Request->CtxItems[i].TransferSyntax), 8)) { Response->Results[i].SyntaxVersion = 0; Response->Results[i].AckResult = RPC_BIND_ACK; @@ -469,6 +504,9 @@ static int rpcBind(const RPC_BIND_REQUEST *const Request, RPC_BIND_RESPONSE* Res ((WORD*)(&Request->CtxItems[i].TransferSyntax))[4] & (RPC_BTFN_SEC_CONTEXT_MULTIPLEX | RPC_BTFN_KEEP_ORPHAN); } + +# endif // !SIMPLE_RPC + else { Response->Results[i].SyntaxVersion = 0; @@ -705,7 +743,7 @@ RpcStatus rpcSendRequest(const RpcCtx sock, const BYTE *const KmsRequest, const RPC_REQUEST64 *RpcRequest; RPC_RESPONSE64 _Response; int status; - int_fast8_t useNdr64 = UseRpcNDR64 && firstPacketSent; + int_fast8_t useNdr64 = UseClientRpcNDR64 && firstPacketSent; size_t size = sizeof(RPC_HEADER) + (useNdr64 ? sizeof(RPC_REQUEST64) : sizeof(RPC_REQUEST)) + requestSize; size_t responseSize2; @@ -901,7 +939,7 @@ RpcStatus rpcBindOrAlterClientContext(const RpcCtx sock, BYTE packetType, const RPC_BIND_REQUEST *bindRequest; RPC_BIND_RESPONSE *bindResponse; int status; - WORD ctxItems = 1 + (packetType == RPC_PT_BIND_REQ ? UseRpcNDR64 + UseRpcBTFN : 0); + WORD ctxItems = 1 + (packetType == RPC_PT_BIND_REQ ? UseClientRpcNDR64 + UseClientRpcBTFN : 0); size_t rpcBindSize = (sizeof(RPC_HEADER) + sizeof(RPC_BIND_REQUEST) + (ctxItems - 1) * sizeof(bindRequest->CtxItems[0])); WORD ctxIndex = 0; WORD i; @@ -932,13 +970,13 @@ RpcStatus rpcBindOrAlterClientContext(const RpcCtx sock, BYTE packetType, const memcpy(&bindRequest->CtxItems[0].TransferSyntax, TransferSyntaxNDR32, sizeof(GUID)); - if (UseRpcNDR64 && packetType == RPC_PT_BIND_REQ) + if (UseClientRpcNDR64 && packetType == RPC_PT_BIND_REQ) { memcpy(&bindRequest->CtxItems[++ctxIndex].TransferSyntax, TransferSyntaxNDR64, sizeof(GUID)); CtxNDR64 = ctxIndex; } - if (UseRpcBTFN && packetType == RPC_PT_BIND_REQ) + if (UseClientRpcBTFN && packetType == RPC_PT_BIND_REQ) { memcpy(&bindRequest->CtxItems[++ctxIndex].TransferSyntax, BindTimeFeatureNegotiation, sizeof(GUID)); CtxBTFN = ctxIndex; @@ -1124,7 +1162,7 @@ RpcStatus rpcBindOrAlterClientContext(const RpcCtx sock, BYTE packetType, const return status; } -RpcStatus rpcBindClient(const RpcCtx sock, const int_fast8_t verbose) +RpcStatus rpcBindClient(const RpcCtx sock, const int_fast8_t verbose, PRpcDiag_t rpcDiag) { firstPacketSent = FALSE; RpcFlags.mask = 0; @@ -1132,11 +1170,15 @@ RpcStatus rpcBindClient(const RpcCtx sock, const int_fast8_t verbose) RpcStatus status = rpcBindOrAlterClientContext(sock, RPC_PT_BIND_REQ, verbose); - if (status) return status; + if (status) goto end; if (!RpcFlags.HasNDR32) status = rpcBindOrAlterClientContext(sock, RPC_PT_ALTERCONTEXT_REQ, verbose); +end: + rpcDiag->HasRpcDiag = TRUE; + rpcDiag->HasNDR64 = !!RpcFlags.HasNDR64; + rpcDiag->HasBTFN = !!RpcFlags.HasBTFN; return status; } diff --git a/src/rpc.h b/src/rpc.h index 301e560..544b8c2 100644 --- a/src/rpc.h +++ b/src/rpc.h @@ -7,6 +7,7 @@ #include CONFIG #include "types.h" +#include "shared_globals.h" #if !defined(_WIN32) && !defined(__CYGWIN__) #define RPC_S_OK 0 @@ -306,7 +307,7 @@ typedef union _RPC_FLAGS extern RPC_FLAGS RpcFlags; void rpcServer(const SOCKET sock, const DWORD RpcAssocGroup, const char* const ipstr); -RpcStatus rpcBindClient(const RpcCtx sock, const int_fast8_t verbose); +RpcStatus rpcBindClient(const RpcCtx sock, const int_fast8_t verbose, PRpcDiag_t rpcDiag); RpcStatus rpcSendRequest(const RpcCtx socket, const BYTE *const KmsRequest, const size_t requestSize, BYTE **KmsResponse, size_t *const responseSize); #endif // __rpc_h diff --git a/src/shared_globals.c b/src/shared_globals.c index 0487791..615c1de 100644 --- a/src/shared_globals.c +++ b/src/shared_globals.c @@ -18,14 +18,23 @@ const char *const cIPv6 = "IPv6"; char ErrorMessage[MESSAGE_BUFFER_SIZE]; #endif // IS_LIBRARY +#ifndef NO_STRICT_MODES +uint32_t WhitelistingLevel = 0; +int_fast8_t CheckClientTime = FALSE; +#endif // !NO_STRICT_MODES + #ifndef USE_MSRPC int_fast8_t UseMultiplexedRpc = TRUE; -int_fast8_t UseRpcNDR64 = TRUE; -int_fast8_t UseRpcBTFN = TRUE; +#ifndef SIMPLE_RPC +int_fast8_t UseServerRpcNDR64 = TRUE; +int_fast8_t UseServerRpcBTFN = TRUE; +#endif // !SIMPLE_RPC +int_fast8_t UseClientRpcNDR64 = TRUE; +int_fast8_t UseClientRpcBTFN = TRUE; #endif // USE_MSRPC #ifndef NO_SOCKETS -const char *defaultport = "1688"; +char *defaultport = "1688"; #endif // NO_SOCKETS #if !defined(NO_PRIVATE_IP_DETECT) diff --git a/src/shared_globals.h b/src/shared_globals.h index 72b0093..4f1709c 100644 --- a/src/shared_globals.h +++ b/src/shared_globals.h @@ -57,6 +57,13 @@ typedef struct #endif // NO_LOG } KmsResponseParam_t, *PKmsResponseParam_t; +typedef struct +{ + int8_t HasRpcDiag; + int8_t HasBTFN; + int8_t HasNDR64; +} RpcDiag_t, *PRpcDiag_t; + #if !defined(NO_LIMIT) && !__minix__ #ifndef SEM_VALUE_MAX // Android does not define this #ifdef __ANDROID__ @@ -94,14 +101,24 @@ extern const char *const cIPv4; extern const char *const cIPv6; extern int_fast8_t InetdMode; +#ifndef NO_STRICT_MODES +extern uint32_t WhitelistingLevel; +extern int_fast8_t CheckClientTime; +#endif // !NO_STRICT_MODES + + #ifndef USE_MSRPC extern int_fast8_t UseMultiplexedRpc; -extern int_fast8_t UseRpcNDR64; -extern int_fast8_t UseRpcBTFN; +#ifndef SIMPLE_RPC +extern int_fast8_t UseServerRpcNDR64; +extern int_fast8_t UseServerRpcBTFN; +#endif // !SIMPLE_RPC +extern int_fast8_t UseClientRpcNDR64; +extern int_fast8_t UseClientRpcBTFN; #endif // USE_MSRPC #ifndef NO_SOCKETS -extern const char *defaultport; +extern char *defaultport; #endif // NO_SOCKETS #if !defined(NO_PRIVATE_IP_DETECT) diff --git a/src/types.h b/src/types.h index fb92b51..46ec2d6 100644 --- a/src/types.h +++ b/src/types.h @@ -61,7 +61,11 @@ #if !defined(NO_GETIFADDRS) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS) && !defined(NO_SOCKETS) && !defined(NO_PRIVATE_IP_DETECT) #define HAVE_GETIFADDR 1 -#endif +#endif + +#if !defined(NO_STRICT_MODES) && defined(NO_BASIC_PRODUCT_LIST) +#define NO_STRICT_MODES +#endif // !defined(NO_STRICT_MODES) && defined(NO_BASIC_PRODUCT_LIST) #ifndef alloca #ifdef __GNUC__ @@ -213,17 +217,27 @@ typedef uint8_t ProdListIndex_t; //#include typedef char* sockopt_t; -// Map VLMCSD error codes to WSAGetLastError() codes +/* Unknown Winsock error codes */ +#define WSAENODEV -1 + +// Map VLMCSD error codes to WSAGetLastError() and GetLastError() codes // Add more if you need them -#define VLMCSD_EADDRINUSE WSAEADDRINUSE -#define VLMCSD_ENODEV WSAENODEV -#define VLMCSD_EADDRNOTAVAIL WSAEADDRNOTAVAIL -#define VLMCSD_EACCES WSAEACCES -#define VLMCSD_EINVAL WSAEINVAL -#define VLMCSD_ENOTSOCK WSAENOTSOCK -#define VLMCSD_EINTR WSAEINTR -#define VLMCSD_EINPROGRESS WSAEINPROGRESS -#define VLMCSD_ECONNABORTED WSAECONNABORTED +#define SOCKET_EADDRINUSE WSAEADDRINUSE +#define SOCKET_ENODEV WSAENODEV +#define SOCKET_EADDRNOTAVAIL WSAEADDRNOTAVAIL +#define SOCKET_EACCES WSAEACCES +#define SOCKET_EINVAL WSAEINVAL +#define SOCKET_ENOTSOCK WSAENOTSOCK +#define SOCKET_EINTR WSAEINTR +#define SOCKET_EINPROGRESS WSAEINPROGRESS +#define SOCKET_ECONNABORTED WSAECONNABORTED +#define SOCKET_EALREADY WSAEALREADY + +#define VLMCSD_EACCES ERROR_ACCESS_DENIED +#define VLMCSD_EINVAL ERROR_INVALID_PARAMETER +#define VLMCSD_ENOMEM ERROR_OUTOFMEMORY +#define VLMCSD_EPERM ERROR_CAN_NOT_COMPLETE + #define socket_errno WSAGetLastError() #define socketclose(x) (closesocket(x)) @@ -232,9 +246,6 @@ typedef char* sockopt_t; #define VLMCSD_SHUT_WR SD_SEND #define VLMCSD_SHUT_RDWR SD_BOTH -/* Unknown Winsock error codes */ -#define WSAENODEV -1 - #elif defined(__CYGWIN__) #include @@ -250,7 +261,12 @@ typedef uint32_t DWORD; typedef uint16_t WORD; typedef uint8_t BYTE; typedef uint16_t WCHAR; -typedef int BOOL; +typedef int32_t BOOL; +typedef int32_t HRESULT; +#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) +#define FAILED(hr) (((HRESULT)(hr)) < 0) +#define S_OK ((HRESULT)0) + #define FALSE 0 #define TRUE !0 @@ -272,15 +288,22 @@ typedef struct { #ifndef _WIN32 // Map VLMCSD error codes to POSIX codes // Add more if you need them -#define VLMCSD_EADDRINUSE EADDRINUSE -#define VLMCSD_ENODEV ENODEV -#define VLMCSD_EADDRNOTAVAIL EADDRNOTAVAIL +#define SOCKET_EADDRINUSE EADDRINUSE +#define SOCKET_ENODEV ENODEV +#define SOCKET_EADDRNOTAVAIL EADDRNOTAVAIL +#define SOCKET_EACCES EACCES +#define SOCKET_EINVAL EINVAL +#define SOCKET_ENOTSOCK ENOTSOCK +#define SOCKET_EINTR EINTR +#define SOCKET_EINPROGRESS EINPROGRESS +#define SOCKET_ECONNABORTED ECONNABORTED +#define SOCKET_EALREADY EALREADY + #define VLMCSD_EACCES EACCES #define VLMCSD_EINVAL EINVAL -#define VLMCSD_ENOTSOCK ENOTSOCK #define VLMCSD_EINTR EINTR -#define VLMCSD_EINPROGRESS EINPROGRESS -#define VLMCSD_ECONNABORTED ECONNABORTED +#define VLMCSD_ENOMEM ENOMEM +#define VLMCSD_EPERM EPERM typedef void* sockopt_t; #define _countof(x) ( sizeof(x) / sizeof(x[0]) ) diff --git a/vlmcs-linux-remote.vcxproj b/src/vlmcs-linux-remote.vcxproj similarity index 75% rename from vlmcs-linux-remote.vcxproj rename to src/vlmcs-linux-remote.vcxproj index 77804ff..73f7b7f 100644 --- a/vlmcs-linux-remote.vcxproj +++ b/src/vlmcs-linux-remote.vcxproj @@ -29,39 +29,39 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + {1ED83566-8AE1-4EE8-9B62-37188A7AC7CA} @@ -104,39 +104,37 @@ gcc - $(ProjectDir)VisualStudio-Linux-Remote\bin\$(Platform)\$(Configuration)\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcs\obj\$(Platform)\$(Configuration)\ gcc - $(IncludePath);$(ISenseIncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(IncludePath);$(ISenseIncludePath);$(ProjectDir)VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(ProjectDir)vlmcs\obj\$(Platform)\$(Configuration)\ vlmcs-x64-glibc gcc - $(IncludePath);$(ISenseIncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include - $(ProjectDir)bin\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcs\obj\$(Platform)\$(Configuration)\ + $(IncludePath);$(ISenseIncludePath);$(ProjectDir)VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(SolutionDir)bin\ gcc + $(ProjectDir)vlmcs\obj\$(Platform)\$(Configuration)\ - $(IncludePath);$(ISenseIncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(IncludePath);$(ISenseIncludePath);$(ProjectDir)VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include vlmcs gcc - $(ProjectDir)VisualStudio-Linux-Remote\bin\$(Platform)\$(Configuration)\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcs\obj\$(Platform)\$(Configuration)\ gcc + $(ProjectDir)vlmcs\obj\$(Platform)\$(Configuration)\ vlmcs-x86-glibc gcc - $(IncludePath);$(ISenseIncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include - $(ProjectDir)bin\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcs\obj\$(Platform)\$(Configuration)\ + $(IncludePath);$(ISenseIncludePath);$(ProjectDir)VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(SolutionDir)bin\ gcc + $(ProjectDir)vlmcs\obj\$(Platform)\$(Configuration)\ @@ -176,6 +174,7 @@ c99 c++98 -Wno-sign-conversion -Wno-conversion -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants -ffunction-sections -fdata-sections -pipe -std=gnu89 -m64 %(AdditionalOptions) + None resolv;pthread;%(LibraryDependencies) @@ -223,6 +222,7 @@ c99 c++98 -Wno-sign-conversion -Wno-conversion -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants -ffunction-sections -fdata-sections -pipe -std=gnu89 -m32 %(AdditionalOptions) + None resolv;pthread;%(LibraryDependencies) diff --git a/vlmcs-linux-remote.vcxproj.filters b/src/vlmcs-linux-remote.vcxproj.filters similarity index 60% rename from vlmcs-linux-remote.vcxproj.filters rename to src/vlmcs-linux-remote.vcxproj.filters index c4a0706..e9f1543 100644 --- a/vlmcs-linux-remote.vcxproj.filters +++ b/src/vlmcs-linux-remote.vcxproj.filters @@ -9,99 +9,99 @@ - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files diff --git a/src/vlmcs.c b/src/vlmcs.c index 2db1082..963a02a 100644 --- a/src/vlmcs.c +++ b/src/vlmcs.c @@ -165,7 +165,7 @@ static void string2UuidOrExit(const char *const restrict input, GUID *const rest if (strlen(input) != GUID_STRING_LENGTH || !string2Uuid(input, guid)) { errorout("Fatal: Command line contains an invalid GUID.\n"); - exit(!0); + exit(VLMCSD_EINVAL); } } @@ -236,7 +236,7 @@ __noreturn static void clientUsage(const char* const programName) Version, programName, programName ); - exit(!0); + exit(VLMCSD_EINVAL); } __pure static int getLineWidth(void) @@ -316,7 +316,8 @@ __noreturn static void showProducts(PRINTFUNC p) p("You may also use these product names or numbers:\n\n"); - for (currentProduct = ExtendedProductList; currentProduct->name; currentProduct++) + + for (currentProduct = ExtendedProductList; currentProduct - ExtendedProductList < getExtendedProductListSize() - 1; currentProduct++) { uint_fast8_t len = (uint_fast8_t)strlen(currentProduct->name); @@ -387,7 +388,7 @@ static void parseProtocolVersion(void) if (!period) { errorout("Fatal: Protocol version must be in the format #.#\n"); - exit(!0); + exit(VLMCSD_EINVAL); } long major = strtol(optarg, &endptr_major, 10); @@ -396,13 +397,13 @@ static void parseProtocolVersion(void) if ((*endptr_major && *endptr_major != '.') || *endptr_minor || *optarg == '.' || !period[1]) { errorout("Fatal: Protocol version must be in the format #.#\n"); - exit(!0); + exit(VLMCSD_EINVAL); } if (major < 0 || major > 0xffff || minor < 0 || minor > 0xffff) { errorout("Fatal: Major and minor protocol version number must be between 0 and 65535\n"); - exit(!0); + exit(VLMCSD_EINVAL); } ActiveLicensePack.kmsVersionMajor = (int)major; @@ -416,7 +417,7 @@ static void parseProtocolVersion(void) __noreturn static void clientUsage(const char* const programName) { errorout("Incorrect parameter specified.\n"); - exit(!0); + exit(VLMCSD_EINVAL); } @@ -546,11 +547,11 @@ static void parseCommandLinePass2(const char *const programName, const int argc, # ifndef USE_MSRPC case 'N': - if (!getArgumentBool(&UseRpcNDR64, optarg)) clientUsage(programName); + if (!getArgumentBool(&UseClientRpcNDR64, optarg)) clientUsage(programName); break; case 'B': - if (!getArgumentBool(&UseRpcBTFN, optarg)) clientUsage(programName); + if (!getArgumentBool(&UseClientRpcBTFN, optarg)) clientUsage(programName); break; case 'i': @@ -565,7 +566,7 @@ static void parseCommandLinePass2(const char *const programName, const int argc, break; default: errorout("IPv5 does not exist.\n"); - exit(!0); + exit(VLMCSD_EINVAL); break; } @@ -731,11 +732,11 @@ static void checkRpcLevel(const REQUEST* request, RESPONSE* response) if (!RpcFlags.HasNDR32) errorout("\nWARNING: Server's RPC protocol does not support NDR32.\n"); - if (UseRpcBTFN && UseRpcNDR64 && RpcFlags.HasNDR64 && !RpcFlags.HasBTFN) + if (UseClientRpcBTFN && UseClientRpcNDR64 && RpcFlags.HasNDR64 && !RpcFlags.HasBTFN) errorout("\nWARNING: Server's RPC protocol has NDR64 but no BTFN.\n"); # ifndef NO_BASIC_PRODUCT_LIST - if (!IsEqualGuidLEHE(&request->KMSID, &ProductList[15].guid) && UseRpcBTFN && !RpcFlags.HasBTFN) + if (!IsEqualGuidLEHE(&request->KMSID, &ProductList[15].guid) && UseClientRpcBTFN && !RpcFlags.HasBTFN) errorout("\nWARNING: A server with pre-Vista RPC activated a product other than Office 2010.\n"); # endif // NO_BASIC_PRODUCT_LIST } @@ -788,10 +789,10 @@ static void displayResponse(const RESPONSE_RESULT result, const REQUEST* request # else // _WIN32 printf(" (%016I64X)", (unsigned long long)BE64(*(uint64_t*)hwid)); # endif // _WIN32 - } + } printf("\n"); - } +} # ifndef NO_VERBOSE_LOG else { @@ -811,20 +812,23 @@ static void connectRpc(RpcCtx *s) { # ifdef NO_DNS + RpcDiag_t rpcDiag; + *s = connectToAddress(RemoteAddr, AddressFamily, FALSE); if (*s == INVALID_RPCCTX) { errorout("Fatal: Could not connect to %s\n", RemoteAddr); - exit(!0); + exit(SOCKET_ECONNABORTED); } if (verbose) printf("\nPerforming RPC bind ...\n"); - if (rpcBindClient(*s, verbose)) + RpcStatus status; + if ((status = rpcBindClient(*s, verbose, &rpcDiag))) { errorout("Fatal: Could not bind RPC\n"); - exit(!0); + exit(status); } if (verbose) printf("... successful\n"); @@ -844,7 +848,7 @@ static void connectRpc(RpcCtx *s) if (numServers < 1) { errorout("Fatal: No KMS servers found\n"); - exit(!0); + exit(SOCKET_ECONNABORTED); } if (!NoSrvRecordPriority) sortSrvRecords(serverlist, numServers); @@ -884,13 +888,14 @@ static void connectRpc(RpcCtx *s) *s = connectToAddress(serverlist[i]->serverName, AddressFamily, (*RemoteAddr == '.' || *RemoteAddr == '-')); if (*s == INVALID_RPCCTX) continue; + RpcDiag_t rpcDiag; # ifndef NO_VERBOSE_LOG if (verbose) printf("\nPerforming RPC bind ...\n"); - if (rpcBindClient(*s, verbose)) + if (rpcBindClient(*s, verbose, &rpcDiag)) # else - if (rpcBindClient(*s, FALSE)) + if (rpcBindClient(*s, FALSE, &rpcDiag)) # endif { errorout("Warning: Could not bind RPC\n"); @@ -905,7 +910,7 @@ static void connectRpc(RpcCtx *s) } errorout("Fatal: Could not connect to any KMS server\n"); - exit(!0); + exit(SOCKET_ECONNABORTED); # endif // DNS } @@ -1010,15 +1015,17 @@ static void newIniBackupFile(const char* const restrict fname) if (!f) { - errorout("Fatal: Cannot create %s: %s\n", fname, strerror(errno)); - exit(!0); + int error = errno; + errorout("Fatal: Cannot create %s: %s\n", fname, strerror(error)); + exit(error); } if (fclose(f)) { - errorout("Fatal: Cannot write to %s: %s\n", fname, strerror(errno)); + int error = errno; + errorout("Fatal: Cannot write to %s: %s\n", fname, strerror(error)); vlmcsd_unlink(fname); - exit(!0); + exit(error); } } @@ -1051,8 +1058,9 @@ static void updateIniFile(iniFileEpidLines* const restrict lines) { if (errno != ENOENT) { - errorout("Fatal: %s: %s\n", fn_ini_client, strerror(errno)); - exit(!0); + int error = errno; + errorout("Fatal: %s: %s\n", fn_ini_client, strerror(error)); + exit(error); } else { @@ -1066,8 +1074,9 @@ static void updateIniFile(iniFileEpidLines* const restrict lines) vlmcsd_unlink(fn_bak); // Required for Windows. Most Unix systems don't need it. if (rename(fn_ini_client, fn_bak)) { - errorout("Fatal: Cannot create %s: %s\n", fn_bak, strerror(errno)); - exit(!0); + int error = errno; + errorout("Fatal: Cannot create %s: %s\n", fn_bak, strerror(error)); + exit(error); } } @@ -1079,16 +1088,18 @@ static void updateIniFile(iniFileEpidLines* const restrict lines) if (!in) { - errorout("Fatal: Cannot open %s: %s\n", fn_bak, strerror(errno)); - exit(!0); + int error = errno; + errorout("Fatal: Cannot open %s: %s\n", fn_bak, strerror(error)); + exit(error); } out = fopen(fn_ini_client, "wb"); if (!out) { - errorout("Fatal: Cannot create %s: %s\n", fn_ini_client, strerror(errno)); - exit(!0); + int error = errno; + errorout("Fatal: Cannot create %s: %s\n", fn_ini_client, strerror(error)); + exit(error); } char sourceLine[256]; @@ -1116,8 +1127,9 @@ static void updateIniFile(iniFileEpidLines* const restrict lines) if (ferror(in)) { - errorout("Fatal: Cannot read from %s: %s\n", fn_bak, strerror(errno)); - exit(!0); + int error = errno; + errorout("Fatal: Cannot read from %s: %s\n", fn_bak, strerror(error)); + exit(error); } fclose(in); @@ -1133,8 +1145,9 @@ static void updateIniFile(iniFileEpidLines* const restrict lines) if (fclose(out)) { - errorout("Fatal: Cannot write to %s: %s\n", fn_ini_client, strerror(errno)); - exit(!0); + int error = errno; + errorout("Fatal: Cannot write to %s: %s\n", fn_ini_client, strerror(error)); + exit(error); } if (!iniFileExistedBefore) vlmcsd_unlink(fn_bak); diff --git a/vlmcsd-linux-remote.vcxproj b/src/vlmcsd-linux-remote.vcxproj similarity index 77% rename from vlmcsd-linux-remote.vcxproj rename to src/vlmcsd-linux-remote.vcxproj index 78f4545..a70ec1a 100644 --- a/vlmcsd-linux-remote.vcxproj +++ b/src/vlmcsd-linux-remote.vcxproj @@ -29,34 +29,34 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + {cc2fbe0b-b9df-4306-88a1-20706bbd2b0c} @@ -99,39 +99,37 @@ gcc - $(ProjectDir)VisualStudio-Linux-Remote\bin\$(Platform)\$(Configuration)\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcsd\obj\$(Platform)\$(Configuration)\ gcc - $(IncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(IncludePath);$(SolutionDir)..\src\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(ProjectDir)vlmcsd\obj\$(Platform)\$(Configuration)\ vlmcsd-x64-glibc gcc - $(IncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include - $(ProjectDir)bin\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcsd\obj\$(Platform)\$(Configuration)\ + $(IncludePath);$(SolutionDir)..\src\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(SolutionDir)bin\ gcc + $(ProjectDir)vlmcsd\obj\$(Platform)\$(Configuration)\ - $(IncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(IncludePath);$(SolutionDir)..\src\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include vlmcsd gcc - $(ProjectDir)VisualStudio-Linux-Remote\bin\$(Platform)\$(Configuration)\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcsd\obj\$(Platform)\$(Configuration)\ gcc + $(ProjectDir)vlmcsd\obj\$(Platform)\$(Configuration)\ vlmcsd-x86-glibc gcc - $(IncludePath);$(SolutionDir)..\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include - $(ProjectDir)bin\ - $(ProjectDir)VisualStudio-Linux-Remote\vlmcsd\obj\$(Platform)\$(Configuration)\ + $(IncludePath);$(SolutionDir)..\src\VisualStudio-Linux-Remote\toolchains\gcc5-x86_64-linux-gnu\usr\include + $(SolutionDir)bin\ gcc + $(ProjectDir)vlmcsd\obj\$(Platform)\$(Configuration)\ @@ -171,6 +169,7 @@ c99 c++98 -Wno-sign-conversion -Wno-conversion -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants -ffunction-sections -fdata-sections -pipe -std=gnu89 -m64 %(AdditionalOptions) + None pthread;%(LibraryDependencies) @@ -218,6 +217,7 @@ c99 c++98 -Wno-sign-conversion -Wno-conversion -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants -ffunction-sections -fdata-sections -pipe -std=gnu89 -m32 %(AdditionalOptions) + None pthread;%(LibraryDependencies) diff --git a/vlmcsd-linux-remote.vcxproj.filters b/src/vlmcsd-linux-remote.vcxproj.filters similarity index 61% rename from vlmcsd-linux-remote.vcxproj.filters rename to src/vlmcsd-linux-remote.vcxproj.filters index da0872b..d45d230 100644 --- a/vlmcsd-linux-remote.vcxproj.filters +++ b/src/vlmcsd-linux-remote.vcxproj.filters @@ -9,84 +9,84 @@ - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files diff --git a/src/vlmcsd.c b/src/vlmcsd.c index cc09230..47d5df2 100644 --- a/src/vlmcsd.c +++ b/src/vlmcsd.c @@ -80,7 +80,7 @@ #include "ntservice.h" #include "helpers.h" -static const char* const optstring = "N:B:m:t:w:0:3:6:H:A:R:u:g:L:p:i:P:l:r:U:W:C:F:o:T:SseDdVvqkZ"; +static const char* const optstring = "N:B:m:t:w:0:3:6:H:A:R:u:g:L:p:i:P:l:r:U:W:C:c:F:o:T:K:SseDdVvqkZ"; #if !defined(NO_SOCKETS) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS) @@ -116,6 +116,10 @@ static IniFileParameter_t IniFileParameterList[] = { "Office2010", INI_PARAM_OFFICE2010 }, { "Office2013", INI_PARAM_OFFICE2013 }, { "Office2016", INI_PARAM_OFFICE2016 }, +# ifndef NO_STRICT_MODES + { "WhiteListingLevel", INI_PARAM_WHITELISTING_LEVEL }, + { "CheckClientTime", INI_PARAM_CHECK_CLIENT_TIME }, +# endif // NO_STRICT_MODES # ifndef NO_RANDOM_EPID { "RandomizationLevel", INI_PARAM_RANDOMIZATION_LEVEL }, { "LCID", INI_PARAM_LCID }, @@ -139,8 +143,10 @@ static IniFileParameter_t IniFileParameterList[] = # endif // !defined(NO_TIMEOUT) && !__minix__ && !defined(USE_MSRPC) & !defined(USE_MSRPC) # ifndef USE_MSRPC { "DisconnectClientsImmediately", INI_PARAM_DISCONNECT_IMMEDIATELY }, +# ifndef SIMPLE_RPC { "UseNDR64", INI_PARAM_RPC_NDR64 }, { "UseBTFN", INI_PARAM_RPC_BTFN }, +# endif // !SIMPLE_RPC # endif // USE_MSRPC # ifndef NO_PID_FILE { "PIDFile", INI_PARAM_PID_FILE }, @@ -263,7 +269,7 @@ static char GetUid() static __noreturn void usage() { printerrorf("Incorrect parameters\n\n"); - exit(!0); + exit(VLMCSD_EINVAL); } #else // HELP @@ -274,101 +280,107 @@ static __noreturn void usage() "\nUsage:\n" " %s [ options ]\n\n" "Where:\n" -#ifndef NO_CL_PIDS +# ifndef NO_CL_PIDS " -w always use for Windows\n" " -0 always use for Office2010\n" " -3 always use for Office2013\n" " -6 always use for Office2016\n" " -H always use hardware Id \n" -#endif // NO_CL_PIDS -#if !defined(_WIN32) && !defined(NO_USER_SWITCH) +# endif // NO_CL_PIDS +# if !defined(_WIN32) && !defined(NO_USER_SWITCH) " -u set uid to \n" " -g set gid to \n" -#endif // !defined(_WIN32) && !defined(NO_USER_SWITCH) -#ifndef NO_RANDOM_EPID +# endif // !defined(_WIN32) && !defined(NO_USER_SWITCH) +# ifndef NO_RANDOM_EPID " -r 0|1|2\t\tset ePID randomization level (default 1)\n" " -C \t\tuse fixed in random ePIDs\n" -#endif // NO_RANDOM_EPID -#if !defined(NO_PRIVATE_IP_DETECT) -#if HAVE_GETIFADDR +# endif // NO_RANDOM_EPID +# if !defined(NO_PRIVATE_IP_DETECT) +# if HAVE_GETIFADDR " -o 0|1|2|3\t\tset protection level against clients with public IP addresses (default 0)\n" -#else // !HAVE_GETIFADDR -#ifndef USE_MSRPC +# else // !HAVE_GETIFADDR +# ifndef USE_MSRPC " -o 0|2\t\tset protection level against clients with public IP addresses (default 0)\n" -#else // USE_MSRPC +# else // USE_MSRPC " -o 0|2\t\tset protection level against clients with public IP addresses (default 0). Limited use with MS RPC\n" -#endif // USE_MSRPC -#endif // !HAVE_GETIFADDR -#endif // !defined(NO_PRIVATE_IP_DETECT) -#ifndef NO_SOCKETS -#if !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS) +# endif // USE_MSRPC +# endif // !HAVE_GETIFADDR +# endif // !defined(NO_PRIVATE_IP_DETECT) +# ifndef NO_SOCKETS +# if !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS) " -L
[:]\tlisten on IP address
with optional \n" " -P \t\tset TCP port for subsequent -L statements (default 1688)\n" -#if HAVE_FREEBIND +# if HAVE_FREEBIND " -F0, -F1\t\tdisable/enable binding to foreign IP addresses\n" -#endif // HAVE_FREEBIND -#else // defined(USE_MSRPC) || defined(SIMPLE_SOCKETS) +# endif // HAVE_FREEBIND +# else // defined(USE_MSRPC) || defined(SIMPLE_SOCKETS) " -P \t\tuse TCP port (default 1688)\n" -#endif // defined(USE_MSRPC) || defined(SIMPLE_SOCKETS) -#if !defined(NO_LIMIT) && !__minix__ +# endif // defined(USE_MSRPC) || defined(SIMPLE_SOCKETS) +# if !defined(NO_LIMIT) && !__minix__ " -m \t\tHandle max. simultaneously (default no limit)\n" -#endif // !defined(NO_LIMIT) && !__minix__ -#ifdef _NTSERVICE +# endif // !defined(NO_LIMIT) && !__minix__ +# ifdef _NTSERVICE " -s install vlmcsd as an NT service. Ignores -e" -#ifndef _WIN32 +# ifndef _WIN32 ", -f and -D" -#endif // _WIN32 +# endif // _WIN32 "\n" " -S remove vlmcsd service. Ignores all other options\n" " -U run NT service as . Must be used with -s\n" " -W optional for -U. Must be used with -s\n" -#endif // _NTSERVICE -#ifndef NO_LOG +# endif // _NTSERVICE +# ifndef NO_LOG " -e log to stdout\n" -#endif // NO_LOG -#ifndef _WIN32 // +# endif // NO_LOG +# ifndef _WIN32 // " -D run in foreground\n" -#else // _WIN32 +# else // _WIN32 " -D does nothing. Provided for compatibility with POSIX versions only\n" -#endif // _WIN32 -#endif // NO_SOCKETS -#ifndef USE_MSRPC -#if !defined(NO_TIMEOUT) && !__minix__ +# endif // _WIN32 +# endif // NO_SOCKETS +# ifndef NO_STRICT_MODES + " -K 0|1|2|3\t\tset whitelisting level for KMS IDs (default -K0)\n" + " -c0, -c1\t\tdisable/enable client time checking (default -c0)\n" +# endif // !NO_STRICT_MODES +# ifndef USE_MSRPC +# if !defined(NO_TIMEOUT) && !__minix__ " -t \t\tdisconnect clients after of inactivity (default 30)\n" -#endif // !defined(NO_TIMEOUT) && !__minix__ +# endif // !defined(NO_TIMEOUT) && !__minix__ " -d\t\t\tdisconnect clients after each request\n" " -k\t\t\tdon't disconnect clients after each request (default)\n" +# ifndef SIMPLE_RPC " -N0, -N1\t\tdisable/enable NDR64\n" " -B0, -B1\t\tdisable/enable bind time feature negotiation\n" -#endif // USE_MSRPC -#ifndef NO_PID_FILE +# endif // !SIMPLE_RPC +# endif // USE_MSRPC +# ifndef NO_PID_FILE " -p write pid to \n" -#endif // NO_PID_FILE -#ifndef NO_INI_FILE +# endif // NO_PID_FILE +# ifndef NO_INI_FILE " -i \t\tuse config file \n" -#endif // NO_INI_FILE -#ifndef NO_CUSTOM_INTERVALS +# endif // NO_INI_FILE +# ifndef NO_CUSTOM_INTERVALS " -R renew activation every (default 1w)\n" " -A retry activation every (default 2h)\n" -#endif // NO_CUSTOM_INTERVALS -#ifndef NO_LOG -#ifndef _WIN32 +# endif // NO_CUSTOM_INTERVALS +# ifndef NO_LOG +# ifndef _WIN32 " -l syslog log to syslog\n" -#endif // _WIN32 +# endif // _WIN32 " -l log to \n" " -T0, -T1\t\tdisable/enable logging with time and date (default -T1)\n" -#ifndef NO_VERBOSE_LOG +# ifndef NO_VERBOSE_LOG " -v\t\t\tlog verbose\n" " -q\t\t\tdon't log verbose (default)\n" -#endif // NO_VERBOSE_LOG -#endif // NO_LOG -#ifndef NO_VERSION_INFORMATION +# endif // NO_VERBOSE_LOG +# endif // NO_LOG +# ifndef NO_VERSION_INFORMATION " -V display version information and exit\n" -#endif // NO_VERSION_INFORMATION +# endif // NO_VERSION_INFORMATION , Version, global_argv[0]); - exit(!0); + exit(VLMCSD_EINVAL); } #endif // HELP @@ -433,7 +445,7 @@ __pure static DWORD getTimeSpanFromCommandLine(const char *const restrict optarg if (!val) { printerrorf("Fatal: No valid time span specified in option -%c.\n", optchar); - exit(!0); + exit(VLMCSD_EINVAL); } return (DWORD)val; @@ -493,9 +505,9 @@ static char* allocateStringArgument(const char *const argument) static __pure int isControlCharOrSlash(const char c) { - if ((unsigned char)c < '!') return !0; - if (c == '/') return !0; - return 0; + if ((unsigned char)c < '!') return TRUE; + if (c == '/') return TRUE; + return FALSE; } @@ -645,11 +657,11 @@ static BOOL setIniFileParameter(uint_fast8_t id, const char *const iniarg) # if !defined(NO_LIMIT) && !defined(NO_SOCKETS) && !__minix__ case INI_PARAM_MAX_WORKERS: -# ifdef USE_MSRPC +# ifdef USE_MSRPC success = getIniFileArgumentInt(&MaxTasks, iniarg, 1, RPC_C_LISTEN_MAX_CALLS_DEFAULT); -# else // !USE_MSRPC +# else // !USE_MSRPC success = getIniFileArgumentInt(&MaxTasks, iniarg, 1, SEM_VALUE_MAX); -# endif // !USE_MSRPC +# endif // !USE_MSRPC break; # endif // !defined(NO_LIMIT) && !defined(NO_SOCKETS) && !__minix__ @@ -662,6 +674,19 @@ static BOOL setIniFileParameter(uint_fast8_t id, const char *const iniarg) # endif // NO_PID_FILE +#ifndef NO_STRICT_MODES + + case INI_PARAM_WHITELISTING_LEVEL: + success = getIniFileArgumentInt(&WhitelistingLevel, iniarg, 0, 3); + break; + + case INI_PARAM_CHECK_CLIENT_TIME: + success = getIniFileArgumentBool(&CheckClientTime, iniarg); + break; + +#endif // !NO_STRICT_MODES + + # ifndef NO_LOG case INI_PARAM_LOG_FILE: @@ -708,11 +733,11 @@ static BOOL setIniFileParameter(uint_fast8_t id, const char *const iniarg) break; case INI_PARAM_RPC_NDR64: - success = getIniFileArgumentBool(&UseRpcNDR64, iniarg); + success = getIniFileArgumentBool(&UseServerRpcNDR64, iniarg); break; case INI_PARAM_RPC_BTFN: - success = getIniFileArgumentBool(&UseRpcBTFN, iniarg); + success = getIniFileArgumentBool(&UseServerRpcBTFN, iniarg); break; # endif // USE_MSRPC @@ -1249,6 +1274,20 @@ static void parseGeneralArguments() { break; # endif // _NTSERVICE +# ifndef NO_STRICT_MODES + + case 'K': + WhitelistingLevel = (int_fast8_t)getOptionArgumentInt((char)o, 0, 3); + ignoreIniFileParameter(INI_PARAM_WHITELISTING_LEVEL); + break; + + case 'c': + if (!getArgumentBool(&CheckClientTime, optarg)) usage(); + ignoreIniFileParameter(INI_PARAM_CHECK_CLIENT_TIME); + break; + +# endif // !NO_STRICT_MODES + case 'D': # ifndef _WIN32 nodaemon = 1; @@ -1336,15 +1375,17 @@ static void parseGeneralArguments() { ignoreIniFileParameter(INI_PARAM_DISCONNECT_IMMEDIATELY); break; +# ifndef SIMPLE_RPC case 'N': - if (!getArgumentBool(&UseRpcNDR64, optarg)) usage(); + if (!getArgumentBool(&UseServerRpcNDR64, optarg)) usage(); ignoreIniFileParameter(INI_PARAM_RPC_NDR64); break; case 'B': - if (!getArgumentBool(&UseRpcBTFN, optarg)) usage(); + if (!getArgumentBool(&UseServerRpcBTFN, optarg)) usage(); ignoreIniFileParameter(INI_PARAM_RPC_BTFN); break; +# endif // !SIMPLE_RPC # endif // !USE_MSRPC # ifndef NO_VERSION_INFORMATION diff --git a/src/vlmcsd.h b/src/vlmcsd.h index 089ccff..f2a09c8 100644 --- a/src/vlmcsd.h +++ b/src/vlmcsd.h @@ -52,6 +52,8 @@ int server_main(int argc, CARGV argv); #define INI_PARAM_OFFICE2010 21 #define INI_PARAM_OFFICE2013 22 #define INI_PARAM_OFFICE2016 23 +#define INI_PARAM_WHITELISTING_LEVEL 24 +#define INI_PARAM_CHECK_CLIENT_TIME 25 #define INI_FILE_PASS_1 1 #define INI_FILE_PASS_2 2 diff --git a/src/vlmcsdmulti.c b/src/vlmcsdmulti.c index 8e94efb..9b26f18 100644 --- a/src/vlmcsdmulti.c +++ b/src/vlmcsdmulti.c @@ -95,5 +95,5 @@ int main(int argc, CARGV argv) Version, *argv, *argv ); - return !0; + return VLMCSD_EINVAL; }