diff -Naur node-v11.15.0-orig/common.gypi node-v11.15.0/common.gypi
--- node-v11.15.0-orig/common.gypi	2019-04-30 20:31:12.000000000 +0300
+++ node-v11.15.0/common.gypi	2019-06-27 13:09:51.857895300 +0300
@@ -11,7 +11,7 @@
     'msvs_multi_core_compile': '0',   # we do enable multicore compiles, but not using the V8 way
     'enable_pgo_generate%': '0',
     'enable_pgo_use%': '0',
-    'python%': 'python',
+    'python%': 'python2',
 
     'node_shared%': 'false',
     'force_dynamic_crt%': 0,
diff -Naur node-v11.15.0-orig/configure node-v11.15.0/configure
--- node-v11.15.0-orig/configure	2019-04-30 20:31:12.000000000 +0300
+++ node-v11.15.0/configure	2019-06-27 13:09:51.882895300 +0300
@@ -6,7 +6,7 @@
 _=[ 'exec' '/bin/sh' '-c' '''
 which python2.7 >/dev/null && exec python2.7 "$0" "$@"
 which python2 >/dev/null && exec python2 "$0" "$@"
-exec python "$0" "$@"
+exec python2 "$0" "$@"
 ''' "$0" "$@"
 ]
 del _
diff -Naur node-v11.15.0-orig/configure.py node-v11.15.0/configure.py
--- node-v11.15.0-orig/configure.py	2019-04-30 20:31:12.000000000 +0300
+++ node-v11.15.0/configure.py	2019-06-27 13:09:51.902895400 +0300
@@ -1570,7 +1570,7 @@
   # sys.executable. This directory will be prefixed to the PATH, so that
   # other tools that shell out to `python` will use the appropriate python
 
-  which_python = which('python')
+  which_python = which('python2')
   if (which_python and
       os.path.realpath(which_python) == os.path.realpath(sys.executable)):
     return
@@ -1581,7 +1581,7 @@
   except OSError as e:
     if e.errno != errno.EEXIST: raise e
 
-  python_link = os.path.join(bin_override, 'python')
+  python_link = os.path.join(bin_override, 'python2')
   try:
     os.unlink(python_link)
   except OSError as e:
@@ -1701,6 +1701,6 @@
 if warn.warned and not options.verbose:
   warn('warnings were emitted in the configure phase')
 
-print_verbose("running: \n    " + " ".join(['python', 'tools/gyp_node.py'] + gyp_args))
+print_verbose("running: \n    " + " ".join(['python2', 'tools/gyp_node.py'] + gyp_args))
 run_gyp(gyp_args)
 info('configure completed successfully')
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/gyp node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/gyp
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/gyp	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/gyp	2019-06-27 13:11:28.559030700 +0300
@@ -5,4 +5,4 @@
 
 set -e
 base=$(dirname "$0")
