Fixed shebang line in some python scripts, added .txt files, and scripts/configure now installs natsort
diff --git a/common/cace.py b/common/cace.py
index cc4719b..9de1a7e 100755
--- a/common/cace.py
+++ b/common/cace.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3 -B
+#!/usr/bin/env -S python3 -B
 #
 #--------------------------------------------------------
 # Project Manager GUI.
diff --git a/common/cace_datasheet_upload.py b/common/cace_datasheet_upload.py
index 5e9465d..7c6b019 100755
--- a/common/cace_datasheet_upload.py
+++ b/common/cace_datasheet_upload.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3 -B
+#!/usr/bin/env -S python3 -B
 #
 # cace_datasheet_upload.py
 #
diff --git a/common/characterize_help.txt b/common/characterize_help.txt
new file mode 100644
index 0000000..8d4b205
--- /dev/null
+++ b/common/characterize_help.txt
@@ -0,0 +1,60 @@
+1.
+Selecting a datasheet
+-------
+Start by selecting a datasheet.  This step is only necessary if the application is started from the command line.  If started from the project manager, then it can only be run if a datasheet exists for the project, in which case that datasheet is automatically loaded.
+
+If running from the command line, there is a button at the top with the text 'Datasheet:' and '(no selection)'. Push this button to get a file browser.  Find a project datasheet, which is a JSON (.json) file.  A challenge datasheet should be found in the design folder for each accepted challenge.  The project design folders are in the 'design' subfolder in the user's home directory.  The challenge datasheet has the name of the project and the file extension '.json'.
+
+When the JSON file is selected, a full display should be shown with each electrical parameter critical to the challenge, and its status.
+.
+2.
+Characterization
+------------
+The purpose of the characterization tool is to check the netlist against the official characterization specification for a challenge.  The tool allows a quick check of the circuit design against the datasheet values, and presents a summary of results to the user.  The purpose of these simulations is to see whether or not the design will pass or fail the challenge.  Details from these simulations are limited to the characterization values.  They are not intended to replace the simulations done in the normal course of a circuit design.
+
+The list of electrical parameters will vary by challenge.  However, each electrical paramater has a common set of properties that are listed in columns across the window.  These are:
+
+(1) "Electrical Parameter" --- The name of the electrical parameter.
+(2) "Method" --- The method corresponds to a netlist filename with the same name as the method and the extension ".spi" (SPICE netlist) that can be found in the "testbench" folder of the project, a folder whose contents are imported along with the challenge.  The testbench netlists are in a special format that allows them to be altered by substitution for a specific challenge measurement.  Any user changes to these testbench files risks making the files unusable or invalidating the simulation result.
+(3) "Min" --- The minimum limit (if any) of the electrical parameter.  After simulation, also shows the measured result of the circuit.
+(4) "Typ" --- The typical value (if any) of the electrical parameter.  After simulation, also shows the measured result of the circuit.
+(5) "Max" --- The maximum limit (if any) of the electrical parameter.  After simulation, also shows the measured result of the circuit.
+(6) "Status" --- Is one of "(not simulated)" if the circuit has not yet been simulated, "(in progress)" if the simulation is ongoing;  "pass" if the circuit has been simulated and passed the specification for the eletrical parameter, and "fail" if it failed the specification.   If the status is "pass" or "fail", this entry is a button that can be pressed to see a detailed view of the results.
+(7) "Simulate" --- This is a button that will initiate an ngspice simulation of the electrical parameter.
+
+At the bottom of the window is a space for program messages, warnings, and errors.  Below that is a button bar with the following buttons:
+
+"Quit" --- Quits the characterization tool.  If new results have been simulated but not saved, the user will have to respond to a prompt.
+
+"Save" --- Saves the current characterization results.  These results will be loaded the next time the characterization tool is run, unless there is a design netlist newer than the saved results.
+
+"Help" --- Activates this help window.
+
+"Submit" --- Lets the user submit the design to the Marketplace for characterization.  If any parameters have not been simulated, or if there are simulation failures, then the user is prompted for a response and strongly warned against submitting.
+
+2.1
+Generating a netlist
+-------
+Design your project schematic in Electric and generate a netlist.  See the project manager help text and the Electric user manual for details.  The netlist is generated from the Electric menu "Tools"->"Simulation (Spice)"->"Write CDL Deck".
+
+2.2
+Simulation
+-------
+To simulate a single electrical parameter, click the 'Simulate' button for each electrical parameter.  This will combine the design netlist with a testbench and simulate using ngspice.  While ngspice is running, 
+
+2.3
+Results
+--------
+Every electrical parameter is specified over a range of conditions.  This results in a series of simulations, usually one simulation run per unique set of conditions.  Each simulation typically provides one result value, and the set of all values from all simulated conditions is used to find the minimum, typical, and maximum results that are printed on the main characterization page.
+
+When an electrical parameter has finished simulating, clicking on the "Status" entry will generate a window showing details of the simulation.  The window has one line per unique set of conditions simulated.  For each line, the result value is given in the leftmost column.  The remaining columns show each variable condition, and the value it had for the given simulation.  The top of the column shows the range of values for the given parameter.  This graph allows the user to quickly determine what are the conditions under which a circuit may be failing, and the degree to which the value is out of range of the specification.  Rows in which the result is outside of the specified limit are shown in red.
+
+In the results window, click on the title 'Results' to change the view from having results ordered highest to lowest, to lowest to highest.
+
+2.4
+Challenge Submission
+--------
+When all electrical parameters have a status of 'Pass' or 'Done', then the design may be submitted to the efabless marketplace with the 'Submit' button.  The 'Submit' will happen without further prompt if the circuit has been simulated and all electrical parameters have passed.  If simulations are missing, or if simulations have failed, this will not prevent a submission, but the user will be prompted for confirmation and given a warning about the missing or failed simulations.
+
+Once a design is submitted, the 'Submit' button is replaced with a 'Cancel' button, allowing the submission to be canceled at any time prior to completion.  The characterization simulations are done on a remote server, but the designer can keep track of the progress on a progress bar shown at the bottom of the window.  Once the characterization is complete, the progress bar is removed and the button returns to being a 'Submit' button.  At that point, the designer can go to the efabless website and click on 'CACE results'.  The characterization results are in a list, and can be identified by project name and simulation date and time.  Click on the 'Details' button next to each one to view the datasheet values, which should match those from the local simulations.
+.
diff --git a/common/lvs_help.txt b/common/lvs_help.txt
new file mode 100644
index 0000000..cb7b9ec
--- /dev/null
+++ b/common/lvs_help.txt
@@ -0,0 +1,5 @@
+1.
+Selecting a project
+-------
+Start by selecting a project.  This step is only necessary if the application is started from the command line.  If started from the project manager, then it can only be run if a project was selected.
+.
diff --git a/common/make_icon_from_soft.py b/common/make_icon_from_soft.py
index 141abe9..2323646 100644
--- a/common/make_icon_from_soft.py
+++ b/common/make_icon_from_soft.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3 -B
+#!/usr/bin/env -S python3 -B
 #--------------------------------------------------------
 # make_icon_from_soft.py --
 #
