├── files
├── etc
│ ├── sudoers.d
│ │ └── ide50
│ ├── php5
│ │ └── mods-available
│ │ │ └── cs50.ini
│ ├── bash_completion.d
│ │ └── make
│ ├── apache2
│ │ └── conf-available
│ │ │ └── cs50-template.conf
│ └── profile.d
│ │ └── ide50.sh
├── home
│ ├── cs50
│ │ ├── pset5
│ │ │ ├── dictionaries
│ │ │ │ └── small
│ │ │ ├── speller
│ │ │ ├── texts
│ │ │ │ ├── hugo.txt
│ │ │ │ ├── holmes.txt
│ │ │ │ ├── xueqin2.txt
│ │ │ │ ├── christmas.txt
│ │ │ │ ├── sherlock.txt
│ │ │ │ ├── austinpowers.txt
│ │ │ │ ├── ralph.txt
│ │ │ │ ├── pneumonoultramicroscopicsilicovolcanoconiosis.txt
│ │ │ │ ├── quote.txt
│ │ │ │ ├── daffodils.txt
│ │ │ │ ├── men.txt
│ │ │ │ └── witch.txt
│ │ │ ├── keys
│ │ │ │ ├── quote.txt
│ │ │ │ ├── daffodils.txt
│ │ │ │ ├── ralph.txt
│ │ │ │ ├── pneumonoultramicroscopicsilicovolcanoconiosis.txt
│ │ │ │ ├── men.txt
│ │ │ │ ├── witch.txt
│ │ │ │ ├── constitution.txt
│ │ │ │ ├── package.txt
│ │ │ │ ├── alice.txt
│ │ │ │ ├── wonderland.txt
│ │ │ │ ├── christmas.txt
│ │ │ │ ├── austinpowers.txt
│ │ │ │ ├── grimm.txt
│ │ │ │ ├── sherlock.txt
│ │ │ │ ├── federalist.txt
│ │ │ │ ├── tom.txt
│ │ │ │ └── prince.txt
│ │ │ └── challenge
│ │ ├── pset1
│ │ │ ├── cash
│ │ │ ├── greedy
│ │ │ ├── hello
│ │ │ ├── mario
│ │ │ └── water
│ │ ├── pset3
│ │ │ ├── find
│ │ │ ├── peek
│ │ │ ├── fifteen
│ │ │ ├── notes
│ │ │ ├── resize
│ │ │ ├── synthesize
│ │ │ ├── 3x3.txt
│ │ │ └── 4x4.txt
│ │ ├── pset4
│ │ │ ├── peek
│ │ │ ├── resize
│ │ │ └── speller
│ │ ├── unit1
│ │ │ ├── cash
│ │ │ ├── isbn
│ │ │ ├── chart
│ │ │ ├── credit
│ │ │ ├── hello
│ │ │ ├── pennies
│ │ │ ├── skittles
│ │ │ ├── fahrenheit
│ │ │ └── mario
│ │ │ │ ├── less
│ │ │ │ └── more
│ │ ├── unit2
│ │ │ ├── calc
│ │ │ ├── caesar
│ │ │ ├── hello
│ │ │ ├── pennies
│ │ │ ├── vigenere
│ │ │ ├── devigenere
│ │ │ ├── fahrenheit
│ │ │ └── initials
│ │ │ │ ├── less
│ │ │ │ └── more
│ │ ├── unit3
│ │ │ ├── race
│ │ │ ├── rng
│ │ │ ├── seek
│ │ │ ├── fifteen
│ │ │ ├── find
│ │ │ │ ├── less
│ │ │ │ └── more
│ │ │ ├── scramble
│ │ │ ├── fifteen-solver
│ │ │ ├── 3x3.txt
│ │ │ └── 4x4.txt
│ │ ├── unit4
│ │ │ ├── peek
│ │ │ ├── finder
│ │ │ ├── notes
│ │ │ ├── resize
│ │ │ ├── scale
│ │ │ ├── shrink
│ │ │ ├── sudoku
│ │ │ ├── scramble
│ │ │ └── synthesize
│ │ ├── hacker1
│ │ │ ├── mario
│ │ │ └── credit
│ │ ├── hacker3
│ │ │ ├── find
│ │ │ ├── peek
│ │ │ ├── fifteen
│ │ │ └── resize
│ │ ├── hacker4
│ │ │ ├── peek
│ │ │ └── resize
│ │ ├── pset2
│ │ │ ├── caesar
│ │ │ ├── initials
│ │ │ ├── vigenere
│ │ │ └── devigenere
│ │ ├── pset6
│ │ │ ├── server
│ │ │ ├── bleep.pyc
│ │ │ ├── hello.pyc
│ │ │ ├── smile.pyc
│ │ │ ├── analyzer.pyc
│ │ │ ├── compare.pyc
│ │ │ ├── helpers.pyc
│ │ │ ├── tweets.pyc
│ │ │ ├── less
│ │ │ │ ├── mario.pyc
│ │ │ │ ├── compare.pyc
│ │ │ │ ├── helpers.pyc
│ │ │ │ ├── compare
│ │ │ │ └── mario
│ │ │ ├── more
│ │ │ │ ├── mario.pyc
│ │ │ │ ├── score.pyc
│ │ │ │ ├── helpers.pyc
│ │ │ │ ├── score
│ │ │ │ └── mario
│ │ │ ├── helpers_compare.pyc
│ │ │ ├── compare
│ │ │ ├── bleep
│ │ │ ├── hello
│ │ │ ├── smile
│ │ │ └── tweets
│ │ ├── unit5
│ │ │ ├── cat.jpg
│ │ │ └── index.html
│ │ ├── unit6
│ │ │ ├── smile.pyc
│ │ │ ├── analyzer.pyc
│ │ │ ├── helpers.pyc
│ │ │ ├── tweets.pyc
│ │ │ ├── smile
│ │ │ └── tweets
│ │ └── hacker2
│ │ │ └── initials
│ └── ubuntu
│ │ ├── .pip
│ │ └── pip.config
│ │ ├── workspace
│ │ └── .eslintrc
│ │ ├── .cs50
│ │ ├── py_modules
│ │ │ └── pylint50.py
│ │ ├── prompt
│ │ └── bin
│ │ │ ├── http-server
│ │ │ └── flask
│ │ └── .vimrc
├── var
│ └── www
│ │ └── icons
│ │ └── favicon.ico
└── usr
│ └── bin
│ ├── username50
│ ├── version50
│ ├── password50
│ ├── hostname50
│ ├── decomment50
│ ├── apache50
│ ├── mysql50
│ └── backup50
├── .gitignore
├── .travis.yml
├── .travis
└── deb64
├── README.md
├── Makefile
├── postinst
└── update50
/files/etc/sudoers.d/ide50:
--------------------------------------------------------------------------------
1 | Defaults umask_override
2 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/dictionaries/small:
--------------------------------------------------------------------------------
1 | cat
2 | caterpillar
3 |
--------------------------------------------------------------------------------
/files/home/ubuntu/.pip/pip.config:
--------------------------------------------------------------------------------
1 | [global]
2 | target=/home/ubuntu/lib/python/site-packages
--------------------------------------------------------------------------------
/files/home/cs50/pset1/cash:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/cash
--------------------------------------------------------------------------------
/files/home/cs50/pset3/find:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/find
--------------------------------------------------------------------------------
/files/home/cs50/pset3/peek:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/peek
--------------------------------------------------------------------------------
/files/home/cs50/pset4/peek:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset4/peek
--------------------------------------------------------------------------------
/files/home/cs50/unit1/cash:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/cash
--------------------------------------------------------------------------------
/files/home/cs50/unit1/isbn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/isbn
--------------------------------------------------------------------------------
/files/home/cs50/unit2/calc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/calc
--------------------------------------------------------------------------------
/files/home/cs50/unit3/race:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/race
--------------------------------------------------------------------------------
/files/home/cs50/unit3/rng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/rng
--------------------------------------------------------------------------------
/files/home/cs50/unit3/seek:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/seek
--------------------------------------------------------------------------------
/files/home/cs50/unit4/peek:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/peek
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .bash_history
2 | .vim
3 | .viminfo
4 | *.deb
5 | files/var/c9sdk
6 | files/etc/version50
7 |
--------------------------------------------------------------------------------
/files/home/cs50/hacker1/mario:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker1/mario
--------------------------------------------------------------------------------
/files/home/cs50/hacker3/find:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/find
--------------------------------------------------------------------------------
/files/home/cs50/hacker3/peek:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/peek
--------------------------------------------------------------------------------
/files/home/cs50/hacker4/peek:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker4/peek
--------------------------------------------------------------------------------
/files/home/cs50/pset1/greedy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/greedy
--------------------------------------------------------------------------------
/files/home/cs50/pset1/hello:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/hello
--------------------------------------------------------------------------------
/files/home/cs50/pset1/mario:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/mario
--------------------------------------------------------------------------------
/files/home/cs50/pset1/water:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/water
--------------------------------------------------------------------------------
/files/home/cs50/pset2/caesar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/caesar
--------------------------------------------------------------------------------
/files/home/cs50/pset3/fifteen:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/fifteen
--------------------------------------------------------------------------------
/files/home/cs50/pset3/notes:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/notes
--------------------------------------------------------------------------------
/files/home/cs50/pset3/resize:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/resize
--------------------------------------------------------------------------------
/files/home/cs50/pset4/resize:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset4/resize
--------------------------------------------------------------------------------
/files/home/cs50/pset4/speller:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset4/speller
--------------------------------------------------------------------------------
/files/home/cs50/pset5/speller:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/speller
--------------------------------------------------------------------------------
/files/home/cs50/pset6/server:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/server
--------------------------------------------------------------------------------
/files/home/cs50/unit1/chart:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/chart
--------------------------------------------------------------------------------
/files/home/cs50/unit1/credit:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/credit
--------------------------------------------------------------------------------
/files/home/cs50/unit1/hello:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/hello
--------------------------------------------------------------------------------
/files/home/cs50/unit1/pennies:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/pennies
--------------------------------------------------------------------------------
/files/home/cs50/unit2/caesar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/caesar
--------------------------------------------------------------------------------
/files/home/cs50/unit2/hello:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/hello
--------------------------------------------------------------------------------
/files/home/cs50/unit2/pennies:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/pennies
--------------------------------------------------------------------------------
/files/home/cs50/unit3/fifteen:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/fifteen
--------------------------------------------------------------------------------
/files/home/cs50/unit4/finder:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/finder
--------------------------------------------------------------------------------
/files/home/cs50/unit4/notes:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/notes
--------------------------------------------------------------------------------
/files/home/cs50/unit4/resize:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/resize
--------------------------------------------------------------------------------
/files/home/cs50/unit4/scale:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/scale
--------------------------------------------------------------------------------
/files/home/cs50/unit4/shrink:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/shrink
--------------------------------------------------------------------------------
/files/home/cs50/unit4/sudoku:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/sudoku
--------------------------------------------------------------------------------
/files/home/cs50/unit5/cat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit5/cat.jpg
--------------------------------------------------------------------------------
/files/home/cs50/hacker1/credit:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker1/credit
--------------------------------------------------------------------------------
/files/home/cs50/hacker3/fifteen:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/fifteen
--------------------------------------------------------------------------------
/files/home/cs50/hacker3/resize:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/resize
--------------------------------------------------------------------------------
/files/home/cs50/hacker4/resize:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker4/resize
--------------------------------------------------------------------------------
/files/home/cs50/pset2/initials:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/initials
--------------------------------------------------------------------------------
/files/home/cs50/pset2/vigenere:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/vigenere
--------------------------------------------------------------------------------
/files/home/cs50/pset6/bleep.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/bleep.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/hello.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/hello.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/smile.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/smile.pyc
--------------------------------------------------------------------------------
/files/home/cs50/unit1/skittles:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/skittles
--------------------------------------------------------------------------------
/files/home/cs50/unit2/vigenere:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/vigenere
--------------------------------------------------------------------------------
/files/home/cs50/unit3/find/less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/find/less
--------------------------------------------------------------------------------
/files/home/cs50/unit3/find/more:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/find/more
--------------------------------------------------------------------------------
/files/home/cs50/unit3/scramble:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/scramble
--------------------------------------------------------------------------------
/files/home/cs50/unit4/scramble:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/scramble
--------------------------------------------------------------------------------
/files/home/cs50/unit6/smile.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/smile.pyc
--------------------------------------------------------------------------------
/files/var/www/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/var/www/icons/favicon.ico
--------------------------------------------------------------------------------
/files/home/cs50/hacker2/initials:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker2/initials
--------------------------------------------------------------------------------
/files/home/cs50/pset2/devigenere:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/devigenere
--------------------------------------------------------------------------------
/files/home/cs50/pset3/synthesize:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/synthesize
--------------------------------------------------------------------------------
/files/home/cs50/pset6/analyzer.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/analyzer.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/compare.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/compare.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/helpers.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/helpers.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/tweets.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/tweets.pyc
--------------------------------------------------------------------------------
/files/home/cs50/unit1/fahrenheit:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/fahrenheit
--------------------------------------------------------------------------------
/files/home/cs50/unit1/mario/less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/mario/less
--------------------------------------------------------------------------------
/files/home/cs50/unit1/mario/more:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/mario/more
--------------------------------------------------------------------------------
/files/home/cs50/unit2/devigenere:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/devigenere
--------------------------------------------------------------------------------
/files/home/cs50/unit2/fahrenheit:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/fahrenheit
--------------------------------------------------------------------------------
/files/home/cs50/unit4/synthesize:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/synthesize
--------------------------------------------------------------------------------
/files/home/cs50/unit6/analyzer.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/analyzer.pyc
--------------------------------------------------------------------------------
/files/home/cs50/unit6/helpers.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/helpers.pyc
--------------------------------------------------------------------------------
/files/home/cs50/unit6/tweets.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/tweets.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/hugo.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/hugo.txt
--------------------------------------------------------------------------------
/files/home/cs50/pset6/less/mario.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/less/mario.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/more/mario.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/more/mario.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/more/score.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/more/score.pyc
--------------------------------------------------------------------------------
/files/home/cs50/unit2/initials/less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/initials/less
--------------------------------------------------------------------------------
/files/home/cs50/unit2/initials/more:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/initials/more
--------------------------------------------------------------------------------
/files/home/cs50/unit3/fifteen-solver:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/fifteen-solver
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/holmes.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/holmes.txt
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/xueqin2.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/xueqin2.txt
--------------------------------------------------------------------------------
/files/home/cs50/pset6/less/compare.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/less/compare.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/less/helpers.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/less/helpers.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset6/more/helpers.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/more/helpers.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/christmas.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/christmas.txt
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/sherlock.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/sherlock.txt
--------------------------------------------------------------------------------
/files/home/cs50/pset6/helpers_compare.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/helpers_compare.pyc
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/austinpowers.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/austinpowers.txt
--------------------------------------------------------------------------------
/files/home/cs50/pset6/compare:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
3 | python3 "$DIR/compare.pyc" "$@"
4 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/more/score:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
3 | python3 "$DIR/score.pyc" "$@"
4 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/less/compare:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
3 | python3 "$DIR/compare.pyc" "$@"
4 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/ralph.txt:
--------------------------------------------------------------------------------
1 | When I grow up, I want to be a principal or a caterpillar. I love you Principal Skinner!
2 |
3 | -Ralph Wiggum
4 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/quote.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 |
5 | WORDS MISSPELLED: 0
6 | WORDS IN DICTIONARY: 143091
7 | WORDS IN TEXT: 117
8 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/daffodils.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 |
5 | WORDS MISSPELLED: 0
6 | WORDS IN DICTIONARY: 143091
7 | WORDS IN TEXT: 158
8 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/ralph.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | Wiggum
5 |
6 | WORDS MISSPELLED: 1
7 | WORDS IN DICTIONARY: 143091
8 | WORDS IN TEXT: 20
9 |
--------------------------------------------------------------------------------
/files/usr/bin/username50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | username=${C9_USER:0:16}
4 |
5 | if [ "$1" == "-n" ]; then
6 | echo -n $username
7 | else
8 | echo $username
9 | fi
--------------------------------------------------------------------------------
/files/etc/php5/mods-available/cs50.ini:
--------------------------------------------------------------------------------
1 | ; Display errors to STDOUT
2 | display_errors = On
3 |
4 | ; Overwrite c9 settings and set maxlifetime to 24 hours
5 | session.gc_maxlifetime = 86400
6 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/pneumonoultramicroscopicsilicovolcanoconiosis.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 |
5 | WORDS MISSPELLED: 0
6 | WORDS IN DICTIONARY: 143091
7 | WORDS IN TEXT: 20
8 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/men.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | street's
5 | Amennnn
6 | street's
7 |
8 | WORDS MISSPELLED: 3
9 | WORDS IN DICTIONARY: 143091
10 | WORDS IN TEXT: 298
11 |
--------------------------------------------------------------------------------
/files/home/ubuntu/workspace/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "node": true
5 | },
6 | "globals": {
7 | "$": true,
8 | "jQuery": true
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/files/usr/bin/version50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # determine version
4 | source /etc/version50 &> /dev/null
5 |
6 | if [ "$version" == "" ]; then
7 | declare version="unknown version"
8 | fi
9 |
10 | echo $version
11 |
--------------------------------------------------------------------------------
/files/home/cs50/unit5/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Happy Cat
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/pneumonoultramicroscopicsilicovolcanoconiosis.txt:
--------------------------------------------------------------------------------
1 | According to Merriam-Webster's Medical Dictionary,
2 | pneumonoultramicroscopicsilicovolcanoconiosis is a
3 | pneumoconiosis caused by inhalation of very fine
4 | silicate or quartz dust.
5 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/bleep:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile bleep.py
7 | # cd __pycache__/
8 | # mv bleep.cpython-36.pyc ../bleep.pyc
9 | python3 "$DIR/bleep.pyc" "$@"
10 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/hello:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile hello.py
7 | # cd __pycache__/
8 | # mv hello.cpython-36.pyc ../hello.pyc
9 | python3 "$DIR/hello.pyc" "$@"
10 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/less/mario:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile mario.py
7 | # cd __pycache__/
8 | # mv mario.cpython-36.pyc ../mario.pyc
9 | python3 "$DIR/mario.pyc" "$@"
10 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/more/mario:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile mario.py
7 | # cd __pycache__/
8 | # mv mario.cpython-36.pyc ../mario.pyc
9 | python3 "$DIR/mario.pyc" "$@"
10 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/smile:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile analyzer.py smile
7 | # cd __pycache__/
8 | # mv analyzer.cpython-34.pyc ../analyzer.pyc
9 | # mv smilecpython-34.pyc ../smile
10 | python3 "$DIR/smile.pyc" "$@"
11 |
--------------------------------------------------------------------------------
/files/home/cs50/unit6/smile:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile analyzer.py smile
7 | # cd __pycache__/
8 | # mv analyzer.cpython-34.pyc ../analyzer.pyc
9 | # mv smilecpython-34.pyc ../smile
10 | python3 "$DIR/smile.pyc" "$@"
11 |
--------------------------------------------------------------------------------
/files/home/cs50/pset6/tweets:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile helpers.py tweets
7 | # cd __pycache__/
8 | # mv helpers.cpython-34.pyc ../helpers.pyc
9 | # mv tweetscypthon-34.pyc ../tweets.pyc
10 | python3 "$DIR/tweets.pyc" "$@"
11 |
--------------------------------------------------------------------------------
/files/home/cs50/unit6/tweets:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # http://stackoverflow.com/a/246128
4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # python -m py_compile helpers.py tweets
7 | # cd __pycache__/
8 | # mv helpers.cpython-34.pyc ../helpers.pyc
9 | # mv tweetscypthon-34.pyc ../tweets.pyc
10 | python3 "$DIR/tweets.pyc" "$@"
11 |
--------------------------------------------------------------------------------
/files/home/cs50/pset3/3x3.txt:
--------------------------------------------------------------------------------
1 | 3
2 | 4
3 | 1
4 | 2
5 | 5
6 | 8
7 | 7
8 | 6
9 | 4
10 | 1
11 | 2
12 | 5
13 | 8
14 | 7
15 | 6
16 | 4
17 | 1
18 | 2
19 | 4
20 | 1
21 | 2
22 | 3
23 | 5
24 | 4
25 | 7
26 | 6
27 | 1
28 | 2
29 | 3
30 | 7
31 | 4
32 | 8
33 | 6
34 | 4
35 | 8
36 | 5
37 | 7
38 | 8
39 | 5
40 | 6
41 | 4
42 | 5
43 | 6
44 | 7
45 | 8
46 | 6
47 | 5
48 | 4
49 | 7
50 | 8
51 |
52 |
--------------------------------------------------------------------------------
/files/home/cs50/unit3/3x3.txt:
--------------------------------------------------------------------------------
1 | 3
2 | 4
3 | 1
4 | 2
5 | 5
6 | 8
7 | 7
8 | 6
9 | 4
10 | 1
11 | 2
12 | 5
13 | 8
14 | 7
15 | 6
16 | 4
17 | 1
18 | 2
19 | 4
20 | 1
21 | 2
22 | 3
23 | 5
24 | 4
25 | 7
26 | 6
27 | 1
28 | 2
29 | 3
30 | 7
31 | 4
32 | 8
33 | 6
34 | 4
35 | 8
36 | 5
37 | 7
38 | 8
39 | 5
40 | 6
41 | 4
42 | 5
43 | 6
44 | 7
45 | 8
46 | 6
47 | 5
48 | 4
49 | 7
50 | 8
51 |
52 |
--------------------------------------------------------------------------------
/files/home/ubuntu/.cs50/py_modules/pylint50.py:
--------------------------------------------------------------------------------
1 | from astroid import MANAGER
2 | from astroid import scoped_nodes
3 |
4 |
5 | def register(linter):
6 | pass
7 |
8 |
9 | def transform(cls):
10 | """ Stop pylint from complaining about cs50.SQL """
11 |
12 | if cls.name == 'cs50':
13 | import cs50
14 | cls.locals["SQL"] = [scoped_nodes.Class("SQL", None)]
15 |
16 | MANAGER.register_transform(scoped_nodes.Module, transform)
17 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/witch.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | BEDEVERE
5 | BEDEVERE
6 | BEDEVERE
7 | BEDEVERE
8 | BEDEVERE
9 | BEDEVERE
10 | BEDEVERE
11 | BEDEVERE
12 | BEDEVERE
13 | BEDEVERE
14 | BEDEVERE
15 | BEDEVERE
16 | B
17 | BEDEVERE
18 | BEDEVERE
19 | BEDEVERE
20 | Aah
21 | BEDEVERE
22 | BEDEVERE
23 | Uhhh
24 | Oooh
25 | BEDEVERE
26 | BEDEVERE
27 |
28 | WORDS MISSPELLED: 23
29 | WORDS IN DICTIONARY: 143091
30 | WORDS IN TEXT: 372
31 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 |
3 | before_install:
4 | - gem install fpm
5 | - pip install awscli
6 |
7 | script: make deb
8 |
9 | before_deploy:
10 | - aws s3 sync s3://mirror.cs50.net/ide50/ .travis/ide50/
11 | - echo -e $GPG_SECRET | gpg --import
12 | deploy:
13 | provider: script
14 | script: .travis/deb64
15 | skip_cleanup: true
16 | on:
17 | branch: master
18 | after_deploy: aws cloudfront create-invalidation --distribution-id "$MIRROR_DIST_ID" --paths "/ide50/*"
19 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/constitution.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | USConstitution
5 | http
6 | usconstitution
7 | const
8 | html
9 | tempore
10 | Impeachments
11 | Nays
12 | Nays
13 | repassed
14 | Piracies
15 | Felonies
16 | attainted
17 | Langdon
18 | Gilman
19 | Brearley
20 | Mifflin
21 | Clymer
22 | Fitzsimons
23 | Jared
24 | Gouvernour
25 | McHenry
26 | Jenifer
27 | Blount
28 | Spaight
29 | Cotesworth
30 | tempore
31 | tempore
32 | tempore
33 | tempore
34 |
35 | WORDS MISSPELLED: 30
36 | WORDS IN DICTIONARY: 143091
37 | WORDS IN TEXT: 7573
38 |
--------------------------------------------------------------------------------
/files/home/ubuntu/.cs50/prompt:
--------------------------------------------------------------------------------
1 | cwdSlashAtEnd () {
2 | TITLE="$(dirs +0)"
3 |
4 | if [ -z "$1" ] ; then
5 | # no argument, full cwd
6 | TITLE="${TITLE%/}"
7 | else
8 | # one arg, basename only
9 | TITLE="${TITLE##*/}"
10 | fi
11 |
12 | echo -n "${TITLE}/"
13 | }
14 |
15 | PS1='\[$(printf "\x0f")\033[01;34m\]$(cwdSlashAtEnd)\[\033[00m\]$(__git_ps1 " (%s)") $ '
16 |
17 | case "$TERM" in
18 | xterm-*|rxvt*|screen*)
19 | PS1='\[\e]0;\a\033k$(cwdSlashAtEnd base)\033\\\]'"$PS1"
20 | ;;
21 | *)
22 | ;;
23 | esac
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/quote.txt:
--------------------------------------------------------------------------------
1 | It is known that there are an infinite number of worlds, simply because there is an infinite amount of space for them to be in. However, not every one of them is inhabited. Therefore, there must be a finite number of inhabited worlds. Any finite number divided by infinity is as near to nothing as makes no odds, so the average population of all planets in the universe can be said to be zero. From this it follows that the population of the whole universe is zero, and that all people that you may meet from time to time are merely the products of a deranged imagination.
2 |
3 | -Douglas Adams - The Restaurant at the End of the Universe
4 |
--------------------------------------------------------------------------------
/files/etc/bash_completion.d/make:
--------------------------------------------------------------------------------
1 | # bash completion for make
2 |
3 | _make() {
4 | local cur
5 | COMPREPLY=()
6 | cur="${COMP_WORDS[COMP_CWORD]}"
7 | if [[ ${cur} != -* ]]; then
8 |
9 | # back up nullglob setting
10 | local glob=$(shopt -p nullglob)
11 |
12 | # no suggestion when no .c files exist
13 | shopt -s nullglob
14 |
15 | # complete C filenames without the .c extension
16 | COMPREPLY=( $(compgen -W "$(for f in *.c; do echo ${f%.c}; done)" -- ${cur}) )
17 |
18 | # restore nullglob setting
19 | eval "${glob}" &> /dev/null
20 | return 0
21 | fi
22 | }
23 |
24 | complete -F _make make
25 |
--------------------------------------------------------------------------------
/files/usr/bin/password50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | password_file=/home/ubuntu/.cs50/password
4 | if [ -f /home/ubuntu/.password50 ]; then
5 | mv /home/ubuntu/.password50 $password_file &> /dev/null
6 | fi
7 |
8 | create_password() {
9 | # generate 16 character alphanumeric password from urandom
10 | password="$(tr -dc [:alnum:] "$1"
14 | chmod 600 $password_file
15 |
16 | }
17 |
18 | if [ ! -f $password_file ]; then
19 | create_password $password_file
20 | fi
21 |
22 | source $password_file
23 |
24 | if [ "$1" == "-n" ]; then
25 | echo -n $password
26 | else
27 | echo $password
28 | fi
29 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/package.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | Crittenden
5 | Seinfeld
6 | Seinfeld
7 | Costanza
8 | Dreyfus
9 | Benes
10 | Benes
11 | Ohhhhhh
12 | Yesssss
13 | shi
14 | Seinfeld
15 | bombable
16 | bombable
17 | photog
18 | Leo's
19 | Kramer's
20 | Benes
21 | uh
22 | Benes
23 | Macardo
24 | Look's
25 | Zoutraph
26 | Resnick
27 | Resnick
28 | Kramer's
29 | Uh
30 | stokedness
31 | T
32 | Benes
33 | B
34 | e
35 | n
36 | e
37 | s
38 | uh
39 | uh
40 | Resnick's
41 | Resnick
42 | Resnick
43 | Resnick
44 | Poloma
45 | Resnick
46 | Resnick
47 | Resnick
48 | Poloma
49 | Shhhhhh
50 | Resnick's
51 | Resnick
52 | Resnick
53 | Resnick
54 | Resnick
55 | Seinfeld
56 | Bennette
57 | Benes
58 | Benes
59 | Vanostran
60 | Benes
61 | uh
62 | Hoffer
63 | Mandale
64 | Oohhhh
65 | Seinfeld
66 |
67 | WORDS MISSPELLED: 62
68 | WORDS IN DICTIONARY: 143091
69 | WORDS IN TEXT: 3161
70 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/daffodils.txt:
--------------------------------------------------------------------------------
1 | Daffodils
2 |
3 | I wandered lonely as a cloud
4 | That floats on high o'er vales and hills,
5 | When all at once I saw a crowd,
6 | A host, of golden daffodils;
7 | Beside the lake, beneath the trees,
8 | Fluttering and dancing in the breeze.
9 |
10 | Continuous as the stars that shine
11 | And twinkle on the milky way,
12 | They stretched in never-ending line
13 | Along the margin of a bay:
14 | Ten thousand saw I at a glance,
15 | Tossing their heads in sprightly dance.
16 |
17 | The waves beside them danced; but they
18 | Out-did the sparkling waves in glee:
19 | A poet could not but be gay,
20 | In such a jocund company:
21 | I gazed--and gazed--but little thought
22 | What wealth the show to me had brought:
23 |
24 | For oft, when on my couch I lie
25 | In vacant or in pensive mood,
26 | They flash upon that inward eye
27 | Which is the bliss of solitude;
28 | And then my heart with pleasure fills,
29 | And dances with the daffodils.
30 |
31 | -- William Wordsworth
32 |
33 |
--------------------------------------------------------------------------------
/files/home/cs50/pset3/4x4.txt:
--------------------------------------------------------------------------------
1 | 4
2 | 5
3 | 6
4 | 1
5 | 2
6 | 4
7 | 5
8 | 6
9 | 1
10 | 2
11 | 3
12 | 7
13 | 11
14 | 10
15 | 9
16 | 1
17 | 2
18 | 3
19 | 4
20 | 5
21 | 6
22 | 8
23 | 1
24 | 2
25 | 3
26 | 4
27 | 7
28 | 11
29 | 10
30 | 9
31 | 14
32 | 13
33 | 12
34 | 1
35 | 2
36 | 3
37 | 4
38 | 14
39 | 13
40 | 12
41 | 1
42 | 2
43 | 3
44 | 4
45 | 14
46 | 13
47 | 12
48 | 1
49 | 2
50 | 3
51 | 4
52 | 12
53 | 9
54 | 15
55 | 1
56 | 2
57 | 3
58 | 4
59 | 12
60 | 9
61 | 13
62 | 14
63 | 9
64 | 13
65 | 14
66 | 7
67 | 5
68 | 9
69 | 13
70 | 14
71 | 15
72 | 10
73 | 11
74 | 5
75 | 9
76 | 13
77 | 7
78 | 11
79 | 5
80 | 9
81 | 13
82 | 7
83 | 11
84 | 15
85 | 10
86 | 5
87 | 9
88 | 13
89 | 15
90 | 11
91 | 8
92 | 6
93 | 7
94 | 8
95 | 14
96 | 12
97 | 6
98 | 7
99 | 8
100 | 14
101 | 12
102 | 6
103 | 7
104 | 8
105 | 14
106 | 15
107 | 11
108 | 10
109 | 6
110 | 7
111 | 8
112 | 12
113 | 15
114 | 11
115 | 10
116 | 15
117 | 11
118 | 14
119 | 12
120 | 11
121 | 15
122 | 10
123 | 14
124 | 15
125 | 11
126 | 12
127 |
--------------------------------------------------------------------------------
/files/home/cs50/unit3/4x4.txt:
--------------------------------------------------------------------------------
1 | 4
2 | 5
3 | 6
4 | 1
5 | 2
6 | 4
7 | 5
8 | 6
9 | 1
10 | 2
11 | 3
12 | 7
13 | 11
14 | 10
15 | 9
16 | 1
17 | 2
18 | 3
19 | 4
20 | 5
21 | 6
22 | 8
23 | 1
24 | 2
25 | 3
26 | 4
27 | 7
28 | 11
29 | 10
30 | 9
31 | 14
32 | 13
33 | 12
34 | 1
35 | 2
36 | 3
37 | 4
38 | 14
39 | 13
40 | 12
41 | 1
42 | 2
43 | 3
44 | 4
45 | 14
46 | 13
47 | 12
48 | 1
49 | 2
50 | 3
51 | 4
52 | 12
53 | 9
54 | 15
55 | 1
56 | 2
57 | 3
58 | 4
59 | 12
60 | 9
61 | 13
62 | 14
63 | 9
64 | 13
65 | 14
66 | 7
67 | 5
68 | 9
69 | 13
70 | 14
71 | 15
72 | 10
73 | 11
74 | 5
75 | 9
76 | 13
77 | 7
78 | 11
79 | 5
80 | 9
81 | 13
82 | 7
83 | 11
84 | 15
85 | 10
86 | 5
87 | 9
88 | 13
89 | 15
90 | 11
91 | 8
92 | 6
93 | 7
94 | 8
95 | 14
96 | 12
97 | 6
98 | 7
99 | 8
100 | 14
101 | 12
102 | 6
103 | 7
104 | 8
105 | 14
106 | 15
107 | 11
108 | 10
109 | 6
110 | 7
111 | 8
112 | 12
113 | 15
114 | 11
115 | 10
116 | 15
117 | 11
118 | 14
119 | 12
120 | 11
121 | 15
122 | 10
123 | 14
124 | 15
125 | 11
126 | 12
127 |
--------------------------------------------------------------------------------
/.travis/deb64:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # fail on error
4 | set -e
5 |
6 | # packages root
7 | DEBPATH=".travis/ide50/2015/dists/trusty/main/binary-amd64"
8 |
9 | # move built deb to DEBPATH
10 | mv *amd64.deb $DEBPATH 2> /dev/null
11 | cd $DEBPATH
12 |
13 | # remove index files
14 | rm Release InRelease Release.gpg Packages Packages.gz
15 |
16 | # create Packages index (lists packages metadata)
17 | dpkg-scanpackages . > Packages
18 |
19 | # remove leading "./" from deb paths
20 | # https://wiki.debian.org/DebianRepository/Format?action=show&redirect=RepositoryFormat#Filename
21 | sed -i 's/\.\///g' Packages
22 |
23 | # create compressed version of Packages (used by some clients)
24 | gzip -9c Packages > Packages.gz
25 |
26 | # create Release file (contains indices checksums) and sign it
27 | # used by old clients
28 | apt-ftparchive release . > Release
29 | gpg --yes -abs -o Release.gpg Release
30 |
31 | # create InRelease (Release + text signature combined)
32 | # used by new clients
33 | gpg --yes --clearsign -o InRelease Release
34 |
35 | # upload new packages to mirror
36 | aws s3 sync $TRAVIS_BUILD_DIR/.travis/ide50/ s3://mirror.cs50.net/ide50/
37 |
--------------------------------------------------------------------------------
/files/usr/bin/hostname50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # parse command-line options
4 | while [ $# -gt 0 ]; do
5 | case "$1" in
6 |
7 | # whether to print $C9_PORT
8 | --c9-port)
9 | c9_port=1
10 |
11 | ;;
12 |
13 | # whether to print protocol
14 | --protocol)
15 | protocol=1
16 | ;;
17 | esac
18 |
19 | shift
20 | done
21 |
22 | # protocol should be http offline and https online
23 | if [ $protocol ]; then
24 | echo -n "http"
25 | if [ -z "${IDE_OFFLINE+x}" ];then
26 | echo -n "s"
27 | fi
28 |
29 | echo -n "://"
30 | fi
31 |
32 | if [ "${IDE_OFFLINE+x}" ]; then
33 | echo -n "${C9_HOSTNAME}"
34 | else
35 |
36 | # determine external host that IDE is running on to calculate app domain
37 | source /home/ubuntu/.cs50/stats/domain &> /dev/null
38 | if [ "$domain" == "" ]; then
39 |
40 | # assume hostname is cs50.io by default
41 | declare domain="cs50.io"
42 | elif [ "$domain" == "c9.io" ]; then
43 | domain="c9users.io"
44 | fi
45 |
46 | # remove .c9.io substring from C9_HOSTNAME and replace with domain
47 | echo -n "${C9_HOSTNAME%c9*.io}${domain}"
48 | fi
49 |
50 | # print C9_PORT when should
51 | if [ $c9_port ]; then
52 | echo ":${C9_PORT}"
53 | fi
54 |
55 |
--------------------------------------------------------------------------------
/files/etc/apache2/conf-available/cs50-template.conf:
--------------------------------------------------------------------------------
1 | # allow all overrides and options Require all granted
2 |
3 | AllowOverride All
4 | Options All
5 | Require all granted
6 |
7 |
8 | # VirtualHost will override httpd.conf defaults
9 |
10 | ServerName https://${C9_HOSTNAME}:443
11 |
12 | # get the server name from the Host: header
13 | UseCanonicalName Off
14 |
15 | # this log format can be split per-virtual-host based on the first field LogFormat "%V %h %l %u %t \"%r\" $
16 | # /home/ubuntu/logs/httpd/access_log vcommon ErrorLog /home/ubuntu/logs/httpd/error_log
17 | RewriteEngine On
18 |
19 | # for online instances: forward http to https
20 | RewriteCond %{HTTP:x-forwarded-proto} ^http$
21 | RewriteRule (.*) https://%{SERVER_NAME}$1 [R=301,L]
22 |
23 | # VirtualDocumentRoot http://httpd.apache.org/docs/2.2/vhosts/mass.html#simp$
24 | RewriteRule ^/favicon.ico$ /var/www/icons/favicon.ico [L]
25 |
26 | RewriteCond %{REQUEST_URI} !^/(icons|phpMyAdmin) [NC]
27 | RewriteCond %{REQUEST_URI} ^/(.*) [NC]
28 | RewriteRule ^/(.*)$ "/home/ubuntu/workspace/vhosts/$1" [L]
29 |
30 | RewriteCond %{REQUEST_URI} !^/(icons|phpMyAdmin) [NC]
31 | RewriteCond %{REQUEST_URI} ^/ [NC]
32 | RewriteRule ^/$ "/home/ubuntu/workspace/vhosts/" [L]
33 |
34 | # not production
35 | SetEnv APPLICATION_ENV dev
36 |
37 |
38 | ServerName https://${C9_HOSTNAME}
39 |
40 | # avoid favicon.ico errors in logs
41 | Alias /favicon.ico /var/www/icons/favicon.ico
--------------------------------------------------------------------------------
/files/home/ubuntu/.cs50/bin/http-server:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # default options
4 | a="-a 0.0.0.0"
5 | c="-c-1"
6 | cors="--cors"
7 | i="-i false"
8 | port="-p 8080"
9 | options="--no-dotfiles"
10 |
11 | # override default options
12 | while test ${#} -gt 0
13 | do
14 | if [[ "$1" =~ ^-a$ ]]; then
15 | a="$1 $2"
16 | shift
17 | shift
18 | elif [[ "$1" =~ ^-c-?[0-9]+$ ]]; then
19 | c="$1"
20 | shift
21 | elif [[ "$1" =~ ^--cors(=.*)?$ ]]; then
22 | cors="$1"
23 | shift
24 | elif [[ "$1" =~ ^-i$ ]]; then
25 | i="$1 $2"
26 | shift
27 | shift
28 | elif [[ "$1" =~ ^-p[^\s]+ ]]; then
29 | port="$1"
30 | shift
31 | elif [[ "$1" == "-p" ]]; then
32 | port="$1 $2"
33 | shift
34 | shift
35 | else
36 | options+=" $1"
37 | shift
38 | fi
39 | done
40 |
41 | # kill any process listing on the specified port
42 | # regex to handle -pxxxx, -p xxxx
43 | fuser --kill "${port//[^0-9]}/tcp" &> /dev/null
44 |
45 | # spawn http-server, retaining colorized output
46 | script --flush --quiet --return /dev/null --command "http-server $a $c $cors $i $port $options" |
47 | while IFS= read -r line
48 | do
49 | # rewrite address as hostname50
50 | if command -v hostname50 > /dev/null 2>&1 && [[ "$line" =~ "Available on:" ]]; then
51 | echo "$line"
52 | IFS= read -r line
53 | echo "$line" | sed "s#\(.*\)http://[^:]\+\(:.\+\)#\1$(hostname50 --protocol)\2#"
54 | while IFS= read -r line
55 | do
56 | if [[ "$line" =~ "Hit CTRL-C to stop the server" ]]; then
57 | echo "$line"
58 | break
59 | fi
60 | done
61 | else
62 | echo "$line"
63 | fi
64 | done
65 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/men.txt:
--------------------------------------------------------------------------------
1 | It's Raining Men
2 | by The Weather Girls
3 |
4 |
5 | Hi - Hi! We're your Weather Girls - Ah-huh -
6 | And have we got news for you - You better listen!
7 | Get ready, all you lonely girls
8 | and leave those umbrellas at home. - Alright! -
9 |
10 | Humidity is rising - Barometer's getting low
11 | According to all sources, the street's the place to go
12 | Cause tonight for the first time
13 | Just about half-past ten
14 | For the first time in history
15 | It's gonna start raining men.
16 |
17 | It's Raining Men! Hallelujah! - It's Raining Men! Amen!
18 | I'm gonna go out to run and let myself get
19 | Absolutely soaking wet!
20 | It's Raining Men! Hallelujah!
21 | It's Raining Men! Every Specimen!
22 | Tall, blonde, dark and lean
23 | Rough and tough and strong and mean
24 |
25 | God bless Mother Nature, she's a single woman too
26 | She took off to heaven and she did what she had to do
27 | She taught every angel to rearrange the sky
28 | So that each and every woman could find her perfect guy
29 | It's Raining Men! Hallelujah! - It's Raining Men! Amen!
30 | It's Raining Men! Hallelujah!
31 | It's Raining Men! Amennnn!
32 |
33 | I feel stormy weather / Moving in about to begin
34 | Hear the thunder / Don't you lose your head
35 | Rip off the roof and stay in bed
36 |
37 | God bless Mother Nature, she's a single woman too
38 | She took off to heaven and she did what she had to do
39 | She taught every angel to rearrange the sky
40 | So that each and every woman could find her perfect guy
41 | It's Raining Men! Yeah!
42 |
43 | Humidity is rising - Barometer's getting low
44 | According to all sources, the street's the place to go
45 | Cause tonight for the first time
46 | Just about half-past ten
47 | For the first time in history
48 | It's gonna start raining men.
49 |
50 | It's Raining Men! Hallelujah! - It's Raining Men! Amen!
51 | It's Raining Men! Hallelujah! - It's Raining Men!
52 |
53 |
--------------------------------------------------------------------------------
/files/usr/bin/decomment50:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # decomment50
3 | # intelligently strips a C or php file of comments
4 | # outputs a newly stripped file with the tag _decommented at the end
5 | # https://xkcd.com/208/
6 | #
7 | # Annaleah Ernst & Kareem Omar
8 | # CS50 jterm 2016
9 | # annaleahernst@college.harvard.edu
10 |
11 | import re
12 | from sys import argv
13 |
14 | def decomment50(in_fname, out_fname):
15 | # deals with strings vs comments
16 | def replacer(match):
17 | match_string = match.group(0)
18 |
19 | # ignore comment characters inside of string and char literals
20 | return match_string if match_string[0] == '"' or match_string[0] == '\'' else ''
21 |
22 | # handles stand alone // comment, inline comment, stand alone /**/ comments, inline block comments, and strings
23 | regex_c_php = r'^[ \t\f\v]*//.*?(\n|$)|//.*?$|^[ \t\f\v]*/\*.*?\*/(\n|$)|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"'
24 |
25 | # handles php specific comment symbol #
26 | regex_php = r'|^[ \t\f\v]*#.*?(\n|$)|#.*?$'
27 |
28 | try:
29 | with open(in_fname,'r') as in_file, open(out_fname,'w') as out_file:
30 |
31 | # regex pattern based on what sort of file we're reading
32 | regex_pattern = re.compile(regex_c_php + (regex_php if in_fname[-4:] == '.php' else ''), re.DOTALL | re.MULTILINE)
33 | out_file.write(re.sub(regex_pattern, replacer, in_file.read()))
34 |
35 | # strip out shorthand file name
36 | file_name = lambda fname: fname[max(fname.rfind('/'), fname.rfind('\\'))+1:]
37 | return 'Successfully decommented ' + file_name(in_fname) + ' and saved in ' + file_name(out_fname)
38 |
39 | except:
40 | return 'Failed to open file.'
41 |
42 | # check user input
43 | if len(argv) != 2 :
44 | print("Usage: decomment50.py ")
45 | else :
46 | # get output file name
47 | dot = argv[1].rfind('.')
48 | print(decomment50(argv[1],argv[1][:dot] + "_decommented" + argv[1][dot:]))
49 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## IDE 50
2 |
3 | ### Rolling a new version of ide50 deb
4 |
5 | (Assumes your CWD is the root of this repo)
6 |
7 | After making desired changes:
8 | * Be sure to set `VERSION` in `Makefile` to the new version.
9 | * Add changelog entry to `changelog`.
10 |
11 | #### Authentication
12 |
13 | (Should be done once)
14 |
15 | This package requires cloning some private GitHub repos meanwhile. In order to
16 | be able to build a version of this package, you need to have the correct access
17 | rights to these repos.
18 |
19 | You may use existing SSH keys or [generate](https://help.github.com/articles/generating-an-ssh-key/) new ones. Assuming you have a pair of keys:
20 |
21 | ```
22 | $ mkdir .ssh
23 | $ cp path/to/public_key .ssh
24 | $ cp path/to/private_key .ssh
25 | ```
26 |
27 | #### Building
28 |
29 | ```
30 | $ make bash
31 | $ make deb
32 | ```
33 |
34 | #### Installing
35 |
36 | ```
37 | sudo -E dpkg --force-confnew --force-confmiss -i ide50_*.deb
38 | ```
39 |
40 | ### Pushing deb to mirror
41 | 1. Build new version of deb as described above.
42 | 1. `scp ide50_*.deb user@local.cdn.cs50.net:~ # copy the deb to mirror`
43 | 1. `ssh user@local.cdn.cs50.net`
44 | 1. `sudo su rbowden # rbowden has the script to update the deb in mirror`
45 | 1. `cp ide50_*.deb /home/rbowden # copy the deb to rbowden's home folder`
46 | 1. `cd # go to rbowden's home`
47 | 1. `chown rbowden:producers ide50_*.deb # fix ownership`
48 | 1. `sudo bash #prep environment`
49 | 1. Finally execute the scrip that effectively uploads all debs in rbowden's home folder to production. It will ask for gpg password which is in the Heads 1password.
50 | 1. `sh deb/deb64.sh`
51 | 1. If you want to delete older versions: `cd /srv/www/vhosts/mirror.cs50.net/htdocs/ide50/2015/dists/trusty/main/binary-amd64; rm ide50_{N-1}; push50 -d`
52 | 1. Wait a few moments for the mirrors to sync.
53 | 1. At this point it's a good idea to test `sudo apt-get update` in the IDE to make sure everything works. Also, logs and errors generated by update50 can be found at `/home/ubuntu/.cs50/logs/update50.log`
54 |
55 |
--------------------------------------------------------------------------------
/files/home/ubuntu/.cs50/bin/flask:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # flask run
4 | if [[ "$1" == "run" ]]; then
5 |
6 | # otherwise FLASK_DEBUG=1 suppresses this error in shell
7 | if [[ ! -z "$FLASK_APP" && ! -f "$FLASK_APP" ]]; then
8 | echo "Usage: flask run [OPTIONS]"
9 | echo
10 | echo "Error: The file/path provided ($FLASK_APP) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py"
11 | exit 1
12 | fi
13 |
14 | # default options
15 | host="--host=0.0.0.0"
16 | port="--port=8080"
17 | reload="--reload"
18 |
19 | # remove when https://github.com/miguelgrinberg/Flask-SocketIO/pull/659 is merged
20 | if flask run --help | grep --quiet -- "--with-threads"; then
21 | threads="--with-threads";
22 | fi
23 |
24 | options=""
25 |
26 | # override default options
27 | shift
28 | while test ${#} -gt 0
29 | do
30 | if [[ "$1" =~ ^--host= || "$1" =~ ^-h[^\s]+ ]]; then
31 | host="$1"
32 | elif [[ "$1" == "-h" || "$1" == "--host" ]]; then
33 | host="$1 $2"
34 | shift
35 | elif [[ "$1" =~ ^--port= || "$1" =~ ^-p[^\s]+ ]]; then
36 | port="$1"
37 | elif [[ "$1" == "-p" || "$1" == "--port" ]]; then
38 | port="$1 $2"
39 | shift
40 | elif [[ "$1" =~ ^--(no-)?reload$ ]]; then
41 | reload="$1"
42 | elif [[ "$1" =~ ^--with(out)?-threads$ ]]; then
43 | threads="$1"
44 | else
45 | options+=" $1"
46 | fi
47 | shift
48 | done
49 |
50 | # kill any process listing on the specified port
51 | # regex to handle -pxxxx, -p xxxx, --port xxxx, --port=xxxx
52 | fuser --kill "${port//[^0-9]}/tcp" &> /dev/null
53 |
54 | # spawn flask
55 | script --flush --quiet --return /dev/null --command "FLASK_APP=\"$FLASK_APP\" FLASK_DEBUG=\"$FLASK_DEBUG\" flask run $host $port $reload $threads $options" |
56 | while IFS= read -r line
57 | do
58 | # rewrite address as hostname50
59 | echo "$line" | sed "s#\( *Running on \)http://[^:]\+\(:.\+\)#\1$(hostname50 --protocol)\2#"
60 | done
61 | else
62 | command flask "$@"
63 | fi
64 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | FILES_DIR := files
2 | C9SDK_DIR := $(FILES_DIR)/var/c9sdk
3 | CONFIGS_DIR := $(C9SDK_DIR)/configs/ide
4 | OFFLINE_DIR := /tmp/ide
5 | PLUGINS_DIR := $(C9SDK_DIR)/plugins
6 | VERSION_FILE := $(FILES_DIR)/etc/version50
7 |
8 | PLUGINS := audioplayer browser cat debug gist hex info presentation simple statuspage theme
9 |
10 | NAME := ide50
11 | VERSION := 158
12 |
13 | define getplugin
14 | @echo "\nFetching $(1)..."
15 | @plugin_dir="$(PLUGINS_DIR)/c9.ide.cs50.$(1)"; \
16 | mkdir -p "$$plugin_dir"; \
17 | git clone --depth=1 "https://github.com/cs50/harvard.cs50.$(1).git" "$$plugin_dir"; \
18 | rm -rf "$$plugin_dir/README.md" "$$plugin_dir/.git"*
19 |
20 | endef
21 |
22 | .PHONY: bash
23 | bash:
24 | docker run -i --rm -t -v "$(PWD):/root" cs50/cli
25 |
26 | .PHONY: deb
27 | deb: clean Makefile
28 | @echo "\nDownloading latest CS50 plugins..."
29 | $(foreach plugin,$(PLUGINS),$(call getplugin,$(plugin)))
30 |
31 | @echo "\nFetching latest offline configs..."
32 | mkdir -p "$(CONFIGS_DIR)"
33 | git clone --depth=1 https://github.com/cs50/ide.git "$(OFFLINE_DIR)"
34 | @cp "$(OFFLINE_DIR)"/files/workspace-cs50.js "$(CONFIGS_DIR)"
35 |
36 | @echo "\nBuilding Deb..."
37 | echo "version=$(VERSION)" > "$(VERSION_FILE)"
38 |
39 | # set permissions
40 | chmod -R 755 "$(FILES_DIR)/usr/bin/"
41 | chmod 644 "$(VERSION_FILE)" "$(FILES_DIR)/etc/profile.d/ide50.sh" "$(FILES_DIR)/home/ubuntu/.cs50/prompt"
42 |
43 | fpm \
44 | -C "$(FILES_DIR)" \
45 | --after-install postinst \
46 | --category misc \
47 | --deb-changelog changelog \
48 | --deb-no-default-config-files \
49 | --deb-priority optional \
50 | --depends \
51 | "adminer50 (>= 1.0.1), \
52 | apache2, \
53 | astyle (>= 3.0.1), \
54 | bc, \
55 | clang-3.8, \
56 | dnsutils, \
57 | dos2unix, \
58 | git (>= 1:2.13.0), \
59 | git-lfs (>= 2.3.4), \
60 | gdbserver, \
61 | inotify-tools, \
62 | libcs50-java (>= 2.0.2), \
63 | libphp-phpmailer, \
64 | libxslt1-dev, \
65 | manpages-dev, \
66 | ngrok-client, \
67 | nodejs, \
68 | openjdk-7-jdk, \
69 | pgloader (>= 3.4.1), \
70 | php-cs50 (>= 6.0.0), \
71 | php5-cgi, \
72 | php5-curl, \
73 | php5-sqlite, \
74 | php5-xdebug, \
75 | phpliteadmin (>= 1.4.0), \
76 | sqlite3, \
77 | telnet, \
78 | traceroute, \
79 | wamerican, \
80 | whois" \
81 | --license "" \
82 | --maintainer "CS50 " \
83 | -n "$(NAME)" \
84 | -s dir \
85 | -t deb \
86 | -v $(VERSION) \
87 | --vendor CS50 \
88 | --description "installs necessary software on CS50 IDE" \
89 | --provides "$(NAME)" \
90 | --url "https://github.com/cs50" \
91 | .
92 |
93 | clean:
94 | @echo "Cleaning up..."
95 | rm -rf *.deb "$(C9SDK_DIR)" "$(OFFLINE_DIR)" "$(VERSION_FILE)"
96 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/texts/witch.txt:
--------------------------------------------------------------------------------
1 | CROWD: A witch! A witch! A witch! We've got a witch! A witch!
2 |
3 | VILLAGER #1: We have found a witch, might we burn her?
4 |
5 | CROWD: Burn her! Burn!
6 |
7 | BEDEVERE: How do you know she is a witch?
8 |
9 | VILLAGER #2: She looks like one.
10 |
11 | BEDEVERE: Bring her forward.
12 |
13 | WITCH: I'm not a witch. I'm not a witch.
14 |
15 | BEDEVERE: But you are dressed as one.
16 |
17 | WITCH: They dressed me up like this.
18 |
19 | CROWD: No, we didn't -- no.
20 |
21 | WITCH: And this isn't my nose, it's a false one.
22 |
23 | BEDEVERE: Well?
24 |
25 | VILLAGER #1: Well, we did do the nose.
26 |
27 | BEDEVERE: The nose?
28 |
29 | VILLAGER #1: And the hat -- but she is a witch!
30 |
31 | CROWD: Burn her! Witch! Witch! Burn her!
32 |
33 | BEDEVERE: Did you dress her up like this?
34 |
35 | CROWD: No, no... no ... yes. Yes, yes, a bit, a bit.
36 |
37 | VILLAGER #1: She has got a wart.
38 |
39 | BEDEVERE: What makes you think she is a witch?
40 |
41 | VILLAGER #3: Well, she turned me into a newt.
42 |
43 | BEDEVERE: A newt?
44 |
45 | VILLAGER #3: I got better.
46 |
47 | VILLAGER #2: Burn her anyway!
48 |
49 | CROWD: Burn! Burn her!
50 |
51 | BEDEVERE: Quiet, quiet. Quiet! There are ways of telling whether she is a witch.
52 |
53 | CROWD: Are there? What are they?
54 |
55 | VILLAGER #2: Do they hurt?
56 |
57 | BEDEVERE: Tell me, what do you do with witches?
58 |
59 | VILLAGER #2: Burn!
60 |
61 | CROWD: Burn, burn them up!
62 |
63 | BEDEVERE: And what do you burn apart from witches?
64 |
65 | VILLAGER #1: More witches!
66 |
67 | VILLAGER #2: Wood!
68 |
69 | BEDEVERE: So, why do witches burn?
70 |
71 | [pause]
72 |
73 | VILLAGER #3: B--... 'cause they're made of wood...?
74 |
75 | BEDEVERE: Good!
76 |
77 | CROWD: Oh yeah, yeah...
78 |
79 | BEDEVERE: So, how do we tell whether she is made of wood?
80 |
81 | VILLAGER #1: Build a bridge out of her.
82 |
83 | BEDEVERE: Aah, but can you not also make bridges out of stone?
84 |
85 | VILLAGER #2: Oh, yeah.
86 |
87 | BEDEVERE: Does wood sink in water?
88 |
89 | VILLAGER #1: No, no.
90 |
91 | VILLAGER #2: It floats! It floats!
92 |
93 | VILLAGER #1: Throw her into the pond!
94 |
95 | CROWD: The pond!
96 |
97 | BEDEVERE: What also floats in water?
98 |
99 | VILLAGER #1: Bread!
100 |
101 | VILLAGER #2: Apples!
102 |
103 | VILLAGER #3: Very small rocks!
104 |
105 | VILLAGER #1: Cider!
106 |
107 | VILLAGER #2: Uhhh, gravy!
108 |
109 | VILLAGER #1: Cherries!
110 |
111 | VILLAGER #2: Mud!
112 |
113 | VILLAGER #3: Churches -- churches!
114 |
115 | VILLAGER #2: Lead -- lead!
116 |
117 | ARTHUR: A duck.
118 |
119 | CROWD: Oooh.
120 |
121 | BEDEVERE: Exactly! So, logically...,
122 |
123 | VILLAGER #1: If... she.. weighs the same as a duck, she's made of wood.
124 |
125 | BEDEVERE: And therefore--?
126 |
127 | VILLAGER #1: A witch!
128 |
129 | CROWD: A witch! A witch! A witch!
130 |
131 | -Monty Python and the Search for the Holy Grail
132 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/alice.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | Gutenberg's
5 | Alice's
6 | eBook
7 | eBook
8 | org
9 | Alice's
10 | EBook
11 | EBOOK
12 | ALICE'S
13 | ALICE'S
14 | MARMALADE'
15 | Antipathies
16 | Dinah'll
17 | Alice's
18 | ME'
19 | not'
20 | ME'
21 | ALICE'S
22 | ESQ
23 | HEARTHRUG
24 | ALICE'S
25 | skurried
26 | O
27 | O
28 | O
29 | Ou
30 | chatte
31 | better'
32 | Morcar
33 | Morcar
34 | Stigand
35 | Atheling
36 | William's
37 | Normans
38 | thimble'
39 | C
40 | D
41 | Mouse's
42 | Dinah's
43 | naturedly
44 | W
45 | RABBIT'
46 | Dinah'll
47 | pleasanter
48 | Alice's
49 | won't'
50 | yer
51 | yer
52 | arrum
53 | yer
54 | yer
55 | Bill's
56 | Bill's
57 | Bill's
58 | Bill's
59 | barrowful
60 | barrowful
61 | V
62 | sir'
63 | yawned
64 | Footman's
65 | nose'
66 | Hatter's
67 | Alice's
68 | Lacie
69 | Sh
70 | sh
71 | were'
72 | M
73 | M
74 | M
75 | everything's
76 | beheaded
77 | King's
78 | processions
79 | rosetree
80 | beheaded
81 | croqueted
82 | croqueting
83 | executioner's
84 | King's
85 | beheaded
86 | Alice's
87 | Everything's
88 | Alice's
89 | Alice's
90 | game's
91 | Tis
92 | tis
93 | tis
94 | Alice's
95 | m
96 | Alice's
97 | ordered'
98 | Hjckrrh
99 | mayn't
100 | uglifying
101 | Seaography
102 | X
103 | never'
104 | dinn
105 | Dinn
106 | yawned
107 | TIS
108 | Tis
109 | Hm
110 | ootiful
111 | oop
112 | ootiful
113 | oop
114 | oop
115 | e
116 | e
117 | ootiful
118 | oop
119 | ootiful
120 | oop
121 | oop
122 | e
123 | e
124 | beauti
125 | FUL
126 | oop
127 | e
128 | e
129 | men'
130 | slates'll
131 | T
132 | Alice's
133 | jurymen
134 | jurymen
135 | jurymen
136 | jurymen
137 | teacups
138 | teacups
139 | Gutenberg's
140 | Alice's
141 | EBOOK
142 | ALICE'S
143 | txt
144 | http
145 | org
146 | tm
147 | tm
148 | eBooks
149 | eBook
150 | eBook
151 | eBooks
152 | tm
153 | tm
154 | http
155 | org
156 | tm
157 | tm
158 | tm
159 | tm
160 | E
161 | B
162 | tm
163 | C
164 | tm
165 | tm
166 | E
167 | C
168 | PGLAF
169 | tm
170 | tm
171 | tm
172 | tm
173 | tm
174 | D
175 | tm
176 | E
177 | E
178 | tm
179 | tm
180 | eBook
181 | eBook
182 | org
183 | E
184 | tm
185 | E
186 | E
187 | tm
188 | E
189 | E
190 | E
191 | tm
192 | E
193 | E
194 | tm
195 | E
196 | tm
197 | tm
198 | E
199 | E
200 | tm
201 | E
202 | nonproprietary
203 | tm
204 | tm
205 | org
206 | tm
207 | E
208 | E
209 | tm
210 | E
211 | E
212 | E
213 | tm
214 | tm
215 | tm
216 | e
217 | s
218 | tm
219 | tm
220 | F
221 | tm
222 | E
223 | tm
224 | tm
225 | F
226 | F
227 | tm
228 | tm
229 | F
230 | F
231 | tm
232 | tm
233 | F
234 | F
235 | F
236 | IS'
237 | MERCHANTIBILITY
238 | F
239 | unenforceability
240 | F
241 | tm
242 | tm
243 | tm
244 | b
245 | tm
246 | c
247 | tm
248 | tm
249 | tm's
250 | tm
251 | tm
252 | http
253 | pglaf
254 | org
255 | c
256 | c
257 | http
258 | pglaf
259 | org
260 | U
261 | S
262 | Melan
263 | S
264 | pglaf
265 | org
266 | http
267 | pglaf
268 | org
269 | B
270 | Newby
271 | gbnewby
272 | pglaf
273 | org
274 | tm
275 | http
276 | pglaf
277 | org
278 | U
279 | S
280 | http
281 | pglaf
282 | org
283 | tm
284 | S
285 | tm
286 | tm
287 | eBooks
288 | tm
289 | eBooks
290 | U
291 | S
292 | eBooks
293 | PG
294 | http
295 | org
296 | tm
297 | eBooks
298 | eBooks
299 |
300 | WORDS MISSPELLED: 295
301 | WORDS IN DICTIONARY: 143091
302 | WORDS IN TEXT: 29758
303 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/wonderland.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | Gutenberg's
5 | Alice's
6 | eBook
7 | eBook
8 | org
9 | Alice's
10 | EBook
11 | EBOOK
12 | ALICE'S
13 | ALICE'S
14 | MARMALADE'
15 | Antipathies
16 | Dinah'll
17 | Alice's
18 | ME'
19 | not'
20 | ME'
21 | ALICE'S
22 | ESQ
23 | HEARTHRUG
24 | ALICE'S
25 | skurried
26 | O
27 | O
28 | O
29 | Ou
30 | chatte
31 | better'
32 | Morcar
33 | Morcar
34 | Stigand
35 | Atheling
36 | William's
37 | Normans
38 | thimble'
39 | C
40 | D
41 | Mouse's
42 | Dinah's
43 | naturedly
44 | W
45 | RABBIT'
46 | Dinah'll
47 | pleasanter
48 | Alice's
49 | won't'
50 | yer
51 | yer
52 | arrum
53 | yer
54 | yer
55 | Bill's
56 | Bill's
57 | Bill's
58 | Bill's
59 | barrowful
60 | barrowful
61 | V
62 | sir'
63 | yawned
64 | Footman's
65 | nose'
66 | Hatter's
67 | Alice's
68 | Lacie
69 | Sh
70 | sh
71 | were'
72 | M
73 | M
74 | M
75 | everything's
76 | beheaded
77 | King's
78 | processions
79 | rosetree
80 | beheaded
81 | croqueted
82 | croqueting
83 | executioner's
84 | King's
85 | beheaded
86 | Alice's
87 | Everything's
88 | Alice's
89 | Alice's
90 | game's
91 | Tis
92 | tis
93 | tis
94 | Alice's
95 | m
96 | Alice's
97 | ordered'
98 | Hjckrrh
99 | mayn't
100 | uglifying
101 | Seaography
102 | X
103 | never'
104 | dinn
105 | Dinn
106 | yawned
107 | TIS
108 | Tis
109 | Hm
110 | ootiful
111 | oop
112 | ootiful
113 | oop
114 | oop
115 | e
116 | e
117 | ootiful
118 | oop
119 | ootiful
120 | oop
121 | oop
122 | e
123 | e
124 | beauti
125 | FUL
126 | oop
127 | e
128 | e
129 | men'
130 | slates'll
131 | T
132 | Alice's
133 | jurymen
134 | jurymen
135 | jurymen
136 | jurymen
137 | teacups
138 | teacups
139 | Gutenberg's
140 | Alice's
141 | EBOOK
142 | ALICE'S
143 | txt
144 | http
145 | org
146 | tm
147 | tm
148 | eBooks
149 | eBook
150 | eBook
151 | eBooks
152 | tm
153 | tm
154 | http
155 | org
156 | tm
157 | tm
158 | tm
159 | tm
160 | E
161 | B
162 | tm
163 | C
164 | tm
165 | tm
166 | E
167 | C
168 | PGLAF
169 | tm
170 | tm
171 | tm
172 | tm
173 | tm
174 | D
175 | tm
176 | E
177 | E
178 | tm
179 | tm
180 | eBook
181 | eBook
182 | org
183 | E
184 | tm
185 | E
186 | E
187 | tm
188 | E
189 | E
190 | E
191 | tm
192 | E
193 | E
194 | tm
195 | E
196 | tm
197 | tm
198 | E
199 | E
200 | tm
201 | E
202 | nonproprietary
203 | tm
204 | tm
205 | org
206 | tm
207 | E
208 | E
209 | tm
210 | E
211 | E
212 | E
213 | tm
214 | tm
215 | tm
216 | e
217 | s
218 | tm
219 | tm
220 | F
221 | tm
222 | E
223 | tm
224 | tm
225 | F
226 | F
227 | tm
228 | tm
229 | F
230 | F
231 | tm
232 | tm
233 | F
234 | F
235 | F
236 | IS'
237 | MERCHANTIBILITY
238 | F
239 | unenforceability
240 | F
241 | tm
242 | tm
243 | tm
244 | b
245 | tm
246 | c
247 | tm
248 | tm
249 | tm's
250 | tm
251 | tm
252 | http
253 | pglaf
254 | org
255 | c
256 | c
257 | http
258 | pglaf
259 | org
260 | U
261 | S
262 | Melan
263 | S
264 | pglaf
265 | org
266 | http
267 | pglaf
268 | org
269 | B
270 | Newby
271 | gbnewby
272 | pglaf
273 | org
274 | tm
275 | http
276 | pglaf
277 | org
278 | U
279 | S
280 | http
281 | pglaf
282 | org
283 | tm
284 | S
285 | tm
286 | tm
287 | eBooks
288 | tm
289 | eBooks
290 | U
291 | S
292 | eBooks
293 | PG
294 | http
295 | org
296 | tm
297 | eBooks
298 | eBooks
299 |
300 | WORDS MISSPELLED: 295
301 | WORDS IN DICTIONARY: 143091
302 | WORDS IN TEXT: 29758
303 |
--------------------------------------------------------------------------------
/files/usr/bin/apache50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | vhost=""
4 |
5 | usage() {
6 | echo "Usage: `basename $0` [start VHOST_DIR|restart|reload|stop|status]" 1>&2
7 | exit 1
8 | }
9 |
10 | # verify usage: "start" requires another param, all others require 1
11 | if ([ "$1" == "start" ] && [ $# -ne 2 ]) || ([ "$1" != "start" ] && [ $# -ne 1 ]); then
12 | usage
13 | fi
14 |
15 | # only run as ubuntu
16 | if [ "$(whoami)" != "ubuntu" ]; then
17 | echo "This script must only be run by the ubuntu user (don't use sudo)!"
18 | exit 1
19 | fi
20 |
21 | apache="service apache2"
22 |
23 | set_vhost() {
24 | #ensure the param is a directory, expand it if so
25 | if [ ! -d "$1" ]; then
26 | usage
27 | fi
28 | vhost=$(readlink -f "$1")
29 | }
30 |
31 | start() {
32 | set_vhost "$1"
33 |
34 | echo "Setting Apache's document root to ${vhost} ..."
35 |
36 | # disable prior cs50 configuration, if available
37 | sudo a2disconf cs50 > /dev/null 2>&1
38 |
39 | # copy template over
40 | sudo cp /etc/apache2/conf-available/cs50-template.conf /etc/apache2/conf-available/cs50.conf
41 | sudo chmod 644 /etc/apache2/conf-available/cs50.conf
42 |
43 | # update vhost dir in conf
44 | sudo sed -i "s#/home/ubuntu/workspace/vhosts#$vhost#g" /etc/apache2/conf-available/cs50.conf
45 |
46 | sudo sed -i "s#ServerName.*\$#ServerName $(hostname50)#g" /etc/apache2/conf-available/cs50.conf
47 |
48 | # disable C9's config
49 | sudo a2dissite 001-cloud9 > /dev/null 2>&1
50 |
51 | # enable the new config
52 | sudo a2enconf cs50 > /dev/null 2>&1
53 |
54 | # make sure user can access log and pid files
55 | sudo chown -R ubuntu:ubuntu /home/ubuntu/lib/apache2
56 | sudo chown -R ubuntu:ubuntu /var/lib/php5
57 | sudo find /home/ubuntu/lib/apache2 -type f -exec chmod 660 {} \;
58 | sudo find /home/ubuntu/lib/apache2 -type d -exec chmod 770 {} \;
59 |
60 | # launch
61 | $apache start
62 |
63 | if [ $? -eq 0 ]; then
64 | echo "Apache started successfully!"
65 | echo "Your site is now available at $(hostname50 --c9-port --protocol)"
66 | else
67 | echo "Apache failed to start!"
68 | exit 3
69 | fi
70 | }
71 |
72 | # determine apache's status
73 | running=$($apache status > /dev/null)$?
74 |
75 | case "$1" in
76 | start)
77 | if [ $running == 0 ]; then
78 | set_vhost "$2"
79 | if ! grep -qs "^" '/etc/apache2/conf-available/cs50.conf'; then
80 | $apache stop
81 | else
82 | echo "Apache is already running!" 1>&2
83 | exit 2
84 | fi
85 | fi
86 | start "$2"
87 | ;;
88 | stop)
89 | if [ $running != 0 ]; then
90 | echo "Apache is not running!"
91 | exit 2
92 | fi
93 |
94 | $apache stop
95 | ;;
96 | reload)
97 | $apache reload
98 | ;;
99 | restart)
100 | $apache restart
101 | ;;
102 | status)
103 | if [ $running == 0 ]; then
104 | # try to determine doc root, printing it if found
105 | doc=$(grep -osP '(?<=Directory )[^>]*' /etc/apache2/conf-enabled/cs50.conf)
106 | if [ $? == 0 ]; then
107 | echo "Apache is running with ${doc} as its root!"
108 | else
109 | echo "Apache is running!"
110 | fi
111 | else
112 | echo "Apache is not running."
113 | exit $running
114 | fi
115 | ;;
116 | *)
117 | usage
118 | ;;
119 | esac
120 |
121 | exit 0
122 |
--------------------------------------------------------------------------------
/files/etc/profile.d/ide50.sh:
--------------------------------------------------------------------------------
1 | # if not root
2 | if [ "$(id -u)" != "0" ]; then
3 |
4 | # set umask
5 | umask 0077
6 |
7 | # set pyenv root
8 | export PYENV_ROOT="/opt/pyenv"
9 |
10 | # enable commands installed in /opt/cs50/bin
11 | case ":$PATH:" in
12 | *:/opt/cs50/bin:*)
13 | : ;;
14 | *)
15 | export PATH="/opt/cs50/bin:$PATH" ;;
16 | esac
17 |
18 | # enable commands installed in /home/ubuntu/.cs50/bin
19 | case ":$PATH:" in
20 | *:/home/ubuntu/.cs50/bin:*)
21 | : ;;
22 | *)
23 | export PATH="/home/ubuntu/.cs50/bin:$PATH" ;;
24 | esac
25 |
26 | # enable commands installed in $HOME/.local/bin
27 | case ":$PATH:" in
28 | *:$HOME/.local/bin:*)
29 | : ;;
30 | *)
31 | export PATH="$PATH:$HOME/.local/bin" ;;
32 |
33 | esac
34 |
35 | # enable pyenv commands
36 | case ":$PATH:" in
37 | *:$PYENV_ROOT/bin:*)
38 | : ;;
39 | *)
40 | export PATH="$PYENV_ROOT/bin:$PATH"
41 | esac
42 |
43 | case ":$PATH:" in
44 | *:$PYENV_ROOT/shims:*)
45 | : ;;
46 | *)
47 | export PATH="$PYENV_ROOT/shims:$PATH"
48 | esac
49 |
50 | # configure clang
51 | export CC="clang"
52 | export CFLAGS="-fsanitize=signed-integer-overflow -fsanitize=undefined -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow"
53 | export LDLIBS="-lcrypt -lcs50 -lm"
54 |
55 | # protect user
56 | alias cp="cp -i"
57 | alias mv="mv -i"
58 | alias rm="rm -i"
59 |
60 | # suppress gdb's startup output
61 | alias gdb="gdb -q"
62 |
63 | alias apachectl='echo "Please use apache50 instead!"'
64 | alias mysql-ctl='echo "Please use mysql50 instead!"'
65 | alias phpmyadmin-ctl='echo "Please use mysql50 instead!"'
66 |
67 | # shift out and in of block character palettes
68 | alias break50="printf '\x0e'"
69 | alias fix50="printf '\x0f'"
70 | fi
71 |
72 | # set maximum file size to 512MB
73 | ulimit -f 524288
74 |
75 | # workspace type
76 | export C9_TEMPLATE=ide50
77 |
78 | # disable auto-logout
79 | export TMOUT="0"
80 |
81 | # java
82 | export CLASSPATH=".:/usr/share/java/cs50.jar"
83 |
84 | # c9 open
85 | alias open="c9 open"
86 |
87 | # python3
88 | alias pip="pip3"
89 | alias pylint="pylint3"
90 | alias python="python3"
91 | export PYTHONDONTWRITEBYTECODE="1"
92 |
93 | # sqlite3
94 | alias sqlite3="sqlite3 -column -header"
95 |
96 | # sudo
97 | # trailing space enables elevated command to be an alias
98 | alias sudo="sudo "
99 |
100 | # apt-get
101 | export DEBIAN_FRONTEND=noninteractive
102 |
103 | # flask
104 | export FLASK_APP="application.py"
105 | alias flask="/home/ubuntu/.cs50/bin/flask"
106 |
107 | # http-server
108 | alias http-server="/home/ubuntu/.cs50/bin/http-server"
109 |
110 | # language
111 | if [ -f /home/ubuntu/.cs50/language ]; then
112 | source /home/ubuntu/.cs50/language
113 | fi
114 |
115 | # valgrind defaults
116 | export VALGRIND_OPTS="--memcheck:leak-check=full --memcheck:track-origins=yes"
117 |
118 | # set editor
119 | export EDITOR="nano"
120 |
121 | # set locale
122 | export LANG="C"
123 |
124 | # Node.js
125 | export NODE_ENV="dev"
126 |
127 | # web application environment
128 | export APPLICATION_ENV="dev"
129 |
130 | # short-circuit RVM's cd script
131 | # https://news.ycombinator.com/item?id=1637354
132 | export rvm_project_rvmrc="0"
133 |
134 | # history
135 | # https://www.shellhacks.com/tune-command-line-history-bash/
136 | export PROMPT_COMMAND='history -a' # Store Bash History Immediately
137 |
138 | # ensure no make targets end with .c
139 | make () {
140 | local args=""
141 | local invalid_args=0
142 |
143 | for arg; do
144 | case "$arg" in
145 | (*.c) arg=${arg%.c}; invalid_args=1;;
146 | esac
147 | args="$args $arg"
148 | done
149 |
150 | if [ $invalid_args -eq 1 ]; then
151 | echo "Did you mean 'make$args'?"
152 | return 1
153 | else
154 | command make -B $*
155 | fi
156 | }
157 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/christmas.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | EBook
5 | eBook
6 | eBook
7 | EBook
8 | EBOOK
9 | Menendez
10 | C
11 | D
12 | Marley's
13 | V
14 | MARLEY'S
15 | deadest
16 | Marley's
17 | Marley's
18 | Christmas'
19 | Marley's
20 | overflowings
21 | sprigs
22 | Poulterers'
23 | grocers'
24 | morrow's
25 | Spirit's
26 | Cornhill
27 | blindman's
28 | banker's
29 | years'
30 | Marley's
31 | Marley's
32 | Marley's
33 | resounded
34 | broadwise
35 | Cains
36 | Abels
37 | Pharaoh's
38 | Abrahams
39 | Belshazzars
40 | Marley's
41 | Marley's
42 | Marley's
43 | fellowmen
44 | imploringly
45 | Ebenezer
46 | indicting
47 | Ebenezer
48 | Thank'ee
49 | Ghost's
50 | Marley's
51 | wailings
52 | Marley's
53 | enshrouded
54 | Ebenezer
55 | States'
56 | Marley's
57 | tenderest
58 | dwarfish
59 | Orson
60 | Halloa
61 | laths
62 | home's
63 | evergreens
64 | repassed
65 | Fezziwig
66 | Fezziwig
67 | Fezziwig
68 | Yo
69 | Ebenezer
70 | Yo
71 | Fezziwig
72 | Ebenezer
73 | Fezziwig
74 | Hilli
75 | Fezziwig
76 | Hilli
77 | Ebenezer
78 | Fezziwig
79 | winter's
80 | Fezziwig
81 | Fezziwigs
82 | everyhow
83 | Fezziwig
84 | Fezziwig
85 | Fezziwig
86 | Fezziwig
87 | Fezziwig
88 | Fezziwig's
89 | Fezziwig
90 | Fezziwig
91 | Fezziwig
92 | Fezziwig
93 | prentices
94 | Fezziwig
95 | Spirit's
96 | engrosses
97 | dowerless
98 | Marley's
99 | Marley's
100 | cheeked
101 | Plenty's
102 | Spirit's
103 | plumping
104 | hearts'
105 | poulterers'
106 | fruiterers'
107 | girthed
108 | shopkeepers'
109 | shufflings
110 | Biffins
111 | Grocers'
112 | Grocers'
113 | daws
114 | bakers'
115 | baker's
116 | baker's
117 | baker's
118 | Cratchit's
119 | Cratchit
120 | Cratchit's
121 | Belinda
122 | Cratchit
123 | Cratchit
124 | Cratchits
125 | baker's
126 | Cratchits
127 | Cratchit
128 | Cratchit
129 | warn't
130 | Cratchits
131 | Cratchit
132 | Cratchit
133 | Cratchits
134 | Cratchit
135 | Cratchit
136 | Cratchits
137 | Cratchit
138 | Cratchits
139 | Cratchit
140 | Belinda
141 | Cratchits
142 | Cratchit
143 | Cratchits
144 | Cratchit
145 | Cratchits
146 | Belinda
147 | Cratchit
148 | Cratchits
149 | pastrycook's
150 | laundress's
151 | Cratchit
152 | Cratchit
153 | Cratchit
154 | Cratchit
155 | Cratchit
156 | Cratchit
157 | Cratchit
158 | Cratchit's
159 | Ghost's
160 | Cratchit
161 | Cratchit
162 | Cratchit
163 | Cratchits
164 | milliner's
165 | sprinklings
166 | Spirit's
167 | kenned
168 | chafed
169 | sunniest
170 | pleasanter
171 | sexton's
172 | rustlings
173 | flutterings
174 | Scro
175 | o
176 | o
177 | o
178 | oge
179 | mulled
180 | spirits'
181 | Spirit's
182 | Spirit's
183 | Ghost's
184 | archways
185 | cesspools
186 | disgorged
187 | browed
188 | frousy
189 | tatters
190 | an't
191 | skreeks
192 | an't
193 | Dilber
194 | Dilber
195 | Dilber
196 | Dilber
197 | Dilber
198 | an't
199 | an't
200 | uncurtained
201 | Cratchit's
202 | Cratchits
203 | Cratchit's
204 | Cratchits
205 | Cratchit
206 | pleasantest
207 | Cratchit
208 | Cratchit
209 | Cratchit
210 | Cratchit
211 | Cratchits
212 | vegetation's
213 | repleted
214 | EBENEZER
215 | V
216 | Laoco
217 | n
218 | lustiest
219 | Poulterer's
220 | ER
221 | Cratchit's
222 | sha'n't
223 | poulterer's
224 | recompensed
225 | Marley's
226 | munifi
227 | Thank'ee
228 | Thank'ee
229 | der
230 | ful
231 | Cratchit
232 | Cratchit
233 | EBook
234 | EBOOK
235 | txt
236 | http
237 | Menendez
238 | tm
239 | tm
240 | eBooks
241 | eBook
242 | eBook
243 | eBooks
244 | tm
245 | tm
246 | http
247 | tm
248 | tm
249 | tm
250 | tm
251 | E
252 | B
253 | tm
254 | C
255 | tm
256 | tm
257 | E
258 | C
259 | PGLAF
260 | tm
261 | tm
262 | tm
263 | tm
264 | tm
265 | D
266 | tm
267 | E
268 | E
269 | tm
270 | tm
271 | eBook
272 | eBook
273 | E
274 | tm
275 | E
276 | E
277 | tm
278 | E
279 | E
280 | E
281 | tm
282 | E
283 | E
284 | tm
285 | E
286 | tm
287 | tm
288 | E
289 | E
290 | tm
291 | E
292 | nonproprietary
293 | tm
294 | tm
295 | tm
296 | E
297 | E
298 | tm
299 | E
300 | E
301 | E
302 | tm
303 | tm
304 | tm
305 | e
306 | s
307 | tm
308 | tm
309 | F
310 | tm
311 | E
312 | tm
313 | tm
314 | F
315 | F
316 | tm
317 | tm
318 | F
319 | F
320 | tm
321 | tm
322 | F
323 | F
324 | F
325 | IS'
326 | MERCHANTIBILITY
327 | F
328 | unenforceability
329 | F
330 | tm
331 | tm
332 | tm
333 | b
334 | tm
335 | c
336 | tm
337 | tm
338 | tm's
339 | tm
340 | tm
341 | http
342 | pglaf
343 | org
344 | c
345 | c
346 | http
347 | pglaf
348 | org
349 | U
350 | S
351 | Melan
352 | S
353 | pglaf
354 | org
355 | http
356 | pglaf
357 | org
358 | B
359 | Newby
360 | gbnewby
361 | pglaf
362 | org
363 | tm
364 | http
365 | pglaf
366 | org
367 | U
368 | S
369 | http
370 | pglaf
371 | org
372 | tm
373 | S
374 | tm
375 | tm
376 | eBooks
377 | tm
378 | eBooks
379 | U
380 | S
381 | eBooks
382 | PG
383 | http
384 | tm
385 | eBooks
386 | eBooks
387 |
388 | WORDS MISSPELLED: 383
389 | WORDS IN DICTIONARY: 143091
390 | WORDS IN TEXT: 31927
391 |
--------------------------------------------------------------------------------
/files/usr/bin/mysql50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | usage() {
4 | echo "Usage: `basename $0` [start|restart|reload|shell|stop|status]" 1>&2
5 | exit 1
6 | }
7 |
8 | # verify usage
9 | if [ $# -ne 1 ]; then
10 | usage
11 | fi
12 |
13 | # always run as root
14 | if [ "$UID" != "0" ]; then
15 | sudo -E $0 "$@"
16 | exit
17 | fi
18 |
19 | running=$(service mysql status > /dev/null)$?
20 |
21 | installed() {
22 | if [ -f /home/ubuntu/.mysql_installed ]; then
23 | return 0
24 | fi
25 | return 1
26 | }
27 |
28 | install() {
29 | echo "Setting up MySQL ..."
30 |
31 | # MySQL username matches the external C9 username
32 | username=$(username50)
33 | password=$(password50)
34 |
35 | # was apache running? (status returns 0 iff running)
36 | apache_running=$(apache50 status > /dev/null)$?
37 |
38 | # stop apache if running
39 | if [ $apache_running == 0 ]; then
40 | apache50 stop > /dev/null 2>&1
41 | fi
42 |
43 | # Changes configuration file to skip table grants
44 | mv /etc/mysql/my.cnf /etc/mysql/.my.cnf
45 | cat > /etc/mysql/my.cnf <<"EOF"
46 | [mysqld]
47 | datadir=/var/lib/mysql
48 | skip-grant-tables
49 | skip-networking
50 | socket=/var/run/mysqld/mysqld.sock
51 | user=mysql
52 | pid-file=/var/run/mysqld/mysqld.pid
53 | port=3306
54 | EOF
55 |
56 | service mysql start > /dev/null 2>&1
57 |
58 | # reset user and password in MySQL
59 | mysql --force --user=root > /dev/null 2>&1 < /dev/null 2>&1
71 | mv /etc/mysql/.my.cnf /etc/mysql/my.cnf
72 |
73 | # install phpmyadmin if it's not yet installed
74 | # adapted from C9's install script: /mnt/shared/bin/phpmyadmin-ctl
75 | if [ ! -e /etc/apache2/sites-enabled/phpmyadmin.conf ]; then
76 | ln -s /etc/phpmyadmin/apache.conf /etc/apache2/sites-enabled/phpmyadmin.conf
77 |
78 | echo "Installing phpMyAdmin ..."
79 |
80 | # enable mcrypt
81 | php5enmod mcrypt
82 |
83 | chmod a+r /etc/phpmyadmin/config-db.php
84 | chmod a+r /var/lib/phpmyadmin/blowfish_secret.inc.php
85 | chmod a+r /var/lib/phpmyadmin/config.inc.php
86 |
87 | # Set host to 127.0.0.1
88 | sed -i "s:localhost:127.0.0.1:g" /etc/phpmyadmin/config.inc.php
89 |
90 | #Fix tables
91 | sed -i "s:'pma_\([^_]\):'pma__\1:" /etc/phpmyadmin/config.inc.php
92 |
93 | # Set auth_type from cookie to http
94 | sed -i "s:\('auth_type'.*\)'cookie':\1'http':" /etc/phpmyadmin/config.inc.php
95 |
96 | #Fix login to database
97 | sed -i "s:\$dbuser='phpmyadmin':\$dbuser='$username':" /etc/phpmyadmin/config-db.php
98 | sed -i "s:\$dbpass='[a-zA-Z0-9]*':\$dbpass='$password':" /etc/phpmyadmin/config-db.php
99 |
100 | # hide certain databases
101 | if ! grep -q 'hide_db' /etc/phpmyadmin/config.inc.php; then
102 | # inject hide_db inside of an if statement
103 | sed -i 's:if (!empty($dbname)) {:&\
104 | /* Hide certain databases */\
105 | $cfg["Servers"][\$i]["hide_db"] = "^(c9|information_schema|mysql|performance_schema|phpmyadmin)$";\n:' \
106 | /etc/phpmyadmin/config.inc.php
107 | fi
108 |
109 | # Allow Opening in an iframe (in editor)
110 | if ! grep -q 'AllowThirdPartyFraming' /etc/phpmyadmin/config.inc.php; then
111 | sed -i "$ a\$cfg[\"AllowThirdPartyFraming\"] = true;" /etc/phpmyadmin/config.inc.php
112 | fi
113 |
114 | service mysql start > /dev/null 2>&1
115 |
116 | mysql -u $username -p$password -e "CREATE DATABASE IF NOT EXISTS phpmyadmin" &> /dev/null
117 | zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz | mysql -u $username -p$password phpmyadmin
118 |
119 | service mysql stop > /dev/null 2>&1
120 | fi
121 |
122 | # restart apache if it was running
123 | if [ $apache_running == 0 ]; then
124 | apache50 restart > /dev/null 2>&1
125 | fi
126 |
127 | touch /home/ubuntu/.mysql_installed
128 | }
129 |
130 | case "$1" in
131 | start)
132 | if [ $running == 0 ]; then
133 | echo "MySQL is already running!" 1>&2
134 | exit 2
135 | fi
136 |
137 | if ! installed ; then
138 | install
139 | fi
140 |
141 | service mysql start
142 | ;;
143 | stop)
144 | if [ $running != 0 ]; then
145 | echo "MySQL is not running!"
146 | exit 2
147 | fi
148 |
149 | service mysql stop
150 | ;;
151 | reload)
152 | service mysql reload
153 | ;;
154 | restart)
155 | if ! installed ; then
156 | install
157 | fi
158 |
159 | service mysql restart
160 | ;;
161 | shell)
162 | if ! installed ; then
163 | install
164 | fi
165 |
166 | if [ $running != 0 ]; then
167 | echo "Starting MySQL.."
168 | service mysql start
169 | fi
170 |
171 | mysql -u $(username50) -p$(password50)
172 | ;;
173 | status)
174 | if [ $running == 0 ]; then
175 | echo "MySQL is running!"
176 | else
177 | echo "MySQL is not running."
178 | exit $running
179 | fi
180 | ;;
181 | install)
182 | if [ $running == 0 ]; then
183 | service mysql stop
184 | fi
185 |
186 | install
187 |
188 | if [ $running == 0 ]; then
189 | service mysql start
190 | fi
191 | ;;
192 | *)
193 | usage
194 | ;;
195 | esac
196 |
197 | exit 0
198 |
--------------------------------------------------------------------------------
/postinst:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo "Resetting permissions ..."
4 |
5 | chmod -R g+w /home/ubuntu/workspace
6 | #don't do this, eats space! chown -R ubuntu:ubuntu /home/ubuntu > /dev/null 2>&1
7 | chown -R ubuntu:ubuntu /var/c9sdk/plugins/c9.ide.cs50* > /dev/null 2>&1
8 | chown -R ubuntu:ubuntu /var/c9sdk/configs/ > /dev/null 2>&1
9 |
10 | chown -R ubuntu:ubuntu /home/ubuntu/.local/ 2>&1
11 | chown -R ubuntu:ubuntu /home/ubuntu/.cs50/ 2>&1
12 | chmod 644 /etc/apt/sources.list.d/cs50.list > /dev/null 2>&1 || true
13 | chmod 644 /home/ubuntu/workspace/.eslintrc 2>&1 || true
14 | chmod 644 /home/ubuntu/.cs50/py_modules/pylint50.py || true
15 |
16 | chmod 644 /etc/bash_completion.d/make
17 |
18 | # remove dropbox functions
19 | sed -i 's:source /home/ubuntu/.dropbox50::g' ~/.bashrc
20 |
21 | # add courses group and cs50 user
22 | groupadd -r courses > /dev/null 2>&1 || true
23 | adduser --gecos "CS50,,,," --ingroup courses --disabled-login --system cs50 > /dev/null 2>&1 || true
24 |
25 | # set permissions and ownership of /home/cs50 files
26 | chown -R cs50.courses /home/cs50
27 |
28 | # executables, scripts, and directories
29 | chmod -R 755 /home/cs50 /home/ubuntu/.cs50/bin
30 |
31 | # non-executables
32 | find /home/cs50/ -type f -name *.* -exec chmod 644 {} \;
33 |
34 | # use clang 3.8 by default
35 | update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 380 \
36 | --slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 \
37 | --slave /usr/bin/clang-check clang-check /usr/bin/clang-check-3.8 \
38 | --slave /usr/bin/clang-query clang-query /usr/bin/clang-query-3.8 \
39 | --slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-3.8
40 |
41 | # otherwise lsof doesn't see server
42 | chown ubuntu:courses /home/cs50/pset6/server
43 |
44 | # prep instance's index page
45 | if [ -f /var/www/html/index.html ]; then
46 | rm -f /var/www/html/index.html
47 | fi
48 |
49 | # remove apache test file from workspace
50 | if grep -qs '^Success$' /var/www/html/file; then
51 | rm -f /var/www/html/file
52 | fi
53 |
54 | # add ide50 source file to apache's envvars
55 | if ! grep -qs 'ide50.sh' /etc/apache2/envvars; then
56 | sed -i 's-cloud9.sh-cloud9.sh\n. /etc/profile.d/ide50.sh-' /etc/apache2/envvars
57 | fi
58 |
59 | # make sure ubuntu can write to phpmyadmin's upload directory
60 | chown ubuntu /var/lib/phpmyadmin/tmp
61 |
62 | # increase phpmyadmin cookie timeout to one day
63 | if ! grep -qs 'LoginCookieValidity' /etc/phpmyadmin/config.inc.php; then
64 | sudo sed -i '$a$cfg["LoginCookieValidity"] = 86400;' /etc/phpmyadmin/config.inc.php
65 | fi
66 |
67 | # change phpmyadmin auth_type from cookie to http
68 | sudo sed -i "s:\('auth_type'.*\)'cookie':\1'http':" /etc/phpmyadmin/config.inc.php
69 |
70 | # Change user running apache from www-data to ubuntu
71 | sudo sed -i "s/APACHE_RUN_USER=www-data/APACHE_RUN_USER=ubuntu/" /etc/apache2/envvars
72 | sudo sed -i "s/APACHE_RUN_GROUP=www-data/APACHE_RUN_GROUP=ubuntu/" /etc/apache2/envvars
73 |
74 | # remove ubuntu from group www-data
75 | sudo gpasswd -d ubuntu www-data 2> /dev/null
76 |
77 | # enable cs50 PHP config
78 | if [ ! -h /etc/php5/apache2/conf.d/50-cs50.ini ]; then
79 | ln -s /etc/php5/mods-available/cs50.ini /etc/php5/apache2/conf.d/50-cs50.ini
80 |
81 | # attempt to reload apache
82 | /usr/bin/apache50 reload > /dev/null 2>&1
83 | fi
84 |
85 | # in interactive shells, prevent manual flow control so Ctrl-S doesn't pause
86 | if ! grep -qs 'stty -ixon' /home/ubuntu/.bashrc; then
87 | echo "stty -ixon" >> /home/ubuntu/.bashrc
88 | fi
89 |
90 | # allow `cd` to bring user back to workspace (`cd ~` to homedir)
91 | if ! grep -qs "alias cd" /home/ubuntu/.bashrc; then
92 | echo 'alias cd="HOME=~/workspace cd"' >> /home/ubuntu/.bashrc
93 | fi
94 |
95 | if [ -f /home/ubuntu/.cs50/prompt ] && ! grep -qs 'prompt' /home/ubuntu/.bashrc; then
96 | echo "source /home/ubuntu/.cs50/prompt" >> /home/ubuntu/.bashrc
97 | fi
98 |
99 | # update path in existing .bashrc files
100 | sed -i "s#\(/home/ubuntu/\).prompt50#\1.cs50/prompt#" /home/ubuntu/.bashrc
101 |
102 | # remove old source file if it exists
103 | if [ -f /etc/profile.d/app.sh ]; then
104 | rm -f /etc/profile.d/app.sh
105 | fi
106 |
107 | # create a password50 file, if it doesn't exist
108 | sudo -Eu ubuntu /usr/bin/password50 > /dev/null 2>&1
109 |
110 | # add mysql username and password to env
111 | sudo cat > /etc/profile.d/mysql.sh < /dev/null 2>&1
134 |
135 | # start MySQL by default
136 | /usr/bin/mysql50 start > /dev/null 2>&1
137 |
138 | if [ ${IDE_OFFLINE+x} ]; then
139 | # add offline source file to apache's envvars
140 | if ! grep -qs 'offline.sh' /etc/apache2/envvars; then
141 | sed -i 's-ide50.sh-ide50.sh\n. /etc/profile.d/offline.sh-' /etc/apache2/envvars
142 | fi
143 |
144 | # add c9 alias to profile
145 | if ! grep -qs 'alias c9' /etc/profile.d/offline.sh; then
146 | echo -e "\nalias c9=/var/c9sdk/bin/c9" >> /etc/profile.d/offline.sh
147 | fi
148 |
149 | # remove old config file
150 | rm -rf /var/c9sdk/configs/client-workspace-cs50.js
151 |
152 | # offline only: update c9sdk and plugins
153 | echo "Updating Cloud9 SDK ..."
154 | pushd /var/c9sdk > /dev/null 2>&1
155 |
156 | # https://github.com/c9/core/issues/432
157 | npm install -g npm@4.6.1
158 | git reset --hard
159 | sudo -Eu ubuntu scripts/install-sdk.sh > /dev/null 2>&1
160 | popd > /dev/null 2>&1
161 | else
162 | # plugin updates aren't necessary for online IDEs; remove files
163 | rm -rf /var/c9sdk/plugins/c9.ide.cs50* > /dev/null 2>&1
164 | rmdir -p /var/c9sdk/plugins/ > /dev/null 2>&1
165 |
166 | rm -rf /var/c9sdk/configs/client-workspace-cs50.js > /dev/null 2>&1
167 | rm -rf /var/c9sdk/configs/ide/workspace-cs50.js > /dev/null 2>&1
168 | rmdir -p /var/c9sdk/configs/ide > /dev/null 2>&1
169 | fi
170 |
171 | exit 0
172 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/austinpowers.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | FOTTAGE
5 | INT
6 | EVIL'S
7 | s
8 | EVIL'S
9 | Farbissina
10 | FARBISSINA
11 | CARNABY
12 | Bossanova
13 | BEATLE
14 | Carnaby
15 | luv
16 | luv
17 | outdone
18 | CARNABY
19 | PALAM
20 | guard's
21 | CARNABY
22 | luv
23 | CARNABY
24 | CARNABY
25 | XKE
26 | INT
27 | s
28 | Zedel
29 | Edel
30 | Baaden
31 | Baaden
32 | Swinger's
33 | Picadilly
34 | emdash
35 | FOTTAGE
36 | PICADILLY
37 | SWINGER'S
38 | fightsuit
39 | INT
40 | SWINGER'S
41 | ya
42 | INT
43 | SWINGER'S
44 | Campbell's
45 | Warhol's
46 | INT
47 | SWINGER'S
48 | Forrest
49 | Gump
50 | COLDSTREAM
51 | tocks
52 | Gump's
53 | GUMP
54 | Ohhh
55 | Evil's
56 | EVIL'S
57 | INT
58 | Bigglesworth
59 | Bigglesworth
60 | Garfields
61 | VO
62 | NORAD
63 | NORAD
64 | INT
65 | NORAD
66 | Gilmour
67 | INT
68 | GILMOUR'S
69 | GILMOUR
70 | SoWest
71 | GILMOUR
72 | metalurg
73 | recon
74 | GILMOUR
75 | GILMOUR
76 | GILMOUR
77 | TacHQ
78 | GILMOUR
79 | GILMOUR
80 | emdash
81 | GILMOUR
82 | GILMOUR
83 | GILMOUR
84 | GILMOUR
85 | GILMOUR
86 | GILMOUR
87 | GILMOUR
88 | GILMOUR
89 | INT
90 | M
91 | O
92 | D
93 | Gilmour
94 | BORSCHEVSKY
95 | GILMOUR
96 | Gilmour
97 | INT
98 | M
99 | O
100 | D
101 | EVEL
102 | KNIEVAL
103 | TRAVOLTA
104 | BORSCHEVSKY
105 | cold'
106 | reanimation
107 | Reanimation
108 | INT
109 | PEES
110 | PEEING
111 | PEEING
112 | Frankenstein's
113 | IV's
114 | unfreezing
115 | emdash
116 | Gilmour
117 | Borschevsky
118 | ya
119 | Gilmour
120 | GILMOUR
121 | Kensington's
122 | unfreezing
123 | emdash
124 | INT
125 | M
126 | O
127 | D
128 | QUARTERMASTER'S
129 | Heathrow
130 | INT
131 | Heffner's
132 | emdash
133 | M
134 | O
135 | D
136 | Farsi
137 | Chigro
138 | Chigro
139 | Chigro
140 | emdash
141 | emdash
142 | Chigro
143 | Negro'
144 | colored'
145 | stewardess'
146 | attendants'
147 | worker'
148 | Wilkenson
149 | Orgy'
150 | FLGHT
151 | Brrrr
152 | unfreezing
153 | emdash
154 | IINT
155 | Virtucon
156 | Virtucon
157 | emdash
158 | seatbelts
159 | INT
160 | Caesar's
161 | INT
162 | EVIL'S
163 | emdash
164 | Bigglesworth
165 | BIGGLESWORTH
166 | reanimation
167 | emdash
168 | EVIL'S
169 | Mustafa's
170 | Ahhhhhhhhh
171 | Mustafa's
172 | emdash
173 | SFX
174 | emdash
175 | SFX
176 | Farbissina
177 | FARBISSINA
178 | extraordinaire
179 | O'BRIENS
180 | FARBISSINA
181 | emdash
182 | clovers
183 | Virtucon
184 | Virtucon
185 | Um
186 | Umm
187 | Kreplachistan
188 | Virtucon
189 | FARBISSINA
190 | FARBISSINA
191 | FARBISSINA
192 | grungy
193 | Cobain
194 | T
195 | emdash
196 | INT
197 | Samsonite
198 | AUSITN
199 | Gor
200 | nerd
201 | Jurgens
202 | underthings
203 | baggie
204 | Underthings
205 | baggie
206 | Hai
207 | ling
208 | INT
209 | x
210 | INT
211 | POV
212 | X
213 | POV
214 | X
215 | x
216 | POV
217 | X
218 | X
219 | Uh
220 | bimbo's
221 | Alotta
222 | Alotta
223 | Fagina
224 | INT
225 | X
226 | INT
227 | INT
228 | INT
229 | Uh
230 | uh
231 | INT
232 | TEXAN'S
233 | INT
234 | Ughhhhh
235 | INT
236 | TEXAN'S
237 | INT
238 | AUSITN'S
239 | INT
240 | TEXAN'S
241 | INT
242 | Alotta's
243 | Virtucon
244 | INT
245 | INT
246 | INT
247 | Virtucon
248 | INT
249 | KENSINGTON'S
250 | VO
251 | VO
252 | INT
253 | VO
254 | VO
255 | Power's
256 | VO
257 | KENSINGTON'S
258 | emdash
259 | VO
260 | VO
261 | luv
262 | VO
263 | VO
264 | emdash
265 | VIRTUCON
266 | POV
267 | VIRTUCON
268 | POV
269 | Bigglesworth
270 | SFX
271 | Evil's
272 | POV
273 | SFX
274 | luv
275 | CYC
276 | luv
277 | H
278 | serenading
279 | emdash
280 | showgirls
281 | INT
282 | mimes
283 | mimes
284 | mimes
285 | mimes
286 | Virtucon
287 | Virtucon
288 | emdash
289 | unfreezing
290 | Alotta's
291 | Virtucon
292 | INT
293 | ALOTTA'S
294 | Virtucon's
295 | luv
296 | emdash
297 | Alotta
298 | ALOTTA
299 | ALOTTA
300 | Fagina
301 | Alotta
302 | ALOTTA
303 | ALOTTA
304 | Virtucon's
305 | ALOTTA
306 | SERGIO
307 | MENDEZ
308 | Alotta
309 | INT
310 | ALOTTA
311 | ALOTTA
312 | Alotta
313 | ALOTTA
314 | Chargex
315 | ALOTTA
316 | ALOTTA
317 | Sak
318 | Alotta
319 | Alotta
320 | ALOTTA
321 | Mmmm
322 | ALOTTA
323 | ALOTTA
324 | ALOTTA
325 | ALOTTA
326 | ALOTTA
327 | Virtucon
328 | ALOTTA
329 | choo
330 | choo
331 | ALOTTA
332 | INT
333 | INT
334 | EVIL'S
335 | Farbissina
336 | FARBISSINA
337 | Ya
338 | wohl
339 | emdash
340 | wohl
341 | Fembots
342 | FEMBOTS
343 | strumpets
344 | FARBISSINA
345 | replicant
346 | FEMBOTS
347 | Fembots'
348 | FARBISSINA
349 | SFX
350 | s
351 | Kreplachistan
352 | VIRTUCON
353 | INT
354 | JFK
355 | Mounties
356 | Kreplachistani
357 | SECRETATY
358 | emdash
359 | mister'
360 | Ohhhh
361 | ahhhhhh
362 | Ohhh
363 | hmmmm
364 | hmn
365 | INT
366 | HQ
367 | Kreplachistan
368 | Carnies
369 | Alotta
370 | Fagina's
371 | EXPOSITON
372 | Virtucon
373 | Virtucon
374 | Owww
375 | EXPOSIION
376 | luv
377 | Fagina
378 | insecurities
379 | shagged
380 | shagged
381 | Alotta
382 | INT
383 | Jimi
384 | Cass
385 | emdash
386 | SHAQ
387 | CDs
388 | PEPPER'S
389 | BACHARACH'S
390 | Campbell's
391 | CD
392 | spews
393 | INT
394 | Pik
395 | INT
396 | ZIMA
397 | INT
398 | luv
399 | und
400 | drang
401 | INT
402 | Keon
403 | Ehville
404 | boulangerie
405 | Vilma
406 | shawn
407 | PSYCHEDELC
408 | VIRTUCON
409 | INT
410 | VIRTUCON
411 | trippy
412 | hootchie
413 | kooch
414 | AUSTTIN
415 | Virtucon
416 | Virtucon
417 | Virtucon
418 | Virtucon
419 | INT
420 | VIRTUCON
421 | Virtucon
422 | scientists'
423 | INT
424 | Shastri
425 | emdash
426 | INT
427 | INT
428 | VIRTUCON
429 | INT
430 | SFX
431 | VIRTUCON
432 | INT
433 | steamrollers
434 | P
435 | Noooooooooooooo
436 | Noooooooooooooo
437 | Noooooooooooooo
438 | SFX
439 | INT
440 | INT
441 | jumpsuit
442 | steamrolled
443 | HARWIN
444 | Welby
445 | INT
446 | Harwin
447 | Harwin
448 | Evil's
449 | When's
450 | HARWIN
451 | Evil's
452 | HARWIN
453 | HARWIN
454 | henchman's
455 | INT
456 | Virtucon
457 | minivan
458 | humning
459 | INT
460 | MINIVAN
461 | minivan
462 | minivan
463 | INT
464 | minivan
465 | INT
466 | minivan
467 | INT
468 | EVIL'S
469 | VIRTUCON
470 | Farbissina
471 | minivan
472 | Farbissina
473 | minivan
474 | Kensington's
475 | grocking
476 | telescreen
477 | emdash
478 | INT
479 | crumpets
480 | INT
481 | EVIL'S
482 | INT
483 | EVIL'S
484 | Ezekial
485 | whatever'
486 | um
487 | off'
488 | out'
489 | me'
490 | Skinemax
491 | Evil's
492 | Farbissina
493 | Daddy's
494 | FARBISSINA
495 | FARBISSINA
496 | piranhas
497 | FARBISSINA
498 | emdash
499 | friggin'
500 | FARBISSINA
501 | FARBISSINA
502 | FARBISSINA
503 | Farbissina
504 | INT
505 | emdash
506 | guard's
507 | guard's
508 | INT
509 | Smittie
510 | Evil's
511 | Smittie
512 | Smittie
513 | INT
514 | INT
515 | freaked
516 | emdash
517 | emdash
518 | INT
519 | INT
520 | INT
521 | EVIL'S
522 | INT
523 | emdash
524 | T
525 | INT
526 | FEMBOT
527 | FEMBOTS
528 | emdash
529 | trapezes
530 | FEMBOT
531 | FEMBOT
532 | Fembot's
533 | spews
534 | INT
535 | EVIL'S
536 | Evil's
537 | INT
538 | FEMBOT'S
539 | Fembots
540 | Fembots
541 | INT
542 | EVIL'S
543 | VIRTUCON
544 | COUN
545 | ATCs
546 | INT
547 | FEMBOT
548 | Fembots
549 | FEMBOT
550 | Au
551 | contraire
552 | Fembots
553 | Fembot's
554 | Fembots
555 | Fembot
556 | Jacob's
557 | Fembot
558 | Fembot
559 | you'
560 | Fembot
561 | Fembots
562 | AUSITN
563 | Fembots
564 | INT
565 | INT
566 | emdash
567 | emdash
568 | COUN
569 | INT
570 | EVIL'S
571 | VIRTUCON
572 | INT
573 | SFX
574 | clicka
575 | clicka
576 | emdash
577 | SFX
578 | clicka
579 | clicka
580 | INT
581 | INT
582 | VIRTUCON
583 | Bigglesworth
584 | Bigglesworth
585 | DESTRUCTACON
586 | DESTRUCTACON
587 | VO
588 | Destructacon
589 | Destructacon
590 | DESTRUCTACON
591 | VO
592 | DESTRUCTACON
593 | VO
594 | DESTRUCTACON
595 | VO
596 | DESTRUCTACON
597 | VO
598 | Remjack
599 | Remjack
600 | Remjackremjackremjack
601 | emdash
602 | emdash
603 | COUN
604 | COUN
605 | COUN
606 | Task's
607 | Task's
608 | spews
609 | INT
610 | Nooooooo
611 | INT
612 | MACHIEN
613 | INT
614 | INT
615 | EVIL'S
616 | emdash
617 | Alotta
618 | ALOTTA
619 | Sega
620 | Alotta's
621 | Alotta
622 | Alotta
623 | ALOTTA
624 | ALOTTA
625 | COUN
626 | INT
627 | INT
628 | INT
629 | Fembot
630 | INT
631 | emdash
632 | emdash
633 | emdash
634 | emdash
635 | EVIL'S
636 | VO
637 | VO
638 | Virtucon
639 | PK
640 | VO
641 | VO
642 | VO
643 | VO
644 | VO
645 | VO
646 | AUSITN
647 | VO
648 |
649 | WORDS MISSPELLED: 644
650 | WORDS IN DICTIONARY: 143091
651 | WORDS IN TEXT: 19190
652 |
--------------------------------------------------------------------------------
/update50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # exit on error
4 | set -e
5 |
6 | # redirect output of all commands to $LOG
7 | # mkdir -p /home/ubuntu/.cs50/logs
8 | # LOG="/home/ubuntu/.cs50/logs/update50.log"
9 |
10 | # exec > >(sudo tee -a "$LOG")
11 |
12 | # echo -e "\nDO NOT CLOSE THIS WINDOW OR PUT YOUR COMPUTER TO SLEEP <3\n"
13 | # sleep 2
14 |
15 | # echo -e "update50 - v$(version50)\n$(date -R)\n"
16 |
17 | # ensure workspace has disk size < 5GB
18 | if [ $(df --output=size / | awk 'NR==2 {print $1}') -lt 5242880 ]; then
19 | echo "You have an old workspace. See https://cs50.ly/disk for instructions on how to upgrade your workspace!"
20 | exit 1
21 | fi
22 |
23 | # disable dropbox apt repository
24 | if [ -f /etc/apt/sources.list.d/dropbox.list ]; then
25 | sudo mv /etc/apt/sources.list.d/dropbox.list{,.disabled}
26 | fi
27 |
28 | echo "Updating sources..."
29 |
30 | # try to fix dpkg before updating
31 | sudo dpkg --configure -a
32 |
33 | # TODO temporary until most people move to new version
34 | # git-lfs repo bug causing apt-get update to fail
35 | echo "CLEARING PACKAGE CACHE"
36 | sudo rm -rf /var/lib/apt/lists/*
37 |
38 | # if requested, flush the apt-get Packages file cache
39 | if [ "$1" == "-f" ]; then
40 | :
41 | fi
42 |
43 | # suppress CS50 compilation preferences
44 | unset CC CFLAGS LDLIBS
45 |
46 | # remove old files if new update50 exists
47 | if [ -f /home/ubuntu/.cs50/bin/update50 ]; then
48 | rm -f /home/ubuntu/{.client50,.domain50,.password50,.prompt50}
49 | rm -f /home/ubuntu/bin/{.info50,debug50,update50}
50 | fi
51 |
52 | echo "Adding external repos..."
53 |
54 | # install apt-transport-https
55 | sudo rm -f /etc/apt/sources.list.d/github_git-lfs.list
56 | sudo apt-get update && sudo apt-get install -y apt-transport-https
57 |
58 | # add external apt repos
59 | # install cs50 ppa
60 | if [ ! -f /etc/apt/sources.list.d/cs50-ppa-trusty.list ]; then
61 | sudo add-apt-repository -y ppa:cs50/ppa
62 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/cs50-ppa-trusty.list" \
63 | -o Dir::Etc::sourceparts="-"
64 | fi
65 |
66 | # install cs50 packagecloud repo
67 | if [ ! -f /etc/apt/sources.list.d/cs50_repo.list ]; then
68 | curl -s https://packagecloud.io/install/repositories/cs50/repo/script.deb.sh | sudo bash
69 | fi
70 |
71 | # install git-core ppa
72 | if [ ! -f /etc/apt/sources.list.d/git-core-ppa-trusty.list ]; then
73 | sudo add-apt-repository ppa:git-core/ppa
74 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/git-core-ppa-trusty.list" \
75 | -o Dir::Etc::sourceparts="-"
76 | fi
77 |
78 | # install git-lfs apt repo
79 | # https://packagecloud.io/github/git-lfs/install#manual
80 | if [ ! -f /etc/apt/sources.list.d/github_git-lfs.list ]; then
81 | curl -sSL https://packagecloud.io/github/git-lfs/gpgkey | sudo apt-key add -
82 | echo "deb https://packagecloud.io/github/git-lfs/ubuntu/ trusty main" | sudo tee /etc/apt/sources.list.d/github_git-lfs.list && \
83 | echo "deb-src https://packagecloud.io/github/git-lfs/ubuntu/ trusty main" | sudo tee -a /etc/apt/sources.list.d/github_git-lfs.list
84 | sudo chmod a+r /etc/apt/sources.list.d/github_git-lfs.list
85 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/github_git-lfs.list" \
86 | -o Dir::Etc::sourceparts="-"
87 | fi
88 |
89 | # install pgloader apt repo
90 | # https://wiki.postgresql.org/wiki/Apt
91 | if [ ! -f /etc/apt/sources.list.d/pgdg.list ]; then
92 | echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
93 | curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
94 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/pgdg.list" \
95 | -o Dir::Etc::sourceparts="-"
96 | fi
97 |
98 | sudo apt-get update
99 |
100 | echo "Reinstalling ide package..."
101 | sudo -E apt-get -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite" install --reinstall --yes --force-yes --assume-yes ide50
102 |
103 | sudo apt-get install -y libcs50=8.1.2
104 |
105 | echo "Installing other packages..."
106 |
107 | # node 9.8.0
108 | bash -l -c "nvm install 9.8.0 && nvm alias default 9.8.0"
109 |
110 | # composer
111 | # https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-14-04
112 | if ! which composer &> /dev/null; then
113 | curl -sS https://getcomposer.org/installer | \
114 | sudo php -- --install-dir=/usr/local/bin --filename=composer
115 | fi
116 |
117 | # hub
118 | # https://hub.github.com/
119 | # http://stackoverflow.com/a/27869453
120 | if ! which hub &> /dev/null; then
121 | mkdir /tmp/hub-linux-amd64 && \
122 | curl -s -L https://github.com/github/hub/releases/latest | \
123 | egrep -o '/github/hub/releases/download/.*/hub-linux-amd64-.*.tgz' | \
124 | wget --base=http://github.com/ -i - -O - | \
125 | tar xvz -C /tmp/hub-linux-amd64 --strip-components 1 && \
126 | sudo /tmp/hub-linux-amd64/install && \
127 | rm -rf /tmp/hub-linux-amd64
128 | fi
129 |
130 | # pyenv
131 | export PYENV_ROOT="/opt/pyenv"
132 | if ! which pyenv &> /dev/null; then
133 | sudo apt-get install -y \
134 | build-essential \
135 | curl \
136 | libbz2-dev \
137 | libncurses5-dev \
138 | libncursesw5-dev \
139 | libreadline-dev \
140 | libsqlite3-dev \
141 | libssl-dev \
142 | llvm \
143 | wget \
144 | xz-utils \
145 | zlib1g-dev
146 | wget -P /tmp https://github.com/yyuu/pyenv/archive/master.zip
147 | unzip -q -d /tmp /tmp/master.zip
148 | rm -f /tmp/master.zip
149 | sudo mv /tmp/pyenv-master /opt/pyenv
150 | fi
151 |
152 | echo "FYI: installing Python may take a while. Thank you for your patience! <3"
153 | sudo chown -R ubuntu:ubuntu /opt/pyenv
154 | /opt/pyenv/bin/pyenv install --skip-existing 3.6.0
155 | /opt/pyenv/bin/pyenv global 3.6.0
156 |
157 | echo "Removing unneeded packages..."
158 | sudo apt-get autoremove -y
159 |
160 | # ensure npm prefix is writable
161 | # some old workspaces have this prefix mounted read-only
162 | bash -l -c ' \
163 | npm_prefix="$(npm get prefix -g)"; \
164 | if [ ! -w "$npm_prefix" ]; then \
165 | npm set prefix -g "${NVM_DIR:=~/.nvm}/versions/node/$(node --version)"; \
166 | fi; \
167 | echo "Installing npm packages..."; \
168 | npm install -g github:indexzero/http-server; \
169 | '
170 |
171 | echo "Installing Python packages..."
172 |
173 | # clean up pip's build cache
174 | sudo rm -rf /tmp/pip_build_root/*
175 |
176 | # use pip for python3.6
177 | unset PYTHONPATH
178 | export PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH"
179 |
180 | # upgrade pip to latest
181 | sudo -H pip3 install --upgrade pip
182 |
183 | # install python packages
184 | PYTHON_PACKAGES="cs50==2.4.4 \
185 | django \
186 | feedparser \
187 | Flask==1.0.2 \
188 | Flask-AutoIndex \
189 | Flask-JSGlue \
190 | Flask-SQLAlchemy \
191 | Flask-Session \
192 | git+git://github.com/cmorisse/ikp3db \
193 | help50==2.0.1 \
194 | nltk \
195 | passlib \
196 | plotly \
197 | pylint==1.9.3 `# pylint-flask doesn't support pylint 2 yet` \
198 | pylint_django \
199 | pylint_flask \
200 | pyyaml \
201 | render50==3.0.2 \
202 | SQLAlchemy \
203 | style50==2.6.4 \
204 | termcolor \
205 | twython \
206 | virtualenv"
207 |
208 | sudo -H pip3 install $PYTHON_PACKAGES
209 |
210 | sudo -H pip3 install --upgrade 'check50<3' 'submit50<3'
211 |
212 | # create pylint3 as symlink to pylint
213 | ln -sf /opt/pyenv/versions/3.6.0/bin/{pylint,pylint3}
214 |
215 | /opt/pyenv/bin/pyenv rehash
216 |
217 | echo "Installing nltk data..."
218 | sudo python -m nltk.downloader -d /usr/share/nltk_data/ punkt &> /dev/null
219 |
220 | # install ruby 2.4.0 and make it default
221 | bash -l -c "rvm install ruby-2.4.0 --default &> /dev/null"
222 |
223 | echo "Update complete!"
224 |
225 | # restart terminals and reload page
226 | if [ ${IDE_OFFLINE+x} ]; then
227 | C9="/var/c9sdk/bin/c9"
228 | else
229 | C9="/mnt/shared/sbin/c9"
230 | fi
231 |
232 | # avoid running when building Docker image
233 | if [ -x "$C9" ]; then
234 | $C9 exec complete_update
235 | fi
236 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/challenge:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | 0)
98 | {
99 | // pop directory
100 | $directory = array_shift($directories);
101 |
102 | // skip dotdirectories
103 | if (substr(basename($directory), 0, 1) == ".")
104 | {
105 | if ($verbose)
106 | echo "Skipping $directory (because it's hidden)...\n";
107 | continue;
108 | }
109 |
110 | // sort directory's children
111 | if (($children = @scandir($directory)) === false)
112 | {
113 | if ($verbose)
114 | echo "Skipping $directory (because it's unreadable)...\n";
115 | continue;
116 | }
117 |
118 | // iterate over directory's children
119 | foreach ($children as $child)
120 | {
121 | // ignore . and ..
122 | if ($child == "." || $child == "..")
123 | continue;
124 |
125 | // prepare child's path
126 | $path = rtrim($directory, "/") . DIRECTORY_SEPARATOR . $child;
127 |
128 | // push child's path onto array
129 | if (is_dir($path))
130 | array_push($directories, $path);
131 | else
132 | array_push($files, $path);
133 | }
134 | }
135 |
136 | // sort files
137 | natcasesort($files);
138 |
139 | // prepare to upload files
140 | $uploads = array();
141 |
142 | // determine which files to upload
143 | foreach ($files as $file)
144 | {
145 | // skip dotfiles
146 | if (substr(basename($file), 0, 1) == ".")
147 | {
148 | if ($verbose)
149 | echo "Skipping $file (because it's hidden)...\n";
150 | continue;
151 | }
152 |
153 | // skip binary files
154 | if (strpos(file_get_contents($file), "\x00") !== false)
155 | {
156 | if ($verbose)
157 | echo "Skipping $file (because it's binary)...\n";
158 | continue;
159 | }
160 |
161 | // skip unsupported types
162 | $supported = false;
163 | foreach ($TYPES as $type)
164 | {
165 | // escape . as \.
166 | $type = str_replace(".", "\.", $type);
167 |
168 | // convert * to .+
169 | $type = str_replace("*", ".+", $type);
170 |
171 | if (preg_match("/^$type$/i", basename($file)))
172 | {
173 | $supported = true;
174 | break;
175 | }
176 | }
177 | if (!$supported)
178 | {
179 | if ($verbose)
180 | echo "Skipping $file (because it's not a supported type)...\n";
181 | continue;
182 | }
183 |
184 | // add file to uploads
185 | array_push($uploads, $file);
186 | }
187 |
188 | // ensure files will be uploaded
189 | if (count($uploads) == 0)
190 | die("Nothing to check (because no files are checkable).\n");
191 |
192 | // prepare ZIP
193 | $zip = new ZipArchive();
194 | $filename = tempnam(sys_get_temp_dir(), "check50-") . ".zip";
195 | if ($zip->open($filename, ZIPARCHIVE::OVERWRITE) !== true)
196 | die("Could not create ZIP file.\n");
197 | foreach ($uploads as $upload)
198 | {
199 | // TEMP
200 | if (preg_match("{(pset5/.+)$}", $upload, $matches))
201 | $localname = $matches[1];
202 | else
203 | $localname = $upload;
204 |
205 | // add file to ZIP
206 | if ($zip->addFile($upload, $localname) !== true)
207 | die("Could not add {$file} to ZIP file.\n");
208 | }
209 |
210 | // close ZIP
211 | if ($zip->close() !== true)
212 | die("Could not close ZIP file.\n");
213 |
214 | // prepare fields
215 | $fields = array();
216 |
217 | // TEMP
218 | $fields["course"] = "cs50";
219 | $fields["FILE"] = "@{$filename}";
220 | $fields["program"] = "speller";
221 | $fields["school"] = "harvard.edu";
222 | $fields["term"] = "fall";
223 | $fields["year"] = "2014";
224 | $fields["version"] = VERSION;
225 |
226 | // POST fields
227 | $ch = curl_init();
228 | curl_setopt($ch, CURLOPT_HEADER, false);
229 | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
230 | curl_setopt($ch, CURLOPT_MAXREDIRS, 32);
231 | curl_setopt($ch, CURLOPT_POST, true);
232 | curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
233 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
234 | curl_setopt($ch, CURLOPT_URL, "https://board.cs50.net/");
235 | curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
236 | $response = curl_exec($ch);
237 | $info = curl_getinfo($ch);
238 |
239 | // delete ZIP
240 | unlink($filename);
241 |
242 | // check response
243 | if ($info["http_code"] != 200)
244 | die("CS50 Challenge returned an error. Email sysadmins@cs50.net to inquire.\n");
245 |
246 | // decode response
247 | $o = json_decode($response);
248 | if (is_null($o))
249 | die("CS50 Challenge returned an error. Email sysadmins@cs50.net to inquire.\n");
250 |
251 | // check for URL
252 | if (isset($o->url))
253 | {
254 | // operating system name
255 | $uname = php_uname("s");
256 |
257 | // Mac OS
258 | if ($uname == "Darwin" && (boolean) getenv("DISPLAY"))
259 | system("open " . escapeshellarg($o->url) . " > /dev/null 2>&1");
260 |
261 | // Linux
262 | else if ($uname == "Linux" && (boolean) getenv("DISPLAY"))
263 | system("xdg-open " . escapeshellarg($o->url) . " > /dev/null 2>&1");
264 |
265 | // Windows
266 | else if ($uname == "Windows")
267 | system("start " . escapeshellarg($o->url));
268 | }
269 |
270 | // display message, if any
271 | if (isset($o->message))
272 | echo "{$o->message}\n";
273 |
274 | // that's all folks
275 | exit(0);
276 |
277 | ?>
278 |
279 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/grimm.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | Etext
5 | Etexts
6 | Etexts
7 | Etexts
8 | Grimms'
9 | Etext
10 | Etext
11 | txt
12 | etexts
13 | txt
14 | txt
15 | Etext
16 | Dudding
17 | hotmail
18 | jbickers
19 | ihug
20 | nz
21 | Dagny
22 | dagnyj
23 | hotmail
24 | Etexts
25 | Etexts
26 | etext
27 | Etexts
28 | Etexts
29 | Etext
30 | x
31 | Etexts
32 | Hart's
33 | CMU
34 | CMU
35 | P
36 | O
37 | S
38 | prairienet
39 | org
40 | org
41 | org
42 | prairienet
43 | org
44 | etexts
45 | http
46 | promo
47 | pg
48 | Etexts
49 | etext
50 | http
51 | promo
52 | pg
53 | metalab
54 | unc
55 | edu
56 | cd
57 | docs
58 | cd
59 | dir
60 | mget
61 | GUTINDEX
62 | e
63 | g
64 | GUTINDEX
65 | GUTINDEX
66 | ETEXTS
67 | etext
68 | etext
69 | ETEXT
70 | tm
71 | etext
72 | etext
73 | etext
74 | TM
75 | ETEXTS
76 | tm
77 | etext
78 | tm
79 | etexts
80 | S
81 | etext
82 | etexts
83 | etexts
84 | etext
85 | etext
86 | tm
87 | etext
88 | etext
89 | ETEXT
90 | ETEXT
91 | etext
92 | etext
93 | tm
94 | etext
95 | etext
96 | etext
97 | cessing
98 | etext
99 | etext
100 | etext
101 | etext
102 | etext
103 | OCR
104 | etexts
105 | ETEXTS
106 | Ver
107 | Etext
108 | Dudding
109 | hotmail
110 | jbickers
111 | ihug
112 | nz
113 | Dagny
114 | dagnyj
115 | hotmail
116 | PREPARER'S
117 | Grimms'
118 | und
119 | Hausmarchen
120 | Edwardes
121 | JORINDA
122 | JORINDEL
123 | VIST
124 | KORBES
125 | FUNDEVOGEL
126 | HOLLE
127 | ASHPUTTEL
128 | HUNTSMEN
129 | KNOWALL
130 | gardener's
131 | gardener's
132 | place'
133 | cage'
134 | king's
135 | brothers'
136 | king's
137 | Jip
138 | Jip
139 | thirst'
140 | Tis
141 | JORINDA
142 | JORINDEL
143 | Jorinda
144 | Jorindel
145 | Jorindel
146 | Jorinda
147 | Jorindel
148 | Jorindel
149 | Jorinda
150 | mourn'd
151 | Jorindel
152 | Jorinda
153 | Tu
154 | whu
155 | Tu
156 | whu
157 | Tu
158 | whu
159 | Jorindel
160 | Jorindel
161 | Jorindel
162 | Jorinda
163 | sorrowed
164 | Jorinda
165 | disenchanted
166 | Jorinda
167 | Jorindel
168 | Jorindel
169 | Jorinda
170 | Jorinda
171 | Jorinda
172 | jollily
173 | in'
174 | king's
175 | king's
176 | king's
177 | king's
178 | kings'
179 | king's
180 | king's
181 | baker's
182 | king's
183 | king's
184 | kings'
185 | safe'
186 | king's
187 | water's
188 | O
189 | Ilsabill
190 | Ilsabill
191 | O
192 | Ilsabill
193 | Ilsabill
194 | O
195 | Ilsabill
196 | Ilsabill
197 | water's
198 | O
199 | Ilsabill
200 | Ilsabill
201 | O
202 | O
203 | Ilsabill
204 | Ilsabill
205 | Ilsabill
206 | O
207 | Ilsabill
208 | King's
209 | fly's
210 | bear's
211 | bear's
212 | Yes'
213 | prince's
214 | prince's
215 | godchildren
216 | gone'
217 | mouse's
218 | bridegroom's
219 | Falada
220 | bridegroom's
221 | Falada
222 | Falada
223 | instead'
224 | Falada
225 | Falada
226 | king's
227 | Curdken
228 | slaughterers
229 | road'
230 | Falada
231 | Falada
232 | Falada's
233 | Curdken
234 | Falada
235 | Falada
236 | hangest
237 | gangest
238 | Curdken
239 | Curdken's
240 | whirl'd
241 | comb'd
242 | curl'd
243 | Curdken's
244 | Falada's
245 | Falada
246 | Falada
247 | hangest
248 | gangest
249 | Curdken
250 | Curdken's
251 | whirl'd
252 | comb'd
253 | curl'd
254 | Curdken
255 | Curdken
256 | Falada
257 | Falada
258 | hangest
259 | gangest
260 | Curdken
261 | Falada
262 | Falada
263 | Curdken's
264 | whirl'd
265 | comb'd
266 | curl'd
267 | Curdken's
268 | Curdken
269 | Falada
270 | nutshells
271 | duck's
272 | Partlet's
273 | jollily
274 | eggshells
275 | morning'
276 | VIST
277 | KORBES
278 | Korbes
279 | Korbes
280 | Korbes's
281 | Korbes
282 | ells
283 | king's
284 | king's
285 | king's
286 | king's
287 | Gothel
288 | does'
289 | Gothel
290 | king's
291 | Rapunzel's
292 | king's
293 | king's
294 | king's
295 | FUNDEVOGEL
296 | Lina
297 | Fundevogel
298 | Fundevogel
299 | Lina
300 | Lina
301 | Sanna
302 | Lina
303 | Fundevogel
304 | Lina
305 | Fundevogel
306 | Fundevogel
307 | Lina
308 | Sanna
309 | Fundevogel
310 | Lina
311 | Fundevogel
312 | Fundevogel
313 | Lina
314 | simpletons
315 | Lina
316 | Fundevogel
317 | Fundevogel
318 | Lina
319 | Lina
320 | Fundevogel
321 | Fundevogel
322 | Lina
323 | tailor's
324 | strength'
325 | tailor's
326 | huntsmen
327 | king's
328 | pocketsful
329 | huntsmen
330 | huntsmen
331 | huntsmen
332 | king's
333 | O
334 | sluggards
335 | B
336 | Hansel's
337 | witch's
338 | witch's
339 | HOLLE
340 | baker's
341 | Holle
342 | Holle
343 | Holle
344 | Holle
345 | Holle
346 | Holle
347 | doo
348 | Holle's
349 | Holle
350 | Holle
351 | Holle
352 | doo
353 | time'
354 | wolf'
355 | wolf's
356 | wolf's
357 | morning'
358 | strewed
359 | murderers'
360 | murderers'
361 | murderers'
362 | murderers'
363 | murderers'
364 | murderers'
365 | shewed
366 | well'
367 | cow's
368 | cow's
369 | disheartened
370 | myself'
371 | again'
372 | cow's
373 | wolf's
374 | miller's
375 | miller's
376 | miller's
377 | miller's
378 | miller's
379 | miller's
380 | days'
381 | ICHABOD
382 | SHANKS
383 | jeered
384 | RUMPLESTILTSKIN
385 | miller's
386 | miller's
387 | raven's
388 | krr
389 | krr
390 | miller's
391 | talers
392 | raven's
393 | talers
394 | cow's
395 | talers
396 | talers
397 | miller's
398 | strewed
399 | O
400 | pedlars
401 | pedlars
402 | chafed
403 | chafed
404 | Catherine's
405 | witch's
406 | breadcrumbs
407 | Roland's
408 | Roland's
409 | windowframe
410 | O
411 | Snowdrop's
412 | O
413 | dwarfs'
414 | dwarfs'
415 | king's
416 | dwarfs'
417 | Snowdrop's
418 | king's
419 | king's
420 | king's
421 | king's
422 | huntsmen
423 | huntsmen
424 | king's
425 | king's
426 | sense'
427 | Elsie's
428 | fowler's
429 | years'
430 | reward'
431 | musician's
432 | florins
433 | dwarf's
434 | pity's
435 | florins
436 | ASHPUTTEL
437 | Ashputtel
438 | Ashputtel's
439 | king's
440 | Ashputtel
441 | dishful
442 | hours'
443 | linnets
444 | Ashputtel
445 | Ashputtel
446 | linnets
447 | Ashputtel
448 | shame'
449 | Ashputtel
450 | Ashputtel
451 | king's
452 | king's
453 | home'
454 | Ashputtel
455 | Ashputtel
456 | king's
457 | king's
458 | Ashputtel
459 | king's
460 | Ashputtel
461 | Ashputtel
462 | king's
463 | king's
464 | time'
465 | king's
466 | Ashputtel
467 | king's
468 | Ashputtel
469 | Ashputtel
470 | king's
471 | king's
472 | strewed
473 | sacksful
474 | king's
475 | king's
476 | bleated
477 | gorged
478 | beast's
479 | kings'
480 | bees'
481 | disenchanted
482 | king's
483 | dwarf's
484 | king's
485 | shoemaker's
486 | wights
487 | sorrowed
488 | winter's
489 | cuffings
490 | Marleen
491 | Marleen
492 | Marleen
493 | Marleen
494 | Marleen
495 | Marleen
496 | Marleen
497 | Kywitt
498 | Kywitt
499 | Kywitt
500 | Kywitt
501 | shoemaker's
502 | Kywitt
503 | Kywitt
504 | Kywitt
505 | Kywitt
506 | miller's
507 | Kywitt
508 | Kywitt
509 | Kywitt
510 | Kywitt
511 | Marleen
512 | Marleen
513 | Marleen
514 | Marleen
515 | Kywitt
516 | Kywitt
517 | Marleen
518 | Kywitt
519 | Kywitt
520 | Marleen
521 | Marleen
522 | sowed
523 | yoked
524 | calves'
525 | sheep's
526 | ecclesiastics
527 | cunningest
528 | chaffinch's
529 | king's
530 | shinest
531 | shinest
532 | blowest
533 | griffin's
534 | woes
535 | Jip
536 | Jip
537 | him'
538 | king's
539 | soldier's
540 | soldier's
541 | soldier's
542 | soldier's
543 | king's
544 | king's
545 | unconsumed
546 | king's
547 | Dummling
548 | Dummling
549 | Dummling
550 | Dummling
551 | Dummling
552 | Dummling
553 | Dummling
554 | goodness'
555 | Dummling
556 | Dummling
557 | Dummling
558 | king's
559 | Dummling
560 | cellarful
561 | Dummling
562 | Dummling
563 | Dummling
564 | king's
565 | Dummling
566 | Dummling
567 | Dummling
568 | ovenful
569 | Dummling
570 | king's
571 | Dummling
572 | Dummling
573 | Dummling
574 | king's
575 | Dummling
576 | it'
577 | overhung
578 | journey's
579 | brothers'
580 | right'
581 | journey's
582 | king's
583 | huntsmen
584 | prince's
585 | king's
586 | king's
587 | O
588 | thoughout
589 | road'
590 | frolick'd
591 | HUNTSMEN
592 | king's
593 | king's
594 | king's
595 | king's
596 | huntsmen's
597 | huntsmen's
598 | huntsmen
599 | king's
600 | huntsmen
601 | huntsmen
602 | huntsmen
603 | king's
604 | huntsmen
605 | king's
606 | huntsmen
607 | huntsmen
608 | king's
609 | huntsmen
610 | huntsmen
611 | king's
612 | Heinel
613 | Heinel
614 | Heinel
615 | Heinel
616 | Heinel
617 | Heinel
618 | Heinel
619 | Heinel
620 | Heinel
621 | Heinel
622 | Heinel
623 | Heinel
624 | Heinel
625 | Heinel
626 | Heinel
627 | Heinel
628 | traitors'
629 | Heinel
630 | KNOWALL
631 | Crabb
632 | talers
633 | B
634 | C
635 | Knowall
636 | Knowall
637 | Crabb
638 | Knowall
639 | Grete
640 | nobleman's
641 | Crabb
642 | Grete
643 | Grete
644 | Grete
645 | Grete
646 | Crabb
647 | B
648 | C
649 | Knowall
650 | play'
651 | tis
652 | O
653 | Kehrewit
654 | said'
655 | want'
656 | heart'
657 | asleep'
658 | one'
659 | stripes'
660 | O
661 | sexton's
662 | talers
663 | talers
664 | ropemaker's
665 | talers
666 | talers
667 | talers
668 | Au
669 | miau
670 | farthings
671 | gudgeons
672 | gudgeons
673 | Wallface
674 | baker's
675 | king's
676 | king's
677 | king's
678 | jeered
679 | huntsmen
680 | huntsmen
681 | king's
682 | king's
683 | gardener's
684 | king's
685 | king's
686 | king's
687 | ducats
688 | king's
689 | ducats
690 | gardener's
691 | hobblety
692 | hobblety
693 | Hans'
694 | king's
695 | hobblety
696 | king's
697 | king's
698 | king's
699 | king's
700 | king's
701 | gardener's
702 | gardener's
703 | besmeared
704 | huntsmen
705 | huntsmen
706 | huntsmen
707 | king's
708 | king's
709 | king's
710 | king's
711 | king's
712 | king's
713 | king's
714 | bleated
715 | little'
716 | bear's
717 | mercy's
718 | king's
719 | Wilhelm's
720 | Tales'
721 | Etext
722 |
723 | WORDS MISSPELLED: 718
724 | WORDS IN DICTIONARY: 143091
725 | WORDS IN TEXT: 103614
726 |
--------------------------------------------------------------------------------
/files/home/ubuntu/.vimrc:
--------------------------------------------------------------------------------
1 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
2 | " Maintainer:
3 | " Amir Salihefendic
4 | " http://amix.dk - amix@amix.dk
5 | "
6 | " Version:
7 | " 5.0 - 29/05/12 15:43:36
8 | "
9 | " Blog_post:
10 | " http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github
11 | "
12 | " Awesome_version:
13 | " Get this config, nice color schemes and lots of plugins!
14 | "
15 | " Install the awesome version from:
16 | "
17 | " https://github.com/amix/vimrc
18 | "
19 | " Syntax_highlighted:
20 | " http://amix.dk/vim/vimrc.html
21 | "
22 | " Raw_version:
23 | " http://amix.dk/vim/vimrc.txt
24 | "
25 | " Sections:
26 | " -> General
27 | " -> VIM user interface
28 | " -> Colors and Fonts
29 | " -> Files and backups
30 | " -> Text, tab and indent related
31 | " -> Visual mode related
32 | " -> Moving around, tabs and buffers
33 | " -> Status line
34 | " -> Editing mappings
35 | " -> vimgrep searching and cope displaying
36 | " -> Spell checking
37 | " -> Misc
38 | " -> Helper functions
39 | "
40 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
41 |
42 |
43 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
44 | " => General
45 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
46 | " Sets how many lines of history VIM has to remember
47 | set history=700
48 |
49 | " Enable filetype plugins
50 | filetype plugin on
51 | filetype indent on
52 |
53 | " Set to auto read when a file is changed from the outside
54 | set autoread
55 |
56 | " With a map leader it's possible to do extra key combinations
57 | " like w saves the current file
58 | let mapleader = ","
59 | let g:mapleader = ","
60 |
61 | " Fast saving
62 | nmap w :w!
63 |
64 | " :W sudo saves the file
65 | " (useful for handling the permission-denied error)
66 | command W w !sudo tee % > /dev/null
67 |
68 |
69 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
70 | " => VIM user interface
71 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
72 | " Set 7 lines to the cursor - when moving vertically using j/k
73 | set so=7
74 |
75 | " Turn on the WiLd menu
76 | set wildmenu
77 |
78 | " Ignore compiled files
79 | set wildignore=*.o,*~,*.pyc
80 | if has("win16") || has("win32")
81 | set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store
82 | else
83 | set wildignore+=.git\*,.hg\*,.svn\*
84 | endif
85 |
86 | "Always show current position
87 | set ruler
88 |
89 | " Height of the command bar
90 | set cmdheight=2
91 |
92 | " A buffer becomes hidden when it is abandoned
93 | set hid
94 |
95 | " Configure backspace so it acts as it should act
96 | set backspace=eol,start,indent
97 | set whichwrap+=<,>,h,l
98 |
99 | " Ignore case when searching
100 | set ignorecase
101 |
102 | " When searching try to be smart about cases
103 | set smartcase
104 |
105 | " Highlight search results
106 | set hlsearch
107 |
108 | " Makes search act like search in modern browsers
109 | set incsearch
110 |
111 | " Don't redraw while executing macros (good performance config)
112 | set lazyredraw
113 |
114 | " For regular expressions turn magic on
115 | set magic
116 |
117 | " Show matching brackets when text indicator is over them
118 | set showmatch
119 | " How many tenths of a second to blink when matching brackets
120 | set mat=2
121 |
122 | " No annoying sound on errors
123 | set noerrorbells
124 | set novisualbell
125 | set t_vb=
126 | set tm=500
127 |
128 | " Add a bit extra margin to the left
129 | set foldcolumn=1
130 |
131 |
132 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
133 | " => Colors and Fonts
134 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
135 | " Enable syntax highlighting
136 | syntax enable
137 |
138 | try
139 | colorscheme desert
140 | catch
141 | endtry
142 |
143 | set background=dark
144 |
145 | " Set extra options when running in GUI mode
146 | if has("gui_running")
147 | set guioptions-=T
148 | set guioptions-=e
149 | set t_Co=256
150 | set guitablabel=%M\ %t
151 | endif
152 |
153 | " Set utf8 as standard encoding and en_US as the standard language
154 | set encoding=utf8
155 |
156 | " Use Unix as the standard file type
157 | set ffs=unix,dos,mac
158 |
159 |
160 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
161 | " => Files, backups and undo
162 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
163 | " Turn backup off, since most stuff is in SVN, git et.c anyway...
164 | set nobackup
165 | set nowb
166 | set noswapfile
167 |
168 |
169 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
170 | " => Text, tab and indent related
171 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
172 | " Use spaces instead of tabs
173 | set expandtab
174 |
175 | " Be smart when using tabs ;)
176 | set smarttab
177 |
178 | " 1 tab == 4 spaces
179 | set shiftwidth=4
180 | set tabstop=4
181 |
182 | " Linebreak on 500 characters
183 | set lbr
184 | set tw=500
185 |
186 | set ai "Auto indent
187 | set si "Smart indent
188 | set wrap "Wrap lines
189 |
190 |
191 | """"""""""""""""""""""""""""""
192 | " => Visual mode related
193 | """"""""""""""""""""""""""""""
194 | " Visual mode pressing * or # searches for the current selection
195 | " Super useful! From an idea by Michael Naumann
196 | vnoremap * :call VisualSelection('f', '')
197 | vnoremap # :call VisualSelection('b', '')
198 |
199 |
200 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
201 | " => Moving around, tabs, windows and buffers
202 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
203 | " Treat long lines as break lines (useful when moving around in them)
204 | map j gj
205 | map k gk
206 |
207 | " Map to / (search) and Ctrl- to ? (backwards search)
208 | map /
209 | map ?
210 |
211 | " Disable highlight when is pressed
212 | map :noh
213 |
214 | " Smart way to move between windows
215 | map j
216 | map k
217 | map h
218 | map l
219 |
220 | " Close the current buffer
221 | map bd :Bclose
222 |
223 | " Close all the buffers
224 | map ba :1,1000 bd!
225 |
226 | " Useful mappings for managing tabs
227 | map tn :tabnew
228 | map to :tabonly
229 | map tc :tabclose
230 | map tm :tabmove
231 | map t :tabnext
232 |
233 | " Opens a new tab with the current buffer's path
234 | " Super useful when editing files in the same directory
235 | map te :tabedit =expand("%:p:h")/
236 |
237 | " Switch CWD to the directory of the open buffer
238 | map cd :cd %:p:h:pwd
239 |
240 | " Specify the behavior when switching between buffers
241 | try
242 | set switchbuf=useopen,usetab,newtab
243 | set stal=2
244 | catch
245 | endtry
246 |
247 | " Return to last edit position when opening files (You want this!)
248 | autocmd BufReadPost *
249 | \ if line("'\"") > 0 && line("'\"") <= line("$") |
250 | \ exe "normal! g`\"" |
251 | \ endif
252 | " Remember info about open buffers on close
253 | set viminfo^=%
254 |
255 |
256 | """"""""""""""""""""""""""""""
257 | " => Status line
258 | """"""""""""""""""""""""""""""
259 | " Always show the status line
260 | set laststatus=2
261 |
262 | " Format the status line
263 | set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l
264 |
265 |
266 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
267 | " => Editing mappings
268 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
269 | " Remap VIM 0 to first non-blank character
270 | map 0 ^
271 |
272 | " Move a line of text using ALT+[jk] or Comamnd+[jk] on mac
273 | nmap mz:m+`z
274 | nmap mz:m-2`z
275 | vmap :m'>+`mzgv`yo`z
276 | vmap :m'<-2`>my`
280 | nmap
281 | vmap
282 | vmap
283 | endif
284 |
285 | " Delete trailing white space on save, useful for Python and CoffeeScript ;)
286 | func! DeleteTrailingWS()
287 | exe "normal mz"
288 | %s/\s\+$//ge
289 | exe "normal `z"
290 | endfunc
291 | autocmd BufWrite *.py :call DeleteTrailingWS()
292 | autocmd BufWrite *.coffee :call DeleteTrailingWS()
293 |
294 |
295 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
296 | " => Ack searching and cope displaying
297 | " requires ack.vim - it's much better than vimgrep/grep
298 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
299 | " When you press gv you Ack after the selected text
300 | vnoremap gv :call VisualSelection('gv', '')
301 |
302 | " Open Ack and put the cursor in the right position
303 | map g :Ack
304 |
305 | " When you press r you can search and replace the selected text
306 | vnoremap r :call VisualSelection('replace', '')
307 |
308 | " Do :help cope if you are unsure what cope is. It's super useful!
309 | "
310 | " When you search with Ack, display your results in cope by doing:
311 | " cc
312 | "
313 | " To go to the next search result do:
314 | " n
315 | "
316 | " To go to the previous search results do:
317 | " p
318 | "
319 | map cc :botright cope
320 | map co ggVGy:tabnew:set syntax=qfpgg
321 | map n :cn
322 | map p :cp
323 |
324 |
325 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
326 | " => Spell checking
327 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
328 | " Pressing ,ss will toggle and untoggle spell checking
329 | map ss :setlocal spell!
330 |
331 | " Shortcuts using
332 | map sn ]s
333 | map sp [s
334 | map sa zg
335 | map s? z=
336 |
337 |
338 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
339 | " => Misc
340 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
341 | " Remove the Windows ^M - when the encodings gets messed up
342 | noremap m mmHmt:%s///ge'tzt'm
343 |
344 | " Quickly open a buffer for scribble
345 | map q :e ~/buffer
346 |
347 | " Quickly open a markdown buffer for scribble
348 | map x :e ~/buffer.md
349 |
350 | " Toggle paste mode on and off
351 | map pp :setlocal paste!
352 |
353 |
354 |
355 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
356 | " => Helper functions
357 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
358 | function! CmdLine(str)
359 | exe "menu Foo.Bar :" . a:str
360 | emenu Foo.Bar
361 | unmenu Foo
362 | endfunction
363 |
364 | function! VisualSelection(direction, extra_filter) range
365 | let l:saved_reg = @"
366 | execute "normal! vgvy"
367 |
368 | let l:pattern = escape(@", '\\/.*$^~[]')
369 | let l:pattern = substitute(l:pattern, "\n$", "", "")
370 |
371 | if a:direction == 'b'
372 | execute "normal ?" . l:pattern . "^M"
373 | elseif a:direction == 'gv'
374 | call CmdLine("Ack \"" . l:pattern . "\" " )
375 | elseif a:direction == 'replace'
376 | call CmdLine("%s" . '/'. l:pattern . '/')
377 | elseif a:direction == 'f'
378 | execute "normal /" . l:pattern . "^M"
379 | endif
380 |
381 | let @/ = l:pattern
382 | let @" = l:saved_reg
383 | endfunction
384 |
385 |
386 | " Returns true if paste mode is enabled
387 | function! HasPaste()
388 | if &paste
389 | return 'PASTE MODE '
390 | en
391 | return ''
392 | endfunction
393 |
394 | " Don't close window, when deleting a buffer
395 | command! Bclose call BufcloseCloseIt()
396 | function! BufcloseCloseIt()
397 | let l:currentBufNum = bufnr("%")
398 | let l:alternateBufNum = bufnr("#")
399 |
400 | if buflisted(l:alternateBufNum)
401 | buffer #
402 | else
403 | bnext
404 | endif
405 |
406 | if bufnr("%") == l:currentBufNum
407 | new
408 | endif
409 |
410 | if buflisted(l:currentBufNum)
411 | execute("bdelete! ".l:currentBufNum)
412 | endif
413 | endfunction
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/sherlock.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | EBook
5 | eBook
6 | eBook
7 | eBooks
8 | eBooks
9 | EBook
10 | EBOOK
11 | Menendez
12 | Boscombe
13 | V
14 | Pips
15 | X
16 | Beeches
17 | Trepoff
18 | E
19 | g
20 | P
21 | G
22 | t
23 | G'
24 | t'
25 | P
26 | Eg
27 | Eglow
28 | Eglonitz
29 | Egria
30 | uncourteous
31 | horses'
32 | Kramm
33 | Ormstein
34 | Gottsreich
35 | Sigismond
36 | Ormstein
37 | Felstein
38 | Clotilde
39 | Lothman
40 | Meningen
41 | Langham
42 | Kramm
43 | Mademoiselle's
44 | ostlers
45 | daintiest
46 | gentleman's
47 | Hankey's
48 | Edgeware
49 | surpliced
50 | expostulating
51 | plumber's
52 | Holmes'
53 | guardsmen
54 | guardsmen
55 | guardsmen
56 | marm
57 | intrusted
58 | ostlers
59 | Edgeware
60 | Arnsworth
61 | superscribed
62 | Esq
63 | n
64 | e
65 | Irene's
66 | Jabez
67 | Holmes'
68 | Jabez
69 | fishes'
70 | Jabez
71 | Omne
72 | Ezekiah
73 | U
74 | S
75 | Jabez
76 | wits'
77 | Ezekiah
78 | Londoners
79 | coster's
80 | Jabez
81 | Jabez
82 | planked
83 | B's
84 | overtopped
85 | Jabez
86 | James's
87 | Aldersgate
88 | JABEZ
89 | Mortimer's
90 | McFarlane's
91 | enwrapped
92 | James's
93 | hansoms
94 | Merryweather
95 | Merryweather
96 | Sholto
97 | Merryweather
98 | Merryweather
99 | Farrington
100 | Merryweather
101 | Merryweather
102 | Merryweather
103 | Merryweather
104 | Merryweather
105 | Merryweather
106 | napoleons
107 | napoleons
108 | Merryweather
109 | partie
110 | e
111 | Holmes'
112 | sir'
113 | Merryweather
114 | accomplice's
115 | Jabez
116 | L'homme
117 | c'est
118 | l'oeuvre
119 | c'est
120 | plannings
121 | outr
122 | conventionalities
123 | Dundas
124 | Hosmer
125 | Windibank
126 | Tottenham
127 | Windibank
128 | Windibank
129 | Hosmer
130 | gasfitters'
131 | Windibank
132 | Hosmer
133 | Windibank
134 | gasfitters'
135 | Hosmer
136 | Hosmer
137 | Hosmer
138 | Hosmer
139 | Hosmer
140 | Leadenhall
141 | Leadenhall
142 | Leadenhall
143 | chaffed
144 | Hosmer
145 | Windibank
146 | Hosmer
147 | King's
148 | Pancras
149 | Hosmer
150 | Hosmer
151 | Hosmer
152 | Hosmer
153 | Westhouse
154 | Marbank
155 | Fenchurch
156 | Hosmer
157 | brickish
158 | greyish
159 | typewritist
160 | pince
161 | Hosmer
162 | Hosmer
163 | Leadenhall
164 | Hosmer
165 | Angel'
166 | Leadenhall
167 | Windibank
168 | d
169 | nouement
170 | Windibank
171 | Windibank
172 | Hosmer
173 | Hosmer
174 | Windibank
175 | Windibank
176 | e
177 | r
178 | Windibank
179 | e's'
180 | slurred
181 | r's'
182 | Windibank
183 | Windibank
184 | Windibank
185 | Windibank
186 | Hosmer
187 | gentleman's
188 | Windibank
189 | Hosmer
190 | Windibank
191 | Windibank
192 | Hosmer
193 | Westhouse
194 | Marbank
195 | Fenchurch
196 | Windibank
197 | Voil
198 | BOSCOMBE
199 | Boscombe
200 | Paddington
201 | Anstruther
202 | Holmes'
203 | Paddington
204 | gaunter
205 | Boscombe
206 | Hatherley
207 | McCarthys
208 | Hatherley
209 | Boscombe
210 | Boscombe
211 | Hatherley
212 | Boscombe
213 | McCarthys
214 | Boscombe
215 | Boscombe
216 | McCarthys
217 | Boscombe
218 | murder'
219 | Lestrade
220 | Lestrade
221 | Lestrade
222 | Lestrade
223 | m
224 | Hatherley
225 | coroner's
226 | Boscombe
227 | Hatherley
228 | Turner's
229 | Cooee'
230 | outr
231 | dustcoat
232 | Lestrade
233 | Lestrade
234 | Lestrade
235 | caseful
236 | Lestrade
237 | Lestrade
238 | Lestrade
239 | Lestrade
240 | minutes'
241 | Holmes'
242 | improbabilities
243 | Lestrade's
244 | Holmes'
245 | Lestrade
246 | fagged
247 | upbraided
248 | Lestrade
249 | Hatherley
250 | Boscombe
251 | Lestrade
252 | Hatherley
253 | Turner's
254 | Lestrade
255 | Lestrade
256 | Hatherley
257 | blotches
258 | Holmes'
259 | Boscombe
260 | Boscombe
261 | Lestrade
262 | Boscombe
263 | Hatherley
264 | Hatherley
265 | Lestrade
266 | Tiptoes
267 | tiptoes
268 | Lestrade
269 | Lestrade
270 | verrons
271 | Lestrade
272 | Lestrade
273 | Cooee'
274 | Boscombe
275 | ARAT
276 | Lestrade
277 | s
278 | deathbeds
279 | V
280 | PIPS
281 | Paradol
282 | Grice
283 | Patersons
284 | Uffa
285 | Russell's
286 | pince
287 | Horsham
288 | Prendergast
289 | Tankerville
290 | Openshaw
291 | Openshaw
292 | Jackson's
293 | Horsham
294 | Horsham
295 | pips
296 | K
297 | K
298 | K
299 | K
300 | pips
301 | cashbox
302 | Horsham
303 | K
304 | scummed
305 | Horsham
306 | K
307 | K
308 | K
309 | register'
310 | Openshaw
311 | Horsham
312 | pips
313 | K
314 | K
315 | K
316 | Freebody
317 | Portsdown
318 | footmarks
319 | Horsham
320 | pips
321 | K
322 | K
323 | K
324 | Prendergast
325 | Openshaw
326 | pips
327 | pips
328 | Paramore
329 | Paramore
330 | Horsham
331 | reabsorbed
332 | Openshaw
333 | Sholtos
334 | K
335 | K
336 | K
337 | K
338 | Encyclopaedia'
339 | Openshaw
340 | Openshaw
341 | Openshaw
342 | coroner's
343 | K
344 | K
345 | K
346 | Ku
347 | Ku
348 | pips
349 | Openshaw
350 | pips
351 | B
352 | C'
353 | B
354 | C
355 | C
356 | Openshaw
357 | Openshaw's
358 | Horsham
359 | Openshaw
360 | H
361 | Openshaw
362 | Horsham
363 | decoyed
364 | Openshaw
365 | unavenged
366 | pips
367 | S
368 | H
369 | J
370 | O
371 | Openshaw
372 | Lloyd's
373 | Star'
374 | Star'
375 | Goodwins
376 | Openshaw
377 | pips
378 | L
379 | S
380 | Isa
381 | D
382 | D
383 | Quincey's
384 | Isa
385 | Swandam
386 | Isa
387 | Whitney's
388 | Swandam
389 | Isa
390 | d'you
391 | Holmes'
392 | Whitney's
393 | sots
394 | Ay
395 | Clair
396 | horses'
397 | Cedars
398 | Cedars
399 | Clair's
400 | balustraded
401 | rifts
402 | Clair
403 | Clair
404 | Clair
405 | Swandam
406 | Clair
407 | Swandam
408 | Clair
409 | Swandam
410 | Clair
411 | Clair
412 | Clair
413 | Clair
414 | Clair's
415 | gentleman's
416 | Clair
417 | vestas
418 | Clair
419 | Clair
420 | Clair's
421 | Clair's
422 | Clair
423 | Clair
424 | coat's
425 | Clair
426 | Cedars
427 | Clair
428 | soie
429 | greyish
430 | Clair
431 | Swandam
432 | Swandam
433 | Clair
434 | Bradstreet
435 | Bradstreet
436 | Bradstreet
437 | beggarman
438 | Clair
439 | tinker's
440 | Clair
441 | Clair
442 | Bradstreet
443 | ay
444 | fortnight's
445 | Swandam
446 | Clair
447 | Bradstreet
448 | Bradstreet
449 | Peterson's
450 | Tottenham
451 | Goodge
452 | roughs
453 | Tottenham
454 | roughs
455 | Baker'
456 | H
457 | B
458 | maker's
459 | H
460 | B
461 | brims
462 | daubing
463 | Morcar's
464 | Horner
465 | Horner
466 | inst
467 | Morcar
468 | Horner
469 | Morcar
470 | Horner
471 | Horner
472 | Horner
473 | Cusack
474 | Ryder's
475 | Bradstreet
476 | B
477 | Horner
478 | Horner
479 | Tottenham
480 | Goodge
481 | James's
482 | Horner
483 | Holmes'
484 | Holmes'
485 | roughs
486 | disjecta
487 | membra
488 | Windigate
489 | ulsters
490 | doctors'
491 | Wimpole
492 | Wigmore
493 | Holborn
494 | aproned
495 | them's
496 | Breckinridge
497 | Breckinridge
498 | years'
499 | Holborn
500 | Endell
501 | Breckinridge
502 | D'you
503 | D'you
504 | Oakshott
505 | Oakshott
506 | Windigate
507 | un'
508 | Oakshott
509 | Breckinridge
510 | Oakshott
511 | Oakshott
512 | Proosia
513 | Oakshott
514 | Breckinridge
515 | Windigate
516 | claspings
517 | unclaspings
518 | bonniest
519 | game's
520 | Morcar's
521 | Cusack
522 | ladyship's
523 | Horner
524 | Cusack
525 | Christ's
526 | Horner
527 | Horner
528 | Oakshott
529 | Maudsley
530 | Pentonville
531 | Kilburn
532 | Kilburn
533 | Jem
534 | Jem's
535 | huffed
536 | Kilburn
537 | dealer's
538 | Jem
539 | dealer's
540 | Breckinridge
541 | Jem
542 | Breckinridge
543 | Holmes'
544 | Horner
545 | Roylotts
546 | Grimesby
547 | Roylott
548 | Farintosh
549 | Farintosh
550 | Roylotts
551 | Roylott
552 | Roylott
553 | Roylott
554 | Roylott
555 | stepfather's
556 | Honoria
557 | Westphail
558 | Roylott's
559 | Roylott
560 | Roylott's
561 | Armitage
562 | Armitage
563 | Armitage
564 | Roylott
565 | stepdaughter's
566 | fleshless
567 | Grimesby
568 | Roylott
569 | Doctors'
570 | morning's
571 | Eley's
572 | pokers
573 | Grimesby
574 | Roylott
575 | Roylott
576 | blotched
577 | outsides
578 | Roylott's
579 | counterpaned
580 | ventilators
581 | Grimesby
582 | Roylott's
583 | stepfather's
584 | pity's
585 | Roylott
586 | Grimesby
587 | Roylott
588 | Roylott's
589 | coroner's
590 | goodness'
591 | unrepaired
592 | Holmes'
593 | Roylott's
594 | Grimesby
595 | Roylott
596 | Grimesby
597 | Roylott
598 | snakish
599 | Grimesby
600 | Roylott's
601 | Hatherley's
602 | Warburton's
603 | Paddington
604 | Paddington
605 | dooties
606 | Paddington
607 | Hatherley
608 | caraffe
609 | dottles
610 | rashers
611 | Hatherley
612 | Venner
613 | Matheson
614 | Stark'
615 | Hatherley
616 | Hatherley
617 | fleshless
618 | Eyford
619 | Paddington
620 | Eyford
621 | fuller's
622 | fuller's
623 | Eyford
624 | fuller's
625 | Hatherley
626 | Eyford
627 | intrusted
628 | fuller's
629 | Paddington
630 | Eyford
631 | Eyford
632 | fuller's
633 | blotches
634 | whishing
635 | fuller's
636 | fuller's
637 | inst
638 | Hayling
639 | Eyford
640 | Bradstreet
641 | Bradstreet
642 | Eyford
643 | Bradstreet
644 | Hatherley
645 | Bradstreet
646 | coiners
647 | Eyford
648 | Bradstreet
649 | Becher's
650 | Becher
651 | Becher
652 | Hatherley
653 | Holmes'
654 | Holmes'
655 | X
656 | Jezail
657 | Lestrade
658 | Vere
659 | Hatty
660 | Doran
661 | Aloysius
662 | Doran
663 | Esq
664 | U
665 | S
666 | Hatty
667 | Doran
668 | Doran
669 | Westbury
670 | Birchmoor
671 | Aloysius
672 | Doran
673 | Petersfield
674 | Wedding'
675 | Aloysius
676 | Doran
677 | Eustace
678 | Aloysius
679 | Doran
680 | Aloysius
681 | Doran
682 | Millar
683 | danseuse
684 | Hatty
685 | Doran
686 | fait
687 | accompli
688 | Doran
689 | Millar
690 | Doran's
691 | Doran's
692 | Lestrade
693 | decoyed
694 | Thoreau's
695 | Lestrade
696 | Lestrade
697 | Lestrade
698 | Millar
699 | Lestrade
700 | Millar
701 | F
702 | H
703 | M
704 | decoyed
705 | Millar
706 | Lestrade
707 | Lestrade
708 | Lestrade
709 | Lestrade
710 | Lestrade
711 | Lestrade
712 | confectioner's
713 | p
714 | t
715 | McQuire's
716 | miners'
717 | Frank's
718 | Lestrade
719 | Simon's
720 | miners'
721 | Lestrade
722 | eightpence
723 | H
724 | resounded
725 | imbedded
726 | beryls
727 | beryls
728 | Bankers'
729 | Streatham
730 | sterner
731 | Burnwell
732 | Burnwell
733 | beryls
734 | Arthur's
735 | beryls
736 | Arthur's
737 | Burnwell
738 | Arthur's
739 | Streatham
740 | banker's
741 | Holmes'
742 | Fairbank
743 | Fairbank
744 | tradesmen's
745 | tradesmen's
746 | Holmes'
747 | banker's
748 | jeweller's
749 | footmarks
750 | o'
751 | Streatham
752 | Burnwell
753 | footmarks
754 | servants'
755 | Burnwell
756 | tradesmen's
757 | Burnwell
758 | Streatham
759 | Burnwell
760 | BEECHES
761 | c
762 | l
763 | bres
764 | unobservant
765 | plover's
766 | Westaway's
767 | Westaway
768 | Stoper
769 | Stoper
770 | Stoper
771 | Beeches
772 | faddy
773 | faddy
774 | ladies'
775 | ladies'
776 | Stoper
777 | Stoper
778 | Beeches
779 | Stoper
780 | JEPHRO
781 | RUCASTLE
782 | Rucastle
783 | Rucastle
784 | acetones
785 | steadings
786 | Rucastle
787 | Rucastle
788 | Rucastle
789 | Beeches
790 | Southerton's
791 | beeches
792 | Rucastle
793 | Rucastle
794 | Rucastle
795 | Rucastle
796 | Rucastle
797 | Beeches
798 | Rucastle
799 | Rucastle
800 | Rucastle
801 | Rucastle
802 | Rucastle
803 | r
804 | pertoire
805 | railings
806 | Rucastle
807 | Jephro
808 | Rucastle
809 | Beeches
810 | Rucastle
811 | Rucastle
812 | goodness'
813 | beeches
814 | Rucastles
815 | Tollers
816 | Rucastle
817 | Rucastle
818 | Rucastle
819 | Rucastle
820 | unpapered
821 | uncarpeted
822 | barricaded
823 | Rucastle
824 | overdid
825 | again'
826 | Rucastle
827 | Rucastle
828 | Rucastles
829 | Beeches
830 | Rucastles
831 | Rucastle
832 | fianc
833 | Rucastle
834 | cruelty's
835 | Beeches
836 | Rucastle's
837 | Holmes'
838 | Hunter's
839 | Rucastles
840 | Rucastle's
841 | Rucastle
842 | ha'
843 | Alice's
844 | Rucastle's
845 | death's
846 | Rucastle
847 | Rucastle
848 | standi
849 | beeches
850 | Rucastle
851 | Rucastle's
852 | Rucastle
853 | EBOOK
854 | txt
855 | eBooks
856 | txt
857 | txt
858 | eBooks
859 | eBooks
860 | eBooks
861 | eBooks
862 | http
863 | http
864 | promo
865 | pg
866 | eBooks
867 | eBook
868 | http
869 | ibiblio
870 | org
871 | ibiblio
872 | org
873 | docs
874 | eBook
875 | eBooks
876 | eBooks
877 | eBooks
878 | eBooks
879 | eBooks
880 | PMB
881 | c
882 | http
883 | html
884 | S
885 | EBOOKS
886 | eBook
887 | eBook
888 | EBOOK
889 | tm
890 | eBook
891 | eBook
892 | eBook
893 | TM
894 | EBOOKS
895 | tm
896 | eBook
897 | tm
898 | eBooks
899 | S
900 | eBook
901 | eBooks
902 | eBooks
903 | eBook
904 | eBook
905 | tm
906 | eBook
907 | eBook
908 | EBOOK
909 | EBOOK
910 | tm
911 | eBook
912 | eBook
913 | tm
914 | eBook
915 | eBook
916 | eBook
917 | eBook
918 | eBook
919 | eBook
920 | eBook
921 | eBook
922 | eBook's
923 | C
924 | S
925 | eBooks
926 | EBOOKS
927 | Ver
928 |
929 | WORDS MISSPELLED: 924
930 | WORDS IN DICTIONARY: 143091
931 | WORDS IN TEXT: 107602
932 |
--------------------------------------------------------------------------------
/files/usr/bin/backup50:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # backup50
3 | # a wrapper for copy.com
4 | #
5 | # by Annaleah Ernst
6 | # CS50 jterm 2016
7 | # annaleahernst@college.harvard.edu
8 |
9 | ############### BEGIN GLOBAL AND CONSTANT DECLARATIONS #########################
10 | set -uo pipefail
11 | IFS=$'\n\t'
12 |
13 | # only run as ubuntu
14 | if [ "$(whoami)" != "ubuntu" ]; then
15 | echo "This script must only be run by the ubuntu user (don't use sudo)!"
16 | exit 1
17 | fi
18 |
19 | # check environment variables
20 | [ -z "$HOME" ] && echo "Environment variable HOME not set." && exit 2;
21 | [ -z "$C9_USER" ] && echo "Environment variable C9_USER not set." && exit 2;
22 | [ -z "$C9_PROJECT" ] && echo "Environment variable C9_PROJECT not set." && exit 2;
23 |
24 | # check for prerequisites
25 | if [ $(dpkg -s inotify-tools > /dev/null 2>&1)$? -ne 0 ]; then
26 | echo "Dependencies are not installed, please run update50."
27 | exit 2
28 | fi
29 |
30 | # name of script
31 | readonly SCRIPTNAME="backup50"
32 |
33 | # important cloud paths
34 | readonly CLDWKSPCS="workspaces"
35 | readonly CLDUSERS="$CLDWKSPCS/$C9_USER"
36 | readonly CLDPRJCT="$CLDUSERS/$C9_PROJECT"
37 |
38 | # important local paths
39 | readonly WORKDIR="$HOME/workspace" # path to workspace
40 | readonly COPYLOC="$HOME/bin/copy" # location of the copy folder
41 | readonly DOTCOPY="$HOME/.copy" # location of the metadata
42 | readonly STATUSFILE="$DOTCOPY/status.txt" # location of status data
43 | readonly WATCHPID="$DOTCOPY/watch.pid" # location of process id for running watch daemon
44 | readonly SYNCDIR="$DOTCOPY/userdata" # root directory of copy.com data
45 | readonly SYMLINKDIR="$SYNCDIR/$CLDUSERS" # directory containing symlink
46 | readonly SYMLINK="$SYMLINKDIR/$C9_PROJECT" # symlink to workspace
47 |
48 | # the copy.com "cli" that we're wrapping
49 | readonly COPYCMD="$COPYLOC/x86_64/CopyCmd"
50 | readonly COPYCONSOLE="$COPYLOC/x86_64/CopyConsole"
51 |
52 | # status messages
53 | STATUS=""
54 | readonly INVALIDLOGN="Incorrect username or password"
55 | readonly MISSLOGIN="Missing Login Information"
56 | readonly NOTINSTALLED="$SCRIPTNAME has not been installed. Type '$SCRIPTNAME start' to begin setup."
57 | readonly NOWATCH="No watch running"
58 | readonly NOTRUN="$SCRIPTNAME is not running!"
59 |
60 | # process variables; name, ID
61 | readonly PROCESSNAME="CopyConsole"
62 | PID=$(pgrep "$PROCESSNAME")
63 | readonly TIMEOUT=5 # process times out after this many seconds
64 |
65 | # messages
66 | readonly STARTSUCCESS="Syncing started successfully!"
67 | readonly STARTFAILURE="Unable to start $SCRIPTNAME at this time."
68 | readonly STOPSUCCESS="Syncing stopped."
69 | readonly STOPFAILURE="Unable to stop $SCRIPTNAME at this time."
70 | readonly CLDFAILURE="ERROR: Failure to connect with cloud. Try again later. Exiting..."
71 | readonly DNLDFAILURE="ERROR: Unable to to download binaries. Exiting..."
72 | readonly FILEFAILURE="ERROR: Unable to remove local file. Exiting..."
73 |
74 | # misc regexs (don't panic)
75 | readonly EXREGEX='s/^\///gm' # for listing excludes
76 | readonly LSREGEX='s/^d.[ \t\f\v]*|^-.[ \t\f\v]*(\S* )//gm' # for listing files
77 |
78 | ################## BEGIN FUNCTION DEFINITIONS ##################################
79 |
80 | # usage: check "error message"
81 | # used to standardize error detection
82 | check(){
83 | # error check cloud cli
84 | if [ $? -ne 0 ]; then
85 | stop > /dev/null
86 | error_msg "$1"
87 | exit 3
88 | fi
89 | }
90 |
91 | # deletes files that are excluded on the cloud and have been (sneakily) downloaded locally
92 | deleteExcludes(){
93 | delete_helper(){
94 | for file in $(ls "$1"); do
95 | if [ "$file" != "$2" ]; then
96 | rm -rf "$1/$file"
97 | fi
98 | done
99 | }
100 | # delete files in any of three sub dirs
101 | delete_helper "$SYNCDIR" "$CLDWKSPCS"
102 | delete_helper "$SYNCDIR/$CLDWKSPCS" "$C9_USER"
103 | delete_helper "$SYNCDIR/$CLDUSERS" "$C9_PROJECT"
104 | }
105 |
106 | error_msg(){
107 | echo "$1" >&2
108 | }
109 |
110 | # climb through file tree and exlude all files not in project to prevent bricking IDE
111 | exclude(){
112 | # usage: exclude_helper [FILE/FOLDER TO KEEP] ([PATH TO CURRENT DIR])
113 | exclude_helper(){
114 | dir=""
115 | path=""
116 | # get stripped down file/directory names
117 | if [ $# -eq 2 ]; then
118 | # set path, start at 3rd line of search results; first line is metadata, 2nd is pwd
119 | path="$2/"
120 | dir=$("$COPYCMD" Cloud ls "$2" | sed -r "$LSREGEX" | tail -n +3)
121 | else
122 | # starting at 2nd line of search results; first is metadata
123 | dir=$("$COPYCMD" Cloud ls | sed -r "$LSREGEX" | tail -n +2)
124 | fi
125 | check "$CLDFAILURE" # error check cloud cli
126 |
127 | for file in $dir; do
128 | if [ "$file" != "$1" ]; then
129 | "$COPYCMD" Cloud exclude -exclude "$path$file" > /dev/null
130 | check "$CLDFAILURE" # error check cloud cli
131 | fi
132 | done
133 | }
134 | # exclude files in each sub directory of our workspaces tree
135 | exclude_helper "$CLDWKSPCS"
136 | exclude_helper "$C9_USER" "$CLDWKSPCS"
137 | exclude_helper "$C9_PROJECT" "$CLDUSERS"
138 | }
139 |
140 | # displays information on the usage of this wrapper
141 | help(){
142 | echo "Usage: $SCRIPTNAME [start|stop|status|uninstall]"
143 | echo "Functions:"
144 | echo -e "\t start \t\t start Copy.com syncing, or install if first run"
145 | echo -e "\t stop \t\t stop Copy.com syncing"
146 | echo -e "\t status \t get info about current Copy.com processes"
147 | echo -e "\t uninstall \t uninstall Copy.com program files"
148 | }
149 |
150 | # installs the copy.com binaries for the first time
151 | install(){
152 | if [ ! -e "$COPYCMD" ]; then
153 | echo "Downloading Copy....";
154 | pushd /tmp > /dev/null
155 | wget -q -O - "https://copy.com/install/linux/Copy.tgz" | tar xzf - > /dev/null;
156 | check "$DNLDFAILURE" # error check download
157 |
158 | # move into place
159 | mkdir -p "$COPYLOC"
160 | mv /tmp/copy/* "$COPYLOC/"
161 | popd > /dev/null
162 |
163 | # make the metadata folder if copy.com was lazy
164 | if [ ! -e "$STATUSFILE" ]; then
165 | mkdir -p "$DOTCOPY"
166 | echo -n "$MISSLOGIN" > "$STATUSFILE"
167 | fi
168 | echo "$NOWATCH" > "$WATCHPID"
169 |
170 | # create root dir for the cloud and a link to current workspace in appropriate subfolder
171 | mkdir -p "$SYMLINKDIR"
172 | ln -s "$WORKDIR" "$SYMLINK"
173 |
174 | echo "Download complete."
175 | else
176 | echo "Already installed."
177 | fi
178 | start
179 | }
180 |
181 | # log in to copy.com after install
182 | login(){
183 | echo -n "Do you already have a Copy.com account? [y/N]: "; read prompt
184 | if [[ "$prompt" =~ [yY](es)* ]]; then
185 | echo "To setup Copy.com and backup your workspace, please enter your account information."
186 | echo -n "Email address: "; read email
187 | echo -n "Password: "; read -s pswrd;
188 | echo -e "\nChecking..."
189 | test -z $pswrd && error_msg "$INVALIDLOGN" && exit 4 # check for null password
190 |
191 | # attempt to login user
192 | $COPYCONSOLE -daemon -u="$email" -p="$pswrd" -r="$SYNCDIR" > /dev/null
193 | check "$CLDFAILURE" # error check cloud cli
194 | process "init"
195 | else
196 | echo "Before completing setup, you need a copy.com account."
197 | echo "Please proceed to https://www.copy.com and create an account. Exiting..."
198 | fi
199 | }
200 |
201 | # handles current CopyConsole daemon process
202 | # arguments: [start|stop|init]
203 | # start: PID starts as "". Run until PID changes to a value or timeout, report success or failure
204 | # stop: PID starts as a value. Run until PID changes to "" or timeout, report success or failure
205 | # init: PID starts as "". Run until PID changes to a value, report failure or if successful...
206 | # immediately run stop to prevent syncing. Run exclude on the cloud file tree. Finally,
207 | # run start to begin syncing.
208 | process(){
209 | currentPID=$PID
210 | counter=0
211 | # until there's a process id state change or we run out of time, search for process
212 | until [ "$currentPID" != "$PID" ] || [ $counter -eq $TIMEOUT ]; do
213 | sleep 1
214 | currentPID=$(pgrep "$PROCESSNAME")
215 | let counter+=1
216 | done;
217 | PID="$currentPID" # update PID
218 |
219 | case "$1" in
220 | "init")
221 | if [ -z "$PID" ]; then
222 | # if there's not a process running, there was an error
223 | status
224 | error_msg "$STATUS. Exiting..."
225 | exit 7
226 | else
227 | # stop syncing and handle excludes
228 | stop > /dev/null
229 | echo "Setup successful. Beginning exclusions. This may take a few minutes..."
230 | exclude
231 | echo "Exclusions complete."
232 | start
233 | fi
234 | ;;
235 | "start")
236 | # if there's a process, echo succcess, else failure
237 | if [ -n "$PID" ]; then
238 | # add the most recent inotify and daemon process to watch list
239 | pgrep -n "inotifywait" > "$WATCHPID"
240 | echo "$STARTSUCCESS"
241 | else
242 | error_msg "$STARTFAILURE"
243 | exit 5
244 | fi
245 | ;;
246 | "stop")
247 | # if there's not a process, echo succcess, else failure
248 | if [ -z "$PID"]; then
249 | echo "$STOPSUCCESS"
250 | else
251 | error_msg "$STOPFAILURE"
252 | exit 6
253 | fi
254 | ;;
255 | *)
256 | ;;
257 | esac
258 | }
259 |
260 | # set current status
261 | status(){
262 | if [ -e "$STATUSFILE" ]; then
263 | STATUS="$(head -n 1 $STATUSFILE)"
264 | else
265 | STATUS="$NOTINSTALLED"
266 | fi
267 | }
268 |
269 | # start copy
270 | start(){
271 | status # get status
272 | if [ ! -e "$COPYLOC" ]; then
273 | install
274 | elif [ "$STATUS" = "$MISSLOGIN" ] || [ "$STATUS" = "$INVALIDLOGN" ]; then
275 | echo "Account not setup."
276 | login
277 | elif [ -z "$PID" ]; then
278 | echo "Starting..."
279 |
280 | # start subshell & begin watching sync directories to deal with new files
281 | ( inotifywait "@$SYNCDIR/$CLDPRJCT" "$SYNCDIR" "$SYNCDIR/$CLDWKSPCS" "$SYNCDIR/$CLDUSERS" -e move,create \
282 | && echo "$NOWATCH" > "$WATCHPID" \
283 | && "$SCRIPTNAME" "--delete_local_excludes"
284 | ) &> /dev/null &
285 |
286 | # start copy daemon
287 | $COPYCONSOLE -daemon > /dev/null
288 | check "$CLDFAILURE" # error check cloud cli
289 | process "start"
290 | else
291 | echo "$SCRIPTNAME is already running!"
292 | fi
293 | }
294 |
295 | # stop syncing
296 | stop(){
297 | if [ -n "$PID" ]; then
298 | echo "Stopping..."
299 | kill $PID
300 | watchPID=$(head -n 2 "$WATCHPID") # get the process id of the watcher daemon
301 | test "$watchPID" != "$NOWATCH" && kill "$watchPID"
302 | echo "$NOWATCH" > "$WATCHPID"
303 | process "stop"
304 | echo "$NOTRUN" > "$STATUSFILE"
305 | else
306 | echo "$NOTRUN"
307 | fi
308 | }
309 |
310 | # (safely) uninstall copy
311 | uninstall(){
312 | if [ -e $COPYCMD ]; then
313 | echo -n "Are you sure you want to uninstall Copy? [y/N]: "; read prompt
314 | if [[ "$prompt" =~ [yY](es)* ]]; then
315 | echo "Uninstalling...";
316 | stop > /dev/null
317 | unlink "$SYMLINK";
318 | rm -rf "$COPYLOC";
319 | rm -rf "$DOTCOPY";
320 | echo "Copy has been uninstalled."
321 | fi
322 | else
323 | echo "Copy is not installed!"
324 | fi
325 | }
326 |
327 | # a bit of cleanup on exit
328 | #exit_trap(){
329 | # popd > /dev/null
330 | #}
331 | #trap exit_trap EXIT
332 |
333 | ######################### BEGIN BODY OF PROGRAM ##############################
334 |
335 | #pushd "$HOME" > /dev/null
336 |
337 | if [ $# -ne 1 ]; then
338 | help
339 | exit 6
340 | fi
341 |
342 | case "$1" in
343 | "help")
344 | help
345 | ;;
346 | "start")
347 | start
348 | ;;
349 | "status")
350 | status
351 | echo "$STATUS"
352 | ;;
353 | "stop")
354 | stop
355 | ;;
356 | "uninstall")
357 | uninstall
358 | ;;
359 | "--delete_local_excludes")
360 | # the secret option for inotify to call...
361 | stop
362 | exclude && deleteExcludes
363 | start
364 | ;;
365 | *)
366 | echo "$SCRIPTNAME: unrecognized option '$1'"
367 | echo "Usage: $SCRIPTNAME [help|start|stop|status|uninstall]"
368 | echo "Try '$SCRIPTNAME help' for more information."
369 | ;;
370 | esac
371 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/federalist.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | Etext
5 | txt
6 | Etext
7 | etexts
8 | txt
9 | txt
10 | etext
11 | hr
12 | Etext
13 | x
14 | IBC
15 | IBC
16 | IBC
17 | SASLE's
18 | RiceMail
19 | ATTMAIL
20 | MCImail
21 | vmd
22 | cso
23 | uiuc
24 | edu
25 | uiucvmd
26 | uiucvmd
27 | vmd
28 | cso
29 | uiuc
30 | edu
31 | Attmail
32 | vmd
33 | cso
34 | uiuc
35 | edu
36 | MCImail
37 | MCI
38 | MBX
39 | vmd
40 | cso
41 | uiuc
42 | edu
43 | mrcnext
44 | cso
45 | uiuc
46 | edu
47 | cd
48 | etext
49 | cd
50 | cd
51 | etext
52 | cd
53 | etext
54 | dir
55 | mget
56 | AAINDEX
57 | MGET
58 | ETEXTS
59 | etext
60 | etext
61 | ETEXT
62 | tm
63 | etext
64 | etext
65 | etext
66 | hysical
67 | TM
68 | ETEXTS
69 | tm
70 | etext
71 | tm
72 | etexts
73 | S
74 | etext
75 | etexts
76 | etexts
77 | etext
78 | etext
79 | etext
80 | tm
81 | etext
82 | dis
83 | NEGLI
84 | GENCE
85 | etext
86 | etext
87 | inaccu
88 | ETEXT
89 | ETEXT
90 | ETEXT
91 | etext
92 | pense
93 | etext
94 | ation
95 | etext
96 | distribu
97 | tion
98 | etext
99 | tm
100 | etext
101 | ically
102 | quires
103 | etext
104 | etext
105 | etext
106 | etext
107 | etext
108 | etext
109 | etext
110 | etext
111 | OCR
112 | etexts
113 | B
114 | ETEXTS
115 | Ver
116 | unperplexed
117 | confederacies
118 | proselytes
119 | Heresies
120 | invectives
121 | confederacies
122 | votaries
123 | PUBLIUS
124 | confederacies
125 | uncontradicted
126 | confederacies
127 | sovereignties
128 | widespreading
129 | sovereignties
130 | wellbalanced
131 | pursuaded
132 | pursuade
133 | confederacies
134 | confederacies
135 | PUBLIUS
136 | wellinformed
137 | confederacies
138 | confederacies
139 | violences
140 | borderers
141 | PUBLIUS
142 | confederacies
143 | uneasinesses
144 | confederacies
145 | embarrassments
146 | confederacies
147 | confederacies
148 | PUBLIUS
149 | animosities
150 | affection''
151 | confederacies
152 | confederacies
153 | confederacies
154 | confederacies
155 | confederacies
156 | borderers
157 | confederacies
158 | confederacies
159 | confederacies
160 | sovereignties
161 | PUBLIUS
162 | confederacies
163 | sovereignties
164 | rivalships
165 | SAMNIANS
166 | MEGARENSIANS
167 | V
168 | V
169 | descanted
170 | rivalships
171 | wellregulated
172 | antipathies
173 | PUBLIUS
174 | Plutarch's
175 | P
176 | Cambray
177 | Principes
178 | des
179 | Negociations''
180 | l'Abbe
181 | Mably
182 | ungranted
183 | cessions
184 | preponderated
185 | unpropitious
186 | SOVEREIGNTIES
187 | confederacies
188 | procrastinations
189 | resentments
190 | incumbrances
191 | delinquencies
192 | Delinquencies
193 | confederacies
194 | PUBLIUS
195 | retaken
196 | confederacies
197 | expedients
198 | confederacies
199 | confederacies
200 | oppressions
201 | encroachments
202 | menacings
203 | usurpations
204 | T
205 | disproportioned
206 | confederacies
207 | distempered
208 | PUBLIUS
209 | sophisms
210 | corruptions
211 | PUBLIUS
212 | Lawa
213 | wellconstructed
214 | mischiefs
215 | animosities
216 | mischiefs
217 | suffrages
218 | suffrages
219 | PUBLIUS
220 | rivalships
221 | intermeddlings
222 | concentred
223 | confederated
224 | fluctations
225 | unsalable
226 | PUBLIUS
227 | philosophiques
228 | Americains
229 | rivalship
230 | inperceptible
231 | confederacies
232 | confederacies
233 | embarrassments
234 | PUBLIUS
235 | confederacies
236 | sovereignties
237 | confederacies
238 | confederacies
239 | confederacies
240 | confederacies
241 | PUBLIUS
242 | concentred
243 | fellowcitizens
244 | PUBLIUS
245 | encroachments
246 | imperio
247 | contradistinguished
248 | mischiefs
249 | rivalships
250 | superintending
251 | improprieties
252 | sovereignties
253 | orbs
254 | intrusted
255 | delinquencies
256 | PUBLIUS
257 | confederacies
258 | suffrages
259 | delinquencies
260 | aggressing
261 | delinquencies
262 | instigations
263 | confederacies
264 | intrusted
265 | illhumors
266 | dismemberments
267 | PUBLIUS
268 | intrusted
269 | allurements
270 | transcendant
271 | unfrequently
272 | confederacies
273 | feudatories
274 | demesnes
275 | feudatories
276 | oppressions
277 | fiefs
278 | clanship
279 | encroachments
280 | rivalship
281 | PUBLIUS
282 | confederacies
283 | Amphictyonic
284 | aggressing
285 | Amphictyons
286 | Delphos
287 | Amphictyons
288 | Lacedaemonians
289 | Thebans
290 | Lacedaemonians
291 | Lacedaemonians
292 | orbs
293 | Milot
294 | hatreds
295 | dissentions
296 | Phocians
297 | Amphictyonic
298 | Phocians
299 | Thebans
300 | Amphictyons
301 | Amphictyonic
302 | praetors
303 | Philopoemen
304 | Achaeans
305 | Amphictyonic
306 | Aratus
307 | Mably
308 | Amphictyonic
309 | Achaeans
310 | Achaeans
311 | usurpers
312 | Peloponnesus
313 | Achaeans
314 | Cleomenes
315 | unprovoked
316 | Achaeans
317 | Achaeans
318 | Cleomenes
319 | intermeddling
320 | Cleomenes
321 | Achaeans
322 | tyrannies
323 | Achaeans
324 | AEtolians
325 | Achaeans
326 | Achaia
327 | PUBLIUS
328 | confederacies
329 | Gauls
330 | fiefs
331 | Suabian
332 | disturbers
333 | electorates
334 | inbecility
335 | defaulters
336 | Thuanus
337 | Donawerth
338 | Suabia
339 | Abb
340 | reannexed
341 | heriditary
342 | accomodating
343 | bailages
344 | Luzerne
345 | PUBLIUS
346 | Pfeffel
347 | Nouvel
348 | Abreg
349 | Chronol
350 | l'Hist
351 | d'Allemagne
352 | aristocracies
353 | superintends
354 | admiralties
355 | florins
356 | Belgic
357 | confedracy
358 | Mably
359 | contradistinguished
360 | PUBLIUS
361 | mulcts
362 | encroachments
363 | distempers
364 | usurpations
365 | King's
366 | PUBLIUS
367 | Jenkinson
368 | expedients
369 | reget
370 | Deleware
371 | confederated
372 | nonattendance
373 | mischiefs
374 | suffrages
375 | prevalency
376 | major's
377 | judicatories
378 | prepossessions
379 | infirmities
380 | PUBLIUS
381 | intrusted
382 | intrusted
383 | cavils
384 | confederacies
385 | indispensible
386 | PUBLIUS
387 | proprietory
388 | overflowings
389 | superadded
390 | expedients
391 | countenanced
392 | disconcertion
393 | encroachments
394 | PUBLIUS
395 | bils
396 | LEGISLATURE''
397 | rivalship
398 | perserverance
399 | Lacedaemonians
400 | PUBLIUS
401 | prevalency
402 | expedients
403 | wellinformed
404 | encroachments
405 | calamaties
406 | PUBLIUS
407 | inexplicitness
408 | expedients
409 | delinquencies
410 | PUBLIUS
411 | seditions
412 | scourges
413 | Confederacies
414 | Confederacies
415 | expedients
416 | usurpations
417 | intrusted
418 | usurpers
419 | usurpers
420 | usurpers
421 | usurpations
422 | PUBLIUS
423 | superintending
424 | COMITATUS
425 | COMITATUS
426 | intrusted
427 | COMITATUS
428 | Gorgons
429 | hydras
430 | chimeras
431 | dire''
432 | d'ors
433 | ducats
434 | intrenchments
435 | usurpers
436 | usurpations
437 | distempered
438 | superadded
439 | selfpreservation
440 | PUBLIUS
441 | bashaws
442 | fatuus
443 | embarrassments
444 | expedients
445 | usurers
446 | deficiences
447 | sightedness
448 | PUBLIUS
449 | DISQUISITIONS
450 | geometricians
451 | untractableness
452 | disingenuity
453 | superintending
454 | usurpations
455 | encroachments
456 | PUBLIUS
457 | resentments
458 | LEGISLATION''
459 | EXCISES''
460 | forbearances
461 | PUBLIUS
462 | ingrafted
463 | thereof''
464 | railings
465 | culumniated
466 | landtax
467 | reasoners
468 | intrusted
469 | PUBLIUS
470 | CENTURIATA
471 | TRIBUTA
472 | intrusted
473 | fifteenths
474 | twentieths
475 | PUBLIUS
476 | overstocked
477 | expedients
478 | acquirements
479 | rivalships
480 | suffrages
481 | expedients
482 | PUBLIUS
483 | rivalships
484 | bypaths
485 | monly
486 | taxations
487 | tyrannies
488 | expedients
489 | PUBLIUS
490 | rejudging
491 | confederacies
492 | rectifying
493 | intrusted
494 | naturalists
495 | infirmities
496 | animosities
497 | Zaleucus
498 | Locrians
499 | Numa
500 | Tullius
501 | Hostilius
502 | Tullius
503 | Hostilius
504 | Achaeus
505 | Aratus
506 | intrusted
507 | expedients
508 | selfpreservation
509 | protracting
510 | unpardonable
511 | impeachments
512 | impeachments
513 | overleaping
514 | PUBLIUS
515 | disquisitions
516 | oppressions
517 | PUBLIUS
518 | expositors
519 | ungranted
520 | pretermitting
521 | sixtieths
522 | PUBLIUS
523 | misthinking
524 | usurpations
525 | Confederacies
526 | animosities
527 | intrusted
528 | unvaried
529 | Confederacies
530 | PUBLIUS
531 | piracies
532 | felonies
533 | disembarrassed
534 | usurpations
535 | piracies
536 | felonies
537 | piracies
538 | felonies
539 | piracies
540 | felonies
541 | felonies
542 | upbraided
543 | oppressions
544 | emigrations
545 | secureties
546 | animosities
547 | superintending
548 | confederated
549 | mischiefs
550 | paupers
551 | superadding
552 | inhabitants''
553 | embarrassments
554 | interdicts
555 | PUBLIUS
556 | dockyards
557 | suffrages
558 | treasons
559 | wreaked
560 | superintending
561 | Amphictyons
562 | antirepublican
563 | confederacies
564 | superintending
565 | infirmities
566 | reciprocality
567 | PUBLIUS
568 | animosities
569 | mischiefs
570 | proper''
571 | EXPRESSLY''
572 | usurpers
573 | unredressed
574 | PUBLIUS
575 | Fournal
576 | unsacrificed
577 | confederacies
578 | encroachments
579 | rivalship
580 | encroachments
581 | countenancing
582 | PUBLIUS
583 | superintending
584 | prepossessions
585 | prepossessions
586 | prepossessions
587 | preorgatives
588 | defalcations
589 | encroachments
590 | embarrassments
591 | encroachments
592 | PUBLIUS
593 | selfappointed
594 | emphatical
595 | impeachments
596 | appointable
597 | impeachments
598 | impeachments
599 | appointable
600 | appointable
601 | PUBLIUS
602 | usurpations
603 | usurpations
604 | encroachments
605 | unfrequently
606 | encroachments
607 | p
608 | encroachments
609 | PUBLIUS
610 | Encroachments
611 | subjoined
612 | encroachments
613 | encroachments
614 | grantors
615 | bestows
616 | prepossessions
617 | numberous
618 | usurpations
619 | prepossessions
620 | PUBLIUS
621 | expedients
622 | PUBLIUS
623 | magistracies
624 | encroachments
625 | encroachments
626 | usurpations
627 | Confederacies
628 | oppressions
629 | PUBLIUS
630 | antiquaries
631 | usurpations
632 | PUBLIUS
633 | votaries
634 | t
635 | e
636 | regulatious
637 | acquirements
638 | reelections
639 | PUBLIUS
640 | confederacies
641 | PUBLIUS
642 | sixtyfive
643 | fellowcitizens
644 | allbe
645 | extravagancies
646 | PUBLIUS
647 | constitutents
648 | constitutents
649 | PUBLIUS
650 | Burgh's
651 | Disquisitions
652 | unpropitious
653 | suffrages
654 | PUBLIUS
655 | rivalship
656 | reapportionments
657 | reapportionments
658 | infirmities
659 | secessions
660 | PUBLIUS
661 | distempered
662 | intrusting
663 | rivalship
664 | confederacies
665 | PUBLIUS
666 | Ist
667 | Ist
668 | votaries
669 | primative
670 | importuned
671 | expedients
672 | PUBLIUS
673 | opposers
674 | suffrages
675 | suffrages
676 | unpardonable
677 | PUBLIUS
678 | V
679 | prepossessions
680 | mischiefs
681 | embarrassments
682 | impeachments
683 | indiscretions
684 | PUBLIUS
685 | unenlightened
686 | confederated
687 | Archons
688 | suffrages
689 | Ephori
690 | Cosmi
691 | usurpations
692 | encroachments
693 | Ephori
694 | usurpations
695 | PUBLIUS
696 | impeachments
697 | PUBLIUS
698 | impeachments
699 | impeachments
700 | animosities
701 | partialities
702 | inquisitors
703 | impeachments
704 | unawed
705 | impeachments
706 | impeachments
707 | impeachments
708 | disposers
709 | impeachments
710 | overbalanced
711 | impeachments
712 | impeachments
713 | reprobated
714 | PUBLIUS
715 | Impeachments
716 | impeachments
717 | wellestablished
718 | encroachments
719 | impeachments
720 | encroachments
721 | prevalency
722 | impeachments
723 | impeachments
724 | disquisitions
725 | impeachments
726 | counterpoises
727 | impeachments
728 | suffrages
729 | impeachments
730 | impeachments
731 | prostituted
732 | PUBLIUS
733 | Pennsylvanis
734 | impeachments
735 | inveighed
736 | mistresses
737 | voluptuousness
738 | visages
739 | janizaries
740 | disingenuity
741 | expedients
742 | applauses
743 | LAW''
744 | officers''
745 | session''
746 | years''
747 | palliated
748 | PUBLIUS
749 | V
750 | preestablished
751 | PUBLIUS
752 | Confederated
753 | crown's
754 | comfort''
755 | preferments
756 | PUBLIUS
757 | TAMONY
758 | Blackstone's
759 | p
760 | seditions
761 | repub
762 | lican
763 | intrusted
764 | votaries
765 | Achaeans
766 | Praetors
767 | mischiefs
768 | plebeians
769 | rivalships
770 | caprices
771 | jarrings
772 | anycounterbalancing
773 | weightiest
774 | scrunity
775 | mischiefs
776 | lic
777 | ONE''
778 | nattainable
779 | Decemvirs
780 | PUBLIUS
781 | Lolme
782 | seditions
783 | repub
784 | lican
785 | intrusted
786 | votaries
787 | Achaeans
788 | Praetors
789 | mischiefs
790 | plebeians
791 | rivalships
792 | caprices
793 | jarrings
794 | anycounterbalancing
795 | weightiest
796 | scrunity
797 | mischiefs
798 | lic
799 | ONE''
800 | nattainable
801 | Decemvirs
802 | PUBLIUS
803 | Lolme
804 | comports
805 | indued
806 | years'
807 | encroachments
808 | PUBLIUS
809 | expedients
810 | fellowcitizens
811 | readmission
812 | resentments
813 | suffrages
814 | overbalanced
815 | PUBLIUS
816 | largesses
817 | allurements
818 | selfdefense
819 | enaction
820 | missteps
821 | mischiefs
822 | opposers
823 | PUBLIUS
824 | seditions
825 | resentments
826 | welltimed
827 | PUBLIUS
828 | enaction
829 | years'
830 | intrusted
831 | intrusted
832 | PUBLIUS
833 | partialities
834 | antipathies
835 | animosities
836 | suffrages
837 | partialities
838 | antipathies
839 | animosities
840 | suffrages
841 | venalty
842 | venalty
843 | PUBLIUS
844 | uncomplying
845 | mischiefs
846 | embarrassments
847 | cavils
848 | PUBLIUS
849 | encroachments
850 | oppressions
851 | bulwarks
852 | encroachments
853 | oppressions
854 | mischiefs
855 | PUBLIUS
856 | Martin's
857 | impeachments
858 | PUBLIUS
859 | judicary
860 | unredressed
861 | bickerings
862 | animosities
863 | cognizances
864 | States''
865 | emited
866 | judicatories
867 | inconviences
868 | mischiefs
869 | wellinformed
870 | mischiefs
871 | PUBLIUS
872 | is''
873 | impeachments
874 | judical
875 | usurpations
876 | encroachments
877 | contraventions
878 | usurpations
879 | impeachments
880 | usurpations
881 | intrusted
882 | impeachments
883 | AUTHORUZE
884 | prevalency
885 | sovereignties
886 | inconveniencies
887 | PUBLIUS
888 | COURT''
889 | DICTIO
890 | juris
891 | dictio
892 | judicatories
893 | sovereignties
894 | T
895 | intrusted
896 | judicatories
897 | establish''
898 | PUBLIUS
899 | generals''
900 | oppressions
901 | impeachments
902 | intrusted
903 | heretofore''
904 | wellregulated
905 | litigations
906 | judicatories
907 | embarrassments
908 | unpardonable
909 | encroachments
910 | encroachments
911 | PUBLIUS
912 | opposers
913 | attainted
914 | Usays
915 | e
916 | emphatical
917 | abridgements
918 | preserved''
919 | intrusted
920 | overbalanced
921 | rivalship
922 | defaulters
923 | railings
924 | PUBLIUS
925 | Blackstone's
926 | p
927 | Blackstone's
928 | p
929 | asperities
930 | disputants
931 | concealments
932 | intemperances
933 | T
934 | encroachments
935 | Usays
936 | PUBLIUS
937 | Hume's
938 | Etext
939 |
940 | WORDS MISSPELLED: 935
941 | WORDS IN DICTIONARY: 143091
942 | WORDS IN TEXT: 196784
943 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/tom.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | EBook
5 | eBook
6 | eBook
7 | EBook
8 | EBOOK
9 | Widger
10 | Menendez
11 | Langhorne
12 | P
13 | R
14 | E
15 | F
16 | C
17 | E
18 | T
19 | O
20 | M
21 | S
22 | W
23 | Y
24 | E
25 | R
26 | jimpson
27 | Y
28 | o
29 | u
30 | u
31 | a'
32 | Polly
33 | obleeged
34 | kindlings
35 | Polly
36 | revealments
37 | warn't
38 | Yes'm
39 | warn't
40 | Yes'm
41 | Polly's
42 | No'm
43 | mine's
44 | Polly
45 | better'n
46 | Siddy
47 | geeminy
48 | t'other
49 | Tisn't
50 | dasn't
51 | Aw
52 | off'n
53 | nuff
54 | nuff
55 | Nuff
56 | lowed
57 | unwhitewashed
58 | Ole
59 | an'
60 | dis
61 | an'
62 | foolin'
63 | roun'
64 | wid
65 | spec'
66 | gwine
67 | an'
68 | an'
69 | lowed
70 | whitewashin'
71 | dasn't
72 | Ole
73 | an'
74 | off'n
75 | Dat's
76 | fraid
77 | ole
78 | Polly
79 | ling
80 | ling
81 | ling
82 | ling
83 | stabboard
84 | ling
85 | ling
86 | ch
87 | labboard
88 | lingling
89 | ch
90 | stabboard
91 | ling
92 | ling
93 | labboard
94 | stabboard
95 | ling
96 | ling
97 | ling
98 | ling
99 | SH'T
100 | S'H'T
101 | SH'T
102 | YI
103 | warn't
104 | druther
105 | Polly's
106 | lemme
107 | injun
108 | Polly
109 | lemme
110 | fagged
111 | Mont
112 | wended
113 | Polly
114 | Mayn't
115 | a'ready
116 | Polly
117 | recoated
118 | Polly
119 | plaited
120 | wending
121 | clodding
122 | warn't
123 | wellnigh
124 | Sid's
125 | ecstasies
126 | ecstasies
127 | er
128 | Polly
129 | Umf
130 | woes
131 | Polly
132 | Sh
133 | S
134 | H
135 | S
136 | H
137 | unirrigated
138 | church's
139 | uncushioned
140 | yaller
141 | What'll
142 | What'll
143 | lickrish
144 | Dore
145 | scholar's
146 | Applausive
147 | fidgetings
148 | Walters'
149 | chafings
150 | repinings
151 | Lawrence's
152 | Walters'
153 | jings
154 | bustlings
155 | scoldings
156 | scufflings
157 | Walters'
158 | Walters'
159 | GOLIAH
160 | V
161 | Polly
162 | unnecessaries
163 | Riverson
164 | Mufferson
165 | matrons
166 | flow'ry
167 | thro'
168 | sociables
169 | despotisms
170 | clergyman's
171 | interlarded
172 | itched
173 | droned
174 | pinchbug
175 | poodle's
176 | yawned
177 | pinchbug
178 | yawned
179 | Polly
180 | Yes'm
181 | Rubbage
182 | Polly
183 | them's
184 | wended
185 | hogsheads
186 | Lemme
187 | off'n
188 | off'n
189 | dern
190 | D'you
191 | hain't
192 | Hollis
193 | injun
194 | swaller
195 | charm's
196 | becuz
197 | wartiest
198 | knowed
199 | bean's
200 | Coonville
201 | everywheres
202 | D'you
203 | Becuz
204 | witched
205 | off'n
206 | wher'
207 | layin
208 | stiddy
209 | Becuz
210 | backards
211 | Hucky
212 | Hoss
213 | Lemme
214 | Tain't
215 | kep'
216 | Dern
217 | becuz
218 | What'll
219 | Becuz
220 | genuwyne
221 | pinchbug's
222 | throned
223 | girls'
224 | sleepiest
225 | Joe's
226 | Joe's
227 | sha'n't
228 | Joe's
229 | pa's
230 | sha'n't
231 | chiefest
232 | dasn't
233 | knowed
234 | barelegged
235 | Guisborne
236 | sha'n't
237 | Guisborne
238 | miller's
239 | Polly's
240 | remoter
241 | caterwauling
242 | meow'd
243 | Hucky
244 | wisht
245 | knowed
246 | Hucky
247 | Hoss
248 | O'
249 | sperrit
250 | Hoss
251 | partic'lar
252 | yer
253 | comrade's
254 | Sh
255 | Sh
256 | tis
257 | What'll
258 | dono
259 | wisht
260 | goners
261 | Sh
262 | em's
263 | tain't
264 | p'inted
265 | o'
266 | Injun
267 | murderin'
268 | druther
269 | dern
270 | boys'
271 | Injun
272 | thing's
273 | Injun
274 | Injun
275 | warn't
276 | Injun
277 | Injun
278 | Williams'
279 | Injun
280 | Joe's
281 | worse'n
282 | weepon
283 | weepons
284 | moon's
285 | X
286 | Huckleberry's
287 | pantings
288 | reckon'll
289 | hanging'll
290 | S'pose
291 | Injun
292 | Injun
293 | D'you
294 | D'you
295 | knowed
296 | pap's
297 | dono
298 | Hucky
299 | Injun
300 | cuz
301 | orter
302 | verdigrease
303 | verdigrease
304 | p'ison
305 | swaller
306 | H
307 | F
308 | dono
309 | tis
310 | Harbison
311 | Harbison
312 | Harbison's
313 | Harbison
314 | boys'
315 | Harbison
316 | S
317 | goners
318 | feller's
319 | Consound
320 | longside
321 | o'
322 | wisht
323 | Hucky
324 | Hucky
325 | Sh
326 | bleeve
327 | boys'
328 | Hucky
329 | das't
330 | s'pose
331 | Injun
332 | quailed
333 | boys'
334 | geeminy
335 | Miller's
336 | niggers
337 | congratulating
338 | bodings
339 | woes
340 | Huckleberry's
341 | Potter'll
342 | Injun
343 | Injun
344 | Injun
345 | t
346 | Injun
347 | Injun
348 | Polly
349 | t
350 | Polly's
351 | mutterings
352 | inquests
353 | inquests
354 | inquests
355 | Injun
356 | alls
357 | Polly
358 | summersets
359 | Polly
360 | Yes'm
361 | Yes'm
362 | Polly
363 | Polly
364 | thout
365 | Polly
366 | aunty
367 | Becky's
368 | Mf
369 | sorrowing
370 | unpeopled
371 | Jackson's
372 | piracies
373 | Tis
374 | smouldering
375 | raftsmen
376 | unpiratical
377 | browed
378 | y
379 | y
380 | y
381 | sail's
382 | tops'ls
383 | r'yals
384 | foretopmaststuns'l
385 | maintogalans'l
386 | Hellum
387 | y
388 | y
389 | y
390 | gemmed
391 | Jackson's
392 | raft's
393 | festooning
394 | Hucky
395 | better'n
396 | gen'ally
397 | dono
398 | Dern'd
399 | dono
400 | How'd
401 | bulliest
402 | di'monds
403 | fitten
404 | waifs
405 | sweetmeats
406 | plausibilities
407 | sweetmeats
408 | piracies
409 | skurrying
410 | brooded
411 | hogsheads
412 | Tain't
413 | becuz
414 | ferryboat's
415 | uninstructed
416 | jings
417 | Joe's
418 | fishhooks
419 | nough
420 | boat's
421 | skiff's
422 | boat's
423 | boat's
424 | Polly
425 | Harper's
426 | Polly
427 | Polly
428 | warn't
429 | mischEEvous
430 | harum
431 | scarum
432 | warn't
433 | throwed
434 | God'll
435 | cretur
436 | Polly
437 | Polly
438 | unrestfully
439 | sputtering
440 | knucks
441 | Joe's
442 | How'd
443 | Swimming's
444 | sha'n't
445 | Y
446 | e
447 | s
448 | per'aps
449 | Joe's
450 | hendering
451 | wisht
452 | knowed
453 | hain't
454 | bleeve
455 | warn't
456 | tobacker
457 | ca'm
458 | jings
459 | boys'
460 | overflowings
461 | retchings
462 | Joe's
463 | rumblings
464 | boys'
465 | others'
466 | tumblings
467 | threatenings
468 | grumblings
469 | scalped
470 | Polly's
471 | Joe's
472 | Polly
473 | rascalities
474 | Polly
475 | unwelcoming
476 | Polly
477 | Polly
478 | Polly's
479 | invalided
480 | Polly
481 | Polly
482 | warn't
483 | Polly
484 | Twould
485 | a'
486 | Polly
487 | discomforted
488 | More's
489 | woodbox
490 | Harper's
491 | land's
492 | Sereny
493 | rubbage
494 | warn't
495 | mischeevous
496 | harum
497 | scarum
498 | throwed
499 | sperrit
500 | d'you
501 | a'
502 | a'
503 | Milum
504 | hendered
505 | Peters'
506 | ma's
507 | Susy
508 | Becky's
509 | plaited
510 | nough
511 | book's
512 | Sereny
513 | rubbage
514 | Sereny
515 | Jackson's
516 | thankfullest
517 | goodheartedness
518 | Polly's
519 | Dobbins
520 | Dobbins
521 | Dobbins
522 | Nobody'll
523 | t'other
524 | Girls'
525 | girls'
526 | Becky's
527 | form's
528 | Dobbins
529 | yawned
530 | Dobbins
531 | Becky's
532 | floggings
533 | flaying
534 | Dobbins
535 | pleasanter
536 | Becky's
537 | Dobbins'
538 | painter's
539 | painter's
540 | throned
541 | grandmothers'
542 | unquenchable
543 | imbittered
544 | MAIDEN'S
545 | Tallapoosa's
546 | Tallassee's
547 | Coosa's
548 | Aurora's
549 | Tis
550 | Tis
551 | fancy's
552 | Presbyterians
553 | mewing
554 | painter's
555 | Cadets
556 | Judge's
557 | Cadets
558 | circusing
559 | girls'
560 | Hollis
561 | companionless
562 | Hollis
563 | solemnities
564 | so's
565 | som'ers
566 | hain't
567 | warn't
568 | twouldn't
569 | better'n
570 | boys'
571 | fishin'
572 | furder
573 | body's
574 | yourn
575 | yourn'll
576 | mine's
577 | Injun
578 | Joe's
579 | Injun
580 | Injun
581 | Joe's
582 | Injun
583 | Joe's
584 | Williams'
585 | Injun
586 | Injun
587 | opposers
588 | Injun
589 | Injun
590 | Joe's
591 | dismalest
592 | Huck's
593 | Injun
594 | Injun
595 | moused
596 | clew
597 | clew
598 | Where'll
599 | ha'nted
600 | sup'rintendents
601 | hy'roglyphics
602 | HyroQwhich
603 | Hy'roglyphics
604 | ha'nted
605 | Jackson's
606 | ha'nted
607 | di'monds
608 | Huck's
609 | di'monds
610 | di'monds
611 | em's
612 | but's
613 | Cert'nly
614 | anybody'll
615 | Hain't
616 | don'
617 | S'pose
618 | t'other
619 | thish
620 | yer
621 | yourn
622 | nough
623 | foolishest
624 | both's
625 | lonesomer
626 | widow's
627 | consound
628 | maow
629 | solemnities
630 | shadder
631 | thing's
632 | something's
633 | becuz
634 | body's
635 | S'pose
636 | What'll
637 | ha'nted
638 | ha'nted
639 | dern
640 | worse'n
641 | hender
642 | ha'nted
643 | nothing's
644 | Becuz
645 | ha'nted
646 | ha'nted
647 | Lookyhere
648 | a'
649 | dreampt
650 | Cracky
651 | wisht
652 | a'
653 | morrow's
654 | floorless
655 | unplastered
656 | Sh
657 | Sh
658 | t'other
659 | T'other
660 | t'other
661 | Injun
662 | Joe's
663 | nothing's
664 | Twon't
665 | warn't
666 | warn't
667 | Injun
668 | dangerous'
669 | Injun
670 | Now's
671 | Injun
672 | nothing's
673 | What'll
674 | silver's
675 | tain't
676 | Injun
677 | gloating
678 | Joe's
679 | Joe's
680 | boys'
681 | Injun
682 | Injun
683 | Murrel's
684 | Injun
685 | Tain't
686 | Nance
687 | what'll
688 | Injun
689 | boys'
690 | Injun
691 | Injun
692 | townward
693 | Injun
694 | ungraspable
695 | a'
696 | a'
697 | Tain't
698 | tain't
699 | Dog'd
700 | a'
701 | so'd
702 | dono
703 | Lemme
704 | Huck's
705 | keeper's
706 | ha'nted
707 | Lemme
708 | auntie's
709 | Injun
710 | foller
711 | mightn't
712 | dono
713 | dono
714 | a'
715 | foller
716 | maow
717 | Huck's
718 | mutterings
719 | Huck's
720 | thimblefuls
721 | warn't
722 | CAESAR'S
723 | Injun
724 | Joe's
725 | a'
726 | Injun
727 | ha'nted
728 | ha'nted
729 | ha'nted
730 | a'
731 | now's
732 | Injun
733 | Joe's
734 | Injun
735 | Lookyhere
736 | Injun
737 | Joe's
738 | quicker'n
739 | maow
740 | storm's
741 | ha'nt
742 | Rogers'
743 | pap's
744 | becuz
745 | body's
746 | something's
747 | maow
748 | Thatcher's
749 | Injun
750 | Huck's
751 | maow
752 | Thatcher's
753 | Susy
754 | Harper's
755 | Douglas'
756 | How'll
757 | a'
758 | a'
759 | Douglas'
760 | Douglas'
761 | shoutings
762 | rovers
763 | McDougal's
764 | rifts
765 | drippings
766 | ferryboat's
767 | Welshman's
768 | Huck's
769 | agues
770 | Douglas'
771 | Injun
772 | Joe's
773 | Huck's
774 | Injun
775 | Joe's
776 | HORSEWHIPPED
777 | horsewhipped
778 | HORSEWHIPPED
779 | mightn't
780 | nobody'll
781 | Welshman's
782 | Huck's
783 | widow's
784 | here'll
785 | Welshman's
786 | Huck's
787 | pleasantest
788 | becuz
789 | becuz
790 | twould
791 | follered
792 | t'other's
793 | widow's
794 | Welshman's
795 | agin
796 | shackly
797 | agin
798 | t'other
799 | t'other
800 | Follered
801 | widder's
802 | widder
803 | Tain't
804 | Injun
805 | Injun
806 | Huck's
807 | widow's
808 | widow's
809 | warn't
810 | warn't
811 | Thatcher's
812 | Polly
813 | Polly
814 | Polly's
815 | No'm
816 | Polly
817 | Polly
818 | Polly
819 | remotenesses
820 | shoutings
821 | Huck's
822 | Becky's
823 | Aladdin's
824 | Becky's
825 | incrusted
826 | Becky's
827 | Becky's
828 | P'raps
829 | breathings
830 | jeering
831 | Becky's
832 | Becky's
833 | Becky's
834 | wailings
835 | Becky's
836 | Harper's
837 | SH
838 | shoutings
839 | Injun
840 | Joe's
841 | Injun
842 | Injun
843 | bodings
844 | petitioner's
845 | Polly
846 | thronged
847 | Thatcher's
848 | Thatcher's
849 | Polly's
850 | Thatcher's
851 | clews
852 | Huck's
853 | Thatcher's
854 | sheathed
855 | Injun
856 | Joe's
857 | McDougal's
858 | Injun
859 | Injun
860 | Joe's
861 | Injun
862 | dessertspoonful
863 | McDougal's
864 | Injun
865 | Joe's
866 | Aladdin's
867 | Injun
868 | Injun
869 | Joe's
870 | Injun
871 | weaklings
872 | Huck's
873 | knowed
874 | a'
875 | knowed
876 | becuz
877 | a'
878 | something's
879 | follered
880 | Injun
881 | widder's
882 | Injun
883 | Joe's
884 | Welshman's
885 | comrade's
886 | Huck's
887 | injun
888 | jings
889 | more'n
890 | many's
891 | Sawyer's
892 | off'n
893 | better'n
894 | yonder's
895 | Injun
896 | Injun
897 | Joe's
898 | ha'nt
899 | Lookyhere
900 | Injun
901 | Joe's
902 | Lookyhere
903 | lookyhere
904 | Lemme
905 | ha'nted
906 | dono
907 | widow's
908 | Taylor's
909 | Welshman's
910 | bits'
911 | Douglas'
912 | Huck's
913 | Douglas'
914 | Thatchers
915 | Rogerses
916 | Polly
917 | Polly
918 | Huck's
919 | slicked
920 | Siddy
921 | jist
922 | widow's
923 | widow's
924 | Huck's
925 | a'
926 | Sid's
927 | widow's
928 | Huck's
929 | Huck's
930 | Huck's
931 | Polly
932 | Polly
933 | Huck's
934 | Huck's
935 | Huck's
936 | Polly's
937 | lauded
938 | Finn's
939 | Douglas'
940 | widow's
941 | hogsheads
942 | uncombed
943 | Huck's
944 | widder's
945 | anywher's
946 | hain't
947 | widder
948 | gits
949 | everything's
950 | reg'lar
951 | dern'd
952 | hain't
953 | widder
954 | school's
955 | Looky
956 | bar'l
957 | a'
958 | your'n
959 | becuz
960 | dern
961 | thout
962 | tollable
963 | widder
964 | Tain't
965 | hogsheads
966 | dern
967 | Lookyhere
968 | Huck's
969 | hain't
970 | shet
971 | Sawyer's
972 | widder
973 | b'long
974 | swearing's
975 | lonesomest
976 | awfulest
977 | ha'nted
978 | midnight's
979 | bullier
980 | widder
981 | reg'lar
982 | endeth
983 | EBook
984 | EBOOK
985 | txt
986 | http
987 | Widger
988 | Menendez
989 | tm
990 | tm
991 | eBooks
992 | eBook
993 | eBook
994 | eBooks
995 | tm
996 | tm
997 | http
998 | tm
999 | tm
1000 | tm
1001 | tm
1002 | E
1003 | B
1004 | tm
1005 | C
1006 | tm
1007 | tm
1008 | E
1009 | C
1010 | PGLAF
1011 | tm
1012 | tm
1013 | tm
1014 | tm
1015 | tm
1016 | D
1017 | tm
1018 | E
1019 | E
1020 | tm
1021 | tm
1022 | eBook
1023 | eBook
1024 | E
1025 | tm
1026 | E
1027 | E
1028 | tm
1029 | E
1030 | E
1031 | E
1032 | tm
1033 | E
1034 | E
1035 | tm
1036 | E
1037 | tm
1038 | tm
1039 | E
1040 | E
1041 | tm
1042 | E
1043 | nonproprietary
1044 | tm
1045 | tm
1046 | tm
1047 | E
1048 | E
1049 | tm
1050 | E
1051 | E
1052 | E
1053 | tm
1054 | tm
1055 | tm
1056 | e
1057 | s
1058 | tm
1059 | tm
1060 | F
1061 | tm
1062 | E
1063 | tm
1064 | tm
1065 | F
1066 | F
1067 | tm
1068 | tm
1069 | F
1070 | F
1071 | tm
1072 | tm
1073 | F
1074 | F
1075 | F
1076 | IS'
1077 | MERCHANTIBILITY
1078 | F
1079 | unenforceability
1080 | F
1081 | tm
1082 | tm
1083 | tm
1084 | b
1085 | tm
1086 | c
1087 | tm
1088 | tm
1089 | tm's
1090 | tm
1091 | tm
1092 | http
1093 | pglaf
1094 | org
1095 | c
1096 | c
1097 | http
1098 | pglaf
1099 | org
1100 | U
1101 | S
1102 | Melan
1103 | S
1104 | pglaf
1105 | org
1106 | http
1107 | pglaf
1108 | org
1109 | B
1110 | Newby
1111 | gbnewby
1112 | pglaf
1113 | org
1114 | tm
1115 | http
1116 | pglaf
1117 | org
1118 | U
1119 | S
1120 | http
1121 | pglaf
1122 | org
1123 | tm
1124 | S
1125 | tm
1126 | tm
1127 | eBooks
1128 | tm
1129 | eBooks
1130 | U
1131 | S
1132 | eBooks
1133 | PG
1134 | http
1135 | tm
1136 | eBooks
1137 | eBooks
1138 |
1139 | WORDS MISSPELLED: 1134
1140 | WORDS IN DICTIONARY: 143091
1141 | WORDS IN TEXT: 74451
1142 |
--------------------------------------------------------------------------------
/files/home/cs50/pset5/keys/prince.txt:
--------------------------------------------------------------------------------
1 |
2 | MISSPELLED WORDS
3 |
4 | EBook
5 | Nicolo
6 | eBook
7 | eBook
8 | org
9 | Nicolo
10 | W
11 | K
12 | EBook
13 | EBOOK
14 | Widger
15 | Nicolo
16 | W
17 | K
18 | Nicolo
19 | Casciano
20 | Nicolo
21 | di
22 | Nicolo
23 | Bartolommea
24 | di
25 | Stefano
26 | Nelli
27 | Lorenzo
28 | de'
29 | Machiavelli's
30 | Aet
31 | Lorenzo
32 | Savonarola's
33 | Medicean
34 | Lorenzo
35 | Lorenzo's
36 | Aet
37 | Machiavelli's
38 | Machiavelli's
39 | Catherina
40 | Forli
41 | Machiavelli's
42 | Valentino
43 | usurpers
44 | Borgia's
45 | delle
46 | Rovere
47 | monarch's
48 | Machiavelli's
49 | Vaila
50 | Aet
51 | Medicean
52 | X
53 | Casciano
54 | Vettori
55 | Casavecchio
56 | Lorenzo
57 | de'
58 | Casavecchio
59 | Lorenzo
60 | Machiavelli's
61 | Vettori
62 | Livius
63 | Medicean
64 | de'
65 | de'
66 | Pavia
67 | V
68 | Catherina
69 | overawed
70 | Soderini
71 | Machiavelli's
72 | bestrewn
73 | Machiavelli's
74 | Quis
75 | eo
76 | fuit
77 | unquam
78 | partiundis
79 | definiendis
80 | explanandis
81 | pressior
82 | Shakespeare's
83 | intrattenere
84 | Aetolians
85 | Achaeans
86 | Aetolians
87 | Discorso
88 | sopra
89 | le
90 | cose
91 | di
92 | modo
93 | di
94 | trattare
95 | popoli
96 | Valdichiana
97 | ribellati
98 | modo
99 | duca
100 | Valentino
101 | nell'
102 | ammazzare
103 | Vitellozzo
104 | Vitelli
105 | Oliverotto
106 | da
107 | Fermo
108 | Discorso
109 | sopra
110 | provisione
111 | danaro
112 | Decennale
113 | rima
114 | Ritratti
115 | delle
116 | cose
117 | dell'
118 | Alemagna
119 | Decennale
120 | Ritratti
121 | delle
122 | cose
123 | di
124 | Francia
125 | Discorsi
126 | sopra
127 | deca
128 | di
129 | T
130 | Livio
131 | vols
132 | Andria
133 | Mandragola
134 | Clizia
135 | Belfagor
136 | arcidiavolo
137 | Asino
138 | d'oro
139 | rima
140 | Dell'
141 | guerra
142 | Discorso
143 | sopra
144 | riformare
145 | di
146 | Sommario
147 | delle
148 | cose
149 | citta
150 | di
151 | di
152 | Castruccio
153 | Castracani
154 | da
155 | Istorie
156 | fiorentine
157 | Frammenti
158 | storici
159 | Sonetti
160 | Canzoni
161 | Ottave
162 | Canti
163 | carnascialeschi
164 | Aldo
165 | Tertina
166 | Cambiagi
167 | vols
168 | dei
169 | Classici
170 | Silvestri
171 | vols
172 | Passerini
173 | Milanesi
174 | vols
175 | F
176 | L
177 | Polidori
178 | Lettere
179 | familiari
180 | E
181 | Alvisi
182 | G
183 | Canestrini
184 | F
185 | Vettori
186 | Ridolfi
187 | Pensieri
188 | intorno
189 | allo
190 | scopo
191 | di
192 | N
193 | nel
194 | libro
195 | D
196 | Nicolo
197 | Lorenzo
198 | Di
199 | De'
200 | allurements
201 | unmeritedly
202 | Lodovico's
203 | Lodovico
204 | Lodovico
205 | Lodovico
206 | d'Este
207 | Aetolians
208 | Achaeans
209 | Aetolians
210 | Achaeans
211 | Aetolians
212 | intrattenere
213 | Florentines
214 | Bentivogli
215 | Forli
216 | Camerino
217 | Piombino
218 | Lucchese
219 | Pisans
220 | Sienese
221 | d'Amboise
222 | Valentino
223 | sanjaks
224 | bondmen
225 | V
226 | Spartans
227 | Spartans
228 | Spartans
229 | Florentines
230 | Medes
231 | Medes
232 | Fra
233 | Girolamo
234 | unbelievers
235 | Hiero
236 | Syracusan
237 | Syracusans
238 | Hiero
239 | B
240 | C
241 | B
242 | C
243 | bestows
244 | correspondencies
245 | Le
246 | radici
247 | e
248 | corrispondenze
249 | e
250 | correspondencies
251 | Valentino
252 | Bianca
253 | Vitelli
254 | Sinigalia
255 | Descritione
256 | modo
257 | duca
258 | Valentino
259 | nello
260 | ammazzare
261 | Vitellozzo
262 | Vitelli
263 | Colonnesi
264 | Colonnesi
265 | Urbino
266 | Colonnesi
267 | Colonna
268 | Magione
269 | Urbino
270 | Pagolo
271 | Sinigalia
272 | Urbino
273 | Sinigalia
274 | Messer
275 | Ramiro
276 | d'Orco
277 | Ramiro
278 | Ramiro
279 | d'Orco
280 | Ramiro
281 | Lorqua
282 | Gaeta
283 | Piombino
284 | Florentines
285 | Florentines
286 | Baglioni
287 | Vitelli
288 | Rovere
289 | Vincula
290 | pontiffs
291 | Vincula
292 | Colonna
293 | Ascanio
294 | Vincula
295 | Raffaello
296 | Riario
297 | Ascanio
298 | Ascanio
299 | Agathocles
300 | infamies
301 | Amilcar
302 | Carthaginians
303 | Carthaginians
304 | Agathocles
305 | Agathocles
306 | B
307 | C
308 | B
309 | C
310 | Agathocles
311 | Oliverotto
312 | da
313 | Fermo
314 | Fogliani
315 | Pagolo
316 | Vitelli
317 | Pagolo
318 | Vitellozzo
319 | Fermo
320 | Vitelleschi
321 | Fermo
322 | Fogliani
323 | Fermians
324 | Fermians
325 | Oliverotto
326 | Fogliani
327 | Fermo
328 | Oliverotto
329 | Oliverotto
330 | Fermo
331 | Agathocles
332 | Vitelli
333 | Sinigalia
334 | Vitellozzo
335 | Agathocles
336 | cruelties
337 | Agathocles
338 | Burd
339 | Machiavelli's
340 | crudelta
341 | cruelties
342 | Spartans
343 | Gracchi
344 | Messer
345 | Scali
346 | B
347 | C
348 | B
349 | C
350 | Messer
351 | Scali
352 | Machiavelli's
353 | X
354 | Florentines
355 | Colonnesi
356 | Colonnesi
357 | pontiffs
358 | Valentino
359 | Alexander's
360 | Colonnesi
361 | prelates
362 | X
363 | de'
364 | bons
365 | Switzers
366 | Carthaginians
367 | Carthaginians
368 | Thebans
369 | Florentines
370 | Florentines
371 | Acuto
372 | Florentines
373 | Bracceschi
374 | Braccio
375 | Florentines
376 | Pagolo
377 | Vitelli
378 | Florentines
379 | plebians
380 | Carmignuola
381 | Bartolomeo
382 | da
383 | da
384 | Severino
385 | Pitigliano
386 | Vaila
387 | Ladislao
388 | Acuto
389 | Hawkwood
390 | Sible
391 | Hedingham
392 | Domnia
393 | Bernabo
394 | Carmignuola
395 | Bussone
396 | Carmagnola
397 | Bartolomeo
398 | Colleoni
399 | Severino
400 | capitano
401 | Pitigliano
402 | Nicolo
403 | Vaila
404 | Alberigo
405 | da
406 | Conio
407 | Romagnian
408 | Braccio
409 | Switzers
410 | encampments
411 | Alberigo
412 | da
413 | Conio
414 | Alberico
415 | da
416 | Barbiano
417 | Cunio
418 | V
419 | F
420 | F
421 | Switzers
422 | Florentines
423 | Cantacuzenus
424 | dastardy
425 | Imola
426 | Forli
427 | Vitelli
428 | Vitelli
429 | Hiero
430 | Syracusan
431 | Syracusans
432 | condottieri
433 | Switzers
434 | Switzers
435 | Switzers
436 | Switzers
437 | Switzers
438 | Goths
439 | unhistorical
440 | ignominies
441 | Philopoemen
442 | Achaeans
443 | Philopoemen
444 | B
445 | C
446 | B
447 | C
448 | subjects'
449 | subjects'
450 | Cancellieri
451 | Panciatichi
452 | dura
453 | regni
454 | novitas
455 | talia
456 | cogunt
457 | Moliri
458 | custode
459 | tueri
460 | pow'rs
461 | upbraided
462 | Locrians
463 | Machiavelli's
464 | Burd
465 | p
466 | e
467 | Burd
468 | Cicero's
469 | Officiis
470 | Nam
471 | decertandi
472 | unum
473 | disceptationem
474 | alterum
475 | cumque
476 | illud
477 | proprium
478 | hominis
479 | beluarum
480 | confugiendum
481 | posterius
482 | uti
483 | licet
484 | superiore
485 | deceits
486 | Nondimanco
487 | gli
488 | succederono
489 | gli
490 | inganni
491 | votum
492 | votum
493 | Testina
494 | contro
495 | fede
496 | tutto
497 | fede
498 | contro
499 | fede
500 | tutto
501 | fede
502 | Testina
503 | fede
504 | e
505 | religione
506 | Testina
507 | p
508 | Nicolo
509 | Machiavel
510 | Prince'
511 | Ferdinand's
512 | Burd's
513 | p
514 | Messer
515 | Annibale
516 | Bentivogli
517 | Annibale
518 | Canneschi
519 | Messer
520 | Canneschi
521 | Bentivogli
522 | Annibale
523 | Bolognese
524 | Bentivogli
525 | Messer
526 | Bentivogli
527 | Machiavelli's
528 | Boscoli
529 | Maximinus
530 | Pertinax
531 | Macrinus
532 | Maximinus
533 | unaspiring
534 | Pertinax
535 | Pertinax
536 | Pertinax
537 | unjudged
538 | Maximinus
539 | Sclavonia
540 | Pertinax
541 | cruelties
542 | Maximinus
543 | Maximinus
544 | cruelties
545 | cruelties
546 | Macrinus
547 | Pertinax
548 | Maximinus
549 | Ghibelline
550 | Vaila
551 | Pandolfo
552 | Petrucci
553 | Messer
554 | Nicolo
555 | Vitelli
556 | Citta
557 | di
558 | Castello
559 | Ubaldo
560 | Urbino
561 | Bentivogli
562 | Forli
563 | Girolamo
564 | Galeazzo
565 | Lucrezia
566 | Landriani
567 | Forli
568 | Fortunati
569 | Fortunati
570 | Nicolo
571 | P
572 | Messer
573 | Bernabo
574 | da
575 | Milano
576 | Aetolians
577 | Achaeans
578 | Achaeans
579 | Florentines
580 | callings
581 | guilds
582 | Guilds
583 | arti
584 | o
585 | tribu
586 | Arti
587 | guilds
588 | guilds
589 | Edgcumbe
590 | artel
591 | Wallace's
592 | artel
593 | artels
594 | artel
595 | Aylmer
596 | ars
597 | rotisya
598 | Tribu
599 | Messer
600 | da
601 | Venafro
602 | Pandolfo
603 | Petrucci
604 | Pandolfo
605 | Venafro
606 | Pandolfo
607 | FLATTERERS
608 | flatterers
609 | flatterers
610 | flatterers
611 | Fra
612 | Luca
613 | Bianca
614 | seigniors
615 | Quintius
616 | years'
617 | expedients
618 | Sorel's
619 | Messer
620 | Bentivogli
621 | Medes
622 | insolencies
623 | X
624 | Allesandria
625 | Vaila
626 | Mestri
627 | Vaila
628 | Mestri
629 | Switzers
630 | Switzers
631 | infantries
632 | contro
633 | Prendera
634 | l'arme
635 | e
636 | fia
637 | combatter
638 | corto
639 | Che
640 | l'antico
641 | valore
642 | Negli
643 | italici
644 | cuor
645 | e
646 | ancor
647 | morto
648 | i'
649 | th'
650 | th'
651 | Italians'
652 | brests
653 | Dacre
654 | VALENTINO
655 | VITELLOZZO
656 | VITELLI
657 | OLIVEROTTO
658 | DA
659 | FERMO
660 | PAGOLO
661 | DI
662 | GRAVINA
663 | NICOLO
664 | Valentino
665 | calumnies
666 | Florentines
667 | Val
668 | di
669 | Chiana
670 | Imola
671 | Bentivogli
672 | Romagnian
673 | Vitelli
674 | Magione
675 | Pagolo
676 | di
677 | Gravina
678 | Vitellozzo
679 | Vitelli
680 | Oliverotto
681 | da
682 | Fermo
683 | Gianpagolo
684 | Baglioni
685 | Messer
686 | da
687 | Venafro
688 | Pandolfo
689 | Petrucci
690 | Bentivogli
691 | Florentines
692 | Urbino
693 | Urbino
694 | Magione
695 | Urbino
696 | Florentines
697 | Vitelli
698 | Nicolo
699 | Imola
700 | Florentines
701 | Fossombrone
702 | Vitelli
703 | Pagolo
704 | ducats
705 | Bentivogli
706 | Urbino
707 | Ubaldo
708 | Urbino
709 | Valentino
710 | Imola
711 | Vitelli
712 | Urbino
713 | Oliverotto
714 | da
715 | Fermo
716 | Sinigalia
717 | Florentines
718 | Sinigalia
719 | di
720 | Candales
721 | Fano
722 | Vitelli
723 | Sinigalia
724 | Vitellozzo
725 | Pagolo
726 | Fano
727 | d'Euna
728 | Vitellozzo
729 | Pagolo
730 | di
731 | Gravina
732 | Oliverotto
733 | Sinigalia
734 | Metauro
735 | Fano
736 | Metauro
737 | Fano
738 | Sinigalia
739 | Marca
740 | Sinigalia
741 | Sinigalia
742 | Fano
743 | Sinigalia
744 | Sinigalia
745 | Sinigalia
746 | Vitelli
747 | Sinigalia
748 | Sinigalia
749 | Oliverotto
750 | Valentino
751 | Sinigalia
752 | Vitellozzo
753 | Pagolo
754 | di
755 | Gravina
756 | Vitellozo
757 | Sinigalia
758 | Oliverotto
759 | Sinigalia
760 | Oliverotto
761 | Oliverotto
762 | Oliverotto
763 | Oliverotto
764 | Oliverotto
765 | Oliverotto
766 | Sinigalia
767 | Oliverotto
768 | Oliverotto
769 | Vitelli
770 | Orsinian
771 | Vitellian
772 | Oliverotto
773 | Sinigalia
774 | Vitellozzo
775 | Oliverotto
776 | Vitellozzo
777 | Oliverotto
778 | Vitellozzo
779 | Pagolo
780 | di
781 | Gravina
782 | Orsino
783 | Messer
784 | Jacopo
785 | da
786 | Pieve
787 | CASTRUCCIO
788 | CASTRACANI
789 | NICOLO
790 | ZANOBI
791 | BUONDELMONTI
792 | LUIGI
793 | ALAMANNI
794 | CASTRUCCIO
795 | CASTRACANI
796 | Zanobi
797 | Luigi
798 | Castruccio
799 | Castracani
800 | Castracani
801 | Messer
802 | Buonaccorso
803 | Cenami
804 | Buonaccorso
805 | Messer
806 | Dianora
807 | Messer
808 | Messer
809 | Castruccio
810 | Castruccio
811 | Messer
812 | Messer
813 | benefices
814 | Castruccio
815 | Castruccio
816 | Messer
817 | Dianora
818 | Messer
819 | Guinigi
820 | Messer
821 | Ghibelline
822 | Castruccio
823 | Castruccio
824 | Messer
825 | Castruccio
826 | Messer
827 | Castruccio
828 | Messer
829 | Messer
830 | Messer
831 | Castruccio
832 | Messer
833 | Messer
834 | Guinigi
835 | Guinigi
836 | Castruccio
837 | Ghibellines
838 | Pavia
839 | Guelphs
840 | Messer
841 | Ghibellines
842 | Castruccio
843 | Castruccio
844 | Pavia
845 | Castruccio
846 | Messer
847 | Pagolo
848 | Castruccio
849 | Castruccio
850 | Pagolo
851 | Castruccio
852 | Pagolo
853 | degli
854 | Opizi
855 | Messer
856 | Castruccio
857 | Castruccio
858 | Castruccio
859 | Messer
860 | Ruberto
861 | Uguccione
862 | Faggiuola
863 | Ghibellines
864 | Castruccio
865 | Uguccione
866 | Castruccio
867 | Opizi
868 | Castruccio
869 | Onesti
870 | Uguccione
871 | Uguccione
872 | Castruccio
873 | Uguccione
874 | Messer
875 | Uguccione
876 | Uguccione
877 | Lucchese
878 | Florentines
879 | Ghibellines
880 | Guelphs
881 | Val
882 | di
883 | Nievole
884 | Montecatini
885 | Montecarlo
886 | Uguccione
887 | Pisan
888 | Lucchese
889 | Florentines
890 | Montecarlo
891 | Montecatini
892 | Pescia
893 | Uguccione
894 | Montecarlo
895 | Uguccione
896 | Pisans
897 | Lucchese
898 | Uguccione
899 | Montecarlo
900 | Castruccio
901 | Guelphs
902 | Castruccio
903 | Guelphs
904 | Castruccio
905 | Castruccio
906 | Castruccio's
907 | Florentines
908 | Castruccio
909 | Ruberto
910 | Castruccio
911 | Uguccione
912 | Castruccio
913 | Uguccione
914 | Uguccione
915 | Agnolo
916 | Micheli
917 | Castruccio
918 | Castruccio
919 | Uguccione
920 | Castruccio
921 | Castruccio
922 | Castruccio
923 | Ugucionne
924 | Pisans
925 | Gaddo
926 | Gherardesca
927 | Uguccione
928 | Lucchese
929 | Lucchese
930 | Castruccio
931 | Uguccione
932 | Uguccione
933 | Castruccio
934 | Uguccione
935 | Castruccio
936 | Uguccione
937 | Castruccio
938 | Uguccione
939 | Pisans
940 | Serezzana
941 | Zerezzanello
942 | Castruccio
943 | Lavenza
944 | Lunigiana
945 | Lunigiana
946 | Pontremoli
947 | Messer
948 | Anastagio
949 | Palavicini
950 | Castruccio
951 | Pazzino
952 | Poggio
953 | Puccinello
954 | Boccansacchi
955 | Cecco
956 | Guinigi
957 | Castruccio
958 | Castruccio
959 | Pagolo
960 | Guinigi
961 | Castruccio
962 | Pisans
963 | Gaddo
964 | Gherardesca
965 | Castruccio
966 | Pisans
967 | Florentines
968 | Lombardian
969 | Ghibellines
970 | Castruccio
971 | Matteo
972 | Guidi
973 | Nardo
974 | Scolari
975 | Lapo
976 | Uberti
977 | Gerozzo
978 | Nardi
979 | Buonaccorsi
980 | Florentines
981 | Ghibellines
982 | Castruccio
983 | Messer
984 | Matteo
985 | Messer
986 | Matteo
987 | Guelphs
988 | Ghibellines
989 | Ruberto
990 | Messer
991 | Matteo
992 | Castruccio
993 | Florentines
994 | Castruccio
995 | Valdarno
996 | Fucecchio
997 | Miniato
998 | Florentines
999 | Castruccio
1000 | Poggio
1001 | Castruccio
1002 | Castruccio
1003 | Castruccio
1004 | Stefano
1005 | di
1006 | Poggio
1007 | Castruccio
1008 | Castruccio
1009 | Pagolo
1010 | Guinigi
1011 | Stefano
1012 | Castruccio
1013 | Castruccio
1014 | Castruccio
1015 | Castruccio
1016 | Stefano
1017 | Stefano
1018 | Stefano
1019 | Castruccio
1020 | Stefano
1021 | Florentines
1022 | Miniato
1023 | Castruccio
1024 | Florentines
1025 | Castruccio
1026 | Castruccio
1027 | Florentines
1028 | Bianchi
1029 | Bianchi
1030 | Bastiano
1031 | di
1032 | Possente
1033 | Jacopo
1034 | da
1035 | Gia
1036 | Castruccio
1037 | threatenings
1038 | Jacopo
1039 | Bastiano
1040 | Lucchese
1041 | Castruccio
1042 | Florentines
1043 | Castruccio
1044 | Florentines
1045 | Bastiano
1046 | Jacopo
1047 | Pagolo
1048 | Guinigi
1049 | Pagolo
1050 | Castruccio
1051 | Jacopo
1052 | da
1053 | Gia
1054 | Bastiano
1055 | di
1056 | Possente
1057 | Castruccio
1058 | Signoria
1059 | Ruberto
1060 | Castruccio
1061 | Castruccio
1062 | Pagolo
1063 | Guinigi
1064 | Castruccio
1065 | Castruccio
1066 | Castruccio
1067 | Castruccio
1068 | Castruccio
1069 | Florentines
1070 | Castruccio
1071 | Pistoians
1072 | Baldo
1073 | Cecchi
1074 | Jacopo
1075 | Baldini
1076 | Florentines
1077 | Castruccio's
1078 | Castruccio
1079 | Florentines
1080 | Val
1081 | di
1082 | Nievole
1083 | Florentines
1084 | Pistoian
1085 | Castruccio
1086 | Montecarlo
1087 | Florentines'
1088 | Pescia
1089 | Serravalle
1090 | Florentines
1091 | Serravalle
1092 | Pescia
1093 | Val
1094 | di
1095 | Nievole
1096 | Serravalle
1097 | Castruccio
1098 | Lucchese
1099 | Pistoians
1100 | Castruccio
1101 | Castruccio
1102 | Florentines
1103 | Castruccio
1104 | Florentines
1105 | Val
1106 | di
1107 | Nievole
1108 | Montecarlo
1109 | Florentines
1110 | Serravalle
1111 | Castruccio
1112 | Montecarlo
1113 | Serravalle
1114 | Florentines
1115 | Castruccio
1116 | Florentines
1117 | Castruccio
1118 | Castruccio
1119 | Castruccio
1120 | Florentines
1121 | Bandini
1122 | dei
1123 | Tosa
1124 | Tuscans
1125 | Neapolitans
1126 | Ruberto
1127 | Guelphs
1128 | Pistoians
1129 | Guelphs
1130 | Castruccio
1131 | Peretola
1132 | Florentines
1133 | participators
1134 | beheaded
1135 | Tommaso
1136 | Lupacci
1137 | Lambertuccio
1138 | Florentines
1139 | Ruberto
1140 | Florentines
1141 | florins
1142 | Florentines
1143 | Castruccio's
1144 | Benedetto
1145 | Lanfranchi
1146 | Lucchese
1147 | Castruccio
1148 | Lanfranchi
1149 | Castruccio
1150 | Bonifacio
1151 | Cerchi
1152 | Guidi
1153 | Castruccio
1154 | Benedetto
1155 | beheaded
1156 | Castruccio
1157 | Florentines
1158 | Florentines
1159 | Lastra
1160 | Signa
1161 | Montelupo
1162 | Empoli
1163 | Miniato
1164 | Castruccio
1165 | Florentines
1166 | Serravalle
1167 | Fucecchio
1168 | Pagolo
1169 | Guinigi
1170 | Fucecchio
1171 | Pisan
1172 | Gusciana
1173 | Castruccio's
1174 | Pagolo
1175 | Florentines
1176 | Castruccio
1177 | Fucecchio
1178 | Florentines
1179 | Miniato
1180 | Castruccio
1181 | Florentines
1182 | Castruccio
1183 | Florentines
1184 | Florentines
1185 | Castruccio
1186 | bucklers
1187 | Castruccio
1188 | Castruccio
1189 | Florentines
1190 | Castruccio
1191 | Serravalle
1192 | Florentines
1193 | Castruccio
1194 | Florentines
1195 | Castruccio's
1196 | Castruccio
1197 | Castruccio's
1198 | Castruccio
1199 | Florentines
1200 | Castruccio
1201 | Ruberto
1202 | Michelagnolo
1203 | Falconi
1204 | Taddeo
1205 | degli
1206 | Albizzi
1207 | Empoli
1208 | Florentines
1209 | Castruccio
1210 | Castruccio
1211 | Castruccio
1212 | Fucecchio
1213 | Castruccio
1214 | Castruccio
1215 | Pagolo
1216 | Guinigi
1217 | governorships
1218 | Pistoians
1219 | Florentines
1220 | Lucchese
1221 | Florentines
1222 | knowest
1223 | Florentines
1224 | Castruccio
1225 | Pagolo
1226 | Pagolo
1227 | Guinigi
1228 | Castruccio
1229 | Castruccio
1230 | Pagolo
1231 | Guinigi
1232 | Pagolo
1233 | Castruccio
1234 | Castruccio
1235 | Castruccio
1236 | Castruccio
1237 | Castruccio
1238 | Castruccio
1239 | goest
1240 | Castruccio
1241 | Castruccio
1242 | Castruccio
1243 | goest
1244 | Castruccio
1245 | Castruccio
1246 | Castruccio
1247 | Taddeo
1248 | Bernardi
1249 | Luca
1250 | Taddeo
1251 | Castruccio
1252 | Taddeo
1253 | Castruccio
1254 | Castruccio
1255 | Castruccio
1256 | Castruccio
1257 | Messer
1258 | Guinigi
1259 | Castruccio
1260 | Castruccio
1261 | Fra
1262 | Lazerone
1263 | Uguccione
1264 | Faggiuola
1265 | Castruccio
1266 | EBook
1267 | Nicolo
1268 | EBOOK
1269 | txt
1270 | http
1271 | org
1272 | Widger
1273 | tm
1274 | tm
1275 | eBooks
1276 | eBook
1277 | eBook
1278 | eBooks
1279 | tm
1280 | tm
1281 | http
1282 | org
1283 | tm
1284 | tm
1285 | tm
1286 | tm
1287 | E
1288 | B
1289 | tm
1290 | C
1291 | tm
1292 | tm
1293 | E
1294 | C
1295 | PGLAF
1296 | tm
1297 | tm
1298 | tm
1299 | tm
1300 | tm
1301 | D
1302 | tm
1303 | E
1304 | E
1305 | tm
1306 | tm
1307 | eBook
1308 | eBook
1309 | org
1310 | E
1311 | tm
1312 | E
1313 | E
1314 | tm
1315 | E
1316 | E
1317 | E
1318 | tm
1319 | E
1320 | E
1321 | tm
1322 | E
1323 | tm
1324 | tm
1325 | E
1326 | E
1327 | tm
1328 | E
1329 | nonproprietary
1330 | tm
1331 | tm
1332 | org
1333 | tm
1334 | E
1335 | E
1336 | tm
1337 | E
1338 | E
1339 | E
1340 | tm
1341 | tm
1342 | tm
1343 | e
1344 | s
1345 | tm
1346 | tm
1347 | F
1348 | tm
1349 | E
1350 | tm
1351 | tm
1352 | F
1353 | F
1354 | tm
1355 | tm
1356 | F
1357 | F
1358 | tm
1359 | tm
1360 | F
1361 | F
1362 | F
1363 | IS'
1364 | MERCHANTIBILITY
1365 | F
1366 | unenforceability
1367 | F
1368 | tm
1369 | tm
1370 | tm
1371 | b
1372 | tm
1373 | c
1374 | tm
1375 | tm
1376 | tm's
1377 | tm
1378 | tm
1379 | http
1380 | pglaf
1381 | org
1382 | c
1383 | c
1384 | http
1385 | pglaf
1386 | org
1387 | U
1388 | S
1389 | Melan
1390 | S
1391 | pglaf
1392 | org
1393 | http
1394 | pglaf
1395 | org
1396 | B
1397 | Newby
1398 | gbnewby
1399 | pglaf
1400 | org
1401 | tm
1402 | http
1403 | pglaf
1404 | org
1405 | U
1406 | S
1407 | http
1408 | pglaf
1409 | org
1410 | tm
1411 | S
1412 | tm
1413 | tm
1414 | eBooks
1415 | tm
1416 | eBooks
1417 | U
1418 | S
1419 | eBooks
1420 | PG
1421 | http
1422 | org
1423 | tm
1424 | eBooks
1425 | eBooks
1426 |
1427 | WORDS MISSPELLED: 1422
1428 | WORDS IN DICTIONARY: 143091
1429 | WORDS IN TEXT: 52538
1430 |
--------------------------------------------------------------------------------