Program Structure hc_cry.go
===========================

Main Files and Directories:
---------------------------

- hc_cry.go: This is the source code containing the main() 
function, the application's entry point.

- m209/v3/m209.go: This package implements a simplified 
version (adapted for cryptanalysis) of my M-209 simulator.

- hc_score/hc_score.go: This package contains the 
implementation of the Fitness function. The algorithm used 
by George Lasry only uses the sum of the logarithms of the 
letters.

- neighborsLugs: This package contains the transformations 
that calculate Lug configurations close to a randomly 
generated configuration.

- neighborsLugs: This package contains the transformations 
that calculate Lug configurations close to a randomly 
generated configuration. 

- neighborsPins: This package contains the transformations 
that calculate pins configurations close to a randomly 
generated configuration.

- manual: This package contains the functions which 
initialize the Pins & Lugs. They are dependant of the 
version of the manual or the usage exclusively of Lugs
(withour overlaps). Functions are provides for verify
if any lugs configuration is compliant with a version
of a manual.

- DOCS: The directory containing the documentation.

- STATS: The directory containing the probabilities of 
monograms (or unigrams), bigrams, etc.

- MSGS: It is recommended to use this directory to store 
messages (cryptograms, plain text, examples, etc.)

The hc_cry.go file: Implements G. Lasry's algorithm.
-----------------------------------------------------
This file includes the following functions:

- SA_inner() implements the procedure of the same name 
which, given a LUGS configuration, finds the best pins 
configuration (BestPins).

- `main()` is the entry point of a Go application.
The `main()` function performs the following operations:

1 - It manages the various options (see manual)
2 - It reads the cryptogram from standard input
3 - It instantiates an m209 machine. It also initializes 
    the `fitness` function.
4 - It activates the `HC_outer` procedure in the form of 
    a loop that is repeated several times (a Shutgun 
    approach to Hill Climbing). Within this loop, the 
   `SA_inner()` procedure is called.


WARNING! 
========
I haven't been able to implement George Lasry's 
algorithm correctly :-(