diff --git a/common/manager_help.txt b/common/manager_help.txt
new file mode 100644
index 0000000..e79f28c
--- /dev/null
+++ b/common/manager_help.txt
@@ -0,0 +1,108 @@
+1.
+Open Galaxy
+------------
+Welcome to Open Galaxy, the efabless.com platform for analog and digital integrated circuit design.  Open Galaxy is a cluster of CentOS virtual machines set up with applications for creating circuit schematics and layout, and running circuit simulations, verification, and characterization.  This is where efabless.com users go to design and test their circuits before placing them in the efabless Marketplace, or submitting them to a circuit design challenge.
+
+Help is always available on the efabless.com website.  Just go to the dashboard, then select 'Learn and Practice'.  The select from the menu 'Community', then 'Knowledge Base'.
+
+1.1
+Open Galaxy Project Manager
+------------
+This application is the project manager for Open Galaxy.  It can be used to handle imported files and challenges from the efabless.com Marketplace, create new circuit design projects and set them up for the design flow, and launch the various applications for circuit design and layout.
+
+1.2
+The Project Manager Window
+--------------
+The Open Galaxy Project Manager consists of four main windows.  From top to bottom, these are:
+(1) User information, showing the user's log-in name on the efabless.com website;
+(2) Projects Window
+(3) Imports Window
+(4) Message window with any messages reported by the system.
+
+1.3
+The Projects Window
+--------------
+The Projects window shows all of the subfolders of the user's 'design' folder.  To select a project as the 'current project', just click on the line in the projects window, and the current project will be highlighted.
+
+There are three columns shown in the projects window:
+
+(1) The name of the project.  This is determined by the 'ip-name' given in the project's JSON file, if it has one;  otherwise, it is the name of the sub-folder.
+(2) The full path to the project.
+(3) The PDK (process design kit) assigned to the project, if any.
+
+Below the display of project names is a row of buttons:
+
+"Delete":  Deletes an entire project from the project folder.  Use this with caution.  To prevent accidental deletion, the user must confirm the delete in a popup window by selecting a checkbox and then clicking 'Okay'.
+
+"Create":  Creates a new project and seeds it with a basic setup for project work.  The user is prompted for a project name as well as a PDK to apply to the project.  The project setup includes links to the PDK for schematic entry, which makes the PDK components available to the user for building schematics.  When there are no projects in the user's project folder, this is the only button available.
+
+"Copy":  Copies an entire project into a new project space.  The user is prompted for a name for the new project.  The new project retains the PDK of the original, as well as all files.  However, by default, simulation results and schematic tool preferences are not copied into the new project.  Either of these can be overridden by selecting the appropriate checkbox in the copy project dialog.
+
+"Clean":  Removes all simulation data from a project.  This cleans up the large files typically produced during simulations.  It does not affect any other files in the project.
+
+A second row of buttons is for launching applications for creating a design.
+
+"Edit Schematic":  Starts the 'Electric' schematic editor.
+
+"Edit Layout":  This button is active only if the PDK supports layout.  It starts the 'Magic' layout editor.
+
+"Characterize":  Starts the characterization tool, which runs local simulations on a netlist defined by a challenge, and allows a completed and simulated design to be submitted to the challenge.  The characterization application has its own help window.
+
+1.4
+The Imports Window
+--------------
+The Imports window shows all of the items in the 'import' subfolder of the user's 'design' folder.  This location is where all items imported into Open Galaxy from the efabless Marketplace show up, including accepted challenges, netlists from 'IP Upload', and netlists from the cloudv service.  When a file is in the import folder, three buttons are shown below the imports window:
+
+(1) "Import As" will move the file from the import folder to a project.  If the import is from a challenge, then the PDK is specified, as is the project name.  The import will happen automatically unless there is already a project by the same name, in which case there will be a prompt for a new name.  If the import is a simple netlist, then a project name and PDK will be requested, and a new project will be created for the netlist file.
+
+(2) "Import Into" will move the file, if it is a simple netlist, into an existing project.  If the import represents an entire project, for example, a challenge, then this button behaves the same as "Import As".
+
+(3) "Delete" will remove a file from the import folder.
+
+When a file is successfully transferred from the import folder to a project, it is removed from the import folder.
+
+2.
+Files and Folders
+----------
+The users's primary workspace
+
+2.1
+User account
+------------
+The user is given an Open Galaxy account which has a randomly assigned username unique to the user.  When running the project manager or characterization tools, the user's efabless account login name will be queried and displayed.  However, the actual home directory of the user is in the file system path '/home/username', whre 'username' is the unique Open Galaxy assigned name;  and the workspace is in the sub-folder 'design/' of the home directory.  Projects are all sub-folders of the 'design/' path.
+
+2.2
+Project
+----------
+A project folder generally contains the following:
+(1) A JSON file that describes the project.  This file is required for challenges and should not be modified by the user, or else it may become impossible to upload the project.
+(2) Subfolder "elec", where all data used by the 'Electric' schematic editor are found.
+(3) Subfolder "spi", where the netlisted output of a schematic is placed.  A challenge design must be netlisted and its netlist placed in this folder before a challenge can be characterized or submitted to the challenge.
+(4) Subfolder "ngspice", where simulation data are placed.
+(5) Subfolder "testbench", where netlists used by the characterization are found.  These netlists are downloaded with the rest of the challenge data when the challenge is accepted.  The user may alter the netlists, but doing so may result in different simulation results than are used to judge the challenge submissions.
+(6) Subfolder "mag", where layout data are placed when editing layout.
+
+3.
+Challenges
+-----------
+A major aspect of the efabless platform is the Challenge, a way to encourage the generation of IP for the Marketplace by having a contest to create some specific design.  The Challenge is based on a Datasheet, which contains all the information about the critical properties and limits of a circuit.  Challenges are issued from time to time on the efabless website.
+
+To participate in a Challenge, go to the efabless website and log in as an efabless user.  Navigate to the Marketplace.  There you should see an icon labeled 'Open Challenges'.  Click on this icon to navigate to the Challenges page.
+
+On the Challenges page, scroll to the bottom of the page to find a list of "Open Projects".  Clock on the Project Title to see what the challenge is about.  To join the challenge, simply click on "Apply" next to the challenge.  This will bring up a complete view of the challenge.  Click "Accept" to accept the challenge, and finally, "Confirm" to accept the terms and conditions of the challenge.  This final step will initiate a download of challenge files into your Open Galaxy workspace.
+
+3.1
+Importing a Challenge
+-----------
+After a challenge has been accepted in the marketplace, a new entry will appear in 'Imports' containing the files needed to start the challenge design.  Select the project and press the 'Import' button to create and populate your design folder with the new project.  The new project will then appear under the 'Projects' list.  The new project will be set up with the PDK (process design kit) specified for the challenge, and will already contain a schematic symbol for the project circuit showing all of the required pins.
+
+3.2
+Creating a Challenge Design
+------------
+The first step of creating a challenge design is to select the challenge project in the Projects window, and click on "Edit Schematic" to start the "Electric" schematic editor.  The editor should immediately display the symbol of the challenge circuit.  This symbol has all the pins of the challenge device, and should not be altered.  Create a new schematic to match the symbol by selecting "View"->"Create Schematic View" in the menu.  Components of the PDK are available in the "Components" tab on the left.  For information about using Electric to edit a schematic, refer to the Electric "Help" menu.
+
+3.3
+Simulating a Challenge
+----------------
+The user has all the resources of Electric to simulate and display results.  Refer to the Electric user manual in the "Help" menu of Electric.  However, the user will want to know how the circuit behaves relative to the specifications required by the challenge.  To do this, first create a netlist of the schematic in Electric using menu selection "Tools"->"Simulation (Spice)"->"Write CDL Deck".  Once the netlist is written, the user may return to the project manager and click the "Characterize" button.  Note that the "Characterize" button is disabled unless both the challenge's project JSON file and the netlist file created from Electric exist.  For information on using the Open Galaxy characterization application, see the help text in the application.
+.
diff --git a/common/project_manager.py b/common/project_manager.py
index e6aae10..c07ffb3 100755
--- a/common/project_manager.py
+++ b/common/project_manager.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3 -B
+#!/usr/bin/env -S python3 -B
 #
 #--------------------------------------------------------
 # Open Galaxy Project Manager GUI.