-exec python "${base}/gyp_main.py" "$@"
+exec python2 "${base}/gyp_main.py" "$@"
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/gyp_main.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/gyp_main.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/gyp_main.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/gyp_main.py	2019-06-27 13:11:28.614030800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2009 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py	2019-06-27 13:11:29.754032400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py	2019-06-27 13:11:28.744031000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py	2019-06-27 13:11:28.804031100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2011 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py	2019-06-27 13:11:28.829031100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2011 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py	2019-06-27 13:11:29.089031500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py	2019-06-27 13:11:29.114031500 +0300
@@ -1754,7 +1754,7 @@
     return '%(python)s gyp-win-tool link-with-manifests $arch %(embed)s ' \
            '%(out)s "%(ldcmd)s" %(resname)s $mt $rc "$intermediatemanifest" ' \
            '$manifests' % {
-               'python': sys.executable,
+               'python2': sys.executable,
                'out': out,
                'ldcmd': ldcmd,
                'resname': resource_name,
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py	2019-06-27 13:11:29.134031500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py	2019-06-27 13:11:29.159031600 +0300
@@ -283,7 +283,7 @@
         command_prefix = ''
         if serialize_all_tests:
           command_prefix = \
-"""python -c "import fcntl, subprocess, sys
+"""python2 -c "import fcntl, subprocess, sys
 file = open('$TMPDIR/GYP_serialize_test_runs', 'a')
 fcntl.flock(file.fileno(), fcntl.LOCK_EX)
 sys.exit(subprocess.call(sys.argv[1:]))" """
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py	2019-06-27 13:11:29.184031600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2013 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py	2019-06-27 13:11:29.264031700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright 2013 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py	2019-06-27 13:11:29.289031800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py	2019-06-27 13:11:29.394031900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py	2019-06-27 13:11:29.619032200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
@@ -144,7 +144,7 @@
     # first and only link. We still tell link to generate a manifest, but we
     # only use that to assert that our simpler process did not miss anything.
     variables = {
-      'python': sys.executable,
+      'python2': sys.executable,
       'arch': arch,
       'out': out,
       'ldcmd': ldcmd,
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/samples/samples node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/samples/samples
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/samples/samples	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/samples/samples	2019-06-27 13:11:29.784032400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 
 # Copyright (c) 2009 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/setup.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/setup.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/setup.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/setup.py	2019-06-27 13:11:29.844032500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2009 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp	2019-06-27 13:11:29.974032700 +0300
@@ -987,7 +987,7 @@
                 '<(SHARED_INTERMEDIATE_DIR)/media/jni/media_player_listener_jni.h',
               ],
               'action': [
-                'python',
+                'python2',
                 '<(DEPTH)/base/android/jni_generator/jni_generator.py',
                 '-o',
                 '<@(_inputs)',
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified	2019-06-27 13:11:29.999032700 +0300
@@ -988,7 +988,7 @@
                 '<(SHARED_INTERMEDIATE_DIR)/media/jni/media_player_listener_jni.h',
               ],
               'action': [
-                'python',
+                'python2',
                 '<(DEPTH)/base/android/jni_generator/jni_generator.py',
                 '-o',
                 '<@(_inputs)',
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py	2019-06-27 13:11:30.024032800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2011 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py	2019-06-27 13:11:30.054032800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py	2019-06-27 13:11:30.074032900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py	2019-06-27 13:11:30.104032900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/lib/configure.js node-v11.15.0/deps/npm/node_modules/node-gyp/lib/configure.js
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/lib/configure.js	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/lib/configure.js	2019-06-27 13:11:30.284033100 +0300
@@ -47,7 +47,7 @@
 
   function getNodeDir () {
 
-    // 'python' should be set by now
+    // 'python2' should be set by now
     process.env.PYTHON = python
 
     if (gyp.opts.nodedir) {
@@ -397,7 +397,7 @@
       if (err) {
         this.log.verbose('`which` failed', this.python, err)
         if (this.python === 'python2') {
-          this.python = 'python'
+          this.python = 'python2'
           return this.checkPython()
         }
         if (this.win) {
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/README.md node-v11.15.0/deps/npm/node_modules/node-gyp/README.md
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/README.md	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/README.md	2019-06-27 13:11:31.969035500 +0300
@@ -70,7 +70,7 @@
 ```
 
 If `node-gyp` is called by way of `npm` *and* you have multiple versions of
-Python installed, then you can set `npm`'s 'python' config key to the appropriate
+Python installed, then you can set `npm`'s 'python2' config key to the appropriate
 value:
 
 ``` bash
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/test/test-addon.js node-v11.15.0/deps/npm/node_modules/node-gyp/test/test-addon.js
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/test/test-addon.js	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/test/test-addon.js	2019-06-27 13:11:32.224035900 +0300
@@ -16,13 +16,13 @@
 
 function getEncoding() {
   var code = 'import locale;print locale.getdefaultlocale()[1]'
-  return execFileSync('python', ['-c', code]).toString().trim()
+  return execFileSync('python2', ['-c', code]).toString().trim()
 }
 
 function checkCharmapValid() {
   var data
   try {
-    data = execFileSync('python', ['fixtures/test-charmap.py'],
+    data = execFileSync('python2', ['fixtures/test-charmap.py'],
                         { cwd: __dirname })
   } catch (err) {
     return false
diff -Naur node-v11.15.0-orig/deps/npm/node_modules/node-gyp/test/test-find-python.js node-v11.15.0/deps/npm/node_modules/node-gyp/test/test-find-python.js
--- node-v11.15.0-orig/deps/npm/node_modules/node-gyp/test/test-find-python.js	2019-04-30 20:31:13.000000000 +0300
+++ node-v11.15.0/deps/npm/node_modules/node-gyp/test/test-find-python.js	2019-06-27 13:11:32.364036100 +0300
@@ -9,7 +9,7 @@
 test('find python', function (t) {
   t.plan(4)
 
-  configure.test.findPython('python', function (err, found) {
+  configure.test.findPython('python2', function (err, found) {
     t.strictEqual(err, null)
     var proc = execFile(found, ['-V'], function (err, stdout, stderr) {
       t.strictEqual(err, null)
@@ -55,13 +55,13 @@
 test('find python - python', function (t) {
   t.plan(5)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(null, program)
   }
   f.execFile = function(program, args, opts, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     t.ok(/import sys/.test(args[1]))
     cb(null, '2.7.0')
   }
@@ -69,20 +69,20 @@
 
   function done(err, python) {
     t.strictEqual(err, null)
-    t.strictEqual(python, 'python')
+    t.strictEqual(python, 'python2')
   }
 })
 
 test('find python - python too old', function (t) {
   t.plan(4)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(null, program)
   }
   f.execFile = function(program, args, opts, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     t.ok(/import sys/.test(args[1]))
     cb(null, '2.3.4')
   }
@@ -96,13 +96,13 @@
 test('find python - python too new', function (t) {
   t.plan(4)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(null, program)
   }
   f.execFile = function(program, args, opts, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     t.ok(/import sys/.test(args[1]))
     cb(null, '3.0.0')
   }
@@ -116,9 +116,9 @@
 test('find python - no python', function (t) {
   t.plan(2)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(new Error('not found'))
   }
   f.checkPython()
@@ -134,14 +134,14 @@
   var f = new TestPythonFinder('python2', done)
   f.which = function(program, cb) {
     f.which = function(program, cb) {
-      t.strictEqual(program, 'python')
+      t.strictEqual(program, 'python2')
       cb(null, program)
     }
     t.strictEqual(program, 'python2')
     cb(new Error('not found'))
   }
   f.execFile = function(program, args, opts, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     t.ok(/import sys/.test(args[1]))
     cb(null, '2.7.0')
   }
@@ -149,7 +149,7 @@
 
   function done(err, python) {
     t.strictEqual(err, null)
-    t.strictEqual(python, 'python')
+    t.strictEqual(python, 'python2')
   }
 })
 
@@ -162,7 +162,7 @@
 
   f.which = function(program, cb) {
     f.which = function(program, cb) {
-      t.strictEqual(program, 'python')
+      t.strictEqual(program, 'python2')
       cb(new Error('not found'))
     }
     t.strictEqual(program, 'python2')
@@ -178,12 +178,12 @@
 test('find python - no python, use python launcher', function (t) {
   t.plan(8)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.env = {}
   f.win = true
 
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(new Error('not found'))
   }
   f.execFile = function(program, args, opts, cb) {
@@ -208,12 +208,12 @@
 test('find python - python 3, use python launcher', function (t) {
   t.plan(10)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.env = {}
   f.win = true
 
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(null, program)
   }
   f.execFile = function(program, args, opts, cb) {
@@ -228,7 +228,7 @@
       t.notEqual(args.indexOf('-c'), -1)
       cb(null, 'Z:\\snake.exe')
     }
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     t.ok(/import sys/.test(args[1]))
     cb(null, '3.0.0')
   }
@@ -244,13 +244,13 @@
      function (t) {
   t.plan(9)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.checkedPythonLauncher = false
   f.env = {}
   f.win = true
 
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(null, program)
   }
   f.execFile = function(program, args, opts, cb) {
@@ -265,7 +265,7 @@
       t.notEqual(args.indexOf('-c'), -1)
       cb(null, 'Z:\\snake.exe')
     }
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     t.ok(/import sys/.test(args[1]))
     cb(null, '3.0.0')
   }
@@ -280,12 +280,12 @@
   t.plan(6)
 
   var re = /C:[\\\/]Python27[\\\/]python[.]exe/
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.env = {}
   f.win = true
 
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(new Error('not found'))
   }
   f.execFile = function(program, args, opts, cb) {
@@ -312,12 +312,12 @@
 test('find python - no python, no python launcher, bad guess', function (t) {
   t.plan(4)
 
-  var f = new TestPythonFinder('python', done)
+  var f = new TestPythonFinder('python2', done)
   f.env = { SystemDrive: 'Z:\\' }
   f.win = true
 
   f.which = function(program, cb) {
-    t.strictEqual(program, 'python')
+    t.strictEqual(program, 'python2')
     cb(new Error('not found'))
   }
   f.execFile = function(program, args, opts, cb) {
diff -Naur node-v11.15.0-orig/deps/openssl/openssl/fuzz/helper.py node-v11.15.0/deps/openssl/openssl/fuzz/helper.py
--- node-v11.15.0-orig/deps/openssl/openssl/fuzz/helper.py	2019-04-30 20:31:26.000000000 +0300
+++ node-v11.15.0/deps/openssl/openssl/fuzz/helper.py	2019-06-27 13:13:35.496208600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 #
 # Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
 #
diff -Naur node-v11.15.0-orig/deps/uv/gyp_uv.py node-v11.15.0/deps/uv/gyp_uv.py
--- node-v11.15.0-orig/deps/uv/gyp_uv.py	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/uv/gyp_uv.py	2019-06-27 13:13:43.351219600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 import os
 import platform
diff -Naur node-v11.15.0-orig/deps/uv/tools/make_dist_html.py node-v11.15.0/deps/uv/tools/make_dist_html.py
--- node-v11.15.0-orig/deps/uv/tools/make_dist_html.py	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/uv/tools/make_dist_html.py	2019-06-27 13:13:46.876224500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 
 from __future__ import print_function
 
diff -Naur node-v11.15.0-orig/deps/v8/DEPS node-v11.15.0/deps/v8/DEPS
--- node-v11.15.0-orig/deps/v8/DEPS	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/DEPS	2019-06-27 13:13:48.121226200 +0300
@@ -107,7 +107,7 @@
     'name': 'disable_depot_tools_selfupdate',
     'pattern': '.',
     'action': [
-        'python',
+        'python2',
         'v8/third_party/depot_tools/update_depot_tools_toggle.py',
         '--disable',
     ],
@@ -119,7 +119,7 @@
     'name': 'landmines',
     'pattern': '.',
     'action': [
-        'python',
+        'python2',
         'v8/build/landmines.py',
         '--landmine-scripts',
         'v8/tools/get_landmines.py',
@@ -284,35 +284,35 @@
     'name': 'sysroot_arm',
     'pattern': '.',
     'condition': '(checkout_linux and checkout_arm)',
-    'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
+    'action': ['python2', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
                '--arch=arm'],
   },
   {
     'name': 'sysroot_arm64',
     'pattern': '.',
     'condition': '(checkout_linux and checkout_arm64)',
-    'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
+    'action': ['python2', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
                '--arch=arm64'],
   },
   {
     'name': 'sysroot_x86',
     'pattern': '.',
     'condition': '(checkout_linux and (checkout_x86 or checkout_x64))',
-    'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
+    'action': ['python2', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
                '--arch=x86'],
   },
   {
     'name': 'sysroot_mips',
     'pattern': '.',
     'condition': '(checkout_linux and checkout_mips)',
-    'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
+    'action': ['python2', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
                '--arch=mips'],
   },
   {
     'name': 'sysroot_x64',
     'pattern': '.',
     'condition': 'checkout_linux and checkout_x64',
-    'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
+    'action': ['python2', 'v8/build/linux/sysroot_scripts/install-sysroot.py',
                '--arch=x64'],
   },
   {
@@ -342,14 +342,14 @@
     'name': 'win_toolchain',
     'pattern': '.',
     'condition': 'checkout_win',
-    'action': ['python', 'v8/build/vs_toolchain.py', 'update'],
+    'action': ['python2', 'v8/build/vs_toolchain.py', 'update'],
   },
   {
     # Update the Mac toolchain if necessary.
     'name': 'mac_toolchain',
     'pattern': '.',
     'condition': 'checkout_mac',
-    'action': ['python', 'v8/build/mac_toolchain.py'],
+    'action': ['python2', 'v8/build/mac_toolchain.py'],
   },
   # Pull binutils for linux, enabled debug fission for faster linking /
   # debugging when used with clang on Ubuntu Precise.
@@ -359,7 +359,7 @@
     'pattern': 'v8/third_party/binutils',
     'condition': 'host_os == "linux"',
     'action': [
-        'python',
+        'python2',
         'v8/third_party/binutils/download.py',
     ],
   },
@@ -369,13 +369,13 @@
     'pattern': '.',
     # clang not supported on aix
     'condition': 'host_os != "aix"',
-    'action': ['python', 'v8/tools/clang/scripts/update.py'],
+    'action': ['python2', 'v8/tools/clang/scripts/update.py'],
   },
   {
     # Update LASTCHANGE.
     'name': 'lastchange',
     'pattern': '.',
-    'action': ['python', 'v8/build/util/lastchange.py',
+    'action': ['python2', 'v8/build/util/lastchange.py',
                '-o', 'v8/build/util/LASTCHANGE'],
   },
   {
@@ -383,7 +383,7 @@
     'pattern': '.',
     'condition': 'checkout_fuchsia',
     'action': [
-      'python',
+      'python2',
       'v8/build/fuchsia/update_sdk.py',
     ],
   },
@@ -415,7 +415,7 @@
     'pattern': '.',
     'condition': 'check_v8_header_includes',
     'action': [
-      'python',
+      'python2',
       'v8/tools/generate-header-include-checks.py',
     ],
   },
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/cctest.gyp node-v11.15.0/deps/v8/gypfiles/cctest.gyp
--- node-v11.15.0-orig/deps/v8/gypfiles/cctest.gyp	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/cctest.gyp	2019-06-27 13:13:48.231226400 +0300
@@ -438,7 +438,7 @@
             '<(generated_file)',
           ],
           'action': [
-            'python',
+            'python2',
             '../tools/js2c.py',
             '<@(_outputs)',
             'TEST',  # type
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/coverage_wrapper.py node-v11.15.0/deps/v8/gypfiles/coverage_wrapper.py
--- node-v11.15.0-orig/deps/v8/gypfiles/coverage_wrapper.py	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/coverage_wrapper.py	2019-06-27 13:13:48.261226400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/d8.gyp node-v11.15.0/deps/v8/gypfiles/d8.gyp
--- node-v11.15.0-orig/deps/v8/gypfiles/d8.gyp	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/d8.gyp	2019-06-27 13:13:48.286226500 +0300
@@ -109,7 +109,7 @@
             '<(SHARED_INTERMEDIATE_DIR)/d8-js.cc',
           ],
           'action': [
-            'python',
+            'python2',
             '../tools/js2c.py',
             '<@(_outputs)',
             'D8',
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/gyp_v8 node-v11.15.0/deps/v8/gypfiles/gyp_v8
--- node-v11.15.0-orig/deps/v8/gypfiles/gyp_v8	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/gyp_v8	2019-06-27 13:13:48.456226700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/inspector.gypi node-v11.15.0/deps/v8/gypfiles/inspector.gypi
--- node-v11.15.0-orig/deps/v8/gypfiles/inspector.gypi	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/inspector.gypi	2019-06-27 13:13:48.536226800 +0300
@@ -101,7 +101,7 @@
         '<@(SHARED_INTERMEDIATE_DIR)/src/js_protocol.stamp',
       ],
       'action': [
-        'python',
+        'python2',
         '<(protocol_path)/CheckProtocolCompatibility.py',
         '--stamp', '<@(_outputs)',
         '<(inspector_path)/js_protocol.json',
@@ -120,7 +120,7 @@
       ],
       'process_outputs_as_sources': 1,
       'action': [
-        'python',
+        'python2',
         '<(protocol_path)/CodeGenerator.py',
         '--jinja_dir', '../third_party',
         '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/inspector',
@@ -139,7 +139,7 @@
       ],
       'process_outputs_as_sources': 1,
       'action': [
-        'python',
+        'python2',
         '<(inspector_path)/build/xxd.py',
         'InjectedScriptSource_js',
         '<(inspector_path)/injected-script-source.js',
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/run-tests-legacy.py node-v11.15.0/deps/v8/gypfiles/run-tests-legacy.py
--- node-v11.15.0-orig/deps/v8/gypfiles/run-tests-legacy.py	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/run-tests-legacy.py	2019-06-27 13:13:48.696227000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/shim_headers.gypi node-v11.15.0/deps/v8/gypfiles/shim_headers.gypi
--- node-v11.15.0-orig/deps/v8/gypfiles/shim_headers.gypi	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/shim_headers.gypi	2019-06-27 13:13:48.781227200 +0300
@@ -62,7 +62,7 @@
       'outputs': [
         '<!@pymod_do_main(generate_shim_headers <@(generator_args) --outputs)',
       ],
-      'action': ['python',
+      'action': ['python2',
                  '<(generator_path)',
                  '<@(generator_args)',
                  '--generate',
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/standalone.gypi node-v11.15.0/deps/v8/gypfiles/standalone.gypi
--- node-v11.15.0-orig/deps/v8/gypfiles/standalone.gypi	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/standalone.gypi	2019-06-27 13:13:48.811227200 +0300
@@ -78,7 +78,7 @@
         'host_arch%': '<(host_arch)',
         'target_arch%': '<(target_arch)',
         'use_sysroot%': '<(use_sysroot)',
-        'base_dir%': '<!(cd <(DEPTH) && python -c "import os; print os.getcwd()")',
+        'base_dir%': '<!(cd <(DEPTH) && python2 -c "import os; print os.getcwd()")',
 
         # Instrument for code coverage and use coverage wrapper to exclude some
         # files. Uses gcov if clang=0 is set explicitly. Otherwise,
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/toolchain.gypi node-v11.15.0/deps/v8/gypfiles/toolchain.gypi
--- node-v11.15.0-orig/deps/v8/gypfiles/toolchain.gypi	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/toolchain.gypi	2019-06-27 13:13:48.861227300 +0300
@@ -41,7 +41,7 @@
     'has_valgrind%': 0,
     'coverage%': 0,
     'v8_target_arch%': '<(target_arch)',
-    'v8_host_byteorder%': '<!(python -c "import sys; print sys.byteorder")',
+    'v8_host_byteorder%': '<!(python2 -c "import sys; print sys.byteorder")',
     'force_dynamic_crt%': 0,
 
     # Setting 'v8_can_use_vfp32dregs' to 'true' will cause V8 to use the VFP
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/v8.gyp node-v11.15.0/deps/v8/gypfiles/v8.gyp
--- node-v11.15.0-orig/deps/v8/gypfiles/v8.gyp	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/v8.gyp	2019-06-27 13:13:48.951227400 +0300
@@ -105,7 +105,7 @@
             }],
           ],
           'action': [
-            'python', '../tools/testrunner/utils/dump_build_config_gyp.py',
+            'python2', '../tools/testrunner/utils/dump_build_config_gyp.py',
             '<@(v8_dump_build_config_args)',
           ],
         },
@@ -2374,7 +2374,7 @@
               ],
               'outputs': ['<@(libraries_bin_file)'],
               'action': [
-                'python',
+                'python2',
                 '../tools/js2c.py',
                 '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
                 'CORE',
@@ -2391,7 +2391,7 @@
               ],
               'outputs': ['<@(libraries_extras_bin_file)'],
               'action': [
-                'python',
+                'python2',
                 '../tools/js2c.py',
                 '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
                 'EXTRAS',
@@ -2408,7 +2408,7 @@
               ],
               'outputs': ['<@(libraries_experimental_extras_bin_file)'],
               'action': [
-                'python',
+                'python2',
                 '../tools/js2c.py',
                 '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
                 'EXPERIMENTAL_EXTRAS',
@@ -2433,14 +2433,14 @@
                         '<(PRODUCT_DIR)/natives_blob_host.bin',
                       ],
                       'action': [
-                        'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin'
+                        'python2', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin'
                       ],
                     }, {
                       'outputs': [
                         '<(PRODUCT_DIR)/natives_blob.bin',
                       ],
                       'action': [
-                        'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
+                        'python2', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
                       ],
                     }],
                   ],
@@ -2449,7 +2449,7 @@
                     '<(PRODUCT_DIR)/natives_blob.bin',
                   ],
                   'action': [
-                    'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
+                    'python2', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
                   ],
                 }],
               ],
@@ -2494,7 +2494,7 @@
           ],
           'outputs': ['<(SHARED_INTERMEDIATE_DIR)/libraries.cc'],
           'action': [
-            'python',
+            'python2',
             '../tools/js2c.py',
             '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
             'CORE',
@@ -2509,7 +2509,7 @@
           ],
           'outputs': ['<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc'],
           'action': [
-            'python',
+            'python2',
             '../tools/js2c.py',
             '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
             'EXTRAS',
@@ -2526,7 +2526,7 @@
             '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
           ],
           'action': [
-            'python',
+            'python2',
             '../tools/js2c.py',
             '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
             'EXPERIMENTAL_EXTRAS',
@@ -2663,7 +2663,7 @@
             '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
           ],
           'action': [
-            'python',
+            'python2',
             '../tools/gen-postmortem-metadata.py',
             '<@(_outputs)',
             '<@(heapobject_files)'
diff -Naur node-v11.15.0-orig/deps/v8/gypfiles/verify_source_deps.py node-v11.15.0/deps/v8/gypfiles/verify_source_deps.py
--- node-v11.15.0-orig/deps/v8/gypfiles/verify_source_deps.py	2019-04-30 20:31:27.000000000 +0300
+++ node-v11.15.0/deps/v8/gypfiles/verify_source_deps.py	2019-06-27 13:13:49.031227500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/src/inspector/build/check_injected_script_source.py node-v11.15.0/deps/v8/src/inspector/build/check_injected_script_source.py
--- node-v11.15.0-orig/deps/v8/src/inspector/build/check_injected_script_source.py	2019-04-30 20:31:28.000000000 +0300
+++ node-v11.15.0/deps/v8/src/inspector/build/check_injected_script_source.py	2019-06-27 13:14:14.636263400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2014 Google Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/src/inspector/build/compile-scripts.py node-v11.15.0/deps/v8/src/inspector/build/compile-scripts.py
--- node-v11.15.0-orig/deps/v8/src/inspector/build/compile-scripts.py	2019-04-30 20:31:28.000000000 +0300
+++ node-v11.15.0/deps/v8/src/inspector/build/compile-scripts.py	2019-06-27 13:14:14.686263400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/src/inspector/build/generate_protocol_externs.py node-v11.15.0/deps/v8/src/inspector/build/generate_protocol_externs.py
--- node-v11.15.0-orig/deps/v8/src/inspector/build/generate_protocol_externs.py	2019-04-30 20:31:28.000000000 +0300
+++ node-v11.15.0/deps/v8/src/inspector/build/generate_protocol_externs.py	2019-06-27 13:14:14.716263500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2011 Google Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/src/inspector/build/rjsmin.py node-v11.15.0/deps/v8/src/inspector/build/rjsmin.py
--- node-v11.15.0-orig/deps/v8/src/inspector/build/rjsmin.py	2019-04-30 20:31:28.000000000 +0300
+++ node-v11.15.0/deps/v8/src/inspector/build/rjsmin.py	2019-06-27 13:14:14.741263500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2011 - 2013
 # Andr\xe9 Malo or his licensors, as applicable
diff -Naur node-v11.15.0-orig/deps/v8/src/inspector/PRESUBMIT.py node-v11.15.0/deps/v8/src/inspector/PRESUBMIT.py
--- node-v11.15.0-orig/deps/v8/src/inspector/PRESUBMIT.py	2019-04-30 20:31:28.000000000 +0300
+++ node-v11.15.0/deps/v8/src/inspector/PRESUBMIT.py	2019-06-27 13:14:15.236264200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/third_party/binutils/detect_v8_host_arch.py node-v11.15.0/deps/v8/third_party/binutils/detect_v8_host_arch.py
--- node-v11.15.0-orig/deps/v8/third_party/binutils/detect_v8_host_arch.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/binutils/detect_v8_host_arch.py	2019-06-27 13:14:38.841297200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/third_party/binutils/download.py node-v11.15.0/deps/v8/third_party/binutils/download.py
--- node-v11.15.0-orig/deps/v8/third_party/binutils/download.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/binutils/download.py	2019-06-27 13:14:38.866297300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/check_protocol_compatibility.py node-v11.15.0/deps/v8/third_party/inspector_protocol/check_protocol_compatibility.py
--- node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/check_protocol_compatibility.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/inspector_protocol/check_protocol_compatibility.py	2019-06-27 13:14:39.231297800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2011 Google Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/CheckProtocolCompatibility.py node-v11.15.0/deps/v8/third_party/inspector_protocol/CheckProtocolCompatibility.py
--- node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/CheckProtocolCompatibility.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/inspector_protocol/CheckProtocolCompatibility.py	2019-06-27 13:14:39.201297700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2018 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/code_generator.py node-v11.15.0/deps/v8/third_party/inspector_protocol/code_generator.py
--- node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/code_generator.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/inspector_protocol/code_generator.py	2019-06-27 13:14:39.326297900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/CodeGenerator.py node-v11.15.0/deps/v8/third_party/inspector_protocol/CodeGenerator.py
--- node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/CodeGenerator.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/inspector_protocol/CodeGenerator.py	2019-06-27 13:14:39.261297800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/concatenate_protocols.py node-v11.15.0/deps/v8/third_party/inspector_protocol/concatenate_protocols.py
--- node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/concatenate_protocols.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/inspector_protocol/concatenate_protocols.py	2019-06-27 13:14:39.356298000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/convert_protocol_to_json.py node-v11.15.0/deps/v8/third_party/inspector_protocol/convert_protocol_to_json.py
--- node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/convert_protocol_to_json.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/inspector_protocol/convert_protocol_to_json.py	2019-06-27 13:14:39.406298000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/ConvertProtocolToJSON.py node-v11.15.0/deps/v8/third_party/inspector_protocol/ConvertProtocolToJSON.py
--- node-v11.15.0-orig/deps/v8/third_party/inspector_protocol/ConvertProtocolToJSON.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/third_party/inspector_protocol/ConvertProtocolToJSON.py	2019-06-27 13:14:39.381298000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2018 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/adb-d8.py node-v11.15.0/deps/v8/tools/adb-d8.py
--- node-v11.15.0-orig/deps/v8/tools/adb-d8.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/adb-d8.py	2019-06-27 13:14:41.671301200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/tools/android-run.py node-v11.15.0/deps/v8/tools/android-run.py
--- node-v11.15.0-orig/deps/v8/tools/android-run.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/android-run.py	2019-06-27 13:14:41.751301300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/bigint-tester.py node-v11.15.0/deps/v8/tools/bigint-tester.py
--- node-v11.15.0-orig/deps/v8/tools/bigint-tester.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/bigint-tester.py	2019-06-27 13:14:41.901301500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/callstats.py node-v11.15.0/deps/v8/tools/callstats.py
--- node-v11.15.0-orig/deps/v8/tools/callstats.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/callstats.py	2019-06-27 13:14:42.021301700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/clusterfuzz/v8_foozzie.py node-v11.15.0/deps/v8/tools/clusterfuzz/v8_foozzie.py
--- node-v11.15.0-orig/deps/v8/tools/clusterfuzz/v8_foozzie.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/clusterfuzz/v8_foozzie.py	2019-06-27 13:14:42.431302300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/clusterfuzz/v8_foozzie_test.py node-v11.15.0/deps/v8/tools/clusterfuzz/v8_foozzie_test.py
--- node-v11.15.0-orig/deps/v8/tools/clusterfuzz/v8_foozzie_test.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/clusterfuzz/v8_foozzie_test.py	2019-06-27 13:14:42.486302300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/concatenate-files.py node-v11.15.0/deps/v8/tools/concatenate-files.py
--- node-v11.15.0-orig/deps/v8/tools/concatenate-files.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/concatenate-files.py	2019-06-27 13:14:42.736302700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/dev/gen-tags.py node-v11.15.0/deps/v8/tools/dev/gen-tags.py
--- node-v11.15.0-orig/deps/v8/tools/dev/gen-tags.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/dev/gen-tags.py	2019-06-27 13:14:42.936303000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/dev/gm.py node-v11.15.0/deps/v8/tools/dev/gm.py
--- node-v11.15.0-orig/deps/v8/tools/dev/gm.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/dev/gm.py	2019-06-27 13:14:42.961303000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/dev/v8gen.py node-v11.15.0/deps/v8/tools/dev/v8gen.py
--- node-v11.15.0-orig/deps/v8/tools/dev/v8gen.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/dev/v8gen.py	2019-06-27 13:14:42.996303100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/disasm.py node-v11.15.0/deps/v8/tools/disasm.py
--- node-v11.15.0-orig/deps/v8/tools/disasm.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/disasm.py	2019-06-27 13:14:43.026303100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2011 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/dump-cpp.py node-v11.15.0/deps/v8/tools/dump-cpp.py
--- node-v11.15.0-orig/deps/v8/tools/dump-cpp.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/dump-cpp.py	2019-06-27 13:14:43.086303200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/eval_gc_nvp.py node-v11.15.0/deps/v8/tools/eval_gc_nvp.py
--- node-v11.15.0-orig/deps/v8/tools/eval_gc_nvp.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/eval_gc_nvp.py	2019-06-27 13:14:43.171303300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/tools/find-commit-for-patch.py node-v11.15.0/deps/v8/tools/find-commit-for-patch.py
--- node-v11.15.0-orig/deps/v8/tools/find-commit-for-patch.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/find-commit-for-patch.py	2019-06-27 13:14:43.226303400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/gcmole/parallel.py node-v11.15.0/deps/v8/tools/gcmole/parallel.py
--- node-v11.15.0-orig/deps/v8/tools/gcmole/parallel.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/gcmole/parallel.py	2019-06-27 13:14:43.591303900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/gcmole/run-gcmole.py node-v11.15.0/deps/v8/tools/gcmole/run-gcmole.py
--- node-v11.15.0-orig/deps/v8/tools/gcmole/run-gcmole.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/gcmole/run-gcmole.py	2019-06-27 13:14:43.646304000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/gc-nvp-to-csv.py node-v11.15.0/deps/v8/tools/gc-nvp-to-csv.py
--- node-v11.15.0-orig/deps/v8/tools/gc-nvp-to-csv.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/gc-nvp-to-csv.py	2019-06-27 13:14:43.341303500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/tools/gc-nvp-trace-processor.py node-v11.15.0/deps/v8/tools/gc-nvp-trace-processor.py
--- node-v11.15.0-orig/deps/v8/tools/gc-nvp-trace-processor.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/gc-nvp-trace-processor.py	2019-06-27 13:14:43.371303600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2010 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/generate_shim_headers/generate_shim_headers.py node-v11.15.0/deps/v8/tools/generate_shim_headers/generate_shim_headers.py
--- node-v11.15.0-orig/deps/v8/tools/generate_shim_headers/generate_shim_headers.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/generate_shim_headers/generate_shim_headers.py	2019-06-27 13:14:43.906304300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2013 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/generate-builtins-tests.py node-v11.15.0/deps/v8/tools/generate-builtins-tests.py
--- node-v11.15.0-orig/deps/v8/tools/generate-builtins-tests.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/generate-builtins-tests.py	2019-06-27 13:14:43.816304200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/generate-header-include-checks.py node-v11.15.0/deps/v8/tools/generate-header-include-checks.py
--- node-v11.15.0-orig/deps/v8/tools/generate-header-include-checks.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/generate-header-include-checks.py	2019-06-27 13:14:43.846304200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # vim:fenc=utf-8:shiftwidth=2
 
 # Copyright 2018 the V8 project authors. All rights reserved.
diff -Naur node-v11.15.0-orig/deps/v8/tools/gen-postmortem-metadata.py node-v11.15.0/deps/v8/tools/gen-postmortem-metadata.py
--- node-v11.15.0-orig/deps/v8/tools/gen-postmortem-metadata.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/gen-postmortem-metadata.py	2019-06-27 13:14:43.791304200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 #
 # Copyright 2012 the V8 project authors. All rights reserved.
diff -Naur node-v11.15.0-orig/deps/v8/tools/get_landmines.py node-v11.15.0/deps/v8/tools/get_landmines.py
--- node-v11.15.0-orig/deps/v8/tools/get_landmines.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/get_landmines.py	2019-06-27 13:14:43.931304400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/grokdump.py node-v11.15.0/deps/v8/tools/grokdump.py
--- node-v11.15.0-orig/deps/v8/tools/grokdump.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/grokdump.py	2019-06-27 13:14:43.966304400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/js2c.py node-v11.15.0/deps/v8/tools/js2c.py
--- node-v11.15.0-orig/deps/v8/tools/js2c.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/js2c.py	2019-06-27 13:14:44.636305400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/jsmin.py node-v11.15.0/deps/v8/tools/jsmin.py
--- node-v11.15.0-orig/deps/v8/tools/jsmin.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/jsmin.py	2019-06-27 13:14:44.746305500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/python2
 
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/ll_prof.py node-v11.15.0/deps/v8/tools/ll_prof.py
--- node-v11.15.0-orig/deps/v8/tools/ll_prof.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/ll_prof.py	2019-06-27 13:14:45.051305900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/mb/mb.py node-v11.15.0/deps/v8/tools/mb/mb.py
--- node-v11.15.0-orig/deps/v8/tools/mb/mb.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/mb/mb.py	2019-06-27 13:14:45.456306500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Copyright 2015 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
@@ -1092,7 +1092,7 @@
     print_env('LLVM_FORCE_HEAD_REVISION')
 
     if cmd[0] == self.executable:
-      cmd = ['python'] + cmd[1:]
+      cmd = ['python2'] + cmd[1:]
     self.Print(*[shell_quoter(arg) for arg in cmd])
 
   def PrintJSON(self, obj):
diff -Naur node-v11.15.0-orig/deps/v8/tools/mb/mb_unittest.py node-v11.15.0/deps/v8/tools/mb/mb_unittest.py
--- node-v11.15.0-orig/deps/v8/tools/mb/mb_unittest.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/mb/mb_unittest.py	2019-06-27 13:14:45.486306500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Copyright 2015 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/tools/node/backport_node.py node-v11.15.0/deps/v8/tools/node/backport_node.py
--- node-v11.15.0-orig/deps/v8/tools/node/backport_node.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/node/backport_node.py	2019-06-27 13:14:45.776306900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/node/build_gn.py node-v11.15.0/deps/v8/tools/node/build_gn.py
--- node-v11.15.0-orig/deps/v8/tools/node/build_gn.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/node/build_gn.py	2019-06-27 13:14:45.806307000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/node/fetch_deps.py node-v11.15.0/deps/v8/tools/node/fetch_deps.py
--- node-v11.15.0-orig/deps/v8/tools/node/fetch_deps.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/node/fetch_deps.py	2019-06-27 13:14:45.836307000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/node/node_common.py node-v11.15.0/deps/v8/tools/node/node_common.py
--- node-v11.15.0-orig/deps/v8/tools/node/node_common.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/node/node_common.py	2019-06-27 13:14:45.866307100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/node/test_backport_node.py node-v11.15.0/deps/v8/tools/node/test_backport_node.py
--- node-v11.15.0-orig/deps/v8/tools/node/test_backport_node.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/node/test_backport_node.py	2019-06-27 13:14:46.416307800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/node/test_update_node.py node-v11.15.0/deps/v8/tools/node/test_update_node.py
--- node-v11.15.0-orig/deps/v8/tools/node/test_update_node.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/node/test_update_node.py	2019-06-27 13:14:46.446307900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/node/update_node.py node-v11.15.0/deps/v8/tools/node/update_node.py
--- node-v11.15.0-orig/deps/v8/tools/node/update_node.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/node/update_node.py	2019-06-27 13:14:46.471307900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/objdump-v8 node-v11.15.0/deps/v8/tools/objdump-v8
--- node-v11.15.0-orig/deps/v8/tools/objdump-v8	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/objdump-v8	2019-06-27 13:14:46.501308000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/perf-compare.py node-v11.15.0/deps/v8/tools/perf-compare.py
--- node-v11.15.0-orig/deps/v8/tools/perf-compare.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/perf-compare.py	2019-06-27 13:14:46.696308200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/perf-to-html.py node-v11.15.0/deps/v8/tools/perf-to-html.py
--- node-v11.15.0-orig/deps/v8/tools/perf-to-html.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/perf-to-html.py	2019-06-27 13:14:46.721308300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/predictable_wrapper.py node-v11.15.0/deps/v8/tools/predictable_wrapper.py
--- node-v11.15.0-orig/deps/v8/tools/predictable_wrapper.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/predictable_wrapper.py	2019-06-27 13:14:46.781308400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/auto_push.py node-v11.15.0/deps/v8/tools/release/auto_push.py
--- node-v11.15.0-orig/deps/v8/tools/release/auto_push.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/auto_push.py	2019-06-27 13:14:46.991308600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2013 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/auto_roll.py node-v11.15.0/deps/v8/tools/release/auto_roll.py
--- node-v11.15.0-orig/deps/v8/tools/release/auto_roll.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/auto_roll.py	2019-06-27 13:14:47.031308700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/auto_tag.py node-v11.15.0/deps/v8/tools/release/auto_tag.py
--- node-v11.15.0-orig/deps/v8/tools/release/auto_tag.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/auto_tag.py	2019-06-27 13:14:47.056308700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/check_clusterfuzz.py node-v11.15.0/deps/v8/tools/release/check_clusterfuzz.py
--- node-v11.15.0-orig/deps/v8/tools/release/check_clusterfuzz.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/check_clusterfuzz.py	2019-06-27 13:14:47.086308800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/common_includes.py node-v11.15.0/deps/v8/tools/release/common_includes.py
--- node-v11.15.0-orig/deps/v8/tools/release/common_includes.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/common_includes.py	2019-06-27 13:14:47.116308800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2013 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/create_release.py node-v11.15.0/deps/v8/tools/release/create_release.py
--- node-v11.15.0-orig/deps/v8/tools/release/create_release.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/create_release.py	2019-06-27 13:14:47.146308900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/filter_build_files.py node-v11.15.0/deps/v8/tools/release/filter_build_files.py
--- node-v11.15.0-orig/deps/v8/tools/release/filter_build_files.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/filter_build_files.py	2019-06-27 13:14:47.171308900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/git_recipes.py node-v11.15.0/deps/v8/tools/release/git_recipes.py
--- node-v11.15.0-orig/deps/v8/tools/release/git_recipes.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/git_recipes.py	2019-06-27 13:14:47.201308900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/merge_to_branch.py node-v11.15.0/deps/v8/tools/release/merge_to_branch.py
--- node-v11.15.0-orig/deps/v8/tools/release/merge_to_branch.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/merge_to_branch.py	2019-06-27 13:14:47.256309000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/mergeinfo.py node-v11.15.0/deps/v8/tools/release/mergeinfo.py
--- node-v11.15.0-orig/deps/v8/tools/release/mergeinfo.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/mergeinfo.py	2019-06-27 13:14:47.226309000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/push_to_candidates.py node-v11.15.0/deps/v8/tools/release/push_to_candidates.py
--- node-v11.15.0-orig/deps/v8/tools/release/push_to_candidates.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/push_to_candidates.py	2019-06-27 13:14:47.311309100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2013 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/roll_merge.py node-v11.15.0/deps/v8/tools/release/roll_merge.py
--- node-v11.15.0-orig/deps/v8/tools/release/roll_merge.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/roll_merge.py	2019-06-27 13:14:47.341309100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/script_test.py node-v11.15.0/deps/v8/tools/release/script_test.py
--- node-v11.15.0-orig/deps/v8/tools/release/script_test.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/script_test.py	2019-06-27 13:14:47.366309200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/search_related_commits.py node-v11.15.0/deps/v8/tools/release/search_related_commits.py
--- node-v11.15.0-orig/deps/v8/tools/release/search_related_commits.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/search_related_commits.py	2019-06-27 13:14:47.396309200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/test_mergeinfo.py node-v11.15.0/deps/v8/tools/release/test_mergeinfo.py
--- node-v11.15.0-orig/deps/v8/tools/release/test_mergeinfo.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/test_mergeinfo.py	2019-06-27 13:14:47.536309400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/test_scripts.py node-v11.15.0/deps/v8/tools/release/test_scripts.py
--- node-v11.15.0-orig/deps/v8/tools/release/test_scripts.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/test_scripts.py	2019-06-27 13:14:47.566309500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2013 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
diff -Naur node-v11.15.0-orig/deps/v8/tools/release/test_search_related_commits.py node-v11.15.0/deps/v8/tools/release/test_search_related_commits.py
--- node-v11.15.0-orig/deps/v8/tools/release/test_search_related_commits.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/release/test_search_related_commits.py	2019-06-27 13:14:47.591309500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2015 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/run.py node-v11.15.0/deps/v8/tools/run.py
--- node-v11.15.0-orig/deps/v8/tools/run.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/run.py	2019-06-27 13:14:47.726309700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/run_perf.py node-v11.15.0/deps/v8/tools/run_perf.py
--- node-v11.15.0-orig/deps/v8/tools/run_perf.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/run_perf.py	2019-06-27 13:14:47.756309700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/run-num-fuzzer.py node-v11.15.0/deps/v8/tools/run-num-fuzzer.py
--- node-v11.15.0-orig/deps/v8/tools/run-num-fuzzer.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/run-num-fuzzer.py	2019-06-27 13:14:47.646309600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2018 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/tools/sanitizers/sancov_formatter.py node-v11.15.0/deps/v8/tools/sanitizers/sancov_formatter.py
--- node-v11.15.0-orig/deps/v8/tools/sanitizers/sancov_formatter.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/sanitizers/sancov_formatter.py	2019-06-27 13:14:47.786309800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/sanitizers/sancov_merger.py node-v11.15.0/deps/v8/tools/sanitizers/sancov_merger.py
--- node-v11.15.0-orig/deps/v8/tools/sanitizers/sancov_merger.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/sanitizers/sancov_merger.py	2019-06-27 13:14:47.841309800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/sanitizers/sanitize_pcs.py node-v11.15.0/deps/v8/tools/sanitizers/sanitize_pcs.py
--- node-v11.15.0-orig/deps/v8/tools/sanitizers/sanitize_pcs.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/sanitizers/sanitize_pcs.py	2019-06-27 13:14:47.896309900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/stats-viewer.py node-v11.15.0/deps/v8/tools/stats-viewer.py
--- node-v11.15.0-orig/deps/v8/tools/stats-viewer.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/stats-viewer.py	2019-06-27 13:14:48.116310200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/deps/v8/tools/testrunner/local/pool.py node-v11.15.0/deps/v8/tools/testrunner/local/pool.py
--- node-v11.15.0-orig/deps/v8/tools/testrunner/local/pool.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/testrunner/local/pool.py	2019-06-27 13:14:48.286310500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/testrunner/local/pool_unittest.py node-v11.15.0/deps/v8/tools/testrunner/local/pool_unittest.py
--- node-v11.15.0-orig/deps/v8/tools/testrunner/local/pool_unittest.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/testrunner/local/pool_unittest.py	2019-06-27 13:14:48.311310500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/testrunner/local/statusfile_unittest.py node-v11.15.0/deps/v8/tools/testrunner/local/statusfile_unittest.py
--- node-v11.15.0-orig/deps/v8/tools/testrunner/local/statusfile_unittest.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/testrunner/local/statusfile_unittest.py	2019-06-27 13:14:48.371310600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/testrunner/local/testsuite_unittest.py node-v11.15.0/deps/v8/tools/testrunner/local/testsuite_unittest.py
--- node-v11.15.0-orig/deps/v8/tools/testrunner/local/testsuite_unittest.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/testrunner/local/testsuite_unittest.py	2019-06-27 13:14:48.426310700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/testrunner/num_fuzzer.py node-v11.15.0/deps/v8/tools/testrunner/num_fuzzer.py
--- node-v11.15.0-orig/deps/v8/tools/testrunner/num_fuzzer.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/testrunner/num_fuzzer.py	2019-06-27 13:14:48.561310800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/tools/testrunner/standard_runner.py node-v11.15.0/deps/v8/tools/testrunner/standard_runner.py
--- node-v11.15.0-orig/deps/v8/tools/testrunner/standard_runner.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/testrunner/standard_runner.py	2019-06-27 13:14:48.916311300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/deps/v8/tools/torque/format-torque.py node-v11.15.0/deps/v8/tools/torque/format-torque.py
--- node-v11.15.0-orig/deps/v8/tools/torque/format-torque.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/torque/format-torque.py	2019-06-27 13:14:49.746312500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/torque/make-torque-parser.py node-v11.15.0/deps/v8/tools/torque/make-torque-parser.py
--- node-v11.15.0-orig/deps/v8/tools/torque/make-torque-parser.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/torque/make-torque-parser.py	2019-06-27 13:14:49.771312500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/trace-maps-processor.py node-v11.15.0/deps/v8/tools/trace-maps-processor.py
--- node-v11.15.0-orig/deps/v8/tools/trace-maps-processor.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/trace-maps-processor.py	2019-06-27 13:14:49.986312800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/try_perf.py node-v11.15.0/deps/v8/tools/try_perf.py
--- node-v11.15.0-orig/deps/v8/tools/try_perf.py	2019-04-30 20:31:46.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/try_perf.py	2019-06-27 13:14:50.011312900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/unittests/predictable_wrapper_test.py node-v11.15.0/deps/v8/tools/unittests/predictable_wrapper_test.py
--- node-v11.15.0-orig/deps/v8/tools/unittests/predictable_wrapper_test.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/unittests/predictable_wrapper_test.py	2019-06-27 13:14:51.446314900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/unittests/run_perf_test.py node-v11.15.0/deps/v8/tools/unittests/run_perf_test.py
--- node-v11.15.0-orig/deps/v8/tools/unittests/run_perf_test.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/unittests/run_perf_test.py	2019-06-27 13:14:51.511315000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2014 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/unittests/run_tests_test.py node-v11.15.0/deps/v8/tools/unittests/run_tests_test.py
--- node-v11.15.0-orig/deps/v8/tools/unittests/run_tests_test.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/unittests/run_tests_test.py	2019-06-27 13:14:51.541315000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/unittests/testdata/d8_mocked1.py node-v11.15.0/deps/v8/tools/unittests/testdata/d8_mocked1.py
--- node-v11.15.0-orig/deps/v8/tools/unittests/testdata/d8_mocked1.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/unittests/testdata/d8_mocked1.py	2019-06-27 13:14:51.571315100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/unittests/testdata/d8_mocked2.py node-v11.15.0/deps/v8/tools/unittests/testdata/d8_mocked2.py
--- node-v11.15.0-orig/deps/v8/tools/unittests/testdata/d8_mocked2.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/unittests/testdata/d8_mocked2.py	2019-06-27 13:14:51.601315100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/unittests/testdata/predictable_mocked.py node-v11.15.0/deps/v8/tools/unittests/testdata/predictable_mocked.py
--- node-v11.15.0-orig/deps/v8/tools/unittests/testdata/predictable_mocked.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/unittests/testdata/predictable_mocked.py	2019-06-27 13:14:51.686315200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/unittests/testdata/results_processor.py node-v11.15.0/deps/v8/tools/unittests/testdata/results_processor.py
--- node-v11.15.0-orig/deps/v8/tools/unittests/testdata/results_processor.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/unittests/testdata/results_processor.py	2019-06-27 13:14:51.711315300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 the V8 project authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/deps/v8/tools/v8_presubmit.py node-v11.15.0/deps/v8/tools/v8_presubmit.py
--- node-v11.15.0-orig/deps/v8/tools/v8_presubmit.py	2019-04-30 20:31:47.000000000 +0300
+++ node-v11.15.0/deps/v8/tools/v8_presubmit.py	2019-06-27 13:14:52.076315800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/node.gyp node-v11.15.0/node.gyp
--- node-v11.15.0-orig/node.gyp	2019-04-30 20:31:48.000000000 +0300
+++ node-v11.15.0/node.gyp	2019-06-27 13:15:06.666336200 +0300
@@ -738,7 +738,7 @@
               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/openssl.def'],
               'process_outputs_as_sources': 1,
               'action': [
-                'python',
+                'python2',
                 'tools/mkssldef.py',
                 '<@(mkssldef_flags)',
                 '-o',
@@ -773,7 +773,7 @@
             }]
           ],
           'action': [
-            'python', 'tools/js2c.py',
+            'python2', 'tools/js2c.py',
             '<@(_outputs)',
             '<@(_inputs)',
           ],
diff -Naur node-v11.15.0-orig/src/inspector/node_inspector.gypi node-v11.15.0/src/inspector/node_inspector.gypi
--- node-v11.15.0-orig/src/inspector/node_inspector.gypi	2019-04-30 20:31:48.000000000 +0300
+++ node-v11.15.0/src/inspector/node_inspector.gypi	2019-06-27 13:15:07.701337600 +0300
@@ -76,7 +76,7 @@
         '<(SHARED_INTERMEDIATE_DIR)/src/node_protocol.json',
       ],
       'action': [
-        'python',
+        'python2',
         'tools/inspector_protocol/convert_protocol_to_json.py',
         '<@(_inputs)',
         '<@(_outputs)',
@@ -94,7 +94,7 @@
       ],
       'process_outputs_as_sources': 1,
       'action': [
-        'python',
+        'python2',
         'tools/inspector_protocol/code_generator.py',
         '--jinja_dir', '<@(protocol_tool_path)/..',
         '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/',
@@ -112,7 +112,7 @@
         '<(SHARED_INTERMEDIATE_DIR)/concatenated_protocol.json',
       ],
       'action': [
-        'python',
+        'python2',
         'tools/inspector_protocol/concatenate_protocols.py',
         '<@(_inputs)',
         '<@(_outputs)',
@@ -128,7 +128,7 @@
       ],
       'process_outputs_as_sources': 1,
       'action': [
-        'python',
+        'python2',
         'tools/compress_json.py',
         '<@(_inputs)',
         '<@(_outputs)',
diff -Naur node-v11.15.0-orig/test/parallel/test-child-process-set-blocking.js node-v11.15.0/test/parallel/test-child-process-set-blocking.js
--- node-v11.15.0-orig/test/parallel/test-child-process-set-blocking.js	2019-04-30 20:31:52.000000000 +0300
+++ node-v11.15.0/test/parallel/test-child-process-set-blocking.js	2019-06-27 13:17:58.491576700 +0300
@@ -26,7 +26,7 @@
 
 const SIZE = 100000;
 
-const cp = ch.spawn('python', ['-c', `print ${SIZE} * "C"`], {
+const cp = ch.spawn('python2', ['-c', `print ${SIZE} * "C"`], {
   stdio: 'inherit'
 });
 
diff -Naur node-v11.15.0-orig/test/parallel/test-stdio-closed.js node-v11.15.0/test/parallel/test-stdio-closed.js
--- node-v11.15.0-orig/test/parallel/test-stdio-closed.js	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/test/parallel/test-stdio-closed.js	2019-06-27 13:18:37.291631100 +0300
@@ -12,7 +12,7 @@
     process.stderr;
     return;
   }
-  const python = process.env.PYTHON || 'python';
+  const python2 = process.env.PYTHON || 'python2';
   const script = fixtures.path('spawn_closed_stdio.py');
   const proc = spawn(python, [script, process.execPath, __filename, 'child']);
   proc.on('exit', common.mustCall(function(exitCode) {
diff -Naur node-v11.15.0-orig/test/pseudo-tty/no_dropped_stdio.js node-v11.15.0/test/pseudo-tty/no_dropped_stdio.js
--- node-v11.15.0-orig/test/pseudo-tty/no_dropped_stdio.js	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/test/pseudo-tty/no_dropped_stdio.js	2019-06-27 13:18:54.741655500 +0300
@@ -11,7 +11,7 @@
 // This results in 1025 bytes, just enough to overflow the 1kb OS X TTY buffer.
 out += `${'o'.repeat(24)}O`;
 
-// In AIX, the child exits even before the python parent
+// In AIX, the child exits even before the python2 parent
 // can setup the readloop. Provide a reasonable delay.
 setTimeout(function() {
   process.stdout.write(out);
diff -Naur node-v11.15.0-orig/test/pseudo-tty/no_interleaved_stdio.js node-v11.15.0/test/pseudo-tty/no_interleaved_stdio.js
--- node-v11.15.0-orig/test/pseudo-tty/no_interleaved_stdio.js	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/test/pseudo-tty/no_interleaved_stdio.js	2019-06-27 13:18:54.796655600 +0300
@@ -13,7 +13,7 @@
 
 const err = '__This is some stderr__';
 
-// In AIX, the child exits even before the python parent
+// In AIX, the child exits even before the python2 parent
 // can setup the readloop. Provide a reasonable delay.
 setTimeout(function() {
   process.stdout.write(out);
diff -Naur node-v11.15.0-orig/test/pseudo-tty/test-stderr-stdout-handle-sigwinch.js node-v11.15.0/test/pseudo-tty/test-stderr-stdout-handle-sigwinch.js
--- node-v11.15.0-orig/test/pseudo-tty/test-stderr-stdout-handle-sigwinch.js	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/test/pseudo-tty/test-stderr-stdout-handle-sigwinch.js	2019-06-27 13:18:55.466656500 +0300
@@ -27,7 +27,7 @@
                                    process.stdout,
                                    'calling stdout._refreshSize');
 
-// In AIX, the child exits even before the python parent
+// In AIX, the child exits even before the python2 parent
 // can setup the readloop. Provide a reasonable delay.
 setTimeout(function() {
   process.emit('SIGWINCH');
diff -Naur node-v11.15.0-orig/test/pummel/test-child-process-spawn-loop.js node-v11.15.0/test/pummel/test-child-process-spawn-loop.js
--- node-v11.15.0-orig/test/pummel/test-child-process-spawn-loop.js	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/test/pummel/test-child-process-spawn-loop.js	2019-06-27 13:18:56.191657500 +0300
@@ -30,7 +30,7 @@
 let finished = false;
 
 function doSpawn(i) {
-  const child = spawn('python', ['-c', `print ${SIZE} * "C"`]);
+  const child = spawn('python2', ['-c', `print ${SIZE} * "C"`]);
   let count = 0;
 
   child.stdout.setEncoding('ascii');
diff -Naur node-v11.15.0-orig/tools/check-imports.py node-v11.15.0/tools/check-imports.py
--- node-v11.15.0-orig/tools/check-imports.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/check-imports.py	2019-06-27 13:17:06.991504600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 from __future__ import print_function
 import glob
diff -Naur node-v11.15.0-orig/tools/compress_json.py node-v11.15.0/tools/compress_json.py
--- node-v11.15.0-orig/tools/compress_json.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/compress_json.py	2019-06-27 13:17:07.101504800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 import json
 import struct
diff -Naur node-v11.15.0-orig/tools/configure.d/nodedownload.py node-v11.15.0/tools/configure.d/nodedownload.py
--- node-v11.15.0-orig/tools/configure.d/nodedownload.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/configure.d/nodedownload.py	2019-06-27 13:17:07.126504800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Moved some utilities here from ../../configure
 
 from __future__ import print_function
diff -Naur node-v11.15.0-orig/tools/genv8constants.py node-v11.15.0/tools/genv8constants.py
--- node-v11.15.0-orig/tools/genv8constants.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/genv8constants.py	2019-06-27 13:17:07.651505600 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 #
 # genv8constants.py output_file libv8_base.a
diff -Naur node-v11.15.0-orig/tools/gyp/buildbot/buildbot_run.py node-v11.15.0/tools/gyp/buildbot/buildbot_run.py
--- node-v11.15.0-orig/tools/gyp/buildbot/buildbot_run.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/buildbot/buildbot_run.py	2019-06-27 13:17:07.791505800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/gyp/gyp node-v11.15.0/tools/gyp/gyp
--- node-v11.15.0-orig/tools/gyp/gyp	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/gyp	2019-06-27 13:17:07.996506100 +0300
@@ -5,4 +5,4 @@
 
 set -e
 base=$(dirname "$0")
-exec python "${base}/gyp_main.py" "$@"
+exec python2 "${base}/gyp_main.py" "$@"
diff -Naur node-v11.15.0-orig/tools/gyp/gyp.bat node-v11.15.0/tools/gyp/gyp.bat
--- node-v11.15.0-orig/tools/gyp/gyp.bat	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/gyp.bat	2019-06-27 13:17:08.026506100 +0300
@@ -2,4 +2,4 @@
 @rem Use of this source code is governed by a BSD-style license that can be
 @rem found in the LICENSE file.
 
-@python "%~dp0gyp_main.py" %*
+@python2 "%~dp0gyp_main.py" %*
diff -Naur node-v11.15.0-orig/tools/gyp/gyp_main.py node-v11.15.0/tools/gyp/gyp_main.py
--- node-v11.15.0-orig/tools/gyp/gyp_main.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/gyp_main.py	2019-06-27 13:17:08.081506200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2009 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/gyptest.py node-v11.15.0/tools/gyp/gyptest.py
--- node-v11.15.0-orig/tools/gyp/gyptest.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/gyptest.py	2019-06-27 13:17:08.051506100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/__init__.py node-v11.15.0/tools/gyp/pylib/gyp/__init__.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/__init__.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/__init__.py	2019-06-27 13:17:09.346507900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/common_test.py node-v11.15.0/tools/gyp/pylib/gyp/common_test.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/common_test.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/common_test.py	2019-06-27 13:17:08.221506400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/easy_xml_test.py node-v11.15.0/tools/gyp/pylib/gyp/easy_xml_test.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/easy_xml_test.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/easy_xml_test.py	2019-06-27 13:17:08.281506500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2011 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/flock_tool.py node-v11.15.0/tools/gyp/pylib/gyp/flock_tool.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/flock_tool.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/flock_tool.py	2019-06-27 13:17:08.306506500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2011 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/msvs_test.py node-v11.15.0/tools/gyp/pylib/gyp/generator/msvs_test.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/msvs_test.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/generator/msvs_test.py	2019-06-27 13:17:08.606506900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/ninja.py node-v11.15.0/tools/gyp/pylib/gyp/generator/ninja.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/ninja.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/generator/ninja.py	2019-06-27 13:17:08.636507000 +0300
@@ -1812,7 +1812,7 @@
     return '%(python)s gyp-win-tool link-with-manifests $arch %(embed)s ' \
            '%(out)s "%(ldcmd)s" %(resname)s $mt $rc "$intermediatemanifest" ' \
            '$manifests' % {
-               'python': sys.executable,
+               'python2': sys.executable,
                'out': out,
                'ldcmd': ldcmd,
                'resname': resource_name,
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/ninja_test.py node-v11.15.0/tools/gyp/pylib/gyp/generator/ninja_test.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/ninja_test.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/generator/ninja_test.py	2019-06-27 13:17:08.661507000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/xcode.py node-v11.15.0/tools/gyp/pylib/gyp/generator/xcode.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/xcode.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/generator/xcode.py	2019-06-27 13:17:08.691507000 +0300
@@ -284,7 +284,7 @@
         command_prefix = ''
         if serialize_all_tests:
           command_prefix = \
-"""python -c "import fcntl, subprocess, sys
+"""python2 -c "import fcntl, subprocess, sys
 file = open('$TMPDIR/GYP_serialize_test_runs', 'a')
 fcntl.flock(file.fileno(), fcntl.LOCK_EX)
 sys.exit(subprocess.call(sys.argv[1:]))" """
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/xcode_test.py node-v11.15.0/tools/gyp/pylib/gyp/generator/xcode_test.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/xcode_test.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/generator/xcode_test.py	2019-06-27 13:17:08.716507100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2013 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/input_test.py node-v11.15.0/tools/gyp/pylib/gyp/input_test.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/input_test.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/input_test.py	2019-06-27 13:17:08.801507200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright 2013 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/mac_tool.py node-v11.15.0/tools/gyp/pylib/gyp/mac_tool.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/mac_tool.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/mac_tool.py	2019-06-27 13:17:08.831507200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/MSVSSettings_test.py node-v11.15.0/tools/gyp/pylib/gyp/MSVSSettings_test.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/MSVSSettings_test.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/MSVSSettings_test.py	2019-06-27 13:17:08.951507400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/win_tool.py node-v11.15.0/tools/gyp/pylib/gyp/win_tool.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/win_tool.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/win_tool.py	2019-06-27 13:17:09.201507700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
@@ -152,7 +152,7 @@
     # first and only link. We still tell link to generate a manifest, but we
     # only use that to assert that our simpler process did not miss anything.
     variables = {
-      'python': sys.executable,
+      'python2': sys.executable,
       'arch': arch,
       'out': out,
       'ldcmd': ldcmd,
diff -Naur node-v11.15.0-orig/tools/gyp/samples/samples node-v11.15.0/tools/gyp/samples/samples
--- node-v11.15.0-orig/tools/gyp/samples/samples	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/samples/samples	2019-06-27 13:17:09.401508000 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 
 # Copyright (c) 2009 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/samples/samples.bat node-v11.15.0/tools/gyp/samples/samples.bat
--- node-v11.15.0-orig/tools/gyp/samples/samples.bat	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/samples/samples.bat	2019-06-27 13:17:09.426508100 +0300
@@ -2,4 +2,4 @@
 @rem Use of this source code is governed by a BSD-style license that can be
 @rem found in the LICENSE file.
 
-@python %~dp0/samples %*
+@python %~dp0/samples %*
diff -Naur node-v11.15.0-orig/tools/gyp/setup.py node-v11.15.0/tools/gyp/setup.py
--- node-v11.15.0-orig/tools/gyp/setup.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/setup.py	2019-06-27 13:17:09.456508100 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2009 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/tools/emacs/testdata/media.gyp node-v11.15.0/tools/gyp/tools/emacs/testdata/media.gyp
--- node-v11.15.0-orig/tools/gyp/tools/emacs/testdata/media.gyp	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/tools/emacs/testdata/media.gyp	2019-06-27 13:17:09.606508300 +0300
@@ -987,7 +987,7 @@
                 '<(SHARED_INTERMEDIATE_DIR)/media/jni/media_player_listener_jni.h',
               ],
               'action': [
-                'python',
+                'python2',
                 '<(DEPTH)/base/android/jni_generator/jni_generator.py',
                 '-o',
                 '<@(_inputs)',
diff -Naur node-v11.15.0-orig/tools/gyp/tools/emacs/testdata/media.gyp.fontified node-v11.15.0/tools/gyp/tools/emacs/testdata/media.gyp.fontified
--- node-v11.15.0-orig/tools/gyp/tools/emacs/testdata/media.gyp.fontified	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/tools/emacs/testdata/media.gyp.fontified	2019-06-27 13:17:09.636508400 +0300
@@ -988,7 +988,7 @@
                 '<(SHARED_INTERMEDIATE_DIR)/media/jni/media_player_listener_jni.h',
               ],
               'action': [
-                'python',
+                'python2',
                 '<(DEPTH)/base/android/jni_generator/jni_generator.py',
                 '-o',
                 '<@(_inputs)',
diff -Naur node-v11.15.0-orig/tools/gyp/tools/graphviz.py node-v11.15.0/tools/gyp/tools/graphviz.py
--- node-v11.15.0-orig/tools/gyp/tools/graphviz.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/tools/graphviz.py	2019-06-27 13:17:09.666508400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2011 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/tools/pretty_gyp.py node-v11.15.0/tools/gyp/tools/pretty_gyp.py
--- node-v11.15.0-orig/tools/gyp/tools/pretty_gyp.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/tools/pretty_gyp.py	2019-06-27 13:17:09.696508400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/tools/pretty_sln.py node-v11.15.0/tools/gyp/tools/pretty_sln.py
--- node-v11.15.0-orig/tools/gyp/tools/pretty_sln.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/tools/pretty_sln.py	2019-06-27 13:17:09.721508500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp/tools/pretty_vcproj.py node-v11.15.0/tools/gyp/tools/pretty_vcproj.py
--- node-v11.15.0-orig/tools/gyp/tools/pretty_vcproj.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/tools/pretty_vcproj.py	2019-06-27 13:17:09.751508500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2012 Google Inc. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff -Naur node-v11.15.0-orig/tools/gyp_node.py node-v11.15.0/tools/gyp_node.py
--- node-v11.15.0-orig/tools/gyp_node.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp_node.py	2019-06-27 13:17:09.891508700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 from __future__ import print_function
 import os
 import sys
diff -Naur node-v11.15.0-orig/tools/icu/icu-generic.gyp node-v11.15.0/tools/icu/icu-generic.gyp
--- node-v11.15.0-orig/tools/icu/icu-generic.gyp	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/icu/icu-generic.gyp	2019-06-27 13:17:09.946508800 +0300
@@ -240,7 +240,7 @@
                   'msvs_quote_cmd': 0,
                   'inputs': [ '<(icu_data_in)', 'icu_small.json' ],
                   'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/icutmp/icudt<(icu_ver_major)<(icu_endianness).dat' ],
-                  'action': [ 'python',
+                  'action': [ 'python2',
                               'icutrim.py',
                               '-P', '<(PRODUCT_DIR)/.', # '.' suffix is a workaround against GYP assumptions :(
                               '-D', '<(icu_data_in)',
@@ -322,7 +322,7 @@
                   'action_name': 'icutrim',
                   'inputs': [ '<(icu_data_in)', 'icu_small.json' ],
                   'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/icutmp/icudt<(icu_ver_major)<(icu_endianness).dat' ],
-                  'action': [ 'python',
+                  'action': [ 'python2',
                               'icutrim.py',
                               '-P', '<(PRODUCT_DIR)',
                               '-D', '<(icu_data_in)',
diff -Naur node-v11.15.0-orig/tools/icu/icutrim.py node-v11.15.0/tools/icu/icutrim.py
--- node-v11.15.0-orig/tools/icu/icutrim.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/icu/icutrim.py	2019-06-27 13:17:10.031508900 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 #
 # Copyright (C) 2014 IBM Corporation and Others. All Rights Reserved.
 #
diff -Naur node-v11.15.0-orig/tools/icu/shrink-icu-src.py node-v11.15.0/tools/icu/shrink-icu-src.py
--- node-v11.15.0-orig/tools/icu/shrink-icu-src.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/icu/shrink-icu-src.py	2019-06-27 13:17:10.316509300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 from __future__ import print_function
 import optparse
 import os
diff -Naur node-v11.15.0-orig/tools/inspector_protocol/check_protocol_compatibility.py node-v11.15.0/tools/inspector_protocol/check_protocol_compatibility.py
--- node-v11.15.0-orig/tools/inspector_protocol/check_protocol_compatibility.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/inspector_protocol/check_protocol_compatibility.py	2019-06-27 13:17:10.346509300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright (c) 2011 Google Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/tools/inspector_protocol/code_generator.py node-v11.15.0/tools/inspector_protocol/code_generator.py
--- node-v11.15.0-orig/tools/inspector_protocol/code_generator.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/inspector_protocol/code_generator.py	2019-06-27 13:17:10.376509400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/inspector_protocol/concatenate_protocols.py node-v11.15.0/tools/inspector_protocol/concatenate_protocols.py
--- node-v11.15.0-orig/tools/inspector_protocol/concatenate_protocols.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/inspector_protocol/concatenate_protocols.py	2019-06-27 13:17:10.406509400 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2016 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/inspector_protocol/convert_protocol_to_json.py node-v11.15.0/tools/inspector_protocol/convert_protocol_to_json.py
--- node-v11.15.0-orig/tools/inspector_protocol/convert_protocol_to_json.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/inspector_protocol/convert_protocol_to_json.py	2019-06-27 13:17:10.431509500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 # Copyright 2017 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff -Naur node-v11.15.0-orig/tools/install.py node-v11.15.0/tools/install.py
--- node-v11.15.0-orig/tools/install.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/install.py	2019-06-27 13:17:11.356510800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 from __future__ import print_function
 import ast
diff -Naur node-v11.15.0-orig/tools/js2c.py node-v11.15.0/tools/js2c.py
--- node-v11.15.0-orig/tools/js2c.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/js2c.py	2019-06-27 13:17:12.411512200 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2006-2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/tools/mkssldef.py node-v11.15.0/tools/mkssldef.py
--- node-v11.15.0-orig/tools/mkssldef.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/mkssldef.py	2019-06-27 13:17:13.176513300 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 from __future__ import print_function
 import re
diff -Naur node-v11.15.0-orig/tools/run-valgrind.py node-v11.15.0/tools/run-valgrind.py
--- node-v11.15.0-orig/tools/run-valgrind.py	2019-04-30 20:31:55.000000000 +0300
+++ node-v11.15.0/tools/run-valgrind.py	2019-06-27 13:17:14.051514500 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2009 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
diff -Naur node-v11.15.0-orig/tools/specialize_node_d.py node-v11.15.0/tools/specialize_node_d.py
--- node-v11.15.0-orig/tools/specialize_node_d.py	2019-04-30 20:31:55.000000000 +0300
+++ node-v11.15.0/tools/specialize_node_d.py	2019-06-27 13:17:14.136514700 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 #
 # specialize_node_d.py output_file src/node.d flavor arch
diff -Naur node-v11.15.0-orig/tools/test.py node-v11.15.0/tools/test.py
--- node-v11.15.0-orig/tools/test.py	2019-04-30 20:31:55.000000000 +0300
+++ node-v11.15.0/tools/test.py	2019-06-27 13:17:14.231514800 +0300
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 #
 # Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
