diff --git a/.DS_Store b/.DS_Store
deleted file mode 100644
index 05d4c53..0000000
Binary files a/.DS_Store and /dev/null differ
diff --git a/floppies/claudia/.DS_Store b/floppies/claudia/.DS_Store
deleted file mode 100644
index d167e13..0000000
Binary files a/floppies/claudia/.DS_Store and /dev/null differ
diff --git a/floppies/claudia/noweb/.DS_Store b/floppies/claudia/noweb/.DS_Store
deleted file mode 100644
index 0079a00..0000000
Binary files a/floppies/claudia/noweb/.DS_Store and /dev/null differ
diff --git a/floppies/franc/.DS_Store b/floppies/franc/.DS_Store
deleted file mode 100644
index 8833b9b..0000000
Binary files a/floppies/franc/.DS_Store and /dev/null differ
diff --git a/floppies/franc/noweb/.DS_Store b/floppies/franc/noweb/.DS_Store
deleted file mode 100644
index 7635dcb..0000000
Binary files a/floppies/franc/noweb/.DS_Store and /dev/null differ
diff --git a/floppies/franc/noweb/edited/.DS_Store b/floppies/franc/noweb/edited/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/floppies/franc/noweb/edited/.DS_Store and /dev/null differ
diff --git a/floppies/giulia/.DS_Store b/floppies/giulia/.DS_Store
deleted file mode 100644
index 1f3b2a8..0000000
Binary files a/floppies/giulia/.DS_Store and /dev/null differ
diff --git a/floppies/giulia/README b/floppies/giulia/README
index aec7f25..30c18c8 100644
--- a/floppies/giulia/README
+++ b/floppies/giulia/README
@@ -1,7 +1,16 @@
-Author: Slavoj Žižek
-Date: 1989
-Title: The Sublime Object of Floppy
+Author: Giulia de Giovanelli
+Date: 2017
+Title: Adopt A Walk
Description:
-And so on, and so on, and so on.
+By stealing the walk of another person do I become someone else?
+
+This is an audio-guide of an experiment of gait analysis,
+If you never heard about this term, gait analysis is the study of patterns of walk during ambulation used by new surveillance biometric technologies.
+People are asked to walk following a series of spoken instructions. The walks are stored temporarily on a page where you’re invited to “adopt a walk” of another person.
+
+“Have you ever tried to look at the way a person walk as a way to identify her?
+Surveillance technologies are using the homogenic perception of human being as a model for their mechanics.”
+
+With this experiment you’re invited to observe characteristic of walks your similar and adopt them. Try to imagine that in modifying your walk you could escape from detection of your identity.
\ No newline at end of file
diff --git a/floppies/giulia/cgi-bin/index.cgi b/floppies/giulia/cgi-bin/index.cgi
deleted file mode 100755
index 58897ba..0000000
--- a/floppies/giulia/cgi-bin/index.cgi
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-
-import cgi, jinja2, os, json, re
-import cgitb; cgitb.enable()
-from jinja2 import Template
-
-# Directory => ITEMS list (all files with a timestamp name, grouped)
-ff = os.listdir("clips")
-tpat = re.compile(r"^(\d\d\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)")
-items = {}
-for f in ff:
- base, ext = os.path.splitext(f)
- ext = ext[1:]
- m = tpat.match(f)
- if m:
- t = m.group(0)
- if t not in items:
- items[t] = {}
- items[t][ext] = f
-
-items = [items[key] for key in sorted(items, reverse=True)]
-for i in items[1:]:
- for f in i.items():
- print "deleting ", f
-
-# dump the data (debugging)
-# print "Content-type: text/plain"
-# print ""
-# print json.dumps(items, indent=2)
-
-# Output template with items
-print "Content-type: text/html"
-print ""
-print Template(u"""
-
-ADOPT A WALK
-
-
-
-
- head
-
-
-
- {% for i in items %}
-
- {% endfor %}
-
-
-
-
-
-""").render(items=items).encode("utf-8")
\ No newline at end of file
diff --git a/floppies/giulia/images/header.jpg b/floppies/giulia/images/header.jpg
deleted file mode 100644
index fd0194a..0000000
Binary files a/floppies/giulia/images/header.jpg and /dev/null differ
diff --git a/floppies/giulia/images/header.png b/floppies/giulia/images/header.png
deleted file mode 100644
index c55fd94..0000000
Binary files a/floppies/giulia/images/header.png and /dev/null differ
diff --git a/floppies/giulia/main.pd b/floppies/giulia/main.pd
deleted file mode 100644
index 92bcef6..0000000
--- a/floppies/giulia/main.pd
+++ /dev/null
@@ -1,12 +0,0 @@
-#N canvas 296 315 450 300 10;
-#X obj 37 104 osc~ 440;
-#X obj 37 146 dac~;
-#X obj 161 74 loadbang;
-#X msg 161 111 \; pd dsp 1;
-#X obj 37 36 netreceive 3000;
-#X obj 46 62 print;
-#X connect 0 0 1 0;
-#X connect 0 0 1 1;
-#X connect 2 0 3 0;
-#X connect 4 0 5 0;
-#X connect 4 0 0 0;
diff --git a/floppies/giulia/main.py b/floppies/giulia/main.py
index 715ce35..83091ea 100644
--- a/floppies/giulia/main.py
+++ b/floppies/giulia/main.py
@@ -1,12 +1,7 @@
#!/usr/bin/env python
-import os, random, time
-
-while True:
- freq = str(random.randint(0,10)*110)
- print(freq)
- os.system('echo "'+freq+';" | pdsend 3000')
- time.sleep(0.25)
-
+import subprocess
+
+subprocess.call(["scripts/voiceguide.sh"], cwd="/media/floppy")
diff --git a/floppies/giulia/noweb/cgi-bin/index.cgi b/floppies/giulia/noweb/cgi-bin/index.cgi
new file mode 100755
index 0000000..b313494
--- /dev/null
+++ b/floppies/giulia/noweb/cgi-bin/index.cgi
@@ -0,0 +1,77 @@
+#!/usr/bin/env python
+
+import cgi, jinja2, os, json, re
+import cgitb; cgitb.enable()
+from jinja2 import Template
+
+# Directory => ITEMS list (all files with a timestamp name, grouped)
+try:
+ ff = os.listdir("/var/www/static/gait")
+except OSError:
+ ff = []
+tpat = re.compile(r"^(\d\d\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)")
+items = {}
+for f in ff:
+ base, ext = os.path.splitext(f)
+ ext = ext[1:]
+ m = tpat.match(f)
+ if m:
+ t = m.group(0)
+ if t not in items:
+ items[t] = {}
+ items[t][ext] = f
+
+items = [items[key] for key in sorted(items, reverse=True)]
+for i in items[10:]:
+ for f in i.items():
+ print "deleting ", f
+ # 10 os.unlink(f)
+# dump the data (debugging)
+# print "Content-type: text/plain"
+# print ""
+# print json.dumps(items, indent=2)
+
+# Output template with items
+print "Content-type: text/html"
+print ""
+print Template(u"""
+
+ADOPT A WALK
+
+
+
+
+
+
+
+
+
+
+
+
Here you can find footage of your walks.
+
+
+
+
+
+
Steal a walk from another person's video. Download it.
+
+
+
+
+
Promise me, you're gonna start using this walk for the rest of the day.
+
+
+
+
+
+
+ {% for i in items %}
+
+
{{i.mp4}}
+ {% endfor %}
+
+
+
+
+""").render(items=items).encode("utf-8")
\ No newline at end of file
diff --git a/floppies/giulia/noweb/fonts/sporting_grotesque_gras.otf b/floppies/giulia/noweb/fonts/sporting_grotesque_gras.otf
new file mode 100755
index 0000000..4883626
Binary files /dev/null and b/floppies/giulia/noweb/fonts/sporting_grotesque_gras.otf differ
diff --git a/floppies/giulia/noweb/fonts/sporting_grotesque_normal.otf b/floppies/giulia/noweb/fonts/sporting_grotesque_normal.otf
new file mode 100755
index 0000000..184f37b
Binary files /dev/null and b/floppies/giulia/noweb/fonts/sporting_grotesque_normal.otf differ
diff --git a/floppies/giulia/noweb/images/background.png b/floppies/giulia/noweb/images/background.png
new file mode 100644
index 0000000..201ed75
Binary files /dev/null and b/floppies/giulia/noweb/images/background.png differ
diff --git a/floppies/giulia/noweb/images/camera.png b/floppies/giulia/noweb/images/camera.png
new file mode 100644
index 0000000..183f930
Binary files /dev/null and b/floppies/giulia/noweb/images/camera.png differ
diff --git a/floppies/giulia/noweb/images/cover.png b/floppies/giulia/noweb/images/cover.png
new file mode 100644
index 0000000..b8c539e
Binary files /dev/null and b/floppies/giulia/noweb/images/cover.png differ
diff --git a/floppies/giulia/noweb/images/headertr3.png b/floppies/giulia/noweb/images/headertr3.png
new file mode 100644
index 0000000..65e33b2
Binary files /dev/null and b/floppies/giulia/noweb/images/headertr3.png differ
diff --git a/floppies/giulia/noweb/index.html b/floppies/giulia/noweb/index.html
index bc6fe43..42b64f0 100644
--- a/floppies/giulia/noweb/index.html
+++ b/floppies/giulia/noweb/index.html
@@ -1 +1,8 @@
-GREAT JOB!
+
+
+
+
+
+ start
+
+
diff --git a/floppies/giulia/noweb/styles/main.css b/floppies/giulia/noweb/styles/main.css
new file mode 100644
index 0000000..79446d3
--- /dev/null
+++ b/floppies/giulia/noweb/styles/main.css
@@ -0,0 +1,104 @@
+@font-face: {
+ font-family: "Sporting Grotesque";
+ src: url("/fonts/sporting_grotesque_normal.otf");
+}
+
+body {
+ background-image: url("../images/background.png");
+ background-repeat: repeat;
+ font-family: "Sporting Grotesque";
+}
+
+#wrapper {
+ max-width: 900px;
+ display: block;
+ margin: 0px auto;
+ padding:0px;
+}
+
+header img{
+ border: none;
+}
+
+div.movies img:nth-child(1) {
+ margin-top: 150px;
+}
+
+div.movies img {
+ display: block;
+ width: 632px;
+ height: auto;
+ margin: 25px auto;
+ box-shadow: 0px 0px 64px 13px rgba(255,255,255,1);
+}
+
+div.movies p {
+ color: white;
+ text-align: center;
+ font-family: "Sporting Grotesque";
+}
+
+
+div.firstline, div.secondline, div.thirdline {
+
+ max-width: 100%;
+ border: 10px solid white;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-left: 50px;
+ padding-right: 50px;
+ margin: 37px 15px 37px !important;
+ font-size: 200%;
+ color: white;
+ text-align: center;
+ text-shadow: 1px 1px 2px white;
+ line-height:110%;
+ margin: auto;
+}
+
+/*div.secondline {
+ width: 80%;
+ border: 10px solid white;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-left: 50px;
+ padding-right: 50px;
+ margin:25px;
+ font-size: 200%;
+ color: white;
+ text-align: center;
+ text-shadow: 1px 1px 2px white;
+ line-height:110%;
+ margin: auto;
+ margin-top:17px;
+ margin-bottom:17px;
+}
+
+div.thirdline {
+ width: 80%;
+ border: 10px solid white;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-left: 50px;
+ padding-right: 50px;
+ margin: 25px;
+ font-size: 200%;
+ color: white;
+ text-align: center;
+ text-shadow: 1px 1px 2px white;
+ line-height:110%;
+ margin: auto;
+}*/
+
+div.cover {
+ float: center;
+ margin: 20px;
+}
+
+
+img {
+ display: block;
+ margin: auto;
+ max-width: 900px;
+ border: 10px solid white;
+}
\ No newline at end of file
diff --git a/floppies/giulia/scriptespeak.py b/floppies/giulia/scriptespeak.py
deleted file mode 100755
index ac506c3..0000000
--- a/floppies/giulia/scriptespeak.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /usr/bin/env python
-import subprocess
-from time import sleep
-
-# requires: espeak to be installed
-
-waittimes = [1,2,1,4,1,4,1,4,1,4]
-
-f=open("instructions.txt","r")
-txt=f.readlines()
-
-for i, line in enumerate(txt):
- waittime = waittimes[i]
- print i, waittime #, line,
- subprocess.call(["espeak", line, "-v", "en"]) # character speaks: his/her line
- sleep(waittime) # make pause after each text line
-
\ No newline at end of file
diff --git a/floppies/giulia/scripts/recordwalk.py b/floppies/giulia/scripts/recordwalk.py
new file mode 100644
index 0000000..f2327d9
--- /dev/null
+++ b/floppies/giulia/scripts/recordwalk.py
@@ -0,0 +1,84 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+import cv2, os, sys, time
+import numpy as np
+from argparse import ArgumentParser
+from picamera.array import PiRGBArray
+from picamera import PiCamera
+
+
+p = ArgumentParser("")
+p.add_argument("--video", type=int, default=0, help="video, default: 0")
+p.add_argument("--output", default=None, help="path to save movie, default: None (show live)")
+p.add_argument("--width", type=int, default=640, help="pre-detect resize width")
+p.add_argument("--height", type=int, default=480, help="pre-detect resize height")
+p.add_argument("--fourcc", default="XVID", help="MJPG,mp4v,XVID")
+p.add_argument("--framerate", type=float, default=25, help="output frame rate")
+p.add_argument("--show", default=False, action="store_true")
+p.add_argument("--frames", type=int, default=100)
+args = p.parse_args()
+
+fourcc = None
+cam = cv2.VideoCapture(args.video)
+cam.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, args.width)
+cam.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, args.height)
+
+if args.output:
+ try:
+ fourcc = cv2.cv.CV_FOURCC(*args.fourcc)
+ except AttributeError:
+ fourcc = cv2.VideoWriter_fourcc(*args.fourcc)
+ out = cv2.VideoWriter()
+ out.open(args.output, fourcc, args.framerate, (args.width, args.height))
+else:
+ out = None
+
+print ("Starting camera", file=sys.stderr)
+cam = PiCamera()
+framesize = (160, 128)
+cam.resolution = framesize
+cam.framerate = 32
+rawCapture = PiRGBArray(cam, size=framesize)
+# allow the camera to warmup
+time.sleep(0.25)
+
+count = 0
+try:
+ # while True:
+ # ret, frame = cam.read()
+ for frame in cam.capture_continuous(rawCapture, format="bgr", use_video_port=True):
+ # print "GRAB FRAME"
+ frame = frame.array
+
+ gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
+ ret, t= cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
+ frame = cv2.cvtColor(t, cv2.COLOR_GRAY2BGR)
+ # flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
+ # prevgray = gray
+
+ # clear the stream in preparation for the next frame (important for picamera!)
+ rawCapture.truncate(0)
+
+ if out != None:
+ out.write(frame)
+ count += 1
+ if args.show:
+ cv2.imshow('display', frame)
+ if cv2.waitKey(5) & 0xFF == ord('q'):
+ break
+ if args.frames != None:
+ if (count >= args.frames):
+ break
+
+except KeyboardInterrupt:
+ pass
+
+print ("\nCleaning up... Wrote", count, "frames")
+if out:
+ out.release()
+if args.show:
+ cv2.destroyAllWindows()
+
+
+
diff --git a/floppies/giulia/scripts/recordwalk.testing.py b/floppies/giulia/scripts/recordwalk.testing.py
new file mode 100644
index 0000000..c73c965
--- /dev/null
+++ b/floppies/giulia/scripts/recordwalk.testing.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+import cv2, os, sys, time
+import numpy as np
+from argparse import ArgumentParser
+
+
+p = ArgumentParser("")
+p.add_argument("--video", type=int, default=0, help="video, default: 0")
+p.add_argument("--output", default=None, help="path to save movie, default: None (show live)")
+p.add_argument("--width", type=int, default=640, help="pre-detect resize width")
+p.add_argument("--height", type=int, default=480, help="pre-detect resize height")
+p.add_argument("--fourcc", default="XVID", help="MJPG,mp4v,XVID")
+p.add_argument("--framerate", type=float, default=25, help="output frame rate")
+p.add_argument("--show", default=False, action="store_true")
+p.add_argument("--frames", type=int, default=100)
+args = p.parse_args()
+
+fourcc = None
+cam = cv2.VideoCapture(args.video)
+cam.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, args.width)
+cam.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, args.height)
+
+if args.output:
+ try:
+ fourcc = cv2.cv.CV_FOURCC(*args.fourcc)
+ except AttributeError:
+ fourcc = cv2.VideoWriter_fourcc(*args.fourcc)
+ out = cv2.VideoWriter()
+ out.open(args.output, fourcc, args.framerate, (args.width, args.height))
+else:
+ out = None
+
+while True:
+ ret, prev = cam.read()
+ prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)
+ if prevgray.shape == (args.height, args.width):
+ break
+
+count = 0
+try:
+ while True:
+ ret, frame = cam.read()
+
+ gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
+ ret, t= cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
+ frame = cv2.cvtColor(t, cv2.COLOR_GRAY2BGR)
+ # flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
+ # prevgray = gray
+
+ if out != None:
+ out.write(frame)
+ count += 1
+ if args.show:
+ cv2.imshow('display', frame)
+ if cv2.waitKey(5) & 0xFF == ord('q'):
+ break
+ if args.frames != None:
+ if (count >= args.frames):
+ break
+
+except KeyboardInterrupt:
+ pass
+
+print ("\nCleaning up... Wrote", count, "frames")
+if out:
+ out.release()
+if args.show:
+ cv2.destroyAllWindows()
+
+
+
diff --git a/floppies/giulia/scripts/voiceguide.sh b/floppies/giulia/scripts/voiceguide.sh
index 87ff136..f0526e5 100644
--- a/floppies/giulia/scripts/voiceguide.sh
+++ b/floppies/giulia/scripts/voiceguide.sh
@@ -1,95 +1,56 @@
+# ensure the record folder exists
+mkdir -p /var/www/static/gait
-espeak "Gait analysis number one." -v en
+v=-v en-gb+f5 -s 150
+espeak "Tetra Gamma Gait Analysis " -v en-gb +f5 -s 150
sleep 1
-espeak "Please state your name:" -v en
+espeak "Be ready for the security check." -v en-gb+f4 -s 150
sleep 1
-espeak "Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire." -v en
+espeak "Please state your name:" -v en+f4 -s 150
+sleep 1
+
+espeak "Position yourself 2 to 3 meters away from me." -v en-gb+f4 -s 150
sleep 2
-espeak "Walk towards the Tetra Gamma Circulaire in a straight line ." -v en
+espeak "Walk towards me in a straight line ." -v en+f4 -s 150
sleep 0.2
-play sweep_up.wav
+mpv sweep_up.wav
-basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
+basename=/var/www/static/gait/$(date +%Y-%m-%d-%H-%M-%S)
echo recording $basename.avi...
-scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
+python scripts/recordwalk.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
# convert to mp4
ffmpeg -i $basename.avi -y $basename.mp4
# make a thumnail image
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
# rm $basename.avi
-play sweep_up.wav
+mpv sweep_up.wav
-espeak "Position yourself one meter away to the left of the Tetra Gamma Circulaire." -v en
-sleep 1
-
-espeak "Walk from left to right in front of the Tetra Gamma Circulaire.
-" -v en
+espeak "Walk towards me on a zig zag line.
+" -v en+f4 -s175
sleep 0.2
-play sweep_up.wav
+mpv sweep_up.wav
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
echo recording $basename.avi...
-scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
+python scripts/recordwalk.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
# convert to mp4
ffmpeg -i $basename.avi -y $basename.mp4
# make a thumnail image
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
# rm $basename.avi
-play sweep_up.wav
+mpv sweep_up.wav
-espeak "Turn your back to the Tetra Gamma Circulaire." -v en
-sleep 1
-espeak "Walk away from the Tetra Gamma Circulaire.
-" -v en
-sleep 0.2
-
-play sweep_up.wav
-
-basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
-echo recording $basename.avi...
-scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
-# convert to mp4
-ffmpeg -i $basename.avi -y $basename.mp4
-# make a thumnail image
-ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
-# rm $basename.avi
-play sweep_up.wav
-espeak "Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire." -v en
+espeak "Thank you for your cooperation" -v en+f4 -s175
sleep 1
-espeak "Walk towards the Tetra Gamma Circulaire on a zig zag line.
-" -v en
-sleep 0.2
-
-play sweep_up.wav
-
-basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
-echo recording $basename.avi...
-scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
-# convert to mp4
-ffmpeg -i $basename.avi -y $basename.mp4
-# make a thumnail image
-ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
-# rm $basename.avi
+mpv sweep_up.wav
-play sweep_up.wav
-
-# subprocess.call(["espeak", "Please state your name:", "-v", "en"])
-# sleep(2)
-# Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire.
-# Walk towards the Tetra Gamma Circulaire in a straight line .
-# Position yourself one meter away to the left of the Tetra Gamma Circulaire.
-# Walk from left to right in front of the Tetra Gamma Circulaire.
-# Turn your back to the Tetra Gamma Circulaire.
-# Walk away from the Tetra Gamma Circulaire.
-# Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire.
-# Wal
\ No newline at end of file
diff --git a/floppies/karina/.DS_Store b/floppies/karina/.DS_Store
deleted file mode 100644
index 901b3a5..0000000
Binary files a/floppies/karina/.DS_Store and /dev/null differ
diff --git a/floppies/margreet/.DS_Store b/floppies/margreet/.DS_Store
deleted file mode 100644
index daf0dbd..0000000
Binary files a/floppies/margreet/.DS_Store and /dev/null differ
diff --git a/floppies/margreet/main.pd b/floppies/margreet/main.pd
index 3dc42b3..3e8a984 100644
--- a/floppies/margreet/main.pd
+++ b/floppies/margreet/main.pd
@@ -1,120 +1,74 @@
-#N canvas 457 24 739 687 10;
+#N canvas 398 23 553 723 10;
+#X declare -lib OSC;
#X declare -lib net;
-#X declare -lib unpackOSC;
-#X text -22 232 #ikstem;
-#X text 55 233 #gestemd;
-#X obj -69 492 dac~;
-#X obj -37 134 unpack s s s;
-#X obj 441 -2 loadbang;
-#X msg 441 31 \; pd dsp 1;
-#X obj 191 64 udpreceive 127.0.0.1 4000;
-#X text 160 318 comment;
-#X obj 157 254 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X text 372 516 attack;
+#X text 443 517 release;
+#X obj 374 653 line~;
+#X obj 176 638 *~;
+#X obj 373 536 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 89 254 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 447 539 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X text 45 133 tag \, hashtag \, time;
-#X obj -3 162 select #ikstem #gestemd both;
-#X obj 0 252 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#N canvas 692 710 276 254 ikstemenv 0;
-#X obj 72 80 line~;
-#X msg 81 45 0 50;
-#X msg 72 -15 1 1;
-#X text 99 -13 1 msec attack;
-#X text 118 44 50 msec release;
-#X obj 88 15 del 10;
-#X obj 72 -44 inlet;
-#X obj 25 170 outlet~;
-#X obj 25 -45 inlet~;
-#X obj 25 146 *~;
-#X text 134 14 10 msec sustain;
-#X connect 0 0 9 1;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 5 0 1 0;
-#X connect 6 0 2 0;
-#X connect 8 0 9 0;
-#X connect 9 0 7 0;
-#X restore -69 344 pd ikstemenv;
-#X text -16 289 comment;
-#N canvas 692 710 276 254 bothenv 0;
-#X obj 72 80 line~;
-#X obj 72 -44 inlet;
-#X obj 25 170 outlet~;
-#X obj 25 -45 inlet~;
-#X obj 25 146 *~;
-#X text 137 44 5 second release;
-#X text 114 -14 500 msec attack;
-#X msg 72 -15 1 50;
-#X obj 88 15 del 100;
-#X text 144 15 100 msec sustain;
-#X msg 81 45 0 2000;
-#X connect 0 0 4 1;
-#X connect 1 0 7 0;
-#X connect 3 0 4 0;
-#X connect 4 0 2 0;
-#X connect 7 0 0 0;
-#X connect 8 0 10 0;
-#X connect 10 0 0 0;
-#X restore 100 344 pd bothenv;
-#X obj 100 467 snapshot~;
-#X obj 112 435 metro 100;
-#X floatatom 100 493 0 0 0 0 - - -;
-#N canvas 692 710 276 254 gestemdenv 0;
-#X obj 72 80 line~;
-#X text 99 -13 1 msec attack;
-#X text 118 44 50 msec release;
-#X obj 72 -44 inlet;
-#X obj 25 170 outlet~;
-#X obj 25 -45 inlet~;
-#X obj 25 146 *~;
-#X text 134 14 10 msec sustain;
-#X msg 81 45 0 700;
-#X obj 88 15 del 100;
-#X msg 72 -15 1 10;
-#X connect 0 0 6 1;
-#X connect 3 0 10 0;
+#X msg 383 564 stop;
+#X text 70 455 #ikstem;
+#X text 188 454 #gestemd;
+#X obj 176 693 dac~;
+#X obj 34 142 unpack s s s;
+#X obj 19 243 print;
+#X obj 133 345 select #ikstem both;
+#X text 264 345 #gestemd;
+#X obj 373 587 del 50;
+#X msg 444 610 0 250;
+#X msg 308 587 30 30;
+#X obj 488 567 del 50;
+#X msg 373 611 1 500;
+#X obj 212 198 loadbang;
+#X msg 211 244 \; pd dsp 1;
+#X text 176 446 comment;
+#X obj 118 585 *~ 10;
+#X obj 34 48 udpreceive 127.0.0.1 4000;
+#X obj 34 92 unpackOSC;
+#X obj 364 23 import OSC;
+#X obj 365 55 import net;
+#X obj 149 148 print;
+#X obj 182 539 osc~ 880;
+#X msg 195 477 880;
+#X obj 271 500 line~;
+#X msg 266 434 1 10;
+#X msg 318 494 0 30;
+#X obj 318 451 b;
+#X obj 318 473 delay 10;
+#X msg 68 480 220;
+#X text 16 34;
+#X connect 3 0 9 0;
+#X connect 3 0 9 1;
+#X connect 4 0 16 0;
+#X connect 4 0 14 0;
+#X connect 4 0 17 0;
+#X connect 5 0 15 0;
#X connect 5 0 6 0;
-#X connect 6 0 4 0;
-#X connect 8 0 0 0;
-#X connect 9 0 8 0;
-#X connect 10 0 0 0;
-#X restore 14 344 pd gestemdenv;
-#X obj 125 409 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text -69 250 triggers;
-#X text 142 233 both;
-#X text 146 410 monitor output on/off;
-#X text 190 45 normally \, this should suffice:;
-#X obj 101 286 osc~ 150;
-#X obj -69 286 osc~ 7000;
-#X obj 14 286 osc~ 500;
-#X text 174 296 sinewaves envelopes (triggered by incoming OSC) double
-click pd ..env objects to change envelopes;
-#X obj -34 16 import net;
-#X obj -38 -30 import unpackOSC;
-#X obj 191 87 unpackOSC;
-#X connect 3 1 11 0;
-#X connect 4 0 5 0;
-#X connect 6 0 31 0;
-#X connect 8 0 15 1;
-#X connect 9 0 19 1;
-#X connect 11 0 12 0;
-#X connect 11 1 9 0;
-#X connect 11 2 8 0;
-#X connect 12 0 13 1;
-#X connect 13 0 2 0;
-#X connect 13 0 2 1;
-#X connect 15 0 16 0;
+#X connect 6 0 14 0;
+#X connect 10 1 12 0;
+#X connect 12 0 35 0;
+#X connect 12 0 31 0;
+#X connect 12 1 29 0;
+#X connect 12 1 31 0;
+#X connect 14 0 18 0;
#X connect 15 0 2 0;
-#X connect 15 0 2 1;
-#X connect 16 0 18 0;
-#X connect 17 0 16 0;
-#X connect 19 0 2 0;
-#X connect 19 0 2 1;
-#X connect 20 0 17 0;
-#X connect 25 0 15 0;
-#X connect 26 0 13 0;
-#X connect 27 0 19 0;
-#X connect 31 0 3 0;
+#X connect 16 0 2 0;
+#X connect 17 0 15 0;
+#X connect 18 0 2 0;
+#X connect 19 0 20 0;
+#X connect 23 0 24 0;
+#X connect 24 0 10 0;
+#X connect 24 0 27 0;
+#X connect 28 0 22 0;
+#X connect 28 0 3 0;
+#X connect 29 0 28 0;
+#X connect 30 0 3 1;
+#X connect 31 0 30 0;
+#X connect 31 0 33 0;
+#X connect 32 0 30 0;
+#X connect 33 0 34 0;
+#X connect 34 0 32 0;
+#X connect 35 0 28 0;
diff --git a/floppies/margreet/main.py b/floppies/margreet/main.py
index 350ad53..92bad17 100644
--- a/floppies/margreet/main.py
+++ b/floppies/margreet/main.py
@@ -17,8 +17,8 @@ msg.setAddress("/twitter-ikstem")
#msg.append('hello from python')
#client.send(msg)
-#os.system('xzcat /media/floppy/twittersonification.csv.xz > /tmp/twittersonification.csv') #floppydisk
-os.system('xzcat twittersonification.csv.xz > /tmp/twittersonification.csv') #lokaal
+os.system('xzcat /media/floppy/twittersonification.csv.xz > /tmp/twittersonification.csv') #floppydisk
+#os.system('xzcat twittersonification.csv.xz > /tmp/twittersonification.csv') #lokaal
@@ -42,7 +42,7 @@ with open('/tmp/twittersonification.csv', 'rU') as csvfile:
if then:
ti = (now-then).total_seconds()
#print ti/100
- sleep_time = ti/1000
+ sleep_time = ti/40
print ("5.msg stderr", file=sys.stderr)
diff --git a/floppies/margreet/noweb/.DS_Store b/floppies/margreet/noweb/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/floppies/margreet/noweb/.DS_Store and /dev/null differ
diff --git a/floppies/nadine1/LICENSE b/floppies/nadine1/LICENSE
new file mode 100644
index 0000000..b8427bb
--- /dev/null
+++ b/floppies/nadine1/LICENSE
@@ -0,0 +1,13 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ March 2017
+
+Copyright (C) 2017 Nadine Rotem-Stibbe
+
+Everyone is permitted to copy and distribute verbatim or modified
+copies of this license document, and changing it is allowed as long
+as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
diff --git a/floppies/nadine1/README b/floppies/nadine1/README
new file mode 100644
index 0000000..3a1a6e9
--- /dev/null
+++ b/floppies/nadine1/README
@@ -0,0 +1,10 @@
+Author: Nadine Rotem-Stibbe
+Date: 2017
+Title: Drone Oddity #1
+
+Description:
+
+What you are hearing is a score made from the 'Watchlisting Guidance' table of contents using Pure Data.
+This document was written by the National Counterterrorism Center (NCC).
+
+You can access it here: https://theintercept.com/document/2014/07/23/march-2013-watchlisting-guidance/
diff --git a/floppies/nadine1/drone.wav b/floppies/nadine1/drone.wav
index a9e4877..c80ee9a 100644
Binary files a/floppies/nadine1/drone.wav and b/floppies/nadine1/drone.wav differ
diff --git a/floppies/nadine1/noweb/RobotoMono-Regular.ttf b/floppies/nadine1/noweb/RobotoMono-Regular.ttf
new file mode 100755
index 0000000..b158a33
Binary files /dev/null and b/floppies/nadine1/noweb/RobotoMono-Regular.ttf differ
diff --git a/floppies/nadine1/noweb/img/carpet.jpg b/floppies/nadine1/noweb/img/carpet.jpg
index 28630e0..8f0247a 100644
Binary files a/floppies/nadine1/noweb/img/carpet.jpg and b/floppies/nadine1/noweb/img/carpet.jpg differ
diff --git a/floppies/nadine1/noweb/jquery-3.2.0.min.js b/floppies/nadine1/noweb/jquery-3.2.0.min.js
new file mode 100644
index 0000000..2ec0d1d
--- /dev/null
+++ b/floppies/nadine1/noweb/jquery-3.2.0.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v3.2.0 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML=" ";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
+a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/
+
+
+ Drone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Transcripts of U.S. drone attack
from the
LA Times
+
+ On Feb. 21, 2010, a convoy of vehicles carrying civilians headed down a mountain in central Afghanistan. American eyes were watching. For more than four hours, the U.S. military — including a Predator drone crew in Nevada, video screeners in Florida, an AC-130 airplane crew in the sky and an American special operations unit on the ground nearby — tracked the convoy, trying to decide whether it was friend or foe.
+
+ This is the official U.S. military transcript of the radio transmissions and cockpit conversations that day, obtained by the Los Angeles Times through a Freedom of Information Act request.
+
+
+
+
+
+
+