diff --git a/common/qflow_help.txt b/common/qflow_help.txt
new file mode 100644
index 0000000..cb7b9ec
--- /dev/null
+++ b/common/qflow_help.txt
@@ -0,0 +1,5 @@
+1.
+Selecting a project
+-------
+Start by selecting a project.  This step is only necessary if the application is started from the command line.  If started from the project manager, then it can only be run if a project was selected.
+.
diff --git a/common/rename_project.py b/common/rename_project.py
index d21d462..01ccf0b 100755
--- a/common/rename_project.py
+++ b/common/rename_project.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3 -B
+#!/usr/bin/env -S python3 -B
 #
 # rename_project.py ---  Perform all tasks required for renaming a project.
 #
diff --git a/common/requirements.txt b/common/requirements.txt
new file mode 100644
index 0000000..d4fbc66
--- /dev/null
+++ b/common/requirements.txt
@@ -0,0 +1,11 @@
+Werkzeug==0.11.10
+aniso8601==1.1.0
+click==6.6
+matplotlib==0.99.1.1
+numpy==1.4.1
+pyparsing==1.5.6
+python-dateutil==2.5.3
+requests==2.10.0
+six==1.10.0
+virtualenv==15.0.2
+watchdog==0.8.3
diff --git a/scripts/configure b/scripts/configure
index 586e2d6..792ece4 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -1917,7 +1917,9 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
 $as_echo "$am_cv_python_version" >&6; }
   PYTHON_VERSION=$am_cv_python_version
-
+  if (( $(echo "$PYTHON_VERSION > 3" |bc -l) )); then
+    pip3 install natsort
+  fi
 
 
   PYTHON_PREFIX='${prefix}'