[docker-io] Initial import (#1000662).

Lokesh Mandvekar lsm5 at fedoraproject.org
Tue Sep 24 21:46:00 UTC 2013


commit 49ceef2db41f3b0120210eb2ec5981bab42ca220
Author: Lokesh Mandvekar <lsm5 at redhat.com>
Date:   Tue Sep 24 16:45:45 2013 -0500

    Initial import (#1000662).
    
    Signed-off-by: Lokesh Mandvekar <lsm5 at redhat.com>

 .gitignore                             |    1 +
 docker-0.6.2-alexl-devmapper.patch     |78606 ++++++++++++++++++++++++++++++++
 docker-0.6.2-remove-dotcloud-tar.patch |   12 +
 docker-io.spec                         |  163 +
 docker.service                         |   10 +
 sources                                |    1 +
 6 files changed, 78793 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..c2ee710 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/v0.6.2.tar.gz
diff --git a/docker-0.6.2-alexl-devmapper.patch b/docker-0.6.2-alexl-devmapper.patch
new file mode 100644
index 0000000..f57aa3b
--- /dev/null
+++ b/docker-0.6.2-alexl-devmapper.patch
@@ -0,0 +1,78606 @@
+diff -uNr docker-0.6.2/api.go docker-devmapper/api.go
+--- docker-0.6.2/api.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/api.go	2013-09-23 10:37:39.287305262 -0500
+@@ -72,18 +72,9 @@
+ 	http.Error(w, err.Error(), statusCode)
+ }
+ 
+-func writeJSON(w http.ResponseWriter, code int, v interface{}) error {
+-	b, err := json.Marshal(v)
+-
+-	if err != nil {
+-		return err
+-	}
+-
++func writeJSON(w http.ResponseWriter, b []byte) {
+ 	w.Header().Set("Content-Type", "application/json")
+-	w.WriteHeader(code)
+ 	w.Write(b)
+-
+-	return nil
+ }
+ 
+ func getBoolParam(value string) (bool, error) {
+@@ -116,14 +107,25 @@
+ 		return err
+ 	}
+ 	if status != "" {
+-		return writeJSON(w, http.StatusOK, &APIAuth{Status: status})
++		b, err := json.Marshal(&APIAuth{Status: status})
++		if err != nil {
++			return err
++		}
++		writeJSON(w, b)
++		return nil
+ 	}
+ 	w.WriteHeader(http.StatusNoContent)
+ 	return nil
+ }
+ 
+ func getVersion(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+-	return writeJSON(w, http.StatusOK, srv.DockerVersion())
++	m := srv.DockerVersion()
++	b, err := json.Marshal(m)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func postContainersKill(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -166,8 +168,12 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, outs)
++	b, err := json.Marshal(outs)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func getImagesViz(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -178,7 +184,13 @@
+ }
+ 
+ func getInfo(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+-	return writeJSON(w, http.StatusOK, srv.DockerInfo())
++	out := srv.DockerInfo()
++	b, err := json.Marshal(out)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func getEvents(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -247,8 +259,12 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, outs)
++	b, err := json.Marshal(outs)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func getContainersChanges(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -260,8 +276,12 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, changesStr)
++	b, err := json.Marshal(changesStr)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func getContainersTop(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -280,8 +300,12 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, procsStr)
++	b, err := json.Marshal(procsStr)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func getContainersJSON(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -303,18 +327,23 @@
+ 		n = -1
+ 	}
+ 
++	var b []byte
+ 	outs := srv.Containers(all, size, n, since, before)
+-
+ 	if version < 1.5 {
+ 		outs2 := []APIContainersOld{}
+ 		for _, ctnr := range outs {
+ 			outs2 = append(outs2, ctnr.ToLegacy())
+ 		}
+-
+-		return writeJSON(w, http.StatusOK, outs2)
++		b, err = json.Marshal(outs2)
+ 	} else {
+-		return writeJSON(w, http.StatusOK, outs)
++		b, err = json.Marshal(outs)
++	}
++
++	if err != nil {
++		return err
+ 	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func postImagesTag(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -356,8 +385,13 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-
+-	return writeJSON(w, http.StatusCreated, &APIID{id})
++	b, err := json.Marshal(&APIID{id})
++	if err != nil {
++		return err
++	}
++	w.WriteHeader(http.StatusCreated)
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ // Creates an image from Pull or from Import
+@@ -421,8 +455,12 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, outs)
++	b, err := json.Marshal(outs)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func postImagesInsert(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -447,8 +485,12 @@
+ 			return nil
+ 		}
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, &APIID{ID: imgID})
++	b, err := json.Marshal(&APIID{ID: imgID})
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func postImagesPush(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -510,7 +552,7 @@
+ 		return err
+ 	}
+ 
+-	if !config.NetworkDisabled && len(config.Dns) == 0 && len(srv.runtime.Dns) == 0 && utils.CheckLocalDns(resolvConf) {
++	if len(config.Dns) == 0 && len(srv.runtime.Dns) == 0 && utils.CheckLocalDns(resolvConf) {
+ 		out.Warnings = append(out.Warnings, fmt.Sprintf("Docker detected local DNS server on resolv.conf. Using default external servers: %v", defaultDns))
+ 		config.Dns = defaultDns
+ 	}
+@@ -530,12 +572,18 @@
+ 		out.Warnings = append(out.Warnings, "Your kernel does not support memory swap capabilities. Limitation discarded.")
+ 	}
+ 
+-	if !config.NetworkDisabled && srv.runtime.capabilities.IPv4ForwardingDisabled {
++	if srv.runtime.capabilities.IPv4ForwardingDisabled {
+ 		log.Println("Warning: IPv4 forwarding is disabled.")
+ 		out.Warnings = append(out.Warnings, "IPv4 forwarding is disabled.")
+ 	}
+ 
+-	return writeJSON(w, http.StatusCreated, out)
++	b, err := json.Marshal(out)
++	if err != nil {
++		return err
++	}
++	w.WriteHeader(http.StatusCreated)
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func postContainersRestart(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -591,7 +639,11 @@
+ 	}
+ 	if imgs != nil {
+ 		if len(imgs) != 0 {
+-			return writeJSON(w, http.StatusOK, imgs)
++			b, err := json.Marshal(imgs)
++			if err != nil {
++				return err
++			}
++			writeJSON(w, b)
+ 		} else {
+ 			return fmt.Errorf("Conflict, %s wasn't deleted", name)
+ 		}
+@@ -602,11 +654,11 @@
+ }
+ 
+ func postContainersStart(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+-	var hostConfig *HostConfig
++	hostConfig := &HostConfig{}
++
+ 	// allow a nil body for backwards compatibility
+ 	if r.Body != nil {
+ 		if matchesContentType(r.Header.Get("Content-Type"), "application/json") {
+-			hostConfig = &HostConfig{}
+ 			if err := json.NewDecoder(r.Body).Decode(hostConfig); err != nil {
+ 				return err
+ 			}
+@@ -654,8 +706,12 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, &APIWait{StatusCode: status})
++	b, err := json.Marshal(&APIWait{StatusCode: status})
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func postContainersResize(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -802,8 +858,12 @@
+ 	if err == nil {
+ 		return fmt.Errorf("Conflict between containers and images")
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, container)
++	b, err := json.Marshal(container)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func getImagesByName(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -821,8 +881,12 @@
+ 	if err == nil {
+ 		return fmt.Errorf("Conflict between containers and images")
+ 	}
+-
+-	return writeJSON(w, http.StatusOK, image)
++	b, err := json.Marshal(image)
++	if err != nil {
++		return err
++	}
++	writeJSON(w, b)
++	return nil
+ }
+ 
+ func postBuild(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
+@@ -833,7 +897,6 @@
+ 	repoName := r.FormValue("t")
+ 	rawSuppressOutput := r.FormValue("q")
+ 	rawNoCache := r.FormValue("nocache")
+-	rawRm := r.FormValue("rm")
+ 	repoName, tag := utils.ParseRepositoryTag(repoName)
+ 
+ 	var context io.Reader
+@@ -884,12 +947,8 @@
+ 	if err != nil {
+ 		return err
+ 	}
+-	rm, err := getBoolParam(rawRm)
+-	if err != nil {
+-		return err
+-	}
+ 
+-	b := NewBuildFile(srv, utils.NewWriteFlusher(w), !suppressOutput, !noCache, rm)
++	b := NewBuildFile(srv, utils.NewWriteFlusher(w), !suppressOutput, !noCache)
+ 	id, err := b.Build(context)
+ 	if err != nil {
+ 		fmt.Fprintf(w, "Error build: %s\n", err)
+diff -uNr docker-0.6.2/api_test.go docker-devmapper/api_test.go
+--- docker-0.6.2/api_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/api_test.go	2013-09-23 10:37:38.713306858 -0500
+@@ -445,7 +445,7 @@
+ }
+ 
+ func TestGetContainersTop(t *testing.T) {
+-	t.Skip("Fixme. Skipping test for now. Reported error when testing using dind: 'api_test.go:527: Expected 2 processes, found 0.'")
++        t.Skip("Fixme. Skipping test for now. Reported error when testing using dind: 'api_test.go:527: Expected 2 processes, found 0.'")
+ 	runtime, err := newTestRuntime()
+ 	if err != nil {
+ 		t.Fatal(err)
+@@ -647,13 +647,21 @@
+ 		t.Fatal(err)
+ 	}
+ 
+-	if _, err := os.Stat(path.Join(container.rwPath(), "test")); err != nil {
++	if err := container.EnsureMounted(); err != nil {
++		t.Fatalf("Unable to mount container: %s", err)
++	}
++
++	if _, err := os.Stat(path.Join(container.RootfsPath(), "test")); err != nil {
+ 		if os.IsNotExist(err) {
+ 			utils.Debugf("Err: %s", err)
+ 			t.Fatalf("The test file has not been created")
+ 		}
+ 		t.Fatal(err)
+ 	}
++
++	if err := container.Unmount(); err != nil {
++		t.Fatalf("Unable to unmount container: %s", err)
++	}
+ }
+ 
+ func TestPostContainersKill(t *testing.T) {
+diff -uNr docker-0.6.2/archive.go docker-devmapper/archive.go
+--- docker-0.6.2/archive.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/archive.go	2013-09-23 10:37:39.546304541 -0500
+@@ -80,20 +80,73 @@
+ // Tar creates an archive from the directory at `path`, and returns it as a
+ // stream of bytes.
+ func Tar(path string, compression Compression) (io.Reader, error) {
+-	return TarFilter(path, compression, nil)
++	return TarFilter(path, compression, nil, true, nil)
++}
++
++func escapeName(name string) string {
++	escaped := make([]byte,0)
++	for i, c := range []byte(name) {
++		if i == 0 && c == '/' {
++			continue
++		}
++		// all printable chars except "-" which is 0x2d
++		if (0x20 <= c && c <= 0x7E) && c != 0x2d  {
++			escaped = append(escaped, c)
++		} else {
++			escaped = append(escaped, fmt.Sprintf("\\%03o", c)...)
++		}
++	}
++	return string(escaped)
+ }
+ 
+ // Tar creates an archive from the directory at `path`, only including files whose relative
+ // paths are included in `filter`. If `filter` is nil, then all files are included.
+-func TarFilter(path string, compression Compression, filter []string) (io.Reader, error) {
+-	args := []string{"tar", "--numeric-owner", "-f", "-", "-C", path}
++func TarFilter(path string, compression Compression, filter []string, recursive bool, createFiles []string) (io.Reader, error) {
++	args := []string{"tar", "--numeric-owner", "-f", "-", "-C", path, "-T", "-",}
+ 	if filter == nil {
+ 		filter = []string{"."}
+ 	}
++	args = append(args, "-c"+compression.Flag())
++
++	if !recursive {
++		args = append(args, "--no-recursion")
++	}
++
++	files := ""
+ 	for _, f := range filter {
+-		args = append(args, "-c"+compression.Flag(), f)
++		files = files + escapeName(f) + "\n"
+ 	}
+-	return CmdStream(exec.Command(args[0], args[1:]...))
++
++	tmpDir := ""
++
++	if createFiles != nil {
++		tmpDir, err := ioutil.TempDir("", "docker-tar")
++		if err != nil {
++			return nil, err
++		}
++
++		files = files + "-C" + tmpDir + "\n"
++		for _, f := range createFiles {
++			path := filepath.Join(tmpDir, f)
++			err := os.MkdirAll(filepath.Dir(path), 0600)
++			if err != nil {
++				return nil, err
++			}
++
++			if file, err := os.OpenFile(path, os.O_CREATE, 0600); err != nil {
++				return nil, err
++			} else {
++				file.Close()
++			}
++			files = files + escapeName(f) + "\n"
++		}
++	}
++
++	return CmdStream(exec.Command(args[0], args[1:]...), &files, func () {
++		if tmpDir != "" {
++			_ = os.RemoveAll(tmpDir)
++		}
++	})
+ }
+ 
+ // Untar reads a stream of bytes from `archive`, parses it as a tar archive,
+@@ -140,7 +193,7 @@
+ // TarUntar aborts and returns the error.
+ func TarUntar(src string, filter []string, dst string) error {
+ 	utils.Debugf("TarUntar(%s %s %s)", src, filter, dst)
+-	archive, err := TarFilter(src, Uncompressed, filter)
++	archive, err := TarFilter(src, Uncompressed, filter, true, nil)
+ 	if err != nil {
+ 		return err
+ 	}
+@@ -227,7 +280,18 @@
+ // CmdStream executes a command, and returns its stdout as a stream.
+ // If the command fails to run or doesn't complete successfully, an error
+ // will be returned, including anything written on stderr.
+-func CmdStream(cmd *exec.Cmd) (io.Reader, error) {
++func CmdStream(cmd *exec.Cmd, input *string, atEnd func()) (io.Reader, error) {
++	if input != nil {
++		stdin, err := cmd.StdinPipe()
++		if err != nil {
++			return nil, err
++		}
++		// Write stdin if any
++		go func() {
++			_, _ = stdin.Write([]byte(*input))
++			stdin.Close()
++		}()
++	}
+ 	stdout, err := cmd.StdoutPipe()
+ 	if err != nil {
+ 		return nil, err
+@@ -258,6 +322,9 @@
+ 		} else {
+ 			pipeW.Close()
+ 		}
++		if atEnd != nil {
++			atEnd()
++		}
+ 	}()
+ 	// Run the command and return the pipe
+ 	if err := cmd.Start(); err != nil {
+diff -uNr docker-0.6.2/archive_test.go docker-devmapper/archive_test.go
+--- docker-0.6.2/archive_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/archive_test.go	2013-09-23 10:37:39.133305690 -0500
+@@ -14,7 +14,7 @@
+ 
+ func TestCmdStreamLargeStderr(t *testing.T) {
+ 	cmd := exec.Command("/bin/sh", "-c", "dd if=/dev/zero bs=1k count=1000 of=/dev/stderr; echo hello")
+-	out, err := CmdStream(cmd)
++	out, err := CmdStream(cmd, nil, nil)
+ 	if err != nil {
+ 		t.Fatalf("Failed to start command: %s", err)
+ 	}
+@@ -35,7 +35,7 @@
+ 
+ func TestCmdStreamBad(t *testing.T) {
+ 	badCmd := exec.Command("/bin/sh", "-c", "echo hello; echo >&2 error couldn\\'t reverse the phase pulser; exit 1")
+-	out, err := CmdStream(badCmd)
++	out, err := CmdStream(badCmd, nil, nil)
+ 	if err != nil {
+ 		t.Fatalf("Failed to start command: %s", err)
+ 	}
+@@ -50,7 +50,7 @@
+ 
+ func TestCmdStreamGood(t *testing.T) {
+ 	cmd := exec.Command("/bin/sh", "-c", "echo hello; exit 0")
+-	out, err := CmdStream(cmd)
++	out, err := CmdStream(cmd, nil, nil)
+ 	if err != nil {
+ 		t.Fatal(err)
+ 	}
+diff -uNr docker-0.6.2/buildfile.go docker-devmapper/buildfile.go
+--- docker-0.6.2/buildfile.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/buildfile.go	2013-09-23 10:37:39.238305398 -0500
+@@ -1,6 +1,7 @@
+ package docker
+ 
+ import (
++	"bufio"
+ 	"encoding/json"
+ 	"fmt"
+ 	"github.com/dotcloud/docker/utils"
+@@ -30,7 +31,6 @@
+ 	context      string
+ 	verbose      bool
+ 	utilizeCache bool
+-	rm           bool
+ 
+ 	tmpContainers map[string]struct{}
+ 	tmpImages     map[string]struct{}
+@@ -38,11 +38,15 @@
+ 	out io.Writer
+ }
+ 
+-func (b *buildFile) clearTmp(containers map[string]struct{}) {
++func (b *buildFile) clearTmp(containers, images map[string]struct{}) {
+ 	for c := range containers {
+ 		tmp := b.runtime.Get(c)
+ 		b.runtime.Destroy(tmp)
+-		fmt.Fprintf(b.out, "Removing intermediate container %s\n", utils.TruncateID(c))
++		utils.Debugf("Removing container %s", c)
++	}
++	for i := range images {
++		b.runtime.DeleteImage(i)
++		utils.Debugf("Removing image %s", i)
+ 	}
+ }
+ 
+@@ -454,9 +458,6 @@
+ 	return nil
+ }
+ 
+-// Long lines can be split with a backslash
+-var lineContinuation = regexp.MustCompile(`\s*\\\s*\n`)
+-
+ func (b *buildFile) Build(context io.Reader) (string, error) {
+ 	// FIXME: @creack any reason for using /tmp instead of ""?
+ 	// FIXME: @creack "name" is a terrible variable name
+@@ -469,18 +470,22 @@
+ 	}
+ 	defer os.RemoveAll(name)
+ 	b.context = name
+-	filename := path.Join(name, "Dockerfile")
+-	if _, err := os.Stat(filename); os.IsNotExist(err) {
+-		return "", fmt.Errorf("Can't build a directory with no Dockerfile")
+-	}
+-	fileBytes, err := ioutil.ReadFile(filename)
++	dockerfile, err := os.Open(path.Join(name, "Dockerfile"))
+ 	if err != nil {
+-		return "", err
++		return "", fmt.Errorf("Can't build a directory with no Dockerfile")
+ 	}
+-	dockerfile := string(fileBytes)
+-	dockerfile = lineContinuation.ReplaceAllString(dockerfile, "")
++	// FIXME: "file" is also a terrible variable name ;)
++	file := bufio.NewReader(dockerfile)
+ 	stepN := 0
+-	for _, line := range strings.Split(dockerfile, "\n") {
++	for {
++		line, err := file.ReadString('\n')
++		if err != nil {
++			if err == io.EOF && line == "" {
++				break
++			} else if err != io.EOF {
++				return "", err
++			}
++		}
+ 		line = strings.Trim(strings.Replace(line, "\t", " ", -1), " \t\r\n")
+ 		// Skip comments and empty line
+ 		if len(line) == 0 || line[0] == '#' {
+@@ -511,15 +516,12 @@
+ 	}
+ 	if b.image != "" {
+ 		fmt.Fprintf(b.out, "Successfully built %s\n", utils.TruncateID(b.image))
+-		if b.rm {
+-			b.clearTmp(b.tmpContainers)
+-		}
+ 		return b.image, nil
+ 	}
+ 	return "", fmt.Errorf("An error occurred during the build\n")
+ }
+ 
+-func NewBuildFile(srv *Server, out io.Writer, verbose, utilizeCache, rm bool) BuildFile {
++func NewBuildFile(srv *Server, out io.Writer, verbose, utilizeCache bool) BuildFile {
+ 	return &buildFile{
+ 		runtime:       srv.runtime,
+ 		srv:           srv,
+@@ -529,6 +531,5 @@
+ 		tmpImages:     make(map[string]struct{}),
+ 		verbose:       verbose,
+ 		utilizeCache:  utilizeCache,
+-		rm:            rm,
+ 	}
+ }
+diff -uNr docker-0.6.2/buildfile_test.go docker-devmapper/buildfile_test.go
+--- docker-0.6.2/buildfile_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/buildfile_test.go	2013-09-23 10:37:39.263305328 -0500
+@@ -45,34 +45,6 @@
+ 		nil,
+ 	},
+ 
+-	// Exactly the same as above, except uses a line split with a \ to test
+-	// multiline support.
+-	{
+-		`
+-from   {IMAGE}
+-run    sh -c 'echo root:testpass \
+-	> /tmp/passwd'
+-run    mkdir -p /var/run/sshd
+-run    [ "$(cat /tmp/passwd)" = "root:testpass" ]
+-run    [ "$(ls -d /var/run/sshd)" = "/var/run/sshd" ]
+-`,
+-		nil,
+-		nil,
+-	},
+-
+-	// Line containing literal "\n"
+-	{
+-		`
+-from   {IMAGE}
+-run    sh -c 'echo root:testpass > /tmp/passwd'
+-run    echo "foo \n bar"; echo "baz"
+-run    mkdir -p /var/run/sshd
+-run    [ "$(cat /tmp/passwd)" = "root:testpass" ]
+-run    [ "$(ls -d /var/run/sshd)" = "/var/run/sshd" ]
+-`,
+-		nil,
+-		nil,
+-	},
+ 	{
+ 		`
+ from {IMAGE}
+@@ -257,7 +229,7 @@
+ 	ip := srv.runtime.networkManager.bridgeNetwork.IP
+ 	dockerfile := constructDockerfile(context.dockerfile, ip, port)
+ 
+-	buildfile := NewBuildFile(srv, ioutil.Discard, false, useCache, false)
++	buildfile := NewBuildFile(srv, ioutil.Discard, false, useCache)
+ 	id, err := buildfile.Build(mkTestContext(dockerfile, context.files, t))
+ 	if err != nil {
+ 		t.Fatal(err)
+@@ -498,7 +470,7 @@
+ 	ip := srv.runtime.networkManager.bridgeNetwork.IP
+ 	dockerfile := constructDockerfile(context.dockerfile, ip, port)
+ 
+-	buildfile := NewBuildFile(srv, ioutil.Discard, false, true, false)
++	buildfile := NewBuildFile(srv, ioutil.Discard, false, true)
+ 	_, err = buildfile.Build(mkTestContext(dockerfile, context.files, t))
+ 
+ 	if err == nil {
+@@ -546,7 +518,7 @@
+ 	ip := srv.runtime.networkManager.bridgeNetwork.IP
+ 	dockerfile := constructDockerfile(context.dockerfile, ip, port)
+ 
+-	buildfile := NewBuildFile(srv, ioutil.Discard, false, true, false)
++	buildfile := NewBuildFile(srv, ioutil.Discard, false, true)
+ 	_, err = buildfile.Build(mkTestContext(dockerfile, context.files, t))
+ 
+ 	if err == nil {
+diff -uNr docker-0.6.2/CHANGELOG.md docker-devmapper/CHANGELOG.md
+--- docker-0.6.2/CHANGELOG.md	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/CHANGELOG.md	2013-09-23 10:37:39.276305292 -0500
+@@ -1,24 +1,5 @@
+ # Changelog
+ 
+-## 0.6.2 (2013-09-17)
+-+ Hack: Vendor all dependencies
+-+ Builder: Add -rm option in order to remove intermediate containers
+-+ Runtime: Add domainname support
+-+ Runtime: Implement image filtering with path.Match
+-* Builder: Allow multiline for the RUN instruction
+-* Runtime: Remove unnecesasry warnings
+-* Runtime: Only mount the hostname file when the config exists
+-* Runtime: Handle signals within the `docker login` command
+-* Runtime: Remove os/user dependency
+-* Registry: Implement login with private registry
+-* Remote API: Bump to v1.5
+-* Packaging: Break down hack/make.sh into small scripts, one per 'bundle': test, binary, ubuntu etc.
+-* Documentation: General improvments
+-- Runtime: UID and GID are now also applied to volumes
+-- Runtime: `docker start` set error code upon error
+-- Runtime: `docker run` set the same error code as the process started
+-- Registry: Fix push issues
+-
+ ## 0.6.1 (2013-08-23)
+ * Registry: Pass "meta" headers in API calls to the registry
+ - Packaging: Use correct upstart script with new build tool
+diff -uNr docker-0.6.2/changes.go docker-devmapper/changes.go
+--- docker-0.6.2/changes.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/changes.go	2013-09-23 10:37:39.487304706 -0500
+@@ -5,6 +5,7 @@
+ 	"os"
+ 	"path/filepath"
+ 	"strings"
++	"syscall"
+ )
+ 
+ type ChangeType int
+@@ -33,7 +34,7 @@
+ 	return fmt.Sprintf("%s %s", kind, change.Path)
+ }
+ 
+-func Changes(layers []string, rw string) ([]Change, error) {
++func ChangesAUFS(layers []string, rw string) ([]Change, error) {
+ 	var changes []Change
+ 	err := filepath.Walk(rw, func(path string, f os.FileInfo, err error) error {
+ 		if err != nil {
+@@ -104,3 +105,289 @@
+ 	}
+ 	return changes, nil
+ }
++
++type FileInfo struct {
++	parent *FileInfo
++	name string
++	stat syscall.Stat_t
++	children map[string]*FileInfo
++}
++
++func (root *FileInfo) LookUp(path string) *FileInfo {
++	parent := root
++	if path == "/" {
++		return root
++	}
++
++	pathElements := strings.Split(path, "/")
++	for _, elem := range pathElements {
++		if elem != "" {
++			child := parent.children[elem]
++			if child == nil {
++				return nil
++			}
++			parent = child
++		}
++	}
++	return parent
++}
++
++func (info *FileInfo)path() string {
++	if info.parent == nil {
++		return "/"
++	}
++	return filepath.Join(info.parent.path(), info.name)
++}
++
++func (info *FileInfo)unlink() {
++	if info.parent != nil {
++		delete(info.parent.children, info.name)
++	}
++}
++
++func (info *FileInfo)Remove(path string) bool {
++	child := info.LookUp(path)
++	if child != nil {
++		child.unlink()
++		return true
++	}
++	return false
++}
++
++func (info *FileInfo)isDir() bool {
++	return info.parent == nil || info.stat.Mode&syscall.S_IFDIR == syscall.S_IFDIR
++}
++
++
++func (info *FileInfo)addChanges(oldInfo *FileInfo, changes *[]Change) {
++	if oldInfo == nil {
++		// add
++		change := Change{
++			Path: info.path(),
++			Kind: ChangeAdd,
++		}
++		*changes = append(*changes, change)
++	}
++
++	// We make a copy so we can modify it to detect additions
++	// also, we only recurse on the old dir if the new info is a directory
++	// otherwise any previous delete/change is considered recursive
++	oldChildren := make(map[string]*FileInfo)
++	if oldInfo != nil && info.isDir() {
++		for k, v := range oldInfo.children {
++			oldChildren[k] = v
++		}
++	}
++
++	for name, newChild := range info.children {
++		oldChild, _ := oldChildren[name]
++		if oldChild != nil {
++			// change?
++			oldStat := &oldChild.stat
++			newStat := &newChild.stat
++			// Note: We can't compare inode or ctime or blocksize here, because these change
++			// when copying a file into a container. However, that is not generally a problem
++			// because any content change will change mtime, and any status change should
++			// be visible when actually comparing the stat fields. The only time this
++			// breaks down is if some code intentionally hides a change by setting
++			// back mtime
++			oldMtime := syscall.NsecToTimeval(oldStat.Mtim.Nano())
++			newMtime := syscall.NsecToTimeval(oldStat.Mtim.Nano())
++			if oldStat.Mode != newStat.Mode ||
++				oldStat.Uid != newStat.Uid ||
++				oldStat.Gid != newStat.Gid ||
++				oldStat.Rdev != newStat.Rdev ||
++				// Don't look at size for dirs, its not a good measure of change
++				(oldStat.Size != newStat.Size && oldStat.Mode &syscall.S_IFDIR != syscall.S_IFDIR) ||
++				oldMtime.Sec != newMtime.Sec ||
++				oldMtime.Usec != newMtime.Usec {
++				change := Change{
++					Path: newChild.path(),
++					Kind: ChangeModify,
++				}
++				*changes = append(*changes, change)
++			}
++
++			// Remove from copy so we can detect deletions
++			delete(oldChildren, name)
++		}
++
++		newChild.addChanges(oldChild, changes)
++	}
++	for _, oldChild := range oldChildren {
++		// delete
++		change := Change{
++			Path: oldChild.path(),
++			Kind: ChangeDelete,
++		}
++		*changes = append(*changes, change)
++	}
++
++
++}
++
++func (info *FileInfo)Changes(oldInfo *FileInfo) []Change {
++	var changes []Change
++
++	info.addChanges(oldInfo, &changes)
++
++	return changes
++}
++
++
++func newRootFileInfo() *FileInfo {
++	root := &FileInfo {
++		name: "/",
++		children: make(map[string]*FileInfo),
++	}
++	return root
++}
++
++func applyLayer(root *FileInfo, layer string) error {
++	err := filepath.Walk(layer, func(layerPath string, f os.FileInfo, err error) error {
++		if err != nil {
++			return err
++		}
++
++		// Skip root
++		if layerPath == layer {
++			return nil
++		}
++
++		// rebase path
++		relPath, err := filepath.Rel(layer, layerPath)
++		if err != nil {
++			return err
++		}
++		relPath = filepath.Join("/", relPath)
++
++		// Skip AUFS metadata
++		if matched, err := filepath.Match("/.wh..wh.*", relPath); err != nil || matched {
++			if err != nil || !f.IsDir() {
++				return err
++			}
++			return filepath.SkipDir
++		}
++
++		var layerStat syscall.Stat_t
++		err = syscall.Lstat(layerPath, &layerStat)
++		if err != nil {
++			return err
++		}
++
++		file := filepath.Base(relPath)
++		// If there is a whiteout, then the file was removed
++		if strings.HasPrefix(file, ".wh.") {
++			originalFile := file[len(".wh."):]
++			deletePath := filepath.Join(filepath.Dir(relPath), originalFile)
++
++			root.Remove(deletePath)
++		} else {
++			// Added or changed file
++			existing := root.LookUp(relPath)
++			if existing != nil {
++				// Changed file
++				existing.stat = layerStat
++				if !existing.isDir() {
++					// Changed from dir to non-dir, delete all previous files
++					existing.children = make(map[string]*FileInfo)
++				}
++			} else {
++				// Added file
++				parent := root.LookUp(filepath.Dir(relPath))
++				if parent == nil {
++					return fmt.Errorf("collectFileInfo: Unexpectedly no parent for %s", relPath)
++				}
++
++				info := &FileInfo {
++					name: filepath.Base(relPath),
++					children: make(map[string]*FileInfo),
++					parent: parent,
++					stat: layerStat,
++				}
++
++				parent.children[info.name] = info
++			}
++		}
++		return nil
++	})
++	return err
++}
++
++
++func collectFileInfo(sourceDir string) (*FileInfo, error) {
++	root := newRootFileInfo()
++
++	err := filepath.Walk(sourceDir, func(path string, f os.FileInfo, err error) error {
++		if err != nil {
++			return err
++		}
++
++		// Rebase path
++		relPath, err := filepath.Rel(sourceDir, path)
++		if err != nil {
++			return err
++		}
++		relPath = filepath.Join("/", relPath)
++
++		if relPath == "/" {
++			return nil
++		}
++
++		parent := root.LookUp(filepath.Dir(relPath))
++		if parent == nil {
++			return fmt.Errorf("collectFileInfo: Unexpectedly no parent for %s", relPath)
++		}
++
++		info := &FileInfo {
++			name: filepath.Base(relPath),
++			children: make(map[string]*FileInfo),
++			parent: parent,
++		}
++
++		if err := syscall.Lstat(path, &info.stat); err != nil {
++			return err
++		}
++
++		parent.children[info.name] = info
++
++		return nil
++	})
++	if err != nil {
++		return nil, err
++	}
++	return root, nil
++}
++
++func ChangesLayers(newDir string, layers []string) ([]Change, error) {
++	newRoot, err := collectFileInfo(newDir)
++	if err != nil {
++		return nil, err
++	}
++	oldRoot := newRootFileInfo()
++	for i := len(layers)-1; i >= 0; i-- {
++		layer := layers[i]
++		if err = applyLayer(oldRoot, layer); err != nil {
++			return nil, err
++		}
++	}
++
++	return newRoot.Changes(oldRoot), nil
++}
++
++func ChangesDirs(newDir, oldDir string) ([]Change, error) {
++	oldRoot, err := collectFileInfo(oldDir)
++	if err != nil {
++		return nil, err
++	}
++	newRoot, err := collectFileInfo(newDir)
++	if err != nil {
++		return nil, err
++	}
++
++	// Ignore changes in .docker-id
++	_ = newRoot.Remove("/.docker-id")
++	_ = oldRoot.Remove("/.docker-id")
++
++	return newRoot.Changes(oldRoot), nil
++}
+diff -uNr docker-0.6.2/commands.go docker-devmapper/commands.go
+--- docker-0.6.2/commands.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/commands.go	2013-09-23 10:37:39.246305376 -0500
+@@ -165,7 +165,6 @@
+ 	tag := cmd.String("t", "", "Repository name (and optionally a tag) to be applied to the resulting image in case of success")
+ 	suppressOutput := cmd.Bool("q", false, "Suppress verbose build output")
+ 	noCache := cmd.Bool("no-cache", false, "Do not use cache when building the image")
+-	rm := cmd.Bool("rm", false, "Remove intermediate containers after a successful build")
+ 	if err := cmd.Parse(args); err != nil {
+ 		return nil
+ 	}
+@@ -216,9 +215,6 @@
+ 	if *noCache {
+ 		v.Set("nocache", "1")
+ 	}
+-	if *rm {
+-		v.Set("rm", "1")
+-	}
+ 	req, err := http.NewRequest("POST", fmt.Sprintf("/v%g/build?%s", APIVERSION, v.Encode()), body)
+ 	if err != nil {
+ 		return err
+diff -uNr docker-0.6.2/container.go docker-devmapper/container.go
+--- docker-0.6.2/container.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/container.go	2013-09-23 10:37:38.715306852 -0500
+@@ -290,12 +290,17 @@
+ 
+ // Inject the io.Reader at the given path. Note: do not close the reader
+ func (container *Container) Inject(file io.Reader, pth string) error {
++	if err := container.EnsureMounted(); err != nil {
++		return err
++	}
++
+ 	// Make sure the directory exists
+-	if err := os.MkdirAll(path.Join(container.rwPath(), path.Dir(pth)), 0755); err != nil {
++	if err := os.MkdirAll(path.Join(container.RootfsPath(), path.Dir(pth)), 0755); err != nil {
+ 		return err
+ 	}
++
+ 	// FIXME: Handle permissions/already existing dest
+-	dest, err := os.Create(path.Join(container.rwPath(), pth))
++	dest, err := os.Create(path.Join(container.RootfsPath(), pth))
+ 	if err != nil {
+ 		return err
+ 	}
+@@ -564,7 +569,7 @@
+ 	container.State.Lock()
+ 	defer container.State.Unlock()
+ 
+-	if hostConfig == nil { // in docker start of docker restart we want to reuse previous HostConfigFile
++	if len(hostConfig.Binds) == 0 && len(hostConfig.LxcConf) == 0 {
+ 		hostConfig, _ = container.ReadHostConfig()
+ 	}
+ 
+@@ -648,7 +653,7 @@
+ 				continue
+ 			}
+ 			if err := os.MkdirAll(path.Join(container.RootfsPath(), volPath), 0755); err != nil {
+-				return err
++				return nil
+ 			}
+ 			container.Volumes[volPath] = id
+ 			if isRW, exists := c.VolumesRW[volPath]; exists {
+@@ -707,19 +712,6 @@
+ 					}
+ 				}
+ 			}
+-			var stat syscall.Stat_t
+-			if err := syscall.Stat(rootVolPath, &stat); err != nil {
+-				return err
+-			}
+-			var srcStat syscall.Stat_t
+-			if err := syscall.Stat(srcPath, &srcStat); err != nil {
+-				return err
+-			}
+-			if stat.Uid != srcStat.Uid || stat.Gid != srcStat.Gid {
+-				if err := os.Chown(srcPath, int(stat.Uid), int(stat.Gid)); err != nil {
+-					return err
+-				}
+-			}
+ 		}
+ 	}
+ 
+@@ -728,6 +720,7 @@
+ 	}
+ 
+ 	params := []string{
++		"lxc-start",
+ 		"-n", container.ID,
+ 		"-f", container.lxcConfigPath(),
+ 		"--",
+@@ -776,7 +769,21 @@
+ 	params = append(params, "--", container.Path)
+ 	params = append(params, container.Args...)
+ 
+-	container.cmd = exec.Command("lxc-start", params...)
++	if RootIsShared() {
++		// lxc-start really needs / to be private, or all kinds of stuff break
++		// What we really want is to clone into a new namespace and then
++		// mount / MS_REC|MS_PRIVATE, but since we can't really clone or fork
++		// without exec in go we have to do this horrible shell hack...
++		shellString :=
++			"mount --make-rprivate /; exec " +
++			utils.ShellQuoteArguments(params)
++
++		params = []string{
++			"unshare", "-m", "--", "/bin/sh", "-c",	shellString,
++		}
++	}
++
++	container.cmd = exec.Command(params[0], params[1:]...)
+ 
+ 	// Setup logging of stdout and stderr to disk
+ 	if err := container.runtime.LogToDisk(container.stdout, container.logPath("json"), "stdout"); err != nil {
+@@ -1092,7 +1099,15 @@
+ }
+ 
+ func (container *Container) ExportRw() (Archive, error) {
+-	return Tar(container.rwPath(), Uncompressed)
++	if err := container.EnsureMounted(); err != nil {
++		return nil, err
++	}
++
++	image, err := container.GetImage()
++	if err != nil {
++		return nil, err
++	}
++	return image.ExportChanges(container.runtime, container.RootfsPath(), container.rwPath(), container.ID)
+ }
+ 
+ func (container *Container) RwChecksum() (string, error) {
+@@ -1134,20 +1149,33 @@
+ 	return container.Mount()
+ }
+ 
++func (container *Container) EnsureUnmounted() error {
++	if mounted, err := container.Mounted(); err != nil {
++		return err
++	} else if !mounted {
++		return nil
++	}
++	return container.Unmount()
++}
++
+ func (container *Container) Mount() error {
+ 	image, err := container.GetImage()
+ 	if err != nil {
+ 		return err
+ 	}
+-	return image.Mount(container.RootfsPath(), container.rwPath())
++	return image.Mount(container.runtime, container.RootfsPath(), container.rwPath(), container.ID)
+ }
+ 
+ func (container *Container) Changes() ([]Change, error) {
++	if err := container.EnsureMounted(); err != nil {
++		return nil, err
++	}
++
+ 	image, err := container.GetImage()
+ 	if err != nil {
+ 		return nil, err
+ 	}
+-	return image.Changes(container.rwPath())
++	return image.Changes(container.runtime, container.RootfsPath(), container.rwPath(), container.ID)
+ }
+ 
+ func (container *Container) GetImage() (*Image, error) {
+@@ -1158,11 +1186,20 @@
+ }
+ 
+ func (container *Container) Mounted() (bool, error) {
+-	return Mounted(container.RootfsPath())
++	image, err := container.GetImage()
++	if err != nil {
++		return false, err
++	}
++	return image.Mounted(container.runtime, container.RootfsPath(), container.rwPath())
+ }
+ 
+ func (container *Container) Unmount() error {
+-	return Unmount(container.RootfsPath())
++	image, err := container.GetImage()
++	if err != nil {
++		return err
++	}
++	err = image.Unmount(container.runtime, container.RootfsPath(), container.ID)
++	return err
+ }
+ 
+ // ShortID returns a shorthand version of the container's id for convenience.
+@@ -1250,5 +1287,5 @@
+ 		filter = []string{path.Base(basePath)}
+ 		basePath = path.Dir(basePath)
+ 	}
+-	return TarFilter(basePath, Uncompressed, filter)
++	return TarFilter(basePath, Uncompressed, filter, true, nil)
+ }
+diff -uNr docker-0.6.2/container_test.go docker-devmapper/container_test.go
+--- docker-0.6.2/container_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/container_test.go	2013-09-23 10:37:38.668306983 -0500
+@@ -1196,51 +1196,6 @@
+ 	return tmpDir
+ }
+ 
+-// Test for #1737
+-func TestCopyVolumeUidGid(t *testing.T) {
+-	r := mkRuntime(t)
+-	defer nuke(r)
+-
+-	// Add directory not owned by root
+-	container1, _, _ := mkContainer(r, []string{"_", "/bin/sh", "-c", "mkdir -p /hello && chown daemon.daemon /hello"}, t)
+-	defer r.Destroy(container1)
+-
+-	if container1.State.Running {
+-		t.Errorf("Container shouldn't be running")
+-	}
+-	if err := container1.Run(); err != nil {
+-		t.Fatal(err)
+-	}
+-	if container1.State.Running {
+-		t.Errorf("Container shouldn't be running")
+-	}
+-
+-	rwTar, err := container1.ExportRw()
+-	if err != nil {
+-		t.Error(err)
+-	}
+-	img, err := r.graph.Create(rwTar, container1, "unit test commited image", "", nil)
+-	if err != nil {
+-		t.Error(err)
+-	}
+-
+-	// Test that the uid and gid is copied from the image to the volume
+-	tmpDir1 := tempDir(t)
+-	defer os.RemoveAll(tmpDir1)
+-	stdout1, _ := runContainer(r, []string{"-v", fmt.Sprintf("%s:/hello", tmpDir1), img.ID, "stat", "-c", "%U %G", "/hello"}, t)
+-	if !strings.Contains(stdout1, "daemon daemon") {
+-		t.Fatal("Container failed to transfer uid and gid to volume")
+-	}
+-
+-	// Test that the uid and gid is not copied from the image when the volume is read only
+-	tmpDir2 := tempDir(t)
+-	defer os.RemoveAll(tmpDir1)
+-	stdout2, _ := runContainer(r, []string{"-v", fmt.Sprintf("%s:/hello:ro", tmpDir2), img.ID, "stat", "-c", "%U %G", "/hello"}, t)
+-	if strings.Contains(stdout2, "daemon daemon") {
+-		t.Fatal("Container transfered uid and gid to volume")
+-	}
+-}
+-
+ // Test for #1582
+ func TestCopyVolumeContent(t *testing.T) {
+ 	r := mkRuntime(t)
+diff -uNr docker-0.6.2/contrib/docker.bash docker-devmapper/contrib/docker.bash
+--- docker-0.6.2/contrib/docker.bash	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/contrib/docker.bash	2013-09-23 10:37:38.589307202 -0500
+@@ -114,7 +114,7 @@
+ 
+ 	case "$cur" in
+ 		-*)
+-			COMPREPLY=( $( compgen -W "-no-cache -t -q -rm" -- "$cur" ) )
++			COMPREPLY=( $( compgen -W "-no-cache -t -q" -- "$cur" ) )
+ 			;;
+ 		*)
+ 			_filedir
+diff -uNr docker-0.6.2/deviceset.go docker-devmapper/deviceset.go
+--- docker-0.6.2/deviceset.go	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/deviceset.go	2013-09-23 10:37:39.131305695 -0500
+@@ -0,0 +1,75 @@
++package docker
++
++type DeviceSet interface {
++	AddDevice(hash, baseHash string) error
++	SetInitialized(hash string) error
++	DeactivateDevice(hash string) error
++	RemoveDevice(hash string) error
++	MountDevice(hash, path string) error
++	UnmountDevice(hash, path string) error
++	HasDevice(hash string) bool
++	HasInitializedDevice(hash string) bool
++	HasActivatedDevice(hash string) bool
++	Shutdown() error
++}
++
++type DeviceSetWrapper struct {
++	wrapped DeviceSet
++	prefix string
++}
++
++func (wrapper *DeviceSetWrapper) wrap(hash string) string {
++	if hash != "" {
++		hash = wrapper.prefix + "-" + hash
++	}
++	return hash
++}
++
++
++func (wrapper *DeviceSetWrapper) AddDevice(hash, baseHash string) error {
++	return wrapper.wrapped.AddDevice(wrapper.wrap(hash), wrapper.wrap(baseHash))
++}
++
++func (wrapper *DeviceSetWrapper) SetInitialized(hash string) error {
++	return wrapper.wrapped.SetInitialized(wrapper.wrap(hash))
++}
++
++func (wrapper *DeviceSetWrapper) DeactivateDevice(hash string) error {
++	return wrapper.wrapped.DeactivateDevice(wrapper.wrap(hash))
++}
++
++func (wrapper *DeviceSetWrapper) Shutdown() error {
++	return nil
++}
++
++func (wrapper *DeviceSetWrapper) RemoveDevice(hash string) error {
++	return wrapper.wrapped.RemoveDevice(wrapper.wrap(hash))
++}
++
++func (wrapper *DeviceSetWrapper) MountDevice(hash, path string) error {
++	return wrapper.wrapped.MountDevice(wrapper.wrap(hash), path)
++}
++
++func (wrapper *DeviceSetWrapper) UnmountDevice(hash, path string) error {
++	return wrapper.wrapped.UnmountDevice(wrapper.wrap(hash), path)
++}
++
++func (wrapper *DeviceSetWrapper) HasDevice(hash string) bool {
++	return wrapper.wrapped.HasDevice(wrapper.wrap(hash))
++}
++
++func (wrapper *DeviceSetWrapper) HasInitializedDevice(hash string) bool {
++	return wrapper.wrapped.HasInitializedDevice(wrapper.wrap(hash))
++}
++
++func (wrapper *DeviceSetWrapper) HasActivatedDevice(hash string) bool {
++	return wrapper.wrapped.HasActivatedDevice(wrapper.wrap(hash))
++}
++
++func NewDeviceSetWrapper(wrapped DeviceSet, prefix string) DeviceSet {
++	wrapper := &DeviceSetWrapper{
++		wrapped: wrapped,
++		prefix: prefix,
++	}
++	return wrapper
++}
+diff -uNr docker-0.6.2/devmapper/deviceset_devmapper.go docker-devmapper/devmapper/deviceset_devmapper.go
+--- docker-0.6.2/devmapper/deviceset_devmapper.go	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/devmapper/deviceset_devmapper.go	2013-09-23 10:37:39.249305367 -0500
+@@ -0,0 +1,919 @@
++package devmapper
++
++import (
++	"github.com/dotcloud/docker/utils"
++	"encoding/json"
++	"fmt"
++	"io"
++	"io/ioutil"
++	"log"
++	"os"
++	"os/exec"
++	"path"
++	"path/filepath"
++	"strings"
++	"syscall"
++)
++
++const defaultDataLoopbackSize int64 = 100 * 1024 * 1024 * 1024
++const defaultMetaDataLoopbackSize int64 = 2 * 1024 * 1024 * 1024
++const defaultBaseFsSize uint64 = 10 * 1024 * 1024 * 1024
++
++type DevInfo struct {
++	Hash          string       `json:"-"`
++	DeviceId      int          `json:"device_id"`
++	Size          uint64       `json:"size"`
++	TransactionId uint64       `json:"transaction_id"`
++	Initialized   bool         `json:"initialized"`
++	devices       *DeviceSetDM `json:"-"`
++}
++
++type MetaData struct {
++	Devices map[string]*DevInfo `json:devices`
++}
++
++type DeviceSetDM struct {
++	initialized bool
++	root        string
++	devicePrefix string
++	MetaData
++	TransactionId    uint64
++	NewTransactionId uint64
++	nextFreeDevice   int
++	activeMounts map[string]int
++}
++
++func getDevName(name string) string {
++	return "/dev/mapper/" + name
++}
++
++func (info *DevInfo) Name() string {
++	hash := info.Hash
++	if hash == "" {
++		hash = "base"
++	}
++	return fmt.Sprintf("%s-%s", info.devices.devicePrefix, hash)
++}
++
++func (info *DevInfo) DevName() string {
++	return getDevName(info.Name())
++}
++
++func (devices *DeviceSetDM) loopbackDir() string {
++	return path.Join(devices.root, "loopback")
++}
++
++func (devices *DeviceSetDM) jsonFile() string {
++	return path.Join(devices.loopbackDir(), "json")
++}
++
++func (devices *DeviceSetDM) getPoolName() string {
++	return fmt.Sprintf("%s-pool", devices.devicePrefix)
++}
++
++func (devices *DeviceSetDM) getPoolDevName() string {
++	return getDevName(devices.getPoolName())
++}
++
++func (devices *DeviceSetDM) createTask(t TaskType, name string) (*Task, error) {
++	task := TaskCreate(t)
++	if task == nil {
++		return nil, fmt.Errorf("Can't create task of type %d", int(t))
++	}
++	err := task.SetName(name)
++	if err != nil {
++		return nil, fmt.Errorf("Can't set task name %s", name)
++	}
++	return task, nil
++}
++
++func (devices *DeviceSetDM) getInfo(name string) (*Info, error) {
++	task, err := devices.createTask(DeviceInfo, name)
++	if task == nil {
++		return nil, err
++	}
++	err = task.Run()
++	if err != nil {
++		return nil, err
++	}
++	info, err := task.GetInfo()
++	if err != nil {
++		return nil, err
++	}
++	return info, nil
++}
++
++func (devices *DeviceSetDM) getStatus(name string) (uint64, uint64, string, string, error) {
++	task, err := devices.createTask(DeviceStatus, name)
++	if task == nil {
++		return 0, 0, "", "", err
++	}
++	err = task.Run()
++	if err != nil {
++		return 0, 0, "", "", err
++	}
++
++	devinfo, err := task.GetInfo()
++	if err != nil {
++		return 0, 0, "", "", err
++	}
++	if devinfo.Exists == 0 {
++		return 0, 0, "", "", fmt.Errorf("Non existing device %s", name)
++	}
++
++	var next uintptr = 0
++	next, start, length, target_type, params := task.GetNextTarget(next)
++
++	return start, length, target_type, params, nil
++}
++
++func (devices *DeviceSetDM) setTransactionId(oldId uint64, newId uint64) error {
++	task, err := devices.createTask(DeviceTargetMsg, devices.getPoolDevName())
++	if task == nil {
++		return err
++	}
++
++	err = task.SetSector(0)
++	if err != nil {
++		return fmt.Errorf("Can't set sector")
++	}
++
++	message := fmt.Sprintf("set_transaction_id %d %d", oldId, newId)
++	err = task.SetMessage(message)
++	if err != nil {
++		return fmt.Errorf("Can't set message")
++	}
++
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running setTransactionId")
++	}
++	return nil
++}
++
++func (devices *DeviceSetDM) hasImage(name string) bool {
++	dirname := devices.loopbackDir()
++	filename := path.Join(dirname, name)
++
++	_, err := os.Stat(filename)
++	return err == nil
++}
++
++func (devices *DeviceSetDM) ensureImage(name string, size int64) (string, error) {
++	dirname := devices.loopbackDir()
++	filename := path.Join(dirname, name)
++
++	if err := os.MkdirAll(dirname, 0700); err != nil && !os.IsExist(err) {
++		return "", err
++	}
++
++	_, err := os.Stat(filename)
++	if err != nil {
++		if !os.IsNotExist(err) {
++			return "", err
++		}
++		log.Printf("Creating loopback file %s for device-manage use", filename)
++		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE, 0600)
++		if err != nil {
++			return "", err
++		}
++		err = file.Truncate(size)
++		if err != nil {
++			return "", err
++		}
++	}
++	return filename, nil
++}
++
++func (devices *DeviceSetDM) createPool(dataFile *os.File, metadataFile *os.File) error {
++	utils.Debugf("Activating device-mapper pool %s", devices.getPoolName())
++	task, err := devices.createTask(DeviceCreate, devices.getPoolName())
++	if task == nil {
++		return err
++	}
++
++	size, err := GetBlockDeviceSize(dataFile)
++	if err != nil {
++		return fmt.Errorf("Can't get data size")
++	}
++
++	params := metadataFile.Name() + " " + dataFile.Name() + " 512 8192"
++	err = task.AddTarget(0, size/512, "thin-pool", params)
++	if err != nil {
++		return fmt.Errorf("Can't add target")
++	}
++
++	var cookie uint32 = 0
++	err = task.SetCookie(&cookie, 32)
++	if err != nil {
++		return fmt.Errorf("Can't set cookie")
++	}
++
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running DeviceCreate")
++	}
++
++	UdevWait(cookie)
++
++	return nil
++}
++
++func (devices *DeviceSetDM) suspendDevice(info *DevInfo) error {
++	task, err := devices.createTask(DeviceSuspend, info.Name())
++	if task == nil {
++		return err
++	}
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running DeviceSuspend")
++	}
++	return nil
++}
++
++func (devices *DeviceSetDM) resumeDevice(info *DevInfo) error {
++	task, err := devices.createTask(DeviceResume, info.Name())
++	if task == nil {
++		return err
++	}
++
++	var cookie uint32 = 0
++	err = task.SetCookie(&cookie, 32)
++	if err != nil {
++		return fmt.Errorf("Can't set cookie")
++	}
++
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running DeviceSuspend")
++	}
++
++	UdevWait(cookie)
++
++	return nil
++}
++
++func (devices *DeviceSetDM) createDevice(deviceId int) error {
++	task, err := devices.createTask(DeviceTargetMsg, devices.getPoolDevName())
++	if task == nil {
++		return err
++	}
++
++	err = task.SetSector(0)
++	if err != nil {
++		return fmt.Errorf("Can't set sector")
++	}
++
++	message := fmt.Sprintf("create_thin %d", deviceId)
++	err = task.SetMessage(message)
++	if err != nil {
++		return fmt.Errorf("Can't set message")
++	}
++
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running createDevice")
++	}
++	return nil
++}
++
++func (devices *DeviceSetDM) createSnapDevice(deviceId int, baseInfo *DevInfo) error {
++	doSuspend := false
++	devinfo, _ := devices.getInfo(baseInfo.Name())
++	if devinfo != nil && devinfo.Exists != 0 {
++		doSuspend = true
++	}
++
++	if doSuspend {
++		err := devices.suspendDevice(baseInfo)
++		if err != nil {
++			return err
++		}
++	}
++
++	task, err := devices.createTask(DeviceTargetMsg, devices.getPoolDevName())
++	if task == nil {
++		_ = devices.resumeDevice(baseInfo)
++		return err
++	}
++	err = task.SetSector(0)
++	if err != nil {
++		_ = devices.resumeDevice(baseInfo)
++		return fmt.Errorf("Can't set sector")
++	}
++
++	message := fmt.Sprintf("create_snap %d %d", deviceId, baseInfo.DeviceId)
++	err = task.SetMessage(message)
++	if err != nil {
++		_ = devices.resumeDevice(baseInfo)
++		return fmt.Errorf("Can't set message")
++	}
++
++	err = task.Run()
++	if err != nil {
++		_ = devices.resumeDevice(baseInfo)
++		return fmt.Errorf("Error running DeviceCreate")
++	}
++
++	if doSuspend {
++		err = devices.resumeDevice(baseInfo)
++		if err != nil {
++			return err
++		}
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) deleteDevice(deviceId int) error {
++	task, err := devices.createTask(DeviceTargetMsg, devices.getPoolDevName())
++	if task == nil {
++		return err
++	}
++
++	err = task.SetSector(0)
++	if err != nil {
++		return fmt.Errorf("Can't set sector")
++	}
++
++	message := fmt.Sprintf("delete %d", deviceId)
++	err = task.SetMessage(message)
++	if err != nil {
++		return fmt.Errorf("Can't set message")
++	}
++
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running deleteDevice")
++	}
++	return nil
++}
++
++func (devices *DeviceSetDM) removeDevice(name string) error {
++	task, err := devices.createTask(DeviceRemove, name)
++	if task == nil {
++		return err
++	}
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running removeDevice")
++	}
++	return nil
++}
++
++func (devices *DeviceSetDM) activateDevice(info *DevInfo) error {
++	task, err := devices.createTask(DeviceCreate, info.Name())
++	if task == nil {
++		return err
++	}
++
++	params := fmt.Sprintf("%s %d", devices.getPoolDevName(), info.DeviceId)
++	err = task.AddTarget(0, info.Size/512, "thin", params)
++	if err != nil {
++		return fmt.Errorf("Can't add target")
++	}
++
++	var cookie uint32 = 0
++	err = task.SetCookie(&cookie, 32)
++	if err != nil {
++		return fmt.Errorf("Can't set cookie")
++	}
++
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running DeviceCreate")
++	}
++
++	UdevWait(cookie)
++
++	return nil
++}
++
++func (devices *DeviceSetDM) allocateDeviceId() int {
++	// TODO: Add smarter reuse of deleted devices
++	id := devices.nextFreeDevice
++	devices.nextFreeDevice = devices.nextFreeDevice + 1
++	return id
++}
++
++func (devices *DeviceSetDM) allocateTransactionId() uint64 {
++	devices.NewTransactionId = devices.NewTransactionId + 1
++	return devices.NewTransactionId
++}
++
++func (devices *DeviceSetDM) saveMetadata() error {
++	jsonData, err := json.Marshal(devices.MetaData)
++	if err != nil {
++		return err
++	}
++	tmpFile, err := ioutil.TempFile(filepath.Dir(devices.jsonFile()), ".json")
++	if err != nil {
++		return err
++	}
++
++	n, err := tmpFile.Write(jsonData)
++	if err != nil {
++		return err
++	}
++	if n < len(jsonData) {
++		err = io.ErrShortWrite
++	}
++	err = tmpFile.Sync()
++	if err != nil {
++		return err
++	}
++	err = tmpFile.Close()
++	if err != nil {
++		return err
++	}
++	err = os.Rename(tmpFile.Name(), devices.jsonFile())
++	if err != nil {
++		return err
++	}
++
++	if devices.NewTransactionId != devices.TransactionId {
++		err = devices.setTransactionId(devices.TransactionId, devices.NewTransactionId)
++		if err != nil {
++			return err
++		}
++		devices.TransactionId = devices.NewTransactionId
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) registerDevice(id int, hash string, size uint64) (*DevInfo, error) {
++	transaction := devices.allocateTransactionId()
++
++	info := &DevInfo{
++		Hash:          hash,
++		DeviceId:      id,
++		Size:          size,
++		TransactionId: transaction,
++		Initialized:   false,
++		devices:       devices,
++	}
++
++	devices.Devices[hash] = info
++	err := devices.saveMetadata()
++	if err != nil {
++		// Try to remove unused device
++		devices.Devices[hash] = nil
++		return nil, err
++	}
++
++	return info, nil
++}
++
++func (devices *DeviceSetDM) activateDeviceIfNeeded(hash string) error {
++	info := devices.Devices[hash]
++	if info == nil {
++		return fmt.Errorf("Unknown device %s", hash)
++	}
++
++	name := info.Name()
++	devinfo, _ := devices.getInfo(name)
++	if devinfo != nil && devinfo.Exists != 0 {
++		return nil
++	}
++
++	return devices.activateDevice(info)
++}
++
++func (devices *DeviceSetDM) createFilesystem(info *DevInfo) error {
++	devname := info.DevName()
++
++	err := exec.Command("mkfs.ext4", "-E",
++		"discard,lazy_itable_init=0,lazy_journal_init=0", devname).Run()
++	if err != nil {
++		err = exec.Command("mkfs.ext4", "-E",
++		"discard,lazy_itable_init=0", devname).Run()
++	}
++	if err != nil {
++		return err
++	}
++	return nil
++}
++
++func (devices *DeviceSetDM) loadMetaData() error {
++	_, _, _, params, err := devices.getStatus(devices.getPoolName())
++	if err != nil {
++		return err
++	}
++	var currentTransaction uint64
++	_, err = fmt.Sscanf(params, "%d", &currentTransaction)
++	if err != nil {
++		return err
++	}
++
++	devices.TransactionId = currentTransaction
++	devices.NewTransactionId = devices.TransactionId
++
++	jsonData, err := ioutil.ReadFile(devices.jsonFile())
++	if err != nil && !os.IsNotExist(err) {
++		return err
++	}
++
++	metadata := &MetaData{
++		Devices: make(map[string]*DevInfo),
++	}
++	if jsonData != nil {
++		if err := json.Unmarshal(jsonData, metadata); err != nil {
++			return err
++		}
++	}
++	devices.MetaData = *metadata
++
++	for hash, d := range devices.Devices {
++		d.Hash = hash
++		d.devices = devices
++
++		if d.DeviceId >= devices.nextFreeDevice {
++			devices.nextFreeDevice = d.DeviceId + 1
++		}
++
++		// If the transaction id is larger than the actual one we lost the device due to some crash
++		if d.TransactionId > currentTransaction {
++			log.Printf("Removing lost device %s with id %d", hash, d.TransactionId)
++			delete(devices.Devices, hash)
++		}
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) setupBaseImage() error {
++	oldInfo := devices.Devices[""]
++	if oldInfo != nil && oldInfo.Initialized {
++		return nil
++	}
++
++	if oldInfo != nil && !oldInfo.Initialized {
++		log.Printf("Removing uninitialized base image")
++		if err := devices.RemoveDevice(""); err != nil {
++			return err
++		}
++	}
++
++	log.Printf("Initializing base device-manager snapshot")
++
++	id := devices.allocateDeviceId()
++
++	// Create initial device
++	err := devices.createDevice(id)
++	if err != nil {
++		return err
++	}
++
++	info, err := devices.registerDevice(id, "", defaultBaseFsSize)
++	if err != nil {
++		_ = devices.deleteDevice(id)
++		return err
++	}
++
++	log.Printf("Creating filesystem on base device-manager snapshot")
++
++	err = devices.activateDeviceIfNeeded("")
++	if err != nil {
++		return err
++	}
++
++	err = devices.createFilesystem(info)
++	if err != nil {
++		return err
++	}
++
++	info.Initialized = true
++
++	err = devices.saveMetadata()
++	if err != nil {
++		info.Initialized = false
++		return err
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) initDevmapper() error {
++	info, err := devices.getInfo(devices.getPoolName())
++	if info == nil {
++		return err
++	}
++
++	if info.Exists != 0 {
++		/* Pool exists, assume everything is up */
++		err = devices.loadMetaData()
++		if err != nil {
++			return err
++		}
++		err = devices.setupBaseImage()
++		if err != nil {
++			return err
++		}
++		return nil
++	}
++
++	createdLoopback := false
++	if !devices.hasImage("data") || !devices.hasImage("metadata") {
++		/* If we create the loopback mounts we also need to initialize the base fs */
++		createdLoopback = true
++	}
++
++	data, err := devices.ensureImage("data", defaultDataLoopbackSize)
++	if err != nil {
++		return err
++	}
++
++	metadata, err := devices.ensureImage("metadata", defaultMetaDataLoopbackSize)
++	if err != nil {
++		return err
++	}
++
++	dataFile, err := AttachLoopDevice(data)
++	if err != nil {
++		return err
++	}
++	defer dataFile.Close()
++
++	metadataFile, err := AttachLoopDevice(metadata)
++	if err != nil {
++		return err
++	}
++	defer metadataFile.Close()
++
++	err = devices.createPool(dataFile, metadataFile)
++	if err != nil {
++		return err
++	}
++
++	if !createdLoopback {
++		err = devices.loadMetaData()
++		if err != nil {
++			return err
++		}
++	}
++
++	err = devices.setupBaseImage()
++	if err != nil {
++		return err
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) AddDevice(hash, baseHash string) error {
++	if err := devices.ensureInit(); err != nil {
++		return err
++	}
++
++	if devices.Devices[hash] != nil {
++		return fmt.Errorf("hash %s already exists", hash)
++	}
++
++	baseInfo := devices.Devices[baseHash]
++	if baseInfo == nil {
++		return fmt.Errorf("Unknown base hash %s", baseHash)
++	}
++
++	deviceId := devices.allocateDeviceId()
++
++	err := devices.createSnapDevice(deviceId, baseInfo)
++	if err != nil {
++		return err
++	}
++
++	_, err = devices.registerDevice(deviceId, hash, baseInfo.Size)
++	if err != nil {
++		_ = devices.deleteDevice(deviceId)
++		return err
++	}
++	return nil
++}
++
++func (devices *DeviceSetDM) RemoveDevice(hash string) error {
++	if err := devices.ensureInit(); err != nil {
++		return err
++	}
++
++	info := devices.Devices[hash]
++	if info == nil {
++		return fmt.Errorf("hash %s doesn't exists", hash)
++	}
++
++	devinfo, _ := devices.getInfo(info.Name())
++	if devinfo != nil && devinfo.Exists != 0 {
++		err := devices.removeDevice(info.Name())
++		if err != nil {
++			return err
++		}
++	}
++
++	if info.Initialized {
++		info.Initialized = false
++		err := devices.saveMetadata()
++		if err != nil {
++			return err
++		}
++	}
++
++	err := devices.deleteDevice(info.DeviceId)
++	if err != nil {
++		return err
++	}
++
++	_ = devices.allocateTransactionId()
++	delete(devices.Devices, info.Hash)
++
++	err = devices.saveMetadata()
++	if err != nil {
++		devices.Devices[info.Hash] = info
++		return err
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) DeactivateDevice(hash string) error {
++	if err := devices.ensureInit(); err != nil {
++		return err
++	}
++
++	info := devices.Devices[hash]
++	if info == nil {
++		return fmt.Errorf("hash %s doesn't exists", hash)
++	}
++
++	devinfo, err := devices.getInfo(info.Name())
++	if err != nil {
++		return err
++	}
++	if devinfo.Exists != 0 {
++		err := devices.removeDevice(info.Name())
++		if err != nil {
++			return err
++		}
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) Shutdown() error {
++	if !devices.initialized {
++		return nil
++	}
++
++	for path, count := range devices.activeMounts {
++		for i := count; i > 0; i-- {
++			err := syscall.Unmount(path, 0)
++			if err != nil {
++				fmt.Printf("Shutdown unmounting %s, error: %s\n", path, err)
++			}
++		}
++		delete(devices.activeMounts, path)
++	}
++
++	for _, d := range devices.Devices {
++		if err := devices.DeactivateDevice(d.Hash); err != nil {
++			fmt.Printf("Shutdown deactivate %s , error: %s\n", d.Hash, err)
++		}
++	}
++
++
++	pool := devices.getPoolDevName()
++	devinfo, err := devices.getInfo(pool)
++	if err == nil && devinfo.Exists != 0 {
++		if err := devices.removeDevice(pool); err != nil {
++			fmt.Printf("Shutdown deactivate %s , error: %s\n", pool, err)
++		}
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) MountDevice(hash, path string) error {
++	if err := devices.ensureInit(); err != nil {
++		return err
++	}
++
++	err := devices.activateDeviceIfNeeded(hash)
++	if err != nil {
++		return err
++	}
++
++	info := devices.Devices[hash]
++
++	err = syscall.Mount(info.DevName(), path, "ext4", syscall.MS_MGC_VAL, "discard")
++	if err != nil && err == syscall.EINVAL {
++		err = syscall.Mount(info.DevName(), path, "ext4", syscall.MS_MGC_VAL, "")
++	}
++	if err != nil {
++		return err
++	}
++
++	count := devices.activeMounts[path]
++	devices.activeMounts[path] = count + 1
++
++	return nil
++}
++
++func (devices *DeviceSetDM) UnmountDevice(hash, path string) error {
++	err := syscall.Unmount(path, 0)
++	if err != nil {
++		return err
++	}
++
++	count := devices.activeMounts[path]
++	if count > 1 {
++		devices.activeMounts[path] = count - 1
++	} else {
++		delete(devices.activeMounts, path)
++	}
++
++	return nil
++}
++
++
++func (devices *DeviceSetDM) HasDevice(hash string) bool {
++	if err := devices.ensureInit(); err != nil {
++		return false
++	}
++
++	info := devices.Devices[hash]
++	return info != nil
++}
++
++func (devices *DeviceSetDM) HasInitializedDevice(hash string) bool {
++	if err := devices.ensureInit(); err != nil {
++		return false
++	}
++
++	info := devices.Devices[hash]
++	return info != nil && info.Initialized
++}
++
++func (devices *DeviceSetDM) HasActivatedDevice(hash string) bool {
++	if err := devices.ensureInit(); err != nil {
++		return false
++	}
++
++	info := devices.Devices[hash]
++	if info == nil {
++		return false
++	}
++	name := info.Name()
++	devinfo, _ := devices.getInfo(name)
++	if devinfo != nil && devinfo.Exists != 0 {
++		return true
++	}
++	return false
++}
++
++func (devices *DeviceSetDM) SetInitialized(hash string) error {
++	if err := devices.ensureInit(); err != nil {
++		return err
++	}
++
++	info := devices.Devices[hash]
++	if info == nil {
++		return fmt.Errorf("Unknown device %s", hash)
++	}
++
++	info.Initialized = true
++	err := devices.saveMetadata()
++	if err != nil {
++		info.Initialized = false
++		return err
++	}
++
++	return nil
++}
++
++func (devices *DeviceSetDM) ensureInit() error {
++	if !devices.initialized {
++		devices.initialized = true
++		err := devices.initDevmapper()
++		if err != nil {
++			return err
++		}
++	}
++	return nil
++}
++
++func NewDeviceSetDM(root string) *DeviceSetDM {
++	SetDevDir("/dev")
++
++	base := filepath.Base(root)
++	if !strings.HasPrefix(base, "docker") {
++		base = "docker-" + base
++	}
++
++	devices := &DeviceSetDM{
++		initialized: false,
++		root:        root,
++		devicePrefix: base,
++	}
++	devices.Devices = make(map[string]*DevInfo)
++	devices.activeMounts = make(map[string]int)
++
++	return devices
++}
+diff -uNr docker-0.6.2/devmapper/devmapper.go docker-devmapper/devmapper/devmapper.go
+--- docker-0.6.2/devmapper/devmapper.go	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/devmapper/devmapper.go	2013-09-23 10:37:39.248305370 -0500
+@@ -0,0 +1,366 @@
++package devmapper
++
++/*
++#cgo LDFLAGS: -L. -ldevmapper
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <libdevmapper.h>
++#include <linux/loop.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
++#include <linux/fs.h>
++#include <errno.h>
++
++static char *
++attach_loop_device(const char *filename, int *loop_fd_out)
++{
++  struct loop_info64 loopinfo = { 0 };
++  struct stat st;
++  char buf[64];
++  int i, loop_fd, fd, start_index;
++  char *loopname;
++
++  *loop_fd_out = -1;
++
++  start_index = 0;
++  fd = open("/dev/loop-control", O_RDONLY);
++  if (fd >= 0) {
++    start_index = ioctl(fd, LOOP_CTL_GET_FREE);
++    close(fd);
++
++    if (start_index < 0)
++      start_index = 0;
++  }
++
++  fd = open(filename, O_RDWR);
++  if (fd < 0) {
++    return NULL;
++  }
++
++  loop_fd = -1;
++  for (i = start_index ; loop_fd < 0 ; i++ ) {
++    if (sprintf(buf, "/dev/loop%d", i) < 0) {
++      close(fd);
++      return NULL;
++    }
++
++    if (stat(buf, &st) || !S_ISBLK(st.st_mode)) {
++      close(fd);
++      return NULL;
++    }
++
++    loop_fd = open(buf, O_RDWR);
++    if (loop_fd < 0 && errno == ENOENT) {
++      close(fd);
++      fprintf (stderr, "no available loopback device!");
++      return NULL;
++    } else if (loop_fd < 0)
++      continue;
++
++    if (ioctl (loop_fd, LOOP_SET_FD, (void *)(size_t)fd) < 0) {
++      close(loop_fd);
++      loop_fd = -1;
++      if (errno != EBUSY) {
++        close (fd);
++        fprintf (stderr, "cannot set up loopback device %s", buf);
++        return NULL;
++      }
++      continue;
++    }
++
++    close (fd);
++
++    strncpy((char*)loopinfo.lo_file_name, buf, LO_NAME_SIZE);
++    loopinfo.lo_offset = 0;
++    loopinfo.lo_flags = LO_FLAGS_AUTOCLEAR;
++
++    if (ioctl(loop_fd, LOOP_SET_STATUS64, &loopinfo) < 0) {
++      ioctl(loop_fd, LOOP_CLR_FD, 0);
++      close(loop_fd);
++      fprintf (stderr, "cannot set up loopback device info");
++      return NULL;
++    }
++
++    loopname = strdup(buf);
++    if (loopname == NULL) {
++      close(loop_fd);
++      return NULL;
++    }
++
++    *loop_fd_out = loop_fd;
++    return loopname;
++  }
++  return NULL;
++}
++
++static int64_t
++get_block_size(int fd)
++{
++  uint64_t size;
++  if (ioctl(fd, BLKGETSIZE64, &size) == -1)
++    return -1;
++  return (int64_t)size;
++}
++
++
++*/
++import "C"
++import "unsafe"
++import "fmt"
++import "runtime"
++import "os"
++
++func SetDevDir(dir string) error {
++	c_dir := C.CString(dir)
++	defer C.free(unsafe.Pointer(c_dir))
++	res := C.dm_set_dev_dir(c_dir)
++	if res != 1 {
++		return fmt.Errorf("dm_set_dev_dir failed")
++	}
++	return nil
++}
++
++func GetLibraryVersion() (string, error) {
++	buffer := (*C.char)(C.malloc(128))
++	defer C.free(unsafe.Pointer(buffer))
++	res := C.dm_get_library_version(buffer, 128)
++	if res != 1 {
++		return "", fmt.Errorf("dm_get_library_version failed")
++	} else {
++		return C.GoString(buffer), nil
++	}
++}
++
++type TaskType int
++
++const (
++	DeviceCreate TaskType = iota
++	DeviceReload
++	DeviceRemove
++	DeviceRemoveAll
++	DeviceSuspend
++	DeviceResume
++	DeviceInfo
++	DeviceDeps
++	DeviceRename
++	DeviceVersion
++	DeviceStatus
++	DeviceTable
++	DeviceWaitevent
++	DeviceList
++	DeviceClear
++	DeviceMknodes
++	DeviceListVersions
++	DeviceTargetMsg
++	DeviceSetGeometry
++)
++
++type Task struct {
++	unmanaged *C.struct_dm_task
++}
++
++type Info struct {
++	Exists        int
++	Suspended     int
++	LiveTable     int
++	InactiveTable int
++	OpenCount     int32
++	EventNr       uint32
++	Major         uint32
++	Minor         uint32
++	ReadOnly      int
++	TargetCount   int32
++}
++
++func (t *Task) destroy() {
++	if t != nil {
++		C.dm_task_destroy(t.unmanaged)
++		runtime.SetFinalizer(t, nil)
++	}
++}
++
++func TaskCreate(tasktype TaskType) *Task {
++	c_task := C.dm_task_create(C.int(int(tasktype)))
++	if c_task == nil {
++		return nil
++	}
++	task := &Task{c_task}
++	runtime.SetFinalizer(task, (*Task).destroy)
++	return task
++}
++
++func (t *Task) Run() error {
++	res := C.dm_task_run(t.unmanaged)
++	if res != 1 {
++		return fmt.Errorf("dm_task_run failed")
++	}
++	return nil
++}
++
++func (t *Task) SetName(name string) error {
++	c_name := C.CString(name)
++	defer C.free(unsafe.Pointer(c_name))
++
++	res := C.dm_task_set_name(t.unmanaged, c_name)
++	if res != 1 {
++		return fmt.Errorf("dm_task_set_name failed")
++	}
++	return nil
++}
++
++func (t *Task) SetMessage(message string) error {
++	c_message := C.CString(message)
++	defer C.free(unsafe.Pointer(c_message))
++
++	res := C.dm_task_set_message(t.unmanaged, c_message)
++	if res != 1 {
++		return fmt.Errorf("dm_task_set_message failed")
++	}
++	return nil
++}
++
++func (t *Task) SetSector(sector uint64) error {
++	res := C.dm_task_set_sector(t.unmanaged, C.uint64_t(sector))
++	if res != 1 {
++		return fmt.Errorf("dm_task_set_add_node failed")
++	}
++	return nil
++}
++
++func (t *Task) SetCookie(cookie *uint32, flags uint16) error {
++	var c_cookie C.uint32_t
++	c_cookie = C.uint32_t(*cookie)
++	res := C.dm_task_set_cookie(t.unmanaged, &c_cookie, C.uint16_t(flags))
++	if res != 1 {
++		return fmt.Errorf("dm_task_set_add_node failed")
++	}
++	*cookie = uint32(c_cookie)
++	return nil
++}
++
++func (t *Task) SetRo() error {
++	res := C.dm_task_set_ro(t.unmanaged)
++	if res != 1 {
++		return fmt.Errorf("dm_task_set_ro failed")
++	}
++	return nil
++}
++
++func (t *Task) AddTarget(start uint64, size uint64, ttype string, params string) error {
++	c_ttype := C.CString(ttype)
++	defer C.free(unsafe.Pointer(c_ttype))
++
++	c_params := C.CString(params)
++	defer C.free(unsafe.Pointer(c_params))
++
++	res := C.dm_task_add_target(t.unmanaged, C.uint64_t(start), C.uint64_t(size), c_ttype, c_params)
++	if res != 1 {
++		return fmt.Errorf("dm_task_add_target failed")
++	}
++	return nil
++}
++
++func (t *Task) GetDriverVersion() (string, error) {
++	buffer := (*C.char)(C.malloc(128))
++	defer C.free(unsafe.Pointer(buffer))
++
++	res := C.dm_task_get_driver_version(t.unmanaged, buffer, 128)
++	if res != 1 {
++		return "", fmt.Errorf("dm_task_get_driver_version")
++	} else {
++		return C.GoString(buffer), nil
++	}
++}
++
++func (t *Task) GetInfo() (*Info, error) {
++	c_info := C.struct_dm_info{}
++	res := C.dm_task_get_info(t.unmanaged, &c_info)
++	if res != 1 {
++		return nil, fmt.Errorf("dm_task_get_driver_version")
++	} else {
++		info := &Info{}
++		info.Exists = int(c_info.exists)
++		info.Suspended = int(c_info.suspended)
++		info.LiveTable = int(c_info.live_table)
++		info.InactiveTable = int(c_info.inactive_table)
++		info.OpenCount = int32(c_info.open_count)
++		info.EventNr = uint32(c_info.event_nr)
++		info.Major = uint32(c_info.major)
++		info.Minor = uint32(c_info.minor)
++		info.ReadOnly = int(c_info.read_only)
++		info.TargetCount = int32(c_info.target_count)
++
++		return info, nil
++	}
++}
++
++func (t *Task) GetNextTarget(next uintptr) (uintptr, uint64, uint64, string, string) {
++	nextp := unsafe.Pointer(next)
++	var c_start C.uint64_t
++	var c_length C.uint64_t
++	var c_target_type *C.char
++	var c_params *C.char
++
++	nextp = C.dm_get_next_target(t.unmanaged, nextp, &c_start, &c_length, &c_target_type, &c_params)
++
++	target_type := C.GoString(c_target_type)
++	params := C.GoString(c_params)
++
++	return uintptr(nextp), uint64(c_start), uint64(c_length), target_type, params
++}
++
++func AttachLoopDevice(filename string) (*os.File, error) {
++	c_filename := C.CString(filename)
++	defer C.free(unsafe.Pointer(c_filename))
++
++	var fd C.int
++	res := C.attach_loop_device(c_filename, &fd)
++	if res == nil {
++		return nil, fmt.Errorf("error loopback mounting")
++	}
++	file := os.NewFile(uintptr(fd), C.GoString(res))
++	C.free(unsafe.Pointer(res))
++	return file, nil
++}
++
++func GetBlockDeviceSize(file *os.File) (uint64, error) {
++	fd := file.Fd()
++	size := C.get_block_size(C.int(fd))
++	if size == -1 {
++		return 0, fmt.Errorf("Can't get block size")
++	}
++	return uint64(size), nil
++
++}
++
++func UdevWait(cookie uint32) error {
++	res := C.dm_udev_wait(C.uint32_t(cookie))
++	if res != 1 {
++		return fmt.Errorf("Failed to wait on udev cookie %d", cookie)
++	}
++	return nil
++}
++
++func LogInitVerbose(level int) {
++	C.dm_log_init_verbose(C.int(level))
++}
++
++// Useful helper for cleanup
++func RemoveDevice(name string) error {
++	task := TaskCreate(DeviceRemove)
++	if task == nil {
++		return fmt.Errorf("Can't create task of type DeviceRemove")
++	}
++	err := task.SetName(name)
++	if err != nil {
++		return fmt.Errorf("Can't set task name %s", name)
++	}
++	err = task.Run()
++	if err != nil {
++		return fmt.Errorf("Error running removeDevice")
++	}
++	return nil
++}
+diff -uNr docker-0.6.2/devmapper/docker-device-tool/device_tool.go docker-devmapper/devmapper/docker-device-tool/device_tool.go
+--- docker-0.6.2/devmapper/docker-device-tool/device_tool.go	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/devmapper/docker-device-tool/device_tool.go	2013-09-23 10:37:39.260305337 -0500
+@@ -0,0 +1,62 @@
++package main
++
++import (
++	"fmt"
++	"github.com/dotcloud/docker/devmapper"
++	"os"
++)
++
++func usage() {
++	fmt.Printf("Usage: %s [snap new-id base-id] | [remove id] | [mount id mountpoint]\n", os.Args[0])
++	os.Exit(1)
++}
++
++func main() {
++	devices := devmapper.NewDeviceSetDM("/var/lib/docker")
++
++	if len(os.Args) < 2 {
++		usage()
++	}
++
++	cmd := os.Args[1]
++	if cmd == "snap" {
++		if len(os.Args) < 4 {
++			usage()
++		}
++
++		err := devices.AddDevice(os.Args[2], os.Args[3])
++		if err != nil {
++			fmt.Println("Can't create snap device: ", err)
++			os.Exit(1)
++		}
++	} else if cmd == "remove" {
++		if len(os.Args) < 3 {
++			usage()
++		}
++
++		err := devices.RemoveDevice(os.Args[2])
++		if err != nil {
++			fmt.Println("Can't remove device: ", err)
++			os.Exit(1)
++		}
++	} else if cmd == "mount" {
++		if len(os.Args) < 4 {
++			usage()
++		}
++
++		err := devices.MountDevice(os.Args[2], os.Args[3])
++		if err != nil {
++			fmt.Println("Can't create snap device: ", err)
++			os.Exit(1)
++		}
++	} else {
++		fmt.Printf("Unknown command %s\n", cmd)
++		if len(os.Args) < 4 {
++			usage()
++		}
++
++		os.Exit(1)
++	}
++
++	return
++}
+diff -uNr docker-0.6.2/docker/docker.go docker-devmapper/docker/docker.go
+--- docker-0.6.2/docker/docker.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docker/docker.go	2013-09-23 10:37:38.659307008 -0500
+@@ -4,6 +4,7 @@
+ 	"flag"
+ 	"fmt"
+ 	"github.com/dotcloud/docker"
++	"github.com/dotcloud/docker/devmapper"
+ 	"github.com/dotcloud/docker/utils"
+ 	"io/ioutil"
+ 	"log"
+@@ -133,7 +134,7 @@
+ 	if flDns != "" {
+ 		dns = []string{flDns}
+ 	}
+-	server, err := docker.NewServer(flGraphPath, autoRestart, enableCors, dns)
++	server, err := docker.NewServer(flGraphPath, devmapper.NewDeviceSetDM(flGraphPath), autoRestart, enableCors, dns)
+ 	if err != nil {
+ 		return err
+ 	}
+diff -uNr docker-0.6.2/Dockerfile docker-devmapper/Dockerfile
+--- docker-0.6.2/Dockerfile	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/Dockerfile	2013-09-23 10:37:38.647307041 -0500
+@@ -1,29 +1,5 @@
+ # This file describes the standard way to build Docker, using docker
+-#
+-# Usage:
+-#
+-# # Assemble the full dev environment. This is slow the first time.
+-# docker build -t docker .
+-# # Apparmor messes with privileged mode: disable it
+-# /etc/init.d/apparmor stop ; /etc/init.d/apparmor teardown
+-#
+-# # Mount your source in an interactive container for quick testing:
+-# docker run -v `pwd`:/go/src/github.com/dotcloud/docker -privileged -lxc-conf=lxc.aa_profile=unconfined -i -t docker bash
+-#
+-#
+-# # Run the test suite:
+-# docker run -privileged -lxc-conf=lxc.aa_profile=unconfined docker go test -v
+-#
+-# # Publish a release:
+-# docker run -privileged -lxc-conf=lxc.aa_profile=unconfined \
+-# -e AWS_S3_BUCKET=baz \
+-# -e AWS_ACCESS_KEY=foo \
+-# -e AWS_SECRET_KEY=bar \
+-# -e GPG_PASSPHRASE=gloubiboulga \
+-# -lxc-conf=lxc.aa_profile=unconfined -privileged docker hack/release.sh
+-# 
+-
+-docker-version 0.6.1
++docker-version 0.4.2
+ from	ubuntu:12.04
+ maintainer	Solomon Hykes <solomon at dotcloud.com>
+ # Build dependencies
+@@ -35,7 +11,7 @@
+ # Install Go
+ run	curl -s https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz | tar -v -C /usr/local -xz
+ env	PATH	/usr/local/go/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
+-env	GOPATH	/go:/go/src/github.com/dotcloud/docker/vendor
++env	GOPATH	/go
+ env	CGO_ENABLED 0
+ run	cd /tmp && echo 'package main' > t.go && go test -a -i -v
+ # Ubuntu stuff
+@@ -47,12 +23,15 @@
+ run	pip install s3cmd
+ run	pip install python-magic
+ run	/bin/echo -e '[default]\naccess_key=$AWS_ACCESS_KEY\nsecret_key=$AWS_SECRET_KEY\n' > /.s3cfg
+-# Runtime dependencies
+-run	apt-get install -y -q iptables
+-run	apt-get install -y -q lxc
+-volume	/var/lib/docker
+-workdir	/go/src/github.com/dotcloud/docker
+-# Wrap all commands in the "docker-in-docker" script to allow nested containers
+-entrypoint ["hack/dind"]
++# Download dependencies
++run	PKG=github.com/kr/pty REV=27435c699;		 git clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && git checkout -f $REV
++run	PKG=github.com/gorilla/context/ REV=708054d61e5; git clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && git checkout -f $REV
++run	PKG=github.com/gorilla/mux/ REV=9b36453141c;	 git clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && git checkout -f $REV
++run	PKG=github.com/dotcloud/tar/ REV=e5ea6bb21a3294;	 git clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && git checkout -f $REV
++run	PKG=code.google.com/p/go.net/ REV=84a4013f96e0;  hg  clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && hg  checkout    $REV
+ # Upload docker source
+ add	.       /go/src/github.com/dotcloud/docker
++run	ln -s	/go/src/github.com/dotcloud/docker /src
++# Build the binary
++run	cd /go/src/github.com/dotcloud/docker && hack/release/make.sh
++cmd	cd /go/src/github.com/dotcloud/docker && hack/release/release.sh
+diff -uNr docker-0.6.2/docker-init/docker-init.go docker-devmapper/docker-init/docker-init.go
+--- docker-0.6.2/docker-init/docker-init.go	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/docker-init/docker-init.go	2013-09-23 10:37:39.486304708 -0500
+@@ -0,0 +1,16 @@
++package main
++
++import (
++	"github.com/dotcloud/docker"
++)
++
++var (
++	GITCOMMIT string
++	VERSION   string
++)
++
++func main() {
++	// Running in init mode
++	docker.SysInit()
++	return
++}
+diff -uNr docker-0.6.2/docs/sources/api/docker_remote_api_v1.4.rst docker-devmapper/docs/sources/api/docker_remote_api_v1.4.rst
+--- docker-0.6.2/docs/sources/api/docker_remote_api_v1.4.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/api/docker_remote_api_v1.4.rst	2013-09-23 10:37:38.945306212 -0500
+@@ -359,7 +359,7 @@
+ 
+            {
+                 "Binds":["/tmp:/tmp"],
+-                "LxcConf":[{"Key":"lxc.utsname","Value":"docker"}]
++                "LxcConf":{"lxc.utsname":"docker"}
+            }
+ 
+         **Example response**:
+diff -uNr docker-0.6.2/docs/sources/api/docker_remote_api_v1.5.rst docker-devmapper/docs/sources/api/docker_remote_api_v1.5.rst
+--- docker-0.6.2/docs/sources/api/docker_remote_api_v1.5.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/api/docker_remote_api_v1.5.rst	2013-09-23 10:37:38.924306271 -0500
+@@ -358,7 +358,7 @@
+ 
+            {
+                 "Binds":["/tmp:/tmp"],
+-                "LxcConf":[{"Key":"lxc.utsname","Value":"docker"}]
++                "LxcConf":{"lxc.utsname":"docker"}
+            }
+ 
+         **Example response**:
+@@ -976,7 +976,6 @@
+ 	:query t: repository name (and optionally a tag) to be applied to the resulting image in case of success
+ 	:query q: suppress verbose build output
+     :query nocache: do not use the cache when building the image
+-    :query rm: remove intermediate containers after a successful build
+ 	:statuscode 200: no error
+     :statuscode 500: server error
+ 
+diff -uNr docker-0.6.2/docs/sources/commandline/command/build.rst docker-devmapper/docs/sources/commandline/command/build.rst
+--- docker-0.6.2/docs/sources/commandline/command/build.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/commandline/command/build.rst	2013-09-23 10:37:38.988306093 -0500
+@@ -13,7 +13,6 @@
+       -t="": Repository name (and optionally a tag) to be applied to the resulting image in case of success.
+       -q=false: Suppress verbose build output.
+       -no-cache: Do not use the cache when building the image.
+-      -rm: Remove intermediate containers after a successful build
+     When a single Dockerfile is given as URL, then no context is set. When a git repository is set as URL, the repository is used as context
+ 
+ 
+diff -uNr docker-0.6.2/docs/sources/commandline/command/commit.rst docker-devmapper/docs/sources/commandline/command/commit.rst
+--- docker-0.6.2/docs/sources/commandline/command/commit.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/commandline/command/commit.rst	2013-09-23 10:37:38.984306104 -0500
+@@ -19,31 +19,15 @@
+ 
+ Full -run example::
+ 
+-{
+-      "Entrypoint" : null,
+-      "Privileged" : false,
+-      "User" : "",
+-      "VolumesFrom" : "",
+-      "Cmd" : ["cat", "-e", "/etc/resolv.conf"],
+-      "Dns" : ["8.8.8.8", "8.8.4.4"],
+-      "MemorySwap" : 0,
+-      "AttachStdin" : false,
+-      "AttachStderr" : false,
+-      "CpuShares" : 0,
+-      "OpenStdin" : false,
+-      "Volumes" : null,
+-      "Hostname" : "122612f45831",
+-      "PortSpecs" : ["22", "80", "443"],
+-      "Image" : "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
+-      "Tty" : false,
+-      "Env" : [
+-         "HOME=/",
+-         "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+-      ],
+-      "StdinOnce" : false,
+-      "Domainname" : "",
+-      "WorkingDir" : "/",
+-      "NetworkDisabled" : false,
+-      "Memory" : 0,
+-      "AttachStdout" : false
+-}
++    {"Hostname": "",
++     "User": "",
++     "CpuShares": 0,
++     "Memory": 0,
++     "MemorySwap": 0,
++     "PortSpecs": ["22", "80", "443"],
++     "Tty": true,
++     "OpenStdin": true,
++     "StdinOnce": true,
++     "Env": ["FOO=BAR", "FOO2=BAR2"],
++     "Cmd": ["cat", "-e", "/etc/resolv.conf"],
++     "Dns": ["8.8.8.8", "8.8.4.4"]}
+diff -uNr docker-0.6.2/docs/sources/examples/hello_world_daemon.rst docker-devmapper/docs/sources/examples/hello_world_daemon.rst
+--- docker-0.6.2/docs/sources/examples/hello_world_daemon.rst	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/docs/sources/examples/hello_world_daemon.rst	2013-09-23 10:37:38.841306502 -0500
+@@ -0,0 +1,95 @@
++:title: Hello world daemon example
++:description: A simple hello world daemon example with Docker
++:keywords: docker, example, hello world, daemon
++
++.. _hello_world_daemon:
++
++Hello World Daemon
++==================
++
++.. include:: example_header.inc
++
++The most boring daemon ever written.
++
++This example assumes you have Docker installed and the Ubuntu
++image already imported with ``docker pull ubuntu``.  We will use the Ubuntu
++image to run a simple hello world daemon that will just print hello
++world to standard out every second. It will continue to do this until
++we stop it.
++
++**Steps:**
++
++.. code-block:: bash
++
++    CONTAINER_ID=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done")
++
++We are going to run a simple hello world daemon in a new container
++made from the *ubuntu* image.
++
++- **"docker run -d "** run a command in a new container. We pass "-d"
++  so it runs as a daemon.
++- **"ubuntu"** is the image we want to run the command inside of.
++- **"/bin/sh -c"** is the command we want to run in the container
++- **"while true; do echo hello world; sleep 1; done"** is the mini
++  script we want to run, that will just print hello world once a
++  second until we stop it.
++- **$CONTAINER_ID** the output of the run command will return a
++  container id, we can use in future commands to see what is going on
++  with this process.
++
++.. code-block:: bash
++
++    sudo docker logs $CONTAINER_ID
++
++Check the logs make sure it is working correctly.
++
++- **"docker logs**" This will return the logs for a container
++- **$CONTAINER_ID** The Id of the container we want the logs for.
++
++.. code-block:: bash
++
++    sudo docker attach $CONTAINER_ID
++
++Attach to the container to see the results in realtime.
++
++- **"docker attach**" This will allow us to attach to a background
++  process to see what is going on.
++- **$CONTAINER_ID** The Id of the container we want to attach too.
++
++Exit from the container attachment by pressing Control-C.
++
++.. code-block:: bash
++
++    sudo docker ps
++
++Check the process list to make sure it is running.
++
++- **"docker ps"** this shows all running process managed by docker
++
++.. code-block:: bash
++
++    sudo docker stop $CONTAINER_ID
++
++Stop the container, since we don't need it anymore.
++
++- **"docker stop"** This stops a container
++- **$CONTAINER_ID** The Id of the container we want to stop.
++
++.. code-block:: bash
++
++    sudo docker ps
++
++Make sure it is really stopped.
++
++
++**Video:**
++
++See the example in action
++
++.. raw:: html
++
++    <div style="margin-top:10px;">
++      <iframe width="560" height="350" src="http://ascii.io/a/2562/raw" frameborder="0"></iframe>
++    </div>
++
++Continue to the :ref:`python_web_app` example.
+diff -uNr docker-0.6.2/docs/sources/examples/hello_world.rst docker-devmapper/docs/sources/examples/hello_world.rst
+--- docker-0.6.2/docs/sources/examples/hello_world.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/examples/hello_world.rst	2013-09-23 10:37:38.854306466 -0500
+@@ -2,28 +2,6 @@
+ :description: A simple hello world example with Docker
+ :keywords: docker, example, hello world
+ 
+-.. _running_examples:
+-
+-Running the Examples
+-====================
+-
+-All the examples assume your machine is running the docker daemon. To
+-run the docker daemon in the background, simply type:
+-
+-.. code-block:: bash
+-
+-   sudo docker -d &
+-
+-Now you can run docker in client mode: by default all commands will be
+-forwarded to the ``docker`` daemon via a protected Unix socket, so you
+-must run as root.
+-
+-.. code-block:: bash
+-
+-   sudo docker help
+-
+-----
+-
+ .. _hello_world:
+ 
+ Hello World
+@@ -71,108 +49,4 @@
+     </div>
+ 
+ 
+-----
+-
+-.. _hello_world_daemon:
+-
+-Hello World Daemon
+-==================
+-
+-.. include:: example_header.inc
+-
+-And now for the most boring daemon ever written!
+-
+-This example assumes you have Docker installed and the Ubuntu
+-image already imported with ``docker pull ubuntu``.  We will use the Ubuntu
+-image to run a simple hello world daemon that will just print hello
+-world to standard out every second. It will continue to do this until
+-we stop it.
+-
+-**Steps:**
+-
+-.. code-block:: bash
+-
+-    CONTAINER_ID=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done")
+-
+-We are going to run a simple hello world daemon in a new container
+-made from the *ubuntu* image.
+-
+-- **"docker run -d "** run a command in a new container. We pass "-d"
+-  so it runs as a daemon.
+-- **"ubuntu"** is the image we want to run the command inside of.
+-- **"/bin/sh -c"** is the command we want to run in the container
+-- **"while true; do echo hello world; sleep 1; done"** is the mini
+-  script we want to run, that will just print hello world once a
+-  second until we stop it.
+-- **$CONTAINER_ID** the output of the run command will return a
+-  container id, we can use in future commands to see what is going on
+-  with this process.
+-
+-.. code-block:: bash
+-
+-    sudo docker logs $CONTAINER_ID
+-
+-Check the logs make sure it is working correctly.
+-
+-- **"docker logs**" This will return the logs for a container
+-- **$CONTAINER_ID** The Id of the container we want the logs for.
+-
+-.. code-block:: bash
+-
+-    sudo docker attach $CONTAINER_ID
+-
+-Attach to the container to see the results in realtime.
+-
+-- **"docker attach**" This will allow us to attach to a background
+-  process to see what is going on.
+-- **$CONTAINER_ID** The Id of the container we want to attach too.
+-
+-Exit from the container attachment by pressing Control-C.
+-
+-.. code-block:: bash
+-
+-    sudo docker ps
+-
+-Check the process list to make sure it is running.
+-
+-- **"docker ps"** this shows all running process managed by docker
+-
+-.. code-block:: bash
+-
+-    sudo docker stop $CONTAINER_ID
+-
+-Stop the container, since we don't need it anymore.
+-
+-- **"docker stop"** This stops a container
+-- **$CONTAINER_ID** The Id of the container we want to stop.
+-
+-.. code-block:: bash
+-
+-    sudo docker ps
+-
+-Make sure it is really stopped.
+-
+-
+-**Video:**
+-
+-See the example in action
+-
+-.. raw:: html
+-
+-    <div style="margin-top:10px;">
+-      <iframe width="560" height="350" src="http://ascii.io/a/2562/raw" frameborder="0"></iframe>
+-    </div>
+-
+-The next example in the series is a :ref:`python_web_app` example, or
+-you could skip to any of the other examples:
+-
+-.. toctree::
+-   :maxdepth: 1
+-
+-   python_web_app
+-   nodejs_web_app
+-   running_redis_service
+-   running_ssh_service
+-   couchdb_data_volumes
+-   postgresql_service
+-   mongodb
++Continue to the :ref:`hello_world_daemon` example.
+diff -uNr docker-0.6.2/docs/sources/examples/index.rst docker-devmapper/docs/sources/examples/index.rst
+--- docker-0.6.2/docs/sources/examples/index.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/examples/index.rst	2013-09-23 10:37:38.849306480 -0500
+@@ -5,16 +5,16 @@
+ 
+ 
+ Examples
+-========
++============
+ 
+-Here are some examples of how to use Docker to create running
+-processes, starting from a very simple *Hello World* and progressing
+-to more substantial services like you might find in production.
++Contents:
+ 
+ .. toctree::
+    :maxdepth: 1
+ 
++   running_examples
+    hello_world
++   hello_world_daemon
+    python_web_app
+    nodejs_web_app
+    running_redis_service
+diff -uNr docker-0.6.2/docs/sources/examples/running_examples.rst docker-devmapper/docs/sources/examples/running_examples.rst
+--- docker-0.6.2/docs/sources/examples/running_examples.rst	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/docs/sources/examples/running_examples.rst	2013-09-23 10:37:38.857306457 -0500
+@@ -0,0 +1,23 @@
++:title: Running the Examples
++:description: An overview on how to run the docker examples
++:keywords: docker, examples, how to
++
++.. _running_examples:
++
++Running the Examples
++--------------------
++
++All the examples assume your machine is running the docker daemon. To
++run the docker daemon in the background, simply type:
++
++   .. code-block:: bash
++
++      sudo docker -d &
++
++Now you can run docker in client mode: by defalt all commands will be
++forwarded to the ``docker`` daemon via a protected Unix socket, so you
++must run as root.
++
++   .. code-block:: bash
++
++      sudo docker help
+diff -uNr docker-0.6.2/docs/sources/faq.rst docker-devmapper/docs/sources/faq.rst
+--- docker-0.6.2/docs/sources/faq.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/faq.rst	2013-09-23 10:37:38.998306065 -0500
+@@ -122,13 +122,6 @@
+       (Jenkins, Strider, Travis), etc. Docker is rapidly establishing
+       itself as the standard for container-based tooling.
+ 
+-Do I lose my data when the container exits?
+-...........................................
+-
+-Not at all! Any data that your application writes to disk gets preserved
+-in its container until you explicitly delete the container. The file
+-system for the container persists even after the container halts.
+-
+ Can I help by adding some questions and answers?
+ ................................................
+ 
+diff -uNr docker-0.6.2/docs/sources/installation/amazon.rst docker-devmapper/docs/sources/installation/amazon.rst
+--- docker-0.6.2/docs/sources/installation/amazon.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/installation/amazon.rst	2013-09-23 10:37:39.065305879 -0500
+@@ -1,77 +1,24 @@
+ :title: Installation on Amazon EC2
+-:description: Docker installation on Amazon EC2 
++:description: Docker installation on Amazon EC2 with a single vagrant command. Vagrant 1.1 or higher is required.
+ :keywords: amazon ec2, virtualization, cloud, docker, documentation, installation
+ 
+-Amazon EC2
+-==========
++Using Vagrant (Amazon EC2)
++==========================
+ 
+-.. include:: install_header.inc
+-
+-There are several ways to install Docker on AWS EC2:
+-
+-* :ref:`amazonquickstart` or
+-* :ref:`amazonstandard` or
+-* :ref:`amazonvagrant`
+-
+-**You'll need an** `AWS account <http://aws.amazon.com/>`_ **first, of course.**
+-
+-.. _amazonquickstart:
+-
+-Amazon QuickStart
+------------------
+-
+-1. **Choose an image:**
+-
+-   * Open http://cloud-images.ubuntu.com/locator/ec2/
+-   * Enter ``amd64 precise`` in the search field (it will search as you
+-     type)
+-   * Pick an image by clicking on the image name. *An EBS-enabled
+-     image will let you use a t1.micro instance.* Clicking on the image 
+-     name will take you to your AWS Console.
+-
+-2. **Tell CloudInit to install Docker:**
+-
+-   * Enter ``#include https://get.docker.io`` into the instance *User
+-     Data*. `CloudInit <https://help.ubuntu.com/community/CloudInit>`_
+-     is part of the Ubuntu image you chose and it bootstraps from this
+-     *User Data*.
++This page explains how to setup and run an Amazon EC2 instance from
++your local machine.  **Vagrant is not necessary to run Docker on
++EC2.** You can follow the :ref:`ubuntu_linux` instructions installing
++Docker on any EC2 instance running Ubuntu.
+ 
+-3. After a few more standard choices where defaults are probably ok, your
+-   AWS Ubuntu instance with Docker should be running!
++Installation
++------------
+ 
+-**If this is your first AWS instance, you may need to set up your
+-Security Group to allow SSH.** By default all incoming ports to your
+-new instance will be blocked by the AWS Security Group, so you might
+-just get timeouts when you try to connect.
+-
+-Installing with ``get.docker.io`` (as above) will create a service
+-named ``dockerd``. You may want to set up a :ref:`docker group
+-<dockergroup>` and add the *ubuntu* user to it so that you don't have
+-to use ``sudo`` for every Docker command.
+-
+-Once you've got Docker installed, you're ready to try it out -- head
+-on over to the :doc:`../use/basics` or :doc:`../examples/index` section.
+-
+-.. _amazonstandard:
+-
+-Standard Ubuntu Installation
+-----------------------------
+-
+-If you want a more hands-on installation, then you can follow the
+-:ref:`ubuntu_linux` instructions installing Docker on any EC2 instance
+-running Ubuntu. Just follow Step 1 from :ref:`amazonquickstart` to
+-pick an image (or use one of your own) and skip the step with the
+-*User Data*. Then continue with the :ref:`ubuntu_linux` instructions.
+-
+-.. _amazonvagrant:
+-
+-Use Vagrant
+------------
++.. include:: install_header.inc
+ 
+ .. include:: install_unofficial.inc
+   
+-And finally, if you prefer to work through Vagrant, you can install
+-Docker that way too. Vagrant 1.1 or higher is required.
++Docker can now be installed on Amazon EC2 with a single vagrant
++command. Vagrant 1.1 or higher is required.
+ 
+ 1. Install vagrant from http://www.vagrantup.com/ (or use your package manager)
+ 2. Install the vagrant aws plugin
+@@ -90,17 +37,16 @@
+ 
+ 4. Check your AWS environment.
+ 
+-   Create a keypair specifically for EC2, give it a name and save it
+-   to your disk. *I usually store these in my ~/.ssh/ folder*.
++   Create a keypair specifically for EC2, give it a name and save it to your disk. *I usually store these in my ~/.ssh/ folder*.
++
++   Check that your default security group has an inbound rule to accept SSH (port 22) connections.
++
+ 
+-   Check that your default security group has an inbound rule to
+-   accept SSH (port 22) connections.
+ 
+ 5. Inform Vagrant of your settings
+ 
+-   Vagrant will read your access credentials from your environment, so
+-   we need to set them there first. Make sure you have everything on
+-   amazon aws setup so you can (manually) deploy a new image to EC2.
++   Vagrant will read your access credentials from your environment, so we need to set them there first. Make sure
++   you have everything on amazon aws setup so you can (manually) deploy a new image to EC2.
+ 
+    ::
+ 
+@@ -114,8 +60,7 @@
+    * ``AWS_ACCESS_KEY_ID`` - The API key used to make requests to AWS
+    * ``AWS_SECRET_ACCESS_KEY`` - The secret key to make AWS API requests
+    * ``AWS_KEYPAIR_NAME`` - The name of the keypair used for this EC2 instance
+-   * ``AWS_SSH_PRIVKEY`` - The path to the private key for the named
+-     keypair, for example ``~/.ssh/docker.pem``
++   * ``AWS_SSH_PRIVKEY`` - The path to the private key for the named keypair, for example ``~/.ssh/docker.pem``
+ 
+    You can check if they are set correctly by doing something like
+ 
+@@ -130,12 +75,10 @@
+       vagrant up --provider=aws
+ 
+ 
+-   If it stalls indefinitely on ``[default] Waiting for SSH to become
+-   available...``, Double check your default security zone on AWS
+-   includes rights to SSH (port 22) to your container.
++   If it stalls indefinitely on ``[default] Waiting for SSH to become available...``, Double check your default security
++   zone on AWS includes rights to SSH (port 22) to your container.
+ 
+-   If you have an advanced AWS setup, you might want to have a look at
+-   https://github.com/mitchellh/vagrant-aws
++   If you have an advanced AWS setup, you might want to have a look at https://github.com/mitchellh/vagrant-aws
+ 
+ 7. Connect to your machine
+ 
+diff -uNr docker-0.6.2/docs/sources/installation/kernel.rst docker-devmapper/docs/sources/installation/kernel.rst
+--- docker-0.6.2/docs/sources/installation/kernel.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/installation/kernel.rst	2013-09-23 10:37:39.011306029 -0500
+@@ -62,7 +62,7 @@
+ Cgroups and namespaces
+ ----------------------
+ 
+-You need to enable namespaces and cgroups, to the extent of what is needed
++You need to enable namespaces and cgroups, to the extend of what is needed
+ to run LXC containers. Technically, while namespaces have been introduced
+ in the early 2.6 kernels, we do not advise to try any kernel before 2.6.32
+ to run LXC containers. Note that 2.6.32 has some documented issues regarding
+diff -uNr docker-0.6.2/docs/sources/installation/ubuntulinux.rst docker-devmapper/docs/sources/installation/ubuntulinux.rst
+--- docker-0.6.2/docs/sources/installation/ubuntulinux.rst	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/installation/ubuntulinux.rst	2013-09-23 10:37:39.068305871 -0500
+@@ -78,7 +78,7 @@
+    sudo sh -c "curl https://get.docker.io/gpg | apt-key add -"
+ 
+    # Add the Docker repository to your apt sources list.
+-   sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
++   sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
+ 
+    # Update your sources
+    sudo apt-get update
+@@ -132,7 +132,7 @@
+    sudo sh -c "curl http://get.docker.io/gpg | apt-key add -"
+ 
+    # Add the Docker repository to your apt sources list.
+-   sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
++   sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
+ 
+    # update
+    sudo apt-get update
+Binary files docker-0.6.2/docs/sources/terms/images/docker-filesystems-busyboxrw.png and docker-devmapper/docs/sources/terms/images/docker-filesystems-busyboxrw.png differ
+Binary files docker-0.6.2/docs/sources/terms/images/docker-filesystems-debian.png and docker-devmapper/docs/sources/terms/images/docker-filesystems-debian.png differ
+Binary files docker-0.6.2/docs/sources/terms/images/docker-filesystems-debianrw.png and docker-devmapper/docs/sources/terms/images/docker-filesystems-debianrw.png differ
+Binary files docker-0.6.2/docs/sources/terms/images/docker-filesystems-generic.png and docker-devmapper/docs/sources/terms/images/docker-filesystems-generic.png differ
+Binary files docker-0.6.2/docs/sources/terms/images/docker-filesystems-multilayer.png and docker-devmapper/docs/sources/terms/images/docker-filesystems-multilayer.png differ
+Binary files docker-0.6.2/docs/sources/terms/images/docker-filesystems-multiroot.png and docker-devmapper/docs/sources/terms/images/docker-filesystems-multiroot.png differ
+diff -uNr docker-0.6.2/docs/sources/terms/images/docker-filesystems.svg docker-devmapper/docs/sources/terms/images/docker-filesystems.svg
+--- docker-0.6.2/docs/sources/terms/images/docker-filesystems.svg	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/sources/terms/images/docker-filesystems.svg	2013-09-23 10:37:38.907306318 -0500
+@@ -26,16 +26,16 @@
+      inkscape:pageopacity="0.0"
+      inkscape:pageshadow="2"
+      inkscape:zoom="0.82666667"
+-     inkscape:cx="236.08871"
+-     inkscape:cy="300"
++     inkscape:cx="382.45968"
++     inkscape:cy="348.3871"
+      inkscape:document-units="px"
+-     inkscape:current-layer="layer2"
++     inkscape:current-layer="layer4"
+      showgrid="false"
+      width="800px"
+      inkscape:window-width="1327"
+      inkscape:window-height="714"
+-     inkscape:window-x="686"
+-     inkscape:window-y="219"
++     inkscape:window-x="616"
++     inkscape:window-y="1483"
+      inkscape:window-maximized="0"
+      showguides="false"
+      inkscape:guide-bbox="true"
+@@ -48,98 +48,98 @@
+      inkscape:snap-bbox="false"
+      inkscape:snap-grids="false">
+     <sodipodi:guide
+-       id="guide3907"
++       orientation="0,1"
+        position="412.84404,257.33945"
+-       orientation="0,1" />
++       id="guide3907" />
+     <sodipodi:guide
+-       id="guide4041"
++       orientation="1,0"
+        position="-404.80241,513.78768"
+-       orientation="1,0" />
++       id="guide4041" />
+     <sodipodi:guide
+-       id="guide4043"
++       orientation="1,0"
+        position="1202.7302,257.33945"
+-       orientation="1,0" />
++       id="guide4043" />
+     <sodipodi:guide
+-       id="guide4091"
++       orientation="1,0"
+        position="131.92561,176.67443"
+-       orientation="1,0" />
++       id="guide4091" />
+     <sodipodi:guide
+-       id="guide4093"
++       orientation="1,0"
+        position="667.58474,178.3563"
+-       orientation="1,0" />
++       id="guide4093" />
+     <sodipodi:guide
+-       id="guide4109"
++       orientation="1,0"
+        position="386.00972,138.85222"
+-       orientation="1,0" />
++       id="guide4109" />
+     <sodipodi:guide
+-       id="guide4125"
++       orientation="0,1"
+        position="85.321101,260.09174"
+-       orientation="0,1" />
++       id="guide4125" />
+     <sodipodi:guide
+-       id="guide4206"
++       orientation="1,0"
+        position="251.6129,347.17742"
+-       orientation="1,0" />
++       id="guide4206" />
+     <sodipodi:guide
+-       id="guide4281"
++       orientation="0,1"
+        position="-404.80241,590.32258"
+-       orientation="0,1" />
++       id="guide4281" />
+     <sodipodi:guide
+-       orientation="1,0"
++       id="guide5235"
+        position="400.40322,131.85484"
+-       id="guide5235" />
++       orientation="1,0" />
+     <sodipodi:guide
+-       orientation="1,0"
++       id="guide5237"
+        position="143.95161,295.16129"
+-       id="guide5237" />
++       orientation="1,0" />
+     <sodipodi:guide
+-       orientation="1,0"
++       id="guide5239"
+        position="281.85484,384.67742"
+-       id="guide5239" />
++       orientation="1,0" />
+   </sodipodi:namedview>
+   <defs
+      id="defs4">
+     <inkscape:perspective
+-       sodipodi:type="inkscape:persp3d"
+-       inkscape:vp_x="-406.34117 : 522.93291 : 1"
+-       inkscape:vp_y="0 : 1000 : 0"
+-       inkscape:vp_z="1196.7644 : 521.45993 : 1"
++       id="perspective11489"
+        inkscape:persp3d-origin="403.62904 : 221.23862 : 1"
+-       id="perspective11489" />
+-    <inkscape:perspective
+-       id="perspective5786"
+-       inkscape:persp3d-origin="400 : 200 : 1"
+-       inkscape:vp_z="1200.3935 : 584.89873 : 1"
++       inkscape:vp_z="1196.7644 : 521.45993 : 1"
+        inkscape:vp_y="0 : 1000 : 0"
+-       inkscape:vp_x="-407.55086 : 591.21042 : 1"
++       inkscape:vp_x="-406.34117 : 522.93291 : 1"
+        sodipodi:type="inkscape:persp3d" />
+     <inkscape:perspective
+        sodipodi:type="inkscape:persp3d"
+-       inkscape:vp_x="-403.92182 : 591.88452 : 1"
+-       inkscape:vp_y="0 : 1000 : 0"
+-       inkscape:vp_z="1199.1838 : 590.41154 : 1"
+-       inkscape:persp3d-origin="406.04839 : 290.19023 : 1"
+-       id="perspective4014" />
+-    <inkscape:perspective
+-       sodipodi:type="inkscape:persp3d"
+        inkscape:vp_x="-407.55086 : 591.21042 : 1"
+        inkscape:vp_y="0 : 1000 : 0"
+        inkscape:vp_z="1200.3935 : 584.89873 : 1"
+        inkscape:persp3d-origin="400 : 200 : 1"
+-       id="perspective4012" />
++       id="perspective5786" />
++    <inkscape:perspective
++       id="perspective4014"
++       inkscape:persp3d-origin="406.04839 : 290.19023 : 1"
++       inkscape:vp_z="1199.1838 : 590.41154 : 1"
++       inkscape:vp_y="0 : 1000 : 0"
++       inkscape:vp_x="-403.92182 : 591.88452 : 1"
++       sodipodi:type="inkscape:persp3d" />
+     <inkscape:perspective
+-       id="perspective3054"
++       id="perspective4012"
+        inkscape:persp3d-origin="400 : 200 : 1"
+        inkscape:vp_z="1200.3935 : 584.89873 : 1"
+        inkscape:vp_y="0 : 1000 : 0"
+        inkscape:vp_x="-407.55086 : 591.21042 : 1"
+        sodipodi:type="inkscape:persp3d" />
+     <inkscape:perspective
+-       id="perspective3054-6"
+-       inkscape:persp3d-origin="400.19492 : 199.86531 : 1"
+-       inkscape:vp_z="1200.5884 : 584.76404 : 1"
++       sodipodi:type="inkscape:persp3d"
++       inkscape:vp_x="-407.55086 : 591.21042 : 1"
+        inkscape:vp_y="0 : 1000 : 0"
++       inkscape:vp_z="1200.3935 : 584.89873 : 1"
++       inkscape:persp3d-origin="400 : 200 : 1"
++       id="perspective3054" />
++    <inkscape:perspective
++       sodipodi:type="inkscape:persp3d"
+        inkscape:vp_x="-407.35594 : 591.07573 : 1"
+-       sodipodi:type="inkscape:persp3d" />
++       inkscape:vp_y="0 : 1000 : 0"
++       inkscape:vp_z="1200.5884 : 584.76404 : 1"
++       inkscape:persp3d-origin="400.19492 : 199.86531 : 1"
++       id="perspective3054-6" />
+   </defs>
+   <metadata
+      id="metadata7">
+@@ -149,1393 +149,1392 @@
+         <dc:format>image/svg+xml</dc:format>
+         <dc:type
+            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+-        <dc:title />
++        <dc:title></dc:title>
+       </cc:Work>
+     </rdf:RDF>
+   </metadata>
+   <g
+-     style="display:inline"
+-     inkscape:label="Background"
+-     id="layer8"
++     sodipodi:insensitive="true"
+      inkscape:groupmode="layer"
+-     sodipodi:insensitive="true">
++     id="layer8"
++     inkscape:label="Background"
++     style="display:inline">
+     <rect
+-       y="0"
+-       x="0"
+-       height="600"
+-       width="800"
++       style="fill:#f0f0f0;fill-opacity:0.51111115;stroke:none"
+        id="rect8704"
+-       style="fill:#f0f0f0;fill-opacity:0.51111115;stroke:none" />
++       width="800"
++       height="600"
++       x="0"
++       y="0" />
+   </g>
+   <g
+-     style="display:inline"
+-     inkscape:label="bootfs"
++     inkscape:groupmode="layer"
+      id="layer2"
+-     inkscape:groupmode="layer">
++     inkscape:label="bootfs"
++     style="display:inline">
+     <g
+-       transform="translate(0,-452.36218)"
+-       inkscape:corner7="0.017576171 : -0.16150813 : 0.53533062 : 1"
+-       inkscape:corner0="0.49469727 : -0.063230334 : 0 : 1"
+-       inkscape:perspectiveID="#perspective3054"
+-       id="g3999"
+-       style="fill:#aad3d3;fill-opacity:1;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+-       sodipodi:type="inkscape:box3d"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       sodipodi:type="inkscape:box3d"
++       style="fill:#aad3d3;fill-opacity:1;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++       id="g3999"
++       inkscape:perspectiveID="#perspective3054"
++       inkscape:corner0="0.49469727 : -0.063230334 : 0 : 1"
++       inkscape:corner7="0.017576171 : -0.16150813 : 0.53533062 : 1"
++       transform="translate(0,-452.36218)">
+       <path
+-         d="M 132.72634,830.93804 386.05151,1004.3234 666.77808,819.25271 414.27662,735.0876 z"
+-         inkscape:box3dsidetype="13"
+-         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4009"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="13"
++         d="M 132.72634,830.93804 386.05151,1004.3234 666.77808,819.25271 414.27662,735.0876 z" />
+       <path
+-         d="m 132.72634,765.18707 0,65.75097 281.55028,-95.85044 0,-48.41204 z"
+-         inkscape:box3dsidetype="6"
+-         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4001"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="6"
++         d="m 132.72634,765.18707 0,65.75097 281.55028,-95.85044 0,-48.41204 z" />
+       <path
+-         d="m 414.27662,686.67556 252.50146,69.2908 0,63.28635 -252.50146,-84.16511 z"
+-         inkscape:box3dsidetype="11"
+-         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4011"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="11"
++         d="m 414.27662,686.67556 252.50146,69.2908 0,63.28635 -252.50146,-84.16511 z" />
+       <path
+-         d="M 132.72634,765.18707 386.05151,907.74315 666.77808,755.96636 414.27662,686.67556 z"
+-         inkscape:box3dsidetype="5"
+-         style="fill:#bbdbdb;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4003"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#bbdbdb;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="5"
++         d="M 132.72634,765.18707 386.05151,907.74315 666.77808,755.96636 414.27662,686.67556 z" />
+       <path
+-         d="m 386.05151,907.74315 0,96.58025 280.72657,-185.07069 0,-63.28635 z"
+-         inkscape:box3dsidetype="14"
+-         style="fill:#91c6c6;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4007"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#91c6c6;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="14"
++         d="m 386.05151,907.74315 0,96.58025 280.72657,-185.07069 0,-63.28635 z" />
+       <path
+-         d="m 132.72634,765.18707 253.32517,142.55608 0,96.58025 -253.32517,-173.38536 z"
+-         inkscape:box3dsidetype="3"
+-         style="fill:#a9d2d2;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4005"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#a9d2d2;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.4000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="3"
++         d="m 132.72634,765.18707 253.32517,142.55608 0,96.58025 -253.32517,-173.38536 z" />
+     </g>
+     <path
+-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+-       d="m 386.05151,551.96125 0,-96.58028 280.72657,-151.77679 0,63.28635 z"
+-       id="path8380"
+-       inkscape:connector-curvature="0"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90" />
+-    <g
+-       id="text9360"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
+-       transform="matrix(0.75405944,0,0,0.75405944,111.78234,89.235813)"
+        inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:connector-curvature="0"
++       id="path8380"
++       d="m 386.05151,551.96125 0,-96.58028 280.72657,-151.77679 0,63.28635 z"
++       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
++    <g
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       transform="matrix(0.75405944,0,0,0.75405944,111.78234,89.235813)"
++       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
++       id="text9360">
+       <path
+-         id="path9367"
++         inkscape:connector-curvature="0"
+          d="m 266.71327,371.36648 c 0,0 42.02322,22.59745 42.02322,22.59745 -0.88334,-2.7494 -0.92807,-5.0556 -0.14667,-6.93271 0.74185,-1.90975 2.28564,-3.39773 4.62971,-4.47237 6.2804,-2.87893 16.29751,-2.91299 30.29812,-0.0808 14.27878,2.88854 28.84623,7.93676 43.91285,15.30907 14.96985,7.32504 25.82666,14.76208 32.30008,22.2841 6.60774,7.73294 6.42608,13.62664 -0.77341,17.5191 -2.57568,1.39255 -5.9428,2.27952 -10.09196,2.65645 -4.14722,0.37682 -9.03195,0.27276 -14.63551,-0.30994 0,0 6.12635,3.29437 6.12635,3.29437 0,0 -11.62996,6.24761 -11.62996,6.24761 -2.41692,1.29837 -5.29563,1.59264 -8.61905,0.88139 -3.35728,-0.771 -6.87004,-2.19044 -10.52344,-4.24635 -3.54102,-1.99268 -5.86779,-3.86777 -6.99837,-5.62926 -1.19938,-1.79188 -0.61523,-3.29313 1.73951,-4.51039 0,0 1.68826,-0.87272 1.68826,-0.87272 0,0 -90.45829,-49.85167 -90.45829,-49.85167 0,0 -1.59344,0.71389 -1.59344,0.71389 -2.25209,1.00907 -4.70558,1.26625 -7.34808,0.77047 -2.66136,-0.54067 -5.33776,-1.56961 -8.020
 42,-3.07925 -2.60339,-1.46503 -4.2303,-2.85092 -4.89296,-4.16015 -0.68502,-1.34601 0.087,-2.50041 2.30772,-3.46734 0,0 10.70574,-4.66093 10.70574,-4.66093 m 112.24992,31.28573 c -9.24083,-4.62749 -18.2154,-7.8208 -27.00552,-9.64439 -8.68476,-1.80163 -14.90975,-1.78551 -18.76933,0.0401 -3.85162,1.82199 -4.17827,4.93626 -0.91435,9.40205 3.33104,4.5576 9.38532,9.21781 18.26644,13.9935 8.2787,4.45179 16.48672,7.54923 24.5504,9.23207 8.07047,1.65936 14.42008,1.30809 18.96216,-1.05409 4.51014,-2.34553 5.14578,-5.59044 1.97324,-9.69201 -3.16324,-4.08344 -8.87974,-8.17923 -17.06304,-12.27723"
+-         inkscape:connector-curvature="0" />
++         id="path9367" />
+       <path
+-         id="path9369"
++         inkscape:connector-curvature="0"
+          d="m 437.98696,372.26204 c 8.99001,3.86459 16.99429,8.15462 23.98969,12.89 7.10735,4.79779 11.64579,9.38974 13.51508,13.75095 1.84778,4.39015 0.77479,7.7026 -3.26515,9.88682 -4.03834,2.18336 -10.64299,3.02836 -19.75031,2.52645 -9.13238,-0.53761 -19.16951,-2.42955 -30.00743,-5.6346 -10.64461,-3.14785 -20.49641,-6.91697 -29.54294,-11.275 -8.99106,-4.3313 -16.62248,-8.95602 -22.92919,-13.85679 -6.22481,-4.81666 -9.76552,-9.10257 -10.7207,-12.89418 -0.91096,-3.7398 0.56253,-6.46753 4.39211,-8.22314 3.83482,-1.75785 9.80768,-2.40719 17.97503,-1.9535 8.17976,0.41437 17.24042,1.97213 27.27404,4.70697 10.13979,2.75246 19.82425,6.10167 29.06977,10.07602 m -8.30516,4.22688 c -7.37544,-3.23914 -15.01481,-5.69353 -22.94614,-7.39099 -10.59158,-2.24412 -18.0015,-2.32455 -22.37343,-0.25658 -3.87071,1.83102 -4.04253,4.79198 -0.44507,8.9356 3.66986,4.22702 9.76566,8.36619 18.36814,12.41764 7.19768,3.38988 15.42275,5.9332 24.65726,7.59871 9.26097,1.64784 15.89905,1.45513 19.81688,-0
 .58239 3.92134,-2.03932 3.86523,-5.23176 -0.0906,-9.52309 -3.95681,-4.24224 -9.63234,-7.96878 -16.98706,-11.1989"
+-         inkscape:connector-curvature="0" />
++         id="path9369" />
+       <path
+-         id="path9371"
++         inkscape:connector-curvature="0"
+          d="m 486.12662,348.37269 c 9.12904,3.46892 17.3339,7.32826 24.59454,11.59549 7.36867,4.31928 12.21724,8.46335 14.44995,12.41098 2.21291,3.97101 1.48935,6.9806 -2.2182,8.98511 -3.70503,2.00315 -10.02616,2.80997 -18.90507,2.41265 -8.90912,-0.4296 -18.83267,-2.08097 -29.67005,-4.91891 -10.65199,-2.78938 -20.6048,-6.1499 -29.84349,-10.05334 -9.19036,-3.88303 -17.09633,-8.04492 -23.74853,-12.47019 -6.56981,-4.35325 -10.47308,-8.24211 -11.80577,-11.6979 -1.28493,-3.41097 -0.13687,-5.91277 3.41353,-7.5404 3.55603,-1.63005 9.3155,-2.25883 17.33088,-1.89147 8.02147,0.33124 17.0176,1.70257 27.07805,4.14312 10.15907,2.45438 19.92781,5.45443 29.32416,9.02486 m -7.65999,3.9026 c -7.50262,-2.90854 -15.1879,-5.10156 -23.08465,-6.60329 -10.54858,-1.98575 -17.7778,-2.01539 -21.82395,-0.10153 -3.58138,1.69415 -3.44041,4.39661 0.49404,8.15321 4.01058,3.82924 10.36918,7.5608 19.15114,11.19424 7.34217,3.03775 15.59205,5.29806 24.72975,6.75377 9.15745,1.43882 15.58337,1.22282 19.18663,-
 0.65111 3.60745,-1.87607 3.2401,-4.77605 -1.02456,-8.65304 -4.26414,-3.8354 -10.15199,-7.19381 -17.6284,-10.09225"
+-         inkscape:connector-curvature="0" />
++         id="path9371" />
+       <path
+-         id="path9373"
++         inkscape:connector-curvature="0"
+          d="m 480.19699,325.92671 c 0,0 46.81732,16.72492 46.81732,16.72492 5.30636,1.89565 9.16415,2.98806 11.53246,3.26156 3.7232,0.43657 6.89415,-0.0226 9.49293,-1.37414 3.75665,-1.95367 4.44336,-4.69849 2.10883,-8.19919 -0.90969,-1.33519 -1.02233,-2.17338 -0.34299,-2.52081 0.9357,-0.47846 2.95503,-0.48037 6.06821,-0.005 3.1485,0.46528 6.49481,1.29323 10.04934,2.48906 3.32993,1.12037 5.84704,2.28915 7.54222,3.50637 2.83733,1.95367 4.27456,4.42822 4.29002,7.43825 -0.0474,3.00727 -1.25752,5.16708 -3.63759,6.45388 -4.62111,2.49844 -11.67395,3.11368 -21.05614,1.83994 -9.34487,-1.30401 -18.94785,-3.76018 -28.72768,-7.32238 0,0 -51.54329,-18.77413 -51.54329,-18.77413 0,0 -2.69607,1.28076 -2.69607,1.28076 -1.80402,0.85705 -4.10418,1.10091 -6.88948,0.73055 -2.8225,-0.40698 -5.85549,-1.21407 -9.08819,-2.41555 -3.13895,-1.16664 -5.2901,-2.28205 -6.46547,-3.348 -1.2127,-1.09633 -0.91887,-2.05519 0.87217,-2.87962 0,0 2.67694,-1.23211 2.67694,-1.23211 0,0 -18.59439,-6.77282 -18.59439
 ,-6.77282 -4.82318,-1.75679 -7.87823,-3.13859 -9.20076,-4.15603 -1.3546,-1.04496 -1.48412,-1.80449 -0.39608,-2.28266 1.06279,-0.46689 2.94303,-0.47915 5.6499,-0.0361 2.67661,0.41136 6.41632,1.47416 11.25307,3.20202 0,0 18.64358,6.66019 18.64358,6.66019 0,0 13.36854,-6.15311 13.36854,-6.15311 1.71867,-0.79098 3.93689,-1.00802 6.6652,-0.65194 2.69085,0.32287 5.65208,1.03373 8.89493,2.1378 3.19532,1.08797 5.46866,2.16327 6.80877,3.22473 1.29906,1.03205 1.08863,1.9601 -0.64069,2.78154 0,0 -13.45561,6.39201 -13.45561,6.39201"
+-         inkscape:connector-curvature="0" />
++         id="path9373" />
+       <path
+-         id="path9375"
++         inkscape:connector-curvature="0"
+          d="m 524.35826,304.94812 c 0,0 57.86252,18.38857 57.86252,18.38857 0,0 9.7239,-5.0266 9.7239,-5.0266 1.62583,-0.84042 3.97193,-1.06764 7.05011,-0.68253 3.02751,0.34959 6.47003,1.1138 10.34207,2.2985 3.81658,1.16778 6.62659,2.32065 8.41675,3.45726 1.7367,1.10538 1.79678,2.09684 0.1687,2.97144 0,0 -20.86256,11.20735 -20.86256,11.20735 -1.69813,0.91223 -4.12808,1.16816 -7.27767,0.76668 -3.20111,-0.44068 -6.755,-1.30911 -10.64737,-2.59887 -3.77828,-1.25192 -6.46425,-2.44676 -8.07231,-3.5865 -1.65775,-1.17192 -1.63386,-2.19399 0.06,-3.06965 0,0 4.16686,-2.15398 4.16686,-2.15398 0,0 -57.79955,-18.70882 -57.79955,-18.70882 0,0 -3.31246,1.57357 -3.31246,1.57357 -1.67461,0.79557 -3.894,1.0321 -6.648,0.70863 -2.79428,-0.35685 -5.83447,-1.07922 -9.10983,-2.16217 -3.18126,-1.05181 -5.3938,-2.06251 -6.64916,-3.0336 -1.29516,-0.99893 -1.10545,-1.88041 0.5601,-2.64708 0,0 3.29491,-1.51654 3.29491,-1.51654 0,0 -8.05013,-2.6057 -8.05013,-2.6057 -9.0452,-2.92777 -15.29182,-5.80135 -
 18.83144,-8.62907 -3.52308,-2.81085 -3.17907,-5.10586 0.96661,-6.91085 1.83597,-0.79923 4.45749,-1.5595 7.86455,-2.28173 3.35858,-0.74992 6.26927,-0.99401 8.74211,-0.7327 2.50162,0.25283 5.19422,0.81488 8.08621,1.68978 3.10997,0.94091 5.375,1.84984 6.78473,2.72549 1.35022,0.86008 1.58905,1.48936 0.71009,1.88489 -0.40765,0.18355 -1.25572,0.38688 -2.54436,0.60991 -4.41723,0.71294 -7.6893,1.54538 -9.81886,2.49937 -2.22444,0.99667 -2.73118,2.01496 -1.5084,3.05681 1.18494,1.01695 3.30412,2.01202 6.36785,2.98566 0,0 8.06456,2.56289 8.06456,2.56289 0,0 10.38017,-4.77766 10.38017,-4.77766 1.60406,-0.73823 3.75199,-0.95017 6.4536,-0.63657 2.66155,0.28314 5.62415,0.92234 8.8989,1.92218 3.22598,0.985 5.54921,1.96307 6.95893,2.93324 1.36659,0.94309 1.24876,1.79847 -0.36254,2.56385 0,0 -10.42964,4.95455 -10.42964,4.95455"
+-         inkscape:connector-curvature="0" />
++         id="path9375" />
+       <path
+-         id="path9377"
++         inkscape:connector-curvature="0"
+          d="m 574.61499,283.99905 c -3.31444,-0.15435 -6.08369,-0.11845 -8.31443,0.10735 -2.30321,0.20508 -4.07372,0.60048 -5.31424,1.18721 -2.46838,1.16767 -3.01224,2.51015 -1.61447,4.03327 0.60292,0.67291 1.64413,1.22527 3.12534,1.65615 1.70913,0.49721 3.82744,0.77332 6.35381,0.8271 1.87073,0.0245 4.53088,-0.36099 7.97382,-1.15539 6.3436,-1.44672 11.39483,-2.26881 15.17355,-2.47016 4.98619,-0.25925 10.88971,0.10784 17.75075,1.10837 6.92387,1.00975 13.65666,2.40914 20.21272,4.20821 9.03796,2.4802 15.73657,5.10339 20.02734,7.86932 6.35081,4.06357 7.3,7.36394 2.70673,9.84732 -1.85312,1.00191 -4.27563,1.73258 -7.2635,2.1895 -2.88132,0.47104 -6.28692,0.6849 -10.20845,0.64145 0.80272,0.49803 1.32719,0.93276 1.57202,1.30366 0.24495,0.37149 0.1769,0.66031 -0.20564,0.86576 -1.02151,0.54865 -3.18409,0.59244 -6.47634,0.13197 -3.34347,-0.49542 -8.15753,-1.67755 -14.39541,-3.53092 0,0 -8.59884,-2.55485 -8.59884,-2.55485 -6.05987,-1.80048 -10.01632,-3.2171 -11.91481,-4.26116 -1.94556,-
 1.07213 -2.42442,-1.85248 -1.44701,-2.34539 0.78497,-0.39581 2.2796,-0.48123 4.48868,-0.25629 2.13397,0.20198 5.36767,0.81735 9.72187,1.85154 4.26215,0.44403 7.96002,0.55921 11.08074,0.3439 3.04016,-0.23936 5.45895,-0.82613 7.25042,-1.75782 2.92404,-1.52066 3.35798,-3.20948 1.3294,-5.05875 -1.04765,-0.89657 -2.55062,-1.61718 -4.50718,-2.1636 -3.2445,-0.90604 -6.44882,-1.37387 -9.62339,-1.4077 -3.16808,-0.0337 -7.17813,0.6088 -12.04806,1.93106 -7.21679,1.99422 -14.62018,2.58337 -22.13286,1.76443 -7.37333,-0.78946 -15.08696,-2.38082 -23.08624,-4.74933 -8.08729,-2.39456 -13.72809,-4.81726 -16.98815,-7.27133 -4.41938,-3.29135 -4.47329,-5.88661 -0.24956,-7.8229 1.46281,-0.6705 3.34863,-1.17273 5.65981,-1.50788 2.26094,-0.36411 4.98687,-0.55216 8.18326,-0.56429 -0.60143,-0.45433 -0.98542,-0.82473 -1.153,-1.11182 -0.14687,-0.2959 -0.0782,-0.50905 0.20561,-0.63976 0.85095,-0.3916 2.68442,-0.40633 5.50914,-0.0436 2.76417,0.34452 6.79329,1.24528 12.1235,2.71337 0,0 5.46229,1.50449 5.4
 6229,1.50449 4.9316,1.35835 8.14703,2.36621 9.61371,3.01537 2.80152,1.26506 3.65218,2.17198 2.53312,2.71381 -0.75407,0.36519 -2.28486,0.44438 -4.58735,0.23757 -2.2968,-0.20623 -4.94238,-0.66681 -7.9287,-1.37921"
+-         inkscape:connector-curvature="0" />
++         id="path9377" />
+     </g>
+     <path
+-       inkscape:connector-curvature="0"
+-       id="path4672"
++       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+        d="m 386.05151,551.96125 0,-96.58028 280.72657,-151.77679 0,63.28635 z"
+-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
++       id="path4672"
++       inkscape:connector-curvature="0" />
+     <g
+-       id="text6884"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Courier New;-inkscape-font-specification:Sans"
+-       transform="translate(1.2096774,-17.209677)">
++       id="text7447"
++       style="font-size:40px;font-style:italic;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium Italic">
+       <path
+-         id="path6891"
+-         d="m 405.68539,517.2315 c 0,0 -0.0193,16.2617 -0.0193,16.2617 0,0 3.17768,-2.015 3.17768,-2.015 0.42104,-0.26699 0.71912,-0.28408 0.89461,-0.0515 0.17538,0.20367 0.26245,0.57777 0.26128,1.12234 -0.001,0.51582 -0.0901,1.00179 -0.26671,1.45807 -0.1768,0.45653 -0.47536,0.81943 -0.89606,1.08884 0,0 -7.2615,4.65021 -7.2615,4.65021 -0.4181,0.26775 -0.71809,0.2856 -0.89962,0.053 -0.18168,-0.23276 -0.27256,-0.61101 -0.27256,-1.13472 0,-0.55292 0.0909,-1.0473 0.27272,-1.48298 0.18171,-0.4645 0.48198,-0.82951 0.90042,-1.09484 0,0 2.35294,-1.49203 2.35294,-1.49203 0,0 0.0349,-43.95921 0.0349,-43.95921 0,0 -2.3762,1.32682 -2.3762,1.32682 -0.4226,0.23601 -0.72583,0.24206 -0.90932,0.0178 -0.18363,-0.25407 -0.2755,-0.66358 -0.2755,-1.22844 0,-0.56489 0.0919,-1.06185 0.27567,-1.49066 0.18367,-0.45823 0.48718,-0.80413 0.91014,-1.03765 0,0 7.3447,-4.05398 7.3447,-4.05398 0.42546,-0.23477 0.72666,-0.22523 0.90398,0.0279 0.17721,0.22388 0.26518,0.61389 0.26399,1.17006 -0.001,0.55615 -
 0.0911,1.05925 -0.26963,1.50941 -0.1786,0.42125 -0.48025,0.7505 -0.90536,0.98782 0,0 -3.20861,1.79162 -3.20861,1.79162 0,0 -0.027,22.7262 -0.027,22.7262 0,0 11.85347,-29.32986 11.85347,-29.32986 0,0 -1.84356,1.0294 -1.84356,1.0294 -0.4158,0.23222 -0.71071,0.23758 -0.8844,0.0157 -0.17376,-0.25093 -0.25981,-0.65252 -0.25806,-1.20465 0.002,-0.55216 0.0906,-1.03662 0.2666,-1.4532 0.17596,-0.44532 0.4722,-0.78288 0.88832,-1.01263 0,0 4.9265,-2.71923 4.9265,-2.71923 0.39516,-0.21804 0.67722,-0.2015 0.84652,0.049 0.16926,0.22176 0.25255,0.60547 0.24997,1.15114 -0.003,0.54567 -0.0901,1.03822 -0.26231,1.47778 -0.17228,0.41121 -0.45565,0.72699 -0.8505,0.94742 0,0 -0.67254,0.37553 -0.67254,0.37553 0,0 -9.34163,23.22298 -9.34163,23.22298 1.39299,0.391 2.54214,1.22247 3.45037,2.49219 0.90456,1.26471 1.76961,3.30318 2.59512,6.10986 0.47018,1.56163 1.32542,5.36141 2.55962,11.3683 0,0 2.05678,-1.30423 2.05678,-1.30423 0.40304,-0.25557 0.68792,-0.26799 0.85497,-0.0375 0.16702,0.20219 0.24918
 ,0.57016 0.24656,1.10393 -0.003,0.5056 -0.0889,0.98066 -0.25892,1.42533 -0.17022,0.44492 -0.45652,0.79627 -0.85925,1.05417 0,0 -3.17718,2.03464 -3.17718,2.03464 -1.70416,-9.14138 -3.15817,-14.85521 -4.35315,-17.0766 -1.2016,-2.2625 -2.71697,-3.45967 -4.55059,-3.58265 0,0 -3.48846,8.71251 -3.48846,8.71251"
++         id="path7454"
++         d="m 147.58834,332.81239 c 0,0 -1.75619,37.90152 -1.75619,37.90152 0,0 -1.88054,-1.21673 -1.88054,-1.21673 0,0 1.76021,-37.74043 1.76021,-37.74043 0,0 1.87652,1.05564 1.87652,1.05564"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path6893"
+-         d="m 443.47158,496.16573 c 0,0 -15.92023,9.70195 -15.92023,9.70195 0.25261,4.3947 1.09424,7.53188 2.51855,9.41247 1.42789,1.83288 3.19316,2.07344 5.2907,0.7382 1.15976,-0.73828 2.37336,-1.93312 3.64044,-3.58163 1.2617,-1.64151 2.29067,-3.40363 3.08952,-5.2883 0.23317,-0.55259 0.43412,-0.88169 0.60291,-0.98752 0.19273,-0.12084 0.35959,-0.0498 0.50059,0.2133 0.14113,0.23564 0.20944,0.58439 0.20501,1.04631 -0.004,0.46186 -0.1049,0.97075 -0.30138,1.52697 -0.59063,1.72481 -1.63435,3.65941 -3.13604,5.80979 -1.49675,2.12595 -3.03903,3.70146 -4.62822,4.72308 -2.68176,1.72399 -4.92977,1.22514 -6.73564,-1.52638 -1.80812,-2.81062 -2.70176,-7.0448 -2.66946,-12.69552 0.0295,-5.15711 0.92218,-10.10229 2.67206,-14.81044 1.75462,-4.69402 3.89166,-7.75636 6.39992,-9.19327 2.55976,-1.46633 4.63179,-0.79081 6.22479,2.00024 1.58113,2.74246 2.3269,7.04454 2.24648,12.91075 m -1.50759,-2.55533 c -0.26805,-3.63428 -1.04266,-6.26807 -2.32893,-7.90085 -1.28159,-1.6495 -2.8345,-1.95112 -4.66
 221,-0.89235 -1.83997,1.06596 -3.44162,3.19609 -4.79954,6.39411 -1.36305,3.21016 -2.22473,6.90224 -2.58104,11.06526 0,0 14.37172,-8.66617 14.37172,-8.66617"
++         id="path7456"
++         d="m 155.5998,356.97158 c 0,0 -0.24054,5.14593 -0.24054,5.14593 -0.40443,-1.61247 -0.78977,-2.82699 -1.15617,-3.64502 -0.35987,-0.7974 -0.78335,-1.34369 -1.27013,-1.63943 -0.73705,-0.44773 -1.33999,-0.091 -1.81,1.06776 -0.46924,1.15688 -0.70259,2.86881 -0.7006,5.13825 0.002,2.13082 0.22404,3.97436 0.6673,5.53232 0.4501,1.58081 1.03211,2.60051 1.7469,3.05745 0.68755,0.43955 1.39964,0.10214 2.13626,-1.01548 0,0 -0.24938,5.3343 -0.24938,5.3343 -0.75516,0.32879 -1.47328,0.27142 -2.15455,-0.1704 -1.21082,-0.78524 -2.19272,-2.47392 -2.94825,-5.0617 -0.74689,-2.57425 -1.12029,-5.52395 -1.12234,-8.85412 -0.002,-3.41998 0.39606,-6.0285 1.19618,-7.83178 0.80817,-1.82041 1.81762,-2.37095 3.0313,-1.64489 0.99666,0.59627 1.95471,2.12313 2.87402,4.58681"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path6895"
+-         d="m 455.58667,470.66722 c 0,0 -0.10498,8.56019 -0.10498,8.56019 1.93651,-5.08183 3.37081,-8.44336 4.30858,-10.1013 0.94661,-1.68612 1.80908,-2.7511 2.58784,-3.19777 0.84383,-0.48395 1.61379,-0.25336 2.31017,0.68823 0.70553,0.90558 1.05243,1.70098 1.04247,2.38832 -0.007,0.50226 -0.0857,0.96734 -0.23511,1.3954 -0.13804,0.39541 -0.31278,0.65513 -0.52432,0.77918 -0.11142,0.0654 -0.20559,0.0813 -0.28249,0.0476 -0.0766,-0.0601 -0.21729,-0.27954 -0.42229,-0.65871 -0.37824,-0.6994 -0.71083,-1.13744 -0.99754,-1.31325 -0.2871,-0.17598 -0.57132,-0.18255 -0.85261,-0.0195 -0.61996,0.35957 -1.37941,1.38224 -2.27917,3.07105 -0.89096,1.68702 -2.45801,5.46216 -4.70984,11.34948 0,0 -0.22596,18.42612 -0.22596,18.42612 0,0 6.33459,-4.01684 6.33459,-4.01684 0.34746,-0.22033 0.59161,-0.21895 0.7327,0.004 0.14133,0.1965 0.2085,0.54399 0.2016,1.04251 -0.007,0.47221 -0.0847,0.91205 -0.23427,1.31965 -0.14973,0.40781 -0.39805,0.72284 -0.74529,0.94521 0,0 -11.32013,7.24932 -11.32013,7.24932 
 -0.35123,0.22493 -0.6016,0.23885 -0.75084,0.0414 -0.14907,-0.22443 -0.22099,-0.57831 -0.21571,-1.0616 0.005,-0.45652 0.0796,-0.87735 0.22375,-1.26235 0.15613,-0.41912 0.41594,-0.74392 0.77913,-0.97432 0,0 3.54132,-2.24639 3.54132,-2.24639 0,0 0.33638,-28.17047 0.33638,-28.17047 0,0 -2.71509,1.57907 -2.71509,1.57907 -0.35236,0.20495 -0.60335,0.18908 -0.75268,-0.0481 -0.14946,-0.2372 -0.22135,-0.61416 -0.2156,-1.13086 0.005,-0.48951 0.0807,-0.93834 0.22572,-1.34628 0.15673,-0.41449 0.41745,-0.72656 0.78182,-0.93616 0,0 4.17785,-2.40283 4.17785,-2.40283"
++         id="path7458"
++         d="m 162.12519,369.14836 c 0,0 3.15558,14.14905 3.15558,14.14905 0,0 -2.36428,-1.52972 -2.36428,-1.52972 0,0 -2.06013,-9.88013 -2.06013,-9.88013 0,0 -2.73436,6.77803 -2.73436,6.77803 0,0 -2.55294,-1.65178 -2.55294,-1.65178 0,0 4.27078,-9.71399 4.27078,-9.71399 0,0 -2.54931,-11.45318 -2.54931,-11.45318 0,0 2.27488,1.36446 2.27488,1.36446 0,0 1.52855,7.34113 1.52855,7.34113 0,0 2.03981,-5.20084 2.03981,-5.20084 0,0 2.60043,1.55972 2.60043,1.55972 0,0 -3.60901,8.23725 -3.60901,8.23725"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path6897"
+-         d="m 473.30415,460.47729 c 0,0 -0.0804,4.97133 -0.0804,4.97133 0.98569,-2.87136 1.86574,-4.96674 2.64065,-6.28932 0.77288,-1.31909 1.63191,-2.24853 2.57593,-2.78936 1.01432,-0.58102 1.92593,-0.57975 2.7356,4.3e-4 0.57165,0.43409 1.07517,1.41355 1.51085,2.93619 0.44533,1.487 0.6504,3.16172 0.61612,5.02597 0,0 -0.37098,20.16552 -0.37098,20.16552 0,0 1.09632,-0.69519 1.09632,-0.69519 0.30795,-0.19527 0.52558,-0.18379 0.65312,0.0343 0.1279,0.19274 0.18732,0.5284 0.17832,1.00704 -0.009,0.4534 -0.0822,0.87365 -0.22092,1.26091 -0.13883,0.38745 -0.362,0.67967 -0.66977,0.87676 0,0 -3.48879,2.2342 -3.48879,2.2342 -0.32291,0.20678 -0.54961,0.20133 -0.67985,-0.0168 -0.13035,-0.21825 -0.19152,-0.55628 -0.18341,-1.01409 0.009,-0.48331 0.0832,-0.90811 0.22395,-1.27426 0.14113,-0.39138 0.37338,-0.68956 0.69648,-0.89444 0,0 1.09126,-0.69198 1.09126,-0.69198 0,0 0.35635,-19.67714 0.35635,-19.67714 0.0412,-2.27809 -0.26274,-4.00074 -0.9136,-5.16921 -0.65266,-1.19813 -1.55322,-1.46656
  -2.70395,-0.79997 -0.87978,0.50971 -1.6529,1.39411 -2.31814,2.65394 -0.66627,1.2367 -1.63439,3.93929 -2.90635,8.11592 0,0 -0.33083,20.46711 -0.33083,20.46711 0,0 1.52554,-0.96736 1.52554,-0.96736 0.32,-0.20291 0.54652,-0.19417 0.67982,0.026 0.13361,0.19441 0.19632,0.5352 0.1882,1.02244 -0.008,0.46152 -0.0833,0.89021 -0.22665,1.28621 -0.14347,0.39619 -0.37497,0.69664 -0.69477,0.90144 0,0 -4.42215,2.83191 -4.42215,2.83191 -0.3258,0.20863 -0.55714,0.20298 -0.6938,-0.0174 -0.13675,-0.22051 -0.20159,-0.56416 -0.19444,-1.03091 0.008,-0.49277 0.0843,-0.92686 0.23029,-1.30217 0.1463,-0.40101 0.38259,-0.70494 0.70859,-0.91166 0,0 1.54286,-0.97835 1.54286,-0.97835 0,0 0.43113,-27.17649 0.43113,-27.17649 0,0 -1.15824,0.67362 -1.15824,0.67362 -0.32722,0.19033 -0.55954,0.16948 -0.69672,-0.0629 -0.13729,-0.23247 -0.20212,-0.59828 -0.19443,-1.09741 0.007,-0.47286 0.0845,-0.90805 0.23156,-1.30535 0.14701,-0.39707 0.38436,-0.6898 0.71179,-0.87815 0,0 2.52342,-1.45131 2.52342,-1.45131"
++         id="path7460"
++         d="m 169.92343,379.36559 c 0,0 -3.25195,12.16924 -3.25195,12.16924 0,0 -1.27259,-2.63135 -1.27259,-2.63135 0,0 2.90583,-12.86349 2.90583,-12.86349 0,0 1.61871,3.3256 1.61871,3.3256"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path6899"
+-         d="m 502.73274,460.0514 c 0,0 -12.58078,7.66685 -12.58078,7.66685 0.13943,3.95275 0.75486,6.81973 1.84191,8.60127 1.09127,1.74028 2.46782,2.07625 4.12588,1.02077 0.91736,-0.58398 1.88324,-1.57454 2.89733,-2.9694 1.01026,-1.38958 1.83995,-2.9037 2.49094,-4.54374 0.19007,-0.48101 0.352,-0.76339 0.48584,-0.84731 0.15283,-0.0958 0.2829,-0.0209 0.39022,0.22483 0.10778,0.2211 0.15695,0.53905 0.14755,0.95388 -0.009,0.41479 -0.0948,0.86546 -0.25619,1.35225 -0.48577,1.51058 -1.32969,3.17888 -2.53523,5.00941 -1.20067,1.80791 -2.42926,3.11745 -3.68662,3.92576 -2.11999,1.36285 -3.86995,0.76072 -5.24366,-1.82965 -1.37343,-2.64104 -2.01438,-6.49315 -1.91501,-11.55003 0.0906,-4.61389 0.85108,-8.9821 2.27681,-13.08506 1.42996,-4.0921 3.13808,-6.70212 5.11668,-7.83561 2.02129,-1.15786 3.63504,-0.42605 4.84758,2.17494 1.20485,2.55883 1.735,6.46775 1.59675,11.73084 m -1.15024,-2.39108 c -0.1636,-3.27931 -0.73716,-5.69144 -1.72424,-7.23625 -0.98254,-1.55853 -2.19418,-1.92464 -3.63745,
 -1.08857 -1.45189,0.84113 -2.73048,2.64931 -3.83206,5.42777 -1.10528,2.78784 -1.82554,6.03803 -2.15785,9.74209 0,0 11.3516,-6.84504 11.3516,-6.84504"
++         id="path7462"
++         d="m 189.30148,375.04665 c 0,0 -1.03888,23.12027 -1.03888,23.12027 0,0 -2.24228,-1.45077 -2.24228,-1.45077 0,0 0.11673,-2.49125 0.11673,-2.49125 -0.94298,1.47092 -1.92196,1.87493 -2.93613,1.21763 -1.24207,-0.80501 -2.25567,-2.51652 -3.04325,-5.13028 -0.78468,-2.60409 -1.18382,-5.57547 -1.1996,-8.91911 -0.0182,-3.85301 0.40809,-6.73894 1.2807,-8.66498 0.88831,-1.92374 2.04012,-2.46472 3.45951,-1.61503 0.6727,0.40274 1.24847,1.02201 1.72666,1.85828 0.48587,0.84208 0.98515,2.09412 1.498,3.75781 0,0 0.13357,-3.0291 0.13357,-3.0291 0,0 2.24497,1.34653 2.24497,1.34653 m -2.66567,9.53882 c -0.0121,-2.10019 -0.26427,-3.95362 -0.75572,-5.55842 -0.49044,-1.61785 -1.11651,-2.65716 -1.8773,-3.11967 -0.82492,-0.50144 -1.51048,-0.11404 -2.058,1.15924 -0.54646,1.28764 -0.81341,3.10968 -0.80158,5.46904 0.0103,2.06152 0.24981,3.89591 0.71924,5.50498 0.47047,1.61265 1.07146,2.65376 1.80379,3.12165 0.81474,0.52057 1.51683,0.14096 2.10513,-1.14196 0.58925,-1.31904 0.87768,-3.13164 0.8
 6444,-5.43486"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path6901"
+-         d="m 514.91047,422.62215 c 0,0 -1.06434,42.27288 -1.06434,42.27288 0,0 4.45362,-2.8241 4.45362,-2.8241 0.2761,-0.17507 0.46813,-0.15759 0.57629,0.0523 0.10868,0.18619 0.15712,0.50328 0.14534,0.95133 -0.0112,0.42443 -0.0782,0.81493 -0.20113,1.17164 -0.12299,0.35687 -0.32235,0.62363 -0.59831,0.80035 0,0 -10.15763,6.50487 -10.15763,6.50487 -0.27917,0.17878 -0.476,0.16246 -0.5903,-0.0494 -0.11437,-0.21191 -0.16642,-0.53506 -0.15609,-0.96944 0.0109,-0.45857 0.0801,-0.85922 0.20776,-1.20182 0.12814,-0.36656 0.33197,-0.63844 0.61129,-0.81556 0,0 4.56188,-2.89274 4.56188,-2.89274 0,0 0.97884,-39.26779 0.97884,-39.26779 0,0 -3.35907,1.85407 -3.35907,1.85407 -0.27977,0.15447 -0.48159,0.1208 -0.60529,-0.10124 -0.11445,-0.22726 -0.16609,-0.57399 -0.15489,-1.04015 0.0106,-0.44163 0.0802,-0.843 0.20889,-1.204 0.12859,-0.36073 0.33761,-0.62003 0.62686,-0.77784 0,0 4.51628,-2.46343 4.51628,-2.46343"
++         id="path7464"
++         d="m 200.98417,382.05386 c 0,0 -0.60701,13.76386 -0.60701,13.76386 -0.0478,1.17529 -0.11093,2.18594 -0.18949,3.03183 -0.0786,0.8458 -0.16535,1.53989 -0.26032,2.08222 -0.1903,1.03239 -0.51634,1.84794 -0.97764,2.4463 -0.78121,1.00906 -1.81569,1.09476 -3.10016,0.26227 -1.21534,-0.78769 -2.18714,-2.17556 -2.91798,-4.16161 -0.72858,-1.99666 -1.10026,-4.27781 -1.1168,-6.84699 -0.003,-0.39117 10e-4,-0.84599 0.0118,-1.36445 0.0173,-0.51405 0.0409,-1.10033 0.0709,-1.75873 0,0 0.55615,-12.57127 0.55615,-12.57127 0,0 2.29365,1.37572 2.29365,1.37572 0,0 -0.58535,13.12163 -0.58535,13.12163 -0.0239,0.56331 -0.0413,1.06266 -0.0521,1.49808 -0.011,0.4184 -0.0156,0.77281 -0.0136,1.06329 0.0172,2.54701 0.63463,4.21014 1.85674,4.9909 0.66588,0.42543 1.15463,0.31796 1.46518,-0.3237 0.31086,-0.6423 0.51161,-1.98957 0.60201,-4.04108 0,0 0.62456,-13.97146 0.62456,-13.97146 0,0 2.33946,1.40319 2.33946,1.40319"
+          inkscape:connector-curvature="0" />
+-    </g>
+-    <g
+-       id="text3655"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+-       transform="matrix(0.67123869,0,0,0.67123869,53.68199,126.56876)">
+       <path
+-         id="path3662"
+-         d="m 132.8684,367.78607 c 0,0 0.71572,-54.35962 0.71572,-54.35962 0,0 2.66242,1.51122 2.66242,1.51122 0,0 -0.71153,54.62187 -0.71153,54.62187 0,0 -2.66661,-1.77347 -2.66661,-1.77347"
++         id="path7466"
++         d="m 206.63389,390.78613 c 0,0 -0.82079,18.73618 -0.82079,18.73618 0,0 -2.40115,-1.55357 -2.40115,-1.55357 0,0 0.82954,-18.64209 0.82954,-18.64209 0,0 -1.55408,-0.94806 -1.55408,-0.94806 0,0 0.22678,-5.16711 0.22678,-5.16711 0,0 1.55445,0.93235 1.55445,0.93235 0,0 0.47336,-10.6332 0.47336,-10.6332 0.12045,-2.83044 0.43153,-4.7841 0.93387,-5.86279 0.50314,-1.08033 1.23473,-1.3513 2.1968,-0.81014 0.58479,0.32902 1.27387,1.15978 2.06817,2.49496 0,0 -0.21954,4.94262 -0.21954,4.94262 -0.4636,-1.13664 -0.88579,-1.81328 -1.26683,-2.03137 -0.43899,-0.25118 -0.76101,-0.0798 -0.96652,0.51359 -0.19081,0.60146 -0.32899,1.83118 -0.41464,3.6896 0,0 -0.40076,9.13858 -0.40076,9.13858 0,0 2.19474,1.3164 2.19474,1.3164 0,0 -0.22825,5.2293 -0.22825,5.2293 0,0 -2.20515,-1.34525 -2.20515,-1.34525"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path3664"
+-         d="m 137.92667,371.15014 c 0,0 6.14809,-16.99741 6.14809,-16.99741 0,0 -5.19986,-22.51479 -5.19986,-22.51479 0,0 3.39897,2.02031 3.39897,2.02031 0,0 2.36954,10.8944 2.36954,10.8944 0.44814,2.07993 0.80843,3.81608 1.08051,5.20679 0.47284,-1.39022 0.90795,-2.61465 1.30519,-3.67276 0,0 2.89882,-7.87895 2.89882,-7.87895 0,0 3.37501,2.00607 3.37501,2.00607 0,0 -5.97372,15.60005 -5.97372,15.60005 0,0 5.92178,25.52797 5.92178,25.52797 0,0 -3.4783,-2.3133 -3.4783,-2.3133 0,0 -3.23409,-14.8189 -3.23409,-14.8189 0,0 -0.8528,-3.95585 -0.8528,-3.95585 0,0 -4.46772,13.08538 -4.46772,13.08538 0,0 -3.29142,-2.18901 -3.29142,-2.18901"
++         id="path7468"
++         d="m 217.52646,394.74253 c 0,0 -1.38661,2.48014 -1.38661,2.48014 -0.67725,-1.8109 -1.29703,-2.88559 -1.8599,-3.22743 -0.38208,-0.23202 -0.69765,-0.16825 -0.94697,0.19084 -0.24182,0.34568 -0.3592,0.89013 -0.3523,1.63368 0.007,0.72604 0.11693,1.40131 0.33073,2.02617 0.21414,0.64318 0.65861,1.60559 1.33464,2.88942 0.96807,1.85739 1.62118,3.41663 1.95681,4.67361 0.3587,1.2553 0.54644,2.71574 0.56281,4.38041 0.0236,2.39986 -0.31049,4.09968 -1.00105,5.09661 -0.70429,0.96703 -1.62822,1.07848 -2.76933,0.33845 -1.54613,-1.0027 -2.83506,-3.48418 -3.86988,-7.43484 0,0 1.58533,-1.65255 1.58533,-1.65255 0.67846,2.3152 1.39501,3.71619 2.14973,4.19878 0.42688,0.27296 0.76562,0.22407 1.01586,-0.14723 0.25795,-0.3668 0.38295,-0.97802 0.37484,-1.83329 -0.007,-0.74819 -0.12185,-1.42257 -0.34408,-2.02287 -0.10729,-0.29756 -0.29412,-0.7335 -0.56031,-1.30745 -0.26591,-0.57331 -0.6257,-1.28445 -1.07896,-2.13273 -0.79912,-1.53842 -1.35435,-2.89536 -1.66731,-4.07336 -0.31299,-1.22922 -0.47
 603,-2.59245 -0.48943,-4.09057 -0.0202,-2.25482 0.31059,-3.91075 0.99349,-4.97061 0.68445,-1.0622 1.56745,-1.27103 2.65118,-0.62272 1.20102,0.71853 2.32478,2.58513 3.37071,5.60754"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path3666"
+-         d="m 166.82131,374.91047 c 0,0 2.93572,2.79373 2.93572,2.79373 -0.37761,4.62343 -1.24922,7.86985 -2.61073,9.73548 -1.34456,1.83887 -2.96947,2.11901 -4.86973,0.85217 -2.3637,-1.5758 -4.23108,-4.67579 -5.61088,-9.29124 -1.36166,-4.61024 -1.99867,-10.32878 -1.91636,-17.16995 0.0532,-4.42099 0.40174,-8.10179 1.04648,-11.0477 0.64585,-2.95094 1.59765,-4.88106 2.85839,-5.78928 1.27692,-0.93132 2.65738,-0.95975 4.14303,-0.0791 1.88674,1.11849 3.42575,3.18947 4.61182,6.21733 1.19146,3.01472 1.93755,6.74983 2.23475,11.20086 0,0 -2.92082,-0.72724 -2.92082,-0.72724 -0.24353,-2.97398 -0.70922,-5.3811 -1.39599,-7.22057 -0.67412,-1.8282 -1.50208,-3.03683 -2.48268,-3.62779 -1.47568,-0.88924 -2.68418,-0.33926 -3.629,1.6424 -0.94184,1.95024 -1.44412,5.64763 -1.50886,11.09862 -0.0657,5.53171 0.32577,9.83698 1.17652,12.92095 0.85352,3.09406 1.99526,5.11378 3.42833,6.05501 1.15583,0.75914 2.13411,0.54393 2.93293,-0.65009 0.80075,-1.19694 1.32691,-3.50191 1.57708,-6.91359"
++         id="path7470"
++         d="m 230.10477,380.45134 c 0,0 -10.56007,50.00187 -10.56007,50.00187 0,0 -1.7864,-3.10109 -1.7864,-3.10109 0,0 10.48761,-49.78707 10.48761,-49.78707 0,0 1.85886,2.88629 1.85886,2.88629"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path3668"
+-         d="m 172.97661,394.46064 c 0,0 0.0905,-8.17492 0.0905,-8.17492 0,0 3.48861,2.27245 3.48861,2.27245 0,0 -0.0895,8.22327 -0.0895,8.22327 -0.0329,3.02363 -0.28765,5.30542 -0.76375,6.84314 -0.47577,1.56243 -1.21303,2.51325 -2.20987,2.85324 0,0 -0.81311,-3.65386 -0.81311,-3.65386 0.65091,-0.22881 1.13685,-0.89297 1.45702,-1.99285 0.32015,-1.07418 0.51068,-2.8142 0.57137,-5.21909 0,0 -1.73124,-1.15138 -1.73124,-1.15138"
++         id="path7472"
++         d="m 235.60558,382.32627 c 0,0 -0.96703,22.30206 -0.96703,22.30206 0.68945,-0.7749 1.29198,-1.21024 1.8071,-1.30486 0.54025,-0.0986 1.12911,0.0426 1.76693,0.4244 1.5763,0.94367 2.90043,2.95835 3.96916,6.05018 1.07316,3.08672 1.63707,6.54247 1.68823,10.35998 0.0562,4.19815 -0.49112,7.31628 -1.63901,9.3455 -1.15172,2.0543 -2.57758,2.52687 -4.27282,1.42815 -1.57073,-1.01801 -2.95455,-3.2779 -4.15367,-6.7709 0,0 -0.15177,3.37409 -0.15177,3.37409 0,0 -2.66427,-1.72381 -2.66427,-1.72381 0,0 1.94788,-44.98639 1.94788,-44.98639 0,0 2.66927,1.5016 2.66927,1.5016 m 5.4938,36.24781 c -0.0307,-2.35775 -0.3661,-4.47468 -1.00488,-6.34826 -0.63711,-1.86861 -1.44772,-3.10059 -2.43047,-3.69802 -1.06071,-0.64478 -1.92383,-0.28834 -2.59137,1.06538 -0.66665,1.31409 -0.98282,3.34554 -0.94953,6.09789 0.028,2.31062 0.34566,4.35609 0.9543,6.13874 0.61062,1.82429 1.3932,3.04273 2.34903,3.65337 1.05772,0.67576 1.9389,0.3393 2.64164,-1.01349 0.72078,-1.34522 1.06493,-3.31161 1.03128,-5.89561
 "
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path3670"
+-         d="m 204.77784,410.06983 c -1.27022,1.55778 -2.48568,2.44071 -3.64678,2.65261 -1.1447,0.21934 -2.36657,-0.10529 -3.66459,-0.97064 -2.13127,-1.42084 -3.74779,-3.67649 -4.85717,-6.76514 -1.10483,-3.1041 -1.63719,-6.47275 -1.60031,-10.11391 0.0216,-2.13477 0.25062,-3.94364 0.6874,-5.42825 0.44957,-1.50612 1.02226,-2.57799 1.71876,-3.21526 0.71002,-0.63098 1.50367,-0.94896 2.38159,-0.95288 0.64759,0.017 1.6255,0.25355 2.93681,0.71095 2.68835,0.95136 4.68535,1.32634 5.97773,1.11825 0.0222,-1.02578 0.0346,-1.67832 0.0372,-1.95765 0.0289,-3.07178 -0.26872,-5.42898 -0.8919,-7.06976 -0.84101,-2.21749 -2.10184,-3.83086 -3.77761,-4.84085 -1.55688,-0.93829 -2.71034,-1.00947 -3.46489,-0.21839 -0.74047,0.76925 -1.30109,2.5996 -1.68287,5.49061 0,0 -3.16708,-2.94172 -3.16708,-2.94172 0.31864,-2.91383 0.81734,-5.11515 1.49696,-6.60484 0.6812,-1.51989 1.65517,-2.41342 2.92464,-2.67921 1.27473,-0.29431 2.75127,0.0544 4.43259,1.05105 1.67794,0.99472 3.04366,2.25211 4.09313,3.7721 1.05
 306,1.52531 1.82526,3.12483 2.31452,4.79681 0.49033,1.64692 0.82696,3.5698 1.00937,5.76792 0.10151,1.36012 0.13673,3.72492 0.1056,7.09479 0,0 -0.0935,10.11679 -0.0935,10.11679 -0.0653,7.05995 -0.0372,11.58025 0.0844,13.55797 0.13448,1.95911 0.40887,3.94126 0.8236,5.94773 0,0 -3.55349,-2.3633 -3.55349,-2.3633 -0.33594,-1.80359 -0.5439,-3.78856 -0.62416,-5.9558 m -0.12224,-17.05427 c -1.23154,0.34731 -3.06331,0.14247 -5.48491,-0.60924 -1.36335,-0.41924 -2.32581,-0.53009 -2.89103,-0.33412 -0.56424,0.19568 -1.00286,0.73389 -1.31639,1.61435 -0.31298,0.85222 -0.4758,1.92485 -0.48867,3.21853 -0.0197,1.98221 0.29058,3.84732 0.93197,5.59804 0.65498,1.76261 1.62279,3.0659 2.90625,3.90947 1.27641,0.83893 2.42209,0.96176 3.43544,0.36456 1.01669,-0.62694 1.7731,-1.89094 2.26739,-3.79238 0.3778,-1.47261 0.58252,-3.87376 0.61388,-7.20158 0,0 0.0261,-2.76763 0.0261,-2.76763"
++         id="path7474"
++         d="m 250.36366,417.46334 c 0,0 -0.86865,20.3217 -0.86865,20.3217 0,0 -2.82008,-1.82462 -2.82008,-1.82462 0,0 0.86643,-20.21881 0.86643,-20.21881 0,0 -1.58388,-0.96624 -1.58388,-0.96624 0,0 0.23648,-5.60491 0.23648,-5.60491 0,0 1.5842,0.9502 1.5842,0.9502 0,0 0.51345,-11.96899 0.51345,-11.96899 0,0 2.8242,1.63235 2.8242,1.63235 0,0 -0.51476,12.02979 -0.51476,12.02979 0,0 2.631,1.57806 2.631,1.57806 0,0 -0.23791,5.67619 -0.23791,5.67619 0,0 -2.63048,-1.60472 -2.63048,-1.60472"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path3672"
+-         d="m 226.91498,430.33317 c 0,0 0.056,-6.79135 0.056,-6.79135 -1.69979,4.12585 -3.95958,5.23997 -6.76691,3.36841 -1.23125,-0.82083 -2.37518,-2.1017 -3.4326,-3.84047 -1.04088,-1.72429 -1.81148,-3.52427 -2.31374,-5.40182 -0.48827,-1.89422 -0.82487,-4.02954 -1.01034,-6.40682 -0.12775,-1.59592 -0.17698,-4.02489 -0.14772,-7.28678 0,0 0.25063,-27.95019 0.25063,-27.95019 0,0 3.47921,2.068 3.47921,2.068 0,0 -0.22098,25.15376 -0.22098,25.15376 -0.0353,4.02044 0.0122,6.77614 0.14272,8.26649 0.20297,2.17003 0.65699,4.07445 1.36316,5.71471 0.70804,1.61546 1.59303,2.77268 2.65633,3.47053 1.06676,0.70016 2.07587,0.76801 3.02668,0.20066 0.95364,-0.59783 1.63329,-1.79901 2.03728,-3.60358 0.41794,-1.82668 0.64337,-4.71043 0.67595,-8.64861 0,0 0.20406,-24.67831 0.20406,-24.67831 0,0 3.62583,2.15515 3.62583,2.15515 0,0 -0.37466,46.37229 -0.37466,46.37229 0,0 -3.25092,-2.16207 -3.25092,-2.16207"
++         id="path7476"
++         d="m 258.21202,416.37883 c 0,0 -0.096,2.26144 -0.096,2.26144 0.95454,-1.4502 1.93663,-1.87534 2.94687,-1.27069 0.8891,0.53219 1.71186,1.72674 2.46789,3.5865 0,0 -1.80434,4.16015 -1.80434,4.16015 -0.55854,-1.34027 -1.10799,-2.17406 -1.64849,-2.50309 -0.37157,-0.22615 -0.69596,-0.26088 -0.97335,-0.10449 -0.27744,0.13698 -0.51645,0.48836 -0.7171,1.05404 -0.19204,0.55148 -0.35012,1.32418 -0.47428,2.31814 -0.11535,0.99924 -0.20109,2.22694 -0.25723,3.68339 0,0 -0.55745,13.1404 -0.55745,13.1404 0,0 -2.89641,-1.87402 -2.89641,-1.87402 0,0 1.11066,-26.19071 1.11066,-26.19071 0,0 2.89923,1.73894 2.89923,1.73894"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path3674"
+-         d="m 236.84818,436.9394 c 0,0 0.31458,-40.68866 0.31458,-40.68866 0,0 -3.27066,-1.97443 -3.27066,-1.97443 0,0 0.0485,-6.13244 0.0485,-6.13244 0,0 3.26986,1.94357 3.26986,1.94357 0,0 0.0384,-4.9718 0.0384,-4.9718 0.0242,-3.13718 0.17313,-5.39171 0.44675,-6.76504 0.37445,-1.8466 1.0157,-3.14492 1.92523,-3.8952 0.92597,-0.77365 2.21207,-0.69593 3.86256,0.23811 1.06731,0.60412 2.24898,1.54093 3.54628,2.81271 0,0 -0.62418,6.66996 -0.62418,6.66996 -0.78934,-0.75385 -1.53564,-1.33338 -2.23919,-1.73932 -1.15067,-0.66373 -1.96603,-0.6152 -2.44858,0.14318 -0.48194,0.75751 -0.73333,2.55103 -0.75467,5.38196 0,0 -0.0327,4.33654 -0.0327,4.33654 0,0 4.35398,2.58795 4.35398,2.58795 0,0 -0.0456,6.23957 -0.0456,6.23957 0,0 -4.35509,-2.62908 -4.35509,-2.62908 0,0 -0.30843,40.92114 -0.30843,40.92114 0,0 -3.72704,-2.47872 -3.72704,-2.47872"
++         id="path7478"
++         d="m 268.68987,428.64319 c 0,0 -0.86895,20.99894 -0.86895,20.99894 0,0 -3.0058,-1.94479 -3.0058,-1.94479 0,0 0.88041,-20.88084 0.88041,-20.88084 0,0 -1.94335,-1.18553 -1.94335,-1.18553 0,0 0.24005,-5.7852 0.24005,-5.7852 0,0 1.94372,1.16583 1.94372,1.16583 0,0 0.50232,-11.90806 0.50232,-11.90806 0.12679,-3.17002 0.49833,-5.34145 1.11549,-6.5165 0.61826,-1.17706 1.52819,-1.42867 2.73266,-0.75115 0.7324,0.41206 1.59932,1.39576 2.60215,2.95457 0,0 -0.233,5.54102 -0.233,5.54102 -0.58832,-1.31228 -1.12097,-2.10411 -1.59836,-2.37735 -0.54989,-0.31462 -0.95023,-0.14571 -1.2017,0.50598 -0.23303,0.66182 -0.39522,2.0335 -0.48667,4.11558 0,0 -0.42429,10.24046 -0.42429,10.24046 0,0 2.74973,1.64927 2.74973,1.64927 0,0 -0.24152,5.86326 -0.24152,5.86326 0,0 -2.76289,-1.68549 -2.76289,-1.68549"
+          inkscape:connector-curvature="0" />
+       <path
+-         id="path3676"
+-         d="m 246.46465,429.05307 c 0,0 3.81968,1.1922 3.81968,1.1922 0.19276,3.35392 0.7721,6.20708 1.74012,8.56243 0.98544,2.37207 2.3721,4.14723 4.16469,5.32459 1.81668,1.19318 3.17579,1.3205 4.07171,0.37548 0.89826,-0.97786 1.35491,-2.50699 1.36833,-4.58524 0.012,-1.86394 -0.37148,-3.58214 -1.14903,-5.15206 -0.54183,-1.08052 -1.89103,-2.87259 -4.03793,-5.36553 -2.87017,-3.33767 -4.84719,-5.88768 -5.94667,-7.66691 -1.08128,-1.7942 -1.8993,-3.82568 -2.45597,-6.09572 -0.54119,-2.28674 -0.80303,-4.59245 -0.78627,-6.91984 0.0153,-2.11796 0.25669,-3.93345 0.72469,-5.44816 0.48302,-1.53765 1.12853,-2.66509 1.93745,-3.38209 0.60808,-0.56866 1.4316,-0.86027 2.47213,-0.87408 1.05827,-0.0353 2.19002,0.30354 3.396,1.01839 1.82428,1.08147 3.42677,2.57943 4.80442,4.49544 1.39816,1.9329 2.42778,4.04798 3.08549,6.34283 0.65928,2.26923 1.10658,5.05898 1.34104,8.36831 0,0 -3.93498,-1.30965 -3.93498,-1.30965 -0.1613,-2.60573 -0.66572,-4.86818 -1.51169,-6.78511 -0.82908,-1.90296 -2.01211,-
 3.31622 -3.54556,-4.24034 -1.80214,-1.08596 -3.08681,-1.24118 -3.85989,-0.47117 -0.77146,0.76845 -1.16235,1.97686 -1.17391,3.62665 -0.007,1.05006 0.14407,2.09235 0.45452,3.12753 0.31055,1.06635 0.80269,2.09487 1.47721,3.08626 0.38829,0.54294 1.53561,1.95069 3.44979,4.23261 2.78949,3.29205 4.7444,5.79841 5.85003,7.50277 1.12436,1.68881 2.00304,3.68747 2.63416,5.99522 0.63237,2.3125 0.94024,4.88426 0.92265,7.71231 -0.0173,2.76736 -0.43134,5.12235 -1.24099,7.06139 -0.79291,1.91427 -1.93089,3.05649 -3.41056,3.42835 -1.47342,0.33983 -3.12755,-0.1039 -4.95957,-1.32524 -3.01245,-2.00831 -5.28496,-4.82452 -6.83171,-8.44857 -1.52498,-3.59708 -2.47979,-8.05614 -2.86938,-13.38305"
++         id="path7480"
++         d="m 282.34177,433.95542 c 0,0 -1.71638,2.6839 -1.71638,2.6839 -0.86347,-2.09418 -1.64851,-3.35394 -2.35592,-3.78356 -0.48009,-0.29154 -0.8744,-0.24473 -1.1833,0.13981 -0.29959,0.37 -0.44186,0.97364 -0.42698,1.8113 0.0145,0.81794 0.15802,1.58703 0.43072,2.30771 0.27333,0.74144 0.83759,1.86101 1.69454,3.3616 1.22784,2.17108 2.05909,3.98138 2.49024,5.42552 0.46013,1.4444 0.70781,3.10618 0.74244,4.98411 0.0499,2.7075 -0.35443,4.59578 -1.21137,5.66132 -0.87414,1.03039 -2.03028,1.07769 -3.4649,0.14731 -1.94263,-1.25984 -3.57478,-4.16196 -4.90072,-8.69458 0,0 1.96723,-1.72943 1.96723,-1.72943 0.86759,2.66246 1.77547,4.29951 2.72371,4.90584 0.53649,0.34304 0.96004,0.31621 1.27016,-0.0812 0.31984,-0.39178 0.47119,-1.07004 0.45383,-2.03432 -0.0152,-0.84353 -0.16454,-1.61277 -0.44778,-2.30734 -0.1368,-0.34403 -0.37432,-0.85044 -0.71229,-1.51877 -0.33757,-0.66749 -0.7937,-1.49777 -1.36782,-2.48995 -1.01224,-1.79695 -1.71772,-3.36927 -2.11873,-4.7203 -0.4014,-1.40844 -0.6165,-
 2.95548 -0.64576,-4.64225 -0.044,-2.5386 0.35547,-4.37575 1.20006,-5.51489 0.84671,-1.14196 1.94916,-1.30825 3.31041,-0.49392 1.50935,0.90299 2.93246,3.09378 4.26861,6.58212"
+          inkscape:connector-curvature="0" />
++    </g>
++    <g
++       transform="translate(1.2096774,-17.209677)"
++       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Courier New;-inkscape-font-specification:Sans"
++       id="text6884">
+       <path
+-         id="path3678"
+-         d="m 267.46509,458.46409 c 0,0 10.16276,-64.44628 10.16276,-64.44628 0,0 3.35985,1.90154 3.35985,1.90154 0,0 -10.22211,64.7453 -10.22211,64.7453 0,0 -3.3005,-2.20056 -3.3005,-2.20056"
+-         inkscape:connector-curvature="0" />
++         inkscape:connector-curvature="0"
++         d="m 405.68539,517.2315 c 0,0 -0.0193,16.2617 -0.0193,16.2617 0,0 3.17768,-2.015 3.17768,-2.015 0.42104,-0.26699 0.71912,-0.28408 0.89461,-0.0515 0.17538,0.20367 0.26245,0.57777 0.26128,1.12234 -0.001,0.51582 -0.0901,1.00179 -0.26671,1.45807 -0.1768,0.45653 -0.47536,0.81943 -0.89606,1.08884 0,0 -7.2615,4.65021 -7.2615,4.65021 -0.4181,0.26775 -0.71809,0.2856 -0.89962,0.053 -0.18168,-0.23276 -0.27256,-0.61101 -0.27256,-1.13472 0,-0.55292 0.0909,-1.0473 0.27272,-1.48298 0.18171,-0.4645 0.48198,-0.82951 0.90042,-1.09484 0,0 2.35294,-1.49203 2.35294,-1.49203 0,0 0.0349,-43.95921 0.0349,-43.95921 0,0 -2.3762,1.32682 -2.3762,1.32682 -0.4226,0.23601 -0.72583,0.24206 -0.90932,0.0178 -0.18363,-0.25407 -0.2755,-0.66358 -0.2755,-1.22844 0,-0.56489 0.0919,-1.06185 0.27567,-1.49066 0.18367,-0.45823 0.48718,-0.80413 0.91014,-1.03765 0,0 7.3447,-4.05398 7.3447,-4.05398 0.42546,-0.23477 0.72666,-0.22523 0.90398,0.0279 0.17721,0.22388 0.26518,0.61389 0.26399,1.17006 -0.001,0.55615 -
 0.0911,1.05925 -0.26963,1.50941 -0.1786,0.42125 -0.48025,0.7505 -0.90536,0.98782 0,0 -3.20861,1.79162 -3.20861,1.79162 0,0 -0.027,22.7262 -0.027,22.7262 0,0 11.85347,-29.32986 11.85347,-29.32986 0,0 -1.84356,1.0294 -1.84356,1.0294 -0.4158,0.23222 -0.71071,0.23758 -0.8844,0.0157 -0.17376,-0.25093 -0.25981,-0.65252 -0.25806,-1.20465 0.002,-0.55216 0.0906,-1.03662 0.2666,-1.4532 0.17596,-0.44532 0.4722,-0.78288 0.88832,-1.01263 0,0 4.9265,-2.71923 4.9265,-2.71923 0.39516,-0.21804 0.67722,-0.2015 0.84652,0.049 0.16926,0.22176 0.25255,0.60547 0.24997,1.15114 -0.003,0.54567 -0.0901,1.03822 -0.26231,1.47778 -0.17228,0.41121 -0.45565,0.72699 -0.8505,0.94742 0,0 -0.67254,0.37553 -0.67254,0.37553 0,0 -9.34163,23.22298 -9.34163,23.22298 1.39299,0.391 2.54214,1.22247 3.45037,2.49219 0.90456,1.26471 1.76961,3.30318 2.59512,6.10986 0.47018,1.56163 1.32542,5.36141 2.55962,11.3683 0,0 2.05678,-1.30423 2.05678,-1.30423 0.40304,-0.25557 0.68792,-0.26799 0.85497,-0.0375 0.16702,0.20219 0.24918
 ,0.57016 0.24656,1.10393 -0.003,0.5056 -0.0889,0.98066 -0.25892,1.42533 -0.17022,0.44492 -0.45652,0.79627 -0.85925,1.05417 0,0 -3.17718,2.03464 -3.17718,2.03464 -1.70416,-9.14138 -3.15817,-14.85521 -4.35315,-17.0766 -1.2016,-2.2625 -2.71697,-3.45967 -4.55059,-3.58265 0,0 -3.48846,8.71251 -3.48846,8.71251"
++         id="path6891" />
+       <path
+-         id="path3680"
+-         d="m 287.73074,470.77961 c 0,0 -3.98413,-2.64971 -3.98413,-2.64971 0,0 0.36657,-69.26132 0.36657,-69.26132 0,0 4.28286,2.431 4.28286,2.431 0,0 -0.12574,24.80354 -0.12574,24.80354 1.84841,-3.43804 4.20286,-4.3171 7.07399,-2.61515 1.5995,0.94822 3.11282,2.48894 4.53901,4.62548 1.44866,2.12297 2.63509,4.62828 3.55675,7.51533 0.94101,2.87289 1.67339,6.11301 2.19582,9.71903 0.52331,3.61258 0.77764,7.29172 0.76223,11.03361 -0.0367,8.8888 -1.19889,15.02735 -3.47692,18.39523 -2.26525,3.34891 -4.9514,3.97742 -8.04813,1.91293 -3.05429,-2.0362 -5.42013,-6.12345 -7.11007,-12.2502 0,0 -0.0322,6.34023 -0.0322,6.34023 m 0.0826,-25.6991 c -0.0308,6.05748 0.36263,10.70405 1.18198,13.94323 1.3439,5.31484 3.18967,8.7503 5.54452,10.29694 1.92772,1.26611 3.60983,0.72174 5.04245,-1.64447 1.43781,-2.407 2.17299,-6.89882 2.20167,-13.46572 0.0293,-6.72399 -0.63702,-12.10528 -1.99483,-16.13506 -1.33586,-4.00333 -2.96003,-6.57643 -4.86901,-7.72687 -1.91517,-1.15407 -3.57055,-0.50907 -4.97003
 ,1.92406 -1.39445,2.39298 -2.10547,6.6592 -2.13675,12.80789"
+-         inkscape:connector-curvature="0" />
++         inkscape:connector-curvature="0"
++         d="m 443.47158,496.16573 c 0,0 -15.92023,9.70195 -15.92023,9.70195 0.25261,4.3947 1.09424,7.53188 2.51855,9.41247 1.42789,1.83288 3.19316,2.07344 5.2907,0.7382 1.15976,-0.73828 2.37336,-1.93312 3.64044,-3.58163 1.2617,-1.64151 2.29067,-3.40363 3.08952,-5.2883 0.23317,-0.55259 0.43412,-0.88169 0.60291,-0.98752 0.19273,-0.12084 0.35959,-0.0498 0.50059,0.2133 0.14113,0.23564 0.20944,0.58439 0.20501,1.04631 -0.004,0.46186 -0.1049,0.97075 -0.30138,1.52697 -0.59063,1.72481 -1.63435,3.65941 -3.13604,5.80979 -1.49675,2.12595 -3.03903,3.70146 -4.62822,4.72308 -2.68176,1.72399 -4.92977,1.22514 -6.73564,-1.52638 -1.80812,-2.81062 -2.70176,-7.0448 -2.66946,-12.69552 0.0295,-5.15711 0.92218,-10.10229 2.67206,-14.81044 1.75462,-4.69402 3.89166,-7.75636 6.39992,-9.19327 2.55976,-1.46633 4.63179,-0.79081 6.22479,2.00024 1.58113,2.74246 2.3269,7.04454 2.24648,12.91075 m -1.50759,-2.55533 c -0.26805,-3.63428 -1.04266,-6.26807 -2.32893,-7.90085 -1.28159,-1.6495 -2.8345,-1.95112 -4.66
 221,-0.89235 -1.83997,1.06596 -3.44162,3.19609 -4.79954,6.39411 -1.36305,3.21016 -2.22473,6.90224 -2.58104,11.06526 0,0 14.37172,-8.66617 14.37172,-8.66617"
++         id="path6893" />
+       <path
+-         id="path3682"
+-         d="m 322.12463,485.58433 c 0,0 0.65936,8.40758 0.65936,8.40758 -1.33673,-0.35442 -2.52804,-0.88064 -3.57528,-1.5781 -1.70425,-1.13503 -3.01872,-2.52454 -3.94739,-4.16917 -0.92628,-1.6404 -1.57435,-3.40805 -1.9457,-5.30454 -0.37079,-1.92713 -0.54592,-5.5546 -0.52573,-10.88197 0,0 0.114,-30.08386 0.114,-30.08386 0,0 -3.36894,-2.03377 -3.36894,-2.03377 0,0 0.0272,-6.84805 0.0272,-6.84805 0,0 3.36786,2.00182 3.36786,2.00182 0,0 0.0489,-12.91135 0.0489,-12.91135 0,0 4.63253,-2.66881 4.63253,-2.66881 0,0 -0.065,18.3241 -0.065,18.3241 0,0 4.72675,2.80952 4.72675,2.80952 0,0 -0.023,6.96866 -0.023,6.96866 0,0 -4.72829,-2.85438 -4.72829,-2.85438 0,0 -0.10923,30.77205 -0.10923,30.77205 -0.009,2.54809 0.0632,4.23726 0.21665,5.06728 0.17091,0.8418 0.43796,1.59732 0.80137,2.26677 0.38115,0.6815 0.92028,1.25067 1.61806,1.70755 0.52419,0.34326 1.21588,0.67931 2.07599,1.00867"
+-         inkscape:connector-curvature="0" />
++         inkscape:connector-curvature="0"
++         d="m 455.58667,470.66722 c 0,0 -0.10498,8.56019 -0.10498,8.56019 1.93651,-5.08183 3.37081,-8.44336 4.30858,-10.1013 0.94661,-1.68612 1.80908,-2.7511 2.58784,-3.19777 0.84383,-0.48395 1.61379,-0.25336 2.31017,0.68823 0.70553,0.90558 1.05243,1.70098 1.04247,2.38832 -0.007,0.50226 -0.0857,0.96734 -0.23511,1.3954 -0.13804,0.39541 -0.31278,0.65513 -0.52432,0.77918 -0.11142,0.0654 -0.20559,0.0813 -0.28249,0.0476 -0.0766,-0.0601 -0.21729,-0.27954 -0.42229,-0.65871 -0.37824,-0.6994 -0.71083,-1.13744 -0.99754,-1.31325 -0.2871,-0.17598 -0.57132,-0.18255 -0.85261,-0.0195 -0.61996,0.35957 -1.37941,1.38224 -2.27917,3.07105 -0.89096,1.68702 -2.45801,5.46216 -4.70984,11.34948 0,0 -0.22596,18.42612 -0.22596,18.42612 0,0 6.33459,-4.01684 6.33459,-4.01684 0.34746,-0.22033 0.59161,-0.21895 0.7327,0.004 0.14133,0.1965 0.2085,0.54399 0.2016,1.04251 -0.007,0.47221 -0.0847,0.91205 -0.23427,1.31965 -0.14973,0.40781 -0.39805,0.72284 -0.74529,0.94521 0,0 -11.32013,7.24932 -11.32013,7.24932 
 -0.35123,0.22493 -0.6016,0.23885 -0.75084,0.0414 -0.14907,-0.22443 -0.22099,-0.57831 -0.21571,-1.0616 0.005,-0.45652 0.0796,-0.87735 0.22375,-1.26235 0.15613,-0.41912 0.41594,-0.74392 0.77913,-0.97432 0,0 3.54132,-2.24639 3.54132,-2.24639 0,0 0.33638,-28.17047 0.33638,-28.17047 0,0 -2.71509,1.57907 -2.71509,1.57907 -0.35236,0.20495 -0.60335,0.18908 -0.75268,-0.0481 -0.14946,-0.2372 -0.22135,-0.61416 -0.2156,-1.13086 0.005,-0.48951 0.0807,-0.93834 0.22572,-1.34628 0.15673,-0.41449 0.41745,-0.72656 0.78182,-0.93616 0,0 4.17785,-2.40283 4.17785,-2.40283"
++         id="path6895" />
+       <path
+-         id="path3684"
+-         d="m 326.68371,496.68588 c 0,0 0.16352,-53.31935 0.16352,-53.31935 0,0 4.33405,2.57612 4.33405,2.57612 0,0 -0.0231,8.11168 -0.0231,8.11168 1.12479,-3.12783 2.15869,-5.02087 3.10122,-5.67423 0.96285,-0.64401 2.01732,-0.62746 3.16426,0.0524 1.66273,0.98571 3.35799,2.97819 5.08643,5.98483 0,0 -1.73463,7.50163 -1.73463,7.50163 -1.20956,-2.06252 -2.41678,-3.45673 -3.62177,-4.18598 -1.07402,-0.64988 -2.03784,-0.62407 -2.89238,0.075 -0.85268,0.66393 -1.46157,1.94671 -1.82782,3.84834 -0.54904,2.90043 -0.82874,6.26858 -0.83955,10.10792 0,0 -0.0793,28.13461 -0.0793,28.13461 0,0 -4.83103,-3.21295 -4.83103,-3.21295"
+-         inkscape:connector-curvature="0" />
++         inkscape:connector-curvature="0"
++         d="m 473.30415,460.47729 c 0,0 -0.0804,4.97133 -0.0804,4.97133 0.98569,-2.87136 1.86574,-4.96674 2.64065,-6.28932 0.77288,-1.31909 1.63191,-2.24853 2.57593,-2.78936 1.01432,-0.58102 1.92593,-0.57975 2.7356,4.3e-4 0.57165,0.43409 1.07517,1.41355 1.51085,2.93619 0.44533,1.487 0.6504,3.16172 0.61612,5.02597 0,0 -0.37098,20.16552 -0.37098,20.16552 0,0 1.09632,-0.69519 1.09632,-0.69519 0.30795,-0.19527 0.52558,-0.18379 0.65312,0.0343 0.1279,0.19274 0.18732,0.5284 0.17832,1.00704 -0.009,0.4534 -0.0822,0.87365 -0.22092,1.26091 -0.13883,0.38745 -0.362,0.67967 -0.66977,0.87676 0,0 -3.48879,2.2342 -3.48879,2.2342 -0.32291,0.20678 -0.54961,0.20133 -0.67985,-0.0168 -0.13035,-0.21825 -0.19152,-0.55628 -0.18341,-1.01409 0.009,-0.48331 0.0832,-0.90811 0.22395,-1.27426 0.14113,-0.39138 0.37338,-0.68956 0.69648,-0.89444 0,0 1.09126,-0.69198 1.09126,-0.69198 0,0 0.35635,-19.67714 0.35635,-19.67714 0.0412,-2.27809 -0.26274,-4.00074 -0.9136,-5.16921 -0.65266,-1.19813 -1.55322,-1.46656
  -2.70395,-0.79997 -0.87978,0.50971 -1.6529,1.39411 -2.31814,2.65394 -0.66627,1.2367 -1.63439,3.93929 -2.90635,8.11592 0,0 -0.33083,20.46711 -0.33083,20.46711 0,0 1.52554,-0.96736 1.52554,-0.96736 0.32,-0.20291 0.54652,-0.19417 0.67982,0.026 0.13361,0.19441 0.19632,0.5352 0.1882,1.02244 -0.008,0.46152 -0.0833,0.89021 -0.22665,1.28621 -0.14347,0.39619 -0.37497,0.69664 -0.69477,0.90144 0,0 -4.42215,2.83191 -4.42215,2.83191 -0.3258,0.20863 -0.55714,0.20298 -0.6938,-0.0174 -0.13675,-0.22051 -0.20159,-0.56416 -0.19444,-1.03091 0.008,-0.49277 0.0843,-0.92686 0.23029,-1.30217 0.1463,-0.40101 0.38259,-0.70494 0.70859,-0.91166 0,0 1.54286,-0.97835 1.54286,-0.97835 0,0 0.43113,-27.17649 0.43113,-27.17649 0,0 -1.15824,0.67362 -1.15824,0.67362 -0.32722,0.19033 -0.55954,0.16948 -0.69672,-0.0629 -0.13729,-0.23247 -0.20212,-0.59828 -0.19443,-1.09741 0.007,-0.47286 0.0845,-0.90805 0.23156,-1.30535 0.14701,-0.39707 0.38436,-0.6898 0.71179,-0.87815 0,0 2.52342,-1.45131 2.52342,-1.45131"
++         id="path6897" />
+       <path
+-         id="path3686"
+-         d="m 346.63844,509.95707 c 0,0 0.0968,-47.55946 0.0968,-47.55946 0,0 -4.43131,-2.6751 -4.43131,-2.6751 0,0 0.0162,-7.15908 0.0162,-7.15908 0,0 4.42975,2.633 4.42975,2.633 0,0 0.0118,-5.80848 0.0118,-5.80848 0.007,-3.66486 0.19039,-6.28429 0.54899,-7.86025 0.49107,-2.11858 1.34725,-3.56796 2.57091,-4.34826 1.24623,-0.8062 2.9874,-0.57829 5.2303,0.69102 1.45137,0.82149 3.06136,2.04536 4.83196,3.67489 0,0 -0.79224,7.74699 -0.79224,7.74699 -1.07705,-0.96968 -2.09389,-1.73012 -3.05099,-2.28234 -1.56464,-0.90254 -2.66858,-0.93449 -3.31577,-0.0995 -0.64623,0.83385 -0.9719,2.90502 -0.97777,6.21534 0,0 -0.009,5.07119 -0.009,5.07119 0,0 5.92043,3.51903 5.92043,3.51903 0,0 -0.0107,7.30549 -0.0107,7.30549 0,0 -5.92257,-3.57534 -5.92257,-3.57534 0,0 -0.0849,47.87735 -0.0849,47.87735 0,0 -5.0619,-3.36649 -5.0619,-3.36649"
+-         inkscape:connector-curvature="0" />
++         inkscape:connector-curvature="0"
++         d="m 502.73274,460.0514 c 0,0 -12.58078,7.66685 -12.58078,7.66685 0.13943,3.95275 0.75486,6.81973 1.84191,8.60127 1.09127,1.74028 2.46782,2.07625 4.12588,1.02077 0.91736,-0.58398 1.88324,-1.57454 2.89733,-2.9694 1.01026,-1.38958 1.83995,-2.9037 2.49094,-4.54374 0.19007,-0.48101 0.352,-0.76339 0.48584,-0.84731 0.15283,-0.0958 0.2829,-0.0209 0.39022,0.22483 0.10778,0.2211 0.15695,0.53905 0.14755,0.95388 -0.009,0.41479 -0.0948,0.86546 -0.25619,1.35225 -0.48577,1.51058 -1.32969,3.17888 -2.53523,5.00941 -1.20067,1.80791 -2.42926,3.11745 -3.68662,3.92576 -2.11999,1.36285 -3.86995,0.76072 -5.24366,-1.82965 -1.37343,-2.64104 -2.01438,-6.49315 -1.91501,-11.55003 0.0906,-4.61389 0.85108,-8.9821 2.27681,-13.08506 1.42996,-4.0921 3.13808,-6.70212 5.11668,-7.83561 2.02129,-1.15786 3.63504,-0.42605 4.84758,2.17494 1.20485,2.55883 1.735,6.46775 1.59675,11.73084 m -1.15024,-2.39108 c -0.1636,-3.27931 -0.73716,-5.69144 -1.72424,-7.23625 -0.98254,-1.55853 -2.19418,-1.92464 -3.63745,
 -1.08857 -1.45189,0.84113 -2.73048,2.64931 -3.83206,5.42777 -1.10528,2.78784 -1.82554,6.03803 -2.15785,9.74209 0,0 11.3516,-6.84504 11.3516,-6.84504"
++         id="path6899" />
+       <path
+-         id="path3688"
+-         d="m 359.60073,501.90418 c 0,0 5.20059,1.86777 5.20059,1.86777 0.29001,3.96114 1.10193,7.38322 2.43911,10.27061 1.36176,2.91073 3.2661,5.17238 5.72054,6.78444 2.48967,1.63519 4.34728,1.95881 5.56379,0.96109 1.21993,-1.0365 1.83154,-2.77869 1.83229,-5.22389 6.2e-4,-2.19296 -0.5384,-4.26389 -1.61481,-6.20909 -0.7497,-1.33918 -2.60804,-3.61528 -5.55946,-6.8122 -3.94075,-4.27425 -6.65395,-7.50944 -8.16465,-9.73106 -1.48522,-2.23573 -2.61386,-4.7171 -3.38893,-7.44614 -0.75395,-2.74593 -1.12852,-5.48045 -1.12491,-8.2074 0.003,-2.48146 0.31617,-4.58205 0.93929,-6.30404 0.64345,-1.7475 1.51123,-2.99566 2.60481,-3.74404 0.82208,-0.59757 1.93976,-0.84564 3.35554,-0.74295 1.44048,0.0796 2.98492,0.60687 4.63457,1.58472 2.49729,1.48044 4.69744,3.42626 6.59564,5.83924 1.92772,2.43694 3.35406,5.04673 4.27363,7.82559 0.92183,2.74989 1.55812,6.08842 1.90744,10.01415 0,0 -5.39591,-2.01583 -5.39591,-2.01583 -0.24253,-3.08522 -0.95109,-5.80694 -2.12313,-8.16184 -1.14834,-2.33544 -2.77
 51,-4.13563 -4.87465,-5.40091 -2.46541,-1.48565 -4.2164,-1.81727 -5.26239,-1.00324 -1.04343,0.8121 -1.56519,2.18465 -1.56724,4.11944 -10e-4,1.23148 0.21335,2.47259 0.64434,3.72428 0.43146,1.28852 1.10985,2.55443 2.03645,3.7988 0.53331,0.68393 2.10812,2.47474 4.73703,5.38635 3.83534,4.20888 6.52812,7.39657 8.05468,9.53851 1.55295,2.12718 2.77297,4.59004 3.65706,7.38727 0.88613,2.80397 1.33003,5.87348 1.33006,9.20426 -3e-5,3.25947 -0.54743,5.98195 -1.64026,8.16269 -1.06972,2.15296 -2.61798,3.35081 -4.63932,3.59644 -2.01164,0.20856 -4.27524,-0.52848 -6.78627,-2.2025 -4.12399,-2.74933 -7.24172,-6.34882 -9.37583,-10.80056 -2.10254,-4.4137 -3.43626,-9.76409 -4.0091,-16.05996"
+-         inkscape:connector-curvature="0" />
++         inkscape:connector-curvature="0"
++         d="m 514.91047,422.62215 c 0,0 -1.06434,42.27288 -1.06434,42.27288 0,0 4.45362,-2.8241 4.45362,-2.8241 0.2761,-0.17507 0.46813,-0.15759 0.57629,0.0523 0.10868,0.18619 0.15712,0.50328 0.14534,0.95133 -0.0112,0.42443 -0.0782,0.81493 -0.20113,1.17164 -0.12299,0.35687 -0.32235,0.62363 -0.59831,0.80035 0,0 -10.15763,6.50487 -10.15763,6.50487 -0.27917,0.17878 -0.476,0.16246 -0.5903,-0.0494 -0.11437,-0.21191 -0.16642,-0.53506 -0.15609,-0.96944 0.0109,-0.45857 0.0801,-0.85922 0.20776,-1.20182 0.12814,-0.36656 0.33197,-0.63844 0.61129,-0.81556 0,0 4.56188,-2.89274 4.56188,-2.89274 0,0 0.97884,-39.26779 0.97884,-39.26779 0,0 -3.35907,1.85407 -3.35907,1.85407 -0.27977,0.15447 -0.48159,0.1208 -0.60529,-0.10124 -0.11445,-0.22726 -0.16609,-0.57399 -0.15489,-1.04015 0.0106,-0.44163 0.0802,-0.843 0.20889,-1.204 0.12859,-0.36073 0.33761,-0.62003 0.62686,-0.77784 0,0 4.51628,-2.46343 4.51628,-2.46343"
++         id="path6901" />
+     </g>
+   </g>
+   <g
+-     style="display:inline"
+-     inkscape:groupmode="layer"
++     inkscape:label="GenericRootfs"
+      id="layer9"
+-     inkscape:label="GenericRootfs">
++     inkscape:groupmode="layer"
++     style="display:none">
+     <g
+-       inkscape:corner7="0.22429094 : -0.062018081 : 0.53531208 : 1"
+-       inkscape:corner0="0.4922944 : 0.05733945 : 0 : 1"
+-       inkscape:perspectiveID="#perspective3054-6"
+-       id="g4111-4"
++       sodipodi:type="inkscape:box3d"
+        style="fill:#aad3d3;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+-       sodipodi:type="inkscape:box3d">
++       id="g4111-4"
++       inkscape:perspectiveID="#perspective3054-6"
++       inkscape:corner0="0.4922944 : 0.05733945 : 0 : 1"
++       inkscape:corner7="0.22429094 : -0.062018081 : 0.53531208 : 1">
+       <path
+-         d="M 133.79121,312.6368 252.25105,379.121 540.75728,268.41872 415.43828,234.11946 z"
+-         inkscape:box3dsidetype="13"
+-         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4121-8"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="13"
++         d="M 133.79121,312.6368 252.25105,379.121 540.75728,268.41872 415.43828,234.11946 z" />
+       <path
+-         d="m 133.79121,232.65423 0,79.98257 281.64707,-78.51734 0,-58.86622 z"
+-         inkscape:box3dsidetype="6"
+-         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4113-3"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="6"
++         d="m 133.79121,232.65423 0,79.98257 281.64707,-78.51734 0,-58.86622 z" />
+       <path
+-         d="m 415.43828,175.25324 125.319,25.33341 0,67.83207 -125.319,-34.29926 z"
+-         inkscape:box3dsidetype="11"
+-         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4123-4"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="11"
++         d="m 415.43828,175.25324 125.319,25.33341 0,67.83207 -125.319,-34.29926 z" />
+       <path
+-         d="m 133.79121,232.65423 118.45984,48.97562 288.50623,-81.0432 -125.319,-25.33341 z"
+-         inkscape:box3dsidetype="5"
+-         style="fill:#00b9f5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4115-0"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#00b9f5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="5"
++         d="m 133.79121,232.65423 118.45984,48.97562 288.50623,-81.0432 -125.319,-25.33341 z" />
+       <path
+-         d="m 252.25105,281.62985 0,97.49115 288.50623,-110.70228 0,-67.83207 z"
+-         inkscape:box3dsidetype="14"
+-         style="fill:#008bb8;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4119-1"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#008bb8;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="14"
++         d="m 252.25105,281.62985 0,97.49115 288.50623,-110.70228 0,-67.83207 z" />
+       <path
+-         d="m 133.79121,232.65423 118.45984,48.97562 0,97.49115 -118.45984,-66.4842 z"
+-         inkscape:box3dsidetype="3"
+-         style="fill:#00ade5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4117-3"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#00ade5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="3"
++         d="m 133.79121,232.65423 118.45984,48.97562 0,97.49115 -118.45984,-66.4842 z" />
+     </g>
+     <g
+-       transform="matrix(0.61031919,0,0,0.61031919,129.70332,83.586066)"
++       id="text9988-4"
+        style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
+-       id="text9988-4">
++       transform="matrix(0.61031919,0,0,0.61031919,129.70332,83.586066)">
+       <path
+-         inkscape:connector-curvature="0"
++         id="path9995-1"
+          d="m 188.59801,239.37973 c 0,0 10.80142,4.18005 10.80142,4.18005 -0.76616,-3.05917 -0.73057,-5.17362 0.0851,-6.39339 0.84106,-1.21417 2.36138,-2.05944 4.56041,-2.54399 3.36438,-0.74121 8.67469,-0.70434 15.98654,0.11115 4.98595,0.55071 8.9953,1.36554 12.03184,2.45026 2.59214,0.92602 4.30231,1.84095 5.11951,2.74446 0.79707,0.88127 0.47618,1.49409 -0.97048,1.83415 -1.28207,0.30141 -3.77637,0.20361 -7.46885,-0.2925 -3.67698,-0.49394 -6.07112,-0.61056 -7.19576,-0.35091 -1.46934,0.3393 -2.09539,1.44179 -1.87218,3.32952 0.26187,1.91063 1.40513,4.65856 3.4729,8.3019 0,0 30.03524,11.62336 30.03524,11.62336 0,0 15.65393,-4.11957 15.65393,-4.11957 2.59381,-0.68257 5.41952,-0.79884 8.49618,-0.35048 3.05257,0.41529 6.19038,1.21068 9.42837,2.39338 3.19708,1.16781 5.29058,2.28918 6.26454,3.36278 0.94452,1.04629 0.1181,1.93489 -2.49634,2.66251 0,0 -34.13326,9.49952 -34.13326,9.49952 -2.83088,0.78785 -5.87094,0.94375 -9.09895,0.46537 -3.24862,-0.51643 -6.4804,-1.44072 -9.68065,-2.7
 6446 -3.10024,-1.28236 -4.99727,-2.47227 -5.70886,-3.572 -0.73485,-1.12824 0.30694,-2.05895 3.10831,-2.79621 0,0 6.8587,-1.80497 6.8587,-1.80497 0,0 -46.80164,-18.64214 -46.80164,-18.64214 0,0 -4.03596,0.93784 -4.03596,0.93784 -2.70867,0.62944 -5.46556,0.75303 -8.25329,0.36912 -2.79889,-0.41446 -5.49653,-1.1558 -8.08261,-2.21792 -2.50769,-1.02993 -3.9575,-1.9862 -4.36329,-2.87045 -0.42087,-0.90793 0.71271,-1.65692 3.38783,-2.24995 0,0 14.87133,-3.29643 14.87133,-3.29643"
+-         id="path9995-1" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path9997-2"
+          d="m 318.69753,233.65347 c 7.81088,2.41917 14.56844,5.07064 20.25204,7.96924 5.7885,2.94264 9.1431,5.72809 9.96615,8.34264 0.79838,2.64066 -1.00301,4.6031 -5.45216,5.85289 -4.46386,1.25393 -11.15148,1.66904 -20.00626,1.23659 -8.898,-0.4557 -18.38088,-1.74499 -28.34354,-3.84206 -9.79574,-2.06193 -18.6433,-4.48749 -26.52662,-7.25379 -7.82927,-2.74735 -14.20756,-5.64394 -19.17016,-8.67619 -4.89257,-2.97384 -7.23458,-5.57586 -7.12327,-7.82898 0.14059,-2.21435 2.37339,-3.78147 6.67139,-4.72848 4.29012,-0.94517 10.38008,-1.19953 18.3213,-0.76824 7.94217,0.40759 16.43086,1.49423 25.55556,3.2805 9.21274,1.79636 17.82485,3.92867 25.85557,6.41588 m -9.12553,2.31728 c -6.4118,-2.03184 -13.27849,-3.60974 -20.62972,-4.75217 -9.83924,-1.51489 -17.12877,-1.70611 -22.00563,-0.58005 -4.33293,1.00051 -5.30614,2.74024 -2.84855,5.25406 2.51376,2.57126 7.47645,5.13939 14.96669,7.70184 6.2706,2.14521 13.7825,3.8011 22.51055,4.94615 8.74133,1.13263 15.33249,1.12147 19.68005,-0.0328 4.336
 31,-1.15122 5.04492,-3.04688 2.20597,-5.65133 -2.84427,-2.56876 -7.48377,-4.85895 -13.87936,-6.8857"
+-         id="path9997-2" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path9999-5"
+          d="m 370.18311,220.89138 c 7.87167,2.1472 14.79353,4.49711 20.75003,7.06196 6.05519,2.59988 9.78662,5.05673 11.1054,7.35908 1.29936,2.32214 0.0231,4.04525 -3.87749,5.14096 -3.91087,1.09859 -10.07589,1.46092 -18.44725,1.07985 -8.41856,-0.40157 -17.5687,-1.53459 -27.35306,-3.37787 -9.6307,-1.81431 -18.46587,-3.95046 -26.48622,-6.3895 -7.97675,-2.42578 -14.6373,-4.98669 -20.00949,-7.67132 -5.30105,-2.63705 -8.1214,-4.94735 -8.55222,-6.94998 -0.39449,-1.97048 1.33688,-3.36597 5.164,-4.20923 3.82211,-0.84206 9.50591,-1.06776 17.09603,-0.68142 7.58396,0.3651 15.83663,1.33558 24.84202,2.92873 9.08222,1.6007 17.66471,3.49833 25.76825,5.70874 m -8.07385,2.05333 c -6.47949,-1.80327 -13.29219,-3.20538 -20.46816,-4.22173 -9.60797,-1.34865 -16.51634,-1.52019 -20.848,-0.52003 -3.84631,0.88815 -4.35747,2.43275 -1.46283,4.66292 2.95687,2.27808 8.20823,4.55087 15.82272,6.81614 6.36681,1.89411 13.7807,3.35532 22.21491,4.3658 8.43901,0.99896 14.61124,0.99061 18.43477,-0.0245 3.81601,
 -1.01309 4.07248,-2.68403 0.84721,-4.98329 -3.22688,-2.27084 -8.08432,-4.29842 -14.54062,-6.09528"
+-         id="path9999-5" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10001-8"
+          d="m 369.35032,208.21091 c 0,0 40.18029,10.31554 40.18029,10.31554 4.54941,1.16799 7.90985,1.85733 10.04607,2.05851 3.35439,0.31973 6.36087,0.12804 8.99839,-0.57223 3.80233,-1.00946 4.92338,-2.51808 3.41338,-4.50415 -0.59265,-0.75666 -0.54527,-1.22149 0.13796,-1.39847 0.94028,-0.24357 2.78416,-0.20123 5.53983,0.12736 2.78771,0.32353 5.69044,0.85075 8.71788,1.58481 2.83553,0.68756 4.92392,1.38477 6.25775,2.09178 2.24812,1.1379 3.13828,2.53669 2.64599,4.20684 -0.55053,1.67203 -2.02066,2.85282 -4.41529,3.52548 -4.66368,1.31006 -11.25115,1.51999 -19.66772,0.62294 -8.39599,-0.91541 -16.83231,-2.48591 -25.2301,-4.68294 0,0 -44.30445,-11.59087 -44.30445,-11.59087 0,0 -2.80728,0.65233 -2.80728,0.65233 -1.88196,0.43734 -4.10034,0.52199 -6.64393,0.25302 -2.57229,-0.29043 -5.25643,-0.80912 -8.04218,-1.5525 -2.70522,-0.72188 -4.48808,-1.39261 -5.35902,-2.01314 -0.89888,-0.63794 -0.40471,-1.16405 1.47199,-1.58009 0,0 2.79988,-0.62063 2.79988,-0.62063 0,0 -16.0131,-4.18933 -16.0
 131,-4.18933 -4.15526,-1.08708 -6.72467,-1.9241 -7.73865,-2.51744 -1.03741,-0.60902 -0.98184,-1.03024 0.15945,-1.26617 1.11384,-0.23015 2.89308,-0.19004 5.34585,0.12065 2.43006,0.29236 5.71138,0.96864 9.87337,2.03715 0,0 16.03516,4.11673 16.03516,4.11673 0,0 13.81074,-3.06134 13.81074,-3.06134 1.7648,-0.39115 3.87091,-0.45617 6.32889,-0.19576 2.42845,0.24118 5.0259,0.70062 7.80255,1.38148 2.73549,0.67079 4.62059,1.3128 5.64569,1.9254 0.99363,0.59583 0.6121,1.09974 -1.15489,1.51031 0,0 -13.8345,3.21473 -13.8345,3.21473"
+-         id="path10001-8" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10003-9"
+          d="m 414.19529,197.79027 c 0,0 49.09089,11.29188 49.09089,11.29188 0,0 9.51455,-2.5039 9.51455,-2.5039 1.5833,-0.41664 3.71061,-0.48612 6.39269,-0.20922 2.64034,0.25642 5.58449,0.74526 8.845,1.46995 3.21279,0.71412 5.53419,1.39784 6.95389,2.0505 1.37743,0.63488 1.28518,1.1721 -0.28855,1.61008 0,0 -20.36165,5.66678 -20.36165,5.66678 -1.67346,0.46574 -3.90405,0.55615 -6.68041,0.27017 -2.81866,-0.30882 -5.88811,-0.86047 -9.19551,-1.6511 -3.21122,-0.76763 -5.44315,-1.48078 -6.70743,-2.1405 -1.30329,-0.67814 -1.1083,-1.23745 0.57268,-1.67985 0,0 4.12495,-1.08555 4.12495,-1.08555 0,0 -49.13122,-11.49283 -49.13122,-11.49283 0,0 -3.32684,0.77306 -3.32684,0.77306 -1.68527,0.39163 -3.76431,0.46707 -6.22722,0.22551 -2.49509,-0.26082 -5.14605,-0.72637 -7.94301,-1.39362 -2.71716,-0.64821 -4.55136,-1.25057 -5.51217,-1.80789 -0.99143,-0.57315 -0.63973,-1.04575 1.04522,-1.41928 0,0 3.32676,-0.73743 3.32676,-0.73743 0,0 -6.86908,-1.60682 -6.86908,-1.60682 -7.72281,-1.80653 -12.8825
 ,-3.51276 -15.55532,-5.12306 -2.65764,-1.59876 -1.86099,-2.81696 2.32262,-3.66964 1.84848,-0.37669 4.40558,-0.71108 7.66872,-1.00365 3.21822,-0.30802 5.92136,-0.35936 8.12214,-0.15455 2.22716,0.20095 4.56577,0.57073 7.02338,1.11149 2.64213,0.58139 4.52279,1.1234 5.63365,1.62529 1.06013,0.49218 1.15601,0.83283 0.28178,1.02017 -0.40571,0.087 -1.21582,0.17299 -2.43036,0.25814 -4.16009,0.26467 -7.30795,0.6235 -9.44187,1.07766 -2.2328,0.47529 -2.90043,1.00733 -1.98928,1.59704 0.88196,0.57571 2.62421,1.16376 5.23535,1.76437 0,0 6.87026,1.58029 6.87026,1.58029 0,0 10.36792,-2.29819 10.36792,-2.29819 1.59462,-0.35343 3.58152,-0.41186 5.9701,-0.1759 2.35624,0.21854 4.91761,0.6344 7.69391,1.25031 2.73418,0.6066 4.65441,1.18684 5.75196,1.74017 1.06391,0.53802 0.80425,0.99268 -0.78855,1.36278 0,0 -10.35995,2.40734 -10.35995,2.40734"
+-         id="path10003-9" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10005-9"
+          d="m 462.86528,187.90449 c -2.90569,-0.16593 -5.36269,-0.21815 -7.37595,-0.15683 -2.07622,0.0486 -3.71307,0.21108 -4.91243,0.48799 -2.39002,0.55188 -3.09951,1.24612 -2.11015,2.08594 0.42438,0.3709 1.25961,0.68923 2.50703,0.95438 1.43917,0.30592 3.27869,0.50507 5.51653,0.59672 1.65829,0.0597 4.08262,-0.0775 7.26301,-0.41077 5.84081,-0.60338 10.42557,-0.90895 13.78419,-0.91984 4.42293,-0.011 9.54763,0.32933 15.40812,1.02483 5.9049,0.7008 11.57911,1.60001 17.03778,2.70347 7.51845,1.51988 12.98207,3.05778 16.33947,4.61419 4.979,2.29033 5.3772,4.05686 1.0617,5.26911 -1.74579,0.49041 -3.95512,0.82442 -6.62498,1.0004 -2.58257,0.18616 -5.59293,0.22359 -9.02452,0.11209 0.63516,0.28397 1.03505,0.52794 1.19856,0.73158 0.16356,0.20401 0.064,0.35687 -0.30016,0.45818 -0.97288,0.27068 -2.879,0.24588 -5.70939,-0.0742 -2.87272,-0.34021 -6.9451,-1.08148 -12.17878,-2.2148 0,0 -7.21961,-1.56336 -7.21961,-1.56336 -5.09134,-1.1025 -8.37985,-1.95133 -9.90167,-2.55303 -1.5588,-0.61762 -1.
 8621,-1.04479 -0.91937,-1.28407 0.75656,-0.19198 2.09291,-0.20186 4.01286,-0.0297 1.85597,0.1581 4.61964,0.56195 8.30756,1.21468 3.69149,0.33625 6.93021,0.48413 9.70546,0.44275 2.70434,-0.056 4.90971,-0.31064 6.61127,-0.76242 2.77196,-0.73591 3.38675,-1.61784 1.87353,-2.64169 -0.78919,-0.49759 -2.00028,-0.91325 -3.63224,-1.24812 -2.70691,-0.55542 -5.4427,-0.87941 -8.21759,-0.97439 -2.77232,-0.0949 -6.38748,0.14627 -10.86946,0.72618 -6.6715,0.88095 -13.31679,1.01463 -19.85457,0.39749 -6.43141,-0.5993 -13.04559,-1.63447 -19.79212,-3.09094 -6.82592,-1.4736 -11.45826,-2.90095 -13.94953,-4.28347 -3.37925,-1.85317 -2.96738,-3.22257 1.14981,-4.12973 1.42276,-0.31344 3.19198,-0.52707 5.30887,-0.64174 2.07491,-0.13099 4.5307,-0.15741 7.37162,-0.0794 -0.45722,-0.25351 -0.73544,-0.45733 -0.83571,-0.61184 -0.0802,-0.1585 0.0166,-0.26808 0.29048,-0.32883 0.82077,-0.1819 2.44849,-0.14089 4.89001,0.12332 2.38932,0.25295 5.8038,0.82932 10.27286,1.73557 0,0 4.5771,0.92817 4.5771,0.92817 4.12
 998,0.83752 6.80238,1.44722 7.99164,1.82436 2.2679,0.73357 2.87579,1.23007 1.80718,1.48552 -0.72062,0.17229 -2.08136,0.17497 -4.07847,0.008 -1.99347,-0.16663 -4.25567,-0.47572 -6.77994,-0.92582"
+-         id="path10005-9" />
++         inkscape:connector-curvature="0" />
+     </g>
+     <g
+-       transform="matrix(0.92024041,0,0,0.92024041,31.625011,23.667711)"
++       id="text11583"
+        style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Sans"
+-       id="text11583">
++       transform="matrix(0.92024041,0,0,0.92024041,31.625011,23.667711)">
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11602"
+          d="m 254.05165,365.60408 c 0,0 34.35431,-1.75104 34.35431,-1.75104 0.56363,-0.0317 0.84519,0.0983 0.84519,0.39005 0,0.18368 -0.0989,0.38365 -0.29678,0.6 -0.18273,0.1998 -0.38839,0.34357 -0.61701,0.43129 -0.18298,0.0702 -0.43469,0.1127 -0.75526,0.12744 0,0 -34.41756,1.82791 -34.41756,1.82791 -0.37832,0.017 -0.62523,-0.009 -0.74053,-0.079 -0.11527,-0.0696 -0.17293,-0.18314 -0.17296,-0.34054 3e-5,-0.19113 0.10711,-0.3938 0.32116,-0.60796 0.19756,-0.2192 0.41967,-0.37441 0.66632,-0.46568 0.18084,-0.0669 0.45194,-0.11108 0.81312,-0.13252"
+-         id="path11602" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11604"
+          d="m 255.55102,343.84068 c 0,0 27.88938,-9.69758 27.88938,-9.69758 0,0 0,-1.82666 0,-1.82666 0,-0.33704 0.0924,-0.60815 0.27728,-0.81326 0.16937,-0.19968 0.40023,-0.3499 0.69247,-0.45066 0.2767,-0.0954 0.50715,-0.10421 0.69143,-0.0267 0.18421,0.0775 0.27628,0.28447 0.27628,0.62079 0,0 0,3.20618 0,3.20618 0,0 -3.85993,1.34799 -3.85993,1.34799 3.08439,0.5083 4.61884,1.98077 4.61884,4.41998 0,1.23589 -0.4598,2.5878 -1.38077,4.05795 -0.93823,1.46783 -2.27197,2.8472 -4.00467,4.13951 -1.73925,1.28627 -3.53975,2.26892 -5.4022,2.94633 -1.8857,0.68587 -3.70797,1.01828 -5.46602,0.99507 -1.78062,-0.0286 -3.16051,-0.44253 -4.13609,-1.24301 -0.97758,-0.81323 -1.46715,-1.85874 -1.46717,-3.13526 2e-5,-2.44202 1.60325,-5.05828 4.79328,-7.8345 0,0 -11.44072,3.99542 -11.44072,3.99542 0,0 0,1.87805 0,1.87805 3e-5,0.34655 -0.0977,0.62688 -0.29329,0.84104 -0.1956,0.21427 -0.4484,0.37601 -0.7585,0.48523 -0.29391,0.10354 -0.539,0.1171 -0.7352,0.0406 -0.19621,-0.0765 -0.29437,-0.28849 -0.
 2944,-0.6358 0,0 0,-3.31067 0,-3.31067 m 19.79811,-5.48558 c -2.51598,0.87866 -4.64951,2.21904 -6.39524,4.02263 -1.75225,1.81039 -2.63086,3.54328 -2.63088,5.19358 2e-5,1.66139 0.87863,2.77473 2.63088,3.33845 1.74573,0.56159 3.87926,0.38406 6.39524,-0.52729 2.4868,-0.90079 4.58775,-2.25119 6.30804,-4.04978 1.69847,-1.78636 2.54535,-3.49185 2.54535,-5.12145 0,-1.61872 -0.84688,-2.71626 -2.54535,-3.29425 -1.72029,-0.57467 -3.82124,-0.43033 -6.30804,0.43811"
+-         id="path11604" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11606"
+          d="m 275.77236,315.9068 c 0,0 0,14.07759 0,14.07759 2.54686,-1.10732 4.59132,-2.54443 6.13998,-4.31143 1.52806,-1.76674 2.29018,-3.56591 2.29018,-5.40192 0,-1.0212 -0.2385,-2.01245 -0.7159,-2.9745 -0.47788,-0.96303 -1.11069,-1.66976 -1.89907,-2.12003 -0.23212,-0.13128 -0.34823,-0.27325 -0.34824,-0.42585 1e-5,-0.17436 0.10064,-0.3597 0.30183,-0.55594 0.18564,-0.19108 0.40986,-0.32934 0.67259,-0.41476 0.26258,-0.0853 0.5173,-0.0811 0.76416,0.0127 0.77059,0.27102 1.49377,0.9639 2.16975,2.07776 0.65966,1.10646 0.98913,2.35832 0.98913,3.7568 0,2.34166 -1.08125,4.66345 -3.25144,6.97357 -2.196,2.31547 -4.86226,4.01213 -8.00691,5.08712 -2.88171,0.98511 -5.36835,1.09009 -7.45342,0.30771 -2.09439,-0.79698 -3.14513,-2.30681 -3.14515,-4.52684 2e-5,-2.28661 1.0828,-4.52434 3.24085,-6.70559 2.13228,-2.16603 4.88653,-3.7843 8.25166,-4.85636 m -2.00199,2.0518 c -2.19245,0.99146 -3.98247,2.30495 -5.36535,3.94059 -1.38696,1.62946 -2.08199,3.26008 -2.08201,4.88823 2e-5,1.62815 0.6870
 7,2.79791 2.05814,3.50771 1.36707,0.70771 3.16515,0.82466 5.38922,0.35413 0,0 0,-12.69066 0,-12.69066"
+-         id="path11606" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11608"
+          d="m 285.37786,298.99901 c 0,0 0,2.31105 0,2.31105 0,0 -18.33587,11.45873 -18.33587,11.45873 0,0 0,1.42769 0,1.42769 2e-5,0.33202 -0.0958,0.6007 -0.28746,0.80612 -0.19172,0.2055 -0.4395,0.35707 -0.74343,0.4547 -0.28808,0.0925 -0.52829,0.0977 -0.72057,0.0153 -0.19233,-0.0824 -0.28853,-0.29004 -0.28855,-0.62278 0,0 0,-5.24075 0,-5.24075 2e-5,-0.33275 0.0962,-0.60143 0.28855,-0.80598 0.19228,-0.20446 0.4405,-0.35436 0.74457,-0.44974 0.28793,-0.0903 0.52771,-0.0936 0.71943,-0.01 0.19168,0.0837 0.28748,0.2916 0.28746,0.62362 0,0 0,2.30754 0,2.30754 0,0 16.39841,-10.22344 16.39841,-10.22344 0,0 0,-0.60344 0,-0.60344 0,0 -16.39841,0.086 -16.39841,0.086 0,0 0,2.32415 0,2.32415 2e-5,0.33203 -0.0958,0.59954 -0.28746,0.80262 -0.19172,0.20318 -0.4395,0.35174 -0.74343,0.44568 -0.28808,0.089 -0.52829,0.0913 -0.72057,0.006 -0.19233,-0.0848 -0.28853,-0.29353 -0.28855,-0.62628 0,0 0,-5.2574 0,-5.2574 2e-5,-0.34382 0.0962,-0.61133 0.28855,-0.80246 0.19228,-0.20211 0.4405,-0.34901 0.
 74457,-0.44069 0.28793,-0.0868 0.52771,-0.0871 0.71943,-0.001 0.19168,0.075 0.28748,0.28404 0.28746,0.62711 0,0 0,1.4111 0,1.4111 0,0 18.33587,-0.0241 18.33587,-0.0241"
+-         id="path11608" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11610"
+          d="m 313.14156,343.73148 c 0,0 30.26747,-0.89947 30.26747,-0.89947 0.49772,-0.0176 0.74637,0.11073 0.74637,0.38486 0,0.17261 -0.0873,0.35838 -0.26208,0.55741 -0.16138,0.18378 -0.34299,0.31442 -0.54487,0.39188 -0.16157,0.062 -0.38383,0.0964 -0.66688,0.10333 0,0 -30.31978,0.96684 -30.31978,0.96684 -0.3325,0.008 -0.54951,-0.0224 -0.65085,-0.0901 -0.1013,-0.0678 -0.15197,-0.17545 -0.152,-0.32301 3e-5,-0.17918 0.0941,-0.36685 0.28225,-0.56297 0.17363,-0.20121 0.36885,-0.3419 0.58564,-0.42213 0.15895,-0.0588 0.39724,-0.0944 0.71473,-0.10662"
+-         id="path11610" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11612"
+          d="m 322.77432,331.83011 c 0,0 3.22768,-1.1641 3.22768,-1.1641 -1.27696,-0.3182 -2.24067,-0.80828 -2.88903,-1.47027 -0.64929,-0.66296 -0.9743,-1.60405 -0.97432,-2.8225 2e-5,-1.29136 0.40977,-2.62776 1.22813,-4.00727 0.81688,-1.37693 1.95511,-2.61452 3.41221,-3.71194 1.43833,-1.09927 2.94835,-1.92196 4.52929,-2.46932 2.49833,-0.86491 4.6264,-0.93537 6.38954,-0.21728 1.7424,0.70972 2.61095,2.02729 2.61095,3.95484 0,2.29474 -1.2423,4.602 -3.73771,6.93188 0,0 10.25658,-3.69916 10.25658,-3.69916 0,0 0,-3.09717 0,-3.09717 -10e-6,-0.30363 0.0734,-0.54742 0.22027,-0.73131 0.16012,-0.18856 0.36685,-0.32792 0.62013,-0.41811 0.23981,-0.0854 0.43955,-0.0908 0.59928,-0.0163 0.15966,0.0745 0.23947,0.2632 0.23947,0.56624 0,0 0,6.0761 0,6.0761 0,0.30304 -0.0798,0.54933 -0.23947,0.73894 -0.14642,0.18481 -0.34615,0.32344 -0.59928,0.41587 -0.25328,0.0925 -0.46001,0.10225 -0.62013,0.0291 -0.14684,-0.078 -0.22028,-0.26881 -0.22027,-0.57246 0,0 0,-1.71559 0,-1.71559 0,0 -22.25724,8.0605
 9 -22.25724,8.06059 0,0 0,1.76032 0,1.76032 3e-5,0.31155 -0.0843,0.5656 -0.25311,0.76222 -0.16882,0.19668 -0.38698,0.34388 -0.65457,0.4416 -0.25363,0.0926 -0.46511,0.10225 -0.63439,0.0288 -0.16931,-0.0735 -0.254,-0.26634 -0.25401,-0.57853 0,0 0,-3.07517 0,-3.07517 m 8.53396,-14.33144 c -2.01183,0.69956 -3.73971,1.8489 -5.18019,3.44956 -1.45926,1.60052 -2.19074,3.19263 -2.19075,4.77233 10e-6,1.59012 0.73149,2.67448 2.19075,3.25164 1.45445,0.57524 3.18226,0.50062 5.18019,-0.21996 2.00257,-0.72224 3.71467,-1.8836 5.13968,-3.48257 1.42034,-1.59371 2.12875,-3.17039 2.12875,-4.73395 0,-1.5431 -0.70159,-2.61012 -2.10823,-3.2025 -1.42494,-0.58951 -3.14385,-0.53566 -5.1602,0.16545"
+-         id="path11612" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11614"
+          d="m 322.77432,309.28933 c 0,0 4.466,-1.49604 4.466,-1.49604 -2.07284,-1.00766 -3.40857,-1.83609 -4.00042,-2.48234 -0.60674,-0.65286 -0.91044,-1.33884 -0.91046,-2.05728 2e-5,-0.78088 0.36019,-1.62201 1.07964,-2.52227 0.70421,-0.90459 1.23865,-1.41561 1.60394,-1.53409 0.26677,-0.0865 0.49127,-0.0918 0.67359,-0.0162 0.16824,0.0699 0.25234,0.20327 0.25233,0.40027 10e-6,0.1037 -0.021,0.19867 -0.0631,0.28493 -0.0561,0.0909 -0.2173,0.27818 -0.48383,0.56209 -0.49137,0.52348 -0.82864,0.95029 -1.01146,1.28006 -0.18285,0.32993 -0.27432,0.62483 -0.27433,0.88459 10e-6,0.57151 0.30951,1.16058 0.92783,1.76659 0.61748,0.5948 2.12241,1.48399 4.50565,2.66339 0,0 9.48595,-3.17764 9.48595,-3.17764 0,0 0,-5.69941 0,-5.69941 0,-0.31662 0.0816,-0.56805 0.24469,-0.75427 0.14947,-0.18168 0.3532,-0.31473 0.61114,-0.39918 0.2442,-0.0799 0.44761,-0.0802 0.61026,-9.4e-4 0.16259,0.0793 0.24386,0.27691 0.24386,0.5929 0,0 0,10.07648 0,10.07648 0,0.30581 -0.0745,0.55036 -0.22353,0.73369 -0.16265,
 0.18801 -0.36605,0.32368 -0.61024,0.40696 -0.23075,0.0787 -0.42089,0.0823 -0.57034,0.0107 -0.16308,-0.0772 -0.24465,-0.27406 -0.24465,-0.59068 0,0 0,-3.10993 0,-3.10993 0,0 -14.51647,4.88446 -14.51647,4.88446 0,0 0,2.41459 0,2.41459 3e-5,0.31156 -0.0843,0.56351 -0.25311,0.75592 -0.16882,0.19247 -0.38698,0.33424 -0.65457,0.42527 -0.25363,0.0863 -0.46511,0.0959 -0.63439,0.0286 -0.16931,-0.0777 -0.254,-0.27786 -0.25401,-0.60048 0,0 0,-3.73077 0,-3.73077"
+-         id="path11614" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11616"
+          d="m 331.88928,278.46069 c 2.64617,-0.80181 4.8937,-0.77623 6.74868,0.0703 1.84704,0.83275 2.76758,2.23581 2.76758,4.21183 0,1.99643 -0.92054,3.98292 -2.76758,5.96587 -1.86865,1.99586 -4.11625,3.41592 -6.74868,4.25753 -2.66238,0.85118 -4.94945,0.87291 -6.8552,0.0586 -1.92815,-0.81342 -2.89541,-2.24206 -2.89543,-4.28324 2e-5,-2.02034 0.96023,-4.03876 2.87437,-6.04866 1.90583,-2.01148 4.19997,-3.42129 6.87626,-4.23225 m 0,1.31306 c -2.18973,0.66684 -4.06249,1.82173 -5.61412,3.46652 -1.55715,1.64029 -2.33781,3.29405 -2.33782,4.9569 10e-6,1.66286 0.7877,2.83345 2.35882,3.50996 1.55156,0.66817 3.41729,0.65387 5.59312,-0.0385 2.15125,-0.68456 3.99062,-1.84394 5.52202,-3.47635 1.52598,-1.63685 2.28696,-3.26958 2.28696,-4.90255 0,-1.63295 -0.75418,-2.78878 -2.26649,-3.4693 -1.53133,-0.68895 -3.37749,-0.70594 -5.54249,-0.0467"
+-         id="path11616" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11618"
+          d="m 324.5704,263.40235 c 0,0 -0.59083,0.16738 -0.59083,0.16738 -0.43659,0.12369 -0.74671,0.14914 -0.93008,0.0762 -0.18341,-0.0729 -0.27516,-0.20308 -0.27517,-0.39041 1e-5,-0.19771 0.0917,-0.38488 0.27517,-0.5615 0.18337,-0.17651 0.49349,-0.3263 0.93008,-0.44933 0,0 3.9937,-1.12534 3.9937,-1.12534 0.43222,-0.11147 0.73869,-0.13059 0.91967,-0.0576 0.18093,0.0626 0.27137,0.19209 0.27136,0.38837 10e-6,0.17563 -0.0765,0.34708 -0.2296,0.51438 -0.16703,0.16098 -0.43864,0.3051 -0.81498,0.43238 -0.99118,0.3429 -1.93559,1.09775 -2.83293,2.26567 -0.89916,1.15996 -1.34944,2.50989 -1.34945,4.04802 10e-6,1.94347 0.82283,3.17814 2.46382,3.70253 1.63489,0.52243 3.49981,0.47227 5.59179,-0.14678 2.24699,-0.66492 4.09236,-1.7593 5.54116,-3.28189 1.44397,-1.5175 2.16415,-3.14186 2.16415,-4.87689 0,-1.00018 -0.24446,-1.94558 -0.73378,-2.83696 -0.48988,-0.9026 -1.28029,-1.619 -2.3729,-2.14945 -0.27359,-0.13793 -0.41044,-0.28891 -0.41045,-0.45289 1e-5,-0.17419 0.0821,-0.34075 0.24632,-0
 .49964 0.15045,-0.1652 0.34186,-0.28042 0.57418,-0.34571 0.58707,-0.16488 1.33,0.14264 2.22797,0.92121 1.45185,1.25125 2.17594,2.89386 2.17594,4.931 0,2.06772 -0.87312,4.02504 -2.6247,5.87761 -1.77237,1.85395 -4.0256,3.18955 -6.76716,4.0049 -2.8146,0.8371 -5.16475,0.84722 -7.04279,0.0237 -1.88612,-0.83751 -2.83222,-2.31465 -2.83224,-4.42874 2e-5,-2.00993 0.81209,-3.92834 2.43175,-5.75018"
+-         id="path11618" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11620"
+          d="m 365.2873,324.42931 c 0,0 26.86883,-0.22742 26.86883,-0.22742 0.44274,-0.006 0.66393,0.11973 0.66393,0.37829 0,0.1628 -0.0777,0.33622 -0.23314,0.52034 -0.14356,0.17002 -0.3051,0.2895 -0.48467,0.35839 -0.14372,0.0552 -0.34141,0.0831 -0.59316,0.0837 0,0 -26.91257,0.28707 -26.91257,0.28707 -0.29454,3.9e-4 -0.48676,-0.0323 -0.57653,-0.0982 -0.0897,-0.0659 -0.13461,-0.16825 -0.13464,-0.30713 3e-5,-0.16862 0.0834,-0.34333 0.25001,-0.52404 0.15381,-0.18582 0.32673,-0.31424 0.51876,-0.3853 0.14082,-0.0521 0.35191,-0.0807 0.63318,-0.0857"
+-         id="path11620" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11622"
+          d="m 366.45519,316.07608 c 0,0 10.51502,-3.79236 10.51502,-3.79236 -2.46784,-0.59854 -3.70731,-1.95353 -3.70733,-4.06227 2e-5,-1.80468 0.83926,-3.64326 2.51264,-5.51006 1.65423,-1.85493 3.67873,-3.19501 6.068,-4.02221 2.39983,-0.83081 4.42136,-0.88869 6.07011,-0.17943 1.64209,0.6968 2.46064,1.91342 2.46064,3.65195 0,2.11316 -1.19227,4.30365 -3.58738,6.58151 0,0 2.99169,-1.07899 2.99169,-1.07899 0,0 0,2.84044 0,2.84044 0,0.28837 -0.0722,0.52138 -0.21683,0.69912 -0.14463,0.17779 -0.32548,0.30634 -0.5426,0.38563 -0.22932,0.0837 -0.41044,0.0873 -0.54332,0.0106 -0.14501,-0.0723 -0.21753,-0.25286 -0.21753,-0.54177 0,0 0,-1.63234 0,-1.63234 0,0 -20.18116,7.30873 -20.18116,7.30873 0,0 0,1.67289 0,1.67289 2e-5,0.29607 -0.0762,0.53606 -0.2286,0.72001 -0.15244,0.18399 -0.34947,0.32012 -0.59113,0.40837 -0.22903,0.0836 -0.41999,0.0891 -0.57285,0.0164 -0.15288,-0.0728 -0.22934,-0.25747 -0.22937,-0.55412 0,0 0,-2.92215 0,-2.92215 m 15.462,-16.18951 c -1.95683,0.6804 -3.61946,1.78
 978 -4.98426,3.32953 -1.38179,1.54926 -2.07443,3.04045 -2.07444,4.46966 10e-6,1.42923 0.69265,2.42978 2.07444,3.00024 1.3648,0.57302 3.02743,0.5047 4.98426,-0.20103 1.94753,-0.70236 3.59383,-1.82272 4.9425,-3.35975 1.33211,-1.52762 1.99654,-2.99206 1.99654,-4.39706 0,-1.40498 -0.66443,-2.39877 -1.99654,-2.98281 -1.34867,-0.58171 -2.99497,-0.53592 -4.9425,0.14122"
+-         id="path11622" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11624"
+          d="m 365.65142,292.81786 c 0,0 4.13622,-1.37513 4.13622,-1.37513 0,0 0,1.83197 0,1.83197 0,0 -4.13622,1.38424 -4.13622,1.38424 0,0 0,-1.84108 0,-1.84108 m 8.17532,-2.76207 c 0,0 14.43156,-4.79712 14.43156,-4.79712 0,0 0,-4.76701 0,-4.76701 0,-0.29852 0.0725,-0.53402 0.21753,-0.70646 0.13288,-0.16841 0.314,-0.28994 0.54332,-0.36461 0.21712,-0.0707 0.39797,-0.067 0.5426,0.0109 0.14457,0.0779 0.21683,0.26581 0.21683,0.56377 0,0 0,10.72732 0,10.72732 0,0.28838 -0.0722,0.51963 -0.21683,0.69384 -0.14463,0.17426 -0.32548,0.2984 -0.5426,0.37238 -0.22932,0.0781 -0.41044,0.0773 -0.54332,-0.003 -0.14501,-0.0758 -0.21753,-0.25817 -0.21753,-0.54708 0,0 0,-4.76701 0,-4.76701 0,0 -12.83813,4.28664 -12.83813,4.28664 0,0 0,3.59507 0,3.59507 2e-5,0.29348 -0.0748,0.53405 -0.22458,0.72179 -0.14978,0.17801 -0.33709,0.30517 -0.56199,0.38148 -0.2375,0.0806 -0.43136,0.0827 -0.58153,0.006 -0.15019,-0.0765 -0.22532,-0.26666 -0.22533,-0.5705 0,0 0,-4.837 0,-4.837"
+-         id="path11624" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11626"
+          d="m 373.82674,276.64747 c 0,0 2.37852,-0.75206 2.37852,-0.75206 -1.1095,-0.51038 -1.87794,-1.04696 -2.3034,-1.60911 -0.42586,-0.56274 -0.63896,-1.28079 -0.63898,-2.15371 2e-5,-0.94158 0.25698,-1.87901 0.77041,-2.81146 0.37531,-0.66385 1.00004,-1.34972 1.87307,-2.05696 0.85877,-0.7117 1.74056,-1.20509 2.6452,-1.48083 0,0 9.70674,-2.9585 9.70674,-2.9585 0,0 0,-1.02563 0,-1.02563 0,-0.28889 0.0725,-0.5179 0.21753,-0.68701 0.13288,-0.16536 0.314,-0.28272 0.54332,-0.35212 0.21712,-0.0657 0.39797,-0.0578 0.5426,0.0233 0.14457,0.0812 0.21683,0.26599 0.21683,0.55434 0,0 0,3.24415 0,3.24415 0,0.298 -0.0722,0.53173 -0.21683,0.70126 -0.14463,0.16962 -0.32548,0.28793 -0.5426,0.35491 -0.22932,0.0708 -0.41044,0.0641 -0.54332,-0.0201 -0.14501,-0.0805 -0.21753,-0.26998 -0.21753,-0.56853 0,0 0,-1.01118 0,-1.01118 0,0 -9.44686,2.8934 -9.44686,2.8934 -1.1025,0.33769 -2.03388,0.94036 -2.79297,1.80854 -0.77294,0.87364 -1.15997,1.84458 -1.15998,2.9116 10e-6,0.8125 0.2123,1.45101 0.6365
 2,1.91517 0.41136,0.4676 1.44414,0.993 3.09369,1.57481 0,0 9.6696,-3.0574 9.6696,-3.0574 0,0 0,-1.37231 0,-1.37231 0,-0.28891 0.0725,-0.51872 0.21753,-0.68941 0.13288,-0.16682 0.314,-0.28617 0.54332,-0.35807 0.21712,-0.0681 0.39797,-0.0623 0.5426,0.0174 0.14457,0.0796 0.21683,0.26361 0.21683,0.55197 0,0 0,3.95065 0,3.95065 0,0.28838 -0.0722,0.51815 -0.21683,0.68941 -0.14463,0.17132 -0.32548,0.29176 -0.5426,0.36132 -0.22932,0.0735 -0.41044,0.069 -0.54332,-0.0137 -0.14501,-0.0788 -0.21753,-0.2626 -0.21753,-0.55151 0,0 0,-1.37233 0,-1.37233 0,0 -12.83813,4.07843 -12.83813,4.07843 0,0 0,1.04184 0,1.04184 2e-5,0.29348 -0.0748,0.52771 -0.22458,0.70277 -0.14978,0.17512 -0.34333,0.30066 -0.58074,0.37662 -0.225,0.072 -0.41261,0.0684 -0.56278,-0.011 -0.15019,-0.0794 -0.22532,-0.26611 -0.22533,-0.56015 0,0 0,-2.27883 0,-2.27883"
+-         id="path11626" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11628"
+          d="m 411.64505,307.26962 c 0,0 24.01211,0.30708 24.01211,0.30708 0.39638,0.003 0.59442,0.12622 0.59442,0.37088 0,0.15404 -0.0695,0.31662 -0.20874,0.48781 -0.12853,0.15807 -0.27316,0.26797 -0.43393,0.32965 -0.12866,0.0494 -0.30564,0.0719 -0.53101,0.0676 0,0 -24.04906,-0.25383 -24.04906,-0.25383 -0.26273,-0.005 -0.43418,-0.04 -0.51425,-0.10399 -0.08,-0.064 -0.12006,-0.16151 -0.12008,-0.29267 2e-5,-0.15925 0.0744,-0.32263 0.22299,-0.49006 0.13719,-0.1725 0.29143,-0.29043 0.46272,-0.35381 0.12562,-0.0465 0.31391,-0.0694 0.56483,-0.0687"
+-         id="path11628" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11630"
+          d="m 426.79297,283.70541 c 0,0 0,11.77875 0,11.77875 1.78379,-0.84739 3.21685,-1.98723 4.30308,-3.41944 1.07237,-1.43341 1.60743,-2.91786 1.60743,-4.45634 0,-0.85571 -0.16747,-1.69337 -0.50261,-2.51354 -0.33545,-0.82085 -0.77954,-1.43139 -1.33267,-1.83151 -0.16283,-0.1167 -0.24428,-0.23897 -0.24428,-0.36678 0,-0.14603 0.0706,-0.29833 0.21172,-0.45687 0.13023,-0.15468 0.28754,-0.26399 0.47187,-0.32796 0.18426,-0.0639 0.36301,-0.053 0.53626,0.0327 0.54092,0.24935 1.04869,0.85091 1.52344,1.80407 0.46339,0.9467 0.69488,2.00574 0.69488,3.17799 0,1.96287 -0.75959,3.87613 -2.28327,5.74532 -1.54063,1.87147 -3.40957,3.20872 -5.61156,4.00955 -2.01574,0.7331 -3.75348,0.74237 -5.20943,0.0229 -1.46137,-0.73138 -2.19411,-2.02497 -2.19413,-3.87871 2e-5,-1.90933 0.75511,-3.7453 2.26094,-5.50281 1.48895,-1.74687 3.4139,-3.01888 5.76833,-3.81736 m -1.40103,1.65782 c -1.5332,0.76449 -2.78409,1.80947 -3.74992,3.13515 -0.96821,1.31975 -1.45323,2.66086 -1.45324,4.02086 10e-6,1.36002 0.4
 7946,2.35846 1.43656,2.99416 0.9548,0.63415 2.2113,0.78823 3.7666,0.4644 0,0 0,-10.61457 0,-10.61457"
+-         id="path11630" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11632"
+          d="m 419.26727,277.96614 c 0,0 0,-6.33569 0,-6.33569 0,-0.27787 0.0671,-0.49899 0.20124,-0.66333 0.13412,-0.16426 0.30727,-0.28109 0.5194,-0.3505 0.20088,-0.0657 0.36819,-0.0603 0.50199,0.0161 0.13376,0.0764 0.20062,0.25331 0.20061,0.53068 0,0 0,6.32415 0,6.32415 0,0 9.23228,-3.10449 9.23228,-3.10449 0.79344,-0.2668 1.45519,-0.75378 1.98594,-1.46062 0.53001,-0.71496 0.79475,-1.58641 0.79475,-2.6151 0,-0.77379 -0.13505,-1.56672 -0.40528,-2.37925 -0.28125,-0.80953 -0.59519,-1.40852 -0.94191,-1.79678 -0.14094,-0.13644 -0.21142,-0.26397 -0.21142,-0.38258 0,-0.14593 0.0705,-0.29655 0.21142,-0.45185 0.13007,-0.15168 0.28715,-0.25741 0.47124,-0.31724 0.16236,-0.0527 0.31384,-0.0427 0.45444,0.03 0.35669,0.17539 0.74542,0.75863 1.1661,1.74904 0.40946,0.98379 0.61402,1.98873 0.61402,3.01559 0,1.33583 -0.37153,2.52358 -1.11565,3.56475 -0.74557,1.0432 -1.75277,1.77967 -3.02365,2.20894 0,0 -9.23228,3.11843 -9.23228,3.11843 0,0 0,2.14966 0,2.14966 10e-6,0.27737 -0.0668,0.49896 -
 0.20061,0.66483 -0.1338,0.1659 -0.30669,0.28508 -0.51874,0.3575 -0.20097,0.0686 -0.36853,0.0657 -0.50265,-0.009 -0.13414,-0.0746 -0.20124,-0.25088 -0.20124,-0.52876 0,0 0,-2.15358 0,-2.15358 0,0 -4.18238,1.4127 -4.18238,1.4127 -0.33922,0.11459 -0.58252,0.14087 -0.72973,0.0787 -0.14722,-0.0622 -0.22086,-0.17718 -0.22088,-0.345 2e-5,-0.17715 0.0737,-0.34647 0.22088,-0.50787 0.14721,-0.16136 0.39051,-0.29909 0.72973,-0.41316 0,0 4.18238,-1.40638 4.18238,-1.40638"
+-         id="path11632" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11634"
+          d="m 420.69051,253.20339 c 0,0 -0.46826,0.14288 -0.46826,0.14288 -0.34597,0.10557 -0.59169,0.125 -0.73698,0.0582 -0.14531,-0.0668 -0.218,-0.18361 -0.218,-0.35035 0,-0.17598 0.0727,-0.34163 0.218,-0.49694 0.14529,-0.15523 0.39101,-0.28539 0.73698,-0.39045 0,0 3.16649,-0.96139 3.16649,-0.96139 0.34288,-0.0949 0.58603,-0.10885 0.72963,-0.042 0.14356,0.0576 0.21532,0.17385 0.21531,0.34869 10e-6,0.15646 -0.0607,0.3084 -0.18218,0.45586 -0.13253,0.14169 -0.34802,0.26728 -0.64659,0.37679 -0.78619,0.2952 -1.53512,0.95764 -2.24655,1.98819 -0.71271,1.02321 -1.06957,2.22014 -1.06958,3.5894 10e-6,1.73008 0.65213,2.83849 1.9531,3.32402 1.29666,0.48391 2.77641,0.46056 4.43715,-0.0671 1.78476,-0.56711 3.25127,-1.52194 4.40311,-2.86347 1.14841,-1.33751 1.72134,-2.77856 1.72134,-4.32615 0,-0.89212 -0.19449,-1.7379 -0.58375,-2.53793 -0.38965,-0.80994 -1.01825,-1.45675 -1.88698,-1.9406 -0.21749,-0.12568 -0.32627,-0.26166 -0.32628,-0.40785 10e-6,-0.15531 0.0653,-0.303 0.1958,-0.44306 0
 .11961,-0.14581 0.27178,-0.24668 0.45648,-0.30261 0.4668,-0.14131 1.05762,0.1402 1.77188,0.84341 1.15518,1.13056 1.73146,2.60329 1.73146,4.42074 0,1.84473 -0.69488,3.58146 -2.08843,5.21464 -1.40947,1.63345 -3.20043,2.79857 -5.37817,3.49381 -2.23421,0.71326 -4.09853,0.69501 -5.58755,-0.06 -1.49471,-0.76715 -2.24422,-2.09261 -2.24424,-3.97415 2e-5,-1.78885 0.64334,-3.48767 1.92681,-5.09249"
+-         id="path11634" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11636"
+          d="m 453.1278,291.91445 c 0,0 21.58792,0.73488 21.58792,0.73488 0.35694,0.01 0.53529,0.13079 0.53529,0.36296 0,0.14619 -0.0626,0.29918 -0.18798,0.45905 -0.11574,0.14762 -0.24598,0.24921 -0.39075,0.30475 -0.11586,0.0445 -0.27522,0.0626 -0.47815,0.0543 0,0 -21.61942,-0.68698 -21.61942,-0.68698 -0.2358,-0.01 -0.38968,-0.046 -0.46153,-0.10803 -0.0718,-0.0621 -0.10775,-0.15523 -0.10778,-0.27948 3e-5,-0.15087 0.0668,-0.30427 0.20013,-0.46014 0.12312,-0.16089 0.26156,-0.26976 0.4153,-0.32665 0.11274,-0.0417 0.28175,-0.0599 0.50697,-0.0547"
+-         id="path11636" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11638"
+          d="m 472.79955,269.90469 c 0,0 -1.79464,0.62799 -1.79464,0.62799 1.518,0.95341 2.27463,2.29087 2.27463,4.01534 0,1.06055 -0.32478,1.98337 -0.97519,2.7695 -0.85604,1.02552 -1.85568,1.74546 -3.00009,2.15898 0,0 -8.05232,2.9096 -8.05232,2.9096 0,0 0,1.48567 0,1.48567 1e-5,0.26294 -0.0601,0.47325 -0.18028,0.63098 -0.12024,0.15777 -0.2756,0.27137 -0.46615,0.3408 -0.1806,0.0658 -0.33116,0.0636 -0.45168,-0.007 -0.12052,-0.0703 -0.18081,-0.23708 -0.18082,-0.50048 0,0 0,-2.59453 0,-2.59453 0,0 9.33125,-3.35779 9.33125,-3.35779 0.80244,-0.28875 1.46167,-0.75092 1.97844,-1.38632 0.51605,-0.6345 0.7738,-1.28824 0.7738,-1.96192 0,-1.77056 -0.91511,-3.07222 -2.75224,-3.90813 0,0 -8.05232,2.81768 -8.05232,2.81768 0,0 0,2.03785 0,2.03785 1e-5,0.26295 -0.0601,0.47262 -0.18028,0.62905 -0.12024,0.1565 -0.2756,0.26844 -0.46615,0.33583 -0.1806,0.0639 -0.33116,0.0601 -0.45168,-0.0114 -0.12052,-0.0715 -0.18081,-0.23899 -0.18082,-0.5024 0,0 0,-3.14768 0,-3.14768 0,0 11.60189,-4.04242 11.6
 0189,-4.04242 0,0 0,-0.92043 0,-0.92043 0,-0.25926 0.0584,-0.46532 0.1752,-0.61814 0.10702,-0.14937 0.25292,-0.25603 0.43764,-0.31999 0.1749,-0.0605 0.3206,-0.0548 0.43711,0.017 0.11648,0.0718 0.1747,0.23717 0.1747,0.49599 0,0 0,2.00603 0,2.00603"
+-         id="path11638" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11640"
+          d="m 460.80106,258.07986 c -0.29085,0.0955 -0.50162,0.11202 -0.63216,0.0495 -0.13057,-0.0625 -0.19588,-0.17279 -0.19589,-0.33084 1e-5,-0.16682 0.0653,-0.32426 0.19589,-0.47233 0.13054,-0.14798 0.35135,-0.27278 0.66224,-0.37438 0,0 2.15906,-0.70548 2.15906,-0.70548 0.29888,-0.0976 0.51292,-0.11518 0.64227,-0.0526 0.12933,0.0625 0.19397,0.17679 0.19396,0.34273 10e-6,0.1485 -0.0547,0.29308 -0.16411,0.43379 -0.10944,0.13202 -0.28861,0.24763 -0.5376,0.34683 -0.59825,0.24893 -1.09254,0.68261 -1.48245,1.30134 -0.56058,0.90354 -0.8412,1.94781 -0.84121,3.1318 10e-6,1.23662 0.28564,2.10094 0.85621,2.59241 0.42987,0.37163 0.90912,0.46784 1.43756,0.28913 0.59734,-0.20199 1.09438,-0.67563 1.49152,-1.42055 0.27777,-0.51224 0.49089,-1.37741 0.63951,-2.59544 0.18817,-1.58801 0.40099,-2.71723 0.63839,-3.38792 0.34596,-0.95843 0.82481,-1.74203 1.43603,-2.35072 0.61022,-0.61634 1.2685,-1.03937 1.97459,-1.26953 1.04682,-0.3412 1.9786,-0.19963 2.79622,0.42294 0.80608,0.62439 1.20845,1.
 79399 1.20845,3.50983 0,1.71586 -0.48969,3.28655 -1.47106,4.71495 0.33065,-0.11206 0.54445,-0.16723 0.64159,-0.16569 0.0971,0.002 0.17964,0.0384 0.24758,0.11023 0.0679,0.0633 0.1019,0.15093 0.1019,0.26309 0,0.15531 -0.0631,0.30617 -0.18926,0.45266 -0.12623,0.14653 -0.33509,0.26942 -0.62672,0.3687 0,0 -2.53239,0.86214 -2.53239,0.86214 -0.2939,0.10005 -0.50466,0.12411 -0.63217,0.0721 -0.12755,-0.0607 -0.19133,-0.17353 -0.19134,-0.3384 10e-6,-0.1562 0.0638,-0.308 0.19134,-0.45539 0.1177,-0.15268 0.27947,-0.26389 0.48525,-0.33364 0.45037,-0.15263 0.82688,-0.37983 1.12976,-0.68154 0.46848,-0.46136 0.85842,-1.07305 1.17008,-1.83503 0.30166,-0.7667 0.4524,-1.62916 0.4524,-2.58786 0,-1.41643 -0.29667,-2.37228 -0.89074,-2.86815 -0.59504,-0.49666 -1.22527,-0.63648 -1.89089,-0.41854 -0.76499,0.2505 -1.37912,0.80339 -1.84163,1.65907 -0.46309,0.86548 -0.77378,2.00772 -0.93171,3.42636 -0.15797,1.41055 -0.36543,2.45523 -0.62245,3.13395 -0.25718,0.6792 -0.64331,1.27172 -1.15879,1.77774 -0.5
 1618,0.50673 -1.07288,0.8617 -1.6703,1.06463 -1.07777,0.36609 -1.93324,0.19205 -2.56488,-0.52385 -0.64274,-0.71374 -0.96453,-1.71681 -0.96454,-3.00827 10e-6,-1.52867 0.42733,-2.91265 1.28049,-4.14979"
+-         id="path11640" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11642"
+          d="m 459.97301,247.15701 c 0,0 3.18159,-0.9963 3.18159,-0.9963 -1.47732,-0.974 -2.42873,-1.75239 -2.85014,-2.33274 -0.43193,-0.58669 -0.64809,-1.18333 -0.6481,-1.78942 10e-6,-0.65879 0.25637,-1.34729 0.76855,-2.0648 0.50146,-0.72222 0.88211,-1.12235 1.14232,-1.20107 0.19006,-0.0575 0.35002,-0.0489 0.47993,0.0256 0.11989,0.0688 0.17982,0.1863 0.17982,0.3526 0,0.0875 -0.015,0.16649 -0.045,0.23686 -0.04,0.0735 -0.15485,0.22213 -0.34476,0.44622 -0.35007,0.41312 -0.59032,0.75359 -0.72054,1.0212 -0.13023,0.26772 -0.19537,0.51122 -0.19538,0.73043 1e-5,0.4823 0.22044,0.99766 0.66089,1.54559 0.43995,0.53853 1.5126,1.37834 3.21245,2.51597 0,0 6.78021,-2.1232 6.78021,-2.1232 0,0 0,-4.82256 0,-4.82256 0,-0.26791 0.0584,-0.47591 0.1752,-0.62398 0.10702,-0.14502 0.25292,-0.24575 0.43764,-0.3022 0.1749,-0.0534 0.3206,-0.0418 0.43711,0.0348 0.11648,0.0766 0.1747,0.24858 0.1747,0.51604 0,0 0,8.52884 0,8.52884 0,0.25885 -0.0534,0.46137 -0.16014,0.60759 -0.1165,0.14939 -0.2622,0.252 
 -0.43709,0.30783 -0.16526,0.0528 -0.30142,0.0444 -0.40844,-0.0251 -0.11677,-0.0751 -0.17518,-0.24658 -0.17518,-0.51448 0,0 0,-2.63151 0,-2.63151 0,0 -10.36676,3.2618 -10.36676,3.2618 0,0 0,2.03785 0,2.03785 10e-6,0.26295 -0.0601,0.4705 -0.18028,0.6227 -0.12024,0.15225 -0.2756,0.25871 -0.46615,0.31938 -0.1806,0.0575 -0.33116,0.0528 -0.45168,-0.0142 -0.12052,-0.0758 -0.18081,-0.24977 -0.18082,-0.52195 0,0 0,-3.14768 0,-3.14768"
+-         id="path11642" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11644"
+          d="m 490.46613,278.09337 c 0,0 19.51315,1.07897 19.51315,1.07897 0.32311,0.0156 0.48456,0.13389 0.48456,0.35479 0,0.13909 -0.0567,0.28355 -0.17017,0.43343 -0.10477,0.1384 -0.22267,0.23275 -0.35371,0.28303 -0.10488,0.0402 -0.24913,0.0546 -0.43281,0.0432 0,0 -19.54022,-1.03558 -19.54022,-1.03558 -0.21281,-0.0136 -0.35168,-0.0505 -0.41653,-0.11078 -0.0648,-0.0602 -0.0972,-0.14937 -0.0973,-0.2674 2e-5,-0.14332 0.0603,-0.28787 0.18061,-0.4336 0.11111,-0.15068 0.23606,-0.25167 0.37481,-0.30302 0.10175,-0.0376 0.25429,-0.052 0.45757,-0.043"
+-         id="path11644" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11646"
+          d="m 496.64736,267.31812 c 0,0 0,-5.70821 0,-5.70821 1e-5,-0.25036 0.0545,-0.4488 0.16336,-0.59533 0.10888,-0.14646 0.24944,-0.24974 0.42166,-0.30985 0.1631,-0.0569 0.29895,-0.0501 0.40758,0.0203 0.10862,0.0704 0.16292,0.23055 0.1629,0.4805 0,0 0,5.69885 0,5.69885 0,0 7.50564,-2.68778 7.50564,-2.68778 0.64587,-0.23128 1.18465,-0.66285 1.61683,-1.29443 0.43164,-0.63901 0.64726,-1.42241 0.64726,-2.35081 0,-0.69833 -0.10999,-1.41548 -0.33009,-2.15179 -0.22904,-0.73368 -0.48469,-1.27767 -0.76701,-1.63184 -0.11476,-0.12466 -0.17215,-0.2405 -0.17215,-0.34752 0,-0.13168 0.0574,-0.26682 0.17215,-0.40542 0.1059,-0.13545 0.23381,-0.22916 0.38372,-0.28115 0.13222,-0.0458 0.25557,-0.0351 0.37008,0.032 0.2905,0.16215 0.60714,0.69277 0.94983,1.59129 0.33359,0.89253 0.50026,1.80192 0.50026,2.72882 0,1.2058 -0.3027,2.27359 -0.90889,3.20459 -0.60725,0.93264 -1.42741,1.58517 -2.46199,1.95722 0,0 -7.50564,2.69912 -7.50564,2.69912 0,0 0,1.93711 0,1.93711 2e-5,0.24995 -0.0543,0.44878 -
 0.1629,0.59654 -0.10863,0.14781 -0.24901,0.25299 -0.42117,0.31555 -0.16316,0.0593 -0.29919,0.0545 -0.40807,-0.0144 -0.10889,-0.0689 -0.16335,-0.22859 -0.16336,-0.47895 0,0 0,-1.94029 0,-1.94029 0,0 -3.39317,1.22022 -3.39317,1.22022 -0.27506,0.0989 -0.47232,0.11952 -0.59167,0.0617 -0.11935,-0.0578 -0.17905,-0.1623 -0.17906,-0.31341 1e-5,-0.1595 0.0597,-0.31103 0.17906,-0.45451 0.11935,-0.14346 0.31661,-0.26444 0.59167,-0.36295 0,0 3.39317,-1.2151 3.39317,-1.2151"
+-         id="path11646" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11648"
+          d="m 496.64736,254.57478 c 0,0 1.1555,-0.39287 1.1555,-0.39287 -1.04204,-0.53851 -1.56422,-1.25928 -1.56423,-2.1611 10e-6,-0.54276 0.15902,-1.07194 0.4768,-1.5872 0.30846,-0.51177 0.77968,-1.0107 1.413,-1.49648 -0.63332,-0.25606 -1.10454,-0.57087 -1.413,-0.9443 -0.31778,-0.37911 -0.47679,-0.81095 -0.4768,-1.29526 10e-6,-0.75987 0.26801,-1.4528 0.80338,-2.07811 0.68847,-0.81606 1.4388,-1.35555 2.25059,-1.61921 0,0 7.84421,-2.54762 7.84421,-2.54762 0,0 0,-0.87553 0,-0.87553 0,-0.24662 0.0528,-0.44043 0.15853,-0.58142 0.0968,-0.13808 0.22885,-0.23407 0.396,-0.28799 0.15827,-0.051 0.29012,-0.0402 0.39556,0.0325 0.1054,0.0727 0.15809,0.23217 0.15809,0.47839 0,0 0,1.90832 0,1.90832 0,0 -8.84429,2.88563 -8.84429,2.88563 -0.5769,0.18823 -1.05537,0.50669 -1.43501,0.95549 -0.38003,0.4493 -0.57021,0.88671 -0.57021,1.31186 0,0.38349 0.15849,0.73555 0.47524,1.05599 0.30744,0.32315 0.91699,0.60401 1.82708,0.84233 0,0 7.43901,-2.47237 7.43901,-2.47237 0,0 0,-0.8632 0,-0.8632 0,-0
 .24662 0.0528,-0.44083 0.15853,-0.58262 0.0968,-0.13882 0.22885,-0.23581 0.396,-0.291 0.15827,-0.0522 0.29012,-0.0424 0.39556,0.0295 0.1054,0.0719 0.15809,0.23096 0.15809,0.47718 0,0 0,1.90833 0,1.90833 0,0 -8.76324,2.92573 -8.76324,2.92573 -0.60382,0.2016 -1.10029,0.53384 -1.48893,0.99686 -0.39811,0.45823 -0.59734,0.89179 -0.59734,1.30027 0,0.37514 0.13132,0.70184 0.39381,0.97992 0.37079,0.38275 1.00745,0.69975 1.90851,0.95082 0,0 7.43901,-2.52926 7.43901,-2.52926 0,0 0,-0.87553 0,-0.87553 0,-0.24663 0.0528,-0.44125 0.15853,-0.58383 0.0968,-0.13956 0.22885,-0.23756 0.396,-0.29402 0.15827,-0.0534 0.29012,-0.0446 0.39556,0.0265 0.1054,0.0711 0.15809,0.22974 0.15809,0.47597 0,0 0,2.78246 0,2.78246 0,0.24624 -0.0527,0.4408 -0.15809,0.58372 -0.10544,0.14296 -0.23729,0.24165 -0.39556,0.29606 -0.16715,0.0574 -0.29916,0.0494 -0.396,-0.0242 -0.10568,-0.0706 -0.15853,-0.22916 -0.15853,-0.4758 0,0 0,-0.87553 0,-0.87553 0,0 -9.33395,3.18747 -9.33395,3.18747 0,0 0,0.88732 0,0.88732 2e-5
 ,0.24995 -0.0543,0.44772 -0.1629,0.59335 -0.10863,0.14567 -0.24901,0.2481 -0.42117,0.30728 -0.16316,0.0561 -0.29919,0.0487 -0.40807,-0.0224 -0.10889,-0.0711 -0.16335,-0.2318 -0.16336,-0.48216 0,0 0,-1.94029 0,-1.94029"
+-         id="path11648" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11650"
+          d="m 496.64736,238.37646 c 0,0 2.07718,-0.65844 2.07718,-0.65844 -0.82215,-0.36416 -1.44231,-0.83933 -1.85938,-1.42537 -0.41755,-0.58674 -0.62652,-1.36885 -0.62653,-2.34582 10e-6,-1.03542 0.26347,-2.07259 0.78978,-3.11032 0.52556,-1.03618 1.25819,-1.93417 2.19662,-2.69363 0.92694,-0.76299 1.90073,-1.2984 2.92097,-1.60707 1.61375,-0.48819 2.98978,-0.36858 4.13085,0.35538 1.12853,0.71608 1.69142,1.84919 1.69142,3.40109 0,1.84751 -0.80503,3.59989 -2.42074,5.26294 0,0 6.65254,-2.10877 6.65254,-2.10877 0,0 0,-2.49725 0,-2.49725 -10e-6,-0.24483 0.0477,-0.43522 0.1432,-0.57115 0.10412,-0.1386 0.23855,-0.23361 0.40327,-0.28507 0.15597,-0.0487 0.28589,-0.0363 0.3898,0.0372 0.10387,0.0735 0.1558,0.23241 0.1558,0.47685 0,0 0,4.90103 0,4.90103 0,0.24444 -0.0519,0.43629 -0.1558,0.57559 -0.0952,0.13657 -0.22517,0.23132 -0.3898,0.28425 -0.16472,0.0529 -0.29915,0.0432 -0.40327,-0.0295 -0.0955,-0.0754 -0.14321,-0.23555 -0.1432,-0.48037 0,0 0,-1.38329 0,-1.38329 0,0 -14.39721,4.5852
 4 -14.39721,4.58524 0,0 0,1.41222 0,1.41222 2e-5,0.24994 -0.0543,0.4465 -0.1629,0.58972 -0.10863,0.14325 -0.24901,0.24256 -0.42117,0.29791 -0.16316,0.0524 -0.29919,0.042 -0.40807,-0.0315 -0.10889,-0.0735 -0.16335,-0.23544 -0.16336,-0.48579 0,0 0,-2.46606 0,-2.46606 m 5.49864,-10.78493 c -1.29819,0.39472 -2.4122,1.17378 -3.34025,2.33842 -0.93954,1.16219 -1.41027,2.37801 -1.41027,3.64515 0,1.27548 0.47073,2.20732 1.41027,2.79434 0.93705,0.58545 2.05103,0.6727 3.34025,0.26403 1.29338,-0.40998 2.40009,-1.19814 3.32187,-2.36328 0.91935,-1.16205 1.37812,-2.3711 1.37812,-3.62945 0,-1.24188 -0.45435,-2.15914 -1.36484,-2.75298 -0.92175,-0.59266 -2.03286,-0.69217 -3.33515,-0.29623"
+-         id="path11650" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11652"
+          d="m 537.49915,265.34139 c 0,0 0,-0.4245 0,-0.4245 0,-0.44021 0.16106,-0.87799 0.48293,-1.313 0.31352,-0.43158 0.69498,-0.73132 1.14414,-0.89937 0.46455,-0.1738 0.85251,-0.15839 1.16415,0.0459 0.31134,0.19627 0.46691,0.50944 0.46691,0.93967 0,0 0,0.42241 0,0.42241 0,0.43806 -0.15557,0.87241 -0.46691,1.30334 -0.31963,0.43437 -0.7036,0.73677 -1.15213,0.90702 -0.46519,0.17659 -0.85469,0.16741 -1.16822,-0.0279 -0.31384,-0.20331 -0.47087,-0.52122 -0.47087,-0.95358"
+-         id="path11652" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11654"
+          d="m 537.49915,250.86135 c 0,0 0,-0.4245 0,-0.4245 0,-0.4402 0.16106,-0.87446 0.48293,-1.30246 0.31352,-0.42473 0.69498,-0.71614 1.14414,-0.87438 0.46455,-0.16364 0.85251,-0.13977 1.16415,0.0713 0.31134,0.20308 0.46691,0.51965 0.46691,0.94987 0,0 0,0.42242 0,0.42242 0,0.43805 -0.15557,0.869 -0.46691,1.29313 -0.31963,0.4274 -0.7036,0.72141 -1.15213,0.88187 -0.46519,0.16644 -0.85469,0.14875 -1.16822,-0.0534 -0.31384,-0.21017 -0.47087,-0.53151 -0.47087,-0.96387"
+-         id="path11654" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path11656"
+          d="m 537.49915,236.38131 c 0,0 0,-0.42449 0,-0.42449 0,-0.44021 0.16106,-0.87095 0.48293,-1.29191 0.31352,-0.41789 0.69498,-0.70097 1.14414,-0.8494 0.46455,-0.15351 0.85251,-0.12116 1.16415,0.0967 0.31134,0.20987 0.46691,0.52984 0.46691,0.96007 0,0 0,0.42241 0,0.42241 0,0.43806 -0.15557,0.86561 -0.46691,1.28294 -0.31963,0.42042 -0.7036,0.70604 -1.15213,0.85671 -0.46519,0.15627 -0.85469,0.13008 -1.16822,-0.0789 -0.31384,-0.21701 -0.47087,-0.54178 -0.47087,-0.97415"
+-         id="path11656" />
++         inkscape:connector-curvature="0" />
+     </g>
+   </g>
+   <g
+-     style="display:none"
+-     inkscape:label="Debian"
++     inkscape:groupmode="layer"
+      id="layer5"
+-     inkscape:groupmode="layer">
++     inkscape:label="Debian"
++     style="display:inline">
+     <g
+-       inkscape:corner7="0.22429094 : -0.062018081 : 0.53531208 : 1"
+-       inkscape:corner0="0.4922944 : 0.05733945 : 0 : 1"
+-       inkscape:perspectiveID="#perspective3054"
+-       id="g4111"
+-       style="fill:#aad3d3;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+-       sodipodi:type="inkscape:box3d"
+-       transform="translate(0,-452.36218)"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       transform="translate(0,-452.36218)"
++       sodipodi:type="inkscape:box3d"
++       style="fill:#aad3d3;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
++       id="g4111"
++       inkscape:perspectiveID="#perspective3054"
++       inkscape:corner0="0.4922944 : 0.05733945 : 0 : 1"
++       inkscape:corner7="0.22429094 : -0.062018081 : 0.53531208 : 1">
+       <path
+-         d="M 133.59629,764.86429 252.05613,831.34849 540.56237,720.64621 415.24336,686.34695 z"
+-         inkscape:box3dsidetype="13"
+-         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4121"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="13"
++         d="M 133.59629,764.86429 252.05613,831.34849 540.56237,720.64621 415.24336,686.34695 z" />
+       <path
+-         d="m 133.59629,684.88172 0,79.98257 281.64707,-78.51734 0,-58.86622 z"
+-         inkscape:box3dsidetype="6"
+-         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4113"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="6"
++         d="m 133.59629,684.88172 0,79.98257 281.64707,-78.51734 0,-58.86622 z" />
+       <path
+-         d="m 415.24336,627.48073 125.31901,25.33341 0,67.83207 -125.31901,-34.29926 z"
+-         inkscape:box3dsidetype="11"
+-         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4123"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="11"
++         d="m 415.24336,627.48073 125.31901,25.33341 0,67.83207 -125.31901,-34.29926 z" />
+       <path
+-         d="m 133.59629,684.88172 118.45984,48.97562 288.50624,-81.0432 -125.31901,-25.33341 z"
+-         inkscape:box3dsidetype="5"
+-         style="fill:#00b9f5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4115"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#00b9f5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="5"
++         d="m 133.59629,684.88172 118.45984,48.97562 288.50624,-81.0432 -125.31901,-25.33341 z" />
+       <path
+-         d="m 252.05613,733.85734 0,97.49115 288.50624,-110.70228 0,-67.83207 z"
+-         inkscape:box3dsidetype="14"
+-         style="fill:#008bb8;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4119"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#008bb8;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="14"
++         d="m 252.05613,733.85734 0,97.49115 288.50624,-110.70228 0,-67.83207 z" />
+       <path
+-         d="m 133.59629,684.88172 118.45984,48.97562 0,97.49115 -118.45984,-66.4842 z"
+-         inkscape:box3dsidetype="3"
+-         style="fill:#00ade5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4117"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#00ade5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="3"
++         d="m 133.59629,684.88172 118.45984,48.97562 0,97.49115 -118.45984,-66.4842 z" />
+     </g>
+     <g
+-       transform="matrix(0.61031919,0,0,0.61031919,136.50792,89.854955)"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
+-       id="text9988"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       id="text9988"
++       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
++       transform="matrix(0.61031919,0,0,0.61031919,136.50792,89.854955)">
+       <path
+-         inkscape:connector-curvature="0"
++         id="path9995"
+          d="m 188.59801,239.37973 c 0,0 10.80142,4.18005 10.80142,4.18005 -0.76616,-3.05917 -0.73057,-5.17362 0.0851,-6.39339 0.84106,-1.21417 2.36138,-2.05944 4.56041,-2.54399 3.36438,-0.74121 8.67469,-0.70434 15.98654,0.11115 4.98595,0.55071 8.9953,1.36554 12.03184,2.45026 2.59214,0.92602 4.30231,1.84095 5.11951,2.74446 0.79707,0.88127 0.47618,1.49409 -0.97048,1.83415 -1.28207,0.30141 -3.77637,0.20361 -7.46885,-0.2925 -3.67698,-0.49394 -6.07112,-0.61056 -7.19576,-0.35091 -1.46934,0.3393 -2.09539,1.44179 -1.87218,3.32952 0.26187,1.91063 1.40513,4.65856 3.4729,8.3019 0,0 30.03524,11.62336 30.03524,11.62336 0,0 15.65393,-4.11957 15.65393,-4.11957 2.59381,-0.68257 5.41952,-0.79884 8.49618,-0.35048 3.05257,0.41529 6.19038,1.21068 9.42837,2.39338 3.19708,1.16781 5.29058,2.28918 6.26454,3.36278 0.94452,1.04629 0.1181,1.93489 -2.49634,2.66251 0,0 -34.13326,9.49952 -34.13326,9.49952 -2.83088,0.78785 -5.87094,0.94375 -9.09895,0.46537 -3.24862,-0.51643 -6.4804,-1.44072 -9.68065,-2.7
 6446 -3.10024,-1.28236 -4.99727,-2.47227 -5.70886,-3.572 -0.73485,-1.12824 0.30694,-2.05895 3.10831,-2.79621 0,0 6.8587,-1.80497 6.8587,-1.80497 0,0 -46.80164,-18.64214 -46.80164,-18.64214 0,0 -4.03596,0.93784 -4.03596,0.93784 -2.70867,0.62944 -5.46556,0.75303 -8.25329,0.36912 -2.79889,-0.41446 -5.49653,-1.1558 -8.08261,-2.21792 -2.50769,-1.02993 -3.9575,-1.9862 -4.36329,-2.87045 -0.42087,-0.90793 0.71271,-1.65692 3.38783,-2.24995 0,0 14.87133,-3.29643 14.87133,-3.29643"
+-         id="path9995" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path9997"
+          d="m 318.69753,233.65347 c 7.81088,2.41917 14.56844,5.07064 20.25204,7.96924 5.7885,2.94264 9.1431,5.72809 9.96615,8.34264 0.79838,2.64066 -1.00301,4.6031 -5.45216,5.85289 -4.46386,1.25393 -11.15148,1.66904 -20.00626,1.23659 -8.898,-0.4557 -18.38088,-1.74499 -28.34354,-3.84206 -9.79574,-2.06193 -18.6433,-4.48749 -26.52662,-7.25379 -7.82927,-2.74735 -14.20756,-5.64394 -19.17016,-8.67619 -4.89257,-2.97384 -7.23458,-5.57586 -7.12327,-7.82898 0.14059,-2.21435 2.37339,-3.78147 6.67139,-4.72848 4.29012,-0.94517 10.38008,-1.19953 18.3213,-0.76824 7.94217,0.40759 16.43086,1.49423 25.55556,3.2805 9.21274,1.79636 17.82485,3.92867 25.85557,6.41588 m -9.12553,2.31728 c -6.4118,-2.03184 -13.27849,-3.60974 -20.62972,-4.75217 -9.83924,-1.51489 -17.12877,-1.70611 -22.00563,-0.58005 -4.33293,1.00051 -5.30614,2.74024 -2.84855,5.25406 2.51376,2.57126 7.47645,5.13939 14.96669,7.70184 6.2706,2.14521 13.7825,3.8011 22.51055,4.94615 8.74133,1.13263 15.33249,1.12147 19.68005,-0.0328 4.336
 31,-1.15122 5.04492,-3.04688 2.20597,-5.65133 -2.84427,-2.56876 -7.48377,-4.85895 -13.87936,-6.8857"
+-         id="path9997" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path9999"
+          d="m 370.18311,220.89138 c 7.87167,2.1472 14.79353,4.49711 20.75003,7.06196 6.05519,2.59988 9.78662,5.05673 11.1054,7.35908 1.29936,2.32214 0.0231,4.04525 -3.87749,5.14096 -3.91087,1.09859 -10.07589,1.46092 -18.44725,1.07985 -8.41856,-0.40157 -17.5687,-1.53459 -27.35306,-3.37787 -9.6307,-1.81431 -18.46587,-3.95046 -26.48622,-6.3895 -7.97675,-2.42578 -14.6373,-4.98669 -20.00949,-7.67132 -5.30105,-2.63705 -8.1214,-4.94735 -8.55222,-6.94998 -0.39449,-1.97048 1.33688,-3.36597 5.164,-4.20923 3.82211,-0.84206 9.50591,-1.06776 17.09603,-0.68142 7.58396,0.3651 15.83663,1.33558 24.84202,2.92873 9.08222,1.6007 17.66471,3.49833 25.76825,5.70874 m -8.07385,2.05333 c -6.47949,-1.80327 -13.29219,-3.20538 -20.46816,-4.22173 -9.60797,-1.34865 -16.51634,-1.52019 -20.848,-0.52003 -3.84631,0.88815 -4.35747,2.43275 -1.46283,4.66292 2.95687,2.27808 8.20823,4.55087 15.82272,6.81614 6.36681,1.89411 13.7807,3.35532 22.21491,4.3658 8.43901,0.99896 14.61124,0.99061 18.43477,-0.0245 3.81601,
 -1.01309 4.07248,-2.68403 0.84721,-4.98329 -3.22688,-2.27084 -8.08432,-4.29842 -14.54062,-6.09528"
+-         id="path9999" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10001"
+          d="m 369.35032,208.21091 c 0,0 40.18029,10.31554 40.18029,10.31554 4.54941,1.16799 7.90985,1.85733 10.04607,2.05851 3.35439,0.31973 6.36087,0.12804 8.99839,-0.57223 3.80233,-1.00946 4.92338,-2.51808 3.41338,-4.50415 -0.59265,-0.75666 -0.54527,-1.22149 0.13796,-1.39847 0.94028,-0.24357 2.78416,-0.20123 5.53983,0.12736 2.78771,0.32353 5.69044,0.85075 8.71788,1.58481 2.83553,0.68756 4.92392,1.38477 6.25775,2.09178 2.24812,1.1379 3.13828,2.53669 2.64599,4.20684 -0.55053,1.67203 -2.02066,2.85282 -4.41529,3.52548 -4.66368,1.31006 -11.25115,1.51999 -19.66772,0.62294 -8.39599,-0.91541 -16.83231,-2.48591 -25.2301,-4.68294 0,0 -44.30445,-11.59087 -44.30445,-11.59087 0,0 -2.80728,0.65233 -2.80728,0.65233 -1.88196,0.43734 -4.10034,0.52199 -6.64393,0.25302 -2.57229,-0.29043 -5.25643,-0.80912 -8.04218,-1.5525 -2.70522,-0.72188 -4.48808,-1.39261 -5.35902,-2.01314 -0.89888,-0.63794 -0.40471,-1.16405 1.47199,-1.58009 0,0 2.79988,-0.62063 2.79988,-0.62063 0,0 -16.0131,-4.18933 -16.0
 131,-4.18933 -4.15526,-1.08708 -6.72467,-1.9241 -7.73865,-2.51744 -1.03741,-0.60902 -0.98184,-1.03024 0.15945,-1.26617 1.11384,-0.23015 2.89308,-0.19004 5.34585,0.12065 2.43006,0.29236 5.71138,0.96864 9.87337,2.03715 0,0 16.03516,4.11673 16.03516,4.11673 0,0 13.81074,-3.06134 13.81074,-3.06134 1.7648,-0.39115 3.87091,-0.45617 6.32889,-0.19576 2.42845,0.24118 5.0259,0.70062 7.80255,1.38148 2.73549,0.67079 4.62059,1.3128 5.64569,1.9254 0.99363,0.59583 0.6121,1.09974 -1.15489,1.51031 0,0 -13.8345,3.21473 -13.8345,3.21473"
+-         id="path10001" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10003"
+          d="m 414.19529,197.79027 c 0,0 49.09089,11.29188 49.09089,11.29188 0,0 9.51455,-2.5039 9.51455,-2.5039 1.5833,-0.41664 3.71061,-0.48612 6.39269,-0.20922 2.64034,0.25642 5.58449,0.74526 8.845,1.46995 3.21279,0.71412 5.53419,1.39784 6.95389,2.0505 1.37743,0.63488 1.28518,1.1721 -0.28855,1.61008 0,0 -20.36165,5.66678 -20.36165,5.66678 -1.67346,0.46574 -3.90405,0.55615 -6.68041,0.27017 -2.81866,-0.30882 -5.88811,-0.86047 -9.19551,-1.6511 -3.21122,-0.76763 -5.44315,-1.48078 -6.70743,-2.1405 -1.30329,-0.67814 -1.1083,-1.23745 0.57268,-1.67985 0,0 4.12495,-1.08555 4.12495,-1.08555 0,0 -49.13122,-11.49283 -49.13122,-11.49283 0,0 -3.32684,0.77306 -3.32684,0.77306 -1.68527,0.39163 -3.76431,0.46707 -6.22722,0.22551 -2.49509,-0.26082 -5.14605,-0.72637 -7.94301,-1.39362 -2.71716,-0.64821 -4.55136,-1.25057 -5.51217,-1.80789 -0.99143,-0.57315 -0.63973,-1.04575 1.04522,-1.41928 0,0 3.32676,-0.73743 3.32676,-0.73743 0,0 -6.86908,-1.60682 -6.86908,-1.60682 -7.72281,-1.80653 -12.8825
 ,-3.51276 -15.55532,-5.12306 -2.65764,-1.59876 -1.86099,-2.81696 2.32262,-3.66964 1.84848,-0.37669 4.40558,-0.71108 7.66872,-1.00365 3.21822,-0.30802 5.92136,-0.35936 8.12214,-0.15455 2.22716,0.20095 4.56577,0.57073 7.02338,1.11149 2.64213,0.58139 4.52279,1.1234 5.63365,1.62529 1.06013,0.49218 1.15601,0.83283 0.28178,1.02017 -0.40571,0.087 -1.21582,0.17299 -2.43036,0.25814 -4.16009,0.26467 -7.30795,0.6235 -9.44187,1.07766 -2.2328,0.47529 -2.90043,1.00733 -1.98928,1.59704 0.88196,0.57571 2.62421,1.16376 5.23535,1.76437 0,0 6.87026,1.58029 6.87026,1.58029 0,0 10.36792,-2.29819 10.36792,-2.29819 1.59462,-0.35343 3.58152,-0.41186 5.9701,-0.1759 2.35624,0.21854 4.91761,0.6344 7.69391,1.25031 2.73418,0.6066 4.65441,1.18684 5.75196,1.74017 1.06391,0.53802 0.80425,0.99268 -0.78855,1.36278 0,0 -10.35995,2.40734 -10.35995,2.40734"
+-         id="path10003" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10005"
+          d="m 462.86528,187.90449 c -2.90569,-0.16593 -5.36269,-0.21815 -7.37595,-0.15683 -2.07622,0.0486 -3.71307,0.21108 -4.91243,0.48799 -2.39002,0.55188 -3.09951,1.24612 -2.11015,2.08594 0.42438,0.3709 1.25961,0.68923 2.50703,0.95438 1.43917,0.30592 3.27869,0.50507 5.51653,0.59672 1.65829,0.0597 4.08262,-0.0775 7.26301,-0.41077 5.84081,-0.60338 10.42557,-0.90895 13.78419,-0.91984 4.42293,-0.011 9.54763,0.32933 15.40812,1.02483 5.9049,0.7008 11.57911,1.60001 17.03778,2.70347 7.51845,1.51988 12.98207,3.05778 16.33947,4.61419 4.979,2.29033 5.3772,4.05686 1.0617,5.26911 -1.74579,0.49041 -3.95512,0.82442 -6.62498,1.0004 -2.58257,0.18616 -5.59293,0.22359 -9.02452,0.11209 0.63516,0.28397 1.03505,0.52794 1.19856,0.73158 0.16356,0.20401 0.064,0.35687 -0.30016,0.45818 -0.97288,0.27068 -2.879,0.24588 -5.70939,-0.0742 -2.87272,-0.34021 -6.9451,-1.08148 -12.17878,-2.2148 0,0 -7.21961,-1.56336 -7.21961,-1.56336 -5.09134,-1.1025 -8.37985,-1.95133 -9.90167,-2.55303 -1.5588,-0.61762 -1.
 8621,-1.04479 -0.91937,-1.28407 0.75656,-0.19198 2.09291,-0.20186 4.01286,-0.0297 1.85597,0.1581 4.61964,0.56195 8.30756,1.21468 3.69149,0.33625 6.93021,0.48413 9.70546,0.44275 2.70434,-0.056 4.90971,-0.31064 6.61127,-0.76242 2.77196,-0.73591 3.38675,-1.61784 1.87353,-2.64169 -0.78919,-0.49759 -2.00028,-0.91325 -3.63224,-1.24812 -2.70691,-0.55542 -5.4427,-0.87941 -8.21759,-0.97439 -2.77232,-0.0949 -6.38748,0.14627 -10.86946,0.72618 -6.6715,0.88095 -13.31679,1.01463 -19.85457,0.39749 -6.43141,-0.5993 -13.04559,-1.63447 -19.79212,-3.09094 -6.82592,-1.4736 -11.45826,-2.90095 -13.94953,-4.28347 -3.37925,-1.85317 -2.96738,-3.22257 1.14981,-4.12973 1.42276,-0.31344 3.19198,-0.52707 5.30887,-0.64174 2.07491,-0.13099 4.5307,-0.15741 7.37162,-0.0794 -0.45722,-0.25351 -0.73544,-0.45733 -0.83571,-0.61184 -0.0802,-0.1585 0.0166,-0.26808 0.29048,-0.32883 0.82077,-0.1819 2.44849,-0.14089 4.89001,0.12332 2.38932,0.25295 5.8038,0.82932 10.27286,1.73557 0,0 4.5771,0.92817 4.5771,0.92817 4.12
 998,0.83752 6.80238,1.44722 7.99164,1.82436 2.2679,0.73357 2.87579,1.23007 1.80718,1.48552 -0.72062,0.17229 -2.08136,0.17497 -4.07847,0.008 -1.99347,-0.16663 -4.25567,-0.47572 -6.77994,-0.92582"
+-         id="path10005" />
++         inkscape:connector-curvature="0" />
+     </g>
+     <g
+-       inkscape:groupmode="layer"
+-       id="layer1"
++       style="display:inline"
+        inkscape:label="ExtraImages"
+-       style="display:inline">
++       id="layer1"
++       inkscape:groupmode="layer">
+       <g
+-         sodipodi:type="inkscape:box3d"
+-         style="fill:#f0f0f0;fill-opacity:0.51111115;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
+-         id="g3195"
+-         inkscape:perspectiveID="#perspective5786"
++         inkscape:corner7="0.22235256 : 0.05733945 : 0.532878 : 1"
+          inkscape:corner0="0.4922944 : 0.12449455 : 0 : 1"
+-         inkscape:corner7="0.22235256 : 0.05733945 : 0.532878 : 1">
++         inkscape:perspectiveID="#perspective5786"
++         id="g3195"
++         style="fill:#f0f0f0;fill-opacity:0.51111115;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
++         sodipodi:type="inkscape:box3d">
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path3205"
+-           style="fill:#afafde;fill-rule:evenodd;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           d="M 133.59629,232.51954 253.10212,281.92761 540.69439,200.92065 414.29968,175.31088 z"
+            inkscape:box3dsidetype="13"
+-           d="M 133.59629,232.51954 253.10212,281.92761 540.69439,200.92065 414.29968,175.31088 z" />
++           style="fill:#afafde;fill-rule:evenodd;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           id="path3205"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path3197"
+-           style="fill:#353564;fill-rule:evenodd;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           d="m 133.59629,187.5183 0,45.00124 280.70339,-57.20866 0,-33.16019 z"
+            inkscape:box3dsidetype="6"
+-           d="m 133.59629,187.5183 0,45.00124 280.70339,-57.20866 0,-33.16019 z" />
++           style="fill:#353564;fill-rule:evenodd;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           id="path3197"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path3207"
+-           style="fill:#e9e9ff;fill-rule:evenodd;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           d="m 414.29968,142.15069 126.39471,20.50998 0,38.25998 -126.39471,-25.60977 z"
+            inkscape:box3dsidetype="11"
+-           d="m 414.29968,142.15069 126.39471,20.50998 0,38.25998 -126.39471,-25.60977 z" />
++           style="fill:#e9e9ff;fill-rule:evenodd;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           id="path3207"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path3199"
+-           style="fill:#24b8eb;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           d="M 133.59629,187.5183 253.10212,226.98839 540.69439,162.66067 414.29968,142.15069 z"
+            inkscape:box3dsidetype="5"
+-           d="M 133.59629,187.5183 253.10212,226.98839 540.69439,162.66067 414.29968,142.15069 z" />
++           style="fill:#24b8eb;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           id="path3199"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path3203"
+-           style="fill:#008bb8;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           d="m 253.10212,226.98839 0,54.93922 287.59227,-81.00696 0,-38.25998 z"
+            inkscape:box3dsidetype="14"
+-           d="m 253.10212,226.98839 0,54.93922 287.59227,-81.00696 0,-38.25998 z" />
++           style="fill:#008bb8;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           id="path3203"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path3201"
+-           style="fill:#00ade5;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           d="m 133.59629,187.5183 119.50583,39.47009 0,54.93922 -119.50583,-49.40807 z"
+            inkscape:box3dsidetype="3"
+-           d="m 133.59629,187.5183 119.50583,39.47009 0,54.93922 -119.50583,-49.40807 z" />
++           style="fill:#00ade5;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
++           id="path3201"
++           sodipodi:type="inkscape:box3dside" />
+       </g>
+       <g
+-         sodipodi:type="inkscape:box3d"
+-         style="fill:#24b8eb;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+-         id="g3998"
+-         inkscape:perspectiveID="#perspective4012"
++         inkscape:corner7="0.22235256 : 0.12449455 : 0.532878 : 1"
+          inkscape:corner0="0.4922944 : 0.24244228 : 0 : 1"
+-         inkscape:corner7="0.22235256 : 0.12449455 : 0.532878 : 1">
++         inkscape:perspectiveID="#perspective4012"
++         id="g3998"
++         style="fill:#24b8eb;fill-opacity:1;stroke:#253237;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
++         sodipodi:type="inkscape:box3d">
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path4008"
+-           style="fill:#afafde;fill-rule:evenodd;stroke:none"
++           d="M 133.59629,187.5183 253.10212,226.98839 540.69439,162.66067 414.29968,142.15069 z"
+            inkscape:box3dsidetype="13"
+-           d="M 133.59629,187.5183 253.10212,226.98839 540.69439,162.66067 414.29968,142.15069 z" />
++           style="fill:#afafde;fill-rule:evenodd;stroke:none"
++           id="path4008"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path4000"
+-           style="fill:#353564;fill-rule:evenodd;stroke:none"
++           d="m 133.59629,108.48046 0,79.03784 280.70339,-45.36761 0,-58.240838 z"
+            inkscape:box3dsidetype="6"
+-           d="m 133.59629,108.48046 0,79.03784 280.70339,-45.36761 0,-58.240838 z" />
++           style="fill:#353564;fill-rule:evenodd;stroke:none"
++           id="path4000"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path4010"
+-           style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
++           d="m 414.29968,83.909852 126.39471,11.552957 0,67.197861 -126.39471,-20.50998 z"
+            inkscape:box3dsidetype="11"
+-           d="m 414.29968,83.909852 126.39471,11.552957 0,67.197861 -126.39471,-20.50998 z" />
++           style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
++           id="path4010"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path4002"
+-           style="fill:#24b8eb;fill-opacity:1"
++           d="M 133.59629,108.48046 253.10212,130.49599 540.69439,95.462809 414.29968,83.909852 z"
+            inkscape:box3dsidetype="5"
+-           d="M 133.59629,108.48046 253.10212,130.49599 540.69439,95.462809 414.29968,83.909852 z" />
++           style="fill:#24b8eb;fill-opacity:1"
++           id="path4002"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path4006"
+-           style="fill:#008bb8;fill-opacity:1"
++           d="m 253.10212,130.49599 0,96.4924 287.59227,-64.32772 0,-67.197861 z"
+            inkscape:box3dsidetype="14"
+-           d="m 253.10212,130.49599 0,96.4924 287.59227,-64.32772 0,-67.197861 z" />
++           style="fill:#008bb8;fill-opacity:1"
++           id="path4006"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path4004"
+-           style="fill:#00ade5;fill-opacity:1"
++           d="m 133.59629,108.48046 119.50583,22.01553 0,96.4924 -119.50583,-39.47009 z"
+            inkscape:box3dsidetype="3"
+-           d="m 133.59629,108.48046 119.50583,22.01553 0,96.4924 -119.50583,-39.47009 z" />
++           style="fill:#00ade5;fill-opacity:1"
++           id="path4004"
++           sodipodi:type="inkscape:box3dside" />
+       </g>
+       <g
+-         id="text4480"
++         transform="matrix(0.80256968,0,0,0.80256968,38.124381,46.818937)"
+          style="font-size:40px;font-style:italic;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium Italic"
+-         transform="matrix(0.80256968,0,0,0.80256968,38.124381,46.818937)">
++         id="text4480">
+         <path
+-           id="path4487"
++           inkscape:connector-curvature="0"
+            d="m 143.91526,210.9311 c 0,0 -1.18454,24.55103 -1.18454,24.55103 0,0 -2.20126,-0.90734 -2.20126,-0.90734 0,0 0.12991,-2.63169 0.12991,-2.63169 -0.93879,1.79036 -1.9065,2.47622 -2.90333,2.06429 -1.22136,-0.50473 -2.21392,-2.01843 -2.98056,-4.53883 -0.76506,-2.51517 -1.14847,-5.52448 -1.15142,-9.03501 -0.003,-4.05437 0.43071,-7.21704 1.30508,-9.49091 0.89102,-2.27841 2.03847,-3.16512 3.445,-2.65101 0.66636,0.24361 1.23499,0.74282 1.70523,1.49806 0.47758,0.75889 0.96572,1.94715 1.46436,3.56555 0,0 0.15162,-3.23808 0.15162,-3.23808 0,0 2.21991,0.81394 2.21991,0.81394 m -2.70474,10.77799 c 9.4e-4,-2.20514 -0.23756,-4.08804 -0.71503,-5.64599 -0.47687,-1.57355 -1.09205,-2.50076 -1.84444,-2.78257 -0.81606,-0.3056 -1.49838,0.28994 -2.04775,1.783 -0.54795,1.50674 -0.82079,3.49941 -0.8196,5.97938 10e-4,2.16395 0.22976,4.0248 0.68657,5.58512 0.45737,1.56225 1.04603,2.48958 1.767,2.78117 0.80185,0.32429 1.49733,-0.26268 2.08586,-1.76474 0.59014,-1.54136 0.88635,-3.52038 0.88
 739,-5.93537"
+-           inkscape:connector-curvature="0" />
++           id="path4487" />
+         <path
+-           id="path4489"
++           inkscape:connector-curvature="0"
+            d="m 157.92113,195.55223 c 0,0 -2.33546,45.22859 -2.33546,45.22859 0,0 -2.295,-0.94598 -2.295,-0.94598 0,0 0.13145,-2.66681 0.13145,-2.66681 -0.57101,1.07748 -1.06372,1.76286 -1.47866,2.05777 -0.40732,0.26153 -0.90972,0.26858 -1.50673,0.0219 -1.35398,-0.55953 -2.45507,-2.17899 -3.30672,-4.85578 -0.84966,-2.68836 -1.27154,-5.87559 -1.26707,-9.56978 0.005,-3.94788 0.47592,-7.05654 1.41645,-9.32935 0.94456,-2.28249 2.13425,-3.16573 3.57161,-2.64034 0.73875,0.27007 1.36089,0.8317 1.86557,1.68538 0.52627,0.88083 1.07659,2.25139 1.65095,4.11269 0,0 1.21171,-23.87173 1.21171,-23.87173 0,0 2.3419,0.77347 2.3419,0.77347 m -3.92922,30.73909 c 0.006,-2.16483 -0.24748,-4.01389 -0.7586,-5.54441 -0.51041,-1.52834 -1.18081,-2.44732 -2.00988,-2.75785 -0.89539,-0.33531 -1.63523,0.25817 -2.2205,1.77658 -0.58371,1.5144 -0.87707,3.59168 -0.88126,6.23313 -0.004,2.22916 0.24219,4.11919 0.73769,5.67293 0.49618,1.538 1.15865,2.47523 1.98877,2.81091 0.86704,0.35063 1.60413,-0.26672 2.210
 49,-1.85616 0.6149,-1.55511 0.92642,-3.66731 0.93329,-6.33513"
+-           inkscape:connector-curvature="0" />
++           id="path4489" />
+         <path
+-           id="path4491"
++           inkscape:connector-curvature="0"
+            d="m 171.83406,200.14736 c 0,0 -2.55693,46.27694 -2.55693,46.27694 0,0 -2.40802,-0.99256 -2.40802,-0.99256 0,0 0.14408,-2.7277 0.14408,-2.7277 -0.60205,1.09661 -1.12096,1.79276 -1.55731,2.09015 -0.42825,0.26329 -0.95574,0.26517 -1.58195,0.006 -1.42008,-0.58685 -2.57217,-2.25538 -3.46001,-5.00292 -0.88568,-2.75922 -1.32126,-6.02433 -1.30829,-9.80383 0.0139,-4.03918 0.5153,-7.21532 1.50756,-9.53194 0.9966,-2.32672 2.24751,-3.21942 3.75541,-2.66825 0.77507,0.28335 1.4271,0.86403 1.95512,1.74255 0.55067,0.90656 1.1255,2.31463 1.72448,4.2253 0,0 1.32723,-24.42616 1.32723,-24.42616 0,0 2.45863,0.81203 2.45863,0.81203 m -4.19774,31.43101 c 0.0108,-2.21564 -0.25077,-4.11066 -0.78405,-5.68214 -0.53254,-1.5692 -1.23443,-2.51624 -2.10426,-2.84203 -0.93935,-0.35177 -1.71742,0.24846 -2.33525,1.79662 -0.61616,1.54398 -0.92878,3.66668 -0.93912,6.36944 -0.009,2.28085 0.24493,4.21722 0.76154,5.81207 0.51739,1.57879 1.21071,2.54466 2.08144,2.89675 0.90952,0.36781 1.68486,-0.25628 
 2.3252,-1.87659 0.64925,-1.5852 0.98121,-3.74375 0.9945,-6.47412"
+-           inkscape:connector-curvature="0" />
++           id="path4491" />
+         <path
+-           id="path4493"
++           inkscape:connector-curvature="0"
+            d="m 182.69754,240.8285 c -0.0146,1.96517 0.25017,3.6903 0.79476,5.17797 0.55309,1.49296 1.26652,2.41699 2.14161,2.77118 1.20457,0.48759 2.14181,-0.2399 2.80954,-2.18822 0,0 1.92241,3.38486 1.92241,3.38486 -0.69601,1.93926 -1.40388,3.19849 -2.1237,3.78089 -0.72587,0.59658 -1.62503,0.67216 -2.69605,0.22915 -1.69176,-0.69977 -3.02386,-2.46883 -4.00169,-5.30474 -0.97533,-2.82862 -1.44791,-6.27057 -1.41959,-10.33544 0.0297,-4.25897 0.60073,-7.61925 1.71709,-10.08492 1.11376,-2.46107 2.51227,-3.38933 4.19884,-2.7735 1.64135,0.59937 2.93032,2.37929 3.86168,5.34244 0.94917,2.99527 1.40506,6.7054 1.36602,11.12012 -0.004,0.4603 -0.0226,1.20346 -0.0554,2.22925 0,0 -8.51549,-3.34904 -8.51549,-3.34904 m 5.94733,-2.7777 c -0.23979,-4.27417 -1.16688,-6.71401 -2.77464,-7.31554 -1.51391,-0.56637 -2.51126,1.13572 -2.99678,5.09537 0,0 5.77142,2.22017 5.77142,2.22017"
+-           inkscape:connector-curvature="0" />
++           id="path4493" />
+         <path
+-           id="path4495"
++           inkscape:connector-curvature="0"
+            d="m 197.8251,230.69747 c 0,0 -0.14702,2.52361 -0.14702,2.52361 0.93046,-1.84506 1.99597,-2.55128 3.19747,-2.11217 0.72975,0.26675 1.28917,0.79597 1.67724,1.58783 0.3889,0.75353 0.73113,2.03235 1.02645,3.8365 1.19073,-2.4989 2.4622,-3.5065 3.8146,-3.01217 2.35158,0.85962 3.50317,3.84522 3.4413,8.9453 -0.006,0.5155 -0.0362,1.23097 -0.0897,2.14616 -0.0451,0.91806 -0.10965,2.04698 -0.19366,3.38638 0,0 -0.99233,15.02936 -0.99233,15.02936 0,0 -2.76874,-1.14125 -2.76874,-1.14125 0,0 1.03619,-15.71489 1.03619,-15.71489 0.0927,-1.46905 0.14324,-2.55901 0.15154,-3.26921 0.0283,-2.42778 -0.47649,-3.83675 -1.51169,-4.22448 -0.40812,-0.15281 -0.76332,-0.13757 -1.06576,0.0453 -0.30191,0.16313 -0.5639,0.50867 -0.78607,1.0364 -0.21349,0.51078 -0.39577,1.22001 -0.54687,2.1275 -0.14253,0.89037 -0.2581,1.97722 -0.34672,3.26042 0,0 -0.95735,15.07915 -0.95735,15.07915 0,0 -2.70807,-1.11624 -2.70807,-1.11624 0,0 1.01402,-15.95745 1.01402,-15.95745 0.0892,-1.45406 0.1367,-2.45477 0.14
 245,-3.00134 0.024,-2.28494 -0.48377,-3.62276 -1.52072,-4.01114 -1.49609,-0.56028 -2.39114,1.58906 -2.6901,6.4369 0,0 -0.93279,14.88957 -0.93279,14.88957 0,0 -2.64897,-1.09188 -2.64897,-1.09188 0,0 1.64547,-26.69011 1.64547,-26.69011 0,0 2.75982,1.01191 2.75982,1.01191"
+-           inkscape:connector-curvature="0" />
++           id="path4495" />
+         <path
+-           id="path4497"
++           inkscape:connector-curvature="0"
+            d="m 227.47251,241.56788 c 0,0 -1.96817,28.03272 -1.96817,28.03272 0,0 -2.9137,-1.201 -2.9137,-1.201 0,0 0.21426,-3.00044 0.21426,-3.00044 -1.27606,1.97872 -2.57236,2.69156 -3.88932,2.14733 -1.61264,-0.66642 -2.90516,-2.46805 -3.88202,-5.40218 -0.97452,-2.92712 -1.43562,-6.39083 -1.38499,-10.40048 0.0585,-4.63168 0.68291,-8.21622 1.87744,-10.75721 1.21742,-2.54665 2.75422,-3.48611 4.61431,-2.80621 0.88173,0.32234 1.62982,0.93102 2.24322,1.82656 0.62325,0.90039 1.2539,2.2934 1.89185,4.18002 0,0 0.25313,-3.69854 0.25313,-3.69854 0,0 2.94399,1.07943 2.94399,1.07943 m -3.77279,12.16064 c 0.0361,-2.52408 -0.25136,-4.69591 -0.86185,-6.51188 -0.60933,-1.83342 -1.41259,-2.93599 -2.4081,-3.30885 -1.07928,-0.40417 -1.99466,0.23144 -2.74726,1.90206 -0.75064,1.6857 -1.14372,3.94496 -1.18087,6.77954 -0.0324,2.47309 0.24184,4.61564 0.82339,6.43108 0.58235,1.81801 1.34902,2.92014 2.30157,3.30538 1.05986,0.42865 1.99317,-0.19242 2.79915,-1.86824 0.80908,-1.72138 1.23437,-3.96512
  1.27397,-6.72909"
+-           inkscape:connector-curvature="0" />
++           id="path4497" />
+         <path
+-           id="path4499"
++           inkscape:connector-curvature="0"
+            d="m 241.15171,249.44072 c 0,0 -0.51108,6.85965 -0.51108,6.85965 -0.59993,-2.04325 -1.1799,-3.56582 -1.73987,-4.56859 -0.55027,-0.97708 -1.20738,-1.6081 -1.97059,-1.89367 -1.15517,-0.43214 -2.11644,0.17099 -2.88523,1.80464 -0.76653,1.62888 -1.17268,3.9367 -1.22011,6.9248 -0.0445,2.80119 0.26393,5.17511 0.92596,7.12607 0.67183,1.97819 1.56355,3.1933 2.67726,3.64408 1.07168,0.4338 2.20133,-0.1552 3.39005,-1.77327 0,0 -0.52436,7.03659 -0.52436,7.03659 -1.19607,0.58312 -2.32359,0.65405 -3.38352,0.21562 -1.8828,-0.77879 -3.38549,-2.78338 -4.51401,-6.01055 -1.11646,-3.21472 -1.63998,-7.00391 -1.57276,-11.37894 0.0692,-4.50383 0.75204,-8.03336 2.05324,-10.59293 1.31708,-2.58949 2.92634,-3.54286 4.83129,-2.8473 1.56535,0.57162 3.04724,2.3875 4.44373,5.4538"
+-           inkscape:connector-curvature="0" />
++           id="path4499" />
+         <path
+-           id="path4501"
++           inkscape:connector-curvature="0"
+            d="m 252.58194,254.09736 c 0,0 -1.87702,3.28085 -1.87702,3.28085 -0.81074,-1.97994 -1.57331,-3.10222 -2.28776,-3.36939 -0.48496,-0.18133 -0.8941,-0.0281 -1.22769,0.45901 -0.32335,0.4692 -0.49289,1.14326 -0.50888,2.02239 -0.0156,0.858 0.10368,1.63024 0.35802,2.31723 0.25411,0.70838 0.79385,1.73768 1.62048,3.08984 1.18234,1.95741 1.96886,3.63812 2.35695,5.03831 0.41755,1.39168 0.60783,3.06493 0.57059,5.01782 -0.0537,2.81157 -0.54165,4.884 -1.46175,6.216 -0.93573,1.29895 -2.12289,1.64879 -3.55906,1.05475 -1.94572,-0.80482 -3.51487,-3.40136 -4.71379,-7.78467 0,0 2.0849,-2.32202 2.0849,-2.32202 0.79461,2.55648 1.66718,4.02867 2.61873,4.41396 0.53823,0.21794 0.97427,0.0795 1.30775,-0.41609 0.34335,-0.49234 0.52447,-1.23998 0.54307,-2.24271 0.0163,-0.87766 -0.10823,-1.64301 -0.37334,-2.29558 -0.12777,-0.32424 -0.35307,-0.79218 -0.67573,-1.40353 -0.32239,-0.61081 -0.7609,-1.36144 -1.31509,-2.25129 -0.97613,-1.62012 -1.6453,-3.08635 -2.00922,-4.40115 -0.36254,-1.37616 -0.
 52806,-2.94843 -0.49678,-4.7184 0.0471,-2.66732 0.52729,-4.71397 1.4427,-6.14168 0.91845,-1.4324 2.06564,-1.8996 3.44365,-1.39645 1.52731,0.55773 2.91459,2.50016 4.15927,5.8328"
+-           inkscape:connector-curvature="0" />
++           id="path4501" />
+       </g>
+       <g
+-         transform="matrix(0.74694175,0,0,0.74694175,45.485062,44.593966)"
++         id="text4949"
+          style="font-size:40px;font-style:italic;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium Italic"
+-         id="text4949">
++         transform="matrix(0.74694175,0,0,0.74694175,45.485062,44.593966)">
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4956"
+            d="m 142.69979,137.10297 c 0,0 -1.02955,33.67577 -1.02955,33.67577 0,0 -1.95085,-0.57539 -1.95085,-0.57539 0,0 0.11438,-3.62641 0.11438,-3.62641 -0.83178,2.72212 -1.69018,3.94864 -2.57494,3.68641 -1.08457,-0.32145 -1.96585,-2.08912 -2.6458,-5.29794 -0.67825,-3.20078 -1.01674,-7.18681 -1.01674,-11.96409 0,-5.51039 0.38729,-9.93148 1.16353,-13.27043 0.79003,-3.34576 1.80543,-4.8788 3.04874,-4.59076 0.58877,0.13642 1.0911,0.64686 1.50651,1.53207 0.42191,0.88799 0.85328,2.3539 1.29417,4.39917 0,0 0.13239,-4.42502 0.13239,-4.42502 0,0 1.95816,0.45662 1.95816,0.45662 m -2.38162,15.3911 c 0,-2.99293 -0.21149,-5.4766 -0.63396,-7.44868 -0.42183,-1.99292 -0.96573,-3.06948 -1.63097,-3.23169 -0.72176,-0.17595 -1.32564,0.83047 -1.81241,3.01599 -0.4859,2.20539 -0.72852,4.99168 -0.72852,8.36184 0,2.94297 0.20217,5.40768 0.60697,7.39634 0.40539,1.99165 0.92751,3.07935 1.56702,3.26122 0.71103,0.20221 1.32739,-0.80489 1.84844,-3.02486 0.52203,-2.27207 0.78343,-5.04988 0.78343,-8.3
 3016"
+-           id="path4956" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4958"
+            d="m 154.95323,112.41486 c 0,0 -1.92623,61.71348 -1.92623,61.71348 0,0 -2.02305,-0.59669 -2.02305,-0.59669 0,0 0.10998,-3.66649 0.10998,-3.66649 -0.50064,1.63638 -0.93339,2.71678 -1.29856,3.24286 -0.35864,0.4785 -0.80173,0.63929 -1.32886,0.48305 -1.196,-0.35447 -2.17072,-2.22885 -2.92647,-5.61729 -0.75369,-3.40336 -1.12977,-7.61039 -1.12977,-12.62806 0,-5.35535 0.41192,-9.70405 1.23761,-13.0536 0.82815,-3.35953 1.87288,-4.89719 3.13661,-4.60442 0.64921,0.15043 1.19644,0.72801 1.64111,1.73364 0.46368,1.03603 0.94955,2.72617 1.45772,5.07233 0,0 1.00373,-32.45575 1.00373,-32.45575 0,0 2.04618,0.37694 2.04618,0.37694 m -3.36226,42.52286 c -1e-5,-2.93233 -0.2264,-5.35968 -0.67863,-7.2797 -0.45151,-1.91688 -1.04224,-2.96322 -1.7713,-3.14099 -0.78768,-0.19203 -1.43735,0.82649 -1.94996,3.05208 -0.51168,2.22151 -0.76716,5.12229 -0.76715,8.70541 -1e-5,3.02634 0.21939,5.52006 0.65871,7.48353 0.44002,1.94232 1.02578,3.01856 1.75821,3.2268 0.76475,0.21744 1.41278,-0.84157 1.9
 4329,-3.18083 0.53762,-2.29319 0.80682,-5.24972 0.80683,-8.8663"
+-           id="path4958" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4960"
+            d="m 167.06579,114.64626 c 0,0 -2.00992,63.02991 -2.00992,63.02991 0,0 -2.11064,-0.62251 -2.11064,-0.62251 0,0 0.11473,-3.74419 0.11473,-3.74419 -0.52227,1.66819 -0.9737,2.76889 -1.35463,3.30386 -0.37409,0.4864 -0.83626,0.64776 -1.38608,0.4848 -1.24739,-0.36971 -2.2639,-2.29008 -3.052,-5.75504 -0.78591,-3.47998 -1.17805,-7.77816 -1.17805,-12.90181 0,-5.46847 0.42951,-9.90682 1.2905,-13.32287 0.86362,-3.42644 1.95315,-4.99145 3.27121,-4.6861 0.67716,0.15691 1.24799,0.74958 1.71185,1.77894 0.48371,1.06055 0.99058,2.78934 1.52074,5.18839 0,0 1.04721,-33.14671 1.04721,-33.14671 0,0 2.13508,0.39333 2.13508,0.39333 m -3.50816,43.4193 c -1e-5,-2.99509 -0.23619,-5.47563 -0.70797,-7.43918 -0.471,-1.96028 -1.08722,-3.0321 -1.84771,-3.21754 -0.82158,-0.20029 -1.49917,0.83644 -2.03379,3.10653 -0.53362,2.26586 -0.80004,5.22673 -0.80004,8.88581 0,3.0905 0.2288,5.6384 0.68696,7.64617 0.4589,1.98625 1.06983,3.08896 1.83376,3.30617 0.79768,0.2268 1.47367,-0.85081 2.02708,-3.2368 
 0.56086,-2.33898 0.8417,-5.35718 0.84171,-9.05116"
+-           id="path4960" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4962"
+            d="m 177.90406,167.53396 c 0,0 -1.88635,13.37534 -1.88635,13.37534 0,0 -2.4798,-0.7314 -2.4798,-0.7314 0,0 8.5941,-61.40315 8.5941,-61.40315 0,0 5.49381,65.55828 5.49381,65.55828 0,0 -2.47606,-0.73029 -2.47606,-0.73029 0,0 -1.15325,-14.41683 -1.15325,-14.41683 0,0 -6.09245,-1.65195 -6.09245,-1.65195 m 0.99827,-7.3414 c 0,0 4.43719,1.14553 4.43719,1.14553 0,0 -1.69728,-21.643 -1.69728,-21.643 0,0 -2.73991,20.49747 -2.73991,20.49747"
+-           id="path4962" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4964"
+            d="m 192.75692,148.77584 c 0,0 -0.12697,3.86553 -0.12697,3.86553 1.01023,-2.96327 2.07712,-4.3188 3.20127,-4.05837 1.34306,0.31118 2.46566,2.30556 3.36532,5.99023 0.90231,3.69569 1.35448,8.20525 1.35449,13.52042 -1e-5,5.89988 -0.51724,10.72485 -1.54904,14.46536 -1.02115,3.70347 -2.28559,5.32671 -3.79028,4.88074 -0.76729,-0.22741 -1.39457,-0.86013 -1.88273,-1.89728 -0.50856,-1.0417 -1.04794,-2.81175 -1.618,-5.30795 0,0 -0.8741,26.18906 -0.8741,26.18906 0,0 -2.31502,-0.7646 -2.31502,-0.7646 0,0 1.90518,-57.42645 1.90518,-57.42645 0,0 2.32988,0.54331 2.32988,0.54331 m 5.40346,19.04889 c -1e-5,-3.30891 -0.25849,-6.08753 -0.7748,-8.33299 -0.51544,-2.26802 -1.17277,-3.49809 -1.97107,-3.69274 -0.95235,-0.23218 -1.74603,0.8618 -2.38229,3.27753 -0.63493,2.41066 -0.95189,5.48779 -0.95188,9.2352 -1e-5,3.27574 0.26762,5.98325 0.80361,8.12542 0.53693,2.19855 1.23072,3.42012 2.08244,3.66228 0.8969,0.25501 1.65351,-0.79727 2.26877,-3.16101 0.61649,-2.42148 0.92521,-5.46059 0.92
 522,-9.11369"
+-           id="path4964" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4966"
+            d="m 214.24305,153.78621 c 0,0 -1.31435,38.00974 -1.31435,38.00974 0,0 -2.48877,-0.73404 -2.48877,-0.73404 0,0 0.14585,-4.09022 0.14585,-4.09022 -1.06049,3.03838 -2.15448,4.38616 -3.28161,4.0521 -1.38103,-0.40932 -2.50267,-2.44113 -3.36776,-6.08907 -0.86265,-3.63764 -1.29306,-8.14604 -1.29306,-13.53286 0,-6.21349 0.49246,-11.18485 1.4798,-14.92315 1.00522,-3.74687 2.29778,-5.44224 3.88129,-5.07538 0.75019,0.17382 1.39041,0.76705 1.91998,1.78061 0.53794,1.01712 1.08806,2.68746 1.65043,5.01282 0,0 0.1689,-4.99337 0.1689,-4.99337 0,0 2.4993,0.58282 2.4993,0.58282 m -3.03948,17.3009 c 0,-3.38017 -0.26974,-6.19298 -0.8085,-8.43545 -0.53784,-2.26554 -1.23115,-3.50039 -2.07889,-3.7071 -0.91948,-0.22416 -1.68853,0.89015 -2.30828,3.33872 -0.61851,2.47046 -0.9273,5.60476 -0.92729,9.40665 -1e-5,3.31998 0.25729,6.10848 0.77254,8.36836 0.51611,2.2637 1.18097,3.51257 1.99554,3.74422 0.90594,0.25764 1.69151,-0.8539 2.35579,-3.33921 0.6657,-2.54472 0.99909,-5.67149 0.99909,-9.37
 619"
+-           id="path4966" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4968"
+            d="m 225.85606,160.27285 c 0,0 -0.32974,9.25891 -0.32974,9.25891 -0.53316,-2.54039 -1.04195,-4.39401 -1.52648,-5.56273 -0.47601,-1.13738 -1.03693,-1.78408 -1.68229,-1.94111 -0.97722,-0.23772 -1.77766,0.84395 -2.40266,3.24086 -0.62377,2.3922 -0.9352,5.58535 -0.93519,9.58301 -1e-5,3.75126 0.29218,6.83011 0.87738,9.23994 0.594,2.44396 1.36325,3.80207 2.30903,4.07147 0.90969,0.25913 1.85325,-0.86598 2.83097,-3.38173 0,0 -0.34058,9.56174 -0.34058,9.56174 -1.00008,1.14095 -1.95034,1.57604 -2.85121,1.30856 -1.60121,-0.47541 -2.8986,-2.70866 -3.8959,-6.69199 -0.98649,-3.96852 -1.47857,-8.8796 -1.47857,-14.74267 0,-6.02664 0.53026,-10.92676 1.59348,-14.71003 1.07455,-3.82167 2.4152,-5.55208 4.02537,-5.1799 1.32215,0.30565 2.59117,2.28435 3.80639,5.94567"
+-           id="path4968" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4970"
+            d="m 232.48778,126.69839 c 0,0 -1.2248,34.40689 -1.2248,34.40689 1.06442,-2.62651 2.14849,-3.81555 3.25237,-3.55982 1.11579,0.25853 2.00797,1.49263 2.67467,3.70508 0.69253,2.19472 1.03936,4.94487 1.03937,8.24689 -1e-5,0.79026 -0.0123,1.69031 -0.0367,2.70007 -0.0245,0.98152 -0.0572,2.10196 -0.0979,3.36123 0,0 -0.84363,23.41094 -0.84363,23.41094 0,0 -2.68728,-0.79259 -2.68728,-0.79259 0,0 0.84874,-23.81693 0.84874,-23.81693 0.0486,-1.28016 0.0728,-2.4402 0.0729,-3.48004 -1e-5,-3.54092 -0.59854,-5.45732 -1.79226,-5.74838 -1.70224,-0.415 -2.68971,3.34888 -2.969,11.28478 0,0 -0.72901,20.41307 -0.72901,20.41307 0,0 -2.62726,-0.77489 -2.62726,-0.77489 0,0 2.47212,-69.84409 2.47212,-69.84409 0,0 2.6478,0.48779 2.6478,0.48779"
+-           id="path4970" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path4972"
+            d="m 243.86302,184.18013 c 0,2.96077 0.29923,5.4779 0.89852,7.55428 0.60873,2.08253 1.38589,3.25982 2.33269,3.52952 1.30314,0.3712 2.30716,-1.00805 3.00927,-4.14387 0,0 2.10256,4.51871 2.10256,4.51871 -0.73212,3.13364 -1.48381,5.24718 -2.25495,6.34396 -0.77779,1.12041 -1.74744,1.50699 -2.90723,1.16263 -1.83216,-0.54398 -3.2847,-2.8112 -4.36263,-6.79404 -1.07436,-3.96967 -1.61021,-9.01104 -1.61021,-15.13396 0,-6.40637 0.58948,-11.61792 1.77168,-15.6456 1.17819,-4.01578 2.67365,-5.82003 4.49073,-5.40001 1.7681,0.40873 3.16829,2.68802 4.19578,6.84588 1.04775,4.20396 1.57288,9.6313 1.57289,16.27199 -1e-5,0.69296 -0.0128,1.81558 -0.0385,3.36775 0,0 -9.20064,-2.47724 -9.20064,-2.47724 m 6.38024,-5.95778 c -0.29639,-6.34049 -1.31473,-9.72032 -3.04833,-10.14211 -1.63263,-0.39717 -2.69156,2.45136 -3.18233,8.53724 0,0 6.23066,1.60487 6.23066,1.60487"
+-           id="path4972" />
++           inkscape:connector-curvature="0" />
+       </g>
+       <g
+-         id="text5788"
++         transform="matrix(0.87020295,0,0,0.87020295,36.583926,33.755817)"
+          style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Sans"
+-         transform="matrix(0.87020295,0,0,0.87020295,36.583926,33.755817)">
++         id="text5788">
+         <path
+-           id="path5793"
++           inkscape:connector-curvature="0"
+            d="m 292.16734,221.79451 c 0,0 0.079,32.92107 0.079,32.92107 0,0 6.83396,-1.8594 6.83396,-1.8594 0.46993,-0.12786 0.80691,-0.0884 1.01132,0.11827 0.20419,0.18473 0.30715,0.48443 0.30895,0.89923 0.002,0.39306 -0.0986,0.7486 -0.30066,1.06669 -0.20232,0.31832 -0.53842,0.54236 -1.00864,0.67204 0,0 -15.85959,4.37404 -15.85959,4.37404 -0.49118,0.13546 -0.8436,0.0983 -1.05684,-0.11192 -0.21335,-0.21022 -0.32005,-0.51707 -0.32005,-0.92043 0,-0.42568 0.10663,-0.79078 0.31991,-1.09527 0.21307,-0.32663 0.56522,-0.55672 1.05608,-0.69027 0,0 6.99856,-1.90419 6.99856,-1.90419 0,0 -0.0639,-33.01316 -0.0639,-33.01316 0,0 -6.94528,1.58452 -6.94528,1.58452 -0.48709,0.11116 -0.83656,0.0697 -1.04802,-0.12452 -0.21157,-0.21626 -0.31738,-0.53384 -0.31738,-0.95255 0,-0.41857 0.10573,-0.77281 0.31723,-1.06267 0.2113,-0.3116 0.56052,-0.52201 1.04729,-0.63134 0,0 15.72034,-3.52906 15.72034,-3.52906 0.46618,-0.1046 0.80048,-0.0507 1.00326,0.16175 0.20255,0.1909 0.30468,0.4903 0.30646,0.898
 34 0.002,0.40818 -0.0977,0.76414 -0.29818,1.06788 -0.2008,0.28254 -0.53427,0.47704 -1.00074,0.58343 0,0 -6.78316,1.54752 -6.78316,1.54752"
+-           inkscape:connector-curvature="0" />
++           id="path5793" />
+         <path
+-           id="path5795"
++           inkscape:connector-curvature="0"
+            d="m 310.82617,224.548 c 0,0 0.0183,2.71052 0.0183,2.71052 1.59486,-2.82856 3.1975,-4.42813 4.80917,-4.80918 0.96652,-0.22849 1.81505,-0.0602 2.54657,0.50362 0.73011,0.54196 1.34443,1.48928 1.84362,2.84195 0.81039,-1.66756 1.62919,-2.95534 2.45658,-3.86518 0.83957,-0.93171 1.68046,-1.49641 2.52294,-1.6956 1.31778,-0.31154 2.3707,0.0529 3.16143,1.09107 1.03734,1.32998 1.56558,2.9259 1.58639,4.79109 0,0 0.20434,18.33386 0.20434,18.33386 0,0 1.53013,-0.41632 1.53013,-0.41632 0.42981,-0.11694 0.739,-0.0757 0.92789,0.12381 0.18853,0.17852 0.2851,0.46568 0.2898,0.86158 0.004,0.37517 -0.0849,0.71339 -0.26782,1.01476 -0.18312,0.30159 -0.48957,0.51171 -0.91962,0.63032 0,0 -3.35086,0.92415 -3.35086,0.92415 0,0 -0.22279,-20.77656 -0.22279,-20.77656 -0.0143,-1.33018 -0.30714,-2.3628 -0.87909,-3.0991 -0.57267,-0.73709 -1.22837,-1.01732 -1.9678,-0.8398 -0.66827,0.16051 -1.37063,0.69532 -2.10748,1.60588 -0.73886,0.89188 -1.5757,2.51342 -2.51176,4.86946 0,0 0.15842,17.6379 0.158
 42,17.6379 0,0 1.54833,-0.42128 1.54833,-0.42128 0.44115,-0.12002 0.75819,-0.0792 0.95147,0.12232 0.19296,0.18032 0.29136,0.47108 0.29523,0.8724 0.004,0.38029 -0.0887,0.72347 -0.27704,1.02961 -0.18854,0.30636 -0.50335,0.52043 -0.94475,0.64217 0,0 -3.43946,0.94859 -3.43946,0.94859 0,0 -0.17831,-20.87173 -0.17831,-20.87173 -0.0121,-1.41164 -0.31784,-2.49778 -0.91785,-3.25983 -0.5861,-0.78757 -1.24345,-1.09429 -1.97265,-0.91922 -0.67099,0.16116 -1.3334,0.62756 -1.98734,1.40021 -0.90879,1.0908 -1.86103,2.82298 -2.85755,5.20088 0,0 0.12057,17.88402 0.12057,17.88402 0,0 1.61271,-0.43879 1.61271,-0.43879 0.45299,-0.12325 0.77823,-0.083 0.97608,0.1207 0.1976,0.18215 0.29787,0.47663 0.3009,0.88354 0.003,0.38558 -0.0926,0.73385 -0.28674,1.04496 -0.19419,0.31131 -0.51774,0.52949 -0.971,0.6545 0,0 -5.16143,1.42351 -5.16143,1.42351 -0.46029,0.12695 -0.79127,0.0881 -0.99256,-0.11674 -0.20137,-0.20491 -0.30318,-0.50235 -0.30537,-0.89222 -0.002,-0.41142 0.0958,-0.76345 0.29429,-1.05603 0.19
 822,-0.314 0.5275,-0.53357 0.98751,-0.65873 0,0 1.62837,-0.44305 1.62837,-0.44305 0,0 -0.14116,-22.4169 -0.14116,-22.4169 0,0 -1.62022,0.3912 -1.62022,0.3912 -0.4577,0.11052 -0.78681,0.0614 -0.98695,-0.14757 -0.20023,-0.209 -0.30151,-0.51693 -0.3038,-0.92368 -0.002,-0.38522 0.0954,-0.72992 0.29266,-1.034 0.19711,-0.30384 0.52454,-0.51011 0.98197,-0.61888 0,0 3.52575,-0.83819 3.52575,-0.83819"
+-           inkscape:connector-curvature="0" />
++           id="path5795" />
+         <path
+-           id="path5797"
++           inkscape:connector-curvature="0"
+            d="m 350.89656,241.32467 c 0,0 -0.0589,-3.6804 -0.0589,-3.6804 -2.44263,3.80778 -5.10211,6.12062 -7.98027,6.91861 -2.10441,0.58347 -3.76815,0.25666 -4.98415,-0.98555 -1.21953,-1.26623 -1.84495,-3.04991 -1.87379,-5.34667 -0.0317,-2.52154 0.73085,-4.92487 2.28129,-7.20305 1.54219,-2.26605 3.8038,-3.77126 6.77195,-4.51991 0.7964,-0.20085 1.66062,-0.33746 2.59222,-0.41005 0.92884,-0.0925 1.93136,-0.11301 3.00698,-0.0616 0,0 -0.0657,-4.10694 -0.0657,-4.10694 -0.0222,-1.38732 -0.47413,-2.48748 -1.3571,-3.30238 -0.88479,-0.81652 -2.19971,-1.01605 -3.95,-0.59577 -1.34605,0.32326 -3.2353,1.35808 -5.67763,3.11343 -0.44361,0.31258 -0.72851,0.48429 -0.85424,0.51483 -0.22367,0.0544 -0.4211,-0.0207 -0.59224,-0.22543 -0.1572,-0.2081 -0.23822,-0.49632 -0.24303,-0.86451 -0.005,-0.34763 0.0618,-0.6405 0.19913,-0.87854 0.1918,-0.35344 0.97539,-0.96079 2.34657,-1.81956 2.14879,-1.36681 3.76798,-2.17692 4.86556,-2.43642 2.17117,-0.5133 3.8675,-0.11811 5.09661,1.18044 1.22539,1.27503 
 1.8531,2.9031 1.88568,4.88818 0,0 0.27554,16.79617 0.27554,16.79617 0,0 2.26031,-0.61499 2.26031,-0.61499 0.41544,-0.11304 0.71203,-0.0724 0.89013,0.12173 0.17763,0.17395 0.26972,0.45203 0.27631,0.83437 0.006,0.36231 -0.0756,0.68817 -0.24525,0.97765 -0.1699,0.28969 -0.46252,0.49188 -0.87818,0.60651 0,0 -3.98778,1.09982 -3.98778,1.09982 m -0.20304,-12.6875 c -0.80507,-0.13756 -1.65804,-0.17224 -2.55931,-0.10371 -0.90358,0.0688 -1.85617,0.23114 -2.85824,0.48756 -2.52482,0.64614 -4.49945,1.96292 -5.91531,3.95406 -1.07701,1.49735 -1.60605,3.09291 -1.58411,4.78359 0.0203,1.56816 0.45251,2.77768 1.29533,3.62647 0.85525,0.84341 2.07851,1.0467 3.66561,0.61257 1.51075,-0.41325 2.89832,-1.234 4.16372,-2.45986 1.27358,-1.2449 2.56786,-3.01121 3.88202,-5.29462 0,0 -0.0897,-5.60606 -0.0897,-5.60606"
+-           inkscape:connector-curvature="0" />
++           id="path5797" />
+         <path
+-           id="path5799"
++           inkscape:connector-curvature="0"
+            d="m 375.34938,213.69585 c 0,0 -0.0974,-4.46393 -0.0974,-4.46393 0,0 3.68773,-0.87669 3.68773,-0.87669 0.37208,-0.0884 0.64113,-0.0368 0.8074,0.15502 0.16617,0.1917 0.25341,0.46963 0.26178,0.83387 0.008,0.34517 -0.066,0.6522 -0.22166,0.92112 -0.15581,0.26917 -0.41973,0.44869 -0.792,0.53856 0,0 -2.11132,0.50977 -2.11132,0.50977 0,0 0.54123,24.40071 0.54123,24.40071 0.0363,1.63856 -0.15744,3.16664 -0.58194,4.58541 -0.2835,0.94739 -0.76869,1.98351 -1.45663,3.10962 -0.68973,1.12896 -1.32331,1.97649 -1.90026,2.54121 -0.57809,0.56581 -1.35962,0.99328 -2.34591,1.28221 0,0 -4.61112,1.35073 -4.61112,1.35073 -0.39039,0.11434 -0.67276,0.0767 -0.84684,-0.11314 -0.17377,-0.16995 -0.26435,-0.44453 -0.27168,-0.82361 -0.007,-0.37906 0.0714,-0.71279 0.23628,-1.00117 0.16471,-0.28821 0.4423,-0.4887 0.83248,-0.60152 0,0 4.66707,-1.3197 4.66707,-1.3197 0.94729,-0.27395 1.78841,-0.89388 2.52391,-1.85846 0.74626,-0.96574 1.35024,-2.23429 1.81265,-3.80502 0.26003,-0.90063 0.37608,-1.98
 619 0.34838,-3.25697 0,0 -0.16086,-7.37517 -0.16086,-7.37517 -1.62758,4.07072 -3.80169,6.48925 -6.53059,7.23934 -2.23287,0.61374 -4.19888,-0.12311 -5.89159,-2.21938 -1.68617,-2.12737 -2.56457,-4.99526 -2.6305,-8.59335 -0.0658,-3.59204 0.69765,-6.85485 2.28324,-9.77979 1.5891,-2.91055 3.49618,-4.62319 5.71739,-5.14835 2.71476,-0.64182 4.95439,0.6184 6.73072,3.76863 m 0.16039,7.3538 c -0.0626,-2.87086 -0.7569,-5.1338 -2.0858,-6.79534 -1.32015,-1.66944 -2.87807,-2.29072 -4.67812,-1.8585 -1.80975,0.43462 -3.35087,1.81991 -4.62062,4.16259 -1.27628,2.33429 -1.88951,4.95932 -1.83504,7.86963 0.0549,2.93412 0.76232,5.25114 2.11916,6.94432 1.35246,1.66842 2.93958,2.25345 4.75697,1.76072 1.80761,-0.49005 3.33004,-1.90799 4.57015,-4.24741 1.2464,-2.3511 1.83598,-4.96126 1.7733,-7.83601"
+-           inkscape:connector-curvature="0" />
++           id="path5799" />
+         <path
+-           id="path5801"
++           inkscape:connector-curvature="0"
+            d="m 400.95375,215.84309 c 0,0 -15.30351,3.94188 -15.30351,3.94188 0.34391,3.04783 1.23396,5.34503 2.66637,6.88627 1.43922,1.51372 3.17433,1.99038 5.19951,1.43641 1.12095,-0.30662 2.28367,-0.91984 3.48738,-1.83766 1.19883,-0.91409 2.16489,-1.95211 2.90025,-3.11439 0.2145,-0.34084 0.40349,-0.53306 0.56706,-0.57689 0.1868,-0.05 0.35355,0.0278 0.50028,0.23369 0.14614,0.18703 0.22361,0.43961 0.23247,0.75782 0.009,0.31828 -0.0759,0.65247 -0.25418,1.00277 -0.53474,1.08992 -1.51174,2.24633 -2.93533,3.4719 -1.41926,1.20943 -2.89777,2.0288 -4.43582,2.45524 -2.59183,0.71861 -4.80714,-0.0257 -6.63604,-2.24415 -1.8247,-2.25008 -2.7858,-5.3079 -2.87757,-9.16136 -0.0834,-3.50233 0.67052,-6.70553 2.2543,-9.60045 1.58612,-2.87997 3.57782,-4.59755 5.9692,-5.16295 2.44485,-0.578 4.47658,0.20903 6.10451,2.35191 1.62144,2.1165 2.47361,5.16594 2.56112,9.15996 m -1.55297,-1.99958 c -0.36339,-2.52164 -1.19348,-4.43925 -2.49343,-5.75652 -1.29227,-1.32421 -2.81005,-1.77891 -4.55736,-1.35
 935 -1.75678,0.42189 -3.25581,1.59979 -4.49431,3.53879 -1.24433,1.94813 -1.99432,4.30819 -2.24605,7.0779 0,0 13.79115,-3.50082 13.79115,-3.50082"
+-           inkscape:connector-curvature="0" />
++           id="path5801" />
+       </g>
+       <g
+-         transform="translate(1.4477142e-8,-14.516129)"
++         id="text6335"
+          style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Sans"
+-         id="text6335">
++         transform="translate(1.4477142e-8,-14.516129)">
+         <path
+-           inkscape:connector-curvature="0"
++           id="path6342"
+            d="m 289.7812,172.74924 c 0,0 0,30.32096 0,30.32096 0,0 5.31622,-1.09403 5.31622,-1.09403 0.36864,-0.0759 0.6328,-0.009 0.79253,0.19948 0.15968,0.18869 0.23953,0.47439 0.23955,0.85707 -2e-5,0.36257 -0.0799,0.68117 -0.23955,0.95582 -0.15973,0.27468 -0.42389,0.45007 -0.79253,0.52616 0,0 -12.20372,2.51907 -12.20372,2.51907 -0.37097,0.0766 -0.63686,0.0102 -0.79765,-0.19916 -0.16081,-0.20937 -0.24121,-0.49598 -0.24121,-0.85983 0,-0.38404 0.0804,-0.7038 0.24121,-0.95925 0.16079,-0.27564 0.42668,-0.45161 0.79765,-0.52795 0,0 5.3343,-1.09775 5.3343,-1.09775 0,0 0,-30.33259 0,-30.33259 0,0 -5.3343,1.0578 -5.3343,1.0578 -0.37097,0.0736 -0.63686,0.0152 -0.79765,-0.17532 -0.16081,-0.21064 -0.24121,-0.50801 -0.24121,-0.89209 0,-0.38402 0.0804,-0.70312 0.24121,-0.9573 0.16079,-0.2743 0.42668,-0.44812 0.79765,-0.52149 0,0 12.20372,-2.41236 12.20372,-2.41236 0.36864,-0.0728 0.6328,-0.004 0.79253,0.20591 0.15968,0.19002 0.23953,0.47636 0.23955,0.85902 -2e-5,0.38273 -0.0799,0.7107
 6 -0.23955,0.98409 -0.15973,0.25327 -0.42389,0.41645 -0.79253,0.48952 0,0 -5.31622,1.05422 -5.31622,1.05422"
+-           id="path6342" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path6344"
+            d="m 304.56912,176.44974 c 0,0 0,2.56275 0,2.56275 1.30843,-2.57317 2.62214,-3.99091 3.94109,-4.25437 0.79339,-0.15843 1.48888,0.0539 2.08658,0.63694 0.5975,0.56281 1.09732,1.50612 1.49954,2.82986 0.68233,-1.5411 1.37053,-2.72191 2.0646,-3.54263 0.70597,-0.84286 1.41171,-1.33466 2.11721,-1.47559 1.10637,-0.22094 1.98741,0.19403 2.64338,1.24457 0.86213,1.3493 1.29307,2.9247 1.29309,4.72665 0,0 0,17.62938 0,17.62938 0,0 1.29225,-0.26593 1.29225,-0.26593 0.36384,-0.0749 0.62457,-0.008 0.78222,0.19923 0.1576,0.18768 0.23641,0.47161 0.23643,0.8518 -2e-5,0.3602 -0.0789,0.67662 -0.23643,0.94926 -0.15765,0.27268 -0.41838,0.44656 -0.78222,0.52167 0,0 -2.82218,0.58254 -2.82218,0.58254 0,0 0,-19.91946 0,-19.91946 -2e-5,-1.28187 -0.2369,-2.29585 -0.71072,-3.04209 -0.47398,-0.74635 -1.02099,-1.0575 -1.64109,-0.93328 -0.55951,0.11212 -1.14958,0.58117 -1.77024,1.40731 -0.62086,0.80639 -1.32718,2.30204 -2.11901,4.48741 0,0 0,16.76074 0,16.76074 0,0 1.27899,-0.26321 1.27899,-0.26
 321 0.36526,-0.0752 0.62699,-0.009 0.78525,0.19931 0.15823,0.18797 0.23733,0.47243 0.23735,0.85335 -2e-5,0.3609 -0.0792,0.67796 -0.23735,0.95119 -0.15826,0.27327 -0.41999,0.4476 -0.78525,0.52299 0,0 -2.83314,0.58481 -2.83314,0.58481 0,0 0,-19.77746 0,-19.77746 -1e-5,-1.34457 -0.2439,-2.39933 -0.73178,-3.16444 -0.47581,-0.78777 -1.01275,-1.12183 -1.61085,-1.00201 -0.54945,0.11011 -1.09295,0.51024 -1.63047,1.20051 -0.74545,0.97331 -1.52785,2.54716 -2.34725,4.72194 0,0 0,16.79351 0,16.79351 0,0 1.30233,-0.26801 1.30233,-0.26801 0.3667,-0.0755 0.62946,-0.009 0.78832,0.19938 0.15885,0.18827 0.23827,0.47325 0.23828,0.85492 -1e-5,0.3616 -0.0794,0.6793 -0.23828,0.95314 -0.15886,0.27387 -0.42162,0.44864 -0.78832,0.52433 0,0 -4.14836,0.8563 -4.14836,0.8563 -0.36753,0.0759 -0.63097,0.01 -0.79027,-0.199 -0.15931,-0.20855 -0.23897,-0.49391 -0.23897,-0.85606 0,-0.38226 0.0796,-0.70045 0.23897,-0.95457 0.1593,-0.2742 0.42274,-0.44911 0.79027,-0.52474 0,0 1.30416,-0.26839 1.30416,-0.26839 0
 ,0 0,-21.02253 0,-21.02253 0,0 -1.30416,0.26159 -1.30416,0.26159 -0.36753,0.0737 -0.63097,0.006 -0.79027,-0.20361 -0.15931,-0.20947 -0.23897,-0.50535 -0.23897,-0.88764 0,-0.36212 0.0796,-0.67984 0.23897,-0.95317 0.1593,-0.27324 0.42274,-0.44662 0.79027,-0.52013 0,0 2.84603,-0.56906 2.84603,-0.56906"
+-           id="path6344" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path6346"
+            d="m 338.26689,195.60376 c 0,0 0,-3.61767 0,-3.61767 -2.20252,3.52388 -4.55814,5.54631 -7.06742,6.06489 -1.82363,0.37688 -3.24985,-0.0877 -4.27786,-1.39461 -1.02852,-1.32754 -1.54299,-3.10136 -1.54298,-5.32096 -10e-6,-2.43953 0.67785,-4.70711 2.03287,-6.80168 1.35409,-2.09312 3.3292,-3.40199 5.92348,-3.92714 0.69926,-0.14153 1.45854,-0.21543 2.27777,-0.22172 0.81887,-0.0262 1.70362,0.0239 2.65414,0.15025 0,0 0,-4.06615 0,-4.06615 -2e-5,-1.37528 -0.38498,-2.49383 -1.15511,-3.35589 -0.77046,-0.86234 -1.92668,-1.1392 -3.46933,-0.83014 -1.18192,0.23683 -2.84139,1.13844 -4.97959,2.70598 -0.38682,0.2775 -0.63466,0.4272 -0.74347,0.44903 -0.19348,0.0389 -0.36277,-0.047 -0.50789,-0.25774 -0.13305,-0.2131 -0.19957,-0.49956 -0.19957,-0.85935 0,-0.33976 0.0605,-0.6217 0.18143,-0.84583 0.1693,-0.33368 0.85246,-0.88012 2.04895,-1.63902 1.8839,-1.21542 3.30773,-1.91909 4.27248,-2.1118 1.91602,-0.38264 3.40901,0.10672 4.47992,1.46726 1.07032,1.33994 1.60526,2.99588 1.60527,4.968
 38 0,0 0,16.61698 0,16.61698 0,0 2.01829,-0.41534 2.01829,-0.41534 0.37219,-0.0766 0.63629,-0.0115 0.79235,0.19532 0.15601,0.18689 0.23402,0.46947 0.23404,0.84774 -2e-5,0.35837 -0.0781,0.67311 -0.23404,0.9442 -0.15606,0.27114 -0.42016,0.44511 -0.79235,0.52194 0,0 -3.55138,0.73307 -3.55138,0.73307 m 0,-12.49741 c -0.70985,-0.19458 -1.46206,-0.29097 -2.25669,-0.2891 -0.79498,0.002 -1.63244,0.0922 -2.51243,0.27083 -2.20778,0.44829 -3.93465,1.58796 -5.17941,3.41949 -0.94315,1.37125 -1.41489,2.87666 -1.41489,4.51572 0,1.51915 0.35684,2.72513 1.07033,3.61771 0.72532,0.8898 1.77657,1.19268 3.15324,0.90903 1.31539,-0.27102 2.53349,-0.95103 3.65445,-2.03968 1.13235,-1.11048 2.29417,-2.73492 3.4854,-4.87285 0,0 0,-5.53115 0,-5.53115"
+-           id="path6346" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path6348"
+            d="m 361.03362,169.73799 c 0,0 0,-4.57811 0,-4.57811 0,0 3.51111,-0.70203 3.51111,-0.70203 0.35609,-0.0712 0.61126,-0.003 0.76556,0.20328 0.15424,0.20673 0.23137,0.49814 0.23139,0.87424 -2e-5,0.35635 -0.0772,0.66876 -0.23139,0.93722 -0.1543,0.26853 -0.40947,0.4385 -0.76556,0.50991 0,0 -2.01322,0.40381 -2.01322,0.40381 0,0 0,24.93239 0,24.93239 -2e-5,1.66412 -0.21394,3.19438 -0.64182,4.59098 -0.28533,0.93124 -0.76094,1.93198 -1.42698,3.00242 -0.66629,1.07077 -1.27327,1.8618 -1.82089,2.37289 -0.5478,0.51123 -1.2804,0.8629 -2.198,1.05498 0,0 -4.25995,0.89161 -4.25995,0.89161 -0.3584,0.075 -0.61529,0.01 -0.77062,-0.19631 -0.15536,-0.18605 -0.23304,-0.46782 -0.23304,-0.8453 0,-0.37749 0.0777,-0.70165 0.23304,-0.9725 0.15533,-0.27081 0.41222,-0.44362 0.77062,-0.51839 0,0 4.31359,-0.87039 4.31359,-0.87039 0.88183,-0.18403 1.67398,-0.72615 2.37652,-1.6262 0.71418,-0.90221 1.3032,-2.12502 1.76716,-3.66839 0.26165,-0.88672 0.39248,-1.97415 0.39248,-3.26235 0,0 0,-7.49145 0
 ,-7.49145 -1.60613,3.99699 -3.67816,6.25834 -6.21753,6.78211 -2.06489,0.42591 -3.85102,-0.4773 -5.35762,-2.71118 -1.49577,-2.25793 -2.24408,-5.18732 -2.24408,-8.78698 0,-3.59961 0.74831,-6.82288 2.24408,-9.66819 1.5066,-2.84552 3.29273,-4.47385 5.35762,-4.88629 2.53937,-0.50714 4.6114,0.90308 6.21753,4.22817 m 0,7.52118 c 0,-2.93314 -0.60662,-5.28816 -1.82036,-7.06588 -1.20261,-1.78115 -2.6443,-2.50382 -4.3256,-2.16698 -1.68272,0.33717 -3.12789,1.64976 -4.33499,3.9386 -1.20785,2.27039 -1.81204,4.86726 -1.81204,7.78958 0,2.94224 0.60419,5.31369 1.81204,7.11356 1.2071,1.77893 2.65227,2.49487 4.33499,2.14886 1.6813,-0.34572 3.12299,-1.65368 4.3256,-3.9231 1.21374,-2.29027 1.82036,-4.90147 1.82036,-7.83464"
+-           id="path6348" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path6350"
+            d="m 385.85186,173.58032 c 0,0 -15.13765,3.07797 -15.13765,3.07797 0.26034,3.16944 1.06482,5.60432 2.41279,7.30409 1.35885,1.67644 3.03546,2.3087 5.02902,1.89796 1.10796,-0.22828 2.26831,-0.77304 3.48095,-1.634 1.21188,-0.86041 2.19967,-1.87147 2.96371,-3.03319 0.22326,-0.34131 0.41713,-0.52883 0.58164,-0.56257 0.18794,-0.0385 0.3524,0.0557 0.49337,0.2829 0.14092,0.20743 0.21138,0.47854 0.21141,0.81334 -3e-5,0.33482 -0.094,0.67909 -0.28188,1.03285 -0.56391,1.10093 -1.56872,2.23389 -3.01514,3.39933 -1.43573,1.14415 -2.91371,1.87353 -4.43406,2.18773 -2.54834,0.52665 -4.68036,-0.42556 -6.39472,-2.85877 -1.70402,-2.4575 -2.55658,-5.67472 -2.55657,-9.65009 -10e-6,-3.61935 0.79928,-6.88542 2.39688,-9.79647 1.60812,-2.91102 3.59284,-4.60156 5.95302,-5.07297 2.42802,-0.4849 4.42362,0.44725 5.9881,2.79462 1.5632,2.32586 2.3326,5.59781 2.30913,9.81727 m -1.49798,-2.20747 c -0.29388,-2.67927 -1.06987,-4.74949 -2.32855,-6.21109 -1.24773,-1.46483 -2.73778,-2.02412 -4.4707,-1.
 67694 -1.73447,0.34753 -3.22825,1.49618 -4.48082,3.44663 -1.25337,1.95173 -2.03418,4.35276 -2.34185,7.20251 0,0 13.62192,-2.76111 13.62192,-2.76111"
+-           id="path6350" />
++           inkscape:connector-curvature="0" />
+       </g>
+     </g>
+     <text
+-       xml:space="preserve"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+-       x="82.258064"
+-       y="465.7258"
++       sodipodi:linespacing="125%"
+        id="text4798"
+-       sodipodi:linespacing="125%"><tspan
+-         sodipodi:role="line"
+-         id="tspan4800"
++       y="465.7258"
++       x="82.258064"
++       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
++       xml:space="preserve"><tspan
++         y="465.7258"
+          x="82.258064"
+-         y="465.7258" /></text>
++         id="tspan4800"
++         sodipodi:role="line" /></text>
+     <path
+-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+-       d="m 252.05613,378.98631 0,-97.49115 288.50624,-81.0432 0,67.83207 z"
+-       id="path5189"
+-       inkscape:connector-curvature="0"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90" />
+-    <path
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
+        inkscape:connector-curvature="0"
+-       id="path5394"
++       id="path5189"
+        d="m 252.05613,378.98631 0,-97.49115 288.50624,-81.0432 0,67.83207 z"
+-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
++    <path
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90" />
+-    <g
+-       id="text10309"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium"
+-       transform="matrix(0.64605126,0,0,0.64605126,58.138831,104.45649)"
+        inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
++       d="m 252.05613,378.98631 0,-97.49115 288.50624,-81.0432 0,67.83207 z"
++       id="path5394"
++       inkscape:connector-curvature="0" />
++    <g
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       transform="matrix(0.64605126,0,0,0.64605126,58.138831,104.45649)"
++       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium"
++       id="text10309">
+       <path
+-         id="path10316"
++         inkscape:connector-curvature="0"
+          d="m 133.59691,311.19724 c 0,0 0.0341,-71.93226 0.0341,-71.93226 0,0 4.97796,2.12108 4.97796,2.12108 2.4191,1.03084 4.34433,2.57775 5.76509,4.64185 1.53424,2.08909 2.93256,5.12989 4.19288,9.12732 2.57036,8.129 3.86225,17.92567 3.85772,29.33406 -0.005,11.44161 -1.35809,19.98395 -4.04123,25.58595 -1.33737,2.7781 -2.73156,4.44376 -4.18165,5.00473 -1.34807,0.6107 -3.24782,0.22861 -5.68779,-1.13492 0,0 -4.91706,-2.74781 -4.91706,-2.74781 m 3.57614,-8.27683 c 0,0 1.62482,0.87739 1.62482,0.87739 1.62931,0.87983 2.99125,1.09483 4.08175,0.6397 1.09483,-0.52025 2.08846,-1.74916 2.97977,-3.68986 1.83397,-4.03722 2.75714,-10.08799 2.76049,-18.13201 0.003,-8.10729 -0.90365,-15.10613 -2.71203,-20.96799 -1.61748,-5.20484 -3.98605,-8.49142 -7.08641,-9.87087 0,0 -1.62455,-0.72279 -1.62455,-0.72279 0,0 -0.0238,51.86643 -0.0238,51.86643"
+-         inkscape:connector-curvature="0" />
++         id="path10316" />
+       <path
+-         id="path10318"
++         inkscape:connector-curvature="0"
+          d="m 171.6044,310.79008 c 0,0 -11.92047,-6.21665 -11.92047,-6.21665 0.0989,3.96019 0.53319,7.30268 1.30431,10.03197 0.77323,2.70408 1.76874,4.38967 2.98883,5.05334 0.95256,0.51815 1.74332,0.28998 2.37093,-0.68737 0.61752,-0.98564 1.32273,-3.04997 2.11628,-6.19783 0,0 3.29422,7.02686 3.29422,7.02686 -0.51213,2.21738 -1.05221,4.06653 -1.62009,5.5482 -0.56679,1.44567 -1.17269,2.56833 -1.81744,3.36871 -0.64334,0.76559 -1.33663,1.20382 -2.0795,1.31578 -0.74099,0.11163 -1.54239,-0.0749 -2.40371,-0.5583 -2.45636,-1.3786 -4.41214,-4.75525 -5.8774,-10.1178 -1.45767,-5.36709 -2.18221,-11.80744 -2.17931,-19.34157 0.003,-7.46897 0.70996,-13.16746 2.12652,-17.11048 1.43471,-3.89223 3.34632,-5.28239 5.74447,-4.14868 2.4412,1.15416 4.3855,4.33633 5.82264,9.55868 1.43278,5.20986 2.15057,11.83002 2.14801,19.84136 0,0 -0.0183,2.6338 -0.0183,2.6338 m -3.99695,-11.19743 c -0.53631,-6.20848 -1.83108,-9.81172 -3.87414,-10.81331 -0.46334,-0.22708 -0.89781,-0.22714 -1.30355,-10e-4 -0.4051
 7,0.19331 -0.77615,0.59888 -1.11306,1.21644 -0.32533,0.58979 -0.60557,1.36421 -0.84087,2.32318 -0.23512,0.95823 -0.41428,2.09033 -0.53758,3.39647 0,0 7.6692,3.87824 7.6692,3.87824"
+-         inkscape:connector-curvature="0" />
++         id="path10318" />
+       <path
+-         id="path10320"
++         inkscape:connector-curvature="0"
+          d="m 179.93525,251.66351 c 0,0 -0.0121,41.86591 -0.0121,41.86591 1.62022,-3.948 3.46639,-5.4419 5.54274,-4.46032 2.41014,1.13948 4.43092,4.61505 6.05427,10.44356 1.6322,5.82609 2.45081,12.51411 2.44909,20.04041 -0.002,7.76847 -0.82973,13.74432 -2.47695,17.91009 -1.62595,4.11583 -3.66666,5.47456 -6.11352,4.10129 -2.05202,-1.15168 -3.87289,-4.37212 -5.46671,-9.64566 0,0 -0.001,5.15996 -0.001,5.15996 0,0 -4.00924,-2.24049 -4.00924,-2.24049 0,0 0.0258,-84.83261 0.0258,-84.83261 0,0 4.00805,1.65786 4.00805,1.65786 m 9.73919,66.18469 c 0.001,-4.79896 -0.46713,-8.94263 -1.4027,-12.42285 -0.94491,-3.54353 -2.12544,-5.65875 -3.53881,-6.35166 -1.50347,-0.73697 -2.72284,0.13731 -3.66162,2.61413 -0.92386,2.44141 -1.38538,5.98483 -1.38672,10.63611 -0.001,4.78635 0.45197,8.85375 1.36222,12.20995 0.91306,3.43436 2.11948,5.5629 3.62283,6.38065 1.42549,0.7754 2.6129,-0.0643 3.55932,-2.52762 0.96174,-2.49883 1.44433,-6.01376 1.44548,-10.53871"
+-         inkscape:connector-curvature="0" />
++         id="path10320" />
+       <path
+-         id="path10322"
++         inkscape:connector-curvature="0"
+          d="m 202.80947,298.68717 c 0,0 -0.0101,51.18253 -0.0101,51.18253 0,0 -4.32611,-2.41756 -4.32611,-2.41756 0,0 0.0109,-50.81986 0.0109,-50.81986 0,0 4.3253,2.05489 4.3253,2.05489 m -4.96901,-23.46565 c 4.4e-4,-2.04922 0.27393,-3.70212 0.8212,-4.96036 0.54823,-1.26037 1.20593,-1.72748 1.97379,-1.39905 0.78264,0.3349 1.45126,1.37296 2.00509,3.11597 0.55484,1.71129 0.83243,3.63731 0.83203,5.7757 -4.3e-4,2.13859 -0.27873,3.8374 -0.83418,5.09473 -0.54158,1.26101 -1.20414,1.71303 -1.98687,1.35837 -0.78074,-0.35359 -1.44454,-1.40288 -1.99217,-3.14615 -0.54664,-1.73998 -0.81936,-3.6856 -0.81889,-5.83921"
+-         inkscape:connector-curvature="0" />
++         id="path10322" />
+       <path
+-         id="path10324"
++         inkscape:connector-curvature="0"
+          d="m 222.90657,308.23503 c 0,0 4.70271,2.23419 4.70271,2.23419 0,0 -0.005,53.2621 -0.005,53.2621 0,0 -4.70368,-2.62856 -4.70368,-2.62856 0,0 6.5e-4,-5.53751 6.5e-4,-5.53751 -1.90915,3.64099 -3.94938,4.84159 -6.11798,3.62448 -2.71657,-1.52464 -4.94425,-5.37091 -6.69324,-11.52244 -1.72592,-6.2156 -2.58454,-13.24681 -2.58314,-21.11949 0.001,-7.73093 0.86222,-13.74862 2.58972,-18.07138 1.73711,-4.34674 3.92492,-5.90726 6.57295,-4.65541 2.30326,1.08895 4.38361,4.59766 6.23649,10.54642 0,0 7.2e-4,-6.1324 7.2e-4,-6.1324 m -10.8443,20.66662 c -8.1e-4,4.97903 0.49779,9.29877 1.49823,12.96793 1.03051,3.73139 2.33394,6.02979 3.91368,6.88909 1.69661,0.92288 3.07441,0.12183 4.12912,-2.41319 1.05819,-2.65201 1.58892,-6.46131 1.5895,-11.42118 5.6e-4,-4.95966 -0.52918,-9.31691 -1.58652,-13.06242 -1.05383,-3.66071 -2.41744,-5.8973 -4.08683,-6.71571 -1.5663,-0.76777 -2.87026,0.16426 -3.91516,2.78663 -1.02812,2.65605 -1.54129,6.3101 -1.54202,10.96885"
+-         inkscape:connector-curvature="0" />
++         id="path10324" />
+       <path
+-         id="path10326"
++         inkscape:connector-curvature="0"
+          d="m 233.61915,313.32443 c 0,0 4.86427,2.31094 4.86427,2.31094 0,0 -2.7e-4,5.00485 -2.7e-4,5.00485 1.71074,-3.52308 3.64965,-4.78093 5.82081,-3.75454 2.5118,1.18756 4.48297,4.13443 5.9036,8.84914 1.23117,4.03483 1.84851,9.9569 1.84853,17.75524 0,0 0,33.90579 0,33.90579 0,0 -5.07083,-2.83374 -5.07083,-2.83374 0,0 6.2e-4,-30.6586 6.2e-4,-30.6586 9e-5,-5.40954 -0.29652,-9.29502 -0.88902,-11.65343 -0.57668,-2.38426 -1.62396,-3.94697 -3.13732,-4.68877 -1.63768,-0.80262 -2.79522,0.005 -3.4777,2.41735 -0.6666,2.37712 -0.99957,6.93792 -0.99994,13.68633 0,0 -0.001,26.14439 -0.001,26.14439 0,0 -4.86529,-2.71887 -4.86529,-2.71887 0,0 0.004,-53.76608 0.004,-53.76608"
+-         inkscape:connector-curvature="0" />
++         id="path10326" />
+     </g>
+     <g
+-       inkscape:groupmode="layer"
+-       id="layer3"
++       style="display:none"
+        inkscape:label="rwlayershort"
+-       style="display:none">
++       id="layer3"
++       inkscape:groupmode="layer">
+       <g
+-         sodipodi:type="inkscape:box3d"
+-         style="fill:#24b8eb;fill-opacity:0.64251206;stroke:#253237;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+-         id="g11520"
+-         inkscape:perspectiveID="#perspective4014"
++         inkscape:corner7="0.23104367 : -0.032927705 : 0.53664065 : 1"
+          inkscape:corner0="0.51156871 : 0.026428054 : 0 : 1"
+-         inkscape:corner7="0.23104367 : -0.032927705 : 0.53664065 : 1">
++         inkscape:perspectiveID="#perspective4014"
++         id="g11520"
++         style="fill:#24b8eb;fill-opacity:0.64251206;stroke:#253237;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3d">
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path11530"
+-           style="fill:#24b8eb;fill-opacity:0.64251206;fill-rule:evenodd;stroke:none"
++           d="M 131.92561,229.48947 254.03226,279.93524 540.96513,197.86229 411.55236,171.87435 z"
+            inkscape:box3dsidetype="13"
+-           d="M 131.92561,229.48947 254.03226,279.93524 540.96513,197.86229 411.55236,171.87435 z" />
+-        <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path11522"
+            style="fill:#24b8eb;fill-opacity:0.64251206;fill-rule:evenodd;stroke:none"
+-           inkscape:box3dsidetype="6"
+-           d="m 131.92561,190.22181 0,39.26766 279.62675,-57.61512 0,-28.97934 z" />
++           id="path11530"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path11532"
++           d="m 131.92561,190.22181 0,39.26766 279.62675,-57.61512 0,-28.97934 z"
++           inkscape:box3dsidetype="6"
+            style="fill:#24b8eb;fill-opacity:0.64251206;fill-rule:evenodd;stroke:none"
++           id="path11522"
++           sodipodi:type="inkscape:box3dside" />
++        <path
++           d="m 411.55236,142.89501 129.41277,21.38902 0,33.57826 -129.41277,-25.98794 z"
+            inkscape:box3dsidetype="11"
+-           d="m 411.55236,142.89501 129.41277,21.38902 0,33.57826 -129.41277,-25.98794 z" />
++           style="fill:#24b8eb;fill-opacity:0.64251206;fill-rule:evenodd;stroke:none"
++           id="path11532"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path11524"
+-           style="fill:#24b8eb;fill-opacity:0.64251206"
++           d="M 131.92561,190.22181 254.03226,231.71944 540.96513,164.28403 411.55236,142.89501 z"
+            inkscape:box3dsidetype="5"
+-           d="M 131.92561,190.22181 254.03226,231.71944 540.96513,164.28403 411.55236,142.89501 z" />
+-        <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path11528"
+            style="fill:#24b8eb;fill-opacity:0.64251206"
+-           inkscape:box3dsidetype="14"
+-           d="m 254.03226,231.71944 0,48.2158 286.93287,-82.07295 0,-33.57826 z" />
++           id="path11524"
++           sodipodi:type="inkscape:box3dside" />
+         <path
+-           sodipodi:type="inkscape:box3dside"
+-           id="path11526"
++           d="m 254.03226,231.71944 0,48.2158 286.93287,-82.07295 0,-33.57826 z"
++           inkscape:box3dsidetype="14"
+            style="fill:#24b8eb;fill-opacity:0.64251206"
++           id="path11528"
++           sodipodi:type="inkscape:box3dside" />
++        <path
++           d="m 131.92561,190.22181 122.10665,41.49763 0,48.2158 -122.10665,-50.44577 z"
+            inkscape:box3dsidetype="3"
+-           d="m 131.92561,190.22181 122.10665,41.49763 0,48.2158 -122.10665,-50.44577 z" />
++           style="fill:#24b8eb;fill-opacity:0.64251206"
++           id="path11526"
++           sodipodi:type="inkscape:box3dside" />
+       </g>
+       <g
+-         id="text12905"
++         transform="matrix(0.65426564,0,0,0.65426564,59.078784,80.39098)"
+          style="font-size:40px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Italic"
+-         transform="matrix(0.65426564,0,0,0.65426564,59.078784,80.39098)">
++         id="text12905">
+         <path
+-           id="path12912"
++           inkscape:connector-curvature="0"
+            d="m 132.39162,196.56835 c 0,0 2.25832,0.79098 2.25832,0.79098 0,0 1.50732,28.61196 1.50732,28.61196 0,0 4.34598,-26.56183 4.34598,-26.56183 0,0 2.722,0.95339 2.722,0.95339 0,0 1.63516,29.08943 1.63516,29.08943 0,0 4.31997,-27.00363 4.31997,-27.00363 0,0 2.42221,0.84838 2.42221,0.84838 0,0 -5.66212,33.42382 -5.66212,33.42382 0,0 -2.73065,-1.12467 -2.73065,-1.12467 0,0 -1.5784,-29.68879 -1.5784,-29.68879 0,0 -4.4624,27.20079 -4.4624,27.20079 0,0 -2.67264,-1.10077 -2.67264,-1.10077 0,0 -2.10475,-35.43906 -2.10475,-35.43906"
+-           inkscape:connector-curvature="0" />
++           id="path12912" />
+         <path
+-           id="path12914"
++           inkscape:connector-curvature="0"
+            d="m 164.03604,213.26939 c -0.2639,-0.42447 -0.56258,-0.78434 -0.89592,-1.0796 -0.33304,-0.29492 -0.68661,-0.50929 -1.06059,-0.64322 -1.33705,-0.47863 -2.47231,0.33686 -3.4066,2.43656 -0.92991,2.06688 -1.50465,5.07325 -1.72714,9.01466 0,0 -1.04777,17.82424 -1.04777,17.82424 0,0 -2.42011,-0.99676 -2.42011,-0.99676 0,0 1.98378,-35.17658 1.98378,-35.17658 0,0 2.47527,0.86697 2.47527,0.86697 0,0 -0.33507,5.56959 -0.33507,5.56959 0.60533,-1.89455 1.35104,-3.25595 2.23803,-4.08114 0.89961,-0.82526 1.87507,-1.05633 2.92646,-0.68969 0.27488,0.0959 0.54641,0.23479 0.81455,0.4165 0.26786,0.15981 0.53715,0.37533 0.80786,0.64667 0,0 -0.35275,5.89174 -0.35275,5.89174"
+-           inkscape:connector-curvature="0" />
++           id="path12914" />
+         <path
+-           id="path12916"
++           inkscape:connector-curvature="0"
+            d="m 167.87077,194.36999 c 0,0 2.5978,0.8462 2.5978,0.8462 0,0 -0.48615,7.70745 -0.48615,7.70745 0,0 -2.58509,-0.87602 -2.58509,-0.87602 0,0 0.47344,-7.67763 0.47344,-7.67763 m -0.87992,14.31682 c 0,0 2.57415,0.9016 2.57415,0.9016 0,0 -2.30324,35.91396 -2.30324,35.91396 0,0 -2.5149,-1.0358 -2.5149,-1.0358 0,0 2.24399,-35.77976 2.24399,-35.77976"
+-           inkscape:connector-curvature="0" />
++           id="path12916" />
+         <path
+-           id="path12918"
++           inkscape:connector-curvature="0"
+            d="m 183.34977,214.41656 c 0,0 -0.34194,4.75863 -0.34194,4.75863 0,0 -5.33307,-1.91046 -5.33307,-1.91046 0,0 -1.36427,19.81122 -1.36427,19.81122 -0.0441,0.73284 -0.076,1.34864 -0.0958,1.84769 -0.0198,0.49879 -0.0272,0.89218 -0.0223,1.18025 0.024,1.41732 0.22117,2.51814 0.59164,3.30404 0.38018,0.79025 0.97369,1.34835 1.78193,1.67447 0,0 2.66812,1.07661 2.66812,1.07661 0,0 -0.36838,4.94638 -0.36838,4.94638 0,0 -2.51686,-1.03661 -2.51686,-1.03661 -1.55308,-0.63966 -2.72009,-1.81877 -3.50617,-3.53794 -0.77559,-1.71295 -1.18868,-3.99849 -1.24016,-6.86324 -0.009,-0.50749 -0.005,-1.05378 0.0125,-1.63897 0.0171,-0.60759 0.0472,-1.26529 0.0905,-1.97325 0,0 1.33026,-19.73599 1.33026,-19.73599 0,0 -2.21945,-0.79507 -2.21945,-0.79507 0,0 0.32464,-4.68341 0.32464,-4.68341 0,0 2.18338,0.76473 2.18338,0.76473 0,0 0.70719,-10.54703 0.70719,-10.54703 0,0 2.66503,0.88587 2.66503,0.88587 0,0 -0.71095,10.59328 -0.71095,10.59328 0,0 5.36413,1.8788 5.36413,1.8788"
+-           inkscape:connector-curvature="0" />
++           id="path12918" />
+         <path
+-           id="path12920"
++           inkscape:connector-curvature="0"
+            d="m 199.13849,236.70883 c 0,0 -1.72385,21.2125 -1.72385,21.2125 0,0 -2.77523,-1.14302 -2.77523,-1.14302 0,0 0.45537,-5.5694 0.45537,-5.5694 -0.79039,1.93977 -1.69787,3.25939 -2.72178,3.963 -1.00998,0.68226 -2.14049,0.76306 -3.39088,0.2461 -1.4019,-0.5796 -2.56171,-2.02483 -3.48324,-4.3353 -0.91085,-2.32565 -1.3871,-5.01869 -1.42975,-8.08698 -0.0612,-4.40249 0.65095,-7.60298 2.1444,-9.6005 1.51381,-2.0078 3.64053,-2.5073 6.39035,-1.48111 0,0 3.88091,1.44834 3.88091,1.44834 0,0 0.13737,-1.64241 0.13737,-1.64241 0.0187,-0.17753 0.0322,-0.36859 0.0405,-0.57316 0.008,-0.22771 0.0101,-0.57318 0.006,-1.03646 -0.0184,-2.06353 -0.40494,-3.80038 -1.15864,-5.20652 -0.74267,-1.42355 -1.7772,-2.37178 -3.10017,-2.84471 -0.90567,-0.32369 -1.83075,-0.39003 -2.77476,-0.20023 -0.93078,0.19278 -1.88487,0.63805 -2.86168,1.33418 0,0 0.40119,-5.68296 0.40119,-5.68296 1.0224,-0.5343 2.0267,-0.84843 3.0124,-0.94098 0.99899,-0.11252 1.96874,-0.005 2.90868,0.32235 2.01064,0.70123 3.55659
 ,2.24252 4.62956,4.62368 1.08518,2.38922 1.64359,5.50025 1.67366,9.32128 0.006,0.76751 -0.0125,1.66447 -0.0556,2.69043 -0.0433,1.00181 -0.11156,2.06254 -0.20482,3.18188 m -3.01967,1.47698 c 0,0 -2.78542,-1.06163 -2.78542,-1.06163 -2.2624,-0.86226 -3.92041,-0.80292 -4.98268,0.16995 -1.04789,0.94964 -1.55167,2.85777 -1.51494,5.72282 0.0254,1.98149 0.31466,3.64088 0.8682,4.98133 0.56384,1.34561 1.32816,2.21415 2.29484,2.60564 1.48548,0.60158 2.77591,-0.0812 3.87044,-2.05855 1.10034,-2.01109 1.81516,-5.00707 2.14096,-8.99265 0,0 0.1086,-1.36691 0.1086,-1.36691"
+-           inkscape:connector-curvature="0" />
++           id="path12920" />
+         <path
+-           id="path12922"
++           inkscape:connector-curvature="0"
+            d="m 217.64994,242.08214 c -0.003,-3.45467 -0.36941,-6.29845 -1.09988,-8.52314 -0.71911,-2.21914 -1.712,-3.55453 -2.9753,-4.006 -0.9147,-0.32682 -1.77169,-0.13384 -2.57095,0.57649 -0.7861,0.6882 -1.46696,1.86026 -2.04305,3.51377 -0.60552,1.7306 -1.08098,3.81943 -1.42712,6.2652 -0.33468,2.41877 -0.49538,4.89667 -0.48288,7.43549 0.0158,3.20708 0.36798,5.85818 1.05704,7.96044 0.69992,2.08483 1.65443,3.37263 2.86659,3.86366 0.92007,0.37271 1.77251,0.25313 2.55721,-0.36105 0.78714,-0.63948 1.47963,-1.76427 2.07706,-3.37684 0.61006,-1.68425 1.10315,-3.73887 1.47858,-6.16534 0.37661,-2.43421 0.56447,-4.82931 0.5627,-7.18268 m -9.23169,-12.84717 c 0.71257,-1.9212 1.61108,-3.31025 2.69696,-4.16424 1.10132,-0.8778 2.25765,-1.10762 3.46876,-0.68529 1.8688,0.65177 3.36054,2.56955 4.46812,5.75349 1.11991,3.19191 1.67936,7.16826 1.67728,11.91278 -0.002,3.86886 -0.33149,7.48101 -0.9869,10.83305 -0.64142,3.34015 -1.55578,6.15428 -2.74017,8.44433 -0.7715,1.50955 -1.65836,2.54577 
 -2.65987,3.1114 -0.99765,0.5634 -2.04044,0.61881 -3.12849,0.16897 -1.14744,-0.4744 -2.14129,-1.46065 -2.98356,-2.95812 -0.84085,-1.4949 -1.52693,-3.4884 -2.05939,-5.98273 0,0 -0.48266,5.66038 -0.48266,5.66038 0,0 -2.84889,-1.17336 -2.84889,-1.17336 0,0 4.44431,-52.94734 4.44431,-52.94734 0,0 2.95322,0.96198 2.95322,0.96198 0,0 -1.81872,21.0647 -1.81872,21.0647"
+-           inkscape:connector-curvature="0" />
++           id="path12922" />
+         <path
+-           id="path12924"
++           inkscape:connector-curvature="0"
+            d="m 228.71944,214.19071 c 0,0 3.15615,1.02808 3.15615,1.02808 0,0 -5.33605,54.69811 -5.33605,54.69811 0,0 -3.03879,-1.25157 -3.03879,-1.25157 0,0 5.21869,-54.47462 5.21869,-54.47462"
+-           inkscape:connector-curvature="0" />
++           id="path12924" />
+         <path
+-           id="path12926"
++           inkscape:connector-curvature="0"
+            d="m 249.07211,254.74636 c 0.0404,-0.38368 0.0691,-0.78443 0.0859,-1.20226 0.0288,-0.41348 0.0457,-0.83161 0.0506,-1.25434 0.0353,-3.03778 -0.36798,-5.60275 -1.20915,-7.68768 -0.82831,-2.07819 -1.97429,-3.37815 -3.43389,-3.89992 -1.61834,-0.57843 -3.05045,-0.009 -4.29713,1.70059 -1.23987,1.67549 -2.18445,4.34652 -2.83626,8.00619 0,0 11.63988,4.33748 11.63988,4.33748 m 2.81056,6.45167 c 0,0 -15.09094,-5.79069 -15.09094,-5.79069 -0.0752,0.89703 -0.126,1.60789 -0.15253,2.13298 -0.0265,0.52486 -0.0411,0.98119 -0.0437,1.36905 -0.0225,3.36482 0.44677,6.15468 1.40888,8.37881 0.97504,2.23208 2.36307,3.71384 4.1703,4.44572 1.39681,0.56568 2.72662,0.77468 3.98908,0.62476 1.26781,-0.15056 2.45566,-0.64338 3.56302,-1.48066 0,0 -0.70189,6.42657 -0.70189,6.42657 -1.18125,0.49488 -2.39603,0.72794 -3.64426,0.70088 -1.23153,-0.0222 -2.4791,-0.29519 -3.74285,-0.81767 -2.68557,-1.11031 -4.73074,-3.28927 -6.14928,-6.53818 -1.40393,-3.26112 -2.09137,-7.34961 -2.06451,-12.28511 0.023,
 -4.22844 0.39788,-8.03395 1.12728,-11.41867 0.74471,-3.42191 1.82516,-6.33485 3.24539,-8.73744 0.92003,-1.50587 2.01004,-2.53659 3.27144,-3.08937 1.27888,-0.55109 2.63589,-0.57813 4.0712,-0.0776 2.26618,0.79035 4.06153,2.85633 5.37632,6.19826 1.32912,3.35217 1.96352,7.4395 1.9016,12.24399 -0.0148,1.14841 -0.0669,2.36942 -0.15622,3.66262 -0.0889,1.26675 -0.21507,2.6175 -0.37835,4.05176"
+-           inkscape:connector-curvature="0" />
++           id="path12926" />
+       </g>
+       <g
+-         transform="matrix(1.1734694,0,0,1.1734694,-48.893189,-48.489991)"
++         id="text14746"
+          style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New"
+-         id="text14746">
++         transform="matrix(1.1734694,0,0,1.1734694,-48.893189,-48.489991)">
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14753"
+            d="m 292.56742,237.4772 c 0,0 0,-1.59047 0,-1.59047 -1e-5,-0.5391 0.0453,-0.93633 0.13582,-1.19161 0.0987,-0.25714 0.22627,-0.40435 0.38255,-0.44167 0.1562,-0.0372 0.27949,0.0501 0.36989,0.26184 0.0986,0.20984 0.14786,0.58398 0.14787,1.12245 0,0 0,6.27362 0,6.27362 -10e-6,0.55648 -0.0493,0.96364 -0.14787,1.22152 -0.0904,0.25592 -0.21369,0.40336 -0.36989,0.44226 -0.13983,0.0349 -0.25912,-0.0432 -0.35786,-0.23424 -0.0906,-0.1931 -0.14406,-0.53022 -0.16051,-1.01139 -0.0412,-1.49945 -0.41597,-2.74678 -1.12524,-3.74312 -0.95853,-1.37023 -2.0518,-1.9091 -3.28082,-1.61375 -0.80737,0.19408 -1.57032,0.76646 -2.2886,1.71804 -0.5353,0.69109 -0.96233,1.48343 -1.28077,2.37687 -0.55364,1.55049 -0.99453,3.22917 -1.32232,5.0356 -0.2355,1.33038 -0.35329,2.79525 -0.35329,4.3941 0,0 0,4.00625 0,4.00625 0,3.41577 0.57185,6.23436 1.71333,8.4515 1.13855,2.19332 2.4576,3.08294 3.95555,2.67411 0.89633,-0.24464 1.69568,-0.88624 2.39858,-1.92393 0.71,-1.03826 1.39417,-2.49958 2.05261,-4.3
 8314 0.13978,-0.41447 0.29596,-0.64466 0.46853,-0.69065 0.14784,-0.0394 0.26691,0.0276 0.35722,0.20089 0.0903,0.17329 0.13541,0.41244 0.13543,0.71743 -2e-5,0.41269 -0.17649,1.08812 -0.52962,2.02685 -0.67425,1.83488 -1.43607,3.29166 -2.28591,4.36978 -0.84324,1.0599 -1.70051,1.71048 -2.57191,1.95056 -0.75663,0.20846 -1.52704,0.10426 -2.31133,-0.31343 -0.60168,-0.3239 -1.09951,-0.75841 -1.49315,-1.30354 -0.394,-0.54561 -0.88069,-1.51132 -1.46037,-2.89811 -0.57203,-1.40902 -0.96363,-2.74066 -1.1743,-3.99402 -0.21078,-1.27211 -0.3162,-2.69969 -0.3162,-4.28229 0,0 0,-4.6659 0,-4.6659 0,-2.25562 0.27827,-4.62592 0.83428,-7.1086 0.56373,-2.49973 1.32824,-4.49134 2.29251,-5.97481 0.97053,-1.50028 2.01815,-2.3831 3.14231,-2.65042 1.72644,-0.41045 3.20678,0.51535 4.44348,2.77142"
+-           id="path14753" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14755"
+            d="m 308.66695,250.09217 c -10e-6,3.3873 -0.5478,6.4277 -1.64547,9.12638 -1.09249,2.70338 -2.41593,4.27147 -3.97244,4.7003 -1.57825,0.43483 -2.92347,-0.40609 -4.03348,-2.528 -1.11284,-2.14518 -1.67032,-4.92676 -1.67032,-8.34065 0,-3.43174 0.55748,-6.50462 1.67032,-9.21347 1.11001,-2.71971 2.45523,-4.27243 4.03348,-4.66229 1.55651,-0.38443 2.87995,0.49215 3.97244,2.62466 1.09767,2.12517 1.64546,4.88816 1.64547,8.29307 m -1.01277,0.2646 c -10e-6,-2.7907 -0.44957,-5.05158 -1.35007,-6.78534 -0.89442,-1.73935 -1.98297,-2.45048 -3.26712,-2.12996 -1.28798,0.32151 -2.38981,1.59368 -3.30406,3.8193 -0.90806,2.21042 -1.3628,4.71879 -1.36279,7.52165 -10e-6,2.78505 0.45473,5.0558 1.36279,6.80955 0.91425,1.7479 2.01608,2.44432 3.30406,2.09279 1.28415,-0.35048 2.3727,-1.63042 3.26712,-3.83716 0.9005,-2.22197 1.35006,-4.71775 1.35007,-7.49083"
+-           id="path14755" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14757"
+            d="m 314.42401,237.15342 c 0,0 0,3.33838 0,3.33838 0.68834,-1.73173 1.30925,-2.96305 1.86301,-3.69535 0.55304,-0.7313 1.17532,-1.18207 1.86656,-1.35283 0.74434,-0.18383 1.42164,0.006 2.03224,0.56853 0.43228,0.41464 0.82174,1.18719 1.16849,2.31729 0.35414,1.10991 0.53111,2.29857 0.53112,3.56668 0,0 0,13.7844 0,13.7844 0,0 0.81847,-0.22256 0.81847,-0.22256 0.23026,-0.0626 0.39521,-0.003 0.49492,0.17762 0.0997,0.16363 0.14951,0.41019 0.14952,0.73967 -1e-5,0.31216 -0.0499,0.58594 -0.14952,0.82137 -0.0997,0.23549 -0.26466,0.38485 -0.49492,0.44805 0,0 -2.59918,0.71347 -2.59918,0.71347 -0.23955,0.0658 -0.40963,0.008 -0.51015,-0.17349 -0.10057,-0.18148 -0.15085,-0.42903 -0.15085,-0.74263 0,-0.331 0.0503,-0.60603 0.15085,-0.82505 0.10052,-0.23636 0.2706,-0.3871 0.51015,-0.45224 0,0 0.81034,-0.22035 0.81034,-0.22035 0,0 0,-13.43494 0,-13.43494 -10e-6,-1.54782 -0.25067,-2.78882 -0.75241,-3.72384 -0.50236,-0.9535 -1.17565,-1.32537 -2.02071,-1.11445 -0.64462,0.16091 -1.20459,
 0.59773 -1.67958,1.31084 -0.47553,0.69646 -1.15466,2.32016 -2.03835,4.87447 0,0 0,13.85296 0,13.85296 0,0 1.1141,-0.30294 1.1141,-0.30294 0.23417,-0.0637 0.40192,-0.004 0.50332,0.17797 0.10137,0.16478 0.15204,0.4133 0.15205,0.74557 -1e-5,0.31479 -0.0507,0.59099 -0.15205,0.82865 -0.1014,0.23771 -0.26915,0.38871 -0.50332,0.45299 0,0 -3.22119,0.88421 -3.22119,0.88421 -0.23607,0.0648 -0.40534,0.006 -0.50771,-0.17703 -0.10241,-0.18288 -0.15362,-0.43257 -0.15362,-0.74903 0,-0.33403 0.0512,-0.61171 0.15362,-0.83298 0.10237,-0.23878 0.27164,-0.39025 0.50771,-0.45445 0,0 1.11958,-0.30443 1.11958,-0.30443 0,0 0,-18.34278 0,-18.34278 0,0 -0.83646,0.20956 -0.83646,0.20956 -0.23592,0.0591 -0.40507,-0.004 -0.50738,-0.18919 -0.10234,-0.18526 -0.15352,-0.4449 -0.15351,-0.77884 -10e-6,-0.31633 0.0512,-0.59268 0.15351,-0.829 0.10231,-0.23622 0.27146,-0.38357 0.50738,-0.44208 0,0 1.82397,-0.4522 1.82397,-0.4522"
+-           id="path14757" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14759"
+            d="m 329.72799,233.35924 c 0,0 5.13345,-1.27269 5.13345,-1.27269 0.22371,-0.0554 0.38397,0.007 0.48085,0.18852 0.0968,0.18111 0.14525,0.43402 0.14526,0.75877 -10e-6,0.30771 -0.0485,0.57622 -0.14526,0.80555 -0.0969,0.22944 -0.25714,0.37217 -0.48085,0.4282 0,0 -5.13345,1.28608 -5.13345,1.28608 0,0 0,14.43158 0,14.43158 -10e-6,1.25643 0.21891,2.24711 0.65643,2.97148 0.44458,0.72157 1.09178,0.96605 1.94066,0.73436 0.6374,-0.17396 1.32621,-0.5761 2.06616,-1.20576 0.73864,-0.64564 1.31224,-1.29704 1.72148,-1.95454 0.1487,-0.2622 0.27135,-0.40633 0.36797,-0.43241 0.11885,-0.0321 0.22284,0.0507 0.31196,0.24856 0.0891,0.18071 0.13361,0.41608 0.13362,0.70616 -10e-6,0.25597 -0.0483,0.50799 -0.14476,0.75609 -0.23768,0.62804 -0.81757,1.40124 -1.74108,2.32087 -0.91812,0.90249 -1.8008,1.47097 -2.64781,1.70434 -1.10446,0.30428 -1.98559,-0.0463 -2.64198,-1.05341 -0.65743,-1.00874 -0.98654,-2.52169 -0.98653,-4.53773 0,0 0,-14.44811 0,-14.44811 0,0 -1.76335,0.44177 -1.76335,0.44177
  -0.22807,0.0572 -0.39159,-0.006 -0.4905,-0.18811 -0.0989,-0.18257 -0.1484,-0.43805 -0.14839,-0.7664 -1e-5,-0.31102 0.0494,-0.58251 0.14839,-0.81445 0.0989,-0.23183 0.26243,-0.37601 0.4905,-0.43258 0,0 1.76335,-0.43717 1.76335,-0.43717 0,0 0,-6.4099 0,-6.4099 -1e-5,-0.51689 0.0454,-0.89822 0.13621,-1.14394 0.0908,-0.24561 0.20423,-0.38466 0.34033,-0.41716 0.14361,-0.0342 0.26073,0.0498 0.35139,0.25184 0.0906,0.20213 0.13594,0.56133 0.13595,1.07763 0,0 0,6.40256 0,6.40256"
+-           id="path14759" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14761"
+            d="m 347.92414,250.72178 c 0,0 0,-3.05626 0,-3.05626 -1.32486,2.95612 -2.74493,4.64604 -4.26117,5.06378 -1.10424,0.30423 -1.9692,-0.10219 -2.59338,-1.22112 -0.62513,-1.1376 -0.93805,-2.65046 -0.93805,-4.53728 0,-2.07378 0.41226,-3.99242 1.23557,-5.75329 0.82167,-1.75736 2.01824,-2.83768 3.58648,-3.24242 0.42203,-0.10891 0.87997,-0.15956 1.37368,-0.15206 0.49311,-0.009 1.02545,0.0469 1.59687,0.16843 0,0 0,-3.43514 0,-3.43514 -1e-5,-1.16186 -0.23137,-2.11384 -0.69447,-2.85657 -0.46365,-0.7435 -1.16008,-0.99968 -2.09048,-0.76745 -0.71376,0.17817 -1.7173,0.9112 -3.01271,2.20186 -0.23464,0.22862 -0.38501,0.35128 -0.45105,0.36788 -0.11743,0.0296 -0.22021,-0.0464 -0.30832,-0.22792 -0.0808,-0.18338 -0.12119,-0.42787 -0.12118,-0.73345 -10e-6,-0.28856 0.0367,-0.52691 0.11017,-0.715 0.10279,-0.2802 0.51741,-0.73128 1.24291,-1.35247 1.14063,-0.994 2.00133,-1.56201 2.58384,-1.70592 1.1553,-0.28533 2.05404,0.15837 2.69792,1.32913 0.64285,1.15216 0.9639,2.56014 0.96391,4.22531 
 0,0 0,14.02795 0,14.02795 0,0 1.20981,-0.32897 1.20981,-0.32897 0.22283,-0.0606 0.38091,-0.003 0.4743,0.17316 0.0933,0.15921 0.14002,0.39824 0.14004,0.7171 -2e-5,0.3021 -0.0467,0.56663 -0.14004,0.79361 -0.0934,0.22705 -0.25147,0.37117 -0.4743,0.43233 0,0 -2.13035,0.58478 -2.13035,0.58478 m 0,-10.558 c -0.42669,-0.17475 -0.87915,-0.26722 -1.35749,-0.27728 -0.47891,-0.0101 -0.9838,0.054 -1.51479,0.19244 -1.33413,0.34776 -2.37964,1.28966 -3.13434,2.82696 -0.57244,1.15204 -0.85896,2.42481 -0.85896,3.81711 0,1.29044 0.21674,2.31854 0.64989,3.0837 0.44002,0.76238 1.07722,1.02935 1.9107,0.80187 0.79534,-0.21708 1.53095,-0.78111 2.20715,-1.69129 0.68232,-0.92751 1.38163,-2.28814 2.09784,-4.08071 0,0 0,-4.6728 0,-4.6728"
+-           id="path14761" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14763"
+            d="m 358.9208,215.38083 c 0,0 0,5.40783 0,5.40783 0,0 -1.31083,0.31638 -1.31083,0.31638 0,0 0,-5.41657 0,-5.41657 0,0 1.31083,-0.30764 1.31083,-0.30764 m 0.0317,10.73306 c 0,0 0,19.48737 0,19.48737 0,0 3.46775,-0.94294 3.46775,-0.94294 0.21618,-0.0588 0.36953,-0.001 0.46013,0.17246 0.0906,0.15719 0.13584,0.39281 0.13585,0.70687 -1e-5,0.29756 -0.0453,0.5579 -0.13585,0.7811 -0.0906,0.22326 -0.24395,0.36455 -0.46013,0.42389 0,0 -7.86049,2.15769 -7.86049,2.15769 -0.21341,0.0586 -0.36643,3.5e-4 -0.45897,-0.17483 -0.0926,-0.1752 -0.13887,-0.41325 -0.13887,-0.71413 0,-0.31759 0.0463,-0.58094 0.13887,-0.79001 0.0925,-0.22573 0.24556,-0.36759 0.45897,-0.42562 0,0 3.50529,-0.95316 3.50529,-0.95316 0,0 0,-17.38816 0,-17.38816 0,0 -2.59952,0.65125 -2.59952,0.65125 -0.21294,0.0534 -0.36917,-0.008 -0.46862,-0.1831 -0.0924,-0.17722 -0.13856,-0.41614 -0.13855,-0.71671 -1e-5,-0.31722 0.0462,-0.58749 0.13855,-0.81081 0.0924,-0.22321 0.24857,-0.36209 0.46862,-0.41667 0,0 3.48697,-0
 .86449 3.48697,-0.86449"
+-           id="path14763" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14765"
+            d="m 368.46442,223.75567 c 0,0 0,3.12776 0,3.12776 0.60425,-1.6123 1.14936,-2.75688 1.63557,-3.43494 0.4856,-0.67719 1.03206,-1.09054 1.63914,-1.24051 0.65376,-0.16146 1.24872,0.0263 1.78514,0.56245 0.37979,0.39496 0.72197,1.12482 1.02665,2.18925 0.31119,1.04566 0.4667,2.16256 0.46671,3.35132 0,0 0,12.92183 0,12.92183 0,0 0.71929,-0.19559 0.71929,-0.19559 0.20237,-0.055 0.34735,0.003 0.43499,0.17441 0.0876,0.155 0.13141,0.38695 0.13142,0.69584 -1e-5,0.29266 -0.0438,0.54854 -0.13142,0.76765 -0.0876,0.21918 -0.23262,0.35655 -0.43499,0.4121 0,0 -2.28391,0.62693 -2.28391,0.62693 -0.21044,0.0578 -0.35985,8.6e-4 -0.44816,-0.17084 -0.0883,-0.17172 -0.13252,-0.40454 -0.13251,-0.69846 -1e-5,-0.31023 0.0442,-0.56721 0.13251,-0.77087 0.0883,-0.21993 0.23772,-0.3585 0.44816,-0.41572 0,0 0.71195,-0.19359 0.71195,-0.19359 0,0 0,-12.59334 0,-12.59334 0,-1.45086 -0.22023,-2.61784 -0.66105,-3.50168 -0.44133,-0.90112 -1.03277,-1.25955 -1.77501,-1.0743 -0.56613,0.14133 -1.05787,0.5
 4243 -1.47496,1.20365 -0.41753,0.64556 -1.01377,2.15684 -1.78952,4.5368 0,0 0,12.97896 0,12.97896 0,0 0.97803,-0.26595 0.97803,-0.26595 0.20559,-0.0559 0.35287,0.002 0.4419,0.17485 0.089,0.15603 0.1335,0.38972 0.1335,0.70106 0,0.29497 -0.0445,0.55297 -0.1335,0.77401 -0.089,0.2211 -0.23631,0.35987 -0.4419,0.41631 0,0 -2.82735,0.7761 -2.82735,0.7761 -0.20715,0.0569 -0.35568,-0.001 -0.44551,-0.17409 -0.0899,-0.17297 -0.13479,-0.40769 -0.13479,-0.70413 0,-0.31289 0.0449,-0.57216 0.13479,-0.77778 0.0898,-0.22202 0.23836,-0.36119 0.44551,-0.41752 0,0 0.98254,-0.26717 0.98254,-0.26717 0,0 0,-17.18426 0,-17.18426 0,0 -0.73409,0.18391 -0.73409,0.18391 -0.20703,0.0519 -0.35546,-0.01 -0.44524,-0.18475 -0.0898,-0.17506 -0.13471,-0.41902 -0.13471,-0.73184 0,-0.29632 0.0449,-0.55442 0.13471,-0.7743 0.0898,-0.21977 0.23821,-0.35532 0.44524,-0.40667 0,0 1.60087,-0.39689 1.60087,-0.39689"
+-           id="path14765" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14767"
+            d="m 388.11235,229.76789 c 0,0 -8.48758,2.22224 -8.48758,2.22224 0.14697,2.60006 0.60091,4.60711 1.36077,6.01981 0.76503,1.39207 1.70765,1.93407 2.82657,1.62868 0.62097,-0.16949 1.27063,-0.59601 1.94883,-1.27892 0.67702,-0.6817 1.22829,-1.48892 1.65434,-2.42175 0.12444,-0.27395 0.23249,-0.42323 0.32414,-0.44789 0.10471,-0.0282 0.19631,0.0513 0.27482,0.23843 0.0785,0.17107 0.11771,0.39273 0.11772,0.665 -10e-6,0.27228 -0.0523,0.55072 -0.15697,0.83539 -0.31413,0.88653 -0.87429,1.79282 -1.68153,2.71981 -0.80235,0.91103 -1.62941,1.48439 -2.48135,1.71911 -1.43066,0.39416 -2.63019,-0.41452 -3.59644,-2.43084 -0.96193,-2.03924 -1.44377,-4.68961 -1.44377,-7.94738 0,-2.96601 0.45175,-5.62524 1.35369,-7.97367 0.90655,-2.34471 2.02355,-3.67918 3.34919,-4.00664 1.36076,-0.33608 2.47689,0.47235 3.35047,2.42115 0.87162,1.92849 1.30016,4.60654 1.2871,8.03747 m -0.83466,-1.82578 c -0.16388,-2.18666 -0.59682,-3.88887 -1.29971,-5.10755 -0.69758,-1.2225 -1.5317,-1.71355 -2.5032,-1.47
 106 -0.97392,0.24311 -1.81394,1.14718 -2.51921,2.71386 -0.70654,1.5695 -1.1471,3.51858 -1.32078,5.8459 0,0 7.6429,-1.98115 7.6429,-1.98115"
+-           id="path14767" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path14769"
+            d="m 394.65863,217.26158 c 0,0 0,5.05071 0,5.05071 1.05317,-2.61538 1.83796,-4.31797 2.35603,-5.11227 0.52374,-0.81061 1.00534,-1.26991 1.44497,-1.37865 0.47726,-0.11799 0.91902,0.17532 1.32537,0.87929 0.41225,0.68589 0.61821,1.23352 0.61822,1.64339 -10e-6,0.29956 -0.0412,0.56219 -0.12356,0.78788 -0.0761,0.20844 -0.17434,0.32787 -0.29482,0.35828 -0.0634,0.016 -0.11736,0.006 -0.16176,-0.0302 -0.0444,-0.0519 -0.12694,-0.21251 -0.24755,-0.48199 -0.2223,-0.49656 -0.41611,-0.82689 -0.58139,-0.99082 -0.16538,-0.16396 -0.32763,-0.22611 -0.48676,-0.18636 -0.35034,0.0875 -0.77435,0.54152 -1.27228,1.36266 -0.49218,0.82062 -1.35019,2.74163 -2.57647,5.76941 0,0 0,10.95911 0,10.95911 0,0 3.57169,-0.97122 3.57169,-0.97122 0.19745,-0.0537 0.33753,0.003 0.42029,0.17013 0.0827,0.15127 0.12408,0.37699 0.12409,0.67715 -10e-6,0.28439 -0.0414,0.53269 -0.12409,0.74496 -0.0828,0.21232 -0.22284,0.34558 -0.42029,0.39978 0,0 -6.34991,1.74303 -6.34991,1.74303 -0.19434,0.0533 -0.33368,0.004
  -0.41796,-0.14841 -0.0843,-0.16829 -0.12645,-0.396 -0.12645,-0.68312 0,-0.27115 0.0389,-0.50507 0.11673,-0.70172 0.0843,-0.21431 0.22686,-0.34878 0.42768,-0.40341 0,0 1.96714,-0.53508 1.96714,-0.53508 0,0 0,-16.69431 0,-16.69431 0,0 -1.5011,0.37607 -1.5011,0.37607 -0.19412,0.0486 -0.33329,-0.0121 -0.41746,-0.18232 -0.0842,-0.17019 -0.1263,-0.40677 -0.1263,-0.70967 0,-0.28692 0.0389,-0.53569 0.11658,-0.7463 0.0842,-0.21212 0.22659,-0.34304 0.42718,-0.3928 0,0 2.31218,-0.57324 2.31218,-0.57324"
+-           id="path14769" />
++           inkscape:connector-curvature="0" />
+       </g>
+     </g>
+     <g
+-       style="display:inline"
+-       inkscape:label="rwlayer"
++       inkscape:groupmode="layer"
+        id="layer6"
+-       inkscape:groupmode="layer">
++       inkscape:label="rwlayer"
++       style="display:inline">
+       <g
+-         inkscape:corner7="0.23278645 : 0.15045726 : 0.53790114 : 1"
+-         inkscape:corner0="0.50687055 : 0.22942044 : 0 : 1"
+-         inkscape:perspectiveID="#perspective4014"
+-         id="g4127"
++         sodipodi:type="inkscape:box3d"
+          style="fill:#00ade5;fill-opacity:0.51111115;stroke:#000000;stroke-linejoin:round;stroke-opacity:1;display:inline"
+-         sodipodi:type="inkscape:box3d">
++         id="g4127"
++         inkscape:perspectiveID="#perspective4014"
++         inkscape:corner0="0.50687055 : 0.22942044 : 0 : 1"
++         inkscape:corner7="0.23278645 : 0.15045726 : 0.53790114 : 1">
+         <path
+-           d="M 133.59629,108.48046 253.10212,130.7945 540.5037,93.974413 413.91156,82.46576 z"
+-           inkscape:box3dsidetype="13"
+-           style="fill:#00ade5;fill-opacity:0.51111115;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           sodipodi:type="inkscape:box3dside"
+            id="path4137"
+-           sodipodi:type="inkscape:box3dside" />
+-        <path
+-           d="m 133.59629,56.078359 0,52.402101 280.31527,-26.0147 0,-38.617113 z"
+-           inkscape:box3dsidetype="6"
+            style="fill:#00ade5;fill-opacity:0.51111115;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+-           id="path4129"
+-           sodipodi:type="inkscape:box3dside" />
++           inkscape:box3dsidetype="13"
++           d="M 133.59629,108.48046 253.10212,130.7945 540.5037,93.974413 413.91156,82.46576 z" />
+         <path
+-           d="m 413.91156,43.848647 126.59214,5.531124 0,44.594642 L 413.91156,82.46576 z"
+-           inkscape:box3dsidetype="11"
++           sodipodi:type="inkscape:box3dside"
++           id="path4129"
+            style="fill:#00ade5;fill-opacity:0.51111115;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+-           id="path4139"
+-           sodipodi:type="inkscape:box3dside" />
++           inkscape:box3dsidetype="6"
++           d="m 133.59629,56.078359 0,52.402101 280.31527,-26.0147 0,-38.617113 z" />
+         <path
+-           d="M 133.59629,56.078359 253.10212,66.741895 540.5037,49.379771 413.91156,43.848647 z"
+-           inkscape:box3dsidetype="5"
++           sodipodi:type="inkscape:box3dside"
++           id="path4139"
+            style="fill:#00ade5;fill-opacity:0.51111115;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+-           id="path4131"
+-           sodipodi:type="inkscape:box3dside" />
++           inkscape:box3dsidetype="11"
++           d="m 413.91156,43.848647 126.59214,5.531124 0,44.594642 L 413.91156,82.46576 z" />
+         <path
+-           d="m 253.10212,66.741895 0,64.052605 287.40158,-36.820087 0,-44.594642 z"
+-           inkscape:box3dsidetype="14"
++           sodipodi:type="inkscape:box3dside"
++           id="path4131"
+            style="fill:#00ade5;fill-opacity:0.51111115;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+-           id="path4135"
+-           sodipodi:type="inkscape:box3dside" />
++           inkscape:box3dsidetype="5"
++           d="M 133.59629,56.078359 253.10212,66.741895 540.5037,49.379771 413.91156,43.848647 z" />
+         <path
+-           d="m 133.59629,56.078359 119.50583,10.663536 0,64.052605 -119.50583,-22.31404 z"
+-           inkscape:box3dsidetype="3"
++           sodipodi:type="inkscape:box3dside"
++           id="path4135"
+            style="fill:#00ade5;fill-opacity:0.51111115;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           inkscape:box3dsidetype="14"
++           d="m 253.10212,66.741895 0,64.052605 287.40158,-36.820087 0,-44.594642 z" />
++        <path
++           sodipodi:type="inkscape:box3dside"
+            id="path4133"
+-           sodipodi:type="inkscape:box3dside" />
++           style="fill:#00ade5;fill-opacity:0.51111115;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           inkscape:box3dsidetype="3"
++           d="m 133.59629,56.078359 119.50583,10.663536 0,64.052605 -119.50583,-22.31404 z" />
+       </g>
+       <g
+-         id="text6476"
++         transform="matrix(0.70185341,0,0,0.70185341,103.7893,28.378586)"
+          style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
+-         transform="matrix(0.70185341,0,0,0.70185341,103.7893,28.378586)">
++         id="text6476">
+         <path
+-           id="path6483"
++           inkscape:connector-curvature="0"
+            d="m 284.7875,71.172554 c 0.44477,-0.832231 0.92421,-1.465513 1.4382,-1.900127 0.53667,-0.4355 1.1077,-0.672696 1.71297,-0.711885 1.04557,-0.06757 1.89194,0.353644 2.5402,1.262581 0.67037,0.906179 1.0052,2.492869 1.00523,4.761013 0,0 0,8.000002 0,8.000002 -3e-5,2.26822 -0.33486,3.921026 -1.00523,4.959505 -0.64826,1.007365 -1.49463,1.556992 -2.5402,1.647991 -0.95479,0.08315 -1.72468,-0.204346 -2.30875,-0.863225 -0.58488,-0.65966 -1.01814,-1.950635 -1.29935,-3.87322 -0.16424,-1.284181 -0.49265,-2.262294 -0.98575,-2.934566 -0.96432,-1.3174 -2.32007,-2.329246 -4.07067,-3.035472 -1.73349,-0.710549 -3.48536,-1.002067 -5.25579,-0.872195 -2.2105,0.162261 -4.25002,0.939439 -6.11624,2.335152 -1.87367,1.401341 -3.53455,3.579947 -4.98033,6.538425 -1.45023,2.967618 -2.17702,6.418844 -2.177,10.346848 0,0 0,6.319689 0,6.319689 -2e-5,4.68833 1.31723,8.4578 3.94077,11.29662 2.63334,2.82038 6.25448,3.9553 10.84051,3.42052 2.71589,-0.31667 5.00256,-1.0641 6.86624,-2.24004 1.08169,-
 0.681 2.23119,-1.9088 3.44797,-3.68114 0.74716,-1.06937 1.33005,-1.76505 1.74931,-2.0881 0.41882,-0.35351 0.89537,-0.55926 1.4295,-0.61747 0.95051,-0.10353 1.78351,0.28116 2.49963,1.15291 0.71496,0.87043 1.07203,1.94803 1.07206,3.23382 -3e-5,1.28582 -0.48388,2.72011 -1.45306,4.30537 -1.41137,2.31718 -3.23399,4.2301 -5.47274,5.73891 -3.02557,2.04682 -6.39086,3.30935 -10.10307,3.78033 -4.36859,0.55426 -8.34027,-0.12163 -11.90441,-2.04242 -2.90041,-1.54355 -5.38471,-4.24401 -7.44624,-8.1068 -2.0705,-3.91143 -3.10914,-8.31641 -3.10914,-13.20215 0,0 0,-6.658033 0,-6.658033 0,-5.109235 0.92611,-9.943355 2.77299,-14.489167 1.86452,-4.561782 4.42566,-8.139695 7.6721,-10.733799 3.2243,-2.576297 6.62007,-3.970988 10.18341,-4.195938 2.1298,-0.134375 4.10732,0.06744 5.93444,0.603403 1.8435,0.501452 3.5505,1.349515 5.12244,2.542658"
+-           inkscape:connector-curvature="0" />
++           id="path6483" />
+         <path
+-           id="path6485"
++           inkscape:connector-curvature="0"
+            d="m 332.72241,99.695904 c -3e-5,3.454376 -0.69544,6.883666 -2.08953,10.295926 -1.37739,3.39127 -3.45151,6.22973 -6.23223,8.51821 -2.77679,2.27061 -5.7014,3.60556 -8.77662,3.99619 -3.07455,0.39054 -6.03717,-0.19462 -8.88547,-1.76496 -2.86641,-1.61052 -5.06204,-4.01078 -6.577,-7.20109 -1.52005,-3.20093 -2.28198,-6.64692 -2.28197,-10.32991 -1e-5,-3.743818 0.77328,-7.485228 2.31594,-11.214731 1.53742,-3.747128 3.73278,-6.765923 6.57651,-9.055026 2.84809,-2.276467 5.79948,-3.529834 8.85199,-3.769629 3.05348,-0.23978 5.96744,0.568964 8.74442,2.416299 2.78093,1.804629 4.86582,4.376812 6.26443,7.717058 1.39409,3.300382 2.0895,6.761654 2.08953,10.391663 m -6.52296,0.719196 c -3e-5,-2.919695 -0.75935,-5.529693 -2.28187,-7.835916 -2.08863,-3.122229 -4.84898,-4.536825 -8.29355,-4.230938 -3.05251,0.271115 -5.6159,1.835234 -7.68164,4.700785 -2.07528,2.878816 -3.11648,6.090208 -3.11648,9.624269 0,2.89979 1.05239,5.50275 3.14988,7.80089 2.08774,2.25751 4.63979,3.20582 7.64824,2
 .85456 3.01001,-0.35144 5.52454,-1.87594 7.55183,-4.56609 2.01799,-2.70736 3.02356,-5.4868 3.02359,-8.34756"
+-           inkscape:connector-curvature="0" />
++           id="path6485" />
+         <path
+-           id="path6487"
++           inkscape:connector-curvature="0"
+            d="m 347.8693,77.803424 c 0,0 0,2.977535 0,2.977535 1.13725,-1.473815 2.38274,-2.608435 3.73555,-3.404894 1.3686,-0.795449 2.84302,-1.254431 4.42214,-1.378502 3.6158,-0.283947 6.45504,1.090917 8.53297,4.111636 1.63938,2.396082 2.4567,5.64404 2.45673,9.750881 0,0 0,16.07587 0,16.07587 1.26176,-0.14523 2.19111,0.1546 2.79025,0.89839 0.59824,0.71473 0.89705,1.71585 0.89708,3.00413 -3e-5,1.26026 -0.30848,2.33443 -0.92604,3.22348 -0.5992,0.85987 -1.61585,1.38012 -3.05301,1.5603 0,0 -5.43347,0.68121 -5.43347,0.68121 -1.46081,0.18314 -2.51013,-0.083 -3.14492,-0.79957 -0.6159,-0.7486 -0.92419,-1.77778 -0.92416,-3.08678 -3e-5,-1.28051 0.30826,-2.35539 0.92416,-3.22368 0.61496,-0.89541 1.56546,-1.41668 2.84922,-1.56445 0,0 0,-16.445742 0,-16.445742 -3e-5,-1.898092 -0.35513,-3.253658 -1.06623,-4.067719 -0.9302,-1.051374 -2.32932,-1.495065 -4.20195,-1.32878 -1.41994,0.126126 -2.6738,0.637836 -3.76007,1.536474 -1.06886,0.870461 -2.43401,2.660203 -4.09825,5.375433 0,0 0,16.441
 254 0,16.441254 1.60347,-0.18456 2.63545,-0.0881 3.10006,0.28814 0.98811,0.74447 1.48131,1.94593 1.48133,3.60564 -2e-5,1.28769 -0.32204,2.38607 -0.96682,3.29618 -0.62558,0.88027 -1.68708,1.41472 -3.18774,1.60286 0,0 -7.15906,0.89754 -7.15906,0.89754 -1.5311,0.19196 -2.63101,-0.0773 -3.29645,-0.80905 -0.64563,-0.7646 -0.96879,-1.81744 -0.96879,-3.15769 0,-1.63159 0.50029,-2.95748 1.49915,-3.97589 0.49856,-0.49379 1.5665,-0.83474 3.19961,-1.02272 0,0 0,-21.647257 0,-21.647257 -1.34325,0.121155 -2.33786,-0.210491 -2.98141,-0.996089 -0.64452,-0.786693 -0.96715,-1.835481 -0.96713,-3.145494 -2e-5,-1.309966 0.32261,-2.399054 0.96713,-3.26632 0.66429,-0.896616 1.76232,-1.405653 3.2908,-1.527814 0,0 5.98932,-0.478512 5.98932,-0.478512"
+-           inkscape:connector-curvature="0" />
++           id="path6487" />
+         <path
+-           id="path6489"
++           inkscape:connector-curvature="0"
+            d="m 388.14058,83.018823 c 0,0 0,16.90685 0,16.90685 -10e-6,1.809987 0.24937,2.974387 0.74771,3.492757 0.77393,0.81424 2.15235,1.10494 4.12918,0.87413 2.85672,-0.33354 5.4774,-1.54665 7.86642,-3.63181 0.91233,-0.804602 1.62645,-1.235237 2.14344,-1.293212 0.71193,-0.07979 1.32498,0.254725 1.8396,1.002732 0.53162,0.74505 0.79719,1.69422 0.79722,2.84828 -3e-5,1.07356 -0.28331,2.03341 -0.85042,2.88048 -0.87002,1.36914 -2.59781,2.75291 -5.19443,4.15584 -2.59535,1.38257 -4.79813,2.19134 -6.60183,2.42046 -3.50256,0.44491 -6.1539,-0.34442 -7.93718,-2.37749 -1.77237,-2.07172 -2.66142,-4.76781 -2.6614,-8.08161 0,0 0,-18.681529 0,-18.681529 0,0 -2.08504,0.187991 -2.08504,0.187991 -1.39587,0.125896 -2.39851,-0.172406 -3.00504,-0.896017 -0.58843,-0.754073 -0.88296,-1.771254 -0.88296,-3.050741 0,-1.251632 0.29453,-2.29109 0.88296,-3.117521 0.60653,-0.854462 1.60917,-1.337151 3.00504,-1.448715 0,0 2.08504,-0.166582 2.08504,-0.166582 0,0 0,-7.663148 0,-7.663148 -2e-5,-2.043459 0
 .26221,-3.510671 0.78619,-4.400745 0.54197,-0.917653 1.24175,-1.403398 2.09855,-1.458075 0.83641,-0.05329 1.5136,0.343008 2.03236,1.18804 0.53656,0.815375 0.80458,2.237345 0.80459,4.266667 0,0 0,7.610131 0,7.610131 0,0 10.37233,-0.828688 10.37233,-0.828688 1.33087,-0.106287 2.27244,0.210007 2.82742,0.94786 0.57201,0.708497 0.85774,1.682302 0.85777,2.92219 -3e-5,1.212982 -0.28576,2.235382 -0.85777,3.068081 -0.55498,0.805342 -1.49655,1.268255 -2.82742,1.388207 0,0 -10.37233,0.935187 -10.37233,0.935187"
+-           inkscape:connector-curvature="0" />
++           id="path6489" />
+         <path
+-           id="path6491"
++           inkscape:connector-curvature="0"
+            d="m 426.78356,107.09258 c 0,0 0,-1.88162 0,-1.88162 -1.29426,1.23241 -2.72793,2.21052 -4.30255,2.93345 -1.58097,0.75218 -3.02296,1.21187 -4.32438,1.37727 -2.84033,0.36091 -5.16206,-0.50088 -6.95591,-2.59442 -1.80197,-2.1297 -2.706,-4.61561 -2.706,-7.450523 0,-3.449995 1.14945,-6.766286 3.43846,-9.93519 2.29325,-3.179053 5.43363,-4.95254 9.40099,-5.331327 1.57921,-0.150749 3.39679,-0.06225 5.44939,0.26374 0,0 0,-1.920817 0,-1.920817 -1e-5,-1.202127 -0.33577,-2.151503 -1.00813,-2.849026 -0.6567,-0.700183 -1.92263,-0.967515 -3.80372,-0.800477 -1.5489,0.137578 -3.56646,0.792207 -6.05983,1.968997 -0.9326,0.429384 -1.65947,0.668141 -2.17946,0.715577 -0.71179,0.06498 -1.32039,-0.265367 -1.82538,-0.991816 -0.48819,-0.755544 -0.7325,-1.746725 -0.7325,-2.972869 0,-0.693 0.0873,-1.300079 0.26176,-1.821128 0.17441,-0.520739 0.41846,-0.940499 0.73202,-1.259265 0.31331,-0.345082 0.96525,-0.770689 1.95416,-1.276103 1.31474,-0.663016 2.65095,-1.206818 4.00842,-1.631975 1.3528,-
 0.449995 2.5732,-0.717309 3.66242,-0.802899 3.23272,-0.253864 5.71949,0.634365 7.47424,2.656278 1.76343,1.985514 2.64219,4.831201 2.64221,8.543807 0,0 0,16.434219 0,16.434219 0,0 0.8685,-0.09997 0.8685,-0.09997 1.22086,-0.140526 2.0847,0.135063 2.5939,0.825754 0.52488,0.662055 0.78706,1.586613 0.78708,2.774353 -2e-5,1.16192 -0.2622,2.14952 -0.78708,2.96365 -0.5092,0.78731 -1.37304,1.2577 -2.5939,1.41076 0,0 -5.99471,0.75157 -5.99471,0.75157 m 0,-14.386546 c -2.06948,-0.40743 -3.98883,-0.518817 -5.75577,-0.331915 -2.13431,0.225806 -3.97905,1.227956 -5.53012,3.010736 -0.96819,1.140564 -1.45318,2.243056 -1.45316,3.305406 -2e-5,0.770223 0.23388,1.367569 0.70129,1.791659 0.86409,0.77522 2.04484,1.07465 3.53944,0.90007 1.26684,-0.14798 2.69144,-0.69613 4.27211,-1.641975 1.59121,-0.943971 2.9993,-2.138927 4.22621,-3.584347 0,0 0,-3.449634 0,-3.449634"
+-           inkscape:connector-curvature="0" />
++           id="path6491" />
+         <path
+-           id="path6493"
++           inkscape:connector-curvature="0"
+            d="m 453.9243,54.610091 c 0,0 0,8.211498 0,8.211498 0,0 -5.76678,0.411052 -5.76678,0.411052 0,0 0,-8.274175 0,-8.274175 0,0 5.76678,-0.348375 5.76678,-0.348375 m 0.65618,14.667738 c 0,0 0,26.579133 0,26.579133 0,0 5.71636,-0.65798 5.71636,-0.65798 1.13594,-0.130751 1.93979,0.138491 2.41364,0.806796 0.48847,0.640773 0.73247,1.533755 0.73249,2.679593 -2e-5,1.120916 -0.24402,2.072579 -0.73249,2.855759 -0.47385,0.75733 -1.2777,1.2074 -2.41364,1.34982 0,0 -16.42615,2.05938 -16.42615,2.05938 -1.18999,0.14919 -2.04454,-0.10251 -2.56141,-0.7561 -0.5014,-0.68215 -0.75234,-1.61404 -0.75234,-2.79504 0,-1.1553 0.25094,-2.121869 0.75234,-2.898952 0.51687,-0.803545 1.37142,-1.273558 2.56141,-1.41053 0,0 5.87909,-0.67671 5.87909,-0.67671 0,0 0,-18.948966 0,-18.948966 0,0 -3.93328,0.354631 -3.93328,0.354631 -1.16791,0.105341 -2.01005,-0.17664 -2.52426,-0.846857 -0.51491,-0.696656 -0.77263,-1.634334 -0.77262,-2.812333 -10e-6,-1.152351 0.24966,-2.107591 0.7485,-2.864998 0.51424,-0
 .783198 1.36445,-1.221827 2.54838,-1.316456 0,0 8.76398,-0.70019 8.76398,-0.70019"
+-           inkscape:connector-curvature="0" />
++           id="path6493" />
+         <path
+-           id="path6495"
++           inkscape:connector-curvature="0"
+            d="m 475.50208,67.606316 c 0,0 0,2.536447 0,2.536447 0.82543,-1.243767 1.72979,-2.197864 2.71251,-2.863045 0.99466,-0.664475 2.06675,-1.041275 3.21558,-1.131544 2.63288,-0.206754 4.70261,0.995273 6.21864,3.596757 1.19685,2.064769 1.79379,4.849578 1.79381,8.359593 0,0 0,13.739648 0,13.739648 0.92188,-0.106113 1.60115,0.163521 2.03918,0.808107 0.43746,0.619866 0.656,1.480388 0.65602,2.582152 -2e-5,1.077801 -0.22561,1.991748 -0.6772,2.74255 -0.43807,0.725982 -1.18113,1.154978 -2.23108,1.286613 0,0 -3.96487,0.497085 -3.96487,0.497085 -1.0647,0.133484 -1.82917,-0.110058 -2.2915,-0.731511 -0.44847,-0.648312 -0.67292,-1.531197 -0.6729,-2.648076 -2e-5,-1.092577 0.22443,-2.005162 0.6729,-2.737073 0.44789,-0.755228 1.14034,-1.186443 2.07594,-1.294135 0,0 0,-14.041184 0,-14.041184 -2e-5,-1.62057 -0.25886,-2.78201 -0.77709,-3.485072 -0.67772,-0.907895 -1.69667,-1.302142 -3.05969,-1.181111 -1.03295,0.09175 -1.94465,0.514073 -2.73418,1.267944 -0.7766,0.729774 -1.76804,2.239168
  -2.97607,4.532658 0,0 0,14.005672 0,14.005672 1.16391,-0.133971 1.91333,-0.03683 2.25082,0.290636 0.71792,0.649047 1.07636,1.68058 1.07637,3.095536 -1e-5,1.097796 -0.23405,2.029224 -0.70258,2.795022 -0.45448,0.740495 -1.22543,1.179235 -2.31485,1.315815 0,0 -5.18947,0.65062 -5.18947,0.65062 -1.10822,0.13893 -1.90397,-0.10756 -2.38525,-0.74043 -0.46685,-0.66032 -0.70049,-1.56056 -0.70049,-2.700113 0,-1.387265 0.36171,-2.50717 1.08406,-3.358431 0.36064,-0.412646 1.13337,-0.687031 2.31557,-0.823108 0,0 0,-18.420515 0,-18.420515 -0.97243,0.08771 -1.69217,-0.205769 -2.15774,-0.881257 -0.46616,-0.67628 -0.69947,-1.571732 -0.69946,-2.685719 -1e-5,-1.113947 0.2333,-2.03669 0.69946,-2.767556 0.48058,-0.755792 1.27518,-1.177643 2.38178,-1.266092 0,0 4.34178,-0.346883 4.34178,-0.346883"
+-           inkscape:connector-curvature="0" />
++           id="path6495" />
+         <path
+-           id="path6497"
++           inkscape:connector-curvature="0"
+            d="m 516.2673,83.722347 c 0,0 -17.01231,1.834644 -17.01231,1.834644 0.44185,1.848273 1.22067,3.289103 2.33424,4.321792 1.12374,1.027866 2.63243,1.429872 4.52114,1.209352 1.54145,-0.179976 3.57954,-0.990387 6.10559,-2.424021 1.03717,-0.583484 1.75341,-0.897083 2.15071,-0.942116 0.54219,-0.06141 0.99779,0.223013 1.36714,0.85272 0.3689,0.629061 0.55322,1.452524 0.55324,2.47089 -2e-5,0.925797 -0.19751,1.736603 -0.5928,2.432995 -0.5278,0.922061 -1.81764,1.905265 -3.87803,2.953251 -2.07267,1.030855 -4.07672,1.670911 -6.01089,1.916599 -3.35242,0.425841 -6.0602,-0.877156 -8.10814,-3.925214 -2.04585,-3.067292 -3.07319,-7.030199 -3.07319,-11.875495 0,-5.155547 1.11107,-9.444274 3.3229,-12.850313 2.21193,-3.409715 4.73871,-5.21866 7.57349,-5.441345 1.69266,-0.132909 3.23602,0.260598 4.63201,1.177293 1.40373,0.912009 2.44288,1.931821 3.12066,3.060528 0.9546,1.636213 1.7415,3.688648 2.36186,6.157338 0.42169,1.719696 0.63236,3.736031 0.63238,6.05059 0,0 0,3.020512 0,3.020512 m
  -4.51107,-6.677135 c -0.62731,-1.990684 -1.44983,-3.441932 -2.46895,-4.353009 -1.02212,-0.937128 -2.24313,-1.343777 -3.6651,-1.217511 -1.41414,0.125607 -2.6425,0.753666 -3.68311,1.886295 -1.04369,1.112332 -1.89741,2.742795 -2.55975,4.891895 0,0 12.37691,-1.20767 12.37691,-1.20767"
+-           inkscape:connector-curvature="0" />
++           id="path6497" />
+         <path
+-           id="path6499"
++           inkscape:connector-curvature="0"
+            d="m 529.26714,63.310804 c 0,0 0,4.360627 0,4.360627 1.63097,-2.247844 2.90878,-3.756252 3.83736,-4.531717 0.93851,-0.774258 1.81212,-1.192426 2.62133,-1.256017 1.24109,-0.09744 2.44062,0.637677 3.59899,2.201052 0.78636,1.052813 1.17886,2.159045 1.17888,3.320496 -2e-5,0.982826 -0.19008,1.837577 -0.5705,2.564837 -0.36861,0.704643 -0.8176,1.081739 -1.34729,1.13078 -0.46884,0.04344 -0.96305,-0.337016 -1.48272,-1.142328 -0.52052,-0.806521 -0.98594,-1.192073 -1.39602,-1.155672 -0.53514,0.04754 -1.33941,0.727598 -2.41476,2.043211 -1.06624,1.318692 -2.40692,3.27905 -4.02527,5.887282 0,0 0,10.526834 0,10.526834 0,0 5.50612,-0.63378 5.50612,-0.63378 0.92146,-0.106064 1.57368,0.14475 1.95822,0.751703 0.39645,0.582377 0.59451,1.389478 0.59453,2.421834 -2e-5,1.009903 -0.19808,1.864635 -0.59453,2.564818 -0.38454,0.676972 -1.03676,1.073391 -1.95822,1.188916 0,0 -11.77989,1.476871 -11.77989,1.476871 -0.95657,0.119927 -1.64331,-0.115635 -2.05861,-0.707472 -0.40281,-0.617169 -0.6
 0438,-1.455248 -0.60438,-2.513711 0,-1.035437 0.20157,-1.898985 0.60438,-2.590038 0.4153,-0.714702 1.10204,-1.126896 2.05861,-1.237002 0,0 2.35416,-0.270974 2.35416,-0.270974 0,0 0,-17.063345 0,-17.063345 0,0 -1.426,0.128571 -1.426,0.128571 -0.95398,0.08605 -1.63887,-0.173426 -2.05304,-0.779149 -0.40171,-0.630509 -0.60275,-1.474561 -0.60274,-2.531606 -10e-6,-1.034031 0.20103,-1.889297 0.60274,-2.565222 0.41417,-0.699049 1.09906,-1.086463 2.05304,-1.162716 0,0 5.34561,-0.427083 5.34561,-0.427083"
+-           inkscape:connector-curvature="0" />
++           id="path6499" />
+       </g>
+       <g
+-         id="text10906"
++         transform="matrix(0.86745158,0,0,0.86745158,24.966041,10.718461)"
+          style="font-size:40px;font-style:italic;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium Italic"
+-         transform="matrix(0.86745158,0,0,0.86745158,24.966041,10.718461)">
++         id="text10906">
+         <path
+-           id="path10913"
++           inkscape:connector-curvature="0"
+            d="m 153.83888,80.580698 c 0,0 -8.49369,30.064162 -8.49369,30.064162 0,0 -2.61138,-18.595363 -2.61138,-18.595363 0,0 -4.57263,17.271913 -4.57263,17.271913 0,0 -4.56489,-31.350308 -4.56489,-31.350308 0,0 3.1018,0.399872 3.1018,0.399872 0,0 2.23125,17.302482 2.23125,17.302482 0,0 4.5716,-17.201161 4.5716,-17.201161 0,0 2.48011,18.325657 2.48011,18.325657 0,0 4.30892,-16.674766 4.30892,-16.674766 0,0 3.54891,0.457512 3.54891,0.457512"
+-           inkscape:connector-curvature="0" />
++           id="path10913" />
+         <path
+-           id="path10915"
++           inkscape:connector-curvature="0"
+            d="m 159.48545,81.308632 c 0,0 -0.14506,2.466001 -0.14506,2.466001 1.08487,-2.027243 2.18358,-2.972954 3.29626,-2.831021 0.97953,0.125009 1.8738,0.992223 2.68199,2.604674 0,0 -2.07993,5.347173 -2.07993,5.347173 -0.59716,-1.153753 -1.19308,-1.770955 -1.78777,-1.853275 -0.40876,-0.05653 -0.76837,0.06793 -1.07902,0.373103 -0.31033,0.284418 -0.58159,0.778602 -0.81389,1.482374 -0.22246,0.684173 -0.41092,1.58735 -0.56546,2.709458 -0.14482,1.12299 -0.26061,2.474469 -0.34742,4.054536 0,0 -0.83785,14.250185 -0.83785,14.250185 0,0 -3.1705,-0.5674 -3.1705,-0.5674 0,0 1.65971,-28.446914 1.65971,-28.446914 0,0 3.18894,0.411106 3.18894,0.411106"
+-           inkscape:connector-curvature="0" />
++           id="path10915" />
+         <path
+-           id="path10917"
++           inkscape:connector-curvature="0"
+            d="m 172.11805,68.890531 c 0,1.003379 -0.1767,1.8517 -0.5298,2.544356 -0.35269,0.691923 -0.77536,1.010087 -1.2677,0.955217 -0.49153,-0.05472 -0.91719,-0.476639 -1.27726,-1.265141 -0.34966,-0.827922 -0.52433,-1.750538 -0.52433,-2.768572 -1e-5,-1.017937 0.16966,-1.862856 0.50931,-2.535355 0.35004,-0.692993 0.76564,-1.016131 1.24707,-0.968719 0.49226,0.04858 0.9199,0.476836 1.28263,1.285447 0.37326,0.789837 0.56007,1.707665 0.56008,2.752767 m -1.04353,13.912119 c 0,0 -1.74602,29.17105 -1.74602,29.17105 0,0 -3.29827,-0.59027 -3.29827,-0.59027 0,0 1.72646,-29.008502 1.72646,-29.008502 0,0 3.31783,0.427722 3.31783,0.427722"
+-           inkscape:connector-curvature="0" />
++           id="path10917" />
+         <path
+-           id="path10919"
++           inkscape:connector-curvature="0"
+            d="m 179.01598,90.329159 c 0,0 -1.40773,23.126301 -1.40773,23.126301 0,0 -3.39164,-0.60698 -3.39164,-0.60698 0,0 1.39174,-22.995732 1.39174,-22.995732 0,0 -1.91023,-0.267064 -1.91023,-0.267064 0,0 0.38103,-6.395689 0.38103,-6.395689 0,0 1.91269,0.246577 1.91269,0.246577 0,0 0.83004,-13.70396 0.83004,-13.70396 0,0 3.4216,0.361663 3.4216,0.361663 0,0 -0.8396,13.782164 -0.8396,13.782164 0,0 3.18457,0.410542 3.18457,0.410542 0,0 -0.39205,6.486823 -0.39205,6.486823 0,0 -3.18042,-0.444645 -3.18042,-0.444645"
+-           inkscape:connector-curvature="0" />
++           id="path10919" />
+         <path
+-           id="path10921"
++           inkscape:connector-curvature="0"
+            d="m 200.09638,86.544035 c 0,0 -1.9219,30.592005 -1.9219,30.592005 0,0 -3.62917,-0.64949 -3.62917,-0.64949 0,0 0.21227,-3.28285 0.21227,-3.28285 -1.54259,2.41691 -3.13133,3.47304 -4.76546,3.17868 -1.99844,-0.35998 -3.6185,-2.0112 -4.86612,-4.94632 -1.24249,-2.92301 -1.86183,-6.53106 -1.86186,-10.83321 -3e-5,-4.962328 0.70859,-8.930336 2.13088,-11.914549 1.45024,-2.995545 3.31826,-4.353123 5.61178,-4.060287 1.08848,0.139025 2.01838,0.614876 2.78825,1.428732 0.78266,0.817394 1.58372,2.160431 2.4033,4.031318 0,0 0.24627,-4.0148 0.24627,-4.0148 0,0 3.65176,0.470771 3.65176,0.470771 m -4.43909,13.904255 c -4e-5,-2.717054 -0.39303,-4.980086 -1.17745,-6.785644 -0.78246,-1.822565 -1.79014,-2.81699 -3.02082,-2.98627 -1.33305,-0.183291 -2.44658,0.70638 -3.34298,2.664066 -0.89378,1.973413 -1.33967,4.478873 -1.33964,7.520788 1e-5,2.65635 0.37157,4.89141 1.11605,6.70853 0.74629,1.8216 1.70851,2.83435 2.88872,3.03545 1.31431,0.22398 2.45545,-0.65327 3.42144,-2.63719 0.96902,-2
 .03362 1.45468,-4.54179 1.45468,-7.51973"
+-           inkscape:connector-curvature="0" />
++           id="path10921" />
+         <path
+-           id="path10923"
++           inkscape:connector-curvature="0"
+            d="m 210.59369,62.948857 c 0,0 -1.76545,27.618349 -1.76545,27.618349 0.99306,-1.312846 1.85741,-2.168093 2.59198,-2.563345 0.77082,-0.414004 1.60707,-0.563925 2.50926,-0.448755 2.23175,0.285016 4.08604,2.008664 5.55612,5.180407 1.47685,3.163873 2.21788,7.051196 2.21795,11.650967 4e-5,5.05301 -0.84154,9.11579 -2.51812,12.17628 -1.67956,3.08741 -3.71714,4.40866 -6.1058,3.97839 -2.21018,-0.39812 -4.13144,-2.38754 -5.76892,-5.95632 0,0 -0.27204,4.13756 -0.27204,4.13756 0,0 -3.73402,-0.66825 -3.73402,-0.66825 0,0 3.51259,-55.442257 3.51259,-55.442257 0,0 3.77645,0.336974 3.77645,0.336974 m 7.18157,41.007653 c -5e-5,-2.83751 -0.43943,-5.220592 -1.31634,-7.145285 -0.87451,-1.919338 -2.00774,-2.97287 -3.3969,-3.163946 -1.49809,-0.205986 -2.73151,0.692689 -3.70333,2.690649 -0.96885,1.947466 -1.45212,4.570632 -1.45209,7.874012 3e-5,2.77133 0.41508,5.06732 1.24682,6.89164 0.83393,1.87364 1.9225,2.92662 3.26838,3.15588 1.49058,0.25395 2.74975,-0.61929 3.77469,-2.62548 1.0516
 5,-2.00888 1.57878,-4.5697 1.57877,-7.67747"
+-           inkscape:connector-curvature="0" />
++           id="path10923" />
+         <path
+-           id="path10925"
++           inkscape:connector-curvature="0"
+            d="m 232.93555,64.942427 c 0,0 -3.79307,57.735703 -3.79307,57.735703 0,0 -4.00192,-0.71619 -4.00192,-0.71619 0,0 3.76441,-57.379163 3.76441,-57.379163 0,0 4.03058,0.35965 4.03058,0.35965"
+-           inkscape:connector-curvature="0" />
++           id="path10925" />
+         <path
+-           id="path10927"
++           inkscape:connector-curvature="0"
+            d="m 239.0771,110.77066 c 3e-5,2.42055 0.4512,4.48489 1.35536,6.19654 0.91925,1.71851 2.09407,2.70154 3.52717,2.94627 1.9759,0.33746 3.50088,-0.76924 4.56866,-3.32776 0,0 3.20464,3.76569 3.20464,3.76569 -1.11698,2.55798 -2.26253,4.27421 -3.43636,5.15274 -1.18257,0.89672 -2.65489,1.18453 -4.41309,0.86707 -2.77117,-0.50035 -4.9627,-2.39688 -6.58594,-5.68055 -1.61524,-3.26745 -2.41991,-7.39273 -2.41997,-12.38791 -7e-5,-5.2264 0.88505,-9.472622 2.6626,-12.752021 1.77469,-3.27557 4.03189,-4.746141 6.78148,-4.39624 2.68278,0.341472 4.81246,2.219379 6.37821,5.643695 1.59914,3.467846 2.40165,7.941666 2.40175,13.409026 -1e-5,0.57052 -0.0196,1.49453 -0.0587,2.77194 0,0 -13.96577,-2.20849 -13.96577,-2.20849 m 9.66372,-4.77749 c -0.45108,-5.21198 -1.99914,-7.996687 -4.62896,-8.357264 -2.4703,-0.338637 -4.06923,1.982786 -4.80935,6.953984 0,0 9.43831,1.40328 9.43831,1.40328"
+-           inkscape:connector-curvature="0" />
++           id="path10927" />
+       </g>
+     </g>
+     <g
+-       inkscape:groupmode="layer"
+-       id="layer10"
++       style="display:none"
+        inkscape:label="Base Image"
+-       style="display:none">
++       id="layer10"
++       inkscape:groupmode="layer">
+       <g
+-         transform="matrix(0.71864924,0,0,0.71864924,102.10269,88.99025)"
++         id="text7027"
+          style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
+-         id="text7027">
++         transform="matrix(0.71864924,0,0,0.71864924,102.10269,88.99025)">
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7034"
+            d="m 257.77651,339.30723 c 0,0 -0.0126,-47.29911 -0.0126,-47.29911 0,0 -1.07548,0.31593 -1.07548,0.31593 -1.66284,0.48854 -2.85746,0.28792 -3.58019,-0.6041 -0.70114,-0.93919 -1.05207,-2.31685 -1.05207,-4.13168 0,-1.81444 0.35082,-3.37328 1.05164,-4.67526 0.72225,-1.34546 1.91609,-2.25144 3.57799,-2.71834 0,0 16.97387,-4.76807 16.97387,-4.76807 3.96095,-1.11259 7.12511,-0.0323 9.50921,3.22201 2.37256,3.20077 3.55893,7.47543 3.56767,12.83748 0.004,2.54895 -0.26558,5.03047 -0.80964,7.44667 -0.54488,2.41969 -1.37616,4.76094 -2.49546,7.02568 2.05523,1.5616 3.5872,3.66333 4.601,6.30634 1.03267,2.59309 1.55152,5.7504 1.5581,9.47676 0.005,2.96688 -0.35657,5.85099 -1.08626,8.65561 -0.5429,2.13369 -1.21349,3.9137 -2.01229,5.33981 -1.07439,1.98467 -2.39566,3.77328 -3.96594,5.36629 -1.57592,1.56019 -3.5546,2.76646 -5.94107,3.61797 0,0 -19.88366,7.09459 -19.88366,7.09459 -1.66745,0.59496 -2.8654,0.46776 -3.59015,-0.3841 -0.7031,-0.90081 -1.05501,-2.26426 -1.05501,-4.08924 0,-
 1.78498 0.36314,-3.35858 1.08856,-4.71936 0.72421,-1.39809 1.91002,-2.37974 3.55397,-2.94517 0,0 1.07785,-0.37071 1.07785,-0.37071 m 6.82963,-31.88447 c 0,0 7.39137,-2.30892 7.39137,-2.30892 2.62158,-0.8189 4.78642,-2.6695 6.50056,-5.5468 1.1532,-1.92898 1.72713,-4.06042 1.72408,-6.3978 -0.003,-2.06859 -0.54939,-3.7066 -1.64172,-4.9163 -1.09485,-1.25071 -2.83681,-1.52649 -5.23332,-0.82255 0,0 -8.7512,2.57075 -8.7512,2.57075 0,0 0.0102,17.42162 0.0102,17.42162 m 0.0173,29.5295 c 0,0 11.59226,-3.98707 11.59226,-3.98707 2.6872,-0.92424 4.5687,-2.28259 5.65417,-4.07576 0.82819,-1.3569 1.24028,-3.03056 1.23742,-5.02267 -0.003,-2.37465 -0.82491,-4.43936 -2.46842,-6.19896 -1.6491,-1.76544 -4.02284,-2.14729 -7.13269,-1.13597 0,0 -8.89303,2.89208 -8.89303,2.89208 0,0 0.0103,17.52835 0.0103,17.52835"
+-           id="path7034" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7036"
+            d="m 315.63395,330.78832 c 0,0 -0.008,-2.66312 -0.008,-2.66312 -1.5205,2.05858 -3.20684,3.79158 -5.06081,5.19796 -1.86182,1.44967 -3.56117,2.45156 -5.09604,3.00252 -3.35058,1.20262 -6.09378,0.54663 -8.21773,-1.98311 -2.1334,-2.5787 -3.20755,-5.87974 -3.21543,-9.8935 -0.01,-4.88257 1.33706,-9.85215 4.02708,-14.88639 2.69328,-5.04641 6.38764,-8.30943 11.05913,-9.80146 1.85895,-0.5937 3.99917,-0.90711 6.4167,-0.94198 0,0 -0.008,-2.71047 -0.008,-2.71047 -0.005,-1.69597 -0.40413,-2.95433 -1.19822,-3.7763 -0.77565,-0.82947 -2.26653,-0.90179 -4.47994,-0.2133 -1.82287,0.56707 -4.19603,1.97667 -7.12852,4.23834 -1.09717,0.83095 -1.95272,1.34329 -2.56522,1.53566 -0.83846,0.26342 -1.55663,-0.0562 -2.15389,-0.96001 -0.57751,-0.94891 -0.86835,-2.28914 -0.872,-4.01969 -0.002,-0.97796 0.0989,-1.85561 0.30293,-2.6328 0.20389,-0.77667 0.49009,-1.42758 0.85846,-1.95271 0.36795,-0.56215 1.13444,-1.3193 2.29738,-2.26995 1.54584,-1.25105 3.11705,-2.33895 4.71339,-3.2645 1.59048,-0.959
 27 3.02556,-1.62913 4.30677,-2.01132 3.80176,-1.13384 6.73,-0.47944 8.80217,1.94792 2.08246,2.37423 3.12878,6.17396 3.14584,11.40899 0,0 0.0755,23.20429 0.0755,23.20429 0,0 1.02221,-0.35158 1.02221,-0.35158 1.43677,-0.49417 2.45508,-0.3138 3.05789,0.53908 0.62114,0.80865 0.93435,2.052 0.94024,3.73109 0.006,1.64284 -0.29817,3.103 -0.91229,4.38174 -0.5959,1.23719 -1.61113,2.11228 -3.0486,2.62518 0,0 -7.06105,2.51942 -7.06105,2.51942 m -0.0605,-20.34496 c -2.43905,-0.0753 -4.70041,0.23148 -6.78144,0.92294 -2.51422,0.83547 -4.68502,2.69856 -6.5076,5.59502 -1.13795,1.84779 -1.70634,3.52499 -1.70292,5.02807 0.002,1.0899 0.28029,1.87848 0.83301,2.36524 1.0218,0.88744 2.41549,1.02464 4.17755,0.41484 1.49329,-0.5168 3.1709,-1.63797 5.03058,-3.3593 1.87161,-1.72078 3.52592,-3.75158 4.9653,-6.09198 0,0 -0.0145,-4.87483 -0.0145,-4.87483"
+-           id="path7036" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7038"
+            d="m 351.45961,282.46833 c -0.91452,-0.81047 -1.87521,-1.32503 -2.88241,-1.54283 -1.00973,-0.2537 -2.06646,-0.2094 -3.17058,0.13403 -2.19836,0.68386 -3.94926,1.92675 -5.24728,3.73026 -0.5762,0.79085 -0.86315,1.54528 -0.8602,2.26251 0.003,0.82494 0.39908,1.5073 1.18614,2.04629 0.59861,0.38285 1.93021,0.51244 3.98804,0.38963 3.75668,-0.20875 6.35384,-0.0517 7.81225,0.46829 1.90678,0.68882 3.37659,2.14965 4.41397,4.38104 1.03506,2.22658 1.55882,4.7606 1.57299,7.60629 0.0192,3.8658 -0.83398,7.40347 -2.56521,10.62256 -2.494,4.67157 -5.77005,7.74446 -9.84541,9.20702 -1.64484,0.59029 -3.1764,0.85271 -4.59341,0.78534 -1.40277,-0.0383 -2.69857,-0.38697 -3.88635,-1.04728 -0.28039,0.56921 -0.58022,1.03726 -0.89956,1.40403 -0.31959,0.36694 -0.64935,0.61132 -0.9893,0.73259 -0.90789,0.32388 -1.6396,0.0228 -2.1942,-0.90467 -0.5364,-0.97147 -0.80986,-2.79935 -0.81995,-5.48228 0,0 -0.0141,-3.75135 -0.0141,-3.75135 -0.0101,-2.68128 0.24884,-4.67325 0.77628,-5.97507 0.54553,-1.3425
 7 1.25338,-2.15911 2.12282,-2.4506 0.69806,-0.23398 1.28355,-0.0514 1.75697,0.54708 0.47278,0.56188 0.84401,1.69794 1.114,3.40803 0.88673,1.1377 1.94787,1.87097 3.18209,2.20069 1.2306,0.29303 2.64142,0.16353 4.23059,-0.38634 2.59273,-0.89712 4.59185,-2.37089 6.00541,-4.42001 0.6686,-1.00942 1.00048,-1.93805 0.99651,-2.78707 -0.007,-1.41485 -0.49308,-2.41976 -1.46078,-3.01586 -0.96983,-0.59733 -2.9752,-0.70841 -6.03069,-0.33021 -4.58673,0.59585 -7.6827,-0.17688 -9.25518,-2.32843 -1.57769,-2.12264 -2.37589,-5.11935 -2.39063,-8.9837 -0.0152,-3.97117 0.8521,-7.54395 2.5961,-10.70925 2.35076,-4.30605 5.42069,-7.0163 9.19499,-8.14207 1.30582,-0.38941 2.55386,-0.51306 3.74464,-0.37241 1.20554,0.0997 2.35451,0.48017 3.44739,1.14045 0.34168,-0.59723 0.65654,-1.06254 0.94466,-1.39612 0.30594,-0.33858 0.58518,-0.54582 0.83779,-0.62164 0.75685,-0.22696 1.38927,0.14621 1.89787,1.11843 0.50782,0.93618 0.76793,2.70208 0.78072,5.29897 0,0 0.013,2.63267 0.013,2.63267 0.0115,2.35245 -0.12411,
 3.99567 -0.4071,4.9298 -0.56706,1.80018 -1.34596,2.85977 -2.33781,3.17733 -0.6686,0.21411 -1.25866,-0.004 -1.76979,-0.6537 -0.51177,-0.6508 -0.84365,-1.62508 -0.99522,-2.92244"
+-           id="path7038" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7040"
+            d="m 391.08767,286.09973 c 0,0 -21.40037,7.16598 -21.40037,7.16598 0.57216,2.58305 1.56606,4.48187 2.97874,5.69565 1.42536,1.20392 3.33049,1.3912 5.70856,0.56836 1.94011,-0.6713 4.49918,-2.39426 7.66518,-5.15474 1.2993,-1.12534 2.19719,-1.77197 2.69637,-1.94256 0.68118,-0.23272 1.25664,0.0618 1.72693,0.88273 0.46973,0.82008 0.70926,1.97252 0.71896,3.45813 0.009,1.35076 -0.23184,2.58617 -0.72232,3.70718 -0.65513,1.48575 -2.26858,3.26333 -4.85199,5.34083 -2.60048,2.05693 -5.11941,3.52549 -7.55489,4.39953 -4.22378,1.51581 -7.65099,0.33127 -10.26023,-3.58227 -2.60677,-3.94222 -3.93431,-9.46384 -3.97137,-16.54436 -0.0394,-7.52874 1.32903,-14.07941 4.09047,-19.62629 2.75903,-5.5472 5.92505,-8.84107 9.48957,-9.90426 2.12737,-0.63445 4.07097,-0.46394 5.83355,0.50605 1.77201,0.96099 3.08675,2.17372 3.94852,3.63907 1.21416,2.13157 2.22166,4.91277 3.02403,8.34384 0.54592,2.39326 0.82964,5.27426 0.85162,8.64573 0,0 0.0287,4.4014 0.0287,4.4014 m -5.73214,-8.54412 c -0.80672,-
 2.7354 -1.85391,-4.63367 -3.14346,-5.69374 -1.29366,-1.0973 -2.833,-1.37003 -4.62091,-0.81389 -1.77862,0.55329 -3.31967,1.79032 -4.62063,3.71406 -1.30548,1.89566 -2.36785,4.49783 -3.18525,7.80742 0,0 15.57025,-5.01385 15.57025,-5.01385"
+-           id="path7040" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7042"
+            d="m 438.50105,238.91477 c 0,0 0.33366,38.11886 0.33366,38.11886 0,0 4.5189,-1.55424 4.5189,-1.55424 1.06904,-0.36769 1.8298,-0.17153 2.28417,0.58709 0.46789,0.72139 0.70825,1.80481 0.72144,3.25104 0.0129,1.41496 -0.20635,2.65984 -0.65806,3.73554 -0.43823,1.04046 -1.19112,1.75156 -2.26052,2.13313 0,0 -13.68028,4.8812 -13.68028,4.8812 -1.1116,0.39663 -1.91344,0.23005 -2.40353,-0.50122 -0.47582,-0.76976 -0.72,-1.89742 -0.73214,-3.38218 -0.0119,-1.45226 0.21273,-2.71134 0.67337,-3.77635 0.47483,-1.10101 1.26883,-1.84247 2.38003,-2.22466 0,0 4.62789,-1.59173 4.62789,-1.59173 0,0 -0.3275,-38.34793 -0.3275,-38.34793 0,0 -4.6215,1.35761 -4.6215,1.35761 -1.10965,0.32602 -1.91007,0.11077 -2.39927,-0.64712 -0.47496,-0.79518 -0.71868,-1.93224 -0.73077,-3.41027 -0.0121,-1.47774 0.21202,-2.73263 0.67186,-3.76384 0.47403,-1.06604 1.26664,-1.75469 2.37589,-2.06634 0,0 13.65257,-3.78793 13.65257,-3.78793 1.06727,-0.29982 1.82661,-0.0734 2.27992,0.67815 0.4671,0.74675 0.70703,1.8
 3959 0.72016,3.27935 0.0131,1.44004 -0.20565,2.68084 -0.65663,3.72319 -0.43753,1.00825 -1.18918,1.66931 -2.25681,1.98288 0,0 -4.51285,1.3257 -4.51285,1.3257"
+-           id="path7042" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7044"
+            d="m 455.88348,238.41146 c 0,0 0.0257,2.69003 0.0257,2.69003 0.68312,-1.72546 1.29991,-2.94833 1.85075,-3.67036 0.56356,-0.75579 1.21217,-1.24275 1.94542,-1.46144 0.62141,-0.18526 1.23821,-0.0305 1.85047,0.46347 0.61126,0.49329 1.21121,1.3268 1.79992,2.49991 0.71137,-1.56555 1.43158,-2.77864 2.16064,-3.64047 0.7408,-0.89447 1.49699,-1.45627 2.26852,-1.68643 1.53816,-0.45872 2.79097,0.0945 3.76153,1.65542 1.28104,2.03781 1.94044,5.01712 1.98128,8.9439 0,0 0.21643,20.82129 0.21643,20.82129 0.85204,-0.29305 1.48772,-0.0721 1.90821,0.66181 0.42,0.73316 0.63698,1.77834 0.65128,3.13628 0.0143,1.35811 -0.17928,2.54755 -0.58098,3.56911 -0.40256,0.99258 -1.09593,1.66483 -2.08175,2.01658 0,0 -3.92315,1.3998 -3.92315,1.3998 0,0 -0.30125,-29.5317 -0.30125,-29.5317 -0.0146,-1.42806 -0.13917,-2.37963 -0.37387,-2.85506 -0.23487,-0.47561 -0.58859,-0.64006 -1.06152,-0.49297 -0.46004,0.14313 -0.88398,0.55012 -1.27173,1.2214 -0.49476,0.91973 -1.09234,2.54691 -1.79337,4.88434 0,0 0.
 1894,18.96164 0.1894,18.96164 0.8724,-0.30006 1.52302,-0.079 1.95307,0.662 0.42956,0.74027 0.65113,1.79714 0.66503,3.17137 0.0139,1.37439 -0.18487,2.57895 -0.59663,3.61451 -0.4126,1.00623 -1.12276,1.68951 -2.13218,2.04968 0,0 -4.01729,1.43339 -4.01729,1.43339 0,0 -0.29261,-29.88883 -0.29261,-29.88883 -0.0139,-1.41455 -0.14767,-2.35965 -0.40153,-2.83564 -0.24053,-0.51127 -0.60278,-0.69179 -1.08713,-0.54115 -0.49887,0.15521 -0.98803,0.66317 -1.46747,1.52462 -0.4804,0.8318 -1.05239,2.39108 -1.71646,4.68046 0,0 0.18368,19.19395 0.18368,19.19395 0.89368,-0.30737 1.55989,-0.0863 1.99991,0.66201 0.45342,0.74274 0.68669,1.80921 0.70018,3.2002 0.0135,1.39115 -0.19765,2.61376 -0.6338,3.6687 -0.42312,1.02036 -1.1508,1.7151 -2.18483,2.08405 0,0 -3.90344,1.39277 -3.90344,1.39277 -1.04783,0.37387 -1.79708,0.20173 -2.24591,-0.51779 -0.46384,-0.74661 -0.70262,-1.84073 -0.71594,-3.28161 -0.013,-1.40935 0.19719,-2.62896 0.63021,-3.65799 0.43218,-1.05897 1.10915,-1.74654 2.02961,-2.06313 0,0 -
 0.21801,-23.27593 -0.21801,-23.27593 -0.91971,0.2877 -1.60455,0.0483 -2.05317,-0.71937 -0.44909,-0.76843 -0.68033,-1.85564 -0.69331,-3.26087 -0.013,-1.40499 0.20412,-2.61343 0.65085,-3.62449 0.43169,-1.03656 1.17158,-1.71162 2.21788,-2.0255 0,0 4.10732,-1.23196 4.10732,-1.23196"
+-           id="path7044" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7046"
+            d="m 490.87185,268.26248 c 0,0 -0.0238,-2.12947 -0.0238,-2.12947 -0.96684,1.56112 -2.04221,2.85176 -3.22705,3.87118 -1.18857,1.05267 -2.27482,1.75638 -3.25773,2.1092 -2.1433,0.7693 -3.90736,0.0916 -5.28616,-2.04226 -1.38398,-2.17145 -2.09463,-4.85752 -2.12832,-8.05178 -0.041,-3.88602 0.78508,-7.77051 2.47177,-11.63982 1.69085,-3.8838 4.03967,-6.29946 7.03403,-7.25585 1.19331,-0.3811 2.57099,-0.52435 4.13102,-0.43103 0,0 -0.0243,-2.16861 -0.0243,-2.16861 -0.0152,-1.35698 -0.28175,-2.38328 -0.80016,-3.07972 -0.50639,-0.70131 -1.46852,-0.83189 -2.89014,-0.3897 -1.16973,0.36389 -2.6864,1.37311 -4.5546,3.03337 -0.69844,0.60846 -1.2438,0.97457 -1.63533,1.09754 -0.5358,0.16833 -0.99846,-0.12206 -1.38767,-0.87192 -0.37678,-0.78462 -0.57264,-1.86678 -0.58731,-3.24582 -0.008,-0.77933 0.0501,-1.47376 0.17529,-2.08321 0.1251,-0.60911 0.30385,-1.1141 0.53618,-1.51496 0.23184,-0.43046 0.71786,-0.99743 1.45701,-1.70003 0.98321,-0.92446 1.98458,-1.71816 3.00395,-2.38162 1.01611,
 -0.69116 1.93495,-1.15887 2.7573,-1.40418 2.44294,-0.72858 4.33815,-0.0679 5.69456,1.97299 1.36388,2.00056 2.06787,5.09484 2.11563,9.28942 0,0 0.21151,18.5876 0.21151,18.5876 0,0 0.65945,-0.22681 0.65945,-0.22681 0.92741,-0.31897 1.58879,-0.11998 1.98565,0.5958 0.40854,0.68149 0.62043,1.69497 0.63598,3.04114 0.0152,1.31705 -0.17178,2.47066 -0.56118,3.4616 -0.37775,0.95836 -1.02971,1.60314 -1.95738,1.93413 0,0 -4.54817,1.62282 -4.54817,1.62282 m -0.18218,-16.27076 c -1.57456,-0.18741 -3.03025,-0.0602 -4.36568,0.38353 -1.61175,0.53558 -2.9938,1.90828 -4.14364,4.12194 -0.71713,1.41252 -1.06983,2.71889 -1.05695,3.91694 0.009,0.8687 0.19313,1.51219 0.55118,1.93012 0.66205,0.76298 1.55791,0.94835 2.68579,0.55802 0.95654,-0.33103 2.02809,-1.13477 3.2135,-2.40861 1.19412,-1.27383 2.24686,-2.80822 3.15946,-4.60277 0,0 -0.0437,-3.89917 -0.0437,-3.89917"
+-           id="path7046" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7048"
+            d="m 513.83107,223.64708 c 0,0 -0.0321,-2.60694 -0.0321,-2.60694 0,0 4.24921,-1.27452 4.24921,-1.27452 0.86692,-0.25998 1.48579,-0.0345 1.85799,0.67552 0.38309,0.67764 0.58268,1.66515 0.59908,2.9632 0.016,1.27005 -0.15729,2.37215 -0.52017,3.30702 -0.35202,0.90414 -0.96092,1.49191 -1.82805,1.76307 0,0 -0.61656,0.19283 -0.61656,0.19283 0,0 0.3963,31.78092 0.3963,31.78092 0.0383,3.07233 -0.1991,5.84676 -0.71289,8.32595 -0.50258,2.50775 -1.30016,4.80111 -2.39487,6.88205 -1.09848,2.08802 -2.35446,3.40535 -3.76947,3.94832 0,0 -4.20721,1.61434 -4.20721,1.61434 -0.90127,0.34581 -1.55322,0.17312 -1.95437,-0.5193 -0.389,-0.66876 -0.59138,-1.65732 -0.60684,-2.96502 -0.0158,-1.33662 0.16113,-2.49707 0.53047,-3.48063 0.38146,-0.95795 1.02342,-1.60387 1.92446,-1.93799 0,0 4.09797,-1.51959 4.09797,-1.51959 1.12773,-0.41818 1.99206,-1.47339 2.59485,-3.16418 0.6016,-1.68753 0.88825,-3.64562 0.86083,-5.87641 0,0 -0.0527,-4.28868 -0.0527,-4.28868 -0.79402,1.54526 -1.61175,2.78547 -
 2.45334,3.71951 -0.83173,0.93214 -1.69344,1.55874 -2.58528,1.87869 -2.53138,0.90814 -4.68912,-0.3421 -6.46539,-3.76745 -1.78479,-3.47022 -2.71501,-8.19944 -2.78452,-14.17311 -0.0698,-5.99942 0.74291,-11.29294 2.43134,-15.86475 1.6791,-4.57629 3.78635,-7.2342 6.31459,-7.98783 0.93884,-0.27979 1.83117,-0.21544 2.67743,0.19177 0.8558,0.37421 1.67211,1.10227 2.44924,2.18321 m 0.18895,16.81679 c -0.0397,-3.22458 -0.57346,-5.86075 -1.60346,-7.91342 -1.02083,-2.06186 -2.23403,-2.87672 -3.64183,-2.43909 -1.41359,0.43948 -2.61815,2.01503 -3.61171,4.73172 -0.98452,2.72148 -1.4586,5.72173 -1.41993,8.9951 0.039,3.30339 0.58054,5.9872 1.62246,8.04652 1.05092,2.02074 2.28478,2.78371 3.69937,2.29449 1.4088,-0.48717 2.59406,-2.07774 3.55781,-4.76688 0.97229,-2.71336 1.4373,-5.6943 1.39729,-8.94844"
+-           id="path7048" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7050"
+            d="m 540.11181,236.19855 c 0,0 -14.17571,4.74678 -14.17571,4.74678 0.39598,2.12039 1.06655,3.70874 2.0101,4.76439 0.95245,1.04897 2.21683,1.29937 3.78949,0.75521 1.28429,-0.44438 2.97443,-1.71113 5.06396,-3.7914 0.85848,-0.84849 1.45291,-1.3286 1.78475,-1.44201 0.45294,-0.15474 0.83898,0.11397 1.1584,0.80553 0.3191,0.69101 0.48673,1.64075 0.5031,2.84977 0.0149,1.09925 -0.1376,2.09168 -0.45762,2.9779 -0.4274,1.17397 -1.49195,2.53431 -3.19995,4.08586 -1.71744,1.53209 -3.38257,2.58934 -4.99438,3.16779 -2.79108,1.00165 -5.0682,-0.14146 -6.81995,-3.44725 -1.74841,-3.32527 -2.66198,-7.85839 -2.73457,-13.58545 -0.0772,-6.09039 0.78143,-11.32407 2.56808,-15.68474 1.78745,-4.3669 3.86227,-6.89434 6.21974,-7.59751 1.4088,-0.42014 2.70212,-0.19498 3.88143,0.67196 1.18643,0.86072 2.07063,1.90611 2.65495,3.13691 0.82406,1.78934 1.51493,4.09853 2.07343,6.92778 0.38048,1.97331 0.58916,4.3313 0.62629,7.07581 0,0 0.0485,3.58267 0.0485,3.58267 m -3.88051,-7.22718 c -0.55565,-2.261
 43 -1.2656,-3.85327 -2.13087,-4.7749 -0.86777,-0.95155 -1.89277,-1.24457 -3.07652,-0.87637 -1.17666,0.36604 -2.19027,1.29725 -3.03946,2.79568 -0.85185,1.47453 -1.5375,3.53206 -2.05595,6.17324 0,0 10.3028,-3.31765 10.3028,-3.31765"
+-           id="path7050" />
++           inkscape:connector-curvature="0" />
+       </g>
+     </g>
+     <g
+-       inkscape:groupmode="layer"
+-       id="layer11"
++       style="display:none"
+        inkscape:label="Image (name)"
+-       style="display:none">
++       id="layer11"
++       inkscape:groupmode="layer">
+       <g
+-         id="text14133"
+-         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New">
++         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New"
++         id="text14133">
+         <path
+-           id="path14140"
++           inkscape:connector-curvature="0"
+            d="m 290.77223,304.74825 c 0,0 0,32.31662 0,32.31662 0,0 5.87857,-2.13185 5.87857,-2.13185 0.40465,-0.14674 0.69438,-0.12402 0.86947,0.0681 0.17497,0.17071 0.26242,0.45829 0.26244,0.86282 -2e-5,0.38327 -0.0874,0.73459 -0.26244,1.05416 -0.17509,0.31972 -0.46482,0.5537 -0.86947,0.70197 0,0 -13.61665,4.98933 -13.61665,4.98933 -0.42075,0.15417 -0.72258,0.13428 -0.9052,-0.06 -0.18272,-0.19433 -0.27412,-0.48744 -0.27411,-0.87928 -1e-5,-0.41357 0.0914,-0.77331 0.27411,-1.07911 0.18262,-0.32736 0.48445,-0.56735 0.9052,-0.71994 0,0 6.0052,-2.17777 6.0052,-2.17777 0,0 0,-32.39447 0,-32.39447 0,0 -6.0052,1.90797 -6.0052,1.90797 -0.42075,0.13372 -0.72258,0.10996 -0.9052,-0.0714 -0.18272,-0.20317 -0.27412,-0.51163 -0.27411,-0.92526 -1e-5,-0.41355 0.0914,-0.76884 0.27411,-1.06575 0.18262,-0.31845 0.48445,-0.54373 0.9052,-0.67588 0,0 13.61665,-4.27499 13.61665,-4.27499 0.40465,-0.127 0.69438,-0.0902 0.86947,0.11043 0.17497,0.17924 0.26242,0.47109 0.26244,0.87558 -2e-5,0.40459 -
 0.0874,0.76232 -0.26244,1.07333 -0.17509,0.28993 -0.46482,0.49917 -0.86947,0.6277 0,0 -5.87857,1.86774 -5.87857,1.86774"
+-           inkscape:connector-curvature="0" />
++           id="path14140" />
+         <path
+-           id="path14142"
++           inkscape:connector-curvature="0"
+            d="m 306.92675,306.55175 c 0,0 0,2.67986 0,2.67986 1.40003,-2.87625 2.80101,-4.53947 4.20289,-4.99685 0.84101,-0.27434 1.57685,-0.14959 2.20819,0.37302 0.63018,0.50092 1.1566,1.40903 1.57974,2.72378 0.71685,-1.69138 1.43861,-3.00815 2.16526,-3.95142 0.7378,-0.96608 1.47405,-1.5684 2.20876,-1.80813 1.14953,-0.37499 2.06265,-0.0655 2.74123,0.9259 0.89011,1.26835 1.33432,2.825 1.33433,4.6724 0,0 0,18.0741 0,18.0741 0,0 1.32918,-0.48202 1.32918,-0.48202 0.37346,-0.13543 0.64087,-0.10964 0.80249,0.0773 0.16149,0.1664 0.24221,0.4439 0.24224,0.83254 -3e-5,0.36823 -0.0808,0.70459 -0.24224,1.00917 -0.16162,0.30475 -0.42903,0.52553 -0.80249,0.66237 0,0 -2.90839,1.06568 -2.90839,1.06568 0,0 0,-20.46113 0,-20.46113 -2e-5,-1.31673 -0.24507,-2.32553 -0.73568,-3.02713 -0.49135,-0.70254 -1.05913,-0.94797 -1.70374,-0.73524 -0.58247,0.19227 -1.19764,0.75726 -1.8457,1.69604 -0.6493,0.9199 -1.38919,2.56622 -2.22024,4.94195 0,0 0,17.3523 0,17.3523 0,0 1.3415,-0.48649 1.3415,-0.48649 
 0.38232,-0.13865 0.65607,-0.11371 0.8215,0.0747 0.16532,0.16767 0.24796,0.44807 0.24797,0.8413 -1e-5,0.37255 -0.0826,0.71319 -0.24797,1.02208 -0.16543,0.30904 -0.43918,0.53359 -0.8215,0.67367 0,0 -2.97744,1.09098 -2.97744,1.09098 0,0 0,-20.5158 0,-20.5158 -10e-6,-1.39476 -0.25733,-2.45395 -0.77253,-3.1784 -0.50307,-0.7506 -1.0715,-1.02182 -1.70561,-0.81257 -0.58338,0.19258 -1.16121,0.68673 -1.7335,1.4832 -0.79496,1.12309 -1.63094,2.88106 -2.50825,5.27652 0,0 0,17.56098 0,17.56098 0,0 1.39351,-0.50535 1.39351,-0.50535 0.39153,-0.14199 0.67186,-0.11795 0.84127,0.072 0.16931,0.16894 0.25394,0.45233 0.25395,0.85026 -10e-6,0.377 -0.0846,0.72208 -0.25395,1.0354 -0.16941,0.31346 -0.44974,0.54191 -0.84127,0.68538 0,0 -4.455,1.63237 -4.455,1.63237 -0.39697,0.14545 -0.68175,0.12306 -0.85404,-0.0675 -0.17239,-0.19062 -0.25861,-0.47625 -0.25861,-0.85683 0,-0.40172 0.0862,-0.75019 0.25861,-1.04538 0.17229,-0.31613 0.45707,-0.54619 0.85404,-0.69015 0,0 1.40566,-0.50976 1.40566,-0.50976 0,
 0 0,-22.02661 0,-22.02661 0,0 -1.40566,0.46583 -1.40566,0.46583 -0.39697,0.13157 -0.68175,0.0992 -0.85404,-0.0974 -0.17239,-0.19662 -0.25861,-0.49584 -0.25861,-0.8976 0,-0.38054 0.0862,-0.72601 0.25861,-1.03629 0.17229,-0.31008 0.45707,-0.53015 0.85404,-0.66022 0,0 3.06149,-1.00289 3.06149,-1.00289"
+-           inkscape:connector-curvature="0" />
++           id="path14142" />
+         <path
+-           id="path14144"
++           inkscape:connector-curvature="0"
+            d="m 341.55437,321.16678 c 0,0 0,-3.62699 0,-3.62699 -2.17583,3.87291 -4.51596,6.27757 -7.0237,7.20015 -1.83227,0.67408 -3.27105,0.43232 -4.31124,-0.73067 -1.0434,-1.1869 -1.56629,-2.91222 -1.56629,-5.17318 0,-2.48503 0.68882,-4.89489 2.06231,-7.22253 1.36795,-2.31825 3.35505,-3.9208 5.95041,-4.80953 0.69672,-0.23856 1.45188,-0.41679 2.26509,-0.53489 0.81121,-0.13772 1.68585,-0.20766 2.62342,-0.20985 0,0 0,-4.07662 0,-4.07662 -2e-5,-1.37882 -0.37947,-2.45115 -1.13965,-3.21827 -0.76194,-0.7688 -1.90808,-0.90154 -3.44237,-0.39518 -1.17945,0.38931 -2.84126,1.51364 -4.99257,3.38085 -0.3904,0.3327 -0.64074,0.51747 -0.7507,0.55406 -0.19558,0.0652 -0.3668,3.9e-4 -0.51363,-0.19445 -0.13465,-0.19895 -0.202,-0.48128 -0.20199,-0.84695 -1e-5,-0.3453 0.0612,-0.63975 0.18363,-0.88328 0.17131,-0.36105 0.86176,-1.00434 2.06822,-1.92757 1.89239,-1.46888 3.31682,-2.35756 4.27913,-2.67154 1.90441,-0.62126 3.38216,-0.31269 4.43882,0.92018 1.05329,1.20909 1.5787,2.79915 1.57872,4.773
  0,0 0,16.62862 0,16.62862 0,0 1.97614,-0.71664 1.97614,-0.71664 0.36334,-0.13177 0.62098,-0.10607 0.77314,0.077 0.15205,0.16316 0.22807,0.43326 0.22809,0.81038 -2e-5,0.35731 -0.0761,0.68284 -0.22809,0.97668 -0.15216,0.294 -0.4098,0.50756 -0.77314,0.64069 0,0 -3.48375,1.2765 -3.48375,1.2765 m 0,-12.52962 c -0.69996,-0.0967 -1.44303,-0.0891 -2.22949,0.0233 -0.78834,0.11262 -1.62047,0.32041 -2.49673,0.62375 -2.20674,0.76397 -3.94122,2.16401 -5.19605,4.20202 -0.95337,1.53165 -1.43106,3.1323 -1.43105,4.79877 -1e-5,1.54453 0.36138,2.71501 1.08302,3.51015 0.73228,0.78902 1.7913,0.93038 3.17399,0.42691 1.31676,-0.47947 2.5323,-1.35466 3.64772,-2.62381 1.12362,-1.28931 2.27325,-3.09547 3.44859,-5.41563 0,0 0,-5.54541 0,-5.54541"
+-           inkscape:connector-curvature="0" />
++           id="path14144" />
+         <path
+-           id="path14146"
++           inkscape:connector-curvature="0"
+            d="m 363.37657,292.52517 c 0,0 0,-4.46549 0,-4.46549 0,0 3.26058,-1.06811 3.26058,-1.06811 0.32917,-0.10781 0.56487,-0.0698 0.70734,0.11412 0.14235,0.1838 0.21351,0.45813 0.21353,0.82302 -2e-5,0.34574 -0.0711,0.65733 -0.21353,0.93491 -0.14247,0.27777 -0.37817,0.47117 -0.70734,0.58025 0,0 -1.86625,0.61846 -1.86625,0.61846 0,0 0,24.27579 0,24.27579 -2e-5,1.62032 -0.19884,3.14134 -0.59683,4.56437 -0.26563,0.94969 -0.7088,1.99622 -1.33026,3.14072 -0.62268,1.14668 -1.19079,2.01258 -1.70405,2.59672 -0.51409,0.58507 -1.20267,1.04343 -2.06685,1.37504 0,0 -4.03689,1.54904 -4.03689,1.54904 -0.34152,0.13104 -0.58649,0.1075 -0.73469,-0.0709 -0.14829,-0.15886 -0.22246,-0.42461 -0.22245,-0.79717 -1e-5,-0.37258 0.0741,-0.70475 0.22245,-0.99644 0.1482,-0.29158 0.39317,-0.50222 0.73469,-0.63197 0,0 4.08746,-1.52372 4.08746,-1.52372 0.83042,-0.31553 1.57488,-0.96721 2.23397,-1.95413 0.66885,-0.98911 1.21963,-2.27103 1.65294,-3.84567 0.24415,-0.9032 0.36616,-1.98282 0.36618,-3.2393
 4 0,0 0,-7.30717 0,-7.30717 -1.50064,4.12055 -3.44508,6.62347 -5.84129,7.49922 -1.95926,0.71605 -3.66187,0.0829 -5.10374,-1.90912 -1.43671,-2.02462 -2.15742,-4.82517 -2.15742,-8.39501 0,-3.56981 0.72071,-6.859 2.15742,-9.85774 1.44187,-2.98939 3.14448,-4.80022 5.10374,-5.43943 2.39621,-0.78171 4.34065,0.36653 5.84129,3.42973 m 0,7.33618 c -2e-5,-2.86099 -0.5661,-5.08622 -1.70124,-6.6799 -1.12797,-1.60294 -2.48445,-2.14543 -4.0723,-1.62139 -1.59565,0.52668 -2.97118,1.98968 -4.12378,4.39343 -1.15668,2.39261 -1.73656,5.03846 -1.73655,7.93123 -1e-5,2.91249 0.57987,5.17691 1.73655,6.78901 1.1526,1.58686 2.52813,2.0886 4.12378,1.51152 1.58785,-0.57426 2.94433,-2.05505 4.0723,-4.43824 1.13514,-2.39819 1.70122,-5.02464 1.70124,-7.88566"
+-           inkscape:connector-curvature="0" />
++           id="path14146" />
+         <path
+-           id="path14148"
++           inkscape:connector-curvature="0"
+            d="m 385.85611,293.37466 c 0,0 -13.55496,4.71571 -13.55496,4.71571 0.2372,3.02382 0.96927,5.26873 2.19279,6.73218 1.2295,1.435 2.74111,1.82321 4.53079,1.17154 0.99106,-0.36087 2.02623,-1.02925 3.10508,-2.00348 1.07513,-0.97087 1.94922,-2.05434 2.62395,-3.25093 0.19693,-0.351 0.36786,-0.55242 0.51284,-0.60437 0.16557,-0.0593 0.31039,0.01 0.43448,0.20823 0.12401,0.17941 0.18601,0.42768 0.18602,0.74485 -10e-6,0.31721 -0.0827,0.65493 -0.24805,1.01332 -0.49671,1.11372 -1.38342,2.31505 -2.66343,3.60658 -1.27482,1.27424 -2.59161,2.16252 -3.95089,2.66259 -2.28921,0.84219 -4.21494,0.2119 -5.77044,-1.90319 -1.55233,-2.14839 -2.33133,-5.14665 -2.33133,-8.98687 0,-3.4963 0.73037,-6.7413 2.18612,-9.72476 1.45984,-2.97335 3.25394,-4.80294 5.37664,-5.49548 2.17154,-0.70841 3.94716,-0.0213 5.33343,2.05084 1.38014,2.04439 2.0576,5.06314 2.03696,9.06324 m -1.32018,-1.9248 c -0.25953,-2.51086 -0.94567,-4.39376 -2.06125,-5.65048 -1.10911,-1.26462 -2.43784,-1.64358 -3.98896,-1.13166 
 -1.55879,0.51451 -2.90637,1.77483 -4.03999,3.78444 -1.13768,2.01684 -1.8481,4.41869 -2.1284,7.20193 0,0 12.2186,-4.20423 12.2186,-4.20423"
+-           inkscape:connector-curvature="0" />
++           id="path14148" />
+       </g>
+     </g>
+   </g>
+   <g
+-     style="display:none"
+-     inkscape:label="busybox"
++     inkscape:groupmode="layer"
+      id="layer4"
+-     inkscape:groupmode="layer">
++     inkscape:label="busybox"
++     style="display:inline">
+     <g
+-       inkscape:corner7="0.017576171 : -0.063230334 : 0.53533062 : 1"
+-       inkscape:corner0="0.22429094 : 0.05733945 : 0 : 1"
+-       inkscape:perspectiveID="#perspective3054"
+-       id="g4208"
+-       style="fill:#dcdc00;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+-       sodipodi:type="inkscape:box3d"
+-       transform="translate(0,-452.36218)"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       transform="translate(0,-452.36218)"
++       sodipodi:type="inkscape:box3d"
++       style="fill:#dcdc00;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
++       id="g4208"
++       inkscape:perspectiveID="#perspective3054"
++       inkscape:corner0="0.22429094 : 0.05733945 : 0 : 1"
++       inkscape:corner7="0.017576171 : -0.063230334 : 0.53533062 : 1">
+       <path
+-         d="M 252.05613,832.33866 386.05151,907.74315 666.77808,755.96636 540.56932,721.33247 z"
+-         inkscape:box3dsidetype="13"
+-         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4218"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#afafde;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="13"
++         d="M 252.05613,832.33866 386.05151,907.74315 666.77808,755.96636 540.56932,721.33247 z" />
+       <path
+-         d="m 252.05613,733.85734 0,98.48132 288.51319,-111.00619 0,-68.52029 z"
+-         inkscape:box3dsidetype="6"
+-         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4210"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#353564;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="6"
++         d="m 252.05613,733.85734 0,98.48132 288.51319,-111.00619 0,-68.52029 z" />
+       <path
+-         d="m 540.56932,652.81218 126.20876,25.51283 0,77.64135 -126.20876,-34.63389 z"
+-         inkscape:box3dsidetype="11"
+-         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4220"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#e9e9ff;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="11"
++         d="m 540.56932,652.81218 126.20876,25.51283 0,77.64135 -126.20876,-34.63389 z" />
+       <path
+-         d="M 252.05613,733.85734 386.05151,789.25592 666.77808,678.32501 540.56932,652.81218 z"
+-         inkscape:box3dsidetype="5"
+-         style="fill:#ffa64a;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4212"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#ffa64a;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="5"
++         d="M 252.05613,733.85734 386.05151,789.25592 666.77808,678.32501 540.56932,652.81218 z" />
+       <path
+-         d="m 386.05151,789.25592 0,118.48723 280.72657,-151.77679 0,-77.64135 z"
+-         inkscape:box3dsidetype="14"
+-         style="fill:#dc7000;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4216"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#dc7000;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="14"
++         d="m 386.05151,789.25592 0,118.48723 280.72657,-151.77679 0,-77.64135 z" />
+       <path
+-         d="m 252.05613,733.85734 133.99538,55.39858 0,118.48723 -133.99538,-75.40449 z"
+-         inkscape:box3dsidetype="3"
+-         style="fill:#ff8100;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         sodipodi:type="inkscape:box3dside"
+          id="path4214"
+-         sodipodi:type="inkscape:box3dside" />
++         style="fill:#ff8100;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
++         inkscape:box3dsidetype="3"
++         d="m 252.05613,733.85734 133.99538,55.39858 0,118.48723 -133.99538,-75.40449 z" />
+     </g>
+     <g
+-       transform="matrix(0.61103367,0,0,0.61103367,184.90921,105.33439)"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
+-       id="text10644"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       id="text10644"
++       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New Bold"
++       transform="matrix(0.61103367,0,0,0.61103367,184.90921,105.33439)">
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10651"
+          d="m 312.93934,287.49231 c 0,0 12.15911,4.70344 12.15911,4.70344 -1.16914,-3.78566 -1.36609,-6.42779 -0.62059,-7.98893 0.77303,-1.55433 2.31974,-2.67971 4.63741,-3.3866 3.54185,-1.08012 9.2588,-1.28149 17.20089,-0.60825 5.40472,0.45149 9.7877,1.2756 13.15813,2.47913 2.87526,1.02678 4.8067,2.08085 5.78393,3.16281 0.953,1.05529 0.68242,1.83093 -0.82147,2.32213 -1.33343,0.43565 -4.00933,0.4338 -8.01521,-0.006 -3.99361,-0.43793 -6.57276,-0.46832 -7.74897,-0.0914 -1.53752,0.49281 -2.08336,1.89562 -1.62775,4.23618 0.49993,2.36832 2.04282,5.7384 4.6821,10.18097 0,0 33.47054,12.9472 33.47054,12.9472 0,0 16.11184,-5.93607 16.11184,-5.93607 2.65935,-0.97979 5.63016,-1.26849 8.93207,-0.87019 3.26952,0.35821 6.67266,1.18225 10.22658,2.47982 3.50638,1.28029 5.84566,2.55946 7.00284,3.83743 1.12276,1.24563 0.36649,2.38913 -2.2893,3.42814 0,0 -34.94558,13.67154 -34.94558,13.67154 -2.92114,1.14282 -6.14486,1.50751 -9.6487,1.08867 -3.53391,-0.46581 -7.10149,-1.44423 -10.68545,-2.925
 97 -3.47431,-1.4364 -5.64896,-2.82393 -6.54145,-4.16365 -0.92064,-1.37405 0.0882,-2.59675 3.00508,-3.67143 0,0 7.12694,-2.62577 7.12694,-2.62577 0,0 -52.50231,-20.9034 -52.50231,-20.9034 0,0 -4.27235,1.37853 -4.27235,1.37853 -2.87125,0.92652 -5.85382,1.22124 -8.9284,0.88018 -3.09273,-0.37919 -6.11307,-1.17472 -9.04863,-2.37981 -2.84813,-1.16919 -4.53428,-2.29919 -5.0725,-3.39075 -0.55713,-1.12041 0.60034,-2.11765 3.45566,-2.99408 0,0 15.81554,-4.85435 15.81554,-4.85435"
+-         id="path10651" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10653"
+          d="m 450.20563,274.37419 c 8.39709,2.60001 15.72122,5.52626 21.95999,8.79892 6.3459,3.31795 10.16268,6.55569 11.35388,9.70501 1.16996,3.18395 -0.42377,5.66797 -4.84155,7.41369 -4.44065,1.75475 -11.29966,2.59506 -20.53347,2.50467 -9.3083,-0.11708 -19.3597,-1.23176 -30.04354,-3.32169 -10.53359,-2.06052 -20.14144,-4.62211 -28.79416,-7.65729 -8.60943,-3.02 -15.71357,-6.29886 -21.33959,-9.81595 -5.54916,-3.45086 -8.34517,-6.56091 -8.49064,-9.35044 -0.10977,-2.74104 2.07888,-4.77406 6.52814,-6.13104 4.4334,-1.35202 10.84307,-1.93047 19.27225,-1.74607 8.40563,0.1548 17.44551,1.11721 27.21347,2.90541 9.83591,1.79207 19.06472,4.0164 27.71522,6.69478 m -9.1814,3.24321 c -6.93135,-2.19582 -14.29205,-3.81877 -22.11986,-4.88928 -10.50184,-1.41904 -18.18921,-1.3288 -23.19156,0.27443 -4.45277,1.42715 -5.27242,3.61512 -2.37386,6.60149 2.9646,3.05434 8.51146,5.98902 16.71268,8.7937 6.85441,2.34413 14.93822,4.0224 24.21188,5.01023 9.26163,0.96935 16.11825,0.63716 20.48531,-0.98704 4
 .34778,-1.61702 4.83734,-3.96995 1.56143,-7.02173 -3.27745,-3.00847 -8.38315,-5.59494 -15.28602,-7.7818"
+-         id="path10653" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10655"
+          d="m 501.40677,256.67853 c 8.2855,2.25963 15.62021,4.79866 21.99648,7.63322 6.47283,2.86893 10.57529,5.66316 12.22278,8.37595 1.63106,2.73812 0.58249,4.87053 -3.20352,6.3666 -3.80218,1.50245 -9.99557,2.22018 -18.54554,2.1403 -8.62384,-0.10275 -18.11647,-1.06013 -28.37944,-2.85438 -10.12931,-1.77086 -19.50731,-3.97401 -28.10366,-6.58751 -8.56668,-2.60446 -15.80044,-5.43615 -21.72056,-8.47841 -5.84614,-2.99034 -9.07173,-5.68938 -9.76924,-8.11339 -0.65546,-2.38528 0.97453,-4.15611 4.85105,-5.33841 3.86545,-1.17881 9.7319,-1.68234 17.63502,-1.51931 7.87476,0.13718 16.4959,0.97944 25.94841,2.5416 9.5079,1.56414 18.52115,3.50283 27.06822,5.83374 m -7.95134,2.81325 c -6.85533,-1.90745 -14.01072,-3.3192 -21.50235,-4.25178 -10.05394,-1.23699 -17.19863,-1.16034 -21.54591,0.23293 -3.8666,1.23928 -4.20012,3.13888 -0.92004,5.7292 3.34951,2.64513 9.06763,5.18338 17.21435,7.60636 6.79993,2.02243 14.60664,3.46973 23.38184,4.3222 8.75636,0.83617 15.0472,0.55232 18.80158,-0.84401 3.
 74096,-1.39134 3.77541,-3.41948 0.18938,-6.0547 -3.58531,-2.60191 -8.79935,-4.84267 -15.61885,-6.7402"
+-         id="path10655" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10657"
+          d="m 498.86956,241.45737 c 0,0 41.97186,10.7737 41.97186,10.7737 4.72482,1.21282 8.18703,1.90051 10.35328,2.05414 3.39916,0.24557 6.37558,-0.10546 8.90933,-1.04781 3.64783,-1.3567 4.55117,-3.19879 2.7674,-5.50388 -0.6968,-0.87747 -0.71509,-1.43265 -0.0598,-1.67007 0.90171,-0.32661 2.7423,-0.34832 5.5286,-0.0653 2.81508,0.27553 5.77095,0.78832 8.87752,1.54145 2.9075,0.70494 5.07478,1.45029 6.49612,2.23688 2.387,1.26153 3.46837,2.88671 3.22214,4.89035 -0.30366,2.00954 -1.58865,3.47386 -3.86359,4.37282 -4.437,1.75331 -10.95243,2.27794 -19.46295,1.55789 -8.51408,-0.7447 -17.18129,-2.27383 -25.91666,-4.55876 0,0 -46.39955,-12.13682 -46.39955,-12.13682 0,0 -2.7752,0.89546 -2.7752,0.89546 -1.86215,0.6009 -4.11562,0.79062 -6.74951,0.56709 -2.66817,-0.24844 -5.48254,-0.76797 -8.43243,-1.555 -2.86659,-0.7648 -4.7821,-1.50445 -5.75594,-2.21936 -1.00485,-0.73491 -0.56559,-1.38896 1.30594,-1.96342 0,0 2.78949,-0.8562 2.78949,-0.8562 0,0 -16.98287,-4.44224 -16.98287,-4.44224 -4.
 41845,-1.15574 -7.17384,-2.07008 -8.2949,-2.74877 -1.14744,-0.69685 -1.14322,-1.20764 0.005,-1.53492 1.11968,-0.31913 2.95891,-0.33663 5.52502,-0.0527 2.53854,0.26248 5.99934,0.95593 10.41152,2.08847 0,0 16.95436,4.35199 16.95436,4.35199 0,0 13.67203,-4.19643 13.67203,-4.19643 1.74162,-0.53454 3.87186,-0.69057 6.40061,-0.46977 2.49444,0.19871 5.18733,0.65224 8.0893,1.36373 2.85684,0.70045 4.8485,1.39785 5.96674,2.09213 1.084,0.67526 0.76656,1.2925 -0.96369,1.85073 0,0 -13.58879,4.3846 -13.58879,4.3846"
+-         id="path10657" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10659"
+          d="m 542.64636,227.3322 c 0,0 50.30268,11.56948 50.30268,11.56948 0,0 8.9914,-3.3127 8.9914,-3.3127 1.49284,-0.55001 3.56871,-0.71065 6.23706,-0.48365 2.62245,0.20425 5.57385,0.67066 8.86663,1.40246 3.2418,0.72052 5.60729,1.43801 7.08806,2.15243 1.43645,0.69487 1.42623,1.33017 -0.0428,1.9049 0,0 -19.09238,7.46939 -19.09238,7.46939 -1.57621,0.61665 -3.75607,0.81144 -6.52948,0.58225 -2.82081,-0.2548 -5.92636,-0.7877 -9.3039,-1.59499 -3.28207,-0.78447 -5.59066,-1.54313 -6.93561,-2.27638 -1.38642,-0.75375 -1.27354,-1.42456 0.32574,-2.01378 0,0 3.91972,-1.44414 3.91972,-1.44414 0,0 -50.48283,-11.80771 -50.48283,-11.80771 0,0 -3.22958,1.04207 -3.22958,1.04207 -1.6376,0.52845 -3.71505,0.69487 -6.22312,0.49759 -2.54497,-0.21925 -5.27648,-0.67718 -8.18454,-1.37085 -2.82709,-0.67435 -4.75883,-1.3266 -5.80358,-1.95708 -1.07789,-0.64836 -0.78636,-1.2253 0.864,-1.73188 0,0 3.25512,-0.99911 3.25512,-0.99911 0,0 -7.14548,-1.6713 -7.14548,-1.6713 -8.04906,-1.88263 -13.50193,-3.739
 05 -16.42509,-5.56951 -2.90745,-1.81796 -2.2591,-3.30015 1.87049,-4.46023 1.82249,-0.51189 4.36616,-0.99693 7.62653,-1.45546 3.20922,-0.47487 5.92956,-0.62662 8.17557,-0.4568 2.27055,0.16423 4.6744,0.52526 7.21938,1.08521 2.73422,0.60161 4.69659,1.1818 5.87988,1.7402 1.13087,0.5485 1.27334,0.94979 0.42127,1.20214 -0.39551,0.11721 -1.19735,0.24708 -2.40585,0.38982 -4.14698,0.45727 -7.26756,0.99245 -9.35671,1.60673 -2.18785,0.6434 -2.79023,1.30053 -1.79181,1.97156 0.96689,0.65524 2.80275,1.29494 5.51496,1.91873 0,0 7.12726,1.63925 7.12726,1.63925 0,0 10.0897,-3.09688 10.0897,-3.09688 1.54811,-0.47515 3.52827,-0.61353 5.94897,-0.41655 2.38432,0.17729 4.99889,0.58126 7.85366,1.21453 2.80935,0.62323 4.80258,1.24333 5.97236,1.86026 1.13393,0.59982 0.93891,1.14763 -0.59531,1.64261 0,0 -10.00235,3.22739 -10.00235,3.22739"
+-         id="path10659" />
++         inkscape:connector-curvature="0" />
+       <path
+-         inkscape:connector-curvature="0"
++         id="path10661"
+          d="m 589.48601,213.95725 c -2.88005,-0.0975 -5.30469,-0.0765 -7.27812,0.0633 -2.03857,0.12703 -3.62912,0.37333 -4.77268,0.73982 -2.28045,0.73092 -2.88262,1.57313 -1.7864,2.52927 0.47168,0.42268 1.34142,0.76925 2.61025,1.03894 1.46337,0.31105 3.30554,0.48238 5.52375,0.51333 1.6416,0.0133 4.00769,-0.2316 7.08668,-0.73274 5.64676,-0.9087 10.09533,-1.42339 13.38057,-1.55014 4.32134,-0.16274 9.37219,0.0625 15.18361,0.67808 5.84524,0.61923 11.48629,1.47712 16.94002,2.57957 7.49865,1.51585 13.00374,3.12101 16.47539,4.81925 5.14156,2.49571 5.79314,4.54187 1.82082,6.11155 -1.60894,0.63579 -3.68997,1.10603 -6.24152,1.40854 -2.4679,0.31155 -5.37436,0.46484 -8.71406,0.45919 0.65791,0.30946 1.08187,0.5806 1.27074,0.81312 0.18903,0.23297 0.11547,0.41567 -0.22205,0.54768 -0.90205,0.3528 -2.75348,0.3937 -5.54721,0.12233 -2.84009,-0.29363 -6.90888,-1.01429 -12.1713,-2.15376 0,0 -7.27125,-1.57445 -7.27125,-1.57445 -5.1361,-1.11212 -8.47726,-1.99207 -10.05479,-2.64523 -1.6166,-0.6707
 8 -1.97587,-1.16244 -1.08732,-1.47738 0.71287,-0.25262 2.01954,-0.31165 3.923,-0.17741 1.8377,0.11988 4.59703,0.49608 8.29255,1.13126 3.64844,0.26305 6.82436,0.32104 9.51832,0.17365 2.6204,-0.16181 4.72453,-0.53848 6.30887,-1.12773 2.57853,-0.95901 3.04281,-2.01212 1.42353,-3.15654 -0.83916,-0.55439 -2.07554,-0.99843 -3.70855,-1.33352 -2.71024,-0.55608 -5.41638,-0.84072 -8.12889,-0.85609 -2.71232,-0.0153 -6.19939,0.39233 -10.48737,1.22807 -6.39329,1.2674 -12.88463,1.65786 -19.39285,1.16129 -6.41377,-0.48024 -13.08239,-1.46912 -19.95419,-2.95254 -6.9653,-1.50361 -11.75935,-3.0305 -14.4257,-4.579 -3.61559,-2.07534 -3.39708,-3.70695 0.56399,-4.91503 1.36734,-0.41695 3.09122,-0.72744 5.1722,-0.93255 2.03564,-0.22281 4.46121,-0.33483 7.27996,-0.33645 -0.48744,-0.28339 -0.79117,-0.5142 -0.91199,-0.69279 -0.10162,-0.18395 -0.0215,-0.31611 0.24059,-0.39658 0.78505,-0.24093 2.39809,-0.24587 4.84466,-0.0149 2.39169,0.21927 5.83727,0.78489 10.36383,1.70278 0,0 4.63024,0.93893 4.63024,0
 .93893 4.17306,0.84624 6.88071,1.47283 8.10025,1.87564 2.3269,0.78471 2.99384,1.3467 1.98474,1.68224 -0.68071,0.2264 -2.01331,0.27535 -3.99484,0.1466 -1.97906,-0.12856 -4.24374,-0.41553 -6.78748,-0.85957"
+-         id="path10661" />
++         inkscape:connector-curvature="0" />
+     </g>
+     <g
+-       style="display:inline"
+-       inkscape:label="rwlayer#1"
++       inkscape:groupmode="layer"
+        id="layer7"
+-       inkscape:groupmode="layer">
++       inkscape:label="rwlayer#1"
++       style="display:inline">
+       <g
+-         inkscape:corner7="0.019282233 : 0.058900499 : 0.53880824 : 1"
+-         inkscape:corner0="0.22429094 : 0.11834566 : 0 : 1"
+-         inkscape:perspectiveID="#perspective3054"
+-         id="g4222"
++         sodipodi:type="inkscape:box3d"
+          style="fill:#dc7000;fill-opacity:0.6956522;stroke:#000000;stroke-linejoin:round;stroke-opacity:1;display:inline"
+-         sodipodi:type="inkscape:box3d">
++         id="g4222"
++         inkscape:perspectiveID="#perspective3054"
++         inkscape:corner0="0.22429094 : 0.11834566 : 0 : 1"
++         inkscape:corner7="0.019282233 : 0.058900499 : 0.53880824 : 1">
+         <path
+-           d="M 252.05613,280.2201 384.72319,334.81304 666.79274,224.25249 541.87079,199.19901 z"
+-           inkscape:box3dsidetype="13"
+-           style="fill:#dc7000;fill-opacity:0.6956522;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           sodipodi:type="inkscape:box3dside"
+            id="path4232"
+-           sodipodi:type="inkscape:box3dside" />
+-        <path
+-           d="m 252.05613,231.66533 0,48.55477 289.81466,-81.02109 0,-33.71629 z"
+-           inkscape:box3dsidetype="6"
+            style="fill:#dc7000;fill-opacity:0.6956522;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+-           id="path4224"
+-           sodipodi:type="inkscape:box3dside" />
++           inkscape:box3dsidetype="13"
++           d="M 252.05613,280.2201 384.72319,334.81304 666.79274,224.25249 541.87079,199.19901 z" />
+         <path
+-           d="m 541.87079,165.48272 124.92195,20.6172 0,38.15257 -124.92195,-25.05348 z"
+-           inkscape:box3dsidetype="11"
++           sodipodi:type="inkscape:box3dside"
++           id="path4224"
+            style="fill:#dc7000;fill-opacity:0.6956522;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           inkscape:box3dsidetype="6"
++           d="m 252.05613,231.66533 0,48.55477 289.81466,-81.02109 0,-33.71629 z" />
++        <path
++           sodipodi:type="inkscape:box3dside"
+            id="path4234"
+-           sodipodi:type="inkscape:box3dside" />
++           style="fill:#dc7000;fill-opacity:0.6956522;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           inkscape:box3dsidetype="11"
++           d="m 541.87079,165.48272 124.92195,20.6172 0,38.15257 -124.92195,-25.05348 z" />
+         <path
+-           d="m 252.05613,231.66533 132.66706,44.8271 282.06955,-90.39251 -124.92195,-20.6172 z"
+-           inkscape:box3dsidetype="5"
+-           style="fill:#dc7000;fill-opacity:0.6956522;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           sodipodi:type="inkscape:box3dside"
+            id="path4226"
+-           sodipodi:type="inkscape:box3dside" />
+-        <path
+-           d="m 384.72319,276.49243 0,58.32061 282.06955,-110.56055 0,-38.15257 z"
+-           inkscape:box3dsidetype="14"
+            style="fill:#dc7000;fill-opacity:0.6956522;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+-           id="path4230"
+-           sodipodi:type="inkscape:box3dside" />
++           inkscape:box3dsidetype="5"
++           d="m 252.05613,231.66533 132.66706,44.8271 282.06955,-90.39251 -124.92195,-20.6172 z" />
+         <path
+-           d="m 252.05613,231.66533 132.66706,44.8271 0,58.32061 -132.66706,-54.59294 z"
+-           inkscape:box3dsidetype="3"
++           sodipodi:type="inkscape:box3dside"
++           id="path4230"
+            style="fill:#dc7000;fill-opacity:0.6956522;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           inkscape:box3dsidetype="14"
++           d="m 384.72319,276.49243 0,58.32061 282.06955,-110.56055 0,-38.15257 z" />
++        <path
++           sodipodi:type="inkscape:box3dside"
+            id="path4228"
+-           sodipodi:type="inkscape:box3dside" />
++           style="fill:#dc7000;fill-opacity:0.6956522;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
++           inkscape:box3dsidetype="3"
++           d="m 252.05613,231.66533 132.66706,44.8271 0,58.32061 -132.66706,-54.59294 z" />
+       </g>
+       <path
+-         inkscape:connector-curvature="0"
+-         id="path7409"
++         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+          d="m 384.72319,334.81304 0,-58.32061 282.06955,-90.39251 0,38.15257 z"
+-         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
++         id="path7409"
++         inkscape:connector-curvature="0" />
+       <g
+-         transform="matrix(0.80267821,0,0,0.80267821,62.825218,56.880895)"
++         id="text7712"
+          style="font-size:40px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Italic"
+-         id="text7712">
++         transform="matrix(0.80267821,0,0,0.80267821,62.825218,56.880895)">
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7719"
+            d="m 252.05613,245.37246 c 0,0 2.58377,0.91853 2.58377,0.91853 0,0 0.67003,28.68254 0.67003,28.68254 0,0 6.00991,-26.30785 6.00991,-26.30785 0,0 3.09814,1.10138 3.09814,1.10138 0,0 0.9064,29.13092 0.9064,29.13092 0,0 5.85342,-26.72782 5.85342,-26.72782 0,0 2.74237,0.9749 2.74237,0.9749 0,0 -7.58463,33.16045 -7.58463,33.16045 0,0 -3.14227,-1.25917 -3.14227,-1.25917 0,0 -0.79984,-29.88269 -0.79984,-29.88269 0,0 -6.16927,27.09001 -6.16927,27.09001 0,0 -3.09117,-1.23869 -3.09117,-1.23869 0,0 -1.07686,-35.64251 -1.07686,-35.64251"
+-           id="path7719" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7721"
+            d="m 287.79597,263.66772 c -0.28884,-0.43333 -0.61869,-0.80462 -0.98942,-1.11388 -0.37042,-0.30892 -0.76619,-0.53938 -1.1872,-0.69144 -1.50601,-0.5438 -2.8179,0.2025 -3.93755,2.23319 -1.11656,2.0034 -1.85585,4.96514 -2.21993,8.88673 0,0 -1.70981,17.89804 -1.70981,17.89804 0,0 -2.76864,-1.10946 -2.76864,-1.10946 0,0 3.29745,-35.07562 3.29745,-35.07562 0,0 2.79152,0.99237 2.79152,0.99237 0,0 -0.53249,5.48111 -0.53249,5.48111 0.74059,-1.84081 1.625,-3.14432 2.65417,-3.90946 1.042,-0.76339 2.15336,-0.93697 3.33464,-0.51836 0.30871,0.10945 0.61252,0.26092 0.91141,0.45449 0.29909,0.17185 0.5984,0.39859 0.89796,0.68032 0,0 -0.54211,5.79198 -0.54211,5.79198"
+-           id="path7721" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7723"
+            d="m 292.56008,245.35128 c 0,0 2.89162,0.97705 2.89162,0.97705 0,0 -0.70907,7.48716 -0.70907,7.48716 0,0 -2.88665,-1.00253 -2.88665,-1.00253 0,0 0.7041,-7.46168 0.7041,-7.46168 m -1.31334,13.95333 c 0,0 2.88235,1.02466 2.88235,1.02466 0,0 -3.42832,35.73991 -3.42832,35.73991 0,0 -2.85836,-1.14541 -2.85836,-1.14541 0,0 3.40433,-35.61916 3.40433,-35.61916"
+-           id="path7723" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7725"
+            d="m 309.48682,265.7889 c 0,0 -0.45655,4.66236 -0.45655,4.66236 0,0 -5.9382,-2.1453 -5.9382,-2.1453 0,0 -1.90738,19.63158 -1.90738,19.63158 -0.0639,0.73285 -0.11193,1.34923 -0.1439,1.84921 -0.032,0.49995 -0.048,0.89472 -0.048,1.1843 -1e-5,1.42569 0.20251,2.54103 0.60784,3.34663 0.4164,0.8106 1.07925,1.3955 1.98972,1.75468 0,0 3.00258,1.18453 3.00258,1.18453 0,0 -0.50194,4.9795 -0.50194,4.9795 0,0 -2.83827,-1.13736 -2.83827,-1.13736 -1.75347,-0.70265 -3.05838,-1.93771 -3.91896,-3.70464 -0.8482,-1.75906 -1.27165,-4.08007 -1.27165,-6.96573 0,-0.51053 0.0159,-1.0593 0.0476,-1.64631 0.0318,-0.60924 0.0794,-1.2679 0.14289,-1.97605 0,0 1.89388,-19.56447 1.89388,-19.56447 0,0 -2.48097,-0.8963 -2.48097,-0.8963 0,0 0.46008,-4.59549 0.46008,-4.59549 0,0 2.43584,0.86593 2.43584,0.86593 0,0 0.99117,-10.28061 0.99117,-10.28061 0,0 2.95558,1.01275 2.95558,1.01275 0,0 -0.98217,10.32176 -0.98217,10.32176 0,0 5.96075,2.11903 5.96075,2.11903"
+-           id="path7725" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7727"
+            d="m 326.77086,288.50631 c 0,0 -2.11917,21.16773 -2.11917,21.16773 0,0 -3.10033,-1.24237 -3.10033,-1.24237 0,0 0.57118,-5.5966 0.57118,-5.5966 -0.90683,1.9249 -1.94003,3.22465 -3.09866,3.90094 -1.14439,0.65615 -2.41844,0.70102 -3.82097,0.13736 -1.57366,-0.63245 -2.86231,-2.13265 -3.86853,-4.49812 -0.99293,-2.37801 -1.4885,-5.10715 -1.4885,-8.19165 0,-4.41285 0.84992,-7.57977 2.55495,-9.50664 1.72298,-1.93059 4.10506,-2.33393 7.15742,-1.19795 0,0 4.29935,1.6001 4.29935,1.6001 0,0 0.16883,-1.62004 0.16883,-1.62004 0.0225,-0.17483 0.0394,-0.36319 0.0507,-0.56513 0.0112,-0.2248 0.0169,-0.5662 0.0169,-1.02419 -2e-5,-2.03791 -0.41079,-3.76742 -1.23112,-5.18647 -0.80758,-1.43506 -1.94341,-2.41584 -3.40486,-2.94303 -1.00115,-0.36108 -2.02764,-0.47008 -3.07927,-0.32789 -1.038,0.1459 -2.10643,0.53972 -3.20508,1.18047 0,0 0.527,-5.57563 0.527,-5.57563 1.14408,-0.47421 2.26368,-0.73276 3.35858,-0.77478 1.10883,-0.0609 2.18164,0.092 3.21813,0.45926 2.21516,0.78511 3.90669,2.3
 6932 5.06825,4.75443 1.17603,2.39577 1.76527,5.48042 1.76529,9.24901 -2e-5,0.75834 -0.0284,1.64404 -0.0851,2.65701 -0.0567,0.98991 -0.14171,2.038 -0.255,3.14416 m -3.36876,1.34525 c 0,0 -3.09125,-1.16846 -3.09125,-1.16846 -2.51456,-0.95045 -4.36861,-0.95956 -5.57074,-0.0335 -1.18775,0.905 -1.78036,2.79153 -1.78036,5.66151 0,1.98867 0.30169,3.66629 0.90572,5.03434 0.6159,1.37437 1.46424,2.27595 2.54643,2.70406 1.66181,0.6574 3.11849,0.0152 4.3679,-1.93292 1.25308,-1.9767 2.08305,-4.94692 2.48743,-8.90911 0,0 0.13487,-1.35589 0.13487,-1.35589"
+-           id="path7727" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7729"
+            d="m 347.13009,294.55189 c -2e-5,-3.41012 -0.39774,-6.22506 -1.19207,-8.44179 -0.78109,-2.20838 -1.86163,-3.56012 -3.2394,-4.05701 -0.99824,-0.35995 -1.93565,-0.20773 -2.81262,0.45506 -0.86357,0.64245 -1.61486,1.76619 -2.25446,3.37042 -0.67347,1.68204 -1.20686,3.72671 -1.60067,6.13433 -0.38191,2.38662 -0.57272,4.84375 -0.57271,7.37297 -1e-5,3.20217 0.37593,5.86657 1.12879,7.996 0.76577,2.11448 1.81805,3.43778 3.1589,3.96832 1.01712,0.40245 1.9604,0.30824 2.82934,-0.28424 0.87064,-0.61709 1.63686,-1.72238 2.29808,-3.31677 0.67403,-1.66265 1.21875,-3.69516 1.63369,-6.09732 0.4153,-2.40442 0.62311,-4.77164 0.62313,-7.09997 M 337.0567,281.51791 c 0.78987,-1.85443 1.77924,-3.17561 2.9695,-3.9626 1.20523,-0.80829 2.46671,-0.98024 3.7849,-0.51311 2.03216,0.72026 3.65166,2.65879 4.85388,5.81961 1.21743,3.17392 1.82742,7.10144 1.82744,11.77595 -2e-5,3.82463 -0.35895,7.39468 -1.07589,10.70609 -0.7039,3.31065 -1.71002,6.09679 -3.0163,8.35733 -0.85293,1.49389 -1.83409,2.5108
 8 -2.9426,3.05212 -1.10572,0.53986 -2.26135,0.5666 -3.46649,0.0823 -1.27171,-0.51109 -2.37123,-1.53454 -3.29984,-3.06897 -0.92665,-1.53116 -1.67807,-3.55843 -2.25519,-6.08175 0,0 -0.5706,5.68136 -0.5706,5.68136 0,0 -3.16769,-1.26936 -3.16769,-1.26936 0,0 5.22886,-52.09236 5.22886,-52.09236 0,0 3.20652,1.08346 3.20652,1.08346 0,0 -2.0765,20.42996 -2.0765,20.42996"
+-           id="path7729" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7731"
+            d="m 359.06752,267.82359 c 0,0 3.38124,1.1425 3.38124,1.1425 0,0 -5.55435,53.6283 -5.55435,53.6283 0,0 -3.33921,-1.33809 -3.33921,-1.33809 0,0 5.51232,-53.43271 5.51232,-53.43271"
+-           id="path7731" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path7733"
+            d="m 381.17073,308.13218 c 0.0384,-0.37658 0.0641,-0.77018 0.0769,-1.18085 0.0256,-0.40586 0.0384,-0.81654 0.0385,-1.23197 -2e-5,-2.98137 -0.46146,-5.50826 -1.38292,-7.5775 -0.90686,-2.06038 -2.14287,-3.37156 -3.70532,-3.93518 -1.73397,-0.62542 -3.25989,-0.12256 -4.57984,1.50318 -1.31611,1.59689 -2.31002,4.18671 -2.98387,7.76891 0,0 12.53655,4.65342 12.53655,4.65342 m 3.08753,6.45078 c 0,0 -16.27824,-6.18387 -16.27824,-6.18387 -0.0747,0.88659 -0.1245,1.5899 -0.14939,2.11004 -0.0249,0.52016 -0.0374,0.97278 -0.0374,1.35796 0,3.34636 0.52926,6.14103 1.58968,8.38801 1.07544,2.25725 2.59296,3.77513 4.55703,4.55209 1.51665,0.59999 2.95587,0.84102 4.3169,0.72132 1.36511,-0.12007 2.63824,-0.58361 3.81862,-1.39193 0,0 -0.67396,6.40861 -0.67396,6.40861 -1.26817,0.4707 -2.57744,0.67848 -3.92742,0.62445 -1.33332,-0.0488 -2.68797,-0.35023 -4.06377,-0.90315 -2.92691,-1.1763 -5.1688,-3.41411 -6.73581,-6.71046 -1.54917,-3.30395 -2.32174,-7.40977 -2.32174,-12.32606 0,-4.19681 0.3
 8303,-7.95002 1.15007,-11.26392 0.78077,-3.33904 1.92339,-6.1559 3.43066,-8.452 0.97432,-1.43432 2.13251,-2.39622 3.47601,-2.88445 1.36012,-0.48514 2.80661,-0.4572 4.3403,0.0863 2.41878,0.85727 4.35033,2.93449 5.78837,6.23605 1.45546,3.31676 2.18494,7.33401 2.18497,12.0438 -3e-5,1.1284 -0.0388,2.32815 -0.11628,3.59909 -0.0775,1.24624 -0.19376,2.57565 -0.34866,3.9881"
+-           id="path7733" />
++           inkscape:connector-curvature="0" />
+       </g>
+       <g
+-         transform="translate(0,-6)"
++         id="text9181"
+          style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New"
+-         id="text9181">
++         transform="translate(0,-6)">
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9188"
+            d="m 419.10683,281.89145 c 0,0 0,-2.03714 0,-2.03714 -3e-5,-0.69051 0.0779,-1.21057 0.23359,-1.56003 0.16977,-0.35378 0.38897,-0.57387 0.65748,-0.66032 0.26827,-0.0863 0.47992,-0.005 0.63507,0.24347 0.16913,0.24399 0.25367,0.71031 0.2537,1.39901 0,0 0,8.02408 0,8.02408 -3e-5,0.71176 -0.0846,1.24546 -0.2537,1.6012 -0.15515,0.3512 -0.3668,0.57235 -0.63507,0.66333 -0.24024,0.0815 -0.44526,0.0131 -0.61501,-0.20548 -0.15572,-0.22341 -0.24776,-0.64111 -0.27606,-1.25309 -0.0708,-1.90988 -0.71598,-3.41113 -1.93866,-4.50643 -1.6562,-1.51414 -3.55054,-1.92872 -5.68694,-1.23502 -1.40743,0.45705 -2.7403,1.39227 -3.99772,2.80806 -0.93873,1.03358 -1.68859,2.17121 -2.24836,3.41229 -0.97438,2.15669 -1.75138,4.45228 -2.32971,6.88527 -0.4158,1.79161 -0.62389,3.72591 -0.62389,5.80133 0,0 0,5.20043 0,5.20043 0,4.43391 1.00955,7.91984 3.01993,10.44682 1.99887,2.48909 4.30676,3.23169 6.91744,2.24404 1.55697,-0.58902 2.94224,-1.65714 4.15785,-3.20225 1.2255,-1.54498 2.40414,-3.62131 3.
 53637,-6.22666 0.24009,-0.57118 0.50825,-0.91111 0.80442,-1.02002 0.25361,-0.0933 0.45778,-0.0421 0.61262,0.1533 0.15472,0.19535 0.23206,0.48794 0.23209,0.87783 -3e-5,0.52756 -0.30247,1.44272 -0.90815,2.74722 -1.15807,2.54873 -2.46912,4.64404 -3.9349,6.28471 -1.45779,1.61908 -2.94333,2.71978 -4.45696,3.29882 -1.31723,0.50391 -2.6613,0.60967 -4.03252,0.31496 -1.05399,-0.23099 -1.9274,-0.63787 -2.61886,-1.22095 -0.69284,-0.58423 -1.54974,-1.68494 -2.57189,-3.30482 -1.01027,-1.65369 -1.7028,-3.26411 -2.07569,-4.82896 -0.37329,-1.59011 -0.56008,-3.4145 -0.56008,-5.47187 0,0 0,-6.06566 0,-6.06566 0,-2.93231 0.49291,-6.09055 1.47668,-9.46765 0.99585,-3.39605 2.34392,-6.18065 4.04011,-8.35311 1.70261,-2.18997 3.53533,-3.5965 5.49604,-4.22491 2.99933,-0.96119 5.55976,-0.14235 7.69078,2.4382"
+-           id="path9188" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9190"
+            d="m 446.20148,293.70621 c -2e-5,4.24459 -0.90262,8.20511 -2.71524,11.89678 -1.80943,3.70706 -4.00854,6.06196 -6.60502,7.05524 -2.64397,1.01145 -4.90651,0.34117 -6.7797,-2.02677 -1.88367,-2.40388 -2.82947,-5.7829 -2.82946,-10.12702 -1e-5,-4.36681 0.94579,-8.42515 2.82946,-12.15934 1.87319,-3.73593 4.13573,-6.04253 6.7797,-6.93007 2.59648,-0.87152 4.79559,-0.0961 6.60502,2.31138 1.81262,2.38984 2.71522,5.71315 2.71524,9.9798 m -1.66979,0.59968 c -1e-5,-3.50178 -0.74267,-6.22333 -2.23301,-8.17124 -1.48384,-1.96123 -3.2946,-2.58265 -5.43761,-1.85412 -2.1569,0.73328 -4.00807,2.62575 -5.54831,5.68434 -1.53361,3.04527 -2.30304,6.35392 -2.30304,9.91552 0,3.53895 0.76943,6.29496 2.30304,8.26131 1.54024,1.9523 3.39141,2.51514 5.54831,1.69916 2.14301,-0.81073 3.95377,-2.73277 5.43761,-5.75981 1.49034,-3.04055 2.233,-6.29551 2.23301,-9.77516"
+-           id="path9190" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9192"
+            d="m 455.60751,276.10974 c 0,0 0,4.15113 0,4.15113 1.11495,-2.3191 2.11892,-3.99679 3.01293,-5.03692 0.89151,-1.03717 1.89309,-1.74157 3.00371,-2.11441 1.19364,-0.40064 2.27776,-0.32355 3.25343,0.22887 0.68978,0.41072 1.31055,1.27219 1.86271,2.58332 0.56341,1.28329 0.84476,2.70473 0.84478,4.26601 0,0 0,16.97118 0,16.97118 0,0 1.29949,-0.48945 1.29949,-0.48945 0.36507,-0.1375 0.62647,-0.10806 0.78443,0.0883 0.15785,0.17489 0.23676,0.46473 0.23678,0.86961 -2e-5,0.38358 -0.079,0.73322 -0.23678,1.04899 -0.15796,0.31594 -0.41936,0.54343 -0.78443,0.68248 0,0 -4.13649,1.57553 -4.13649,1.57553 -0.38266,0.14575 -0.6545,0.1203 -0.81523,-0.0767 -0.16083,-0.19703 -0.24127,-0.48927 -0.24126,-0.8766 -10e-6,-0.40886 0.0804,-0.76201 0.24126,-1.05937 0.16073,-0.31869 0.43257,-0.5501 0.81523,-0.69423 0,0 1.29268,-0.48689 1.29268,-0.48689 0,0 0,-16.56218 0,-16.56218 -2e-5,-1.9081 -0.39958,-3.37817 -1.20018,-4.41215 -0.80264,-1.05804 -1.88008,-1.35848 -3.23511,-0.89784 -1.03568,0.35
 211 -1.93681,1.02658 -2.70223,2.02432 -0.76727,0.97846 -1.86472,3.15928 -3.29572,6.55195 0,0 0,17.22555 0,17.22555 0,0 1.80355,-0.67931 1.80355,-0.67931 0.3784,-0.14252 0.64933,-0.11436 0.81305,0.0844 0.16361,0.17695 0.24539,0.47148 0.2454,0.88368 -1e-5,0.39049 -0.0818,0.74701 -0.2454,1.06957 -0.16372,0.32276 -0.43465,0.55619 -0.81305,0.70032 0,0 -5.22933,1.99177 -5.22933,1.99177 -0.38503,0.14665 -0.66124,0.12033 -0.82837,-0.0793 -0.16721,-0.19969 -0.25085,-0.49706 -0.25084,-0.89202 -1e-5,-0.4169 0.0836,-0.77761 0.25084,-1.08204 0.16713,-0.32618 0.44334,-0.56178 0.82837,-0.7068 0,0 1.82264,-0.68649 1.82264,-0.68649 0,0 0,-22.83855 0,-22.83855 0,0 -1.36122,0.46482 -1.36122,0.46482 -0.38448,0.13131 -0.6603,0.094 -0.82719,-0.11207 -0.16697,-0.20614 -0.2505,-0.51757 -0.25049,-0.93421 -1e-5,-0.39465 0.0835,-0.75178 0.25049,-1.07132 0.16689,-0.31929 0.44271,-0.54376 0.82719,-0.67343 0,0 2.96436,-0.99954 2.96436,-0.99954"
+-           id="path9192" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9194"
+            d="m 479.92231,267.91115 c 0,0 7.93929,-2.67701 7.93929,-2.67701 0.34358,-0.11582 0.58957,-0.0747 0.73824,0.12332 0.14856,0.19796 0.22283,0.49327 0.22285,0.88604 -2e-5,0.37214 -0.0743,0.70755 -0.22285,1.00626 -0.14867,0.29894 -0.39466,0.50704 -0.73824,0.62435 0,0 -7.93929,2.71107 -7.93929,2.71107 0,0 0,17.5856 0,17.5856 -10e-6,1.53103 0.34075,2.68285 1.02117,3.45423 0.69061,0.76528 1.69453,0.8979 3.00873,0.40072 0.98487,-0.37258 2.04735,-1.03413 3.18661,-1.9829 1.13503,-0.96594 2.01495,-1.89616 2.64195,-2.79193 0.22765,-0.35338 0.41536,-0.55761 0.56319,-0.61282 0.1818,-0.0679 0.3408,0.007 0.47704,0.22365 0.13614,0.1963 0.20421,0.46949 0.20422,0.81966 -10e-6,0.30901 -0.0738,0.62518 -0.22124,0.94859 -0.36343,0.81742 -1.25108,1.8964 -2.66748,3.24084 -1.41148,1.32553 -2.77168,2.23999 -4.07986,2.74044 -1.71013,0.65421 -3.07802,0.45516 -4.09907,-0.60245 -1.02442,-1.06109 -1.53788,-2.82281 -1.53788,-5.28253 0,0 0,-17.628 0,-17.628 0,0 -2.75879,0.94206 -2.75879,0.94206 -
 0.35775,0.12218 -0.61439,0.083 -0.76967,-0.11774 -0.15535,-0.20078 -0.23305,-0.50216 -0.23305,-0.90403 0,-0.38067 0.0777,-0.72418 0.23305,-1.03047 0.15528,-0.30606 0.41192,-0.51941 0.76967,-0.64007 0,0 2.75879,-0.93022 2.75879,-0.93022 0,0 0,-7.82065 0,-7.82065 0,-0.63066 0.0709,-1.10555 0.21258,-1.42455 0.14162,-0.31879 0.31857,-0.51233 0.53079,-0.58066 0.22384,-0.072 0.40634,0.006 0.54755,0.23289 0.14114,0.22719 0.21169,0.65532 0.2117,1.28446 0,0 0,7.80185 0,7.80185"
+-           id="path9194" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9196"
+            d="m 507.59418,284.6149 c 0,0 0,-3.63759 0,-3.63759 -1.97126,3.83544 -4.09162,6.19491 -6.36413,7.06425 -1.66058,0.63526 -2.96464,0.36062 -3.90749,-0.82933 -0.94581,-1.21408 -1.41981,-2.9567 -1.41981,-5.22501 0,-2.49306 0.62441,-4.89516 1.86942,-7.19916 1.2399,-2.29455 3.04084,-3.85692 5.3928,-4.68926 0.63133,-0.22341 1.31558,-0.38496 2.05241,-0.48487 0.73499,-0.11963 1.52741,-0.16982 2.3768,-0.15063 0,0 0,-4.08853 0,-4.08853 -10e-6,-1.38285 -0.34377,-2.46702 -1.03247,-3.25387 -0.69032,-0.78861 -1.72878,-0.94811 -3.11901,-0.47551 -1.06879,0.36336 -2.57478,1.45299 -4.52455,3.2767 -0.35386,0.32479 -0.58075,0.50443 -0.68042,0.53862 -0.17727,0.0609 -0.33247,-0.008 -0.46556,-0.20685 -0.12205,-0.20267 -0.1831,-0.48744 -0.18309,-0.85428 -1e-5,-0.34641 0.0555,-0.64039 0.16645,-0.88189 0.15527,-0.35826 0.7811,-0.98775 1.87459,-1.88616 1.71506,-1.42987 3.00589,-2.28846 3.8779,-2.5812 1.72557,-0.5792 3.06445,-0.23562 4.02174,1.02522 0.95419,1.23685 1.43016,2.84357 1.43017,4.
 82313 0,0 0,16.67655 0,16.67655 0,0 1.79004,-0.67421 1.79004,-0.67421 0.32911,-0.12395 0.56246,-0.0924 0.70028,0.0947 0.13772,0.16703 0.20657,0.43961 0.20659,0.8178 -2e-5,0.35829 -0.0689,0.68305 -0.20659,0.9743 -0.13782,0.29141 -0.37117,0.49978 -0.70028,0.62513 0,0 -3.15579,1.202 -3.15579,1.202 m 0,-12.56621 c -0.63412,-0.11291 -1.30734,-0.12215 -2.01989,-0.0274 -0.71427,0.095 -1.46826,0.28452 -2.26226,0.56886 -1.99974,0.71618 -3.57168,2.08121 -4.70901,4.09722 -0.86414,1.51494 -1.29713,3.10995 -1.29712,4.78174 -1e-5,1.54949 0.32757,2.73182 0.98167,3.54568 0.66373,0.80794 1.62356,0.97347 2.87668,0.4994 1.19328,-0.45143 2.29477,-1.30203 3.30546,-2.54998 1.01808,-1.26789 2.05966,-3.05352 3.12447,-5.35395 0,0 0,-5.5616 0,-5.5616"
+-           id="path9196" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9198"
+            d="m 523.702,240.54258 c 0,0 0,6.34723 0,6.34723 0,0 -1.89662,0.61903 -1.89662,0.61903 0,0 0,-6.36799 0,-6.36799 0,0 1.89662,-0.59827 1.89662,-0.59827 m 0.0457,12.59128 c 0,0 0,22.8716 0,22.8716 0,0 4.98692,-1.8783 4.98692,-1.8783 0.30944,-0.11656 0.52886,-0.0834 0.65845,0.0995 0.1295,0.16349 0.19423,0.42857 0.19424,0.79531 -10e-6,0.34743 -0.0648,0.66158 -0.19424,0.94246 -0.12959,0.28103 -0.34901,0.48047 -0.65845,0.59834 0,0 -11.367,4.32951 -11.367,4.32951 -0.31177,0.11876 -0.53541,0.0856 -0.67072,-0.0998 -0.13538,-0.1854 -0.20308,-0.45583 -0.20308,-0.81118 0,-0.37512 0.0677,-0.69681 0.20308,-0.96503 0.13531,-0.28782 0.35895,-0.49043 0.67072,-0.60786 0,0 5.09683,-1.9197 5.09683,-1.9197 0,0 0,-20.43068 0,-20.43068 0,0 -3.77547,1.28922 -3.77547,1.28922 -0.31037,0.106 -0.53819,0.0657 -0.68325,-0.12114 -0.13477,-0.19038 -0.20218,-0.46292 -0.20217,-0.81751 -10e-6,-0.37425 0.0674,-0.70236 0.20217,-0.98427 0.1347,-0.28172 0.36252,-0.47665 0.68325,-0.58482 0,0 5.05872,-1
 .70573 5.05872,-1.70573"
+-           id="path9198" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9200"
+            d="m 537.32375,248.55623 c 0,0 0,3.62744 0,3.62744 0.85157,-1.98473 1.61868,-3.41372 2.30203,-4.28987 0.68168,-0.87397 1.4478,-1.45313 2.29768,-1.73844 0.91383,-0.30672 1.74417,-0.19946 2.49175,0.31998 0.5287,0.38502 1.00462,1.16228 1.42804,2.33096 0.43214,1.14498 0.64797,2.40056 0.64799,3.76807 0,0 0,14.86484 0,14.86484 0,0 0.99719,-0.37559 0.99719,-0.37559 0.28024,-0.10556 0.48092,-0.0691 0.6022,0.1094 0.1212,0.15971 0.18179,0.41693 0.18181,0.77172 -2e-5,0.33612 -0.0606,0.63926 -0.18181,0.90944 -0.12128,0.27032 -0.32196,0.45885 -0.6022,0.56559 0,0 -3.17247,1.20835 -3.17247,1.20835 -0.29322,0.11168 -0.5015,0.0781 -0.62464,-0.10097 -0.1232,-0.17913 -0.18482,-0.43824 -0.18481,-0.77724 -1e-5,-0.35784 0.0616,-0.66361 0.18481,-0.91724 0.12314,-0.27233 0.33142,-0.46371 0.62464,-0.57415 0,0 0.99087,-0.37321 0.99087,-0.37321 0,0 0,-14.50223 0,-14.50223 -2e-5,-1.67078 -0.30634,-2.97304 -0.91998,-3.90831 -0.61502,-0.95611 -1.44029,-1.25912 -2.47769,-0.90646 -0.79254,0.269
 45 -1.48185,0.82573 -2.06717,1.66956 -0.58655,0.82666 -1.42522,2.69155 -2.51824,5.6018 0,0 0,15.05244 0,15.05244 0,0 1.37768,-0.5189 1.37768,-0.5189 0.28918,-0.10892 0.49624,-0.0731 0.62138,0.10749 0.12507,0.16149 0.18759,0.4224 0.18759,0.7828 0,0.34142 -0.0626,0.64972 -0.18759,0.9249 -0.12514,0.27533 -0.3322,0.46807 -0.62138,0.57821 0,0 -3.99187,1.52045 -3.99187,1.52045 -0.2936,0.11182 -0.50419,0.0772 -0.6316,-0.10415 -0.12747,-0.18138 -0.19123,-0.44453 -0.19122,-0.78936 -1e-5,-0.36399 0.0637,-0.67542 0.19122,-0.93422 0.12741,-0.27783 0.338,-0.47202 0.6316,-0.5826 0,0 1.39041,-0.52369 1.39041,-0.52369 0,0 0,-19.9511 0,-19.9511 0,0 -1.03851,0.35462 -1.03851,0.35462 -0.29323,0.10015 -0.50356,0.0572 -0.63081,-0.1291 -0.12731,-0.18629 -0.19099,-0.46138 -0.19098,-0.82516 -1e-5,-0.3446 0.0636,-0.6533 0.19098,-0.92606 0.12725,-0.27258 0.33758,-0.4583 0.63081,-0.5572 0,0 2.26229,-0.76281 2.26229,-0.76281"
+-           id="path9200" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9202"
+            d="m 564.37221,251.7564 c 0,0 -11.52429,4.14925 -11.52429,4.14925 0.20161,2.94498 0.82381,5.14921 1.86378,6.61012 1.04511,1.43359 2.33011,1.85933 3.85161,1.28373 0.8426,-0.31877 1.72276,-0.93491 2.64009,-1.84687 0.91423,-0.90885 1.65753,-1.93361 2.23132,-3.07472 0.16748,-0.33476 0.31285,-0.525 0.43614,-0.57085 0.14082,-0.0524 0.26398,0.0197 0.36951,0.21624 0.10547,0.17832 0.15819,0.42155 0.1582,0.72977 -10e-6,0.30823 -0.0703,0.63376 -0.21096,0.97672 -0.42243,1.06628 -1.1765,2.20515 -2.26499,3.41901 -1.08401,1.1971 -2.20364,2.01781 -3.35931,2.45991 -1.94615,0.7445 -3.58314,0.0702 -4.90528,-2.03457 -1.31936,-2.13686 -1.98142,-5.07429 -1.98141,-8.80462 -10e-6,-3.39624 0.62072,-6.52518 1.85798,-9.37715 1.24083,-2.84225 2.7659,-4.56294 4.57045,-5.16871 1.84627,-0.61971 3.35606,0.10399 4.53489,2.16125 1.17368,2.03023 1.74983,4.98512 1.73227,8.87149 m -1.12272,-1.91239 c -0.22071,-2.44805 -0.8042,-4.29941 -1.75284,-5.55586 -0.94308,-1.26387 -2.07284,-1.67412 -3.3916,-1.
 2258 -1.32518,0.45052 -2.47072,1.63227 -3.43432,3.54863 -0.96701,1.92314 -1.57083,4.23377 -1.80906,6.92855 0,0 10.38782,-3.69552 10.38782,-3.69552"
+-           id="path9202" />
++           inkscape:connector-curvature="0" />
+         <path
+-           inkscape:connector-curvature="0"
++           id="path9204"
+            d="m 573.09946,236.49319 c 0,0 0,5.67252 0,5.67252 1.39118,-3.11706 2.42557,-5.15863 3.10733,-6.13505 0.68836,-0.9944 1.32057,-1.58768 1.89705,-1.78148 0.62514,-0.2101 1.20313,0.0452 1.73426,0.76436 0.5383,0.69735 0.80705,1.27409 0.80706,1.73125 -1e-5,0.33412 -0.0538,0.63396 -0.16121,0.89952 -0.0993,0.24531 -0.22754,0.39508 -0.38483,0.4493 -0.0829,0.0286 -0.15328,0.0265 -0.21128,-0.006 -0.0581,-0.0505 -0.16584,-0.21587 -0.32347,-0.49644 -0.29063,-0.51722 -0.54416,-0.85379 -0.76045,-1.00936 -0.21651,-0.15563 -0.42901,-0.19806 -0.6375,-0.12711 -0.4593,0.15634 -1.01569,0.73516 -1.66979,1.73811 -0.64734,1.00259 -1.77765,3.30323 -3.39717,6.91661 0,0 0,12.30832 0,12.30832 0,0 4.70377,-1.77166 4.70377,-1.77166 0.25887,-0.0975 0.44243,-0.0607 0.55085,0.11042 0.10835,0.15336 0.16252,0.39774 0.16253,0.73321 -10e-6,0.3178 -0.0542,0.60323 -0.16253,0.85632 -0.10842,0.25321 -0.29198,0.42911 -0.55085,0.52771 0,0 -8.39069,3.19589 -8.39069,3.19589 -0.25883,0.0986 -0.44449,0.0704 
 -0.55681,-0.0846 -0.11237,-0.17308 -0.16857,-0.42152 -0.16857,-0.74529 0,-0.30576 0.0519,-0.57716 0.15561,-0.81415 0.11232,-0.25813 0.3023,-0.43758 0.56977,-0.53836 0,0 2.61311,-0.98462 2.61311,-0.98462 0,0 0,-18.76796 0,-18.76796 0,0 -1.99291,0.68053 -1.99291,0.68053 -0.25825,0.0882 -0.44347,0.0437 -0.55552,-0.13359 -0.11211,-0.17732 -0.16818,-0.43671 -0.16818,-0.77807 0,-0.32336 0.0517,-0.61034 0.15524,-0.8609 0.11207,-0.25331 0.3016,-0.42495 0.56846,-0.51496 0,0 3.06672,-1.03405 3.06672,-1.03405"
+-           id="path9204" />
++           inkscape:connector-curvature="0" />
+       </g>
+     </g>
+     <g
+-       style="display:inline"
+-       inkscape:label="Image (name)#1"
++       inkscape:groupmode="layer"
+        id="layer12"
+-       inkscape:groupmode="layer">
++       inkscape:label="Image (name)#1"
++       style="display:inline">
+       <g
+-         id="text8052"
++         transform="translate(-12.096774,4.8387096)"
+          style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Courier New;-inkscape-font-specification:Courier New"
+-         transform="translate(-12.096774,4.8387096)">
++         id="text8052">
+         <path
+-           id="path8059"
++           inkscape:connector-curvature="0"
+            d="m 423.74041,363.69642 c 0,0 0,46.13338 0,46.13338 0,0 6.60461,-3.25288 6.60461,-3.25288 0.45439,-0.22379 0.77972,-0.20169 0.97632,0.0662 0.19645,0.2373 0.29465,0.64448 0.29467,1.22164 -2e-5,0.54682 -0.0983,1.05125 -0.29467,1.51342 -0.1966,0.46245 -0.52193,0.80673 -0.97632,1.03282 0,0 -15.30796,7.61688 -15.30796,7.61688 -0.47355,0.23563 -0.81328,0.21827 -1.01883,-0.0526 -0.20568,-0.27092 -0.30855,-0.68631 -0.30855,-1.24607 0,-0.59083 0.10283,-1.10805 0.30855,-1.55154 0.20555,-0.47431 0.54528,-0.8281 1.01883,-1.06133 0,0 6.75525,-3.32706 6.75525,-3.32706 0,0 0,-46.25099 0,-46.25099 0,0 -6.75525,2.91925 -6.75525,2.91925 -0.47355,0.20469 -0.81328,0.18057 -1.01883,-0.0726 -0.20568,-0.2843 -0.30855,-0.72199 -0.30855,-1.31286 0,-0.59081 0.10283,-1.1013 0.30855,-1.53138 0.20555,-0.46081 0.54528,-0.79235 1.01883,-0.99466 0,0 15.30796,-6.53778 15.30796,-6.53778 0.45439,-0.19399 0.77972,-0.15067 0.97632,0.13006 0.19645,0.25021 0.29465,0.66381 0.29467,1.24095 -2e-5,0.5772
 2 -0.0983,1.09044 -0.29467,1.53969 -0.1966,0.41925 -0.52193,0.72704 -0.97632,0.92336 0,0 -6.60461,2.85414 -6.60461,2.85414"
+-           inkscape:connector-curvature="0" />
++           id="path8059" />
+         <path
+-           id="path8061"
++           inkscape:connector-curvature="0"
+            d="m 441.87507,365.74833 c 0,0 0,3.82064 0,3.82064 1.56942,-4.14583 3.13954,-6.56174 4.71033,-7.25855 0.94216,-0.41791 1.76641,-0.26368 2.47352,0.46081 0.70573,0.69355 1.29521,1.97053 1.76901,3.83012 0.80259,-2.43288 1.61058,-4.33197 2.42395,-5.69892 0.82577,-1.39965 1.64969,-2.28097 2.47179,-2.64567 1.28608,-0.57047 2.30749,-0.15871 3.06643,1.23159 0.99542,1.77766 1.49212,3.97984 1.49215,6.61017 0,0 0,25.73386 0,25.73386 0,0 1.48605,-0.73191 1.48605,-0.73191 0.41748,-0.20562 0.71641,-0.17807 0.89705,0.0826 0.18051,0.23133 0.27074,0.62358 0.27077,1.17682 -3e-5,0.52419 -0.0903,1.00579 -0.27077,1.44493 -0.18064,0.43941 -0.47957,0.76299 -0.89705,0.97072 0,0 -3.25208,1.61816 -3.25208,1.61816 0,0 0,-29.13622 0,-29.13622 -2e-5,-1.87499 -0.27409,-3.30363 -0.82284,-4.287 -0.54964,-0.98475 -1.18481,-1.31612 -1.90601,-0.99255 -0.65174,0.29248 -1.34015,1.11693 -2.06542,2.47501 -0.72674,1.33131 -1.55495,3.70059 -2.48533,7.11235 0,0 0,24.72225 0,24.72225 0,0 1.50177,-0.73965 
 1.50177,-0.73965 0.42794,-0.21077 0.73434,-0.18473 0.9195,0.078 0.18502,0.23308 0.27752,0.62963 0.27753,1.18976 -1e-5,0.53068 -0.0926,1.01883 -0.27753,1.46455 -0.18516,0.446 -0.49156,0.77547 -0.9195,0.9884 0,0 -3.33363,1.65874 -3.33363,1.65874 0,0 0,-29.23324 0,-29.23324 -2e-5,-1.9874 -0.2882,-3.4883 -0.86521,-4.50391 -0.56348,-1.05333 -1.20023,-1.42148 -1.91062,-1.10276 -0.65361,0.29333 -1.30108,1.01634 -1.94239,2.17018 -0.89094,1.6268 -1.82798,4.16023 -2.81147,7.60421 0,0 0,25.03641 0,25.03641 0,0 1.56211,-0.76936 1.56211,-0.76936 0.43885,-0.21614 0.75303,-0.1917 0.94289,0.0732 0.18975,0.23484 0.28458,0.63583 0.28459,1.20303 -1e-5,0.53738 -0.0948,1.03223 -0.28459,1.48482 -0.18986,0.45281 -0.50404,0.78839 -0.94289,1.00674 0,0 -4.99523,2.48551 -4.99523,2.48551 -0.44529,0.22157 -0.76474,0.19977 -0.95802,-0.0659 -0.19339,-0.26571 -0.29012,-0.67 -0.29011,-1.21278 -1e-5,-0.57291 0.0967,-1.07295 0.29011,-1.5 0.19328,-0.45695 0.51273,-0.7951 0.95802,-1.01441 0,0 1.5765,-0.77645 1.
 5765,-0.77645 0,0 0,-31.40719 0,-31.40719 0,0 -1.5765,0.71024 -1.5765,0.71024 -0.44529,0.20064 -0.76474,0.16379 -0.95802,-0.11096 -0.19339,-0.27476 -0.29012,-0.69868 -0.29011,-1.27164 -1e-5,-0.54273 0.0967,-1.03824 0.29011,-1.48635 0.19328,-0.44782 0.51273,-0.77089 0.95802,-0.96927 0,0 3.43312,-1.52911 3.43312,-1.52911"
+-           inkscape:connector-curvature="0" />
++           id="path8061" />
+         <path
+-           id="path8063"
++           inkscape:connector-curvature="0"
+            d="m 480.58851,385.41099 c 0,0 0,-5.15657 0,-5.15657 -2.4262,5.5798 -5.03657,9.079 -7.835,10.47699 -2.04539,1.02181 -3.65191,0.72721 -4.81363,-0.89204 -1.16547,-1.65345 -1.74963,-4.09108 -1.74963,-7.30887 0,-3.53667 0.76951,-6.98913 2.30362,-10.34663 1.52759,-3.34322 3.746,-5.68753 6.64239,-7.03536 0.77733,-0.36171 1.61976,-0.63945 2.52684,-0.83351 0.90473,-0.2221 1.88006,-0.34939 2.92541,-0.38255 0,0 0,-5.7958 0,-5.7958 -10e-6,-1.96032 -0.42307,-3.47297 -1.27068,-4.53986 -0.84967,-1.0694 -2.12799,-1.22244 -3.8396,-0.45447 -1.31604,0.59057 -3.17073,2.24198 -5.57246,4.96625 -0.43594,0.48573 -0.71549,0.75657 -0.83828,0.81214 -0.21842,0.0989 -0.40964,0.0122 -0.57362,-0.26044 -0.15038,-0.27883 -0.22559,-0.67845 -0.22559,-1.19879 0,-0.49136 0.0684,-0.91228 0.20509,-1.26267 0.19131,-0.51914 0.96238,-1.45616 2.30947,-2.80749 2.11245,-2.14861 3.70209,-3.45689 4.77581,-3.9332 2.12442,-0.94235 3.77243,-0.54918 4.95058,1.17099 1.17422,1.68619 1.75986,3.93017 1.75988,6.73612
  0,0 0,23.63827 0,23.63827 0,0 2.20228,-1.08466 2.20228,-1.08466 0.40486,-0.19939 0.6919,-0.17146 0.86143,0.0837 0.1694,0.2268 0.25409,0.60813 0.25411,1.1441 -2e-5,0.5078 -0.0847,0.973 -0.25411,1.39571 -0.16953,0.42296 -0.45657,0.73515 -0.86143,0.9366 0,0 -3.88288,1.93203 -3.88288,1.93203 m 0,-17.81357 c -0.78041,-0.11482 -1.60899,-0.0799 -2.48605,0.10525 -0.87928,0.18568 -1.80752,0.50815 -2.78512,0.968 -2.46256,1.15841 -4.39871,3.20675 -5.7998,6.14762 -1.06467,2.21091 -1.5982,4.50451 -1.59819,6.87592 -1e-5,2.19789 0.40363,3.85127 1.20954,4.95824 0.81771,1.09778 2.0001,1.26287 3.54357,0.49962 1.46955,-0.72669 2.82587,-2.01263 4.07022,-3.85519 1.2533,-1.87118 2.53536,-4.47776 3.84583,-7.81547 0,0 0,-7.88399 0,-7.88399"
+-           inkscape:connector-curvature="0" />
++           id="path8063" />
+         <path
+-           id="path8065"
++           inkscape:connector-curvature="0"
+            d="m 504.87507,344.02572 c 0,0 0,-6.33756 0,-6.33756 0,0 3.62149,-1.61301 3.62149,-1.61301 0.3655,-0.16275 0.62721,-0.11582 0.78538,0.14085 0.15805,0.25653 0.23705,0.64362 0.23708,1.1613 -3e-5,0.49052 -0.0791,0.93476 -0.23708,1.33282 -0.15817,0.39836 -0.41988,0.67984 -0.78538,0.84448 0,0 -2.07259,0.93375 -2.07259,0.93375 0,0 0,34.44897 0,34.44897 -2e-5,2.29935 -0.22086,4.46439 -0.66296,6.49712 -0.29508,1.35662 -0.78741,2.85674 -1.47785,4.50202 -0.69188,1.64858 -1.32318,2.89693 -1.89359,3.74358 -0.57137,0.84805 -1.33675,1.52227 -2.29743,2.02265 0,0 -4.48946,2.33825 -4.48946,2.33825 -0.37994,0.19787 -0.65249,0.17289 -0.81737,-0.0754 -0.16499,-0.22051 -0.24751,-0.5954 -0.2475,-1.12453 -10e-6,-0.52918 0.0825,-1.0035 0.2475,-1.42286 0.16488,-0.41919 0.43743,-0.72673 0.81737,-0.92267 0,0 4.54567,-2.30289 4.54567,-2.30289 0.92315,-0.47614 1.75064,-1.42648 2.48315,-2.84967 0.74328,-1.42651 1.3553,-3.26448 1.83674,-5.51382 0.27125,-1.28999 0.40681,-2.82626 0.40683,-4.6095
 6 0,0 0,-10.37051 0,-10.37051 -1.66739,5.89686 -3.82848,9.5134 -6.49259,10.83562 -2.17909,1.08151 -4.07329,0.23861 -5.67781,-2.54346 -1.59915,-2.82914 -2.40148,-6.78447 -2.40147,-11.85622 -1e-5,-5.07169 0.80232,-9.76707 2.40147,-14.07131 1.60452,-4.29012 3.49872,-6.9134 5.67781,-7.88005 2.66411,-1.18176 4.8252,0.38981 6.49259,4.69207 m 0,10.41166 c -2e-5,-4.06038 -0.62896,-7.20112 -1.89031,-9.42839 -1.2536,-2.24103 -2.76147,-2.97007 -4.52696,-2.17791 -1.77459,0.79633 -3.30477,2.91596 -4.5872,6.36538 -1.28721,3.43436 -1.9326,7.21098 -1.9326,11.32033 0,4.13734 0.64539,7.33529 1.9326,9.58763 1.28243,2.21618 2.81261,2.88369 4.5872,2.01202 1.76549,-0.86719 3.27336,-3.01347 4.52696,-6.43279 1.26135,-3.44025 1.89029,-7.18583 1.89031,-11.24627"
+-           inkscape:connector-curvature="0" />
++           id="path8065" />
+         <path
+-           id="path8067"
++           inkscape:connector-curvature="0"
+            d="m 529.8044,344.5465 c 0,0 -15.0214,7.10051 -15.0214,7.10051 0.26314,4.28098 1.07521,7.44153 2.43223,9.47797 1.36338,1.99553 3.03922,2.49762 5.02283,1.51672 1.09819,-0.54306 2.24508,-1.52324 3.44017,-2.93807 1.19075,-1.4097 2.1587,-2.97236 2.90578,-4.68889 0.21804,-0.50344 0.40728,-0.79413 0.56779,-0.87226 0.1833,-0.0892 0.34362,0.005 0.48099,0.28146 0.13728,0.25029 0.2059,0.60007 0.20592,1.0494 -2e-5,0.44938 -0.0915,0.9304 -0.27459,1.44334 -0.5499,1.59345 -1.53164,3.3235 -2.9491,5.19415 -1.412,1.84634 -2.87079,3.14741 -4.37696,3.89984 -2.53736,1.26758 -4.67257,0.436 -6.39774,-2.51332 -1.72209,-2.9974 -2.58645,-7.22532 -2.58645,-12.67216 0,-4.95904 0.81041,-9.58368 2.42538,-13.8585 1.61912,-4.25962 3.60849,-6.90642 5.96144,-7.9502 2.40629,-1.06738 4.37322,-0.14533 5.90848,2.75024 1.52811,2.85581 2.27809,7.11232 2.25523,12.77977 m -1.46157,-2.68694 c -0.28736,-3.54969 -1.04714,-6.19709 -2.28263,-7.94479 -1.22853,-1.7594 -2.70063,-2.2574 -4.41951,-1.48616 -1.7278
 1,0.77534 -3.22184,2.60204 -4.47892,5.48524 -1.26182,2.8941 -2.04987,6.32176 -2.36082,10.27751 0,0 13.54188,-6.3318 13.54188,-6.3318"
+-           inkscape:connector-curvature="0" />
++           id="path8067" />
+       </g>
+     </g>
+     <g
+-       id="text10963"
+-       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium"
+-       transform="matrix(0.71809444,0,0,0.71809444,82.080142,116.02377)"
+-       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       inkscape:export-ydpi="90"
+        inkscape:export-xdpi="90"
+-       inkscape:export-ydpi="90">
++       inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png"
++       transform="matrix(0.71809444,0,0,0.71809444,82.080142,116.02377)"
++       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Futura;-inkscape-font-specification:Futura Medium"
++       id="text10963">
+       <path
+-         id="path10970"
++         inkscape:connector-curvature="0"
+          d="m 252.05613,354.81009 c 0,0 0,-73.31493 0,-73.31493 0,0 3.38868,1.401 3.38868,1.401 1.52054,0.62872 2.73709,1.51509 3.64624,2.65926 0.92155,1.15157 1.70141,2.77527 2.33858,4.87173 0.64835,2.16908 1.16294,4.75107 1.54316,7.74529 0.39065,3.03432 0.58615,6.01823 0.58616,8.94912 -10e-6,5.34653 -0.63622,9.57957 -1.90503,12.69023 1.22877,1.92249 2.20099,4.74462 2.91443,8.46703 0.725,3.70293 1.08809,7.78667 1.08811,12.24523 -2e-5,5.84786 -0.64525,10.46278 -1.93199,13.83506 -0.77171,2.08048 -1.63651,3.35145 -2.59366,3.81545 -1.04378,0.38383 -2.34639,0.1651 -3.90478,-0.65241 0,0 -5.1699,-2.71206 -5.1699,-2.71206 m 3.40336,-40.26368 c 0,0 1.07352,0.49507 1.07352,0.49507 1.27901,0.58986 2.21681,0.111 2.81048,-1.44041 0.60462,-1.58159 0.90735,-4.16824 0.90736,-7.7578 -1e-5,-3.49331 -0.3077,-6.27138 -0.92222,-8.33141 -0.61341,-2.08813 -1.50181,-3.38041 -2.66303,-3.87846 0,0 -1.20611,-0.51723 -1.20611,-0.51723 0,0 0,21.43024 0,21.43024 m 0,31.59642 c 0,0 2.12098,1.0792 2.1209
 8,1.0792 1.56006,0.79381 2.71009,0.38538 3.44582,-1.23071 0.77722,-1.76027 1.16653,-4.29727 1.16654,-7.60796 -1e-5,-3.2142 -0.37434,-6.09507 -1.12175,-8.63833 -0.7259,-2.49601 -2.01962,-4.18458 -3.87458,-5.06609 0,0 -1.73701,-0.82543 -1.73701,-0.82543 0,0 0,22.28932 0,22.28932"
+-         inkscape:connector-curvature="0" />
++         id="path10970" />
+       <path
+-         id="path10972"
++         inkscape:connector-curvature="0"
+          d="m 272.95516,318.05887 c 0,0 0,27.38443 0,27.38443 -10e-6,7.90343 0.98616,12.3602 2.9671,13.3747 1.99248,1.02041 2.99308,-2.45348 2.9931,-10.42612 0,0 0,-27.62428 0,-27.62428 0,0 3.5597,1.61778 3.5597,1.61778 0,0 0,28.01587 0,28.01587 -2e-5,3.87456 -0.15371,7.14154 -0.46088,9.79921 -0.29635,2.363 -0.80903,4.36412 -1.53709,6.00225 -1.19955,2.64012 -2.71925,3.47147 -4.55483,2.50486 -1.81544,-0.95602 -3.30722,-3.35739 -4.47951,-7.19797 -0.71785,-2.35856 -1.22454,-4.84843 -1.52104,-7.47161 -0.28603,-2.35571 -0.42896,-5.70986 -0.42895,-10.06389 0,0 0,-27.48878 0,-27.48878 0,0 3.4624,1.57355 3.4624,1.57355"
+-         inkscape:connector-curvature="0" />
++         id="path10972" />
+       <path
+-         id="path10974"
++         inkscape:connector-curvature="0"
+          d="m 296.26263,337.06199 c 0,0 -3.06393,3.56502 -3.06393,3.56502 -0.48078,-3.25229 -1.07536,-5.04233 -1.78317,-5.37295 -0.33707,-0.15741 -0.62496,0.06 -0.86377,0.6519 -0.23866,0.55807 -0.35792,1.3727 -0.35791,2.44422 -10e-6,1.87525 0.70533,4.07067 2.12031,6.59386 1.95771,3.53383 3.28179,6.57062 3.96502,9.09921 0.68454,2.53353 1.02731,5.66263 1.02732,9.38364 -1e-5,4.7697 -0.5748,8.46498 -1.72155,11.07953 -1.11013,2.45482 -2.44639,3.26727 -4.00621,2.44587 -2.65634,-1.39883 -4.52528,-6.3666 -5.61934,-14.89109 0,0 3.09805,-2.88498 3.09805,-2.88498 0.43247,2.55923 0.76259,4.2157 0.99008,4.96747 0.44455,1.49948 0.97659,2.40845 1.59653,2.72594 1.24315,0.63666 1.86639,-0.79371 1.8664,-4.29282 -1e-5,-2.0187 -0.48121,-4.143 -1.44161,-6.36829 -0.37037,-0.75441 -0.74034,-1.49123 -1.10991,-2.21054 -0.3692,-0.71854 -0.74342,-1.45572 -1.12265,-2.21154 -1.05967,-2.12522 -1.80382,-4.09186 -2.23449,-5.90308 -0.54834,-2.29933 -0.82218,-5.04714 -0.82218,-8.2461 0,-4.23189 0.46728,-7.5
 1461 1.40371,-9.85292 0.96057,-2.33469 2.12977,-3.19317 3.50971,-2.56876 2.04183,0.92403 3.56729,4.86919 4.56959,11.84641"
+-         inkscape:connector-curvature="0" />
++         id="path10974" />
+       <path
+-         id="path10976"
++         inkscape:connector-curvature="0"
+          d="m 305.87224,373.74548 c 0,0 -7.36895,-44.07576 -7.36895,-44.07576 0,0 4.37264,1.98723 4.37264,1.98723 0,0 5.05922,31.14284 5.05922,31.14284 0,0 4.78506,-26.66891 4.78506,-26.66891 0,0 4.42827,2.01251 4.42827,2.01251 0,0 -13.36109,70.94431 -13.36109,70.94431 0,0 -4.31706,-2.42938 -4.31706,-2.42938 0,0 6.40191,-32.91284 6.40191,-32.91284"
+-         inkscape:connector-curvature="0" />
++         id="path10976" />
+       <path
+-         id="path10978"
++         inkscape:connector-curvature="0"
+          d="m 320.58526,390.7595 c 0,0 0,-80.9319 0,-80.9319 0,0 4.13158,1.70815 4.13158,1.70815 1.85533,0.76714 3.34037,1.80475 4.45055,3.11286 1.12564,1.31726 2.07847,3.1499 2.85713,5.49865 0.79249,2.43006 1.42159,5.31052 1.88649,8.64052 0.47771,3.37527 0.7168,6.68514 0.71682,9.9264 -2e-5,5.91271 -0.77803,10.55984 -2.32917,13.93073 1.50217,2.19251 2.69114,5.36674 3.56386,9.52332 0.88707,4.13662 1.33141,8.67481 1.33143,13.60714 -2e-5,6.46928 -0.78959,11.53605 -2.36369,15.18868 -0.94375,2.25405 -2.00105,3.60684 -3.17093,4.06153 -1.27537,0.36067 -2.8664,0.0396 -4.769,-0.95852 0,0 -6.30507,-3.30756 -6.30507,-3.30756 m 4.14949,-44.2658 c 0,0 1.3098,0.60403 1.3098,0.60403 1.5611,0.71995 2.70612,0.24091 3.43115,-1.44195 0.73854,-1.71596 1.10838,-4.55903 1.10839,-8.52665 -1e-5,-3.86122 -0.37591,-6.94748 -1.12654,-9.25529 -0.74912,-2.33835 -1.83384,-3.81055 -3.25119,-4.41845 0,0 -1.47161,-0.63109 -1.47161,-0.63109 0,0 0,23.6694 0,23.6694 m 0,34.8978 c 0,0 2.58822,1.31694 2.58822,1
 .31694 1.90485,0.96926 3.30964,0.5858 4.20862,-1.15726 0.94991,-1.90043 1.4258,-4.68271 1.42581,-8.3432 -1e-5,-3.55382 -0.4576,-6.7602 -1.37107,-9.61384 -0.88698,-2.79955 -2.46728,-4.73743 -4.73203,-5.81367 0,0 -2.11955,-1.00721 -2.11955,-1.00721 0,0 0,24.61824 0,24.61824"
+-         inkscape:connector-curvature="0" />
++         id="path10978" />
+       <path
+-         id="path10980"
++         inkscape:connector-curvature="0"
+          d="m 341.02978,374.86334 c 0,-7.58031 0.94324,-13.58541 2.83689,-18.03209 1.90324,-4.46909 4.23548,-6.08903 7.00465,-4.83597 2.80241,1.26822 5.19693,5.08204 7.17562,11.4591 1.9627,6.39795 2.94785,13.61113 2.94787,21.61494 -2e-5,8.07762 -0.99173,14.34113 -2.96745,18.7734 -1.97859,4.36606 -4.39233,5.78851 -7.23288,4.29267 -2.79403,-1.47134 -5.11934,-5.407 -6.98438,-11.79134 -1.85584,-6.2808 -2.78032,-13.43331 -2.78032,-21.48071 m 4.32968,2.33405 c -1e-5,5.27553 0.49258,9.69619 1.47972,13.26896 1.01512,3.63141 2.358,5.87802 4.03214,6.7354 1.6944,0.86776 3.0541,0.011 4.07547,-2.57854 1.02408,-2.59641 1.53716,-6.50064 1.53718,-11.70745 -2e-5,-5.20678 -0.5131,-9.61348 -1.53718,-13.21288 -1.03428,-3.63232 -2.39394,-5.83885 -4.07547,-6.62442 -1.64864,-0.77008 -2.97891,0.16745 -3.99412,2.80484 -1.01252,2.63034 -1.51775,6.39995 -1.51774,11.31409"
+-         inkscape:connector-curvature="0" />
++         id="path10980" />
+       <path
+-         id="path10982"
++         inkscape:connector-curvature="0"
+          d="m 371.81801,388.06805 c 0,0 -7.03657,-28.27692 -7.03657,-28.27692 0,0 5.37653,2.44347 5.37653,2.44347 0,0 4.40854,17.99359 4.40854,17.99359 0,0 4.54148,-13.92608 4.54148,-13.92608 0,0 5.7463,2.61152 5.7463,2.61152 0,0 -7.47868,21.85902 -7.47868,21.85902 0,0 8.6759,34.32953 8.6759,34.32953 0,0 -5.59774,-2.9365 -5.59774,-2.9365 0,0 -5.88726,-23.58269 -5.88726,-23.58269 0,0 -5.94081,17.37785 -5.94081,17.37785 0,0 -5.49434,-2.88225 -5.49434,-2.88225 0,0 8.68665,-25.01054 8.68665,-25.01054"
+-         inkscape:connector-curvature="0" />
++         id="path10982" />
+     </g>
+   </g>
+ </svg>
+diff -uNr docker-0.6.2/docs/theme/docker/layout.html docker-devmapper/docs/theme/docker/layout.html
+--- docker-0.6.2/docs/theme/docker/layout.html	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/docs/theme/docker/layout.html	2013-09-23 10:37:38.736306794 -0500
+@@ -6,7 +6,6 @@
+ <head>
+     <meta charset="utf-8">
+     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+     <meta name="google-site-verification" content="UxV66EKuPe87dgnH1sbrldrx6VsoWMrx5NjwkgUFxXI" />
+ 
+     <title>{{ meta['title'] if meta and meta['title'] else title }} - Docker Documentation</title>
+@@ -114,6 +113,10 @@
+ 	    <form>
+ 	      <input type="text" id="st-search-input" class="st-search-input span3" style="width:160px;" />
+ 	    </form>
++	    <a href="http://swiftype.com?ref=pb">
++	      <img id="swiftype-img" src="http://swiftype.com/assets/media/swiftype-logo-lightbg-small.png"
++	      alt="Search by Swiftype" /> 
++	    </a>
+         </div>
+ 
+         <!-- body block -->
+diff -uNr docker-0.6.2/FIXME docker-devmapper/FIXME
+--- docker-0.6.2/FIXME	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/FIXME	2013-09-23 10:37:38.639307063 -0500
+@@ -34,4 +34,3 @@
+ * entry point config
+ * bring back git revision info, looks like it was lost
+ * Clean up the ProgressReader api, it's a PITA to use
+-* Use netlink instead of iproute2/iptables (#925)
+diff -uNr docker-0.6.2/graph_test.go docker-devmapper/graph_test.go
+--- docker-0.6.2/graph_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/graph_test.go	2013-09-23 10:37:38.652307027 -0500
+@@ -121,6 +121,9 @@
+ }
+ 
+ func TestMount(t *testing.T) {
++	runtime := mkRuntime(t)
++	defer nuke(runtime)
++
+ 	graph := tempGraph(t)
+ 	defer os.RemoveAll(graph.Root)
+ 	archive, err := fakeTar()
+@@ -144,12 +147,12 @@
+ 	if err := os.MkdirAll(rw, 0700); err != nil {
+ 		t.Fatal(err)
+ 	}
+-	if err := image.Mount(rootfs, rw); err != nil {
++	if err := image.Mount(runtime, rootfs, rw, "testing"); err != nil {
+ 		t.Fatal(err)
+ 	}
+ 	// FIXME: test for mount contents
+ 	defer func() {
+-		if err := Unmount(rootfs); err != nil {
++		if err := image.Unmount(runtime, rootfs, "testing"); err != nil {
+ 			t.Error(err)
+ 		}
+ 	}()
+diff -uNr docker-0.6.2/hack/dind docker-devmapper/hack/dind
+--- docker-0.6.2/hack/dind	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/dind	1969-12-31 18:00:00.000000000 -0600
+@@ -1,59 +0,0 @@
+-#!/bin/bash
+-
+-# DinD: a wrapper script which allows docker to be run inside a docker container.
+-# Original version by Jerome Petazzoni <jerome at dotcloud.com>
+-# See the blog post: http://blog.docker.io/2013/09/docker-can-now-run-within-docker/
+-#
+-# This script should be executed inside a docker container in privilieged mode
+-# ('docker run -privileged', introduced in docker 0.6).
+-
+-# Usage: dind CMD [ARG...]
+-
+-# First, make sure that cgroups are mounted correctly.
+-CGROUP=/sys/fs/cgroup
+-
+-[ -d $CGROUP ] || 
+-	mkdir $CGROUP
+-
+-mountpoint -q $CGROUP || 
+-	mount -n -t tmpfs -o uid=0,gid=0,mode=0755 cgroup $CGROUP || {
+-		echo "Could not make a tmpfs mount. Did you use -privileged?"
+-		exit 1
+-	}
+-
+-# Mount the cgroup hierarchies exactly as they are in the parent system.
+-for SUBSYS in $(cut -d: -f2 /proc/1/cgroup)
+-do
+-	[ -d $CGROUP/$SUBSYS ] || mkdir $CGROUP/$SUBSYS
+-	mountpoint -q $CGROUP/$SUBSYS || 
+-		mount -n -t cgroup -o $SUBSYS cgroup $CGROUP/$SUBSYS
+-done
+-
+-# Note: as I write those lines, the LXC userland tools cannot setup
+-# a "sub-container" properly if the "devices" cgroup is not in its
+-# own hierarchy. Let's detect this and issue a warning.
+-grep -q :devices: /proc/1/cgroup ||
+-	echo "WARNING: the 'devices' cgroup should be in its own hierarchy."
+-grep -qw devices /proc/1/cgroup ||
+-	echo "WARNING: it looks like the 'devices' cgroup is not mounted."
+-
+-# Now, close extraneous file descriptors.
+-pushd /proc/self/fd
+-for FD in *
+-do
+-	case "$FD" in
+-	# Keep stdin/stdout/stderr
+-	[012])
+-		;;
+-	# Nuke everything else
+-	*)
+-		eval exec "$FD>&-"
+-		;;
+-	esac
+-done
+-popd
+-
+-# Mount /tmp
+-mount -t tmpfs none /tmp
+-
+-exec $*
+diff -uNr docker-0.6.2/hack/MAINTAINERS docker-devmapper/hack/MAINTAINERS
+--- docker-0.6.2/hack/MAINTAINERS	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/MAINTAINERS	1969-12-31 18:00:00.000000000 -0600
+@@ -1 +0,0 @@
+-Solomon Hykes <solomon at dotcloud.com> (@shykes)
+diff -uNr docker-0.6.2/hack/make/binary docker-devmapper/hack/make/binary
+--- docker-0.6.2/hack/make/binary	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/make/binary	1969-12-31 18:00:00.000000000 -0600
+@@ -1,4 +0,0 @@
+-
+-DEST=$1
+-
+-go build -o $DEST/docker-$VERSION -ldflags "$LDFLAGS" ./docker
+diff -uNr docker-0.6.2/hack/make/README.md docker-devmapper/hack/make/README.md
+--- docker-0.6.2/hack/make/README.md	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/make/README.md	1969-12-31 18:00:00.000000000 -0600
+@@ -1,17 +0,0 @@
+-This directory holds scripts called by `make.sh` in the parent directory.
+-
+-Each script is named after the bundle it creates.
+-They should not be called directly - instead, pass it as argument to make.sh, for example:
+-
+-```
+-./hack/make.sh test
+-./hack/make.sh binary ubuntu
+-
+-# Or to run all bundles:
+-./hack/make.sh
+-```
+-
+-To add a bundle:
+-
+-* Create a shell-compatible file here
+-* Add it to $DEFAULT_BUNDLES in make.sh
+diff -uNr docker-0.6.2/hack/make/test docker-devmapper/hack/make/test
+--- docker-0.6.2/hack/make/test	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/make/test	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-DEST=$1
+-
+-set -e
+-
+-# Run Docker's test suite, including sub-packages, and store their output as a bundle
+-bundle_test() {
+-	{
+-		date
+-		for test_dir in $(find_test_dirs); do (
+-			set -x
+-			cd $test_dir
+-			go test -v -ldflags "$LDFLAGS"
+-		)  done
+-	} 2>&1 | tee $DEST/test.log
+-}
+-
+-
+-# This helper function walks the current directory looking for directories
+-# holding Go test files, and prints their paths on standard output, one per
+-# line.
+-find_test_dirs() {
+-       find . -name '*_test.go' | grep -v '^./vendor' |
+-               { while read f; do dirname $f; done; } |
+-               sort -u
+-}
+-
+-bundle_test
+diff -uNr docker-0.6.2/hack/make/ubuntu docker-devmapper/hack/make/ubuntu
+--- docker-0.6.2/hack/make/ubuntu	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/make/ubuntu	1969-12-31 18:00:00.000000000 -0600
+@@ -1,94 +0,0 @@
+-#!/bin/sh
+-
+-DEST=$1
+-
+-PKGVERSION="$VERSION"
+-if test -n "$(git status --porcelain)"
+-then
+-	PKGVERSION="$PKGVERSION-$(date +%Y%m%d%H%M%S)-$GITCOMMIT"
+-fi
+-
+-PACKAGE_ARCHITECTURE="$(dpkg-architecture -qDEB_HOST_ARCH)"
+-PACKAGE_URL="http://www.docker.io/"
+-PACKAGE_MAINTAINER="docker at dotcloud.com"
+-PACKAGE_DESCRIPTION="lxc-docker is a Linux container runtime
+-Docker complements LXC with a high-level API which operates at the process
+-level. It runs unix processes with strong guarantees of isolation and
+-repeatability across servers.
+-Docker is a great building block for automating distributed systems:
+-large-scale web deployments, database clusters, continuous deployment systems,
+-private PaaS, service-oriented architectures, etc."
+-
+-UPSTART_SCRIPT='description     "Docker daemon"
+-
+-start on filesystem and started lxc-net
+-stop on runlevel [!2345]
+-
+-respawn
+-
+-script
+-    /usr/bin/docker -d
+-end script
+-'
+-
+-# Build docker as an ubuntu package using FPM and REPREPRO (sue me).
+-# bundle_binary must be called first.
+-bundle_ubuntu() {
+-	DIR=$DEST/build
+-
+-	# Generate an upstart config file (ubuntu-specific)
+-	mkdir -p $DIR/etc/init
+-	echo "$UPSTART_SCRIPT" > $DIR/etc/init/docker.conf
+-
+-	# Copy the binary
+-	# This will fail if the binary bundle hasn't been built
+-	mkdir -p $DIR/usr/bin
+-	# Copy the binary
+-	# This will fail if the binary bundle hasn't been built
+-	cp $DEST/../binary/docker-$VERSION $DIR/usr/bin/docker
+-
+-	# Generate postinstall/prerm scripts
+-	cat >/tmp/postinstall <<EOF
+-#!/bin/sh
+-/sbin/stop docker || true
+-/sbin/start docker
+-EOF
+-	cat >/tmp/prerm <<EOF
+-#!/bin/sh
+-/sbin/stop docker || true
+-EOF
+-	chmod +x /tmp/postinstall /tmp/prerm
+-
+-	(
+-		cd $DEST
+-		fpm -s dir -C $DIR \
+-		    --name lxc-docker-$VERSION --version $PKGVERSION \
+-		    --after-install /tmp/postinstall \
+-		    --before-remove /tmp/prerm \
+-		    --architecture "$PACKAGE_ARCHITECTURE" \
+-		    --prefix / \
+-		    --depends lxc --depends aufs-tools \
+-		    --description "$PACKAGE_DESCRIPTION" \
+-		    --maintainer "$PACKAGE_MAINTAINER" \
+-		    --conflicts lxc-docker-virtual-package \
+-		    --provides lxc-docker \
+-		    --provides lxc-docker-virtual-package \
+-		    --replaces lxc-docker \
+-		    --replaces lxc-docker-virtual-package \
+-		    --url "$PACKAGE_URL" \
+-		    --vendor "$PACKAGE_VENDOR" \
+-		    -t deb .
+-		mkdir empty
+-		fpm -s dir -C empty \
+-		    --name lxc-docker --version $PKGVERSION \
+-		    --architecture "$PACKAGE_ARCHITECTURE" \
+-		    --depends lxc-docker-$VERSION \
+-		    --description "$PACKAGE_DESCRIPTION" \
+-		    --maintainer "$PACKAGE_MAINTAINER" \
+-		    --url "$PACKAGE_URL" \
+-		    --vendor "$PACKAGE_VENDOR" \
+-		    -t deb .
+-	)
+-}
+-
+-bundle_ubuntu
+diff -uNr docker-0.6.2/hack/make.sh docker-devmapper/hack/make.sh
+--- docker-0.6.2/hack/make.sh	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/make.sh	1969-12-31 18:00:00.000000000 -0600
+@@ -1,91 +0,0 @@
+-#!/bin/bash
+-
+-# This script builds various binary artifacts from a checkout of the docker
+-# source code.
+-#
+-# Requirements:
+-# - The current directory should be a checkout of the docker source code
+-#   (http://github.com/dotcloud/docker). Whatever version is checked out
+-#   will be built.
+-# - The VERSION file, at the root of the repository, should exist, and
+-#   will be used as Docker binary version and package version.
+-# - The hash of the git commit will also be included in the Docker binary,
+-#   with the suffix -dirty if the repository isn't clean.
+-# - The script is intented to be run inside the docker container specified
+-#   in the Dockerfile at the root of the source. In other words:
+-#   DO NOT CALL THIS SCRIPT DIRECTLY.
+-# - The right way to call this script is to invoke "docker build ." from
+-#   your checkout of the Docker repository, and then
+-#   "docker run hack/make.sh" in the resulting container image. 
+-# 
+-
+-set -e
+-
+-# We're a nice, sexy, little shell script, and people might try to run us;
+-# but really, they shouldn't. We want to be in a container!
+-RESOLVCONF=$(readlink --canonicalize /etc/resolv.conf)
+-grep -q "$RESOLVCONF" /proc/mounts || {
+-	echo "# WARNING! I don't seem to be running in a docker container.
+-	echo "# The result of this command might be an incorrect build, and will not be officially supported."
+-	echo "# Try this: 'docker build -t docker . && docker run docker ./hack/make.sh'
+-}
+-
+-# List of bundles to create when no argument is passed
+-DEFAULT_BUNDLES=(
+-	test
+-	binary
+-	ubuntu
+-)
+-
+-VERSION=$(cat ./VERSION)
+-GITCOMMIT=$(git rev-parse --short HEAD)
+-if test -n "$(git status --porcelain)"
+-then
+-	GITCOMMIT="$GITCOMMIT-dirty"
+-fi
+-
+-# Use these flags when compiling the tests and final binary
+-LDFLAGS="-X main.GITCOMMIT $GITCOMMIT -X main.VERSION $VERSION -d -w"
+-
+-
+-bundle() {
+-	bundlescript=$1
+-	bundle=$(basename $bundlescript)
+-	echo "---> Making bundle: $bundle"
+-	mkdir -p bundles/$VERSION/$bundle
+-	source $bundlescript $(pwd)/bundles/$VERSION/$bundle
+-}
+-
+-main() {
+-
+-	# We want this to fail if the bundles already exist.
+-	# This is to avoid mixing bundles from different versions of the code.
+-	mkdir -p bundles
+-	if [ -e "bundles/$VERSION" ]; then
+-		echo "bundles/$VERSION already exists. Removing."
+-		rm -fr bundles/$VERSION && mkdir bundles/$VERSION || exit 1
+-	fi
+-	SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+-	if [ $# -lt 1 ]; then
+-		bundles=($DEFAULT_BUNDLES)
+-	else
+-		bundles=($@)
+-	fi
+-	for bundle in ${bundles[@]}; do
+-		bundle $SCRIPTDIR/make/$bundle
+-	done
+-	cat <<EOF
+-###############################################################################
+-Now run the resulting image, making sure that you set AWS_S3_BUCKET,
+-AWS_ACCESS_KEY, and AWS_SECRET_KEY environment variables:
+-
+-docker run -e AWS_S3_BUCKET=get-staging.docker.io \\
+-              AWS_ACCESS_KEY=AKI1234... \\
+-              AWS_SECRET_KEY=sEs3mE... \\
+-              GPG_PASSPHRASE=sesame... \\
+-              image_id_or_name
+-###############################################################################
+-EOF
+-}
+-
+-main "$@"
+diff -uNr docker-0.6.2/hack/PACKAGERS.md docker-devmapper/hack/PACKAGERS.md
+--- docker-0.6.2/hack/PACKAGERS.md	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/PACKAGERS.md	1969-12-31 18:00:00.000000000 -0600
+@@ -1,137 +0,0 @@
+-Dear packager.
+-
+-If you are looking to make docker available on your favorite software distribution,
+-this document is for you. It summarizes the requirements for building and running
+-docker.
+-
+-## Getting started
+-
+-We really want to help you package Docker successfully. Before anything, a good first step
+-is to introduce yourself on the [docker-dev mailing list](https://groups.google.com/forum/?fromgroups#!forum/docker-dev)
+-, explain what you''re trying to achieve, and tell us how we can help. Don''t worry, we don''t bite!
+-There might even be someone already working on packaging for the same distro!
+-
+-You can also join the IRC channel - #docker and #docker-dev on Freenode are both active and friendly.
+-
+-## Package name
+-
+-If possible, your package should be called "docker". If that name is already taken, a second
+-choice is "lxc-docker".
+-
+-## Official build vs distro build
+-
+-The Docker project maintains its own build and release toolchain. It is pretty neat and entirely
+-based on Docker (surprise!). This toolchain is the canonical way to build Docker, and the only
+-method supported by the development team. We encourage you to give it a try, and if the circumstances
+-allow you to use it, we recommend that you do.
+-
+-You might not be able to use the official build toolchain - usually because your distribution has a
+-toolchain and packaging policy of its own. We get it! Your house, your rules. The rest of this document
+-should give you the information you need to package Docker your way, without denaturing it in
+-the process.
+-
+-## System build dependencies
+-
+-To build docker, you will need the following system dependencies
+-
+-* An amd64 machine
+-* A recent version of git and mercurial
+-* Go version 1.1.2
+-* A clean checkout of the source must be added to a valid Go [workspace](http://golang.org/doc/code.html#Workspaces)
+-under the path *src/github.com/dotcloud/docker*. See 
+-
+-
+-## Go dependencies
+-
+-All Go dependencies are vendored under ./vendor. They are used by the official build,
+-so the source of truth for the current version is whatever is in ./vendor.
+-
+-To use the vendored dependencies, simply make sure the path to ./vendor is included in $GOPATH.
+-
+-If you would rather package these dependencies yourself, take a look at ./hack/vendor.sh for an
+-easy-to-parse list of the exact version for each.
+-
+-NOTE: if you''re not able to package the exact version (to the exact commit) of a given dependency,
+-please get in touch so we can remediate! Who knows what discrepancies can be caused by even the
+-slightest deviation. We promise to do our best to make everybody happy.
+-
+-
+-## Disabling CGO
+-
+-Make sure to disable CGO on your system, and then recompile the standard library on the build
+-machine:
+-
+-```bash
+-export CGO_ENABLED=0
+-cd /tmp && echo 'package main' > t.go && go test -a -i -v
+-```
+-
+-## Building Docker
+-
+-To build the docker binary, run the following command with the source checkout as the
+-working directory:
+-
+-```
+-./hack/make.sh binary
+-```
+-
+-This will create a static binary under *./bundles/$VERSION/binary/docker-$VERSION*, where
+-*$VERSION* is the contents of the file *./VERSION*.
+-
+-You are encouraged to use ./hack/make.sh without modification. If you must absolutely write
+-your own script (are you really, really sure you need to? make.sh is really not that complicated),
+-then please take care the respect the following:
+-
+-* In *./hack/make.sh*: $LDFLAGS, $VERSION and $GITCOMMIT
+-* In *./hack/make/binary*: the exact build command to run
+-
+-You may be tempted to tweak these settings. In particular, being a rigorous maintainer, you may want
+-to disable static linking. Please don''t! Docker *needs* to be statically linked to function properly.
+-You would do the users of your distro a disservice and "void the docker warranty" by changing the flags.
+-
+-A good comparison is Busybox: all distros package it as a statically linked binary, because it just
+-makes sense. Docker is the same way.
+-
+-## Testing Docker
+-
+-Before releasing your binary, make sure to run the tests! Run the following command with the source
+-checkout as the working directory:
+-
+-```bash
+-./hack/make.sh test
+-```
+-
+-The test suite includes both live integration tests and unit tests, so you will need all runtime
+-dependencies to be installed (see below).
+-
+-The test suite will also download a small test container, so you will need internet connectivity.
+-
+-
+-## Runtime dependencies
+-
+-To run properly, docker needs the following software to be installed at runtime:
+-
+-* GNU Tar version 1.26 or later
+-* iproute2 version 3.5 or later (build after 2012-05-21), and specifically the "ip" utility.
+-* iptables version 1.4 or later
+-* The lxc utility scripts (http://lxc.sourceforge.net) version 0.8 or later.
+-* Git version 1.7 or later 
+-
+-## Kernel dependencies
+-
+-Docker in daemon mode has specific kernel requirements. For details, see
+-http://docs.docker.io/en/latest/installation/kernel/
+-
+-Note that Docker also has a client mode, which can run on virtually any linux kernel (it even builds
+-on OSX!).
+-
+-## Init script
+-
+-Docker expects to run as a daemon at machine startup. Your package will need to include a script
+-for your distro''s process supervisor of choice.
+-
+-Docker should be run as root, with the following arguments:
+-
+-```
+-docker -d
+-```
+diff -uNr docker-0.6.2/hack/release/make.sh docker-devmapper/hack/release/make.sh
+--- docker-0.6.2/hack/release/make.sh	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/hack/release/make.sh	2013-09-23 10:37:39.518304619 -0500
+@@ -0,0 +1,179 @@
++#!/bin/sh
++
++# This script builds various binary artifacts from a checkout of the docker
++# source code.
++#
++# Requirements:
++# - The current directory should be a checkout of the docker source code
++#   (http://github.com/dotcloud/docker). Whatever version is checked out
++#   will be built.
++# - The VERSION file, at the root of the repository, should exist, and
++#   will be used as Docker binary version and package version.
++# - The hash of the git commit will also be included in the Docker binary,
++#   with the suffix -dirty if the repository isn't clean.
++# - The script is intented to be run as part of a docker build, as defined
++#   in the Dockerfile at the root of the source. In other words:
++#   DO NOT CALL THIS SCRIPT DIRECTLY.
++# - The right way to call this script is to invoke "docker build ." from
++#   your checkout of the Docker repository.
++# 
++
++set -e
++
++# We're a nice, sexy, little shell script, and people might try to run us;
++# but really, they shouldn't. We want to be in a container!
++RESOLVCONF=$(readlink --canonicalize /etc/resolv.conf)
++grep -q "$RESOLVCONF" /proc/mounts || {
++	echo "# I will only run within a container."
++	echo "# Try this instead:"
++	echo "docker build ."
++	exit 1
++}
++
++VERSION=$(cat ./VERSION)
++PKGVERSION="$VERSION"
++GITCOMMIT=$(git rev-parse --short HEAD)
++if test -n "$(git status --porcelain)"
++then
++	GITCOMMIT="$GITCOMMIT-dirty"
++	PKGVERSION="$PKGVERSION-$(date +%Y%m%d%H%M%S)-$GITCOMMIT"
++fi
++
++PACKAGE_ARCHITECTURE="$(dpkg-architecture -qDEB_HOST_ARCH)"
++PACKAGE_URL="http://www.docker.io/"
++PACKAGE_MAINTAINER="docker at dotcloud.com"
++PACKAGE_DESCRIPTION="lxc-docker is a Linux container runtime
++Docker complements LXC with a high-level API which operates at the process
++level. It runs unix processes with strong guarantees of isolation and
++repeatability across servers.
++Docker is a great building block for automating distributed systems:
++large-scale web deployments, database clusters, continuous deployment systems,
++private PaaS, service-oriented architectures, etc."
++
++UPSTART_SCRIPT='description     "Docker daemon"
++
++start on filesystem and started lxc-net
++stop on runlevel [!2345]
++
++respawn
++
++script
++    /usr/bin/docker -d
++end script
++'
++
++# Each "bundle" is a different type of build artefact: static binary, Ubuntu
++# package, etc.
++
++# Build Docker as a static binary file
++bundle_binary() {
++	mkdir -p bundles/$VERSION/binary
++	go build -o bundles/$VERSION/binary/docker-$VERSION \
++		-ldflags "-X main.GITCOMMIT $GITCOMMIT -X main.VERSION $VERSION -d -w" \
++		./docker
++}
++
++
++# Build Docker's test suite as a collection of binary files (one per
++# sub-package to test)
++bundle_test() {
++	mkdir -p bundles/$VERSION/test
++	for test_dir in $(find_test_dirs); do
++		test_binary=$(
++			cd $test_dir
++			go test -c -v -ldflags "-X main.GITCOMMIT $GITCOMMIT -X main.VERSION $VERSION -d -w" >&2
++			find . -maxdepth 1 -type f -name '*.test' -executable
++		)
++		cp $test_dir/$test_binary bundles/$VERSION/test/
++	done
++}
++
++# Build docker as an ubuntu package using FPM and REPREPRO (sue me).
++# bundle_binary must be called first.
++bundle_ubuntu() {
++	mkdir -p bundles/$VERSION/ubuntu
++
++	DIR=$(pwd)/bundles/$VERSION/ubuntu/build
++
++	# Generate an upstart config file (ubuntu-specific)
++	mkdir -p $DIR/etc/init
++	echo "$UPSTART_SCRIPT" > $DIR/etc/init/docker.conf
++
++	# Copy the binary
++	mkdir -p $DIR/usr/bin
++	cp bundles/$VERSION/binary/docker-$VERSION $DIR/usr/bin/docker
++
++	# Generate postinstall/prerm scripts
++	cat >/tmp/postinstall <<EOF
++#!/bin/sh
++/sbin/stop docker || true
++/sbin/start docker
++EOF
++	cat >/tmp/prerm <<EOF
++#!/bin/sh
++/sbin/stop docker || true
++EOF
++	chmod +x /tmp/postinstall /tmp/prerm
++
++	(
++		cd bundles/$VERSION/ubuntu
++		fpm -s dir -C $DIR \
++		    --name lxc-docker-$VERSION --version $PKGVERSION \
++		    --after-install /tmp/postinstall \
++		    --before-remove /tmp/prerm \
++		    --architecture "$PACKAGE_ARCHITECTURE" \
++		    --prefix / \
++		    --depends lxc --depends aufs-tools \
++		    --description "$PACKAGE_DESCRIPTION" \
++		    --maintainer "$PACKAGE_MAINTAINER" \
++		    --conflicts lxc-docker-virtual-package \
++		    --provides lxc-docker \
++		    --provides lxc-docker-virtual-package \
++		    --replaces lxc-docker \
++		    --replaces lxc-docker-virtual-package \
++		    --url "$PACKAGE_URL" \
++		    --vendor "$PACKAGE_VENDOR" \
++		    -t deb .
++		mkdir empty
++		fpm -s dir -C empty \
++		    --name lxc-docker --version $PKGVERSION \
++		    --architecture "$PACKAGE_ARCHITECTURE" \
++		    --depends lxc-docker-$VERSION \
++		    --description "$PACKAGE_DESCRIPTION" \
++		    --maintainer "$PACKAGE_MAINTAINER" \
++		    --url "$PACKAGE_URL" \
++		    --vendor "$PACKAGE_VENDOR" \
++		    -t deb .
++	)
++}
++
++
++# This helper function walks the current directory looking for directories
++# holding Go test files, and prints their paths on standard output, one per
++# line.
++find_test_dirs() {
++	find . -name '*_test.go' | 
++		{ while read f; do dirname $f; done; } | 
++		sort -u
++}
++
++
++main() {
++	bundle_binary
++	bundle_ubuntu
++	#bundle_test
++	cat <<EOF
++###############################################################################
++Now run the resulting image, making sure that you set AWS_S3_BUCKET,
++AWS_ACCESS_KEY, and AWS_SECRET_KEY environment variables:
++
++docker run -e AWS_S3_BUCKET=get-staging.docker.io \\
++              AWS_ACCESS_KEY=AKI1234... \\
++              AWS_SECRET_KEY=sEs3mE... \\
++              GPG_PASSPHRASE=sesame... \\
++              image_id_or_name
++###############################################################################
++EOF
++}
++
++main
+diff -uNr docker-0.6.2/hack/release/README.md docker-devmapper/hack/release/README.md
+--- docker-0.6.2/hack/release/README.md	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/hack/release/README.md	2013-09-23 10:37:39.525304600 -0500
+@@ -0,0 +1,106 @@
++## A maintainer's guide to releasing Docker
++
++So you're in charge of a Docker release? Cool. Here's what to do.
++
++If your experience deviates from this document, please document the changes
++to keep it up-to-date.
++
++
++### 1. Pull from master and create a release branch
++
++```bash
++git checkout master
++git pull
++git checkout -b bump_$VERSION
++```
++
++### 2. Update CHANGELOG.md
++
++You can run this command for reference:
++
++```bash
++LAST_VERSION=$(git tag | grep -E "v[0-9\.]+$" | sort -nr | head -n 1)
++git log $LAST_VERSION..HEAD
++```
++
++Each change should be formatted as ```BULLET CATEGORY: DESCRIPTION```
++
++* BULLET is either ```-```, ```+``` or ```*```, to indicate a bugfix,
++  new feature or upgrade, respectively.
++
++* CATEGORY should describe which part of the project is affected.
++  Valid categories are:
++  * Builder
++  * Documentation
++  * Hack
++  * Packaging
++  * Remote API
++  * Runtime
++
++* DESCRIPTION: a concise description of the change that is relevant to the 
++  end-user, using the present tense. Changes should be described in terms 
++  of how they affect the user, for example "new feature X which allows Y", 
++  "fixed bug which caused X", "increased performance of Y".
++
++EXAMPLES:
++
++```
+++ Builder: 'docker build -t FOO' applies the tag FOO to the newly built
++  container.
++* Runtime: improve detection of kernel version
++- Remote API: fix a bug in the optional unix socket transport
++```
++
++### 3. Change the contents of the VERSION file
++
++### 4. Run all tests
++
++```bash
++go test
++```
++
++### 5. Commit and create a pull request
++
++```bash
++git add CHANGELOG.md
++git commit -m "Bump version to $VERSION"
++git push origin bump_$VERSION
++```
++
++### 6. Get 2 other maintainers to validate the pull request
++
++### 7. Merge the pull request and apply tags
++
++```bash
++git checkout master
++git merge bump_$VERSION
++git tag -a v$VERSION # Don't forget the v!
++git tag -f -a latest
++git push
++git push --tags
++```
++
++### 8. Publish binaries
++
++To run this you will need access to the release credentials.
++Get them from [the infrastructure maintainers](
++https://github.com/dotcloud/docker/blob/master/hack/infrastructure/MAINTAINERS).
++
++```bash
++docker build -t releasedocker .
++docker run  \
++	-e AWS_S3_BUCKET=get-nightly.docker.io \
++	-e AWS_ACCESS_KEY=$(cat ~/.aws/access_key) \
++	-e AWS_SECRET_KEY=$(cat ~/.aws/secret_key) \
++	-e GPG_PASSPHRASE=supersecretsesame \
++	releasedocker
++```
++
++It will build and upload the binaries on the specified bucket (you should
++use get-nightly.docker.io for general testing, and once everything is fine,
++switch to get.docker.io).
++
++
++### 9. Rejoice!
++
++Congratulations! You're done.
+diff -uNr docker-0.6.2/hack/release/release.sh docker-devmapper/hack/release/release.sh
+--- docker-0.6.2/hack/release/release.sh	1969-12-31 18:00:00.000000000 -0600
++++ docker-devmapper/hack/release/release.sh	2013-09-23 10:37:39.527304594 -0500
+@@ -0,0 +1,175 @@
++#!/bin/sh
++
++# This script looks for bundles built by make.sh, and releases them on a
++# public S3 bucket.
++#
++# Bundles should be available for the VERSION string passed as argument.
++#
++# The correct way to call this script is inside a container built by the
++# official Dockerfile at the root of the Docker source code. The Dockerfile,
++# make.sh and release.sh should all be from the same source code revision.
++
++set -e
++
++# Print a usage message and exit.
++usage() {
++	cat <<EOF
++To run, I need:
++- to be in a container generated by the Dockerfile at the top of the Docker
++  repository;
++- to be provided with the name of an S3 bucket, in environment variable
++  AWS_S3_BUCKET;
++- to be provided with AWS credentials for this S3 bucket, in environment
++  variables AWS_ACCESS_KEY and AWS_SECRET_KEY;
++- the passphrase to unlock the GPG key which will sign the deb packages
++  (passed as environment variable GPG_PASSPHRASE);
++- a generous amount of good will and nice manners.
++The canonical way to run me is to run the image produced by the Dockerfile: e.g.:"
++
++docker run -e AWS_S3_BUCKET=get-staging.docker.io \\
++              AWS_ACCESS_KEY=AKI1234... \\
++              AWS_SECRET_KEY=sEs4mE... \\
++              GPG_PASSPHRASE=m0resEs4mE... \\
++              f0058411
++EOF
++	exit 1
++}
++
++[ "$AWS_S3_BUCKET" ] || usage
++[ "$AWS_ACCESS_KEY" ] || usage
++[ "$AWS_SECRET_KEY" ] || usage
++[ "$GPG_PASSPHRASE" ] || usage
++[ -d /go/src/github.com/dotcloud/docker/ ] || usage
++cd /go/src/github.com/dotcloud/docker/ 
++
++VERSION=$(cat VERSION)
++BUCKET=$AWS_S3_BUCKET
++
++setup_s3() {
++	# Try creating the bucket. Ignore errors (it might already exist).
++	s3cmd mb s3://$BUCKET 2>/dev/null || true
++	# Check access to the bucket.
++	# s3cmd has no useful exit status, so we cannot check that.
++	# Instead, we check if it outputs anything on standard output.
++	# (When there are problems, it uses standard error instead.)
++	s3cmd info s3://$BUCKET | grep -q .
++	# Make the bucket accessible through website endpoints.
++	s3cmd ws-create --ws-index index --ws-error error s3://$BUCKET
++}
++
++# write_to_s3 uploads the contents of standard input to the specified S3 url.
++write_to_s3() {
++	DEST=$1
++	F=`mktemp`
++	cat > $F
++	s3cmd --acl-public put $F $DEST
++	rm -f $F
++}
++
++s3_url() {
++	echo "http://$BUCKET.s3.amazonaws.com"
++}
++
++# Upload the 'ubuntu' bundle to S3:
++# 1. A full APT repository is published at $BUCKET/ubuntu/
++# 2. Instructions for using the APT repository are uploaded at $BUCKET/ubuntu/info
++release_ubuntu() {
++	# Make sure that we have our keys
++	mkdir -p /.gnupg/
++	s3cmd sync s3://$BUCKET/ubuntu/.gnupg/ /.gnupg/ || true
++	gpg --list-keys releasedocker >/dev/null || {
++		gpg --gen-key --batch <<EOF   
++Key-Type: RSA
++Key-Length: 2048
++Passphrase: $GPG_PASSPHRASE
++Name-Real: Docker Release Tool
++Name-Email: docker at dotcloud.com
++Name-Comment: releasedocker
++Expire-Date: 0
++%commit
++EOF
++	}
++
++	# Sign our packages
++	dpkg-sig -g "--passphrase $GPG_PASSPHRASE" -k releasedocker \
++		 --sign builder bundles/$VERSION/ubuntu/*.deb
++
++	# Setup the APT repo
++	APTDIR=bundles/$VERSION/ubuntu/apt
++	mkdir -p $APTDIR/conf $APTDIR/db
++	s3cmd sync s3://$BUCKET/ubuntu/db/ $APTDIR/db/ || true
++	cat > $APTDIR/conf/distributions <<EOF
++Codename: docker
++Components: main
++Architectures: amd64 i386
++EOF
++
++	# Add the DEB package to the APT repo
++	DEBFILE=bundles/$VERSION/ubuntu/lxc-docker*.deb
++	reprepro -b $APTDIR includedeb docker $DEBFILE
++
++	# Sign
++	for F in $(find $APTDIR -name Release)
++	do
++		gpg -u releasedocker --passphrase $GPG_PASSPHRASE \
++			--armor --sign --detach-sign \
++			--output $F.gpg $F
++	done
++
++	# Upload keys
++	s3cmd sync /.gnupg/ s3://$BUCKET/ubuntu/.gnupg/
++	gpg --armor --export releasedocker > bundles/$VERSION/ubuntu/gpg
++	s3cmd --acl-public put bundles/$VERSION/ubuntu/gpg s3://$BUCKET/gpg
++
++	# Upload repo
++	s3cmd --acl-public sync $APTDIR/ s3://$BUCKET/ubuntu/
++	cat <<EOF | write_to_s3 s3://$BUCKET/ubuntu/info
++# Add the repository to your APT sources
++echo deb $(s3_url $BUCKET)/ubuntu docker main > /etc/apt/sources.list.d/docker.list
++# Then import the repository key
++curl $(s3_url $BUCKET)/gpg | apt-key add -
++# Install docker
++apt-get update ; apt-get install -y lxc-docker
++EOF
++	echo "APT repository uploaded. Instructions available at $(s3_url $BUCKET)/ubuntu/info"
++}
++
++# Upload a static binary to S3
++release_binary() {
++	[ -e bundles/$VERSION ]
++	S3DIR=s3://$BUCKET/builds/Linux/x86_64
++	s3cmd --acl-public put bundles/$VERSION/binary/docker-$VERSION $S3DIR/docker-$VERSION
++	cat <<EOF | write_to_s3 s3://$BUCKET/builds/info
++# To install, run the following command as root:
++curl -O http://$BUCKET.s3.amazonaws.com/builds/Linux/x86_64/docker-$VERSION && chmod +x docker-$VERSION && sudo mv docker-$VERSION /usr/local/bin/docker
++# Then start docker in daemon mode:
++sudo /usr/local/bin/docker -d
++EOF
++	if [ -z "$NOLATEST" ]; then
++		echo "Copying docker-$VERSION to docker-latest"
++		s3cmd --acl-public cp $S3DIR/docker-$VERSION $S3DIR/docker-latest
++		echo "Advertising $VERSION on $BUCKET as most recent version"
++		echo $VERSION | write_to_s3 s3://$BUCKET/latest
++	fi
++}
++
++# Upload the index script
++release_index() {
++	(
++	if [ "$BUCKET" != "get.docker.io" ]
++	then
++		sed s,https://get.docker.io/,http://$BUCKET.s3.amazonaws.com/, contrib/install.sh
++	else
++		cat contrib/install.sh
++	fi
++	) | write_to_s3 s3://$BUCKET/index
++}
++
++main() {
++	setup_s3
++	release_binary
++	release_ubuntu
++	release_index
++}
++
++main
+diff -uNr docker-0.6.2/hack/RELEASE-CHECKLIST.md docker-devmapper/hack/RELEASE-CHECKLIST.md
+--- docker-0.6.2/hack/RELEASE-CHECKLIST.md	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/RELEASE-CHECKLIST.md	1969-12-31 18:00:00.000000000 -0600
+@@ -1,106 +0,0 @@
+-## A maintainer's guide to releasing Docker
+-
+-So you're in charge of a Docker release? Cool. Here's what to do.
+-
+-If your experience deviates from this document, please document the changes
+-to keep it up-to-date.
+-
+-
+-### 1. Pull from master and create a release branch
+-
+-```bash
+-git checkout master
+-git pull
+-git checkout -b bump_$VERSION
+-```
+-
+-### 2. Update CHANGELOG.md
+-
+-You can run this command for reference:
+-
+-```bash
+-LAST_VERSION=$(git tag | grep -E "v[0-9\.]+$" | sort -nr | head -n 1)
+-git log $LAST_VERSION..HEAD
+-```
+-
+-Each change should be formatted as ```BULLET CATEGORY: DESCRIPTION```
+-
+-* BULLET is either ```-```, ```+``` or ```*```, to indicate a bugfix,
+-  new feature or upgrade, respectively.
+-
+-* CATEGORY should describe which part of the project is affected.
+-  Valid categories are:
+-  * Builder
+-  * Documentation
+-  * Hack
+-  * Packaging
+-  * Remote API
+-  * Runtime
+-
+-* DESCRIPTION: a concise description of the change that is relevant to the 
+-  end-user, using the present tense. Changes should be described in terms 
+-  of how they affect the user, for example "new feature X which allows Y", 
+-  "fixed bug which caused X", "increased performance of Y".
+-
+-EXAMPLES:
+-
+-```
+-+ Builder: 'docker build -t FOO' applies the tag FOO to the newly built
+-  container.
+-* Runtime: improve detection of kernel version
+-- Remote API: fix a bug in the optional unix socket transport
+-```
+-
+-### 3. Change the contents of the VERSION file
+-
+-### 4. Run all tests
+-
+-```bash
+-go test
+-```
+-
+-### 5. Commit and create a pull request
+-
+-```bash
+-git add CHANGELOG.md
+-git commit -m "Bump version to $VERSION"
+-git push origin bump_$VERSION
+-```
+-
+-### 6. Get 2 other maintainers to validate the pull request
+-
+-### 7. Merge the pull request and apply tags
+-
+-```bash
+-git checkout master
+-git merge bump_$VERSION
+-git tag -a v$VERSION # Don't forget the v!
+-git tag -f -a latest
+-git push
+-git push --tags
+-```
+-
+-### 8. Publish binaries
+-
+-To run this you will need access to the release credentials.
+-Get them from [the infrastructure maintainers](
+-https://github.com/dotcloud/docker/blob/master/hack/infrastructure/MAINTAINERS).
+-
+-```bash
+-docker build -t releasedocker .
+-docker run  \
+-	-e AWS_S3_BUCKET=get-nightly.docker.io \
+-	-e AWS_ACCESS_KEY=$(cat ~/.aws/access_key) \
+-	-e AWS_SECRET_KEY=$(cat ~/.aws/secret_key) \
+-	-e GPG_PASSPHRASE=supersecretsesame \
+-	releasedocker
+-```
+-
+-It will build and upload the binaries on the specified bucket (you should
+-use get-nightly.docker.io for general testing, and once everything is fine,
+-switch to get.docker.io).
+-
+-
+-### 9. Rejoice!
+-
+-Congratulations! You're done.
+diff -uNr docker-0.6.2/hack/release.sh docker-devmapper/hack/release.sh
+--- docker-0.6.2/hack/release.sh	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/release.sh	1969-12-31 18:00:00.000000000 -0600
+@@ -1,182 +0,0 @@
+-#!/bin/sh
+-
+-# This script looks for bundles built by make.sh, and releases them on a
+-# public S3 bucket.
+-#
+-# Bundles should be available for the VERSION string passed as argument.
+-#
+-# The correct way to call this script is inside a container built by the
+-# official Dockerfile at the root of the Docker source code. The Dockerfile,
+-# make.sh and release.sh should all be from the same source code revision.
+-
+-set -e
+-
+-# Print a usage message and exit.
+-usage() {
+-	cat <<EOF
+-To run, I need:
+-- to be in a container generated by the Dockerfile at the top of the Docker
+-  repository;
+-- to be provided with the name of an S3 bucket, in environment variable
+-  AWS_S3_BUCKET;
+-- to be provided with AWS credentials for this S3 bucket, in environment
+-  variables AWS_ACCESS_KEY and AWS_SECRET_KEY;
+-- the passphrase to unlock the GPG key which will sign the deb packages
+-  (passed as environment variable GPG_PASSPHRASE);
+-- a generous amount of good will and nice manners.
+-The canonical way to run me is to run the image produced by the Dockerfile: e.g.:"
+-
+-docker run -e AWS_S3_BUCKET=get-staging.docker.io \\
+-              AWS_ACCESS_KEY=AKI1234... \\
+-              AWS_SECRET_KEY=sEs4mE... \\
+-              GPG_PASSPHRASE=m0resEs4mE... \\
+-              f0058411
+-EOF
+-	exit 1
+-}
+-
+-[ "$AWS_S3_BUCKET" ] || usage
+-[ "$AWS_ACCESS_KEY" ] || usage
+-[ "$AWS_SECRET_KEY" ] || usage
+-[ "$GPG_PASSPHRASE" ] || usage
+-[ -d /go/src/github.com/dotcloud/docker/ ] || usage
+-cd /go/src/github.com/dotcloud/docker/ 
+-
+-VERSION=$(cat VERSION)
+-BUCKET=$AWS_S3_BUCKET
+-
+-setup_s3() {
+-	# Try creating the bucket. Ignore errors (it might already exist).
+-	s3cmd mb s3://$BUCKET 2>/dev/null || true
+-	# Check access to the bucket.
+-	# s3cmd has no useful exit status, so we cannot check that.
+-	# Instead, we check if it outputs anything on standard output.
+-	# (When there are problems, it uses standard error instead.)
+-	s3cmd info s3://$BUCKET | grep -q .
+-	# Make the bucket accessible through website endpoints.
+-	s3cmd ws-create --ws-index index --ws-error error s3://$BUCKET
+-}
+-
+-# write_to_s3 uploads the contents of standard input to the specified S3 url.
+-write_to_s3() {
+-	DEST=$1
+-	F=`mktemp`
+-	cat > $F
+-	s3cmd --acl-public put $F $DEST
+-	rm -f $F
+-}
+-
+-s3_url() {
+-	echo "http://$BUCKET.s3.amazonaws.com"
+-}
+-
+-# Upload the 'ubuntu' bundle to S3:
+-# 1. A full APT repository is published at $BUCKET/ubuntu/
+-# 2. Instructions for using the APT repository are uploaded at $BUCKET/ubuntu/info
+-release_ubuntu() {
+-	# Make sure that we have our keys
+-	mkdir -p /.gnupg/
+-	s3cmd sync s3://$BUCKET/ubuntu/.gnupg/ /.gnupg/ || true
+-	gpg --list-keys releasedocker >/dev/null || {
+-		gpg --gen-key --batch <<EOF   
+-Key-Type: RSA
+-Key-Length: 2048
+-Passphrase: $GPG_PASSPHRASE
+-Name-Real: Docker Release Tool
+-Name-Email: docker at dotcloud.com
+-Name-Comment: releasedocker
+-Expire-Date: 0
+-%commit
+-EOF
+-	}
+-
+-	# Sign our packages
+-	dpkg-sig -g "--passphrase $GPG_PASSPHRASE" -k releasedocker \
+-		 --sign builder bundles/$VERSION/ubuntu/*.deb
+-
+-	# Setup the APT repo
+-	APTDIR=bundles/$VERSION/ubuntu/apt
+-	mkdir -p $APTDIR/conf $APTDIR/db
+-	s3cmd sync s3://$BUCKET/ubuntu/db/ $APTDIR/db/ || true
+-	cat > $APTDIR/conf/distributions <<EOF
+-Codename: docker
+-Components: main
+-Architectures: amd64 i386
+-EOF
+-
+-	# Add the DEB package to the APT repo
+-	DEBFILE=bundles/$VERSION/ubuntu/lxc-docker*.deb
+-	reprepro -b $APTDIR includedeb docker $DEBFILE
+-
+-	# Sign
+-	for F in $(find $APTDIR -name Release)
+-	do
+-		gpg -u releasedocker --passphrase $GPG_PASSPHRASE \
+-			--armor --sign --detach-sign \
+-			--output $F.gpg $F
+-	done
+-
+-	# Upload keys
+-	s3cmd sync /.gnupg/ s3://$BUCKET/ubuntu/.gnupg/
+-	gpg --armor --export releasedocker > bundles/$VERSION/ubuntu/gpg
+-	s3cmd --acl-public put bundles/$VERSION/ubuntu/gpg s3://$BUCKET/gpg
+-
+-	# Upload repo
+-	s3cmd --acl-public sync $APTDIR/ s3://$BUCKET/ubuntu/
+-	cat <<EOF | write_to_s3 s3://$BUCKET/ubuntu/info
+-# Add the repository to your APT sources
+-echo deb $(s3_url $BUCKET)/ubuntu docker main > /etc/apt/sources.list.d/docker.list
+-# Then import the repository key
+-curl $(s3_url $BUCKET)/gpg | apt-key add -
+-# Install docker
+-apt-get update ; apt-get install -y lxc-docker
+-EOF
+-	echo "APT repository uploaded. Instructions available at $(s3_url $BUCKET)/ubuntu/info"
+-}
+-
+-# Upload a static binary to S3
+-release_binary() {
+-	[ -e bundles/$VERSION ]
+-	S3DIR=s3://$BUCKET/builds/Linux/x86_64
+-	s3cmd --acl-public put bundles/$VERSION/binary/docker-$VERSION $S3DIR/docker-$VERSION
+-	cat <<EOF | write_to_s3 s3://$BUCKET/builds/info
+-# To install, run the following command as root:
+-curl -O http://$BUCKET.s3.amazonaws.com/builds/Linux/x86_64/docker-$VERSION && chmod +x docker-$VERSION && sudo mv docker-$VERSION /usr/local/bin/docker
+-# Then start docker in daemon mode:
+-sudo /usr/local/bin/docker -d
+-EOF
+-	if [ -z "$NOLATEST" ]; then
+-		echo "Copying docker-$VERSION to docker-latest"
+-		s3cmd --acl-public cp $S3DIR/docker-$VERSION $S3DIR/docker-latest
+-		echo "Advertising $VERSION on $BUCKET as most recent version"
+-		echo $VERSION | write_to_s3 s3://$BUCKET/latest
+-	fi
+-}
+-
+-# Upload the index script
+-release_index() {
+-	(
+-	if [ "$BUCKET" != "get.docker.io" ]
+-	then
+-		sed s,https://get.docker.io/,http://$BUCKET.s3.amazonaws.com/, contrib/install.sh
+-	else
+-		cat contrib/install.sh
+-	fi
+-	) | write_to_s3 s3://$BUCKET/index
+-}
+-
+-release_test() {
+-	if [ -e "bundles/$VERSION/test" ]; then
+-		s3cmd --acl-public sync bundles/$VERSION/test/ s3://$BUCKET/test/
+-	fi
+-}
+-
+-main() {
+-	setup_s3
+-	release_binary
+-	release_ubuntu
+-	release_index
+-	release_test
+-}
+-
+-main
+diff -uNr docker-0.6.2/hack/vendor.sh docker-devmapper/hack/vendor.sh
+--- docker-0.6.2/hack/vendor.sh	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/hack/vendor.sh	1969-12-31 18:00:00.000000000 -0600
+@@ -1,41 +0,0 @@
+-#!/bin/bash
+-
+-# Downloads dependencies into vendor/ directory
+-if [[ ! -d vendor ]]; then
+-  mkdir vendor
+-fi
+-vendor_dir=${PWD}/vendor
+-
+-git_clone () {
+-  PKG=$1
+-  REV=$2
+-  (
+-    set -e
+-    cd $vendor_dir
+-    if [[ -d src/$PKG ]]; then
+-      echo "src/$PKG already exists. Removing."
+-      rm -fr src/$PKG
+-    fi
+-    cd $vendor_dir && git clone http://$PKG src/$PKG
+-    cd src/$PKG && git checkout -f $REV && rm -fr .git
+-  )
+-}
+-
+-git_clone github.com/kr/pty 27435c699
+-
+-git_clone github.com/gorilla/context/ 708054d61e5
+-
+-git_clone github.com/gorilla/mux/ 9b36453141c
+-
+-git_clone github.com/dotcloud/tar/ d06045a6d9
+-
+-# Docker requires code.google.com/p/go.net/websocket
+-PKG=code.google.com/p/go.net REV=84a4013f96e0
+-(
+-  set -e
+-  cd $vendor_dir
+-  if [[ ! -d src/$PKG ]]; then
+-    hg clone https://$PKG src/$PKG
+-  fi
+-  cd src/$PKG && hg checkout -r $REV
+-)
+diff -uNr docker-0.6.2/image.go docker-devmapper/image.go
+--- docker-0.6.2/image.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/image.go	2013-09-23 10:37:38.706306877 -0500
+@@ -15,6 +15,7 @@
+ 	"path/filepath"
+ 	"strconv"
+ 	"strings"
++	"syscall"
+ 	"time"
+ )
+ 
+@@ -136,6 +137,10 @@
+ 	return path.Join(root, "json")
+ }
+ 
++func mountPath(root string) string {
++	return path.Join(root, "mount")
++}
++
+ func MountAUFS(ro []string, rw string, target string) error {
+ 	// FIXME: Now mount the layers
+ 	rwBranch := fmt.Sprintf("%v=rw", rw)
+@@ -170,37 +175,513 @@
+ 	return Tar(layerPath, compression)
+ }
+ 
+-func (image *Image) Mount(root, rw string) error {
+-	if mounted, err := Mounted(root); err != nil {
++type TimeUpdate struct {
++	path string
++	time []syscall.Timeval
++}
++
++func (image *Image) applyLayer(layer, target string) error {
++	var updateTimes []TimeUpdate
++	oldmask := syscall.Umask(0)
++	defer syscall.Umask(oldmask)
++	err := filepath.Walk(layer, func(srcPath string, f os.FileInfo, err error) error {
++		if err != nil {
++			return err
++		}
++
++		// Skip root
++		if srcPath == layer {
++			return nil
++		}
++
++		var srcStat syscall.Stat_t
++		err = syscall.Lstat(srcPath, &srcStat)
++		if err != nil {
++			return err
++		}
++
++		relPath, err := filepath.Rel(layer, srcPath)
++		if err != nil {
++			return err
++		}
++
++		targetPath := filepath.Join(target, relPath)
++
++		// Skip AUFS metadata
++		if matched, err := filepath.Match(".wh..wh.*", relPath); err != nil || matched {
++			if err != nil || !f.IsDir() {
++				return err
++			}
++			return filepath.SkipDir
++		}
++
++		// Find out what kind of modification happened
++		file := filepath.Base(srcPath)
++
++		// If there is a whiteout, then the file was removed
++		if strings.HasPrefix(file, ".wh.") {
++			originalFile := file[len(".wh."):]
++			deletePath := filepath.Join(filepath.Dir(targetPath), originalFile)
++
++			err = os.RemoveAll(deletePath)
++			if err != nil {
++				return err
++			}
++		} else {
++			var targetStat = &syscall.Stat_t{}
++			err := syscall.Lstat(targetPath, targetStat)
++			if err != nil {
++				if !os.IsNotExist(err) {
++					return err
++				}
++				targetStat = nil
++			}
++
++			if targetStat != nil && !(targetStat.Mode&syscall.S_IFDIR == syscall.S_IFDIR && srcStat.Mode&syscall.S_IFDIR == syscall.S_IFDIR) {
++				// Unless both src and dest are directories we remove the target and recreate it
++				// This is a bit wasteful in the case of only a mode change, but that is unlikely
++				// to matter much
++				err = os.RemoveAll(targetPath)
++				if err != nil {
++					return err
++				}
++				targetStat = nil
++			}
++
++			if f.IsDir() {
++				// Source is a directory
++				if targetStat == nil {
++					err = syscall.Mkdir(targetPath, srcStat.Mode&07777)
++					if err != nil {
++						return err
++					}
++				}
++			} else if srcStat.Mode&syscall.S_IFLNK == syscall.S_IFLNK {
++				// Source is symlink
++				link, err := os.Readlink(srcPath)
++				if err != nil {
++					return err
++				}
++
++				err = os.Symlink(link, targetPath)
++				if err != nil {
++					return err
++				}
++			} else if srcStat.Mode&syscall.S_IFBLK == syscall.S_IFBLK ||
++				srcStat.Mode&syscall.S_IFCHR == syscall.S_IFCHR ||
++				srcStat.Mode&syscall.S_IFIFO == syscall.S_IFIFO ||
++				srcStat.Mode&syscall.S_IFSOCK == syscall.S_IFSOCK {
++				// Source is special file
++				err = syscall.Mknod(targetPath, srcStat.Mode, int(srcStat.Rdev))
++				if err != nil {
++					return err
++				}
++			} else if srcStat.Mode&syscall.S_IFREG == syscall.S_IFREG {
++				// Source is regular file
++				fd, err := syscall.Open(targetPath, syscall.O_CREAT|syscall.O_WRONLY, srcStat.Mode&07777)
++				if err != nil {
++					return err
++				}
++				dstFile := os.NewFile(uintptr(fd), targetPath)
++				srcFile, err := os.Open(srcPath)
++				if err != nil {
++					_ = dstFile.Close()
++					return err
++				}
++				err = CopyFile(dstFile, srcFile)
++				_ = dstFile.Close()
++				_ = srcFile.Close()
++				if err != nil {
++					return err
++				}
++			} else {
++				return fmt.Errorf("Unknown type for file %s", srcPath)
++			}
++
++			err = syscall.Lchown(targetPath, int(srcStat.Uid), int(srcStat.Gid))
++			if err != nil {
++				return err
++			}
++
++			if srcStat.Mode&syscall.S_IFLNK != syscall.S_IFLNK {
++				err = syscall.Chmod(targetPath, srcStat.Mode&07777)
++				if err != nil {
++					return err
++				}
++			}
++
++			ts := []syscall.Timeval{
++				syscall.NsecToTimeval(srcStat.Atim.Nano()),
++				syscall.NsecToTimeval(srcStat.Mtim.Nano()),
++			}
++
++			u := TimeUpdate {
++				path: targetPath,
++				time: ts,
++			}
++
++			// Delay time updates until all other changes done, or it is
++			// overwritten for directories (by child changes)
++			updateTimes = append(updateTimes, u)
++		}
++		return nil
++	})
++	if err != nil {
+ 		return err
+-	} else if mounted {
+-		return fmt.Errorf("%s is already mounted", root)
+ 	}
+-	layers, err := image.layers()
++
++	// We do this in reverse order so that children are updated before parents
++	for i := len(updateTimes) - 1; i >= 0; i-- {
++		update := updateTimes[i]
++
++		O_PATH := 010000000 // Not in syscall yet
++		fd, err := syscall.Open(update.path, syscall.O_RDWR | O_PATH | syscall.O_NOFOLLOW, 0600)
++		if err == syscall.EISDIR || err == syscall.ELOOP {
++			// O_PATH not supported, use Utimes except on symlinks where Utimes doesn't work
++			if err != syscall.ELOOP {
++				err = syscall.Utimes(update.path, update.time)
++				if err != nil {
++					return err
++				}
++			}
++		} else {
++			if err != nil {
++				return err
++			}
++			syscall.Futimes(fd, update.time)
++			_ = syscall.Close(fd)
++		}
++	}
++
++	return nil
++}
++
++func (image *Image) ensureImageDevice(devices DeviceSet) error {
++	if devices.HasInitializedDevice(image.ID) {
++		return nil
++	}
++
++	if image.Parent != "" && !devices.HasInitializedDevice(image.Parent) {
++		parentImg, err := image.GetParent()
++		if err != nil {
++			return fmt.Errorf("Error while getting parent image: %v", err)
++		}
++		err = parentImg.ensureImageDevice(devices)
++		if err != nil {
++			return err
++		}
++	}
++
++	root, err := image.root()
+ 	if err != nil {
+ 		return err
+ 	}
+-	// Create the target directories if they don't exist
+-	if err := os.Mkdir(root, 0755); err != nil && !os.IsExist(err) {
++
++	mountDir := mountPath(root)
++	if err := os.Mkdir(mountDir, 0600); err != nil && !os.IsExist(err) {
+ 		return err
+ 	}
+-	if err := os.Mkdir(rw, 0755); err != nil && !os.IsExist(err) {
++
++	mounted, err := Mounted(mountDir)
++	if err == nil && mounted {
++		utils.Debugf("Image %s is unexpectedly mounted, unmounting...", image.ID)
++		err = syscall.Unmount(mountDir, 0)
++		if err != nil {
++			return err
++		}
++	}
++
++	if devices.HasDevice(image.ID) {
++		utils.Debugf("Found non-initialized demove-mapper device for image %s, removing", image.ID)
++		err = devices.RemoveDevice(image.ID)
++		if err != nil {
++			return err
++		}
++	}
++
++	utils.Debugf("Creating device-mapper device for image id %s", image.ID)
++	err = devices.AddDevice(image.ID, image.Parent)
++	if err != nil {
+ 		return err
+ 	}
+-	if err := MountAUFS(layers, rw, root); err != nil {
++
++	err = devices.MountDevice(image.ID, mountDir)
++	if err != nil {
++		_ = devices.RemoveDevice(image.ID)
++		return err
++	}
++
++
++	err = ioutil.WriteFile(path.Join(mountDir, ".docker-id"), []byte(image.ID), 0600)
++	if err != nil {
++		_ = devices.UnmountDevice(image.ID, mountDir)
++		_ = devices.RemoveDevice(image.ID)
+ 		return err
+ 	}
++
++	err = image.applyLayer(layerPath(root), mountDir)
++	if err != nil {
++		_ = devices.UnmountDevice(image.ID, mountDir)
++		_ = devices.RemoveDevice(image.ID)
++		return err
++	}
++
++	// The docker init layer is conceptually above all other layers, so we apply
++	// it for every image. This is safe because the layer directory is the
++	// definition of the image, and the device-mapper device is just a cache
++	// of it instantiated. Diffs/commit compare the container device with the
++	// image device, which will then *not* pick up the init layer changes as
++	// part of the container changes
++	dockerinitLayer, err := image.getDockerInitLayer()
++	if err != nil {
++		_ = devices.UnmountDevice(image.ID, mountDir)
++		_ = devices.RemoveDevice(image.ID)
++		return err
++	}
++	err = image.applyLayer(dockerinitLayer, mountDir)
++	if err != nil {
++		_ = devices.UnmountDevice(image.ID, mountDir)
++		_ = devices.RemoveDevice(image.ID)
++		return err
++	}
++
++	err = devices.UnmountDevice(image.ID, mountDir)
++	if err != nil {
++		_ = devices.RemoveDevice(image.ID)
++		return err
++	}
++
++	devices.SetInitialized(image.ID)
++
++	// No need to the device-mapper device to hang around once we've written
++	// the image, it can be enabled on-demand when needed
++	devices.DeactivateDevice(image.ID)
++
+ 	return nil
+ }
+ 
+-func (image *Image) Changes(rw string) ([]Change, error) {
+-	layers, err := image.layers()
+-	if err != nil {
+-		return nil, err
++func (image *Image) Mounted(runtime *Runtime, root, rw string) (bool, error) {
++	method := runtime.GetMountMethod()
++	if method == MountMethodFilesystem {
++		if _, err := os.Stat(rw); err != nil {
++			if os.IsNotExist(err) {
++				err = nil
++			}
++			return false, err
++		}
++		mountedPath := path.Join(rw, ".fs-mounted")
++		if _, err := os.Stat(mountedPath); err != nil {
++			if os.IsNotExist(err) {
++				err = nil
++			}
++			return false, err
++		}
++		return true, nil
++	} else {
++		return Mounted(root)
++	}
++}
++
++func (image *Image) Mount(runtime *Runtime, root, rw string, id string) error {
++	if mounted, _ := image.Mounted(runtime, root, rw); mounted {
++		return fmt.Errorf("%s is already mounted", root)
++	}
++
++	// Create the target directories if they don't exist
++	if err := os.Mkdir(root, 0755); err != nil && !os.IsExist(err) {
++		return err
++	}
++
++	switch runtime.GetMountMethod() {
++	case MountMethodNone:
++		return fmt.Errorf("No supported Mount implementation")
++
++	case MountMethodAUFS:
++		if err := os.Mkdir(rw, 0755); err != nil && !os.IsExist(err) {
++			return err
++		}
++		layers, err := image.layers()
++		if err != nil {
++			return err
++		}
++		if err := MountAUFS(layers, rw, root); err != nil {
++			return err
++		}
++
++	case MountMethodDeviceMapper:
++		devices, err := runtime.GetDeviceSet()
++		if err != nil {
++			return err
++		}
++		err = image.ensureImageDevice(devices)
++		if err != nil {
++			return err
++		}
++
++		createdDevice := false
++		if !devices.HasDevice(id) {
++			utils.Debugf("Creating device %s for container based on image %s", id, image.ID)
++			err = devices.AddDevice(id, image.ID)
++			if err != nil {
++				return err
++			}
++			createdDevice = true
++		}
++
++		utils.Debugf("Mounting container %s at %s for container", id, root)
++		err = devices.MountDevice(id, root)
++		if err != nil {
++			return err
++		}
++
++		if createdDevice {
++			err = ioutil.WriteFile(path.Join(root, ".docker-id"), []byte(id), 0600)
++			if err != nil {
++				_ = devices.RemoveDevice(image.ID)
++				return err
++			}
++		}
++
++	case MountMethodFilesystem:
++		if err := os.Mkdir(rw, 0755); err != nil && !os.IsExist(err) {
++			return err
++		}
++
++		layers, err := image.layers()
++		if err != nil {
++			return err
++		}
++
++		for i := len(layers)-1; i >= 0; i-- {
++			layer := layers[i]
++			if err = image.applyLayer(layer, root); err != nil {
++				return err
++			}
++		}
++
++		mountedPath := path.Join(rw, ".fs-mounted")
++		fo, err := os.Create(mountedPath)
++		if err != nil {
++			return err
++		}
++		fo.Close()
++	}
++	return nil
++}
++
++func (image *Image) Unmount(runtime *Runtime, root string, id string) error {
++	switch runtime.GetMountMethod() {
++	case MountMethodNone:
++		return fmt.Errorf("No supported Unmount implementation")
++
++	case MountMethodAUFS:
++		return Unmount(root)
++
++	case MountMethodDeviceMapper:
++		// Try to deactivate the device as generally there is no use for it anymore
++		devices, err := runtime.GetDeviceSet()
++		if err != nil {
++			return err;
++		}
++
++		err = devices.UnmountDevice(id, root)
++		if err != nil {
++			return err
++		}
++
++		return devices.DeactivateDevice(id)
++
++	case MountMethodFilesystem:
++		return nil
+ 	}
+-	return Changes(layers, rw)
++
++	return nil
+ }
+ 
++func (image *Image) Changes(runtime *Runtime, root, rw, id string) ([]Change, error) {
++	switch runtime.GetMountMethod() {
++	case MountMethodAUFS:
++		layers, err := image.layers()
++		if err != nil {
++			return nil, err
++		}
++		return ChangesAUFS(layers, rw)
++
++	case MountMethodDeviceMapper:
++		devices, err := runtime.GetDeviceSet()
++		if err != nil {
++			return nil, err
++		}
++
++		if err := os.Mkdir(rw, 0755); err != nil && !os.IsExist(err) {
++			return nil, err
++		}
++
++		wasActivated := devices.HasActivatedDevice(image.ID)
++
++		// We re-use rw for the temporary mount of the base image as its
++		// not used by device-mapper otherwise
++		err = devices.MountDevice(image.ID, rw)
++		if err != nil {
++			return nil, err
++		}
++
++		changes, err := ChangesDirs(root, rw)
++		_ = devices.UnmountDevice(image.ID, rw)
++		if !wasActivated {
++			_ = devices.DeactivateDevice(image.ID)
++		}
++		if err != nil {
++			return nil, err
++		}
++		return changes, nil
++
++	case MountMethodFilesystem:
++		layers, err := image.layers()
++		if err != nil {
++			return nil, err
++		}
++		changes, err := ChangesLayers(root, layers)
++		if err != nil {
++			return nil, err
++		}
++		return changes, nil
++	}
++
++	return nil, fmt.Errorf("No supported Changes implementation")
++}
++
++func (image *Image) ExportChanges(runtime *Runtime, root, rw, id string) (Archive, error) {
++	switch runtime.GetMountMethod() {
++	case MountMethodAUFS:
++		return Tar(rw, Uncompressed)
++
++	case MountMethodFilesystem, MountMethodDeviceMapper:
++		changes, err := image.Changes(runtime, root, rw, id)
++		if err != nil {
++			return nil, err
++		}
++
++		files := make([]string, 0)
++		deletions := make([]string, 0)
++		for _, change := range changes {
++			if change.Kind == ChangeModify || change.Kind == ChangeAdd {
++				files = append(files, change.Path)
++			}
++			if change.Kind == ChangeDelete {
++				base := filepath.Base(change.Path)
++				dir := filepath.Dir(change.Path)
++				deletions = append(deletions, filepath.Join(dir, ".wh."+base))
++			}
++		}
++
++		return TarFilter(root, Uncompressed, files, false, deletions)
++	}
++
++	return nil, fmt.Errorf("No supported Changes implementation")
++}
++
++
+ func (image *Image) ShortID() string {
+ 	return utils.TruncateID(image.ID)
+ }
+diff -uNr docker-0.6.2/lxc_template.go docker-devmapper/lxc_template.go
+--- docker-0.6.2/lxc_template.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/lxc_template.go	2013-09-23 10:37:39.544304547 -0500
+@@ -30,11 +30,9 @@
+ {{$ROOTFS := .RootfsPath}}
+ lxc.rootfs = {{$ROOTFS}}
+ 
+-{{if and .HostnamePath .HostsPath}}
+ # enable domain name support
+ lxc.mount.entry = {{.HostnamePath}} {{$ROOTFS}}/etc/hostname none bind,ro 0 0
+ lxc.mount.entry = {{.HostsPath}} {{$ROOTFS}}/etc/hosts none bind,ro 0 0
+-{{end}}
+ 
+ # use a dedicated pts for the container (and limit the number of pseudo terminal
+ # available)
+diff -uNr docker-0.6.2/registry/registry.go docker-devmapper/registry/registry.go
+--- docker-0.6.2/registry/registry.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/registry/registry.go	2013-09-23 10:37:39.222305442 -0500
+@@ -161,10 +161,10 @@
+ 	req.Header.Set("Authorization", "Token "+strings.Join(token, ", "))
+ 	res, err := doWithCookies(r.client, req)
+ 	if err != nil || res.StatusCode != 200 {
++		if res.StatusCode == 401 {
++			return nil, ErrLoginRequired
++		}
+ 		if res != nil {
+-			if res.StatusCode == 401 {
+-				return nil, ErrLoginRequired
+-			}
+ 			return nil, utils.NewHTTPRequestError(fmt.Sprintf("Internal server error: %d trying to fetch remote history for %s", res.StatusCode, imgID), res)
+ 		}
+ 		return nil, err
+diff -uNr docker-0.6.2/runtime.go docker-devmapper/runtime.go
+--- docker-0.6.2/runtime.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/runtime.go	2013-09-23 10:37:39.262305331 -0500
+@@ -10,12 +10,21 @@
+ 	"os"
+ 	"os/exec"
+ 	"path"
++	"path/filepath"
+ 	"sort"
+ 	"strings"
+ 	"time"
+ )
+ 
+ var defaultDns = []string{"8.8.8.8", "8.8.4.4"}
++type MountMethod int
++
++const (
++	MountMethodNone MountMethod = iota
++	MountMethodAUFS
++	MountMethodDeviceMapper
++	MountMethodFilesystem
++)
+ 
+ type Capabilities struct {
+ 	MemoryLimit            bool
+@@ -37,12 +46,29 @@
+ 	volumes        *Graph
+ 	srv            *Server
+ 	Dns            []string
++	deviceSet      DeviceSet
++	mountMethod    MountMethod
+ }
+ 
+ var sysInitPath string
+ 
+ func init() {
+-	sysInitPath = utils.SelfPath()
++	env := os.Getenv("_DOCKER_INIT_PATH")
++	if env != "" {
++		sysInitPath = env
++	} else {
++		selfPath := utils.SelfPath()
++
++		// If we have a separate docker-init, use that, otherwise use the
++		// main docker binary
++		dir := filepath.Dir(selfPath)
++		dockerInitPath := filepath.Join(dir, "docker-init")
++		if _, err := os.Stat(dockerInitPath); err != nil {
++			sysInitPath = selfPath
++		} else {
++			sysInitPath = dockerInitPath
++		}
++	}
+ }
+ 
+ // List returns an array of all containers registered in the runtime.
+@@ -64,6 +90,53 @@
+ 	return nil
+ }
+ 
++func hasFilesystemSupport(fstype string) bool {
++	content, err := ioutil.ReadFile("/proc/filesystems")
++	if err != nil {
++		log.Printf("WARNING: Unable to read /proc/filesystems, assuming fs %s is not supported.", fstype)
++		return false
++	}
++	lines := strings.Split(string(content), "\n")
++	for _, line := range lines {
++		if strings.HasPrefix(line, "nodev") {
++			line = line[5:]
++		}
++		line = strings.TrimSpace(line)
++		if line == fstype {
++			return true
++		}
++	}
++	return false
++}
++
++func (runtime *Runtime) GetMountMethod() MountMethod {
++	if runtime.mountMethod == MountMethodNone {
++		// Try to automatically pick a method
++		if hasFilesystemSupport("aufs") {
++			utils.Debugf("Using AUFS backend.")
++			runtime.mountMethod = MountMethodAUFS
++		} else {
++			_ = exec.Command("modprobe", "aufs").Run()
++			if hasFilesystemSupport("aufs") {
++				utils.Debugf("Using AUFS backend.")
++				runtime.mountMethod = MountMethodAUFS
++			} else {
++				utils.Debugf("Using device-mapper backend.")
++				runtime.mountMethod = MountMethodDeviceMapper
++			}
++		}
++	}
++
++	return runtime.mountMethod
++}
++
++func (runtime *Runtime) GetDeviceSet() (DeviceSet, error) {
++	if runtime.deviceSet == nil {
++		return nil, fmt.Errorf("No device set available")
++	}
++	return runtime.deviceSet, nil
++}
++
+ // Get looks for a container by the specified ID or name, and returns it.
+ // If the container is not found, or if an error occurs, nil is returned.
+ func (runtime *Runtime) Get(name string) *Container {
+@@ -215,6 +288,24 @@
+ 	if err := os.RemoveAll(container.root); err != nil {
+ 		return fmt.Errorf("Unable to remove filesystem for %v: %v", container.ID, err)
+ 	}
++	if runtime.GetMountMethod() == MountMethodDeviceMapper && runtime.deviceSet.HasDevice(container.ID) {
++		if err := runtime.deviceSet.RemoveDevice(container.ID); err != nil {
++			return fmt.Errorf("Unable to remove device for %v: %v", container.ID, err)
++		}
++	}
++	return nil
++}
++
++func (runtime *Runtime) DeleteImage(id string) error {
++	err := runtime.graph.Delete(id)
++	if err != nil {
++		return err
++	}
++	if runtime.GetMountMethod() == MountMethodDeviceMapper && runtime.deviceSet.HasDevice(id) {
++		if err := runtime.deviceSet.RemoveDevice(id); err != nil {
++			return fmt.Errorf("Unable to remove device for %v: %v", id, err)
++		}
++	}
+ 	return nil
+ }
+ 
+@@ -427,8 +518,8 @@
+ }
+ 
+ // FIXME: harmonize with NewGraph()
+-func NewRuntime(flGraphPath string, autoRestart bool, dns []string) (*Runtime, error) {
+-	runtime, err := NewRuntimeFromDirectory(flGraphPath, autoRestart)
++func NewRuntime(flGraphPath string, deviceSet DeviceSet, autoRestart bool, dns []string) (*Runtime, error) {
++	runtime, err := NewRuntimeFromDirectory(flGraphPath, deviceSet, autoRestart)
+ 	if err != nil {
+ 		return nil, err
+ 	}
+@@ -446,7 +537,7 @@
+ 	return runtime, nil
+ }
+ 
+-func NewRuntimeFromDirectory(root string, autoRestart bool) (*Runtime, error) {
++func NewRuntimeFromDirectory(root string, deviceSet DeviceSet, autoRestart bool) (*Runtime, error) {
+ 	runtimeRepo := path.Join(root, "containers")
+ 
+ 	if err := os.MkdirAll(runtimeRepo, 0700); err != nil && !os.IsExist(err) {
+@@ -483,6 +574,7 @@
+ 		capabilities:   &Capabilities{},
+ 		autoRestart:    autoRestart,
+ 		volumes:        volumes,
++		deviceSet:      deviceSet,
+ 	}
+ 
+ 	if err := runtime.restore(); err != nil {
+diff -uNr docker-0.6.2/runtime_test.go docker-devmapper/runtime_test.go
+--- docker-0.6.2/runtime_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/runtime_test.go	2013-09-23 10:37:39.278305287 -0500
+@@ -4,7 +4,9 @@
+ 	"bytes"
+ 	"fmt"
+ 	"github.com/dotcloud/docker/utils"
++	"github.com/dotcloud/docker/devmapper"
+ 	"io"
++	"io/ioutil"
+ 	"log"
+ 	"net"
+ 	"os"
+@@ -22,6 +24,7 @@
+ 	unitTestImageID       = "83599e29c455eb719f77d799bc7c51521b9551972f5a850d7ad265bc1b5292f6" // 1.0
+ 	unitTestNetworkBridge = "testdockbr0"
+ 	unitTestStoreBase     = "/var/lib/docker/unit-tests"
++	unitTestStoreDevicesBase     = "/var/lib/docker/unit-tests-devices"
+ 	testDaemonAddr        = "127.0.0.1:4270"
+ 	testDaemonProto       = "tcp"
+ )
+@@ -42,6 +45,10 @@
+ 		}(container)
+ 	}
+ 	wg.Wait()
++
++	for _, container := range runtime.List() {
++		container.EnsureUnmounted()
++	}
+ 	return os.RemoveAll(runtime.root)
+ }
+ 
+@@ -56,12 +63,19 @@
+ 	}
+ 	for _, image := range images {
+ 		if image.ID != unitTestImageID {
+-			runtime.graph.Delete(image.ID)
++			runtime.DeleteImage(image.ID)
+ 		}
+ 	}
+ 	return nil
+ }
+ 
++func cleanupLast(runtime *Runtime) error {
++	cleanup(runtime)
++	runtime.deviceSet.Shutdown()
++	return nil
++}
++
++
+ func layerArchive(tarfile string) (io.Reader, error) {
+ 	// FIXME: need to close f somewhere
+ 	f, err := os.Open(tarfile)
+@@ -71,6 +85,32 @@
+ 	return f, nil
+ }
+ 
++// Remove any leftover device mapper devices from earlier runs of the unit tests
++func cleanupDevMapper() {
++	infos, _ := ioutil.ReadDir("/dev/mapper")
++	if infos != nil {
++		hasPool := false
++		for _, info := range infos {
++			name := info.Name()
++			if strings.HasPrefix(name, "docker-unit-tests-devices-") {
++				if name == "docker-unit-tests-devices-pool" {
++					hasPool = true
++				} else {
++					if err := devmapper.RemoveDevice(name); err != nil {
++						panic(fmt.Errorf("Unable to remove existing device %s: %s", name, err))
++					}
++				}
++			}
++			// We need to remove the pool last as the other devices block it
++			if hasPool {
++				if err := devmapper.RemoveDevice("docker-unit-tests-devices-pool"); err != nil {
++					panic(fmt.Errorf("Unable to remove existing device docker-unit-tests-devices-pool: %s", name, err))
++				}
++			}
++		}
++	}
++}
++
+ func init() {
+ 	os.Setenv("TEST", "1")
+ 
+@@ -86,8 +126,16 @@
+ 
+ 	NetworkBridgeIface = unitTestNetworkBridge
+ 
++	cleanupDevMapper()
++
++	// Always start from a clean set of loopback mounts
++	err := os.RemoveAll(unitTestStoreDevicesBase)
++	if err != nil {
++		panic(err)
++	}
++
+ 	// Make it our Store root
+-	if runtime, err := NewRuntimeFromDirectory(unitTestStoreBase, false); err != nil {
++	if runtime, err := NewRuntimeFromDirectory(unitTestStoreBase, devmapper.NewDeviceSetDM(unitTestStoreDevicesBase), false); err != nil {
+ 		panic(err)
+ 	} else {
+ 		globalRuntime = runtime
+@@ -456,7 +504,7 @@
+ 
+ 	// Here are are simulating a docker restart - that is, reloading all containers
+ 	// from scratch
+-	runtime2, err := NewRuntimeFromDirectory(runtime1.root, false)
++	runtime2, err := NewRuntimeFromDirectory(runtime1.root, runtime1.deviceSet, false)
+ 	if err != nil {
+ 		t.Fatal(err)
+ 	}
+diff -uNr docker-0.6.2/server.go docker-devmapper/server.go
+--- docker-0.6.2/server.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/server.go	2013-09-23 10:37:39.261305334 -0500
+@@ -772,9 +772,7 @@
+ 				} else {
+ 					elem.Checksum = checksum
+ 				}
+-				if err := pushTags(); err != nil {
+-					return err
+-				}
++				return pushTags()
+ 			}
+ 		}
+ 	}
+@@ -1025,7 +1023,7 @@
+ 		if err := srv.runtime.repositories.DeleteAll(id); err != nil {
+ 			return err
+ 		}
+-		err := srv.runtime.graph.Delete(id)
++		err := srv.runtime.DeleteImage(id)
+ 		if err != nil {
+ 			return err
+ 		}
+@@ -1099,7 +1097,7 @@
+ 		return nil, fmt.Errorf("No such image: %s", name)
+ 	}
+ 	if !autoPrune {
+-		if err := srv.runtime.graph.Delete(img.ID); err != nil {
++		if err := srv.runtime.DeleteImage(img.ID); err != nil {
+ 			return nil, fmt.Errorf("Error deleting image %s: %s", name, err)
+ 		}
+ 		return nil, nil
+@@ -1294,11 +1292,11 @@
+ 
+ }
+ 
+-func NewServer(flGraphPath string, autoRestart, enableCors bool, dns ListOpts) (*Server, error) {
++func NewServer(flGraphPath string, deviceSet DeviceSet, autoRestart, enableCors bool, dns ListOpts) (*Server, error) {
+ 	if runtime.GOARCH != "amd64" {
+ 		log.Fatalf("The docker runtime currently only supports amd64 (not %s). This will change in the future. Aborting.", runtime.GOARCH)
+ 	}
+-	runtime, err := NewRuntime(flGraphPath, autoRestart, dns)
++	runtime, err := NewRuntime(flGraphPath, deviceSet, autoRestart, dns)
+ 	if err != nil {
+ 		return nil, err
+ 	}
+diff -uNr docker-0.6.2/utils/utils.go docker-devmapper/utils/utils.go
+--- docker-0.6.2/utils/utils.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/utils/utils.go	2013-09-23 10:37:39.107305762 -0500
+@@ -1021,3 +1021,36 @@
+ func (e *StatusError) Error() string {
+ 	return fmt.Sprintf("Status: %d", e.Status)
+ }
++
++func quote(word string, buf *bytes.Buffer) {
++	// Bail out early for "simple" strings
++	if word != "" && !strings.ContainsAny(word, "\\'\"`${[|&;<>()~*?! \t\n") {
++		buf.WriteString(word)
++		return
++	}
++
++	buf.WriteString("'")
++
++	for i := 0; i < len(word); i++ {
++		b := word[i]
++		if b == '\'' {
++			// Replace literal ' with a close ', a \', and a open '
++			buf.WriteString("'\\''")
++		} else {
++			buf.WriteByte(b)
++		}
++	}
++
++	buf.WriteString("'")
++}
++
++func ShellQuoteArguments(args []string) string {
++	var buf bytes.Buffer
++	for i, arg := range args {
++		if i != 0 {
++			buf.WriteByte(' ')
++		}
++		quote(arg, &buf)
++	}
++	return buf.String()
++}
+diff -uNr docker-0.6.2/utils/utils_test.go docker-devmapper/utils/utils_test.go
+--- docker-0.6.2/utils/utils_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/utils/utils_test.go	2013-09-23 10:37:39.117305734 -0500
+@@ -366,6 +366,7 @@
+ 	assertParseRelease(t, "3.8.0-19-generic", &KernelVersionInfo{Kernel: 3, Major: 8, Minor: 0, Flavor: "19-generic"}, 0)
+ }
+ 
++
+ func TestDependencyGraphCircular(t *testing.T) {
+ 	g1 := NewDependencyGraph()
+ 	a := g1.NewNode("a")
+@@ -420,4 +421,4 @@
+ 	if len(res[2]) != 1 || res[2][0] != "d" {
+ 		t.Fatalf("Expected [d], found %v instead", res[2])
+ 	}
+-}
++}
+\ No newline at end of file
+diff -uNr docker-0.6.2/utils.go docker-devmapper/utils.go
+--- docker-0.6.2/utils.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/utils.go	2013-09-23 10:37:39.151305640 -0500
+@@ -1,8 +1,33 @@
+ package docker
+ 
++/*
++#include <sys/ioctl.h>
++#include <linux/fs.h>
++#include <errno.h>
++
++// See linux.git/fs/btrfs/ioctl.h
++#define BTRFS_IOCTL_MAGIC 0x94
++#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int)
++
++int
++btrfs_reflink(int fd_out, int fd_in)
++{
++  int res;
++  res = ioctl(fd_out, BTRFS_IOC_CLONE, fd_in);
++  if (res < 0)
++    return errno;
++  return 0;
++}
++
++*/
++import "C"
+ import (
+ 	"fmt"
++	"io"
++	"io/ioutil"
++	"os"
+ 	"strings"
++	"syscall"
+ )
+ 
+ // Compare two Config struct. Do not compare the "Image" nor "Hostname" fields
+@@ -167,3 +192,36 @@
+ 	}
+ 	return strings.TrimSpace(parts[0]), strings.TrimSpace(parts[1]), nil
+ }
++
++func RootIsShared() bool {
++	if data, err := ioutil.ReadFile("/proc/self/mountinfo"); err == nil {
++		for _, line := range strings.Split(string(data), "\n") {
++			cols := strings.Split(line, " ")
++			if len(cols) >= 6 && cols[3] == "/" && cols[4] == "/" {
++				return strings.HasPrefix(cols[6], "shared")
++			}
++		}
++	}
++
++	// No idea, probably safe to assume so
++	return true
++}
++
++func BtrfsReflink(fd_out, fd_in uintptr) error {
++	res := C.btrfs_reflink(C.int(fd_out), C.int(fd_in))
++	if res != 0 {
++		return syscall.Errno(res)
++	}
++	return nil
++}
++
++func CopyFile(dstFile, srcFile *os.File) error {
++	err := BtrfsReflink(dstFile.Fd(), srcFile.Fd())
++	if err == nil {
++		return nil
++	}
++
++	// Fall back to normal copy
++	_, err = io.Copy(dstFile, srcFile)
++	return err
++}
+diff -uNr docker-0.6.2/utils_test.go docker-devmapper/utils_test.go
+--- docker-0.6.2/utils_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/utils_test.go	2013-09-23 10:37:39.237305401 -0500
+@@ -2,6 +2,7 @@
+ 
+ import (
+ 	"github.com/dotcloud/docker/utils"
++	"path/filepath"
+ 	"io"
+ 	"io/ioutil"
+ 	"os"
+@@ -42,7 +43,7 @@
+ 		return nil, err
+ 	}
+ 
+-	runtime, err := NewRuntimeFromDirectory(root, false)
++	runtime, err := NewRuntimeFromDirectory(root, NewDeviceSetWrapper (globalRuntime.deviceSet, filepath.Base(root)), false)
+ 	if err != nil {
+ 		return nil, err
+ 	}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/AUTHORS docker-devmapper/vendor/src/code.google.com/p/go.net/AUTHORS
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/AUTHORS	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/AUTHORS	1969-12-31 18:00:00.000000000 -0600
+@@ -1,3 +0,0 @@
+-# This source code refers to The Go Authors for copyright purposes.
+-# The master list of authors is in the main Go distribution,
+-# visible at http://tip.golang.org/AUTHORS.
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/codereview.cfg docker-devmapper/vendor/src/code.google.com/p/go.net/codereview.cfg
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/codereview.cfg	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/codereview.cfg	1969-12-31 18:00:00.000000000 -0600
+@@ -1,2 +0,0 @@
+-defaultcc: golang-dev at googlegroups.com
+-contributors: http://go.googlecode.com/hg/CONTRIBUTORS
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/CONTRIBUTORS docker-devmapper/vendor/src/code.google.com/p/go.net/CONTRIBUTORS
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/CONTRIBUTORS	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/CONTRIBUTORS	1969-12-31 18:00:00.000000000 -0600
+@@ -1,3 +0,0 @@
+-# This source code was written by the Go contributors.
+-# The master list of contributors is in the main Go distribution,
+-# visible at http://tip.golang.org/CONTRIBUTORS.
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/dict/dict.go docker-devmapper/vendor/src/code.google.com/p/go.net/dict/dict.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/dict/dict.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/dict/dict.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,210 +0,0 @@
+-// Copyright 2010 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package dict implements the Dictionary Server Protocol
+-// as defined in RFC 2229.
+-package dict
+-
+-import (
+-	"net/textproto"
+-	"strconv"
+-	"strings"
+-)
+-
+-// A Client represents a client connection to a dictionary server.
+-type Client struct {
+-	text *textproto.Conn
+-}
+-
+-// Dial returns a new client connected to a dictionary server at
+-// addr on the given network.
+-func Dial(network, addr string) (*Client, error) {
+-	text, err := textproto.Dial(network, addr)
+-	if err != nil {
+-		return nil, err
+-	}
+-	_, _, err = text.ReadCodeLine(220)
+-	if err != nil {
+-		text.Close()
+-		return nil, err
+-	}
+-	return &Client{text: text}, nil
+-}
+-
+-// Close closes the connection to the dictionary server.
+-func (c *Client) Close() error {
+-	return c.text.Close()
+-}
+-
+-// A Dict represents a dictionary available on the server.
+-type Dict struct {
+-	Name string // short name of dictionary
+-	Desc string // long description
+-}
+-
+-// Dicts returns a list of the dictionaries available on the server.
+-func (c *Client) Dicts() ([]Dict, error) {
+-	id, err := c.text.Cmd("SHOW DB")
+-	if err != nil {
+-		return nil, err
+-	}
+-
+-	c.text.StartResponse(id)
+-	defer c.text.EndResponse(id)
+-
+-	_, _, err = c.text.ReadCodeLine(110)
+-	if err != nil {
+-		return nil, err
+-	}
+-	lines, err := c.text.ReadDotLines()
+-	if err != nil {
+-		return nil, err
+-	}
+-	_, _, err = c.text.ReadCodeLine(250)
+-
+-	dicts := make([]Dict, len(lines))
+-	for i := range dicts {
+-		d := &dicts[i]
+-		a, _ := fields(lines[i])
+-		if len(a) < 2 {
+-			return nil, textproto.ProtocolError("invalid dictionary: " + lines[i])
+-		}
+-		d.Name = a[0]
+-		d.Desc = a[1]
+-	}
+-	return dicts, err
+-}
+-
+-// A Defn represents a definition.
+-type Defn struct {
+-	Dict Dict   // Dict where definition was found
+-	Word string // Word being defined
+-	Text []byte // Definition text, typically multiple lines
+-}
+-
+-// Define requests the definition of the given word.
+-// The argument dict names the dictionary to use,
+-// the Name field of a Dict returned by Dicts.
+-//
+-// The special dictionary name "*" means to look in all the
+-// server's dictionaries.
+-// The special dictionary name "!" means to look in all the
+-// server's dictionaries in turn, stopping after finding the word
+-// in one of them.
+-func (c *Client) Define(dict, word string) ([]*Defn, error) {
+-	id, err := c.text.Cmd("DEFINE %s %q", dict, word)
+-	if err != nil {
+-		return nil, err
+-	}
+-
+-	c.text.StartResponse(id)
+-	defer c.text.EndResponse(id)
+-
+-	_, line, err := c.text.ReadCodeLine(150)
+-	if err != nil {
+-		return nil, err
+-	}
+-	a, _ := fields(line)
+-	if len(a) < 1 {
+-		return nil, textproto.ProtocolError("malformed response: " + line)
+-	}
+-	n, err := strconv.Atoi(a[0])
+-	if err != nil {
+-		return nil, textproto.ProtocolError("invalid definition count: " + a[0])
+-	}
+-	def := make([]*Defn, n)
+-	for i := 0; i < n; i++ {
+-		_, line, err = c.text.ReadCodeLine(151)
+-		if err != nil {
+-			return nil, err
+-		}
+-		a, _ := fields(line)
+-		if len(a) < 3 {
+-			// skip it, to keep protocol in sync
+-			i--
+-			n--
+-			def = def[0:n]
+-			continue
+-		}
+-		d := &Defn{Word: a[0], Dict: Dict{a[1], a[2]}}
+-		d.Text, err = c.text.ReadDotBytes()
+-		if err != nil {
+-			return nil, err
+-		}
+-		def[i] = d
+-	}
+-	_, _, err = c.text.ReadCodeLine(250)
+-	return def, err
+-}
+-
+-// Fields returns the fields in s.
+-// Fields are space separated unquoted words
+-// or quoted with single or double quote.
+-func fields(s string) ([]string, error) {
+-	var v []string
+-	i := 0
+-	for {
+-		for i < len(s) && (s[i] == ' ' || s[i] == '\t') {
+-			i++
+-		}
+-		if i >= len(s) {
+-			break
+-		}
+-		if s[i] == '"' || s[i] == '\'' {
+-			q := s[i]
+-			// quoted string
+-			var j int
+-			for j = i + 1; ; j++ {
+-				if j >= len(s) {
+-					return nil, textproto.ProtocolError("malformed quoted string")
+-				}
+-				if s[j] == '\\' {
+-					j++
+-					continue
+-				}
+-				if s[j] == q {
+-					j++
+-					break
+-				}
+-			}
+-			v = append(v, unquote(s[i+1:j-1]))
+-			i = j
+-		} else {
+-			// atom
+-			var j int
+-			for j = i; j < len(s); j++ {
+-				if s[j] == ' ' || s[j] == '\t' || s[j] == '\\' || s[j] == '"' || s[j] == '\'' {
+-					break
+-				}
+-			}
+-			v = append(v, s[i:j])
+-			i = j
+-		}
+-		if i < len(s) {
+-			c := s[i]
+-			if c != ' ' && c != '\t' {
+-				return nil, textproto.ProtocolError("quotes not on word boundaries")
+-			}
+-		}
+-	}
+-	return v, nil
+-}
+-
+-func unquote(s string) string {
+-	if strings.Index(s, "\\") < 0 {
+-		return s
+-	}
+-	b := []byte(s)
+-	w := 0
+-	for r := 0; r < len(b); r++ {
+-		c := b[r]
+-		if c == '\\' {
+-			r++
+-			c = b[r]
+-		}
+-		b[w] = c
+-		w++
+-	}
+-	return string(b[0:w])
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/.hgignore docker-devmapper/vendor/src/code.google.com/p/go.net/.hgignore
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/.hgignore	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/.hgignore	1969-12-31 18:00:00.000000000 -0600
+@@ -1,2 +0,0 @@
+-syntax:glob
+-last-change
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/atom.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/atom.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/atom.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/atom.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,78 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package atom provides integer codes (also known as atoms) for a fixed set of
+-// frequently occurring HTML strings: tag names and attribute keys such as "p"
+-// and "id".
+-//
+-// Sharing an atom's name between all elements with the same tag can result in
+-// fewer string allocations when tokenizing and parsing HTML. Integer
+-// comparisons are also generally faster than string comparisons.
+-//
+-// The value of an atom's particular code is not guaranteed to stay the same
+-// between versions of this package. Neither is any ordering guaranteed:
+-// whether atom.H1 < atom.H2 may also change. The codes are not guaranteed to
+-// be dense. The only guarantees are that e.g. looking up "div" will yield
+-// atom.Div, calling atom.Div.String will return "div", and atom.Div != 0.
+-package atom
+-
+-// Atom is an integer code for a string. The zero value maps to "".
+-type Atom uint32
+-
+-// String returns the atom's name.
+-func (a Atom) String() string {
+-	start := uint32(a >> 8)
+-	n := uint32(a & 0xff)
+-	if start+n > uint32(len(atomText)) {
+-		return ""
+-	}
+-	return atomText[start : start+n]
+-}
+-
+-func (a Atom) string() string {
+-	return atomText[a>>8 : a>>8+a&0xff]
+-}
+-
+-// fnv computes the FNV hash with an arbitrary starting value h.
+-func fnv(h uint32, s []byte) uint32 {
+-	for i := range s {
+-		h ^= uint32(s[i])
+-		h *= 16777619
+-	}
+-	return h
+-}
+-
+-func match(s string, t []byte) bool {
+-	for i, c := range t {
+-		if s[i] != c {
+-			return false
+-		}
+-	}
+-	return true
+-}
+-
+-// Lookup returns the atom whose name is s. It returns zero if there is no
+-// such atom. The lookup is case sensitive.
+-func Lookup(s []byte) Atom {
+-	if len(s) == 0 || len(s) > maxAtomLen {
+-		return 0
+-	}
+-	h := fnv(hash0, s)
+-	if a := table[h&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) {
+-		return a
+-	}
+-	if a := table[(h>>16)&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) {
+-		return a
+-	}
+-	return 0
+-}
+-
+-// String returns a string whose contents are equal to s. In that sense, it is
+-// equivalent to string(s) but may be more efficient.
+-func String(s []byte) string {
+-	if a := Lookup(s); a != 0 {
+-		return a.String()
+-	}
+-	return string(s)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/atom_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/atom_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/atom_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/atom_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,109 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package atom
+-
+-import (
+-	"sort"
+-	"testing"
+-)
+-
+-func TestKnown(t *testing.T) {
+-	for _, s := range testAtomList {
+-		if atom := Lookup([]byte(s)); atom.String() != s {
+-			t.Errorf("Lookup(%q) = %#x (%q)", s, uint32(atom), atom.String())
+-		}
+-	}
+-}
+-
+-func TestHits(t *testing.T) {
+-	for _, a := range table {
+-		if a == 0 {
+-			continue
+-		}
+-		got := Lookup([]byte(a.String()))
+-		if got != a {
+-			t.Errorf("Lookup(%q) = %#x, want %#x", a.String(), uint32(got), uint32(a))
+-		}
+-	}
+-}
+-
+-func TestMisses(t *testing.T) {
+-	testCases := []string{
+-		"",
+-		"\x00",
+-		"\xff",
+-		"A",
+-		"DIV",
+-		"Div",
+-		"dIV",
+-		"aa",
+-		"a\x00",
+-		"ab",
+-		"abb",
+-		"abbr0",
+-		"abbr ",
+-		" abbr",
+-		" a",
+-		"acceptcharset",
+-		"acceptCharset",
+-		"accept_charset",
+-		"h0",
+-		"h1h2",
+-		"h7",
+-		"onClick",
+-		"λ",
+-		// The following string has the same hash (0xa1d7fab7) as "onmouseover".
+-		"\x00\x00\x00\x00\x00\x50\x18\xae\x38\xd0\xb7",
+-	}
+-	for _, tc := range testCases {
+-		got := Lookup([]byte(tc))
+-		if got != 0 {
+-			t.Errorf("Lookup(%q): got %d, want 0", tc, got)
+-		}
+-	}
+-}
+-
+-func TestForeignObject(t *testing.T) {
+-	const (
+-		afo = Foreignobject
+-		afO = ForeignObject
+-		sfo = "foreignobject"
+-		sfO = "foreignObject"
+-	)
+-	if got := Lookup([]byte(sfo)); got != afo {
+-		t.Errorf("Lookup(%q): got %#v, want %#v", sfo, got, afo)
+-	}
+-	if got := Lookup([]byte(sfO)); got != afO {
+-		t.Errorf("Lookup(%q): got %#v, want %#v", sfO, got, afO)
+-	}
+-	if got := afo.String(); got != sfo {
+-		t.Errorf("Atom(%#v).String(): got %q, want %q", afo, got, sfo)
+-	}
+-	if got := afO.String(); got != sfO {
+-		t.Errorf("Atom(%#v).String(): got %q, want %q", afO, got, sfO)
+-	}
+-}
+-
+-func BenchmarkLookup(b *testing.B) {
+-	sortedTable := make([]string, 0, len(table))
+-	for _, a := range table {
+-		if a != 0 {
+-			sortedTable = append(sortedTable, a.String())
+-		}
+-	}
+-	sort.Strings(sortedTable)
+-
+-	x := make([][]byte, 1000)
+-	for i := range x {
+-		x[i] = []byte(sortedTable[i%len(sortedTable)])
+-	}
+-
+-	b.ResetTimer()
+-	for i := 0; i < b.N; i++ {
+-		for _, s := range x {
+-			Lookup(s)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/gen.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/gen.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/gen.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/gen.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,636 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build ignore
+-
+-package main
+-
+-// This program generates table.go and table_test.go.
+-// Invoke as
+-//
+-//	go run gen.go |gofmt >table.go
+-//	go run gen.go -test |gofmt >table_test.go
+-
+-import (
+-	"flag"
+-	"fmt"
+-	"math/rand"
+-	"os"
+-	"sort"
+-	"strings"
+-)
+-
+-// identifier converts s to a Go exported identifier.
+-// It converts "div" to "Div" and "accept-charset" to "AcceptCharset".
+-func identifier(s string) string {
+-	b := make([]byte, 0, len(s))
+-	cap := true
+-	for _, c := range s {
+-		if c == '-' {
+-			cap = true
+-			continue
+-		}
+-		if cap && 'a' <= c && c <= 'z' {
+-			c -= 'a' - 'A'
+-		}
+-		cap = false
+-		b = append(b, byte(c))
+-	}
+-	return string(b)
+-}
+-
+-var test = flag.Bool("test", false, "generate table_test.go")
+-
+-func main() {
+-	flag.Parse()
+-
+-	var all []string
+-	all = append(all, elements...)
+-	all = append(all, attributes...)
+-	all = append(all, eventHandlers...)
+-	all = append(all, extra...)
+-	sort.Strings(all)
+-
+-	if *test {
+-		fmt.Printf("// generated by go run gen.go -test; DO NOT EDIT\n\n")
+-		fmt.Printf("package atom\n\n")
+-		fmt.Printf("var testAtomList = []string{\n")
+-		for _, s := range all {
+-			fmt.Printf("\t%q,\n", s)
+-		}
+-		fmt.Printf("}\n")
+-		return
+-	}
+-
+-	// uniq - lists have dups
+-	// compute max len too
+-	maxLen := 0
+-	w := 0
+-	for _, s := range all {
+-		if w == 0 || all[w-1] != s {
+-			if maxLen < len(s) {
+-				maxLen = len(s)
+-			}
+-			all[w] = s
+-			w++
+-		}
+-	}
+-	all = all[:w]
+-
+-	// Find hash that minimizes table size.
+-	var best *table
+-	for i := 0; i < 1000000; i++ {
+-		if best != nil && 1<<(best.k-1) < len(all) {
+-			break
+-		}
+-		h := rand.Uint32()
+-		for k := uint(0); k <= 16; k++ {
+-			if best != nil && k >= best.k {
+-				break
+-			}
+-			var t table
+-			if t.init(h, k, all) {
+-				best = &t
+-				break
+-			}
+-		}
+-	}
+-	if best == nil {
+-		fmt.Fprintf(os.Stderr, "failed to construct string table\n")
+-		os.Exit(1)
+-	}
+-
+-	// Lay out strings, using overlaps when possible.
+-	layout := append([]string{}, all...)
+-
+-	// Remove strings that are substrings of other strings
+-	for changed := true; changed; {
+-		changed = false
+-		for i, s := range layout {
+-			if s == "" {
+-				continue
+-			}
+-			for j, t := range layout {
+-				if i != j && t != "" && strings.Contains(s, t) {
+-					changed = true
+-					layout[j] = ""
+-				}
+-			}
+-		}
+-	}
+-
+-	// Join strings where one suffix matches another prefix.
+-	for {
+-		// Find best i, j, k such that layout[i][len-k:] == layout[j][:k],
+-		// maximizing overlap length k.
+-		besti := -1
+-		bestj := -1
+-		bestk := 0
+-		for i, s := range layout {
+-			if s == "" {
+-				continue
+-			}
+-			for j, t := range layout {
+-				if i == j {
+-					continue
+-				}
+-				for k := bestk + 1; k <= len(s) && k <= len(t); k++ {
+-					if s[len(s)-k:] == t[:k] {
+-						besti = i
+-						bestj = j
+-						bestk = k
+-					}
+-				}
+-			}
+-		}
+-		if bestk > 0 {
+-			layout[besti] += layout[bestj][bestk:]
+-			layout[bestj] = ""
+-			continue
+-		}
+-		break
+-	}
+-
+-	text := strings.Join(layout, "")
+-
+-	atom := map[string]uint32{}
+-	for _, s := range all {
+-		off := strings.Index(text, s)
+-		if off < 0 {
+-			panic("lost string " + s)
+-		}
+-		atom[s] = uint32(off<<8 | len(s))
+-	}
+-
+-	// Generate the Go code.
+-	fmt.Printf("// generated by go run gen.go; DO NOT EDIT\n\n")
+-	fmt.Printf("package atom\n\nconst (\n")
+-	for _, s := range all {
+-		fmt.Printf("\t%s Atom = %#x\n", identifier(s), atom[s])
+-	}
+-	fmt.Printf(")\n\n")
+-
+-	fmt.Printf("const hash0 = %#x\n\n", best.h0)
+-	fmt.Printf("const maxAtomLen = %d\n\n", maxLen)
+-
+-	fmt.Printf("var table = [1<<%d]Atom{\n", best.k)
+-	for i, s := range best.tab {
+-		if s == "" {
+-			continue
+-		}
+-		fmt.Printf("\t%#x: %#x, // %s\n", i, atom[s], s)
+-	}
+-	fmt.Printf("}\n")
+-	datasize := (1 << best.k) * 4
+-
+-	fmt.Printf("const atomText =\n")
+-	textsize := len(text)
+-	for len(text) > 60 {
+-		fmt.Printf("\t%q +\n", text[:60])
+-		text = text[60:]
+-	}
+-	fmt.Printf("\t%q\n\n", text)
+-
+-	fmt.Fprintf(os.Stderr, "%d atoms; %d string bytes + %d tables = %d total data\n", len(all), textsize, datasize, textsize+datasize)
+-}
+-
+-type byLen []string
+-
+-func (x byLen) Less(i, j int) bool { return len(x[i]) > len(x[j]) }
+-func (x byLen) Swap(i, j int)      { x[i], x[j] = x[j], x[i] }
+-func (x byLen) Len() int           { return len(x) }
+-
+-// fnv computes the FNV hash with an arbitrary starting value h.
+-func fnv(h uint32, s string) uint32 {
+-	for i := 0; i < len(s); i++ {
+-		h ^= uint32(s[i])
+-		h *= 16777619
+-	}
+-	return h
+-}
+-
+-// A table represents an attempt at constructing the lookup table.
+-// The lookup table uses cuckoo hashing, meaning that each string
+-// can be found in one of two positions.
+-type table struct {
+-	h0   uint32
+-	k    uint
+-	mask uint32
+-	tab  []string
+-}
+-
+-// hash returns the two hashes for s.
+-func (t *table) hash(s string) (h1, h2 uint32) {
+-	h := fnv(t.h0, s)
+-	h1 = h & t.mask
+-	h2 = (h >> 16) & t.mask
+-	return
+-}
+-
+-// init initializes the table with the given parameters.
+-// h0 is the initial hash value,
+-// k is the number of bits of hash value to use, and
+-// x is the list of strings to store in the table.
+-// init returns false if the table cannot be constructed.
+-func (t *table) init(h0 uint32, k uint, x []string) bool {
+-	t.h0 = h0
+-	t.k = k
+-	t.tab = make([]string, 1<<k)
+-	t.mask = 1<<k - 1
+-	for _, s := range x {
+-		if !t.insert(s) {
+-			return false
+-		}
+-	}
+-	return true
+-}
+-
+-// insert inserts s in the table.
+-func (t *table) insert(s string) bool {
+-	h1, h2 := t.hash(s)
+-	if t.tab[h1] == "" {
+-		t.tab[h1] = s
+-		return true
+-	}
+-	if t.tab[h2] == "" {
+-		t.tab[h2] = s
+-		return true
+-	}
+-	if t.push(h1, 0) {
+-		t.tab[h1] = s
+-		return true
+-	}
+-	if t.push(h2, 0) {
+-		t.tab[h2] = s
+-		return true
+-	}
+-	return false
+-}
+-
+-// push attempts to push aside the entry in slot i.
+-func (t *table) push(i uint32, depth int) bool {
+-	if depth > len(t.tab) {
+-		return false
+-	}
+-	s := t.tab[i]
+-	h1, h2 := t.hash(s)
+-	j := h1 + h2 - i
+-	if t.tab[j] != "" && !t.push(j, depth+1) {
+-		return false
+-	}
+-	t.tab[j] = s
+-	return true
+-}
+-
+-// The lists of element names and attribute keys were taken from
+-// http://www.whatwg.org/specs/web-apps/current-work/multipage/section-index.html
+-// as of the "HTML Living Standard - Last Updated 30 May 2012" version.
+-
+-var elements = []string{
+-	"a",
+-	"abbr",
+-	"address",
+-	"area",
+-	"article",
+-	"aside",
+-	"audio",
+-	"b",
+-	"base",
+-	"bdi",
+-	"bdo",
+-	"blockquote",
+-	"body",
+-	"br",
+-	"button",
+-	"canvas",
+-	"caption",
+-	"cite",
+-	"code",
+-	"col",
+-	"colgroup",
+-	"command",
+-	"data",
+-	"datalist",
+-	"dd",
+-	"del",
+-	"details",
+-	"dfn",
+-	"dialog",
+-	"div",
+-	"dl",
+-	"dt",
+-	"em",
+-	"embed",
+-	"fieldset",
+-	"figcaption",
+-	"figure",
+-	"footer",
+-	"form",
+-	"h1",
+-	"h2",
+-	"h3",
+-	"h4",
+-	"h5",
+-	"h6",
+-	"head",
+-	"header",
+-	"hgroup",
+-	"hr",
+-	"html",
+-	"i",
+-	"iframe",
+-	"img",
+-	"input",
+-	"ins",
+-	"kbd",
+-	"keygen",
+-	"label",
+-	"legend",
+-	"li",
+-	"link",
+-	"map",
+-	"mark",
+-	"menu",
+-	"meta",
+-	"meter",
+-	"nav",
+-	"noscript",
+-	"object",
+-	"ol",
+-	"optgroup",
+-	"option",
+-	"output",
+-	"p",
+-	"param",
+-	"pre",
+-	"progress",
+-	"q",
+-	"rp",
+-	"rt",
+-	"ruby",
+-	"s",
+-	"samp",
+-	"script",
+-	"section",
+-	"select",
+-	"small",
+-	"source",
+-	"span",
+-	"strong",
+-	"style",
+-	"sub",
+-	"summary",
+-	"sup",
+-	"table",
+-	"tbody",
+-	"td",
+-	"textarea",
+-	"tfoot",
+-	"th",
+-	"thead",
+-	"time",
+-	"title",
+-	"tr",
+-	"track",
+-	"u",
+-	"ul",
+-	"var",
+-	"video",
+-	"wbr",
+-}
+-
+-var attributes = []string{
+-	"accept",
+-	"accept-charset",
+-	"accesskey",
+-	"action",
+-	"alt",
+-	"async",
+-	"autocomplete",
+-	"autofocus",
+-	"autoplay",
+-	"border",
+-	"challenge",
+-	"charset",
+-	"checked",
+-	"cite",
+-	"class",
+-	"cols",
+-	"colspan",
+-	"command",
+-	"content",
+-	"contenteditable",
+-	"contextmenu",
+-	"controls",
+-	"coords",
+-	"crossorigin",
+-	"data",
+-	"datetime",
+-	"default",
+-	"defer",
+-	"dir",
+-	"dirname",
+-	"disabled",
+-	"download",
+-	"draggable",
+-	"dropzone",
+-	"enctype",
+-	"for",
+-	"form",
+-	"formaction",
+-	"formenctype",
+-	"formmethod",
+-	"formnovalidate",
+-	"formtarget",
+-	"headers",
+-	"height",
+-	"hidden",
+-	"high",
+-	"href",
+-	"hreflang",
+-	"http-equiv",
+-	"icon",
+-	"id",
+-	"inert",
+-	"ismap",
+-	"itemid",
+-	"itemprop",
+-	"itemref",
+-	"itemscope",
+-	"itemtype",
+-	"keytype",
+-	"kind",
+-	"label",
+-	"lang",
+-	"list",
+-	"loop",
+-	"low",
+-	"manifest",
+-	"max",
+-	"maxlength",
+-	"media",
+-	"mediagroup",
+-	"method",
+-	"min",
+-	"multiple",
+-	"muted",
+-	"name",
+-	"novalidate",
+-	"open",
+-	"optimum",
+-	"pattern",
+-	"ping",
+-	"placeholder",
+-	"poster",
+-	"preload",
+-	"radiogroup",
+-	"readonly",
+-	"rel",
+-	"required",
+-	"reversed",
+-	"rows",
+-	"rowspan",
+-	"sandbox",
+-	"spellcheck",
+-	"scope",
+-	"scoped",
+-	"seamless",
+-	"selected",
+-	"shape",
+-	"size",
+-	"sizes",
+-	"span",
+-	"src",
+-	"srcdoc",
+-	"srclang",
+-	"start",
+-	"step",
+-	"style",
+-	"tabindex",
+-	"target",
+-	"title",
+-	"translate",
+-	"type",
+-	"typemustmatch",
+-	"usemap",
+-	"value",
+-	"width",
+-	"wrap",
+-}
+-
+-var eventHandlers = []string{
+-	"onabort",
+-	"onafterprint",
+-	"onbeforeprint",
+-	"onbeforeunload",
+-	"onblur",
+-	"oncancel",
+-	"oncanplay",
+-	"oncanplaythrough",
+-	"onchange",
+-	"onclick",
+-	"onclose",
+-	"oncontextmenu",
+-	"oncuechange",
+-	"ondblclick",
+-	"ondrag",
+-	"ondragend",
+-	"ondragenter",
+-	"ondragleave",
+-	"ondragover",
+-	"ondragstart",
+-	"ondrop",
+-	"ondurationchange",
+-	"onemptied",
+-	"onended",
+-	"onerror",
+-	"onfocus",
+-	"onhashchange",
+-	"oninput",
+-	"oninvalid",
+-	"onkeydown",
+-	"onkeypress",
+-	"onkeyup",
+-	"onload",
+-	"onloadeddata",
+-	"onloadedmetadata",
+-	"onloadstart",
+-	"onmessage",
+-	"onmousedown",
+-	"onmousemove",
+-	"onmouseout",
+-	"onmouseover",
+-	"onmouseup",
+-	"onmousewheel",
+-	"onoffline",
+-	"ononline",
+-	"onpagehide",
+-	"onpageshow",
+-	"onpause",
+-	"onplay",
+-	"onplaying",
+-	"onpopstate",
+-	"onprogress",
+-	"onratechange",
+-	"onreset",
+-	"onresize",
+-	"onscroll",
+-	"onseeked",
+-	"onseeking",
+-	"onselect",
+-	"onshow",
+-	"onstalled",
+-	"onstorage",
+-	"onsubmit",
+-	"onsuspend",
+-	"ontimeupdate",
+-	"onunload",
+-	"onvolumechange",
+-	"onwaiting",
+-}
+-
+-// extra are ad-hoc values not covered by any of the lists above.
+-var extra = []string{
+-	"align",
+-	"annotation",
+-	"annotation-xml",
+-	"applet",
+-	"basefont",
+-	"bgsound",
+-	"big",
+-	"blink",
+-	"center",
+-	"color",
+-	"desc",
+-	"face",
+-	"font",
+-	"foreignObject", // HTML is case-insensitive, but SVG-embedded-in-HTML is case-sensitive.
+-	"foreignobject",
+-	"frame",
+-	"frameset",
+-	"image",
+-	"isindex",
+-	"listing",
+-	"malignmark",
+-	"marquee",
+-	"math",
+-	"mglyph",
+-	"mi",
+-	"mn",
+-	"mo",
+-	"ms",
+-	"mtext",
+-	"nobr",
+-	"noembed",
+-	"noframes",
+-	"plaintext",
+-	"prompt",
+-	"public",
+-	"spacer",
+-	"strike",
+-	"svg",
+-	"system",
+-	"tt",
+-	"xmp",
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/table.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/table.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/table.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/table.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,694 +0,0 @@
+-// generated by go run gen.go; DO NOT EDIT
+-
+-package atom
+-
+-const (
+-	A                Atom = 0x1
+-	Abbr             Atom = 0x4
+-	Accept           Atom = 0x2106
+-	AcceptCharset    Atom = 0x210e
+-	Accesskey        Atom = 0x3309
+-	Action           Atom = 0x21b06
+-	Address          Atom = 0x5d507
+-	Align            Atom = 0x1105
+-	Alt              Atom = 0x4503
+-	Annotation       Atom = 0x18d0a
+-	AnnotationXml    Atom = 0x18d0e
+-	Applet           Atom = 0x2d106
+-	Area             Atom = 0x31804
+-	Article          Atom = 0x39907
+-	Aside            Atom = 0x4f05
+-	Async            Atom = 0x9305
+-	Audio            Atom = 0xaf05
+-	Autocomplete     Atom = 0xd50c
+-	Autofocus        Atom = 0xe109
+-	Autoplay         Atom = 0x10c08
+-	B                Atom = 0x101
+-	Base             Atom = 0x11404
+-	Basefont         Atom = 0x11408
+-	Bdi              Atom = 0x1a03
+-	Bdo              Atom = 0x12503
+-	Bgsound          Atom = 0x13807
+-	Big              Atom = 0x14403
+-	Blink            Atom = 0x14705
+-	Blockquote       Atom = 0x14c0a
+-	Body             Atom = 0x2f04
+-	Border           Atom = 0x15606
+-	Br               Atom = 0x202
+-	Button           Atom = 0x15c06
+-	Canvas           Atom = 0x4b06
+-	Caption          Atom = 0x1e007
+-	Center           Atom = 0x2df06
+-	Challenge        Atom = 0x23e09
+-	Charset          Atom = 0x2807
+-	Checked          Atom = 0x33f07
+-	Cite             Atom = 0x9704
+-	Class            Atom = 0x3d905
+-	Code             Atom = 0x16f04
+-	Col              Atom = 0x17603
+-	Colgroup         Atom = 0x17608
+-	Color            Atom = 0x18305
+-	Cols             Atom = 0x18804
+-	Colspan          Atom = 0x18807
+-	Command          Atom = 0x19b07
+-	Content          Atom = 0x42c07
+-	Contenteditable  Atom = 0x42c0f
+-	Contextmenu      Atom = 0x3480b
+-	Controls         Atom = 0x1ae08
+-	Coords           Atom = 0x1ba06
+-	Crossorigin      Atom = 0x1c40b
+-	Data             Atom = 0x44304
+-	Datalist         Atom = 0x44308
+-	Datetime         Atom = 0x25b08
+-	Dd               Atom = 0x28802
+-	Default          Atom = 0x5207
+-	Defer            Atom = 0x17105
+-	Del              Atom = 0x4d603
+-	Desc             Atom = 0x4804
+-	Details          Atom = 0x6507
+-	Dfn              Atom = 0x8303
+-	Dialog           Atom = 0x1b06
+-	Dir              Atom = 0x9d03
+-	Dirname          Atom = 0x9d07
+-	Disabled         Atom = 0x10008
+-	Div              Atom = 0x10703
+-	Dl               Atom = 0x13e02
+-	Download         Atom = 0x40908
+-	Draggable        Atom = 0x1a109
+-	Dropzone         Atom = 0x3a208
+-	Dt               Atom = 0x4e402
+-	Em               Atom = 0x7f02
+-	Embed            Atom = 0x7f05
+-	Enctype          Atom = 0x23007
+-	Face             Atom = 0x2dd04
+-	Fieldset         Atom = 0x1d508
+-	Figcaption       Atom = 0x1dd0a
+-	Figure           Atom = 0x1f106
+-	Font             Atom = 0x11804
+-	Footer           Atom = 0x5906
+-	For              Atom = 0x1fd03
+-	ForeignObject    Atom = 0x1fd0d
+-	Foreignobject    Atom = 0x20a0d
+-	Form             Atom = 0x21704
+-	Formaction       Atom = 0x2170a
+-	Formenctype      Atom = 0x22c0b
+-	Formmethod       Atom = 0x2470a
+-	Formnovalidate   Atom = 0x2510e
+-	Formtarget       Atom = 0x2660a
+-	Frame            Atom = 0x8705
+-	Frameset         Atom = 0x8708
+-	H1               Atom = 0x13602
+-	H2               Atom = 0x29602
+-	H3               Atom = 0x2c502
+-	H4               Atom = 0x30e02
+-	H5               Atom = 0x4e602
+-	H6               Atom = 0x27002
+-	Head             Atom = 0x2fa04
+-	Header           Atom = 0x2fa06
+-	Headers          Atom = 0x2fa07
+-	Height           Atom = 0x27206
+-	Hgroup           Atom = 0x27a06
+-	Hidden           Atom = 0x28606
+-	High             Atom = 0x29304
+-	Hr               Atom = 0x13102
+-	Href             Atom = 0x29804
+-	Hreflang         Atom = 0x29808
+-	Html             Atom = 0x27604
+-	HttpEquiv        Atom = 0x2a00a
+-	I                Atom = 0x601
+-	Icon             Atom = 0x42b04
+-	Id               Atom = 0x5102
+-	Iframe           Atom = 0x2b406
+-	Image            Atom = 0x2ba05
+-	Img              Atom = 0x2bf03
+-	Inert            Atom = 0x4c105
+-	Input            Atom = 0x3f605
+-	Ins              Atom = 0x1cd03
+-	Isindex          Atom = 0x2c707
+-	Ismap            Atom = 0x2ce05
+-	Itemid           Atom = 0x9806
+-	Itemprop         Atom = 0x57e08
+-	Itemref          Atom = 0x2d707
+-	Itemscope        Atom = 0x2e509
+-	Itemtype         Atom = 0x2ef08
+-	Kbd              Atom = 0x1903
+-	Keygen           Atom = 0x3906
+-	Keytype          Atom = 0x51207
+-	Kind             Atom = 0xfd04
+-	Label            Atom = 0xba05
+-	Lang             Atom = 0x29c04
+-	Legend           Atom = 0x1a806
+-	Li               Atom = 0x1202
+-	Link             Atom = 0x14804
+-	List             Atom = 0x44704
+-	Listing          Atom = 0x44707
+-	Loop             Atom = 0xbe04
+-	Low              Atom = 0x13f03
+-	Malignmark       Atom = 0x100a
+-	Manifest         Atom = 0x5b608
+-	Map              Atom = 0x2d003
+-	Mark             Atom = 0x1604
+-	Marquee          Atom = 0x5f207
+-	Math             Atom = 0x2f704
+-	Max              Atom = 0x30603
+-	Maxlength        Atom = 0x30609
+-	Media            Atom = 0xa205
+-	Mediagroup       Atom = 0xa20a
+-	Menu             Atom = 0x34f04
+-	Meta             Atom = 0x45604
+-	Meter            Atom = 0x26105
+-	Method           Atom = 0x24b06
+-	Mglyph           Atom = 0x2c006
+-	Mi               Atom = 0x9b02
+-	Min              Atom = 0x31003
+-	Mn               Atom = 0x25402
+-	Mo               Atom = 0x47a02
+-	Ms               Atom = 0x2e802
+-	Mtext            Atom = 0x31305
+-	Multiple         Atom = 0x32108
+-	Muted            Atom = 0x32905
+-	Name             Atom = 0xa004
+-	Nav              Atom = 0x3e03
+-	Nobr             Atom = 0x7404
+-	Noembed          Atom = 0x7d07
+-	Noframes         Atom = 0x8508
+-	Noscript         Atom = 0x28b08
+-	Novalidate       Atom = 0x2550a
+-	Object           Atom = 0x21106
+-	Ol               Atom = 0xcd02
+-	Onabort          Atom = 0x16007
+-	Onafterprint     Atom = 0x1e50c
+-	Onbeforeprint    Atom = 0x21f0d
+-	Onbeforeunload   Atom = 0x5c90e
+-	Onblur           Atom = 0x3e206
+-	Oncancel         Atom = 0xb308
+-	Oncanplay        Atom = 0x12709
+-	Oncanplaythrough Atom = 0x12710
+-	Onchange         Atom = 0x3b808
+-	Onclick          Atom = 0x2ad07
+-	Onclose          Atom = 0x32e07
+-	Oncontextmenu    Atom = 0x3460d
+-	Oncuechange      Atom = 0x3530b
+-	Ondblclick       Atom = 0x35e0a
+-	Ondrag           Atom = 0x36806
+-	Ondragend        Atom = 0x36809
+-	Ondragenter      Atom = 0x3710b
+-	Ondragleave      Atom = 0x37c0b
+-	Ondragover       Atom = 0x3870a
+-	Ondragstart      Atom = 0x3910b
+-	Ondrop           Atom = 0x3a006
+-	Ondurationchange Atom = 0x3b010
+-	Onemptied        Atom = 0x3a709
+-	Onended          Atom = 0x3c007
+-	Onerror          Atom = 0x3c707
+-	Onfocus          Atom = 0x3ce07
+-	Onhashchange     Atom = 0x3e80c
+-	Oninput          Atom = 0x3f407
+-	Oninvalid        Atom = 0x3fb09
+-	Onkeydown        Atom = 0x40409
+-	Onkeypress       Atom = 0x4110a
+-	Onkeyup          Atom = 0x42107
+-	Onload           Atom = 0x43b06
+-	Onloadeddata     Atom = 0x43b0c
+-	Onloadedmetadata Atom = 0x44e10
+-	Onloadstart      Atom = 0x4640b
+-	Onmessage        Atom = 0x46f09
+-	Onmousedown      Atom = 0x4780b
+-	Onmousemove      Atom = 0x4830b
+-	Onmouseout       Atom = 0x48e0a
+-	Onmouseover      Atom = 0x49b0b
+-	Onmouseup        Atom = 0x4a609
+-	Onmousewheel     Atom = 0x4af0c
+-	Onoffline        Atom = 0x4bb09
+-	Ononline         Atom = 0x4c608
+-	Onpagehide       Atom = 0x4ce0a
+-	Onpageshow       Atom = 0x4d90a
+-	Onpause          Atom = 0x4e807
+-	Onplay           Atom = 0x4f206
+-	Onplaying        Atom = 0x4f209
+-	Onpopstate       Atom = 0x4fb0a
+-	Onprogress       Atom = 0x5050a
+-	Onratechange     Atom = 0x5190c
+-	Onreset          Atom = 0x52507
+-	Onresize         Atom = 0x52c08
+-	Onscroll         Atom = 0x53a08
+-	Onseeked         Atom = 0x54208
+-	Onseeking        Atom = 0x54a09
+-	Onselect         Atom = 0x55308
+-	Onshow           Atom = 0x55d06
+-	Onstalled        Atom = 0x56609
+-	Onstorage        Atom = 0x56f09
+-	Onsubmit         Atom = 0x57808
+-	Onsuspend        Atom = 0x58809
+-	Ontimeupdate     Atom = 0x1190c
+-	Onunload         Atom = 0x59108
+-	Onvolumechange   Atom = 0x5990e
+-	Onwaiting        Atom = 0x5a709
+-	Open             Atom = 0x58404
+-	Optgroup         Atom = 0xc008
+-	Optimum          Atom = 0x5b007
+-	Option           Atom = 0x5c506
+-	Output           Atom = 0x49506
+-	P                Atom = 0xc01
+-	Param            Atom = 0xc05
+-	Pattern          Atom = 0x6e07
+-	Ping             Atom = 0xab04
+-	Placeholder      Atom = 0xc70b
+-	Plaintext        Atom = 0xf109
+-	Poster           Atom = 0x17d06
+-	Pre              Atom = 0x27f03
+-	Preload          Atom = 0x27f07
+-	Progress         Atom = 0x50708
+-	Prompt           Atom = 0x5bf06
+-	Public           Atom = 0x42706
+-	Q                Atom = 0x15101
+-	Radiogroup       Atom = 0x30a
+-	Readonly         Atom = 0x31908
+-	Rel              Atom = 0x28003
+-	Required         Atom = 0x1f508
+-	Reversed         Atom = 0x5e08
+-	Rows             Atom = 0x7704
+-	Rowspan          Atom = 0x7707
+-	Rp               Atom = 0x1eb02
+-	Rt               Atom = 0x16502
+-	Ruby             Atom = 0xd104
+-	S                Atom = 0x2c01
+-	Samp             Atom = 0x6b04
+-	Sandbox          Atom = 0xe907
+-	Scope            Atom = 0x2e905
+-	Scoped           Atom = 0x2e906
+-	Script           Atom = 0x28d06
+-	Seamless         Atom = 0x33308
+-	Section          Atom = 0x3dd07
+-	Select           Atom = 0x55506
+-	Selected         Atom = 0x55508
+-	Shape            Atom = 0x1b505
+-	Size             Atom = 0x53004
+-	Sizes            Atom = 0x53005
+-	Small            Atom = 0x1bf05
+-	Source           Atom = 0x1cf06
+-	Spacer           Atom = 0x30006
+-	Span             Atom = 0x7a04
+-	Spellcheck       Atom = 0x33a0a
+-	Src              Atom = 0x3d403
+-	Srcdoc           Atom = 0x3d406
+-	Srclang          Atom = 0x41a07
+-	Start            Atom = 0x39705
+-	Step             Atom = 0x5bc04
+-	Strike           Atom = 0x50e06
+-	Strong           Atom = 0x53406
+-	Style            Atom = 0x5db05
+-	Sub              Atom = 0x57a03
+-	Summary          Atom = 0x5e007
+-	Sup              Atom = 0x5e703
+-	Svg              Atom = 0x5ea03
+-	System           Atom = 0x5ed06
+-	Tabindex         Atom = 0x45c08
+-	Table            Atom = 0x43605
+-	Target           Atom = 0x26a06
+-	Tbody            Atom = 0x2e05
+-	Td               Atom = 0x4702
+-	Textarea         Atom = 0x31408
+-	Tfoot            Atom = 0x5805
+-	Th               Atom = 0x13002
+-	Thead            Atom = 0x2f905
+-	Time             Atom = 0x11b04
+-	Title            Atom = 0x8e05
+-	Tr               Atom = 0xf902
+-	Track            Atom = 0xf905
+-	Translate        Atom = 0x16609
+-	Tt               Atom = 0x7002
+-	Type             Atom = 0x23304
+-	Typemustmatch    Atom = 0x2330d
+-	U                Atom = 0xb01
+-	Ul               Atom = 0x5602
+-	Usemap           Atom = 0x4ec06
+-	Value            Atom = 0x4005
+-	Var              Atom = 0x10903
+-	Video            Atom = 0x2a905
+-	Wbr              Atom = 0x14103
+-	Width            Atom = 0x4e205
+-	Wrap             Atom = 0x56204
+-	Xmp              Atom = 0xef03
+-)
+-
+-const hash0 = 0xc17da63e
+-
+-const maxAtomLen = 16
+-
+-var table = [1 << 9]Atom{
+-	0x1:   0x4830b, // onmousemove
+-	0x2:   0x5a709, // onwaiting
+-	0x4:   0x5bf06, // prompt
+-	0x7:   0x5b007, // optimum
+-	0x8:   0x1604,  // mark
+-	0xa:   0x2d707, // itemref
+-	0xb:   0x4d90a, // onpageshow
+-	0xc:   0x55506, // select
+-	0xd:   0x1a109, // draggable
+-	0xe:   0x3e03,  // nav
+-	0xf:   0x19b07, // command
+-	0x11:  0xb01,   // u
+-	0x14:  0x2fa07, // headers
+-	0x15:  0x44308, // datalist
+-	0x17:  0x6b04,  // samp
+-	0x1a:  0x40409, // onkeydown
+-	0x1b:  0x53a08, // onscroll
+-	0x1c:  0x17603, // col
+-	0x20:  0x57e08, // itemprop
+-	0x21:  0x2a00a, // http-equiv
+-	0x22:  0x5e703, // sup
+-	0x24:  0x1f508, // required
+-	0x2b:  0x27f07, // preload
+-	0x2c:  0x21f0d, // onbeforeprint
+-	0x2d:  0x3710b, // ondragenter
+-	0x2e:  0x4e402, // dt
+-	0x2f:  0x57808, // onsubmit
+-	0x30:  0x13102, // hr
+-	0x31:  0x3460d, // oncontextmenu
+-	0x33:  0x2ba05, // image
+-	0x34:  0x4e807, // onpause
+-	0x35:  0x27a06, // hgroup
+-	0x36:  0xab04,  // ping
+-	0x37:  0x55308, // onselect
+-	0x3a:  0x10703, // div
+-	0x40:  0x9b02,  // mi
+-	0x41:  0x33308, // seamless
+-	0x42:  0x2807,  // charset
+-	0x43:  0x5102,  // id
+-	0x44:  0x4fb0a, // onpopstate
+-	0x45:  0x4d603, // del
+-	0x46:  0x5f207, // marquee
+-	0x47:  0x3309,  // accesskey
+-	0x49:  0x5906,  // footer
+-	0x4a:  0x2d106, // applet
+-	0x4b:  0x2ce05, // ismap
+-	0x51:  0x34f04, // menu
+-	0x52:  0x2f04,  // body
+-	0x55:  0x8708,  // frameset
+-	0x56:  0x52507, // onreset
+-	0x57:  0x14705, // blink
+-	0x58:  0x8e05,  // title
+-	0x59:  0x39907, // article
+-	0x5b:  0x13002, // th
+-	0x5d:  0x15101, // q
+-	0x5e:  0x58404, // open
+-	0x5f:  0x31804, // area
+-	0x61:  0x43b06, // onload
+-	0x62:  0x3f605, // input
+-	0x63:  0x11404, // base
+-	0x64:  0x18807, // colspan
+-	0x65:  0x51207, // keytype
+-	0x66:  0x13e02, // dl
+-	0x68:  0x1d508, // fieldset
+-	0x6a:  0x31003, // min
+-	0x6b:  0x10903, // var
+-	0x6f:  0x2fa06, // header
+-	0x70:  0x16502, // rt
+-	0x71:  0x17608, // colgroup
+-	0x72:  0x25402, // mn
+-	0x74:  0x16007, // onabort
+-	0x75:  0x3906,  // keygen
+-	0x76:  0x4bb09, // onoffline
+-	0x77:  0x23e09, // challenge
+-	0x78:  0x2d003, // map
+-	0x7a:  0x30e02, // h4
+-	0x7b:  0x3c707, // onerror
+-	0x7c:  0x30609, // maxlength
+-	0x7d:  0x31305, // mtext
+-	0x7e:  0x5805,  // tfoot
+-	0x7f:  0x11804, // font
+-	0x80:  0x100a,  // malignmark
+-	0x81:  0x45604, // meta
+-	0x82:  0x9305,  // async
+-	0x83:  0x2c502, // h3
+-	0x84:  0x28802, // dd
+-	0x85:  0x29804, // href
+-	0x86:  0xa20a,  // mediagroup
+-	0x87:  0x1ba06, // coords
+-	0x88:  0x41a07, // srclang
+-	0x89:  0x35e0a, // ondblclick
+-	0x8a:  0x4005,  // value
+-	0x8c:  0xb308,  // oncancel
+-	0x8e:  0x33a0a, // spellcheck
+-	0x8f:  0x8705,  // frame
+-	0x91:  0x14403, // big
+-	0x94:  0x21b06, // action
+-	0x95:  0x9d03,  // dir
+-	0x97:  0x31908, // readonly
+-	0x99:  0x43605, // table
+-	0x9a:  0x5e007, // summary
+-	0x9b:  0x14103, // wbr
+-	0x9c:  0x30a,   // radiogroup
+-	0x9d:  0xa004,  // name
+-	0x9f:  0x5ed06, // system
+-	0xa1:  0x18305, // color
+-	0xa2:  0x4b06,  // canvas
+-	0xa3:  0x27604, // html
+-	0xa5:  0x54a09, // onseeking
+-	0xac:  0x1b505, // shape
+-	0xad:  0x28003, // rel
+-	0xae:  0x12710, // oncanplaythrough
+-	0xaf:  0x3870a, // ondragover
+-	0xb1:  0x1fd0d, // foreignObject
+-	0xb3:  0x7704,  // rows
+-	0xb6:  0x44707, // listing
+-	0xb7:  0x49506, // output
+-	0xb9:  0x3480b, // contextmenu
+-	0xbb:  0x13f03, // low
+-	0xbc:  0x1eb02, // rp
+-	0xbd:  0x58809, // onsuspend
+-	0xbe:  0x15c06, // button
+-	0xbf:  0x4804,  // desc
+-	0xc1:  0x3dd07, // section
+-	0xc2:  0x5050a, // onprogress
+-	0xc3:  0x56f09, // onstorage
+-	0xc4:  0x2f704, // math
+-	0xc5:  0x4f206, // onplay
+-	0xc7:  0x5602,  // ul
+-	0xc8:  0x6e07,  // pattern
+-	0xc9:  0x4af0c, // onmousewheel
+-	0xca:  0x36809, // ondragend
+-	0xcb:  0xd104,  // ruby
+-	0xcc:  0xc01,   // p
+-	0xcd:  0x32e07, // onclose
+-	0xce:  0x26105, // meter
+-	0xcf:  0x13807, // bgsound
+-	0xd2:  0x27206, // height
+-	0xd4:  0x101,   // b
+-	0xd5:  0x2ef08, // itemtype
+-	0xd8:  0x1e007, // caption
+-	0xd9:  0x10008, // disabled
+-	0xdc:  0x5ea03, // svg
+-	0xdd:  0x1bf05, // small
+-	0xde:  0x44304, // data
+-	0xe0:  0x4c608, // ononline
+-	0xe1:  0x2c006, // mglyph
+-	0xe3:  0x7f05,  // embed
+-	0xe4:  0xf902,  // tr
+-	0xe5:  0x4640b, // onloadstart
+-	0xe7:  0x3b010, // ondurationchange
+-	0xed:  0x12503, // bdo
+-	0xee:  0x4702,  // td
+-	0xef:  0x4f05,  // aside
+-	0xf0:  0x29602, // h2
+-	0xf1:  0x50708, // progress
+-	0xf2:  0x14c0a, // blockquote
+-	0xf4:  0xba05,  // label
+-	0xf5:  0x601,   // i
+-	0xf7:  0x7707,  // rowspan
+-	0xfb:  0x4f209, // onplaying
+-	0xfd:  0x2bf03, // img
+-	0xfe:  0xc008,  // optgroup
+-	0xff:  0x42c07, // content
+-	0x101: 0x5190c, // onratechange
+-	0x103: 0x3e80c, // onhashchange
+-	0x104: 0x6507,  // details
+-	0x106: 0x40908, // download
+-	0x109: 0xe907,  // sandbox
+-	0x10b: 0x42c0f, // contenteditable
+-	0x10d: 0x37c0b, // ondragleave
+-	0x10e: 0x2106,  // accept
+-	0x10f: 0x55508, // selected
+-	0x112: 0x2170a, // formaction
+-	0x113: 0x2df06, // center
+-	0x115: 0x44e10, // onloadedmetadata
+-	0x116: 0x14804, // link
+-	0x117: 0x11b04, // time
+-	0x118: 0x1c40b, // crossorigin
+-	0x119: 0x3ce07, // onfocus
+-	0x11a: 0x56204, // wrap
+-	0x11b: 0x42b04, // icon
+-	0x11d: 0x2a905, // video
+-	0x11e: 0x3d905, // class
+-	0x121: 0x5990e, // onvolumechange
+-	0x122: 0x3e206, // onblur
+-	0x123: 0x2e509, // itemscope
+-	0x124: 0x5db05, // style
+-	0x127: 0x42706, // public
+-	0x129: 0x2510e, // formnovalidate
+-	0x12a: 0x55d06, // onshow
+-	0x12c: 0x16609, // translate
+-	0x12d: 0x9704,  // cite
+-	0x12e: 0x2e802, // ms
+-	0x12f: 0x1190c, // ontimeupdate
+-	0x130: 0xfd04,  // kind
+-	0x131: 0x2660a, // formtarget
+-	0x135: 0x3c007, // onended
+-	0x136: 0x28606, // hidden
+-	0x137: 0x2c01,  // s
+-	0x139: 0x2470a, // formmethod
+-	0x13a: 0x44704, // list
+-	0x13c: 0x27002, // h6
+-	0x13d: 0xcd02,  // ol
+-	0x13e: 0x3530b, // oncuechange
+-	0x13f: 0x20a0d, // foreignobject
+-	0x143: 0x5c90e, // onbeforeunload
+-	0x145: 0x3a709, // onemptied
+-	0x146: 0x17105, // defer
+-	0x147: 0xef03,  // xmp
+-	0x148: 0xaf05,  // audio
+-	0x149: 0x1903,  // kbd
+-	0x14c: 0x46f09, // onmessage
+-	0x14d: 0x5c506, // option
+-	0x14e: 0x4503,  // alt
+-	0x14f: 0x33f07, // checked
+-	0x150: 0x10c08, // autoplay
+-	0x152: 0x202,   // br
+-	0x153: 0x2550a, // novalidate
+-	0x156: 0x7d07,  // noembed
+-	0x159: 0x2ad07, // onclick
+-	0x15a: 0x4780b, // onmousedown
+-	0x15b: 0x3b808, // onchange
+-	0x15e: 0x3fb09, // oninvalid
+-	0x15f: 0x2e906, // scoped
+-	0x160: 0x1ae08, // controls
+-	0x161: 0x32905, // muted
+-	0x163: 0x4ec06, // usemap
+-	0x164: 0x1dd0a, // figcaption
+-	0x165: 0x36806, // ondrag
+-	0x166: 0x29304, // high
+-	0x168: 0x3d403, // src
+-	0x169: 0x17d06, // poster
+-	0x16b: 0x18d0e, // annotation-xml
+-	0x16c: 0x5bc04, // step
+-	0x16d: 0x4,     // abbr
+-	0x16e: 0x1b06,  // dialog
+-	0x170: 0x1202,  // li
+-	0x172: 0x47a02, // mo
+-	0x175: 0x1fd03, // for
+-	0x176: 0x1cd03, // ins
+-	0x178: 0x53004, // size
+-	0x17a: 0x5207,  // default
+-	0x17b: 0x1a03,  // bdi
+-	0x17c: 0x4ce0a, // onpagehide
+-	0x17d: 0x9d07,  // dirname
+-	0x17e: 0x23304, // type
+-	0x17f: 0x21704, // form
+-	0x180: 0x4c105, // inert
+-	0x181: 0x12709, // oncanplay
+-	0x182: 0x8303,  // dfn
+-	0x183: 0x45c08, // tabindex
+-	0x186: 0x7f02,  // em
+-	0x187: 0x29c04, // lang
+-	0x189: 0x3a208, // dropzone
+-	0x18a: 0x4110a, // onkeypress
+-	0x18b: 0x25b08, // datetime
+-	0x18c: 0x18804, // cols
+-	0x18d: 0x1,     // a
+-	0x18e: 0x43b0c, // onloadeddata
+-	0x191: 0x15606, // border
+-	0x192: 0x2e05,  // tbody
+-	0x193: 0x24b06, // method
+-	0x195: 0xbe04,  // loop
+-	0x196: 0x2b406, // iframe
+-	0x198: 0x2fa04, // head
+-	0x19e: 0x5b608, // manifest
+-	0x19f: 0xe109,  // autofocus
+-	0x1a0: 0x16f04, // code
+-	0x1a1: 0x53406, // strong
+-	0x1a2: 0x32108, // multiple
+-	0x1a3: 0xc05,   // param
+-	0x1a6: 0x23007, // enctype
+-	0x1a7: 0x2dd04, // face
+-	0x1a8: 0xf109,  // plaintext
+-	0x1a9: 0x13602, // h1
+-	0x1aa: 0x56609, // onstalled
+-	0x1ad: 0x28d06, // script
+-	0x1ae: 0x30006, // spacer
+-	0x1af: 0x52c08, // onresize
+-	0x1b0: 0x49b0b, // onmouseover
+-	0x1b1: 0x59108, // onunload
+-	0x1b2: 0x54208, // onseeked
+-	0x1b4: 0x2330d, // typemustmatch
+-	0x1b5: 0x1f106, // figure
+-	0x1b6: 0x48e0a, // onmouseout
+-	0x1b7: 0x27f03, // pre
+-	0x1b8: 0x4e205, // width
+-	0x1bb: 0x7404,  // nobr
+-	0x1be: 0x7002,  // tt
+-	0x1bf: 0x1105,  // align
+-	0x1c0: 0x3f407, // oninput
+-	0x1c3: 0x42107, // onkeyup
+-	0x1c6: 0x1e50c, // onafterprint
+-	0x1c7: 0x210e,  // accept-charset
+-	0x1c8: 0x9806,  // itemid
+-	0x1cb: 0x50e06, // strike
+-	0x1cc: 0x57a03, // sub
+-	0x1cd: 0xf905,  // track
+-	0x1ce: 0x39705, // start
+-	0x1d0: 0x11408, // basefont
+-	0x1d6: 0x1cf06, // source
+-	0x1d7: 0x1a806, // legend
+-	0x1d8: 0x2f905, // thead
+-	0x1da: 0x2e905, // scope
+-	0x1dd: 0x21106, // object
+-	0x1de: 0xa205,  // media
+-	0x1df: 0x18d0a, // annotation
+-	0x1e0: 0x22c0b, // formenctype
+-	0x1e2: 0x28b08, // noscript
+-	0x1e4: 0x53005, // sizes
+-	0x1e5: 0xd50c,  // autocomplete
+-	0x1e6: 0x7a04,  // span
+-	0x1e7: 0x8508,  // noframes
+-	0x1e8: 0x26a06, // target
+-	0x1e9: 0x3a006, // ondrop
+-	0x1ea: 0x3d406, // srcdoc
+-	0x1ec: 0x5e08,  // reversed
+-	0x1f0: 0x2c707, // isindex
+-	0x1f3: 0x29808, // hreflang
+-	0x1f5: 0x4e602, // h5
+-	0x1f6: 0x5d507, // address
+-	0x1fa: 0x30603, // max
+-	0x1fb: 0xc70b,  // placeholder
+-	0x1fc: 0x31408, // textarea
+-	0x1fe: 0x4a609, // onmouseup
+-	0x1ff: 0x3910b, // ondragstart
+-}
+-
+-const atomText = "abbradiogrouparamalignmarkbdialogaccept-charsetbodyaccesskey" +
+-	"genavaluealtdescanvasidefaultfootereversedetailsampatternobr" +
+-	"owspanoembedfnoframesetitleasyncitemidirnamediagroupingaudio" +
+-	"ncancelabelooptgrouplaceholderubyautocompleteautofocusandbox" +
+-	"mplaintextrackindisabledivarautoplaybasefontimeupdatebdoncan" +
+-	"playthrough1bgsoundlowbrbigblinkblockquoteborderbuttonabortr" +
+-	"anslatecodefercolgroupostercolorcolspannotation-xmlcommandra" +
+-	"ggablegendcontrolshapecoordsmallcrossoriginsourcefieldsetfig" +
+-	"captionafterprintfigurequiredforeignObjectforeignobjectforma" +
+-	"ctionbeforeprintformenctypemustmatchallengeformmethodformnov" +
+-	"alidatetimeterformtargeth6heightmlhgroupreloadhiddenoscripth" +
+-	"igh2hreflanghttp-equivideonclickiframeimageimglyph3isindexis" +
+-	"mappletitemrefacenteritemscopeditemtypematheaderspacermaxlen" +
+-	"gth4minmtextareadonlymultiplemutedoncloseamlesspellcheckedon" +
+-	"contextmenuoncuechangeondblclickondragendondragenterondragle" +
+-	"aveondragoverondragstarticleondropzonemptiedondurationchange" +
+-	"onendedonerroronfocusrcdoclassectionbluronhashchangeoninputo" +
+-	"ninvalidonkeydownloadonkeypressrclangonkeyupublicontentedita" +
+-	"bleonloadeddatalistingonloadedmetadatabindexonloadstartonmes" +
+-	"sageonmousedownonmousemoveonmouseoutputonmouseoveronmouseupo" +
+-	"nmousewheelonofflinertononlineonpagehidelonpageshowidth5onpa" +
+-	"usemaponplayingonpopstateonprogresstrikeytypeonratechangeonr" +
+-	"esetonresizestrongonscrollonseekedonseekingonselectedonshowr" +
+-	"aponstalledonstorageonsubmitempropenonsuspendonunloadonvolum" +
+-	"echangeonwaitingoptimumanifestepromptoptionbeforeunloaddress" +
+-	"tylesummarysupsvgsystemarquee"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/table_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/table_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/atom/table_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/atom/table_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,341 +0,0 @@
+-// generated by go run gen.go -test; DO NOT EDIT
+-
+-package atom
+-
+-var testAtomList = []string{
+-	"a",
+-	"abbr",
+-	"accept",
+-	"accept-charset",
+-	"accesskey",
+-	"action",
+-	"address",
+-	"align",
+-	"alt",
+-	"annotation",
+-	"annotation-xml",
+-	"applet",
+-	"area",
+-	"article",
+-	"aside",
+-	"async",
+-	"audio",
+-	"autocomplete",
+-	"autofocus",
+-	"autoplay",
+-	"b",
+-	"base",
+-	"basefont",
+-	"bdi",
+-	"bdo",
+-	"bgsound",
+-	"big",
+-	"blink",
+-	"blockquote",
+-	"body",
+-	"border",
+-	"br",
+-	"button",
+-	"canvas",
+-	"caption",
+-	"center",
+-	"challenge",
+-	"charset",
+-	"checked",
+-	"cite",
+-	"cite",
+-	"class",
+-	"code",
+-	"col",
+-	"colgroup",
+-	"color",
+-	"cols",
+-	"colspan",
+-	"command",
+-	"command",
+-	"content",
+-	"contenteditable",
+-	"contextmenu",
+-	"controls",
+-	"coords",
+-	"crossorigin",
+-	"data",
+-	"data",
+-	"datalist",
+-	"datetime",
+-	"dd",
+-	"default",
+-	"defer",
+-	"del",
+-	"desc",
+-	"details",
+-	"dfn",
+-	"dialog",
+-	"dir",
+-	"dirname",
+-	"disabled",
+-	"div",
+-	"dl",
+-	"download",
+-	"draggable",
+-	"dropzone",
+-	"dt",
+-	"em",
+-	"embed",
+-	"enctype",
+-	"face",
+-	"fieldset",
+-	"figcaption",
+-	"figure",
+-	"font",
+-	"footer",
+-	"for",
+-	"foreignObject",
+-	"foreignobject",
+-	"form",
+-	"form",
+-	"formaction",
+-	"formenctype",
+-	"formmethod",
+-	"formnovalidate",
+-	"formtarget",
+-	"frame",
+-	"frameset",
+-	"h1",
+-	"h2",
+-	"h3",
+-	"h4",
+-	"h5",
+-	"h6",
+-	"head",
+-	"header",
+-	"headers",
+-	"height",
+-	"hgroup",
+-	"hidden",
+-	"high",
+-	"hr",
+-	"href",
+-	"hreflang",
+-	"html",
+-	"http-equiv",
+-	"i",
+-	"icon",
+-	"id",
+-	"iframe",
+-	"image",
+-	"img",
+-	"inert",
+-	"input",
+-	"ins",
+-	"isindex",
+-	"ismap",
+-	"itemid",
+-	"itemprop",
+-	"itemref",
+-	"itemscope",
+-	"itemtype",
+-	"kbd",
+-	"keygen",
+-	"keytype",
+-	"kind",
+-	"label",
+-	"label",
+-	"lang",
+-	"legend",
+-	"li",
+-	"link",
+-	"list",
+-	"listing",
+-	"loop",
+-	"low",
+-	"malignmark",
+-	"manifest",
+-	"map",
+-	"mark",
+-	"marquee",
+-	"math",
+-	"max",
+-	"maxlength",
+-	"media",
+-	"mediagroup",
+-	"menu",
+-	"meta",
+-	"meter",
+-	"method",
+-	"mglyph",
+-	"mi",
+-	"min",
+-	"mn",
+-	"mo",
+-	"ms",
+-	"mtext",
+-	"multiple",
+-	"muted",
+-	"name",
+-	"nav",
+-	"nobr",
+-	"noembed",
+-	"noframes",
+-	"noscript",
+-	"novalidate",
+-	"object",
+-	"ol",
+-	"onabort",
+-	"onafterprint",
+-	"onbeforeprint",
+-	"onbeforeunload",
+-	"onblur",
+-	"oncancel",
+-	"oncanplay",
+-	"oncanplaythrough",
+-	"onchange",
+-	"onclick",
+-	"onclose",
+-	"oncontextmenu",
+-	"oncuechange",
+-	"ondblclick",
+-	"ondrag",
+-	"ondragend",
+-	"ondragenter",
+-	"ondragleave",
+-	"ondragover",
+-	"ondragstart",
+-	"ondrop",
+-	"ondurationchange",
+-	"onemptied",
+-	"onended",
+-	"onerror",
+-	"onfocus",
+-	"onhashchange",
+-	"oninput",
+-	"oninvalid",
+-	"onkeydown",
+-	"onkeypress",
+-	"onkeyup",
+-	"onload",
+-	"onloadeddata",
+-	"onloadedmetadata",
+-	"onloadstart",
+-	"onmessage",
+-	"onmousedown",
+-	"onmousemove",
+-	"onmouseout",
+-	"onmouseover",
+-	"onmouseup",
+-	"onmousewheel",
+-	"onoffline",
+-	"ononline",
+-	"onpagehide",
+-	"onpageshow",
+-	"onpause",
+-	"onplay",
+-	"onplaying",
+-	"onpopstate",
+-	"onprogress",
+-	"onratechange",
+-	"onreset",
+-	"onresize",
+-	"onscroll",
+-	"onseeked",
+-	"onseeking",
+-	"onselect",
+-	"onshow",
+-	"onstalled",
+-	"onstorage",
+-	"onsubmit",
+-	"onsuspend",
+-	"ontimeupdate",
+-	"onunload",
+-	"onvolumechange",
+-	"onwaiting",
+-	"open",
+-	"optgroup",
+-	"optimum",
+-	"option",
+-	"output",
+-	"p",
+-	"param",
+-	"pattern",
+-	"ping",
+-	"placeholder",
+-	"plaintext",
+-	"poster",
+-	"pre",
+-	"preload",
+-	"progress",
+-	"prompt",
+-	"public",
+-	"q",
+-	"radiogroup",
+-	"readonly",
+-	"rel",
+-	"required",
+-	"reversed",
+-	"rows",
+-	"rowspan",
+-	"rp",
+-	"rt",
+-	"ruby",
+-	"s",
+-	"samp",
+-	"sandbox",
+-	"scope",
+-	"scoped",
+-	"script",
+-	"seamless",
+-	"section",
+-	"select",
+-	"selected",
+-	"shape",
+-	"size",
+-	"sizes",
+-	"small",
+-	"source",
+-	"spacer",
+-	"span",
+-	"span",
+-	"spellcheck",
+-	"src",
+-	"srcdoc",
+-	"srclang",
+-	"start",
+-	"step",
+-	"strike",
+-	"strong",
+-	"style",
+-	"style",
+-	"sub",
+-	"summary",
+-	"sup",
+-	"svg",
+-	"system",
+-	"tabindex",
+-	"table",
+-	"target",
+-	"tbody",
+-	"td",
+-	"textarea",
+-	"tfoot",
+-	"th",
+-	"thead",
+-	"time",
+-	"title",
+-	"title",
+-	"tr",
+-	"track",
+-	"translate",
+-	"tt",
+-	"type",
+-	"typemustmatch",
+-	"u",
+-	"ul",
+-	"usemap",
+-	"value",
+-	"var",
+-	"video",
+-	"wbr",
+-	"width",
+-	"wrap",
+-	"xmp",
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/const.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/const.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/const.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/const.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,100 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-// Section 12.2.3.2 of the HTML5 specification says "The following elements
+-// have varying levels of special parsing rules".
+-// http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#the-stack-of-open-elements
+-var isSpecialElementMap = map[string]bool{
+-	"address":    true,
+-	"applet":     true,
+-	"area":       true,
+-	"article":    true,
+-	"aside":      true,
+-	"base":       true,
+-	"basefont":   true,
+-	"bgsound":    true,
+-	"blockquote": true,
+-	"body":       true,
+-	"br":         true,
+-	"button":     true,
+-	"caption":    true,
+-	"center":     true,
+-	"col":        true,
+-	"colgroup":   true,
+-	"command":    true,
+-	"dd":         true,
+-	"details":    true,
+-	"dir":        true,
+-	"div":        true,
+-	"dl":         true,
+-	"dt":         true,
+-	"embed":      true,
+-	"fieldset":   true,
+-	"figcaption": true,
+-	"figure":     true,
+-	"footer":     true,
+-	"form":       true,
+-	"frame":      true,
+-	"frameset":   true,
+-	"h1":         true,
+-	"h2":         true,
+-	"h3":         true,
+-	"h4":         true,
+-	"h5":         true,
+-	"h6":         true,
+-	"head":       true,
+-	"header":     true,
+-	"hgroup":     true,
+-	"hr":         true,
+-	"html":       true,
+-	"iframe":     true,
+-	"img":        true,
+-	"input":      true,
+-	"isindex":    true,
+-	"li":         true,
+-	"link":       true,
+-	"listing":    true,
+-	"marquee":    true,
+-	"menu":       true,
+-	"meta":       true,
+-	"nav":        true,
+-	"noembed":    true,
+-	"noframes":   true,
+-	"noscript":   true,
+-	"object":     true,
+-	"ol":         true,
+-	"p":          true,
+-	"param":      true,
+-	"plaintext":  true,
+-	"pre":        true,
+-	"script":     true,
+-	"section":    true,
+-	"select":     true,
+-	"style":      true,
+-	"summary":    true,
+-	"table":      true,
+-	"tbody":      true,
+-	"td":         true,
+-	"textarea":   true,
+-	"tfoot":      true,
+-	"th":         true,
+-	"thead":      true,
+-	"title":      true,
+-	"tr":         true,
+-	"ul":         true,
+-	"wbr":        true,
+-	"xmp":        true,
+-}
+-
+-func isSpecialElement(element *Node) bool {
+-	switch element.Namespace {
+-	case "", "html":
+-		return isSpecialElementMap[element.Data]
+-	case "svg":
+-		return element.Data == "foreignObject"
+-	}
+-	return false
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/doc.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/doc.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/doc.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/doc.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,106 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-/*
+-Package html implements an HTML5-compliant tokenizer and parser.
+-
+-Tokenization is done by creating a Tokenizer for an io.Reader r. It is the
+-caller's responsibility to ensure that r provides UTF-8 encoded HTML.
+-
+-	z := html.NewTokenizer(r)
+-
+-Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(),
+-which parses the next token and returns its type, or an error:
+-
+-	for {
+-		tt := z.Next()
+-		if tt == html.ErrorToken {
+-			// ...
+-			return ...
+-		}
+-		// Process the current token.
+-	}
+-
+-There are two APIs for retrieving the current token. The high-level API is to
+-call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs
+-allow optionally calling Raw after Next but before Token, Text, TagName, or
+-TagAttr. In EBNF notation, the valid call sequence per token is:
+-
+-	Next {Raw} [ Token | Text | TagName {TagAttr} ]
+-
+-Token returns an independent data structure that completely describes a token.
+-Entities (such as "&lt;") are unescaped, tag names and attribute keys are
+-lower-cased, and attributes are collected into a []Attribute. For example:
+-
+-	for {
+-		if z.Next() == html.ErrorToken {
+-			// Returning io.EOF indicates success.
+-			return z.Err()
+-		}
+-		emitToken(z.Token())
+-	}
+-
+-The low-level API performs fewer allocations and copies, but the contents of
+-the []byte values returned by Text, TagName and TagAttr may change on the next
+-call to Next. For example, to extract an HTML page's anchor text:
+-
+-	depth := 0
+-	for {
+-		tt := z.Next()
+-		switch tt {
+-		case ErrorToken:
+-			return z.Err()
+-		case TextToken:
+-			if depth > 0 {
+-				// emitBytes should copy the []byte it receives,
+-				// if it doesn't process it immediately.
+-				emitBytes(z.Text())
+-			}
+-		case StartTagToken, EndTagToken:
+-			tn, _ := z.TagName()
+-			if len(tn) == 1 && tn[0] == 'a' {
+-				if tt == StartTagToken {
+-					depth++
+-				} else {
+-					depth--
+-				}
+-			}
+-		}
+-	}
+-
+-Parsing is done by calling Parse with an io.Reader, which returns the root of
+-the parse tree (the document element) as a *Node. It is the caller's
+-responsibility to ensure that the Reader provides UTF-8 encoded HTML. For
+-example, to process each anchor node in depth-first order:
+-
+-	doc, err := html.Parse(r)
+-	if err != nil {
+-		// ...
+-	}
+-	var f func(*html.Node)
+-	f = func(n *html.Node) {
+-		if n.Type == html.ElementNode && n.Data == "a" {
+-			// Do something with n...
+-		}
+-		for c := n.FirstChild; c != nil; c = c.NextSibling {
+-			f(c)
+-		}
+-	}
+-	f(doc)
+-
+-The relevant specifications include:
+-http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html and
+-http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html
+-*/
+-package html
+-
+-// The tokenization algorithm implemented by this package is not a line-by-line
+-// transliteration of the relatively verbose state-machine in the WHATWG
+-// specification. A more direct approach is used instead, where the program
+-// counter implies the state, such as whether it is tokenizing a tag or a text
+-// node. Specification compliance is verified by checking expected and actual
+-// outputs over a test suite rather than aiming for algorithmic fidelity.
+-
+-// TODO(nigeltao): Does a DOM API belong in this package or a separate one?
+-// TODO(nigeltao): How does parsing interact with a JavaScript engine?
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/doctype.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/doctype.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/doctype.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/doctype.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,156 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"strings"
+-)
+-
+-// parseDoctype parses the data from a DoctypeToken into a name,
+-// public identifier, and system identifier. It returns a Node whose Type
+-// is DoctypeNode, whose Data is the name, and which has attributes
+-// named "system" and "public" for the two identifiers if they were present.
+-// quirks is whether the document should be parsed in "quirks mode".
+-func parseDoctype(s string) (n *Node, quirks bool) {
+-	n = &Node{Type: DoctypeNode}
+-
+-	// Find the name.
+-	space := strings.IndexAny(s, whitespace)
+-	if space == -1 {
+-		space = len(s)
+-	}
+-	n.Data = s[:space]
+-	// The comparison to "html" is case-sensitive.
+-	if n.Data != "html" {
+-		quirks = true
+-	}
+-	n.Data = strings.ToLower(n.Data)
+-	s = strings.TrimLeft(s[space:], whitespace)
+-
+-	if len(s) < 6 {
+-		// It can't start with "PUBLIC" or "SYSTEM".
+-		// Ignore the rest of the string.
+-		return n, quirks || s != ""
+-	}
+-
+-	key := strings.ToLower(s[:6])
+-	s = s[6:]
+-	for key == "public" || key == "system" {
+-		s = strings.TrimLeft(s, whitespace)
+-		if s == "" {
+-			break
+-		}
+-		quote := s[0]
+-		if quote != '"' && quote != '\'' {
+-			break
+-		}
+-		s = s[1:]
+-		q := strings.IndexRune(s, rune(quote))
+-		var id string
+-		if q == -1 {
+-			id = s
+-			s = ""
+-		} else {
+-			id = s[:q]
+-			s = s[q+1:]
+-		}
+-		n.Attr = append(n.Attr, Attribute{Key: key, Val: id})
+-		if key == "public" {
+-			key = "system"
+-		} else {
+-			key = ""
+-		}
+-	}
+-
+-	if key != "" || s != "" {
+-		quirks = true
+-	} else if len(n.Attr) > 0 {
+-		if n.Attr[0].Key == "public" {
+-			public := strings.ToLower(n.Attr[0].Val)
+-			switch public {
+-			case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html":
+-				quirks = true
+-			default:
+-				for _, q := range quirkyIDs {
+-					if strings.HasPrefix(public, q) {
+-						quirks = true
+-						break
+-					}
+-				}
+-			}
+-			// The following two public IDs only cause quirks mode if there is no system ID.
+-			if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") ||
+-				strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) {
+-				quirks = true
+-			}
+-		}
+-		if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" &&
+-			strings.ToLower(lastAttr.Val) == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" {
+-			quirks = true
+-		}
+-	}
+-
+-	return n, quirks
+-}
+-
+-// quirkyIDs is a list of public doctype identifiers that cause a document
+-// to be interpreted in quirks mode. The identifiers should be in lower case.
+-var quirkyIDs = []string{
+-	"+//silmaril//dtd html pro v0r11 19970101//",
+-	"-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
+-	"-//as//dtd html 3.0 aswedit + extensions//",
+-	"-//ietf//dtd html 2.0 level 1//",
+-	"-//ietf//dtd html 2.0 level 2//",
+-	"-//ietf//dtd html 2.0 strict level 1//",
+-	"-//ietf//dtd html 2.0 strict level 2//",
+-	"-//ietf//dtd html 2.0 strict//",
+-	"-//ietf//dtd html 2.0//",
+-	"-//ietf//dtd html 2.1e//",
+-	"-//ietf//dtd html 3.0//",
+-	"-//ietf//dtd html 3.2 final//",
+-	"-//ietf//dtd html 3.2//",
+-	"-//ietf//dtd html 3//",
+-	"-//ietf//dtd html level 0//",
+-	"-//ietf//dtd html level 1//",
+-	"-//ietf//dtd html level 2//",
+-	"-//ietf//dtd html level 3//",
+-	"-//ietf//dtd html strict level 0//",
+-	"-//ietf//dtd html strict level 1//",
+-	"-//ietf//dtd html strict level 2//",
+-	"-//ietf//dtd html strict level 3//",
+-	"-//ietf//dtd html strict//",
+-	"-//ietf//dtd html//",
+-	"-//metrius//dtd metrius presentational//",
+-	"-//microsoft//dtd internet explorer 2.0 html strict//",
+-	"-//microsoft//dtd internet explorer 2.0 html//",
+-	"-//microsoft//dtd internet explorer 2.0 tables//",
+-	"-//microsoft//dtd internet explorer 3.0 html strict//",
+-	"-//microsoft//dtd internet explorer 3.0 html//",
+-	"-//microsoft//dtd internet explorer 3.0 tables//",
+-	"-//netscape comm. corp.//dtd html//",
+-	"-//netscape comm. corp.//dtd strict html//",
+-	"-//o'reilly and associates//dtd html 2.0//",
+-	"-//o'reilly and associates//dtd html extended 1.0//",
+-	"-//o'reilly and associates//dtd html extended relaxed 1.0//",
+-	"-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
+-	"-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
+-	"-//spyglass//dtd html 2.0 extended//",
+-	"-//sq//dtd html 2.0 hotmetal + extensions//",
+-	"-//sun microsystems corp.//dtd hotjava html//",
+-	"-//sun microsystems corp.//dtd hotjava strict html//",
+-	"-//w3c//dtd html 3 1995-03-24//",
+-	"-//w3c//dtd html 3.2 draft//",
+-	"-//w3c//dtd html 3.2 final//",
+-	"-//w3c//dtd html 3.2//",
+-	"-//w3c//dtd html 3.2s draft//",
+-	"-//w3c//dtd html 4.0 frameset//",
+-	"-//w3c//dtd html 4.0 transitional//",
+-	"-//w3c//dtd html experimental 19960712//",
+-	"-//w3c//dtd html experimental 970421//",
+-	"-//w3c//dtd w3 html//",
+-	"-//w3o//dtd w3 html 3.0//",
+-	"-//webtechs//dtd mozilla html 2.0//",
+-	"-//webtechs//dtd mozilla html//",
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/entity.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/entity.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/entity.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/entity.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,2253 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-// All entities that do not end with ';' are 6 or fewer bytes long.
+-const longestEntityWithoutSemicolon = 6
+-
+-// entity is a map from HTML entity names to their values. The semicolon matters:
+-// http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html
+-// lists both "amp" and "amp;" as two separate entries.
+-//
+-// Note that the HTML5 list is larger than the HTML4 list at
+-// http://www.w3.org/TR/html4/sgml/entities.html
+-var entity = map[string]rune{
+-	"AElig;":                           '\U000000C6',
+-	"AMP;":                             '\U00000026',
+-	"Aacute;":                          '\U000000C1',
+-	"Abreve;":                          '\U00000102',
+-	"Acirc;":                           '\U000000C2',
+-	"Acy;":                             '\U00000410',
+-	"Afr;":                             '\U0001D504',
+-	"Agrave;":                          '\U000000C0',
+-	"Alpha;":                           '\U00000391',
+-	"Amacr;":                           '\U00000100',
+-	"And;":                             '\U00002A53',
+-	"Aogon;":                           '\U00000104',
+-	"Aopf;":                            '\U0001D538',
+-	"ApplyFunction;":                   '\U00002061',
+-	"Aring;":                           '\U000000C5',
+-	"Ascr;":                            '\U0001D49C',
+-	"Assign;":                          '\U00002254',
+-	"Atilde;":                          '\U000000C3',
+-	"Auml;":                            '\U000000C4',
+-	"Backslash;":                       '\U00002216',
+-	"Barv;":                            '\U00002AE7',
+-	"Barwed;":                          '\U00002306',
+-	"Bcy;":                             '\U00000411',
+-	"Because;":                         '\U00002235',
+-	"Bernoullis;":                      '\U0000212C',
+-	"Beta;":                            '\U00000392',
+-	"Bfr;":                             '\U0001D505',
+-	"Bopf;":                            '\U0001D539',
+-	"Breve;":                           '\U000002D8',
+-	"Bscr;":                            '\U0000212C',
+-	"Bumpeq;":                          '\U0000224E',
+-	"CHcy;":                            '\U00000427',
+-	"COPY;":                            '\U000000A9',
+-	"Cacute;":                          '\U00000106',
+-	"Cap;":                             '\U000022D2',
+-	"CapitalDifferentialD;":            '\U00002145',
+-	"Cayleys;":                         '\U0000212D',
+-	"Ccaron;":                          '\U0000010C',
+-	"Ccedil;":                          '\U000000C7',
+-	"Ccirc;":                           '\U00000108',
+-	"Cconint;":                         '\U00002230',
+-	"Cdot;":                            '\U0000010A',
+-	"Cedilla;":                         '\U000000B8',
+-	"CenterDot;":                       '\U000000B7',
+-	"Cfr;":                             '\U0000212D',
+-	"Chi;":                             '\U000003A7',
+-	"CircleDot;":                       '\U00002299',
+-	"CircleMinus;":                     '\U00002296',
+-	"CirclePlus;":                      '\U00002295',
+-	"CircleTimes;":                     '\U00002297',
+-	"ClockwiseContourIntegral;":        '\U00002232',
+-	"CloseCurlyDoubleQuote;":           '\U0000201D',
+-	"CloseCurlyQuote;":                 '\U00002019',
+-	"Colon;":                           '\U00002237',
+-	"Colone;":                          '\U00002A74',
+-	"Congruent;":                       '\U00002261',
+-	"Conint;":                          '\U0000222F',
+-	"ContourIntegral;":                 '\U0000222E',
+-	"Copf;":                            '\U00002102',
+-	"Coproduct;":                       '\U00002210',
+-	"CounterClockwiseContourIntegral;": '\U00002233',
+-	"Cross;":                    '\U00002A2F',
+-	"Cscr;":                     '\U0001D49E',
+-	"Cup;":                      '\U000022D3',
+-	"CupCap;":                   '\U0000224D',
+-	"DD;":                       '\U00002145',
+-	"DDotrahd;":                 '\U00002911',
+-	"DJcy;":                     '\U00000402',
+-	"DScy;":                     '\U00000405',
+-	"DZcy;":                     '\U0000040F',
+-	"Dagger;":                   '\U00002021',
+-	"Darr;":                     '\U000021A1',
+-	"Dashv;":                    '\U00002AE4',
+-	"Dcaron;":                   '\U0000010E',
+-	"Dcy;":                      '\U00000414',
+-	"Del;":                      '\U00002207',
+-	"Delta;":                    '\U00000394',
+-	"Dfr;":                      '\U0001D507',
+-	"DiacriticalAcute;":         '\U000000B4',
+-	"DiacriticalDot;":           '\U000002D9',
+-	"DiacriticalDoubleAcute;":   '\U000002DD',
+-	"DiacriticalGrave;":         '\U00000060',
+-	"DiacriticalTilde;":         '\U000002DC',
+-	"Diamond;":                  '\U000022C4',
+-	"DifferentialD;":            '\U00002146',
+-	"Dopf;":                     '\U0001D53B',
+-	"Dot;":                      '\U000000A8',
+-	"DotDot;":                   '\U000020DC',
+-	"DotEqual;":                 '\U00002250',
+-	"DoubleContourIntegral;":    '\U0000222F',
+-	"DoubleDot;":                '\U000000A8',
+-	"DoubleDownArrow;":          '\U000021D3',
+-	"DoubleLeftArrow;":          '\U000021D0',
+-	"DoubleLeftRightArrow;":     '\U000021D4',
+-	"DoubleLeftTee;":            '\U00002AE4',
+-	"DoubleLongLeftArrow;":      '\U000027F8',
+-	"DoubleLongLeftRightArrow;": '\U000027FA',
+-	"DoubleLongRightArrow;":     '\U000027F9',
+-	"DoubleRightArrow;":         '\U000021D2',
+-	"DoubleRightTee;":           '\U000022A8',
+-	"DoubleUpArrow;":            '\U000021D1',
+-	"DoubleUpDownArrow;":        '\U000021D5',
+-	"DoubleVerticalBar;":        '\U00002225',
+-	"DownArrow;":                '\U00002193',
+-	"DownArrowBar;":             '\U00002913',
+-	"DownArrowUpArrow;":         '\U000021F5',
+-	"DownBreve;":                '\U00000311',
+-	"DownLeftRightVector;":      '\U00002950',
+-	"DownLeftTeeVector;":        '\U0000295E',
+-	"DownLeftVector;":           '\U000021BD',
+-	"DownLeftVectorBar;":        '\U00002956',
+-	"DownRightTeeVector;":       '\U0000295F',
+-	"DownRightVector;":          '\U000021C1',
+-	"DownRightVectorBar;":       '\U00002957',
+-	"DownTee;":                  '\U000022A4',
+-	"DownTeeArrow;":             '\U000021A7',
+-	"Downarrow;":                '\U000021D3',
+-	"Dscr;":                     '\U0001D49F',
+-	"Dstrok;":                   '\U00000110',
+-	"ENG;":                      '\U0000014A',
+-	"ETH;":                      '\U000000D0',
+-	"Eacute;":                   '\U000000C9',
+-	"Ecaron;":                   '\U0000011A',
+-	"Ecirc;":                    '\U000000CA',
+-	"Ecy;":                      '\U0000042D',
+-	"Edot;":                     '\U00000116',
+-	"Efr;":                      '\U0001D508',
+-	"Egrave;":                   '\U000000C8',
+-	"Element;":                  '\U00002208',
+-	"Emacr;":                    '\U00000112',
+-	"EmptySmallSquare;":         '\U000025FB',
+-	"EmptyVerySmallSquare;":     '\U000025AB',
+-	"Eogon;":                    '\U00000118',
+-	"Eopf;":                     '\U0001D53C',
+-	"Epsilon;":                  '\U00000395',
+-	"Equal;":                    '\U00002A75',
+-	"EqualTilde;":               '\U00002242',
+-	"Equilibrium;":              '\U000021CC',
+-	"Escr;":                     '\U00002130',
+-	"Esim;":                     '\U00002A73',
+-	"Eta;":                      '\U00000397',
+-	"Euml;":                     '\U000000CB',
+-	"Exists;":                   '\U00002203',
+-	"ExponentialE;":             '\U00002147',
+-	"Fcy;":                      '\U00000424',
+-	"Ffr;":                      '\U0001D509',
+-	"FilledSmallSquare;":        '\U000025FC',
+-	"FilledVerySmallSquare;":    '\U000025AA',
+-	"Fopf;":                     '\U0001D53D',
+-	"ForAll;":                   '\U00002200',
+-	"Fouriertrf;":               '\U00002131',
+-	"Fscr;":                     '\U00002131',
+-	"GJcy;":                     '\U00000403',
+-	"GT;":                       '\U0000003E',
+-	"Gamma;":                    '\U00000393',
+-	"Gammad;":                   '\U000003DC',
+-	"Gbreve;":                   '\U0000011E',
+-	"Gcedil;":                   '\U00000122',
+-	"Gcirc;":                    '\U0000011C',
+-	"Gcy;":                      '\U00000413',
+-	"Gdot;":                     '\U00000120',
+-	"Gfr;":                      '\U0001D50A',
+-	"Gg;":                       '\U000022D9',
+-	"Gopf;":                     '\U0001D53E',
+-	"GreaterEqual;":             '\U00002265',
+-	"GreaterEqualLess;":         '\U000022DB',
+-	"GreaterFullEqual;":         '\U00002267',
+-	"GreaterGreater;":           '\U00002AA2',
+-	"GreaterLess;":              '\U00002277',
+-	"GreaterSlantEqual;":        '\U00002A7E',
+-	"GreaterTilde;":             '\U00002273',
+-	"Gscr;":                     '\U0001D4A2',
+-	"Gt;":                       '\U0000226B',
+-	"HARDcy;":                   '\U0000042A',
+-	"Hacek;":                    '\U000002C7',
+-	"Hat;":                      '\U0000005E',
+-	"Hcirc;":                    '\U00000124',
+-	"Hfr;":                      '\U0000210C',
+-	"HilbertSpace;":             '\U0000210B',
+-	"Hopf;":                     '\U0000210D',
+-	"HorizontalLine;":           '\U00002500',
+-	"Hscr;":                     '\U0000210B',
+-	"Hstrok;":                   '\U00000126',
+-	"HumpDownHump;":             '\U0000224E',
+-	"HumpEqual;":                '\U0000224F',
+-	"IEcy;":                     '\U00000415',
+-	"IJlig;":                    '\U00000132',
+-	"IOcy;":                     '\U00000401',
+-	"Iacute;":                   '\U000000CD',
+-	"Icirc;":                    '\U000000CE',
+-	"Icy;":                      '\U00000418',
+-	"Idot;":                     '\U00000130',
+-	"Ifr;":                      '\U00002111',
+-	"Igrave;":                   '\U000000CC',
+-	"Im;":                       '\U00002111',
+-	"Imacr;":                    '\U0000012A',
+-	"ImaginaryI;":               '\U00002148',
+-	"Implies;":                  '\U000021D2',
+-	"Int;":                      '\U0000222C',
+-	"Integral;":                 '\U0000222B',
+-	"Intersection;":             '\U000022C2',
+-	"InvisibleComma;":           '\U00002063',
+-	"InvisibleTimes;":           '\U00002062',
+-	"Iogon;":                    '\U0000012E',
+-	"Iopf;":                     '\U0001D540',
+-	"Iota;":                     '\U00000399',
+-	"Iscr;":                     '\U00002110',
+-	"Itilde;":                   '\U00000128',
+-	"Iukcy;":                    '\U00000406',
+-	"Iuml;":                     '\U000000CF',
+-	"Jcirc;":                    '\U00000134',
+-	"Jcy;":                      '\U00000419',
+-	"Jfr;":                      '\U0001D50D',
+-	"Jopf;":                     '\U0001D541',
+-	"Jscr;":                     '\U0001D4A5',
+-	"Jsercy;":                   '\U00000408',
+-	"Jukcy;":                    '\U00000404',
+-	"KHcy;":                     '\U00000425',
+-	"KJcy;":                     '\U0000040C',
+-	"Kappa;":                    '\U0000039A',
+-	"Kcedil;":                   '\U00000136',
+-	"Kcy;":                      '\U0000041A',
+-	"Kfr;":                      '\U0001D50E',
+-	"Kopf;":                     '\U0001D542',
+-	"Kscr;":                     '\U0001D4A6',
+-	"LJcy;":                     '\U00000409',
+-	"LT;":                       '\U0000003C',
+-	"Lacute;":                   '\U00000139',
+-	"Lambda;":                   '\U0000039B',
+-	"Lang;":                     '\U000027EA',
+-	"Laplacetrf;":               '\U00002112',
+-	"Larr;":                     '\U0000219E',
+-	"Lcaron;":                   '\U0000013D',
+-	"Lcedil;":                   '\U0000013B',
+-	"Lcy;":                      '\U0000041B',
+-	"LeftAngleBracket;":         '\U000027E8',
+-	"LeftArrow;":                '\U00002190',
+-	"LeftArrowBar;":             '\U000021E4',
+-	"LeftArrowRightArrow;":      '\U000021C6',
+-	"LeftCeiling;":              '\U00002308',
+-	"LeftDoubleBracket;":        '\U000027E6',
+-	"LeftDownTeeVector;":        '\U00002961',
+-	"LeftDownVector;":           '\U000021C3',
+-	"LeftDownVectorBar;":        '\U00002959',
+-	"LeftFloor;":                '\U0000230A',
+-	"LeftRightArrow;":           '\U00002194',
+-	"LeftRightVector;":          '\U0000294E',
+-	"LeftTee;":                  '\U000022A3',
+-	"LeftTeeArrow;":             '\U000021A4',
+-	"LeftTeeVector;":            '\U0000295A',
+-	"LeftTriangle;":             '\U000022B2',
+-	"LeftTriangleBar;":          '\U000029CF',
+-	"LeftTriangleEqual;":        '\U000022B4',
+-	"LeftUpDownVector;":         '\U00002951',
+-	"LeftUpTeeVector;":          '\U00002960',
+-	"LeftUpVector;":             '\U000021BF',
+-	"LeftUpVectorBar;":          '\U00002958',
+-	"LeftVector;":               '\U000021BC',
+-	"LeftVectorBar;":            '\U00002952',
+-	"Leftarrow;":                '\U000021D0',
+-	"Leftrightarrow;":           '\U000021D4',
+-	"LessEqualGreater;":         '\U000022DA',
+-	"LessFullEqual;":            '\U00002266',
+-	"LessGreater;":              '\U00002276',
+-	"LessLess;":                 '\U00002AA1',
+-	"LessSlantEqual;":           '\U00002A7D',
+-	"LessTilde;":                '\U00002272',
+-	"Lfr;":                      '\U0001D50F',
+-	"Ll;":                       '\U000022D8',
+-	"Lleftarrow;":               '\U000021DA',
+-	"Lmidot;":                   '\U0000013F',
+-	"LongLeftArrow;":            '\U000027F5',
+-	"LongLeftRightArrow;":       '\U000027F7',
+-	"LongRightArrow;":           '\U000027F6',
+-	"Longleftarrow;":            '\U000027F8',
+-	"Longleftrightarrow;":       '\U000027FA',
+-	"Longrightarrow;":           '\U000027F9',
+-	"Lopf;":                     '\U0001D543',
+-	"LowerLeftArrow;":           '\U00002199',
+-	"LowerRightArrow;":          '\U00002198',
+-	"Lscr;":                     '\U00002112',
+-	"Lsh;":                      '\U000021B0',
+-	"Lstrok;":                   '\U00000141',
+-	"Lt;":                       '\U0000226A',
+-	"Map;":                      '\U00002905',
+-	"Mcy;":                      '\U0000041C',
+-	"MediumSpace;":              '\U0000205F',
+-	"Mellintrf;":                '\U00002133',
+-	"Mfr;":                      '\U0001D510',
+-	"MinusPlus;":                '\U00002213',
+-	"Mopf;":                     '\U0001D544',
+-	"Mscr;":                     '\U00002133',
+-	"Mu;":                       '\U0000039C',
+-	"NJcy;":                     '\U0000040A',
+-	"Nacute;":                   '\U00000143',
+-	"Ncaron;":                   '\U00000147',
+-	"Ncedil;":                   '\U00000145',
+-	"Ncy;":                      '\U0000041D',
+-	"NegativeMediumSpace;":      '\U0000200B',
+-	"NegativeThickSpace;":       '\U0000200B',
+-	"NegativeThinSpace;":        '\U0000200B',
+-	"NegativeVeryThinSpace;":    '\U0000200B',
+-	"NestedGreaterGreater;":     '\U0000226B',
+-	"NestedLessLess;":           '\U0000226A',
+-	"NewLine;":                  '\U0000000A',
+-	"Nfr;":                      '\U0001D511',
+-	"NoBreak;":                  '\U00002060',
+-	"NonBreakingSpace;":         '\U000000A0',
+-	"Nopf;":                     '\U00002115',
+-	"Not;":                      '\U00002AEC',
+-	"NotCongruent;":             '\U00002262',
+-	"NotCupCap;":                '\U0000226D',
+-	"NotDoubleVerticalBar;":     '\U00002226',
+-	"NotElement;":               '\U00002209',
+-	"NotEqual;":                 '\U00002260',
+-	"NotExists;":                '\U00002204',
+-	"NotGreater;":               '\U0000226F',
+-	"NotGreaterEqual;":          '\U00002271',
+-	"NotGreaterLess;":           '\U00002279',
+-	"NotGreaterTilde;":          '\U00002275',
+-	"NotLeftTriangle;":          '\U000022EA',
+-	"NotLeftTriangleEqual;":     '\U000022EC',
+-	"NotLess;":                  '\U0000226E',
+-	"NotLessEqual;":             '\U00002270',
+-	"NotLessGreater;":           '\U00002278',
+-	"NotLessTilde;":             '\U00002274',
+-	"NotPrecedes;":              '\U00002280',
+-	"NotPrecedesSlantEqual;":    '\U000022E0',
+-	"NotReverseElement;":        '\U0000220C',
+-	"NotRightTriangle;":         '\U000022EB',
+-	"NotRightTriangleEqual;":    '\U000022ED',
+-	"NotSquareSubsetEqual;":     '\U000022E2',
+-	"NotSquareSupersetEqual;":   '\U000022E3',
+-	"NotSubsetEqual;":           '\U00002288',
+-	"NotSucceeds;":              '\U00002281',
+-	"NotSucceedsSlantEqual;":    '\U000022E1',
+-	"NotSupersetEqual;":         '\U00002289',
+-	"NotTilde;":                 '\U00002241',
+-	"NotTildeEqual;":            '\U00002244',
+-	"NotTildeFullEqual;":        '\U00002247',
+-	"NotTildeTilde;":            '\U00002249',
+-	"NotVerticalBar;":           '\U00002224',
+-	"Nscr;":                     '\U0001D4A9',
+-	"Ntilde;":                   '\U000000D1',
+-	"Nu;":                       '\U0000039D',
+-	"OElig;":                    '\U00000152',
+-	"Oacute;":                   '\U000000D3',
+-	"Ocirc;":                    '\U000000D4',
+-	"Ocy;":                      '\U0000041E',
+-	"Odblac;":                   '\U00000150',
+-	"Ofr;":                      '\U0001D512',
+-	"Ograve;":                   '\U000000D2',
+-	"Omacr;":                    '\U0000014C',
+-	"Omega;":                    '\U000003A9',
+-	"Omicron;":                  '\U0000039F',
+-	"Oopf;":                     '\U0001D546',
+-	"OpenCurlyDoubleQuote;":     '\U0000201C',
+-	"OpenCurlyQuote;":           '\U00002018',
+-	"Or;":                       '\U00002A54',
+-	"Oscr;":                     '\U0001D4AA',
+-	"Oslash;":                   '\U000000D8',
+-	"Otilde;":                   '\U000000D5',
+-	"Otimes;":                   '\U00002A37',
+-	"Ouml;":                     '\U000000D6',
+-	"OverBar;":                  '\U0000203E',
+-	"OverBrace;":                '\U000023DE',
+-	"OverBracket;":              '\U000023B4',
+-	"OverParenthesis;":          '\U000023DC',
+-	"PartialD;":                 '\U00002202',
+-	"Pcy;":                      '\U0000041F',
+-	"Pfr;":                      '\U0001D513',
+-	"Phi;":                      '\U000003A6',
+-	"Pi;":                       '\U000003A0',
+-	"PlusMinus;":                '\U000000B1',
+-	"Poincareplane;":            '\U0000210C',
+-	"Popf;":                     '\U00002119',
+-	"Pr;":                       '\U00002ABB',
+-	"Precedes;":                 '\U0000227A',
+-	"PrecedesEqual;":            '\U00002AAF',
+-	"PrecedesSlantEqual;":       '\U0000227C',
+-	"PrecedesTilde;":            '\U0000227E',
+-	"Prime;":                    '\U00002033',
+-	"Product;":                  '\U0000220F',
+-	"Proportion;":               '\U00002237',
+-	"Proportional;":             '\U0000221D',
+-	"Pscr;":                     '\U0001D4AB',
+-	"Psi;":                      '\U000003A8',
+-	"QUOT;":                     '\U00000022',
+-	"Qfr;":                      '\U0001D514',
+-	"Qopf;":                     '\U0000211A',
+-	"Qscr;":                     '\U0001D4AC',
+-	"RBarr;":                    '\U00002910',
+-	"REG;":                      '\U000000AE',
+-	"Racute;":                   '\U00000154',
+-	"Rang;":                     '\U000027EB',
+-	"Rarr;":                     '\U000021A0',
+-	"Rarrtl;":                   '\U00002916',
+-	"Rcaron;":                   '\U00000158',
+-	"Rcedil;":                   '\U00000156',
+-	"Rcy;":                      '\U00000420',
+-	"Re;":                       '\U0000211C',
+-	"ReverseElement;":           '\U0000220B',
+-	"ReverseEquilibrium;":       '\U000021CB',
+-	"ReverseUpEquilibrium;":     '\U0000296F',
+-	"Rfr;":                      '\U0000211C',
+-	"Rho;":                      '\U000003A1',
+-	"RightAngleBracket;":        '\U000027E9',
+-	"RightArrow;":               '\U00002192',
+-	"RightArrowBar;":            '\U000021E5',
+-	"RightArrowLeftArrow;":      '\U000021C4',
+-	"RightCeiling;":             '\U00002309',
+-	"RightDoubleBracket;":       '\U000027E7',
+-	"RightDownTeeVector;":       '\U0000295D',
+-	"RightDownVector;":          '\U000021C2',
+-	"RightDownVectorBar;":       '\U00002955',
+-	"RightFloor;":               '\U0000230B',
+-	"RightTee;":                 '\U000022A2',
+-	"RightTeeArrow;":            '\U000021A6',
+-	"RightTeeVector;":           '\U0000295B',
+-	"RightTriangle;":            '\U000022B3',
+-	"RightTriangleBar;":         '\U000029D0',
+-	"RightTriangleEqual;":       '\U000022B5',
+-	"RightUpDownVector;":        '\U0000294F',
+-	"RightUpTeeVector;":         '\U0000295C',
+-	"RightUpVector;":            '\U000021BE',
+-	"RightUpVectorBar;":         '\U00002954',
+-	"RightVector;":              '\U000021C0',
+-	"RightVectorBar;":           '\U00002953',
+-	"Rightarrow;":               '\U000021D2',
+-	"Ropf;":                     '\U0000211D',
+-	"RoundImplies;":             '\U00002970',
+-	"Rrightarrow;":              '\U000021DB',
+-	"Rscr;":                     '\U0000211B',
+-	"Rsh;":                      '\U000021B1',
+-	"RuleDelayed;":              '\U000029F4',
+-	"SHCHcy;":                   '\U00000429',
+-	"SHcy;":                     '\U00000428',
+-	"SOFTcy;":                   '\U0000042C',
+-	"Sacute;":                   '\U0000015A',
+-	"Sc;":                       '\U00002ABC',
+-	"Scaron;":                   '\U00000160',
+-	"Scedil;":                   '\U0000015E',
+-	"Scirc;":                    '\U0000015C',
+-	"Scy;":                      '\U00000421',
+-	"Sfr;":                      '\U0001D516',
+-	"ShortDownArrow;":           '\U00002193',
+-	"ShortLeftArrow;":           '\U00002190',
+-	"ShortRightArrow;":          '\U00002192',
+-	"ShortUpArrow;":             '\U00002191',
+-	"Sigma;":                    '\U000003A3',
+-	"SmallCircle;":              '\U00002218',
+-	"Sopf;":                     '\U0001D54A',
+-	"Sqrt;":                     '\U0000221A',
+-	"Square;":                   '\U000025A1',
+-	"SquareIntersection;":       '\U00002293',
+-	"SquareSubset;":             '\U0000228F',
+-	"SquareSubsetEqual;":        '\U00002291',
+-	"SquareSuperset;":           '\U00002290',
+-	"SquareSupersetEqual;":      '\U00002292',
+-	"SquareUnion;":              '\U00002294',
+-	"Sscr;":                     '\U0001D4AE',
+-	"Star;":                     '\U000022C6',
+-	"Sub;":                      '\U000022D0',
+-	"Subset;":                   '\U000022D0',
+-	"SubsetEqual;":              '\U00002286',
+-	"Succeeds;":                 '\U0000227B',
+-	"SucceedsEqual;":            '\U00002AB0',
+-	"SucceedsSlantEqual;":       '\U0000227D',
+-	"SucceedsTilde;":            '\U0000227F',
+-	"SuchThat;":                 '\U0000220B',
+-	"Sum;":                      '\U00002211',
+-	"Sup;":                      '\U000022D1',
+-	"Superset;":                 '\U00002283',
+-	"SupersetEqual;":            '\U00002287',
+-	"Supset;":                   '\U000022D1',
+-	"THORN;":                    '\U000000DE',
+-	"TRADE;":                    '\U00002122',
+-	"TSHcy;":                    '\U0000040B',
+-	"TScy;":                     '\U00000426',
+-	"Tab;":                      '\U00000009',
+-	"Tau;":                      '\U000003A4',
+-	"Tcaron;":                   '\U00000164',
+-	"Tcedil;":                   '\U00000162',
+-	"Tcy;":                      '\U00000422',
+-	"Tfr;":                      '\U0001D517',
+-	"Therefore;":                '\U00002234',
+-	"Theta;":                    '\U00000398',
+-	"ThinSpace;":                '\U00002009',
+-	"Tilde;":                    '\U0000223C',
+-	"TildeEqual;":               '\U00002243',
+-	"TildeFullEqual;":           '\U00002245',
+-	"TildeTilde;":               '\U00002248',
+-	"Topf;":                     '\U0001D54B',
+-	"TripleDot;":                '\U000020DB',
+-	"Tscr;":                     '\U0001D4AF',
+-	"Tstrok;":                   '\U00000166',
+-	"Uacute;":                   '\U000000DA',
+-	"Uarr;":                     '\U0000219F',
+-	"Uarrocir;":                 '\U00002949',
+-	"Ubrcy;":                    '\U0000040E',
+-	"Ubreve;":                   '\U0000016C',
+-	"Ucirc;":                    '\U000000DB',
+-	"Ucy;":                      '\U00000423',
+-	"Udblac;":                   '\U00000170',
+-	"Ufr;":                      '\U0001D518',
+-	"Ugrave;":                   '\U000000D9',
+-	"Umacr;":                    '\U0000016A',
+-	"UnderBar;":                 '\U0000005F',
+-	"UnderBrace;":               '\U000023DF',
+-	"UnderBracket;":             '\U000023B5',
+-	"UnderParenthesis;":         '\U000023DD',
+-	"Union;":                    '\U000022C3',
+-	"UnionPlus;":                '\U0000228E',
+-	"Uogon;":                    '\U00000172',
+-	"Uopf;":                     '\U0001D54C',
+-	"UpArrow;":                  '\U00002191',
+-	"UpArrowBar;":               '\U00002912',
+-	"UpArrowDownArrow;":         '\U000021C5',
+-	"UpDownArrow;":              '\U00002195',
+-	"UpEquilibrium;":            '\U0000296E',
+-	"UpTee;":                    '\U000022A5',
+-	"UpTeeArrow;":               '\U000021A5',
+-	"Uparrow;":                  '\U000021D1',
+-	"Updownarrow;":              '\U000021D5',
+-	"UpperLeftArrow;":           '\U00002196',
+-	"UpperRightArrow;":          '\U00002197',
+-	"Upsi;":                     '\U000003D2',
+-	"Upsilon;":                  '\U000003A5',
+-	"Uring;":                    '\U0000016E',
+-	"Uscr;":                     '\U0001D4B0',
+-	"Utilde;":                   '\U00000168',
+-	"Uuml;":                     '\U000000DC',
+-	"VDash;":                    '\U000022AB',
+-	"Vbar;":                     '\U00002AEB',
+-	"Vcy;":                      '\U00000412',
+-	"Vdash;":                    '\U000022A9',
+-	"Vdashl;":                   '\U00002AE6',
+-	"Vee;":                      '\U000022C1',
+-	"Verbar;":                   '\U00002016',
+-	"Vert;":                     '\U00002016',
+-	"VerticalBar;":              '\U00002223',
+-	"VerticalLine;":             '\U0000007C',
+-	"VerticalSeparator;":        '\U00002758',
+-	"VerticalTilde;":            '\U00002240',
+-	"VeryThinSpace;":            '\U0000200A',
+-	"Vfr;":                      '\U0001D519',
+-	"Vopf;":                     '\U0001D54D',
+-	"Vscr;":                     '\U0001D4B1',
+-	"Vvdash;":                   '\U000022AA',
+-	"Wcirc;":                    '\U00000174',
+-	"Wedge;":                    '\U000022C0',
+-	"Wfr;":                      '\U0001D51A',
+-	"Wopf;":                     '\U0001D54E',
+-	"Wscr;":                     '\U0001D4B2',
+-	"Xfr;":                      '\U0001D51B',
+-	"Xi;":                       '\U0000039E',
+-	"Xopf;":                     '\U0001D54F',
+-	"Xscr;":                     '\U0001D4B3',
+-	"YAcy;":                     '\U0000042F',
+-	"YIcy;":                     '\U00000407',
+-	"YUcy;":                     '\U0000042E',
+-	"Yacute;":                   '\U000000DD',
+-	"Ycirc;":                    '\U00000176',
+-	"Ycy;":                      '\U0000042B',
+-	"Yfr;":                      '\U0001D51C',
+-	"Yopf;":                     '\U0001D550',
+-	"Yscr;":                     '\U0001D4B4',
+-	"Yuml;":                     '\U00000178',
+-	"ZHcy;":                     '\U00000416',
+-	"Zacute;":                   '\U00000179',
+-	"Zcaron;":                   '\U0000017D',
+-	"Zcy;":                      '\U00000417',
+-	"Zdot;":                     '\U0000017B',
+-	"ZeroWidthSpace;":           '\U0000200B',
+-	"Zeta;":                     '\U00000396',
+-	"Zfr;":                      '\U00002128',
+-	"Zopf;":                     '\U00002124',
+-	"Zscr;":                     '\U0001D4B5',
+-	"aacute;":                   '\U000000E1',
+-	"abreve;":                   '\U00000103',
+-	"ac;":                       '\U0000223E',
+-	"acd;":                      '\U0000223F',
+-	"acirc;":                    '\U000000E2',
+-	"acute;":                    '\U000000B4',
+-	"acy;":                      '\U00000430',
+-	"aelig;":                    '\U000000E6',
+-	"af;":                       '\U00002061',
+-	"afr;":                      '\U0001D51E',
+-	"agrave;":                   '\U000000E0',
+-	"alefsym;":                  '\U00002135',
+-	"aleph;":                    '\U00002135',
+-	"alpha;":                    '\U000003B1',
+-	"amacr;":                    '\U00000101',
+-	"amalg;":                    '\U00002A3F',
+-	"amp;":                      '\U00000026',
+-	"and;":                      '\U00002227',
+-	"andand;":                   '\U00002A55',
+-	"andd;":                     '\U00002A5C',
+-	"andslope;":                 '\U00002A58',
+-	"andv;":                     '\U00002A5A',
+-	"ang;":                      '\U00002220',
+-	"ange;":                     '\U000029A4',
+-	"angle;":                    '\U00002220',
+-	"angmsd;":                   '\U00002221',
+-	"angmsdaa;":                 '\U000029A8',
+-	"angmsdab;":                 '\U000029A9',
+-	"angmsdac;":                 '\U000029AA',
+-	"angmsdad;":                 '\U000029AB',
+-	"angmsdae;":                 '\U000029AC',
+-	"angmsdaf;":                 '\U000029AD',
+-	"angmsdag;":                 '\U000029AE',
+-	"angmsdah;":                 '\U000029AF',
+-	"angrt;":                    '\U0000221F',
+-	"angrtvb;":                  '\U000022BE',
+-	"angrtvbd;":                 '\U0000299D',
+-	"angsph;":                   '\U00002222',
+-	"angst;":                    '\U000000C5',
+-	"angzarr;":                  '\U0000237C',
+-	"aogon;":                    '\U00000105',
+-	"aopf;":                     '\U0001D552',
+-	"ap;":                       '\U00002248',
+-	"apE;":                      '\U00002A70',
+-	"apacir;":                   '\U00002A6F',
+-	"ape;":                      '\U0000224A',
+-	"apid;":                     '\U0000224B',
+-	"apos;":                     '\U00000027',
+-	"approx;":                   '\U00002248',
+-	"approxeq;":                 '\U0000224A',
+-	"aring;":                    '\U000000E5',
+-	"ascr;":                     '\U0001D4B6',
+-	"ast;":                      '\U0000002A',
+-	"asymp;":                    '\U00002248',
+-	"asympeq;":                  '\U0000224D',
+-	"atilde;":                   '\U000000E3',
+-	"auml;":                     '\U000000E4',
+-	"awconint;":                 '\U00002233',
+-	"awint;":                    '\U00002A11',
+-	"bNot;":                     '\U00002AED',
+-	"backcong;":                 '\U0000224C',
+-	"backepsilon;":              '\U000003F6',
+-	"backprime;":                '\U00002035',
+-	"backsim;":                  '\U0000223D',
+-	"backsimeq;":                '\U000022CD',
+-	"barvee;":                   '\U000022BD',
+-	"barwed;":                   '\U00002305',
+-	"barwedge;":                 '\U00002305',
+-	"bbrk;":                     '\U000023B5',
+-	"bbrktbrk;":                 '\U000023B6',
+-	"bcong;":                    '\U0000224C',
+-	"bcy;":                      '\U00000431',
+-	"bdquo;":                    '\U0000201E',
+-	"becaus;":                   '\U00002235',
+-	"because;":                  '\U00002235',
+-	"bemptyv;":                  '\U000029B0',
+-	"bepsi;":                    '\U000003F6',
+-	"bernou;":                   '\U0000212C',
+-	"beta;":                     '\U000003B2',
+-	"beth;":                     '\U00002136',
+-	"between;":                  '\U0000226C',
+-	"bfr;":                      '\U0001D51F',
+-	"bigcap;":                   '\U000022C2',
+-	"bigcirc;":                  '\U000025EF',
+-	"bigcup;":                   '\U000022C3',
+-	"bigodot;":                  '\U00002A00',
+-	"bigoplus;":                 '\U00002A01',
+-	"bigotimes;":                '\U00002A02',
+-	"bigsqcup;":                 '\U00002A06',
+-	"bigstar;":                  '\U00002605',
+-	"bigtriangledown;":          '\U000025BD',
+-	"bigtriangleup;":            '\U000025B3',
+-	"biguplus;":                 '\U00002A04',
+-	"bigvee;":                   '\U000022C1',
+-	"bigwedge;":                 '\U000022C0',
+-	"bkarow;":                   '\U0000290D',
+-	"blacklozenge;":             '\U000029EB',
+-	"blacksquare;":              '\U000025AA',
+-	"blacktriangle;":            '\U000025B4',
+-	"blacktriangledown;":        '\U000025BE',
+-	"blacktriangleleft;":        '\U000025C2',
+-	"blacktriangleright;":       '\U000025B8',
+-	"blank;":                    '\U00002423',
+-	"blk12;":                    '\U00002592',
+-	"blk14;":                    '\U00002591',
+-	"blk34;":                    '\U00002593',
+-	"block;":                    '\U00002588',
+-	"bnot;":                     '\U00002310',
+-	"bopf;":                     '\U0001D553',
+-	"bot;":                      '\U000022A5',
+-	"bottom;":                   '\U000022A5',
+-	"bowtie;":                   '\U000022C8',
+-	"boxDL;":                    '\U00002557',
+-	"boxDR;":                    '\U00002554',
+-	"boxDl;":                    '\U00002556',
+-	"boxDr;":                    '\U00002553',
+-	"boxH;":                     '\U00002550',
+-	"boxHD;":                    '\U00002566',
+-	"boxHU;":                    '\U00002569',
+-	"boxHd;":                    '\U00002564',
+-	"boxHu;":                    '\U00002567',
+-	"boxUL;":                    '\U0000255D',
+-	"boxUR;":                    '\U0000255A',
+-	"boxUl;":                    '\U0000255C',
+-	"boxUr;":                    '\U00002559',
+-	"boxV;":                     '\U00002551',
+-	"boxVH;":                    '\U0000256C',
+-	"boxVL;":                    '\U00002563',
+-	"boxVR;":                    '\U00002560',
+-	"boxVh;":                    '\U0000256B',
+-	"boxVl;":                    '\U00002562',
+-	"boxVr;":                    '\U0000255F',
+-	"boxbox;":                   '\U000029C9',
+-	"boxdL;":                    '\U00002555',
+-	"boxdR;":                    '\U00002552',
+-	"boxdl;":                    '\U00002510',
+-	"boxdr;":                    '\U0000250C',
+-	"boxh;":                     '\U00002500',
+-	"boxhD;":                    '\U00002565',
+-	"boxhU;":                    '\U00002568',
+-	"boxhd;":                    '\U0000252C',
+-	"boxhu;":                    '\U00002534',
+-	"boxminus;":                 '\U0000229F',
+-	"boxplus;":                  '\U0000229E',
+-	"boxtimes;":                 '\U000022A0',
+-	"boxuL;":                    '\U0000255B',
+-	"boxuR;":                    '\U00002558',
+-	"boxul;":                    '\U00002518',
+-	"boxur;":                    '\U00002514',
+-	"boxv;":                     '\U00002502',
+-	"boxvH;":                    '\U0000256A',
+-	"boxvL;":                    '\U00002561',
+-	"boxvR;":                    '\U0000255E',
+-	"boxvh;":                    '\U0000253C',
+-	"boxvl;":                    '\U00002524',
+-	"boxvr;":                    '\U0000251C',
+-	"bprime;":                   '\U00002035',
+-	"breve;":                    '\U000002D8',
+-	"brvbar;":                   '\U000000A6',
+-	"bscr;":                     '\U0001D4B7',
+-	"bsemi;":                    '\U0000204F',
+-	"bsim;":                     '\U0000223D',
+-	"bsime;":                    '\U000022CD',
+-	"bsol;":                     '\U0000005C',
+-	"bsolb;":                    '\U000029C5',
+-	"bsolhsub;":                 '\U000027C8',
+-	"bull;":                     '\U00002022',
+-	"bullet;":                   '\U00002022',
+-	"bump;":                     '\U0000224E',
+-	"bumpE;":                    '\U00002AAE',
+-	"bumpe;":                    '\U0000224F',
+-	"bumpeq;":                   '\U0000224F',
+-	"cacute;":                   '\U00000107',
+-	"cap;":                      '\U00002229',
+-	"capand;":                   '\U00002A44',
+-	"capbrcup;":                 '\U00002A49',
+-	"capcap;":                   '\U00002A4B',
+-	"capcup;":                   '\U00002A47',
+-	"capdot;":                   '\U00002A40',
+-	"caret;":                    '\U00002041',
+-	"caron;":                    '\U000002C7',
+-	"ccaps;":                    '\U00002A4D',
+-	"ccaron;":                   '\U0000010D',
+-	"ccedil;":                   '\U000000E7',
+-	"ccirc;":                    '\U00000109',
+-	"ccups;":                    '\U00002A4C',
+-	"ccupssm;":                  '\U00002A50',
+-	"cdot;":                     '\U0000010B',
+-	"cedil;":                    '\U000000B8',
+-	"cemptyv;":                  '\U000029B2',
+-	"cent;":                     '\U000000A2',
+-	"centerdot;":                '\U000000B7',
+-	"cfr;":                      '\U0001D520',
+-	"chcy;":                     '\U00000447',
+-	"check;":                    '\U00002713',
+-	"checkmark;":                '\U00002713',
+-	"chi;":                      '\U000003C7',
+-	"cir;":                      '\U000025CB',
+-	"cirE;":                     '\U000029C3',
+-	"circ;":                     '\U000002C6',
+-	"circeq;":                   '\U00002257',
+-	"circlearrowleft;":          '\U000021BA',
+-	"circlearrowright;":         '\U000021BB',
+-	"circledR;":                 '\U000000AE',
+-	"circledS;":                 '\U000024C8',
+-	"circledast;":               '\U0000229B',
+-	"circledcirc;":              '\U0000229A',
+-	"circleddash;":              '\U0000229D',
+-	"cire;":                     '\U00002257',
+-	"cirfnint;":                 '\U00002A10',
+-	"cirmid;":                   '\U00002AEF',
+-	"cirscir;":                  '\U000029C2',
+-	"clubs;":                    '\U00002663',
+-	"clubsuit;":                 '\U00002663',
+-	"colon;":                    '\U0000003A',
+-	"colone;":                   '\U00002254',
+-	"coloneq;":                  '\U00002254',
+-	"comma;":                    '\U0000002C',
+-	"commat;":                   '\U00000040',
+-	"comp;":                     '\U00002201',
+-	"compfn;":                   '\U00002218',
+-	"complement;":               '\U00002201',
+-	"complexes;":                '\U00002102',
+-	"cong;":                     '\U00002245',
+-	"congdot;":                  '\U00002A6D',
+-	"conint;":                   '\U0000222E',
+-	"copf;":                     '\U0001D554',
+-	"coprod;":                   '\U00002210',
+-	"copy;":                     '\U000000A9',
+-	"copysr;":                   '\U00002117',
+-	"crarr;":                    '\U000021B5',
+-	"cross;":                    '\U00002717',
+-	"cscr;":                     '\U0001D4B8',
+-	"csub;":                     '\U00002ACF',
+-	"csube;":                    '\U00002AD1',
+-	"csup;":                     '\U00002AD0',
+-	"csupe;":                    '\U00002AD2',
+-	"ctdot;":                    '\U000022EF',
+-	"cudarrl;":                  '\U00002938',
+-	"cudarrr;":                  '\U00002935',
+-	"cuepr;":                    '\U000022DE',
+-	"cuesc;":                    '\U000022DF',
+-	"cularr;":                   '\U000021B6',
+-	"cularrp;":                  '\U0000293D',
+-	"cup;":                      '\U0000222A',
+-	"cupbrcap;":                 '\U00002A48',
+-	"cupcap;":                   '\U00002A46',
+-	"cupcup;":                   '\U00002A4A',
+-	"cupdot;":                   '\U0000228D',
+-	"cupor;":                    '\U00002A45',
+-	"curarr;":                   '\U000021B7',
+-	"curarrm;":                  '\U0000293C',
+-	"curlyeqprec;":              '\U000022DE',
+-	"curlyeqsucc;":              '\U000022DF',
+-	"curlyvee;":                 '\U000022CE',
+-	"curlywedge;":               '\U000022CF',
+-	"curren;":                   '\U000000A4',
+-	"curvearrowleft;":           '\U000021B6',
+-	"curvearrowright;":          '\U000021B7',
+-	"cuvee;":                    '\U000022CE',
+-	"cuwed;":                    '\U000022CF',
+-	"cwconint;":                 '\U00002232',
+-	"cwint;":                    '\U00002231',
+-	"cylcty;":                   '\U0000232D',
+-	"dArr;":                     '\U000021D3',
+-	"dHar;":                     '\U00002965',
+-	"dagger;":                   '\U00002020',
+-	"daleth;":                   '\U00002138',
+-	"darr;":                     '\U00002193',
+-	"dash;":                     '\U00002010',
+-	"dashv;":                    '\U000022A3',
+-	"dbkarow;":                  '\U0000290F',
+-	"dblac;":                    '\U000002DD',
+-	"dcaron;":                   '\U0000010F',
+-	"dcy;":                      '\U00000434',
+-	"dd;":                       '\U00002146',
+-	"ddagger;":                  '\U00002021',
+-	"ddarr;":                    '\U000021CA',
+-	"ddotseq;":                  '\U00002A77',
+-	"deg;":                      '\U000000B0',
+-	"delta;":                    '\U000003B4',
+-	"demptyv;":                  '\U000029B1',
+-	"dfisht;":                   '\U0000297F',
+-	"dfr;":                      '\U0001D521',
+-	"dharl;":                    '\U000021C3',
+-	"dharr;":                    '\U000021C2',
+-	"diam;":                     '\U000022C4',
+-	"diamond;":                  '\U000022C4',
+-	"diamondsuit;":              '\U00002666',
+-	"diams;":                    '\U00002666',
+-	"die;":                      '\U000000A8',
+-	"digamma;":                  '\U000003DD',
+-	"disin;":                    '\U000022F2',
+-	"div;":                      '\U000000F7',
+-	"divide;":                   '\U000000F7',
+-	"divideontimes;":            '\U000022C7',
+-	"divonx;":                   '\U000022C7',
+-	"djcy;":                     '\U00000452',
+-	"dlcorn;":                   '\U0000231E',
+-	"dlcrop;":                   '\U0000230D',
+-	"dollar;":                   '\U00000024',
+-	"dopf;":                     '\U0001D555',
+-	"dot;":                      '\U000002D9',
+-	"doteq;":                    '\U00002250',
+-	"doteqdot;":                 '\U00002251',
+-	"dotminus;":                 '\U00002238',
+-	"dotplus;":                  '\U00002214',
+-	"dotsquare;":                '\U000022A1',
+-	"doublebarwedge;":           '\U00002306',
+-	"downarrow;":                '\U00002193',
+-	"downdownarrows;":           '\U000021CA',
+-	"downharpoonleft;":          '\U000021C3',
+-	"downharpoonright;":         '\U000021C2',
+-	"drbkarow;":                 '\U00002910',
+-	"drcorn;":                   '\U0000231F',
+-	"drcrop;":                   '\U0000230C',
+-	"dscr;":                     '\U0001D4B9',
+-	"dscy;":                     '\U00000455',
+-	"dsol;":                     '\U000029F6',
+-	"dstrok;":                   '\U00000111',
+-	"dtdot;":                    '\U000022F1',
+-	"dtri;":                     '\U000025BF',
+-	"dtrif;":                    '\U000025BE',
+-	"duarr;":                    '\U000021F5',
+-	"duhar;":                    '\U0000296F',
+-	"dwangle;":                  '\U000029A6',
+-	"dzcy;":                     '\U0000045F',
+-	"dzigrarr;":                 '\U000027FF',
+-	"eDDot;":                    '\U00002A77',
+-	"eDot;":                     '\U00002251',
+-	"eacute;":                   '\U000000E9',
+-	"easter;":                   '\U00002A6E',
+-	"ecaron;":                   '\U0000011B',
+-	"ecir;":                     '\U00002256',
+-	"ecirc;":                    '\U000000EA',
+-	"ecolon;":                   '\U00002255',
+-	"ecy;":                      '\U0000044D',
+-	"edot;":                     '\U00000117',
+-	"ee;":                       '\U00002147',
+-	"efDot;":                    '\U00002252',
+-	"efr;":                      '\U0001D522',
+-	"eg;":                       '\U00002A9A',
+-	"egrave;":                   '\U000000E8',
+-	"egs;":                      '\U00002A96',
+-	"egsdot;":                   '\U00002A98',
+-	"el;":                       '\U00002A99',
+-	"elinters;":                 '\U000023E7',
+-	"ell;":                      '\U00002113',
+-	"els;":                      '\U00002A95',
+-	"elsdot;":                   '\U00002A97',
+-	"emacr;":                    '\U00000113',
+-	"empty;":                    '\U00002205',
+-	"emptyset;":                 '\U00002205',
+-	"emptyv;":                   '\U00002205',
+-	"emsp;":                     '\U00002003',
+-	"emsp13;":                   '\U00002004',
+-	"emsp14;":                   '\U00002005',
+-	"eng;":                      '\U0000014B',
+-	"ensp;":                     '\U00002002',
+-	"eogon;":                    '\U00000119',
+-	"eopf;":                     '\U0001D556',
+-	"epar;":                     '\U000022D5',
+-	"eparsl;":                   '\U000029E3',
+-	"eplus;":                    '\U00002A71',
+-	"epsi;":                     '\U000003B5',
+-	"epsilon;":                  '\U000003B5',
+-	"epsiv;":                    '\U000003F5',
+-	"eqcirc;":                   '\U00002256',
+-	"eqcolon;":                  '\U00002255',
+-	"eqsim;":                    '\U00002242',
+-	"eqslantgtr;":               '\U00002A96',
+-	"eqslantless;":              '\U00002A95',
+-	"equals;":                   '\U0000003D',
+-	"equest;":                   '\U0000225F',
+-	"equiv;":                    '\U00002261',
+-	"equivDD;":                  '\U00002A78',
+-	"eqvparsl;":                 '\U000029E5',
+-	"erDot;":                    '\U00002253',
+-	"erarr;":                    '\U00002971',
+-	"escr;":                     '\U0000212F',
+-	"esdot;":                    '\U00002250',
+-	"esim;":                     '\U00002242',
+-	"eta;":                      '\U000003B7',
+-	"eth;":                      '\U000000F0',
+-	"euml;":                     '\U000000EB',
+-	"euro;":                     '\U000020AC',
+-	"excl;":                     '\U00000021',
+-	"exist;":                    '\U00002203',
+-	"expectation;":              '\U00002130',
+-	"exponentiale;":             '\U00002147',
+-	"fallingdotseq;":            '\U00002252',
+-	"fcy;":                      '\U00000444',
+-	"female;":                   '\U00002640',
+-	"ffilig;":                   '\U0000FB03',
+-	"fflig;":                    '\U0000FB00',
+-	"ffllig;":                   '\U0000FB04',
+-	"ffr;":                      '\U0001D523',
+-	"filig;":                    '\U0000FB01',
+-	"flat;":                     '\U0000266D',
+-	"fllig;":                    '\U0000FB02',
+-	"fltns;":                    '\U000025B1',
+-	"fnof;":                     '\U00000192',
+-	"fopf;":                     '\U0001D557',
+-	"forall;":                   '\U00002200',
+-	"fork;":                     '\U000022D4',
+-	"forkv;":                    '\U00002AD9',
+-	"fpartint;":                 '\U00002A0D',
+-	"frac12;":                   '\U000000BD',
+-	"frac13;":                   '\U00002153',
+-	"frac14;":                   '\U000000BC',
+-	"frac15;":                   '\U00002155',
+-	"frac16;":                   '\U00002159',
+-	"frac18;":                   '\U0000215B',
+-	"frac23;":                   '\U00002154',
+-	"frac25;":                   '\U00002156',
+-	"frac34;":                   '\U000000BE',
+-	"frac35;":                   '\U00002157',
+-	"frac38;":                   '\U0000215C',
+-	"frac45;":                   '\U00002158',
+-	"frac56;":                   '\U0000215A',
+-	"frac58;":                   '\U0000215D',
+-	"frac78;":                   '\U0000215E',
+-	"frasl;":                    '\U00002044',
+-	"frown;":                    '\U00002322',
+-	"fscr;":                     '\U0001D4BB',
+-	"gE;":                       '\U00002267',
+-	"gEl;":                      '\U00002A8C',
+-	"gacute;":                   '\U000001F5',
+-	"gamma;":                    '\U000003B3',
+-	"gammad;":                   '\U000003DD',
+-	"gap;":                      '\U00002A86',
+-	"gbreve;":                   '\U0000011F',
+-	"gcirc;":                    '\U0000011D',
+-	"gcy;":                      '\U00000433',
+-	"gdot;":                     '\U00000121',
+-	"ge;":                       '\U00002265',
+-	"gel;":                      '\U000022DB',
+-	"geq;":                      '\U00002265',
+-	"geqq;":                     '\U00002267',
+-	"geqslant;":                 '\U00002A7E',
+-	"ges;":                      '\U00002A7E',
+-	"gescc;":                    '\U00002AA9',
+-	"gesdot;":                   '\U00002A80',
+-	"gesdoto;":                  '\U00002A82',
+-	"gesdotol;":                 '\U00002A84',
+-	"gesles;":                   '\U00002A94',
+-	"gfr;":                      '\U0001D524',
+-	"gg;":                       '\U0000226B',
+-	"ggg;":                      '\U000022D9',
+-	"gimel;":                    '\U00002137',
+-	"gjcy;":                     '\U00000453',
+-	"gl;":                       '\U00002277',
+-	"glE;":                      '\U00002A92',
+-	"gla;":                      '\U00002AA5',
+-	"glj;":                      '\U00002AA4',
+-	"gnE;":                      '\U00002269',
+-	"gnap;":                     '\U00002A8A',
+-	"gnapprox;":                 '\U00002A8A',
+-	"gne;":                      '\U00002A88',
+-	"gneq;":                     '\U00002A88',
+-	"gneqq;":                    '\U00002269',
+-	"gnsim;":                    '\U000022E7',
+-	"gopf;":                     '\U0001D558',
+-	"grave;":                    '\U00000060',
+-	"gscr;":                     '\U0000210A',
+-	"gsim;":                     '\U00002273',
+-	"gsime;":                    '\U00002A8E',
+-	"gsiml;":                    '\U00002A90',
+-	"gt;":                       '\U0000003E',
+-	"gtcc;":                     '\U00002AA7',
+-	"gtcir;":                    '\U00002A7A',
+-	"gtdot;":                    '\U000022D7',
+-	"gtlPar;":                   '\U00002995',
+-	"gtquest;":                  '\U00002A7C',
+-	"gtrapprox;":                '\U00002A86',
+-	"gtrarr;":                   '\U00002978',
+-	"gtrdot;":                   '\U000022D7',
+-	"gtreqless;":                '\U000022DB',
+-	"gtreqqless;":               '\U00002A8C',
+-	"gtrless;":                  '\U00002277',
+-	"gtrsim;":                   '\U00002273',
+-	"hArr;":                     '\U000021D4',
+-	"hairsp;":                   '\U0000200A',
+-	"half;":                     '\U000000BD',
+-	"hamilt;":                   '\U0000210B',
+-	"hardcy;":                   '\U0000044A',
+-	"harr;":                     '\U00002194',
+-	"harrcir;":                  '\U00002948',
+-	"harrw;":                    '\U000021AD',
+-	"hbar;":                     '\U0000210F',
+-	"hcirc;":                    '\U00000125',
+-	"hearts;":                   '\U00002665',
+-	"heartsuit;":                '\U00002665',
+-	"hellip;":                   '\U00002026',
+-	"hercon;":                   '\U000022B9',
+-	"hfr;":                      '\U0001D525',
+-	"hksearow;":                 '\U00002925',
+-	"hkswarow;":                 '\U00002926',
+-	"hoarr;":                    '\U000021FF',
+-	"homtht;":                   '\U0000223B',
+-	"hookleftarrow;":            '\U000021A9',
+-	"hookrightarrow;":           '\U000021AA',
+-	"hopf;":                     '\U0001D559',
+-	"horbar;":                   '\U00002015',
+-	"hscr;":                     '\U0001D4BD',
+-	"hslash;":                   '\U0000210F',
+-	"hstrok;":                   '\U00000127',
+-	"hybull;":                   '\U00002043',
+-	"hyphen;":                   '\U00002010',
+-	"iacute;":                   '\U000000ED',
+-	"ic;":                       '\U00002063',
+-	"icirc;":                    '\U000000EE',
+-	"icy;":                      '\U00000438',
+-	"iecy;":                     '\U00000435',
+-	"iexcl;":                    '\U000000A1',
+-	"iff;":                      '\U000021D4',
+-	"ifr;":                      '\U0001D526',
+-	"igrave;":                   '\U000000EC',
+-	"ii;":                       '\U00002148',
+-	"iiiint;":                   '\U00002A0C',
+-	"iiint;":                    '\U0000222D',
+-	"iinfin;":                   '\U000029DC',
+-	"iiota;":                    '\U00002129',
+-	"ijlig;":                    '\U00000133',
+-	"imacr;":                    '\U0000012B',
+-	"image;":                    '\U00002111',
+-	"imagline;":                 '\U00002110',
+-	"imagpart;":                 '\U00002111',
+-	"imath;":                    '\U00000131',
+-	"imof;":                     '\U000022B7',
+-	"imped;":                    '\U000001B5',
+-	"in;":                       '\U00002208',
+-	"incare;":                   '\U00002105',
+-	"infin;":                    '\U0000221E',
+-	"infintie;":                 '\U000029DD',
+-	"inodot;":                   '\U00000131',
+-	"int;":                      '\U0000222B',
+-	"intcal;":                   '\U000022BA',
+-	"integers;":                 '\U00002124',
+-	"intercal;":                 '\U000022BA',
+-	"intlarhk;":                 '\U00002A17',
+-	"intprod;":                  '\U00002A3C',
+-	"iocy;":                     '\U00000451',
+-	"iogon;":                    '\U0000012F',
+-	"iopf;":                     '\U0001D55A',
+-	"iota;":                     '\U000003B9',
+-	"iprod;":                    '\U00002A3C',
+-	"iquest;":                   '\U000000BF',
+-	"iscr;":                     '\U0001D4BE',
+-	"isin;":                     '\U00002208',
+-	"isinE;":                    '\U000022F9',
+-	"isindot;":                  '\U000022F5',
+-	"isins;":                    '\U000022F4',
+-	"isinsv;":                   '\U000022F3',
+-	"isinv;":                    '\U00002208',
+-	"it;":                       '\U00002062',
+-	"itilde;":                   '\U00000129',
+-	"iukcy;":                    '\U00000456',
+-	"iuml;":                     '\U000000EF',
+-	"jcirc;":                    '\U00000135',
+-	"jcy;":                      '\U00000439',
+-	"jfr;":                      '\U0001D527',
+-	"jmath;":                    '\U00000237',
+-	"jopf;":                     '\U0001D55B',
+-	"jscr;":                     '\U0001D4BF',
+-	"jsercy;":                   '\U00000458',
+-	"jukcy;":                    '\U00000454',
+-	"kappa;":                    '\U000003BA',
+-	"kappav;":                   '\U000003F0',
+-	"kcedil;":                   '\U00000137',
+-	"kcy;":                      '\U0000043A',
+-	"kfr;":                      '\U0001D528',
+-	"kgreen;":                   '\U00000138',
+-	"khcy;":                     '\U00000445',
+-	"kjcy;":                     '\U0000045C',
+-	"kopf;":                     '\U0001D55C',
+-	"kscr;":                     '\U0001D4C0',
+-	"lAarr;":                    '\U000021DA',
+-	"lArr;":                     '\U000021D0',
+-	"lAtail;":                   '\U0000291B',
+-	"lBarr;":                    '\U0000290E',
+-	"lE;":                       '\U00002266',
+-	"lEg;":                      '\U00002A8B',
+-	"lHar;":                     '\U00002962',
+-	"lacute;":                   '\U0000013A',
+-	"laemptyv;":                 '\U000029B4',
+-	"lagran;":                   '\U00002112',
+-	"lambda;":                   '\U000003BB',
+-	"lang;":                     '\U000027E8',
+-	"langd;":                    '\U00002991',
+-	"langle;":                   '\U000027E8',
+-	"lap;":                      '\U00002A85',
+-	"laquo;":                    '\U000000AB',
+-	"larr;":                     '\U00002190',
+-	"larrb;":                    '\U000021E4',
+-	"larrbfs;":                  '\U0000291F',
+-	"larrfs;":                   '\U0000291D',
+-	"larrhk;":                   '\U000021A9',
+-	"larrlp;":                   '\U000021AB',
+-	"larrpl;":                   '\U00002939',
+-	"larrsim;":                  '\U00002973',
+-	"larrtl;":                   '\U000021A2',
+-	"lat;":                      '\U00002AAB',
+-	"latail;":                   '\U00002919',
+-	"late;":                     '\U00002AAD',
+-	"lbarr;":                    '\U0000290C',
+-	"lbbrk;":                    '\U00002772',
+-	"lbrace;":                   '\U0000007B',
+-	"lbrack;":                   '\U0000005B',
+-	"lbrke;":                    '\U0000298B',
+-	"lbrksld;":                  '\U0000298F',
+-	"lbrkslu;":                  '\U0000298D',
+-	"lcaron;":                   '\U0000013E',
+-	"lcedil;":                   '\U0000013C',
+-	"lceil;":                    '\U00002308',
+-	"lcub;":                     '\U0000007B',
+-	"lcy;":                      '\U0000043B',
+-	"ldca;":                     '\U00002936',
+-	"ldquo;":                    '\U0000201C',
+-	"ldquor;":                   '\U0000201E',
+-	"ldrdhar;":                  '\U00002967',
+-	"ldrushar;":                 '\U0000294B',
+-	"ldsh;":                     '\U000021B2',
+-	"le;":                       '\U00002264',
+-	"leftarrow;":                '\U00002190',
+-	"leftarrowtail;":            '\U000021A2',
+-	"leftharpoondown;":          '\U000021BD',
+-	"leftharpoonup;":            '\U000021BC',
+-	"leftleftarrows;":           '\U000021C7',
+-	"leftrightarrow;":           '\U00002194',
+-	"leftrightarrows;":          '\U000021C6',
+-	"leftrightharpoons;":        '\U000021CB',
+-	"leftrightsquigarrow;":      '\U000021AD',
+-	"leftthreetimes;":           '\U000022CB',
+-	"leg;":                      '\U000022DA',
+-	"leq;":                      '\U00002264',
+-	"leqq;":                     '\U00002266',
+-	"leqslant;":                 '\U00002A7D',
+-	"les;":                      '\U00002A7D',
+-	"lescc;":                    '\U00002AA8',
+-	"lesdot;":                   '\U00002A7F',
+-	"lesdoto;":                  '\U00002A81',
+-	"lesdotor;":                 '\U00002A83',
+-	"lesges;":                   '\U00002A93',
+-	"lessapprox;":               '\U00002A85',
+-	"lessdot;":                  '\U000022D6',
+-	"lesseqgtr;":                '\U000022DA',
+-	"lesseqqgtr;":               '\U00002A8B',
+-	"lessgtr;":                  '\U00002276',
+-	"lesssim;":                  '\U00002272',
+-	"lfisht;":                   '\U0000297C',
+-	"lfloor;":                   '\U0000230A',
+-	"lfr;":                      '\U0001D529',
+-	"lg;":                       '\U00002276',
+-	"lgE;":                      '\U00002A91',
+-	"lhard;":                    '\U000021BD',
+-	"lharu;":                    '\U000021BC',
+-	"lharul;":                   '\U0000296A',
+-	"lhblk;":                    '\U00002584',
+-	"ljcy;":                     '\U00000459',
+-	"ll;":                       '\U0000226A',
+-	"llarr;":                    '\U000021C7',
+-	"llcorner;":                 '\U0000231E',
+-	"llhard;":                   '\U0000296B',
+-	"lltri;":                    '\U000025FA',
+-	"lmidot;":                   '\U00000140',
+-	"lmoust;":                   '\U000023B0',
+-	"lmoustache;":               '\U000023B0',
+-	"lnE;":                      '\U00002268',
+-	"lnap;":                     '\U00002A89',
+-	"lnapprox;":                 '\U00002A89',
+-	"lne;":                      '\U00002A87',
+-	"lneq;":                     '\U00002A87',
+-	"lneqq;":                    '\U00002268',
+-	"lnsim;":                    '\U000022E6',
+-	"loang;":                    '\U000027EC',
+-	"loarr;":                    '\U000021FD',
+-	"lobrk;":                    '\U000027E6',
+-	"longleftarrow;":            '\U000027F5',
+-	"longleftrightarrow;":       '\U000027F7',
+-	"longmapsto;":               '\U000027FC',
+-	"longrightarrow;":           '\U000027F6',
+-	"looparrowleft;":            '\U000021AB',
+-	"looparrowright;":           '\U000021AC',
+-	"lopar;":                    '\U00002985',
+-	"lopf;":                     '\U0001D55D',
+-	"loplus;":                   '\U00002A2D',
+-	"lotimes;":                  '\U00002A34',
+-	"lowast;":                   '\U00002217',
+-	"lowbar;":                   '\U0000005F',
+-	"loz;":                      '\U000025CA',
+-	"lozenge;":                  '\U000025CA',
+-	"lozf;":                     '\U000029EB',
+-	"lpar;":                     '\U00000028',
+-	"lparlt;":                   '\U00002993',
+-	"lrarr;":                    '\U000021C6',
+-	"lrcorner;":                 '\U0000231F',
+-	"lrhar;":                    '\U000021CB',
+-	"lrhard;":                   '\U0000296D',
+-	"lrm;":                      '\U0000200E',
+-	"lrtri;":                    '\U000022BF',
+-	"lsaquo;":                   '\U00002039',
+-	"lscr;":                     '\U0001D4C1',
+-	"lsh;":                      '\U000021B0',
+-	"lsim;":                     '\U00002272',
+-	"lsime;":                    '\U00002A8D',
+-	"lsimg;":                    '\U00002A8F',
+-	"lsqb;":                     '\U0000005B',
+-	"lsquo;":                    '\U00002018',
+-	"lsquor;":                   '\U0000201A',
+-	"lstrok;":                   '\U00000142',
+-	"lt;":                       '\U0000003C',
+-	"ltcc;":                     '\U00002AA6',
+-	"ltcir;":                    '\U00002A79',
+-	"ltdot;":                    '\U000022D6',
+-	"lthree;":                   '\U000022CB',
+-	"ltimes;":                   '\U000022C9',
+-	"ltlarr;":                   '\U00002976',
+-	"ltquest;":                  '\U00002A7B',
+-	"ltrPar;":                   '\U00002996',
+-	"ltri;":                     '\U000025C3',
+-	"ltrie;":                    '\U000022B4',
+-	"ltrif;":                    '\U000025C2',
+-	"lurdshar;":                 '\U0000294A',
+-	"luruhar;":                  '\U00002966',
+-	"mDDot;":                    '\U0000223A',
+-	"macr;":                     '\U000000AF',
+-	"male;":                     '\U00002642',
+-	"malt;":                     '\U00002720',
+-	"maltese;":                  '\U00002720',
+-	"map;":                      '\U000021A6',
+-	"mapsto;":                   '\U000021A6',
+-	"mapstodown;":               '\U000021A7',
+-	"mapstoleft;":               '\U000021A4',
+-	"mapstoup;":                 '\U000021A5',
+-	"marker;":                   '\U000025AE',
+-	"mcomma;":                   '\U00002A29',
+-	"mcy;":                      '\U0000043C',
+-	"mdash;":                    '\U00002014',
+-	"measuredangle;":            '\U00002221',
+-	"mfr;":                      '\U0001D52A',
+-	"mho;":                      '\U00002127',
+-	"micro;":                    '\U000000B5',
+-	"mid;":                      '\U00002223',
+-	"midast;":                   '\U0000002A',
+-	"midcir;":                   '\U00002AF0',
+-	"middot;":                   '\U000000B7',
+-	"minus;":                    '\U00002212',
+-	"minusb;":                   '\U0000229F',
+-	"minusd;":                   '\U00002238',
+-	"minusdu;":                  '\U00002A2A',
+-	"mlcp;":                     '\U00002ADB',
+-	"mldr;":                     '\U00002026',
+-	"mnplus;":                   '\U00002213',
+-	"models;":                   '\U000022A7',
+-	"mopf;":                     '\U0001D55E',
+-	"mp;":                       '\U00002213',
+-	"mscr;":                     '\U0001D4C2',
+-	"mstpos;":                   '\U0000223E',
+-	"mu;":                       '\U000003BC',
+-	"multimap;":                 '\U000022B8',
+-	"mumap;":                    '\U000022B8',
+-	"nLeftarrow;":               '\U000021CD',
+-	"nLeftrightarrow;":          '\U000021CE',
+-	"nRightarrow;":              '\U000021CF',
+-	"nVDash;":                   '\U000022AF',
+-	"nVdash;":                   '\U000022AE',
+-	"nabla;":                    '\U00002207',
+-	"nacute;":                   '\U00000144',
+-	"nap;":                      '\U00002249',
+-	"napos;":                    '\U00000149',
+-	"napprox;":                  '\U00002249',
+-	"natur;":                    '\U0000266E',
+-	"natural;":                  '\U0000266E',
+-	"naturals;":                 '\U00002115',
+-	"nbsp;":                     '\U000000A0',
+-	"ncap;":                     '\U00002A43',
+-	"ncaron;":                   '\U00000148',
+-	"ncedil;":                   '\U00000146',
+-	"ncong;":                    '\U00002247',
+-	"ncup;":                     '\U00002A42',
+-	"ncy;":                      '\U0000043D',
+-	"ndash;":                    '\U00002013',
+-	"ne;":                       '\U00002260',
+-	"neArr;":                    '\U000021D7',
+-	"nearhk;":                   '\U00002924',
+-	"nearr;":                    '\U00002197',
+-	"nearrow;":                  '\U00002197',
+-	"nequiv;":                   '\U00002262',
+-	"nesear;":                   '\U00002928',
+-	"nexist;":                   '\U00002204',
+-	"nexists;":                  '\U00002204',
+-	"nfr;":                      '\U0001D52B',
+-	"nge;":                      '\U00002271',
+-	"ngeq;":                     '\U00002271',
+-	"ngsim;":                    '\U00002275',
+-	"ngt;":                      '\U0000226F',
+-	"ngtr;":                     '\U0000226F',
+-	"nhArr;":                    '\U000021CE',
+-	"nharr;":                    '\U000021AE',
+-	"nhpar;":                    '\U00002AF2',
+-	"ni;":                       '\U0000220B',
+-	"nis;":                      '\U000022FC',
+-	"nisd;":                     '\U000022FA',
+-	"niv;":                      '\U0000220B',
+-	"njcy;":                     '\U0000045A',
+-	"nlArr;":                    '\U000021CD',
+-	"nlarr;":                    '\U0000219A',
+-	"nldr;":                     '\U00002025',
+-	"nle;":                      '\U00002270',
+-	"nleftarrow;":               '\U0000219A',
+-	"nleftrightarrow;":          '\U000021AE',
+-	"nleq;":                     '\U00002270',
+-	"nless;":                    '\U0000226E',
+-	"nlsim;":                    '\U00002274',
+-	"nlt;":                      '\U0000226E',
+-	"nltri;":                    '\U000022EA',
+-	"nltrie;":                   '\U000022EC',
+-	"nmid;":                     '\U00002224',
+-	"nopf;":                     '\U0001D55F',
+-	"not;":                      '\U000000AC',
+-	"notin;":                    '\U00002209',
+-	"notinva;":                  '\U00002209',
+-	"notinvb;":                  '\U000022F7',
+-	"notinvc;":                  '\U000022F6',
+-	"notni;":                    '\U0000220C',
+-	"notniva;":                  '\U0000220C',
+-	"notnivb;":                  '\U000022FE',
+-	"notnivc;":                  '\U000022FD',
+-	"npar;":                     '\U00002226',
+-	"nparallel;":                '\U00002226',
+-	"npolint;":                  '\U00002A14',
+-	"npr;":                      '\U00002280',
+-	"nprcue;":                   '\U000022E0',
+-	"nprec;":                    '\U00002280',
+-	"nrArr;":                    '\U000021CF',
+-	"nrarr;":                    '\U0000219B',
+-	"nrightarrow;":              '\U0000219B',
+-	"nrtri;":                    '\U000022EB',
+-	"nrtrie;":                   '\U000022ED',
+-	"nsc;":                      '\U00002281',
+-	"nsccue;":                   '\U000022E1',
+-	"nscr;":                     '\U0001D4C3',
+-	"nshortmid;":                '\U00002224',
+-	"nshortparallel;":           '\U00002226',
+-	"nsim;":                     '\U00002241',
+-	"nsime;":                    '\U00002244',
+-	"nsimeq;":                   '\U00002244',
+-	"nsmid;":                    '\U00002224',
+-	"nspar;":                    '\U00002226',
+-	"nsqsube;":                  '\U000022E2',
+-	"nsqsupe;":                  '\U000022E3',
+-	"nsub;":                     '\U00002284',
+-	"nsube;":                    '\U00002288',
+-	"nsubseteq;":                '\U00002288',
+-	"nsucc;":                    '\U00002281',
+-	"nsup;":                     '\U00002285',
+-	"nsupe;":                    '\U00002289',
+-	"nsupseteq;":                '\U00002289',
+-	"ntgl;":                     '\U00002279',
+-	"ntilde;":                   '\U000000F1',
+-	"ntlg;":                     '\U00002278',
+-	"ntriangleleft;":            '\U000022EA',
+-	"ntrianglelefteq;":          '\U000022EC',
+-	"ntriangleright;":           '\U000022EB',
+-	"ntrianglerighteq;":         '\U000022ED',
+-	"nu;":                       '\U000003BD',
+-	"num;":                      '\U00000023',
+-	"numero;":                   '\U00002116',
+-	"numsp;":                    '\U00002007',
+-	"nvDash;":                   '\U000022AD',
+-	"nvHarr;":                   '\U00002904',
+-	"nvdash;":                   '\U000022AC',
+-	"nvinfin;":                  '\U000029DE',
+-	"nvlArr;":                   '\U00002902',
+-	"nvrArr;":                   '\U00002903',
+-	"nwArr;":                    '\U000021D6',
+-	"nwarhk;":                   '\U00002923',
+-	"nwarr;":                    '\U00002196',
+-	"nwarrow;":                  '\U00002196',
+-	"nwnear;":                   '\U00002927',
+-	"oS;":                       '\U000024C8',
+-	"oacute;":                   '\U000000F3',
+-	"oast;":                     '\U0000229B',
+-	"ocir;":                     '\U0000229A',
+-	"ocirc;":                    '\U000000F4',
+-	"ocy;":                      '\U0000043E',
+-	"odash;":                    '\U0000229D',
+-	"odblac;":                   '\U00000151',
+-	"odiv;":                     '\U00002A38',
+-	"odot;":                     '\U00002299',
+-	"odsold;":                   '\U000029BC',
+-	"oelig;":                    '\U00000153',
+-	"ofcir;":                    '\U000029BF',
+-	"ofr;":                      '\U0001D52C',
+-	"ogon;":                     '\U000002DB',
+-	"ograve;":                   '\U000000F2',
+-	"ogt;":                      '\U000029C1',
+-	"ohbar;":                    '\U000029B5',
+-	"ohm;":                      '\U000003A9',
+-	"oint;":                     '\U0000222E',
+-	"olarr;":                    '\U000021BA',
+-	"olcir;":                    '\U000029BE',
+-	"olcross;":                  '\U000029BB',
+-	"oline;":                    '\U0000203E',
+-	"olt;":                      '\U000029C0',
+-	"omacr;":                    '\U0000014D',
+-	"omega;":                    '\U000003C9',
+-	"omicron;":                  '\U000003BF',
+-	"omid;":                     '\U000029B6',
+-	"ominus;":                   '\U00002296',
+-	"oopf;":                     '\U0001D560',
+-	"opar;":                     '\U000029B7',
+-	"operp;":                    '\U000029B9',
+-	"oplus;":                    '\U00002295',
+-	"or;":                       '\U00002228',
+-	"orarr;":                    '\U000021BB',
+-	"ord;":                      '\U00002A5D',
+-	"order;":                    '\U00002134',
+-	"orderof;":                  '\U00002134',
+-	"ordf;":                     '\U000000AA',
+-	"ordm;":                     '\U000000BA',
+-	"origof;":                   '\U000022B6',
+-	"oror;":                     '\U00002A56',
+-	"orslope;":                  '\U00002A57',
+-	"orv;":                      '\U00002A5B',
+-	"oscr;":                     '\U00002134',
+-	"oslash;":                   '\U000000F8',
+-	"osol;":                     '\U00002298',
+-	"otilde;":                   '\U000000F5',
+-	"otimes;":                   '\U00002297',
+-	"otimesas;":                 '\U00002A36',
+-	"ouml;":                     '\U000000F6',
+-	"ovbar;":                    '\U0000233D',
+-	"par;":                      '\U00002225',
+-	"para;":                     '\U000000B6',
+-	"parallel;":                 '\U00002225',
+-	"parsim;":                   '\U00002AF3',
+-	"parsl;":                    '\U00002AFD',
+-	"part;":                     '\U00002202',
+-	"pcy;":                      '\U0000043F',
+-	"percnt;":                   '\U00000025',
+-	"period;":                   '\U0000002E',
+-	"permil;":                   '\U00002030',
+-	"perp;":                     '\U000022A5',
+-	"pertenk;":                  '\U00002031',
+-	"pfr;":                      '\U0001D52D',
+-	"phi;":                      '\U000003C6',
+-	"phiv;":                     '\U000003D5',
+-	"phmmat;":                   '\U00002133',
+-	"phone;":                    '\U0000260E',
+-	"pi;":                       '\U000003C0',
+-	"pitchfork;":                '\U000022D4',
+-	"piv;":                      '\U000003D6',
+-	"planck;":                   '\U0000210F',
+-	"planckh;":                  '\U0000210E',
+-	"plankv;":                   '\U0000210F',
+-	"plus;":                     '\U0000002B',
+-	"plusacir;":                 '\U00002A23',
+-	"plusb;":                    '\U0000229E',
+-	"pluscir;":                  '\U00002A22',
+-	"plusdo;":                   '\U00002214',
+-	"plusdu;":                   '\U00002A25',
+-	"pluse;":                    '\U00002A72',
+-	"plusmn;":                   '\U000000B1',
+-	"plussim;":                  '\U00002A26',
+-	"plustwo;":                  '\U00002A27',
+-	"pm;":                       '\U000000B1',
+-	"pointint;":                 '\U00002A15',
+-	"popf;":                     '\U0001D561',
+-	"pound;":                    '\U000000A3',
+-	"pr;":                       '\U0000227A',
+-	"prE;":                      '\U00002AB3',
+-	"prap;":                     '\U00002AB7',
+-	"prcue;":                    '\U0000227C',
+-	"pre;":                      '\U00002AAF',
+-	"prec;":                     '\U0000227A',
+-	"precapprox;":               '\U00002AB7',
+-	"preccurlyeq;":              '\U0000227C',
+-	"preceq;":                   '\U00002AAF',
+-	"precnapprox;":              '\U00002AB9',
+-	"precneqq;":                 '\U00002AB5',
+-	"precnsim;":                 '\U000022E8',
+-	"precsim;":                  '\U0000227E',
+-	"prime;":                    '\U00002032',
+-	"primes;":                   '\U00002119',
+-	"prnE;":                     '\U00002AB5',
+-	"prnap;":                    '\U00002AB9',
+-	"prnsim;":                   '\U000022E8',
+-	"prod;":                     '\U0000220F',
+-	"profalar;":                 '\U0000232E',
+-	"profline;":                 '\U00002312',
+-	"profsurf;":                 '\U00002313',
+-	"prop;":                     '\U0000221D',
+-	"propto;":                   '\U0000221D',
+-	"prsim;":                    '\U0000227E',
+-	"prurel;":                   '\U000022B0',
+-	"pscr;":                     '\U0001D4C5',
+-	"psi;":                      '\U000003C8',
+-	"puncsp;":                   '\U00002008',
+-	"qfr;":                      '\U0001D52E',
+-	"qint;":                     '\U00002A0C',
+-	"qopf;":                     '\U0001D562',
+-	"qprime;":                   '\U00002057',
+-	"qscr;":                     '\U0001D4C6',
+-	"quaternions;":              '\U0000210D',
+-	"quatint;":                  '\U00002A16',
+-	"quest;":                    '\U0000003F',
+-	"questeq;":                  '\U0000225F',
+-	"quot;":                     '\U00000022',
+-	"rAarr;":                    '\U000021DB',
+-	"rArr;":                     '\U000021D2',
+-	"rAtail;":                   '\U0000291C',
+-	"rBarr;":                    '\U0000290F',
+-	"rHar;":                     '\U00002964',
+-	"racute;":                   '\U00000155',
+-	"radic;":                    '\U0000221A',
+-	"raemptyv;":                 '\U000029B3',
+-	"rang;":                     '\U000027E9',
+-	"rangd;":                    '\U00002992',
+-	"range;":                    '\U000029A5',
+-	"rangle;":                   '\U000027E9',
+-	"raquo;":                    '\U000000BB',
+-	"rarr;":                     '\U00002192',
+-	"rarrap;":                   '\U00002975',
+-	"rarrb;":                    '\U000021E5',
+-	"rarrbfs;":                  '\U00002920',
+-	"rarrc;":                    '\U00002933',
+-	"rarrfs;":                   '\U0000291E',
+-	"rarrhk;":                   '\U000021AA',
+-	"rarrlp;":                   '\U000021AC',
+-	"rarrpl;":                   '\U00002945',
+-	"rarrsim;":                  '\U00002974',
+-	"rarrtl;":                   '\U000021A3',
+-	"rarrw;":                    '\U0000219D',
+-	"ratail;":                   '\U0000291A',
+-	"ratio;":                    '\U00002236',
+-	"rationals;":                '\U0000211A',
+-	"rbarr;":                    '\U0000290D',
+-	"rbbrk;":                    '\U00002773',
+-	"rbrace;":                   '\U0000007D',
+-	"rbrack;":                   '\U0000005D',
+-	"rbrke;":                    '\U0000298C',
+-	"rbrksld;":                  '\U0000298E',
+-	"rbrkslu;":                  '\U00002990',
+-	"rcaron;":                   '\U00000159',
+-	"rcedil;":                   '\U00000157',
+-	"rceil;":                    '\U00002309',
+-	"rcub;":                     '\U0000007D',
+-	"rcy;":                      '\U00000440',
+-	"rdca;":                     '\U00002937',
+-	"rdldhar;":                  '\U00002969',
+-	"rdquo;":                    '\U0000201D',
+-	"rdquor;":                   '\U0000201D',
+-	"rdsh;":                     '\U000021B3',
+-	"real;":                     '\U0000211C',
+-	"realine;":                  '\U0000211B',
+-	"realpart;":                 '\U0000211C',
+-	"reals;":                    '\U0000211D',
+-	"rect;":                     '\U000025AD',
+-	"reg;":                      '\U000000AE',
+-	"rfisht;":                   '\U0000297D',
+-	"rfloor;":                   '\U0000230B',
+-	"rfr;":                      '\U0001D52F',
+-	"rhard;":                    '\U000021C1',
+-	"rharu;":                    '\U000021C0',
+-	"rharul;":                   '\U0000296C',
+-	"rho;":                      '\U000003C1',
+-	"rhov;":                     '\U000003F1',
+-	"rightarrow;":               '\U00002192',
+-	"rightarrowtail;":           '\U000021A3',
+-	"rightharpoondown;":         '\U000021C1',
+-	"rightharpoonup;":           '\U000021C0',
+-	"rightleftarrows;":          '\U000021C4',
+-	"rightleftharpoons;":        '\U000021CC',
+-	"rightrightarrows;":         '\U000021C9',
+-	"rightsquigarrow;":          '\U0000219D',
+-	"rightthreetimes;":          '\U000022CC',
+-	"ring;":                     '\U000002DA',
+-	"risingdotseq;":             '\U00002253',
+-	"rlarr;":                    '\U000021C4',
+-	"rlhar;":                    '\U000021CC',
+-	"rlm;":                      '\U0000200F',
+-	"rmoust;":                   '\U000023B1',
+-	"rmoustache;":               '\U000023B1',
+-	"rnmid;":                    '\U00002AEE',
+-	"roang;":                    '\U000027ED',
+-	"roarr;":                    '\U000021FE',
+-	"robrk;":                    '\U000027E7',
+-	"ropar;":                    '\U00002986',
+-	"ropf;":                     '\U0001D563',
+-	"roplus;":                   '\U00002A2E',
+-	"rotimes;":                  '\U00002A35',
+-	"rpar;":                     '\U00000029',
+-	"rpargt;":                   '\U00002994',
+-	"rppolint;":                 '\U00002A12',
+-	"rrarr;":                    '\U000021C9',
+-	"rsaquo;":                   '\U0000203A',
+-	"rscr;":                     '\U0001D4C7',
+-	"rsh;":                      '\U000021B1',
+-	"rsqb;":                     '\U0000005D',
+-	"rsquo;":                    '\U00002019',
+-	"rsquor;":                   '\U00002019',
+-	"rthree;":                   '\U000022CC',
+-	"rtimes;":                   '\U000022CA',
+-	"rtri;":                     '\U000025B9',
+-	"rtrie;":                    '\U000022B5',
+-	"rtrif;":                    '\U000025B8',
+-	"rtriltri;":                 '\U000029CE',
+-	"ruluhar;":                  '\U00002968',
+-	"rx;":                       '\U0000211E',
+-	"sacute;":                   '\U0000015B',
+-	"sbquo;":                    '\U0000201A',
+-	"sc;":                       '\U0000227B',
+-	"scE;":                      '\U00002AB4',
+-	"scap;":                     '\U00002AB8',
+-	"scaron;":                   '\U00000161',
+-	"sccue;":                    '\U0000227D',
+-	"sce;":                      '\U00002AB0',
+-	"scedil;":                   '\U0000015F',
+-	"scirc;":                    '\U0000015D',
+-	"scnE;":                     '\U00002AB6',
+-	"scnap;":                    '\U00002ABA',
+-	"scnsim;":                   '\U000022E9',
+-	"scpolint;":                 '\U00002A13',
+-	"scsim;":                    '\U0000227F',
+-	"scy;":                      '\U00000441',
+-	"sdot;":                     '\U000022C5',
+-	"sdotb;":                    '\U000022A1',
+-	"sdote;":                    '\U00002A66',
+-	"seArr;":                    '\U000021D8',
+-	"searhk;":                   '\U00002925',
+-	"searr;":                    '\U00002198',
+-	"searrow;":                  '\U00002198',
+-	"sect;":                     '\U000000A7',
+-	"semi;":                     '\U0000003B',
+-	"seswar;":                   '\U00002929',
+-	"setminus;":                 '\U00002216',
+-	"setmn;":                    '\U00002216',
+-	"sext;":                     '\U00002736',
+-	"sfr;":                      '\U0001D530',
+-	"sfrown;":                   '\U00002322',
+-	"sharp;":                    '\U0000266F',
+-	"shchcy;":                   '\U00000449',
+-	"shcy;":                     '\U00000448',
+-	"shortmid;":                 '\U00002223',
+-	"shortparallel;":            '\U00002225',
+-	"shy;":                      '\U000000AD',
+-	"sigma;":                    '\U000003C3',
+-	"sigmaf;":                   '\U000003C2',
+-	"sigmav;":                   '\U000003C2',
+-	"sim;":                      '\U0000223C',
+-	"simdot;":                   '\U00002A6A',
+-	"sime;":                     '\U00002243',
+-	"simeq;":                    '\U00002243',
+-	"simg;":                     '\U00002A9E',
+-	"simgE;":                    '\U00002AA0',
+-	"siml;":                     '\U00002A9D',
+-	"simlE;":                    '\U00002A9F',
+-	"simne;":                    '\U00002246',
+-	"simplus;":                  '\U00002A24',
+-	"simrarr;":                  '\U00002972',
+-	"slarr;":                    '\U00002190',
+-	"smallsetminus;":            '\U00002216',
+-	"smashp;":                   '\U00002A33',
+-	"smeparsl;":                 '\U000029E4',
+-	"smid;":                     '\U00002223',
+-	"smile;":                    '\U00002323',
+-	"smt;":                      '\U00002AAA',
+-	"smte;":                     '\U00002AAC',
+-	"softcy;":                   '\U0000044C',
+-	"sol;":                      '\U0000002F',
+-	"solb;":                     '\U000029C4',
+-	"solbar;":                   '\U0000233F',
+-	"sopf;":                     '\U0001D564',
+-	"spades;":                   '\U00002660',
+-	"spadesuit;":                '\U00002660',
+-	"spar;":                     '\U00002225',
+-	"sqcap;":                    '\U00002293',
+-	"sqcup;":                    '\U00002294',
+-	"sqsub;":                    '\U0000228F',
+-	"sqsube;":                   '\U00002291',
+-	"sqsubset;":                 '\U0000228F',
+-	"sqsubseteq;":               '\U00002291',
+-	"sqsup;":                    '\U00002290',
+-	"sqsupe;":                   '\U00002292',
+-	"sqsupset;":                 '\U00002290',
+-	"sqsupseteq;":               '\U00002292',
+-	"squ;":                      '\U000025A1',
+-	"square;":                   '\U000025A1',
+-	"squarf;":                   '\U000025AA',
+-	"squf;":                     '\U000025AA',
+-	"srarr;":                    '\U00002192',
+-	"sscr;":                     '\U0001D4C8',
+-	"ssetmn;":                   '\U00002216',
+-	"ssmile;":                   '\U00002323',
+-	"sstarf;":                   '\U000022C6',
+-	"star;":                     '\U00002606',
+-	"starf;":                    '\U00002605',
+-	"straightepsilon;":          '\U000003F5',
+-	"straightphi;":              '\U000003D5',
+-	"strns;":                    '\U000000AF',
+-	"sub;":                      '\U00002282',
+-	"subE;":                     '\U00002AC5',
+-	"subdot;":                   '\U00002ABD',
+-	"sube;":                     '\U00002286',
+-	"subedot;":                  '\U00002AC3',
+-	"submult;":                  '\U00002AC1',
+-	"subnE;":                    '\U00002ACB',
+-	"subne;":                    '\U0000228A',
+-	"subplus;":                  '\U00002ABF',
+-	"subrarr;":                  '\U00002979',
+-	"subset;":                   '\U00002282',
+-	"subseteq;":                 '\U00002286',
+-	"subseteqq;":                '\U00002AC5',
+-	"subsetneq;":                '\U0000228A',
+-	"subsetneqq;":               '\U00002ACB',
+-	"subsim;":                   '\U00002AC7',
+-	"subsub;":                   '\U00002AD5',
+-	"subsup;":                   '\U00002AD3',
+-	"succ;":                     '\U0000227B',
+-	"succapprox;":               '\U00002AB8',
+-	"succcurlyeq;":              '\U0000227D',
+-	"succeq;":                   '\U00002AB0',
+-	"succnapprox;":              '\U00002ABA',
+-	"succneqq;":                 '\U00002AB6',
+-	"succnsim;":                 '\U000022E9',
+-	"succsim;":                  '\U0000227F',
+-	"sum;":                      '\U00002211',
+-	"sung;":                     '\U0000266A',
+-	"sup;":                      '\U00002283',
+-	"sup1;":                     '\U000000B9',
+-	"sup2;":                     '\U000000B2',
+-	"sup3;":                     '\U000000B3',
+-	"supE;":                     '\U00002AC6',
+-	"supdot;":                   '\U00002ABE',
+-	"supdsub;":                  '\U00002AD8',
+-	"supe;":                     '\U00002287',
+-	"supedot;":                  '\U00002AC4',
+-	"suphsol;":                  '\U000027C9',
+-	"suphsub;":                  '\U00002AD7',
+-	"suplarr;":                  '\U0000297B',
+-	"supmult;":                  '\U00002AC2',
+-	"supnE;":                    '\U00002ACC',
+-	"supne;":                    '\U0000228B',
+-	"supplus;":                  '\U00002AC0',
+-	"supset;":                   '\U00002283',
+-	"supseteq;":                 '\U00002287',
+-	"supseteqq;":                '\U00002AC6',
+-	"supsetneq;":                '\U0000228B',
+-	"supsetneqq;":               '\U00002ACC',
+-	"supsim;":                   '\U00002AC8',
+-	"supsub;":                   '\U00002AD4',
+-	"supsup;":                   '\U00002AD6',
+-	"swArr;":                    '\U000021D9',
+-	"swarhk;":                   '\U00002926',
+-	"swarr;":                    '\U00002199',
+-	"swarrow;":                  '\U00002199',
+-	"swnwar;":                   '\U0000292A',
+-	"szlig;":                    '\U000000DF',
+-	"target;":                   '\U00002316',
+-	"tau;":                      '\U000003C4',
+-	"tbrk;":                     '\U000023B4',
+-	"tcaron;":                   '\U00000165',
+-	"tcedil;":                   '\U00000163',
+-	"tcy;":                      '\U00000442',
+-	"tdot;":                     '\U000020DB',
+-	"telrec;":                   '\U00002315',
+-	"tfr;":                      '\U0001D531',
+-	"there4;":                   '\U00002234',
+-	"therefore;":                '\U00002234',
+-	"theta;":                    '\U000003B8',
+-	"thetasym;":                 '\U000003D1',
+-	"thetav;":                   '\U000003D1',
+-	"thickapprox;":              '\U00002248',
+-	"thicksim;":                 '\U0000223C',
+-	"thinsp;":                   '\U00002009',
+-	"thkap;":                    '\U00002248',
+-	"thksim;":                   '\U0000223C',
+-	"thorn;":                    '\U000000FE',
+-	"tilde;":                    '\U000002DC',
+-	"times;":                    '\U000000D7',
+-	"timesb;":                   '\U000022A0',
+-	"timesbar;":                 '\U00002A31',
+-	"timesd;":                   '\U00002A30',
+-	"tint;":                     '\U0000222D',
+-	"toea;":                     '\U00002928',
+-	"top;":                      '\U000022A4',
+-	"topbot;":                   '\U00002336',
+-	"topcir;":                   '\U00002AF1',
+-	"topf;":                     '\U0001D565',
+-	"topfork;":                  '\U00002ADA',
+-	"tosa;":                     '\U00002929',
+-	"tprime;":                   '\U00002034',
+-	"trade;":                    '\U00002122',
+-	"triangle;":                 '\U000025B5',
+-	"triangledown;":             '\U000025BF',
+-	"triangleleft;":             '\U000025C3',
+-	"trianglelefteq;":           '\U000022B4',
+-	"triangleq;":                '\U0000225C',
+-	"triangleright;":            '\U000025B9',
+-	"trianglerighteq;":          '\U000022B5',
+-	"tridot;":                   '\U000025EC',
+-	"trie;":                     '\U0000225C',
+-	"triminus;":                 '\U00002A3A',
+-	"triplus;":                  '\U00002A39',
+-	"trisb;":                    '\U000029CD',
+-	"tritime;":                  '\U00002A3B',
+-	"trpezium;":                 '\U000023E2',
+-	"tscr;":                     '\U0001D4C9',
+-	"tscy;":                     '\U00000446',
+-	"tshcy;":                    '\U0000045B',
+-	"tstrok;":                   '\U00000167',
+-	"twixt;":                    '\U0000226C',
+-	"twoheadleftarrow;":         '\U0000219E',
+-	"twoheadrightarrow;":        '\U000021A0',
+-	"uArr;":                     '\U000021D1',
+-	"uHar;":                     '\U00002963',
+-	"uacute;":                   '\U000000FA',
+-	"uarr;":                     '\U00002191',
+-	"ubrcy;":                    '\U0000045E',
+-	"ubreve;":                   '\U0000016D',
+-	"ucirc;":                    '\U000000FB',
+-	"ucy;":                      '\U00000443',
+-	"udarr;":                    '\U000021C5',
+-	"udblac;":                   '\U00000171',
+-	"udhar;":                    '\U0000296E',
+-	"ufisht;":                   '\U0000297E',
+-	"ufr;":                      '\U0001D532',
+-	"ugrave;":                   '\U000000F9',
+-	"uharl;":                    '\U000021BF',
+-	"uharr;":                    '\U000021BE',
+-	"uhblk;":                    '\U00002580',
+-	"ulcorn;":                   '\U0000231C',
+-	"ulcorner;":                 '\U0000231C',
+-	"ulcrop;":                   '\U0000230F',
+-	"ultri;":                    '\U000025F8',
+-	"umacr;":                    '\U0000016B',
+-	"uml;":                      '\U000000A8',
+-	"uogon;":                    '\U00000173',
+-	"uopf;":                     '\U0001D566',
+-	"uparrow;":                  '\U00002191',
+-	"updownarrow;":              '\U00002195',
+-	"upharpoonleft;":            '\U000021BF',
+-	"upharpoonright;":           '\U000021BE',
+-	"uplus;":                    '\U0000228E',
+-	"upsi;":                     '\U000003C5',
+-	"upsih;":                    '\U000003D2',
+-	"upsilon;":                  '\U000003C5',
+-	"upuparrows;":               '\U000021C8',
+-	"urcorn;":                   '\U0000231D',
+-	"urcorner;":                 '\U0000231D',
+-	"urcrop;":                   '\U0000230E',
+-	"uring;":                    '\U0000016F',
+-	"urtri;":                    '\U000025F9',
+-	"uscr;":                     '\U0001D4CA',
+-	"utdot;":                    '\U000022F0',
+-	"utilde;":                   '\U00000169',
+-	"utri;":                     '\U000025B5',
+-	"utrif;":                    '\U000025B4',
+-	"uuarr;":                    '\U000021C8',
+-	"uuml;":                     '\U000000FC',
+-	"uwangle;":                  '\U000029A7',
+-	"vArr;":                     '\U000021D5',
+-	"vBar;":                     '\U00002AE8',
+-	"vBarv;":                    '\U00002AE9',
+-	"vDash;":                    '\U000022A8',
+-	"vangrt;":                   '\U0000299C',
+-	"varepsilon;":               '\U000003F5',
+-	"varkappa;":                 '\U000003F0',
+-	"varnothing;":               '\U00002205',
+-	"varphi;":                   '\U000003D5',
+-	"varpi;":                    '\U000003D6',
+-	"varpropto;":                '\U0000221D',
+-	"varr;":                     '\U00002195',
+-	"varrho;":                   '\U000003F1',
+-	"varsigma;":                 '\U000003C2',
+-	"vartheta;":                 '\U000003D1',
+-	"vartriangleleft;":          '\U000022B2',
+-	"vartriangleright;":         '\U000022B3',
+-	"vcy;":                      '\U00000432',
+-	"vdash;":                    '\U000022A2',
+-	"vee;":                      '\U00002228',
+-	"veebar;":                   '\U000022BB',
+-	"veeeq;":                    '\U0000225A',
+-	"vellip;":                   '\U000022EE',
+-	"verbar;":                   '\U0000007C',
+-	"vert;":                     '\U0000007C',
+-	"vfr;":                      '\U0001D533',
+-	"vltri;":                    '\U000022B2',
+-	"vopf;":                     '\U0001D567',
+-	"vprop;":                    '\U0000221D',
+-	"vrtri;":                    '\U000022B3',
+-	"vscr;":                     '\U0001D4CB',
+-	"vzigzag;":                  '\U0000299A',
+-	"wcirc;":                    '\U00000175',
+-	"wedbar;":                   '\U00002A5F',
+-	"wedge;":                    '\U00002227',
+-	"wedgeq;":                   '\U00002259',
+-	"weierp;":                   '\U00002118',
+-	"wfr;":                      '\U0001D534',
+-	"wopf;":                     '\U0001D568',
+-	"wp;":                       '\U00002118',
+-	"wr;":                       '\U00002240',
+-	"wreath;":                   '\U00002240',
+-	"wscr;":                     '\U0001D4CC',
+-	"xcap;":                     '\U000022C2',
+-	"xcirc;":                    '\U000025EF',
+-	"xcup;":                     '\U000022C3',
+-	"xdtri;":                    '\U000025BD',
+-	"xfr;":                      '\U0001D535',
+-	"xhArr;":                    '\U000027FA',
+-	"xharr;":                    '\U000027F7',
+-	"xi;":                       '\U000003BE',
+-	"xlArr;":                    '\U000027F8',
+-	"xlarr;":                    '\U000027F5',
+-	"xmap;":                     '\U000027FC',
+-	"xnis;":                     '\U000022FB',
+-	"xodot;":                    '\U00002A00',
+-	"xopf;":                     '\U0001D569',
+-	"xoplus;":                   '\U00002A01',
+-	"xotime;":                   '\U00002A02',
+-	"xrArr;":                    '\U000027F9',
+-	"xrarr;":                    '\U000027F6',
+-	"xscr;":                     '\U0001D4CD',
+-	"xsqcup;":                   '\U00002A06',
+-	"xuplus;":                   '\U00002A04',
+-	"xutri;":                    '\U000025B3',
+-	"xvee;":                     '\U000022C1',
+-	"xwedge;":                   '\U000022C0',
+-	"yacute;":                   '\U000000FD',
+-	"yacy;":                     '\U0000044F',
+-	"ycirc;":                    '\U00000177',
+-	"ycy;":                      '\U0000044B',
+-	"yen;":                      '\U000000A5',
+-	"yfr;":                      '\U0001D536',
+-	"yicy;":                     '\U00000457',
+-	"yopf;":                     '\U0001D56A',
+-	"yscr;":                     '\U0001D4CE',
+-	"yucy;":                     '\U0000044E',
+-	"yuml;":                     '\U000000FF',
+-	"zacute;":                   '\U0000017A',
+-	"zcaron;":                   '\U0000017E',
+-	"zcy;":                      '\U00000437',
+-	"zdot;":                     '\U0000017C',
+-	"zeetrf;":                   '\U00002128',
+-	"zeta;":                     '\U000003B6',
+-	"zfr;":                      '\U0001D537',
+-	"zhcy;":                     '\U00000436',
+-	"zigrarr;":                  '\U000021DD',
+-	"zopf;":                     '\U0001D56B',
+-	"zscr;":                     '\U0001D4CF',
+-	"zwj;":                      '\U0000200D',
+-	"zwnj;":                     '\U0000200C',
+-	"AElig":                     '\U000000C6',
+-	"AMP":                       '\U00000026',
+-	"Aacute":                    '\U000000C1',
+-	"Acirc":                     '\U000000C2',
+-	"Agrave":                    '\U000000C0',
+-	"Aring":                     '\U000000C5',
+-	"Atilde":                    '\U000000C3',
+-	"Auml":                      '\U000000C4',
+-	"COPY":                      '\U000000A9',
+-	"Ccedil":                    '\U000000C7',
+-	"ETH":                       '\U000000D0',
+-	"Eacute":                    '\U000000C9',
+-	"Ecirc":                     '\U000000CA',
+-	"Egrave":                    '\U000000C8',
+-	"Euml":                      '\U000000CB',
+-	"GT":                        '\U0000003E',
+-	"Iacute":                    '\U000000CD',
+-	"Icirc":                     '\U000000CE',
+-	"Igrave":                    '\U000000CC',
+-	"Iuml":                      '\U000000CF',
+-	"LT":                        '\U0000003C',
+-	"Ntilde":                    '\U000000D1',
+-	"Oacute":                    '\U000000D3',
+-	"Ocirc":                     '\U000000D4',
+-	"Ograve":                    '\U000000D2',
+-	"Oslash":                    '\U000000D8',
+-	"Otilde":                    '\U000000D5',
+-	"Ouml":                      '\U000000D6',
+-	"QUOT":                      '\U00000022',
+-	"REG":                       '\U000000AE',
+-	"THORN":                     '\U000000DE',
+-	"Uacute":                    '\U000000DA',
+-	"Ucirc":                     '\U000000DB',
+-	"Ugrave":                    '\U000000D9',
+-	"Uuml":                      '\U000000DC',
+-	"Yacute":                    '\U000000DD',
+-	"aacute":                    '\U000000E1',
+-	"acirc":                     '\U000000E2',
+-	"acute":                     '\U000000B4',
+-	"aelig":                     '\U000000E6',
+-	"agrave":                    '\U000000E0',
+-	"amp":                       '\U00000026',
+-	"aring":                     '\U000000E5',
+-	"atilde":                    '\U000000E3',
+-	"auml":                      '\U000000E4',
+-	"brvbar":                    '\U000000A6',
+-	"ccedil":                    '\U000000E7',
+-	"cedil":                     '\U000000B8',
+-	"cent":                      '\U000000A2',
+-	"copy":                      '\U000000A9',
+-	"curren":                    '\U000000A4',
+-	"deg":                       '\U000000B0',
+-	"divide":                    '\U000000F7',
+-	"eacute":                    '\U000000E9',
+-	"ecirc":                     '\U000000EA',
+-	"egrave":                    '\U000000E8',
+-	"eth":                       '\U000000F0',
+-	"euml":                      '\U000000EB',
+-	"frac12":                    '\U000000BD',
+-	"frac14":                    '\U000000BC',
+-	"frac34":                    '\U000000BE',
+-	"gt":                        '\U0000003E',
+-	"iacute":                    '\U000000ED',
+-	"icirc":                     '\U000000EE',
+-	"iexcl":                     '\U000000A1',
+-	"igrave":                    '\U000000EC',
+-	"iquest":                    '\U000000BF',
+-	"iuml":                      '\U000000EF',
+-	"laquo":                     '\U000000AB',
+-	"lt":                        '\U0000003C',
+-	"macr":                      '\U000000AF',
+-	"micro":                     '\U000000B5',
+-	"middot":                    '\U000000B7',
+-	"nbsp":                      '\U000000A0',
+-	"not":                       '\U000000AC',
+-	"ntilde":                    '\U000000F1',
+-	"oacute":                    '\U000000F3',
+-	"ocirc":                     '\U000000F4',
+-	"ograve":                    '\U000000F2',
+-	"ordf":                      '\U000000AA',
+-	"ordm":                      '\U000000BA',
+-	"oslash":                    '\U000000F8',
+-	"otilde":                    '\U000000F5',
+-	"ouml":                      '\U000000F6',
+-	"para":                      '\U000000B6',
+-	"plusmn":                    '\U000000B1',
+-	"pound":                     '\U000000A3',
+-	"quot":                      '\U00000022',
+-	"raquo":                     '\U000000BB',
+-	"reg":                       '\U000000AE',
+-	"sect":                      '\U000000A7',
+-	"shy":                       '\U000000AD',
+-	"sup1":                      '\U000000B9',
+-	"sup2":                      '\U000000B2',
+-	"sup3":                      '\U000000B3',
+-	"szlig":                     '\U000000DF',
+-	"thorn":                     '\U000000FE',
+-	"times":                     '\U000000D7',
+-	"uacute":                    '\U000000FA',
+-	"ucirc":                     '\U000000FB',
+-	"ugrave":                    '\U000000F9',
+-	"uml":                       '\U000000A8',
+-	"uuml":                      '\U000000FC',
+-	"yacute":                    '\U000000FD',
+-	"yen":                       '\U000000A5',
+-	"yuml":                      '\U000000FF',
+-}
+-
+-// HTML entities that are two unicode codepoints.
+-var entity2 = map[string][2]rune{
+-	// TODO(nigeltao): Handle replacements that are wider than their names.
+-	// "nLt;":                     {'\u226A', '\u20D2'},
+-	// "nGt;":                     {'\u226B', '\u20D2'},
+-	"NotEqualTilde;":           {'\u2242', '\u0338'},
+-	"NotGreaterFullEqual;":     {'\u2267', '\u0338'},
+-	"NotGreaterGreater;":       {'\u226B', '\u0338'},
+-	"NotGreaterSlantEqual;":    {'\u2A7E', '\u0338'},
+-	"NotHumpDownHump;":         {'\u224E', '\u0338'},
+-	"NotHumpEqual;":            {'\u224F', '\u0338'},
+-	"NotLeftTriangleBar;":      {'\u29CF', '\u0338'},
+-	"NotLessLess;":             {'\u226A', '\u0338'},
+-	"NotLessSlantEqual;":       {'\u2A7D', '\u0338'},
+-	"NotNestedGreaterGreater;": {'\u2AA2', '\u0338'},
+-	"NotNestedLessLess;":       {'\u2AA1', '\u0338'},
+-	"NotPrecedesEqual;":        {'\u2AAF', '\u0338'},
+-	"NotRightTriangleBar;":     {'\u29D0', '\u0338'},
+-	"NotSquareSubset;":         {'\u228F', '\u0338'},
+-	"NotSquareSuperset;":       {'\u2290', '\u0338'},
+-	"NotSubset;":               {'\u2282', '\u20D2'},
+-	"NotSucceedsEqual;":        {'\u2AB0', '\u0338'},
+-	"NotSucceedsTilde;":        {'\u227F', '\u0338'},
+-	"NotSuperset;":             {'\u2283', '\u20D2'},
+-	"ThickSpace;":              {'\u205F', '\u200A'},
+-	"acE;":                     {'\u223E', '\u0333'},
+-	"bne;":                     {'\u003D', '\u20E5'},
+-	"bnequiv;":                 {'\u2261', '\u20E5'},
+-	"caps;":                    {'\u2229', '\uFE00'},
+-	"cups;":                    {'\u222A', '\uFE00'},
+-	"fjlig;":                   {'\u0066', '\u006A'},
+-	"gesl;":                    {'\u22DB', '\uFE00'},
+-	"gvertneqq;":               {'\u2269', '\uFE00'},
+-	"gvnE;":                    {'\u2269', '\uFE00'},
+-	"lates;":                   {'\u2AAD', '\uFE00'},
+-	"lesg;":                    {'\u22DA', '\uFE00'},
+-	"lvertneqq;":               {'\u2268', '\uFE00'},
+-	"lvnE;":                    {'\u2268', '\uFE00'},
+-	"nGg;":                     {'\u22D9', '\u0338'},
+-	"nGtv;":                    {'\u226B', '\u0338'},
+-	"nLl;":                     {'\u22D8', '\u0338'},
+-	"nLtv;":                    {'\u226A', '\u0338'},
+-	"nang;":                    {'\u2220', '\u20D2'},
+-	"napE;":                    {'\u2A70', '\u0338'},
+-	"napid;":                   {'\u224B', '\u0338'},
+-	"nbump;":                   {'\u224E', '\u0338'},
+-	"nbumpe;":                  {'\u224F', '\u0338'},
+-	"ncongdot;":                {'\u2A6D', '\u0338'},
+-	"nedot;":                   {'\u2250', '\u0338'},
+-	"nesim;":                   {'\u2242', '\u0338'},
+-	"ngE;":                     {'\u2267', '\u0338'},
+-	"ngeqq;":                   {'\u2267', '\u0338'},
+-	"ngeqslant;":               {'\u2A7E', '\u0338'},
+-	"nges;":                    {'\u2A7E', '\u0338'},
+-	"nlE;":                     {'\u2266', '\u0338'},
+-	"nleqq;":                   {'\u2266', '\u0338'},
+-	"nleqslant;":               {'\u2A7D', '\u0338'},
+-	"nles;":                    {'\u2A7D', '\u0338'},
+-	"notinE;":                  {'\u22F9', '\u0338'},
+-	"notindot;":                {'\u22F5', '\u0338'},
+-	"nparsl;":                  {'\u2AFD', '\u20E5'},
+-	"npart;":                   {'\u2202', '\u0338'},
+-	"npre;":                    {'\u2AAF', '\u0338'},
+-	"npreceq;":                 {'\u2AAF', '\u0338'},
+-	"nrarrc;":                  {'\u2933', '\u0338'},
+-	"nrarrw;":                  {'\u219D', '\u0338'},
+-	"nsce;":                    {'\u2AB0', '\u0338'},
+-	"nsubE;":                   {'\u2AC5', '\u0338'},
+-	"nsubset;":                 {'\u2282', '\u20D2'},
+-	"nsubseteqq;":              {'\u2AC5', '\u0338'},
+-	"nsucceq;":                 {'\u2AB0', '\u0338'},
+-	"nsupE;":                   {'\u2AC6', '\u0338'},
+-	"nsupset;":                 {'\u2283', '\u20D2'},
+-	"nsupseteqq;":              {'\u2AC6', '\u0338'},
+-	"nvap;":                    {'\u224D', '\u20D2'},
+-	"nvge;":                    {'\u2265', '\u20D2'},
+-	"nvgt;":                    {'\u003E', '\u20D2'},
+-	"nvle;":                    {'\u2264', '\u20D2'},
+-	"nvlt;":                    {'\u003C', '\u20D2'},
+-	"nvltrie;":                 {'\u22B4', '\u20D2'},
+-	"nvrtrie;":                 {'\u22B5', '\u20D2'},
+-	"nvsim;":                   {'\u223C', '\u20D2'},
+-	"race;":                    {'\u223D', '\u0331'},
+-	"smtes;":                   {'\u2AAC', '\uFE00'},
+-	"sqcaps;":                  {'\u2293', '\uFE00'},
+-	"sqcups;":                  {'\u2294', '\uFE00'},
+-	"varsubsetneq;":            {'\u228A', '\uFE00'},
+-	"varsubsetneqq;":           {'\u2ACB', '\uFE00'},
+-	"varsupsetneq;":            {'\u228B', '\uFE00'},
+-	"varsupsetneqq;":           {'\u2ACC', '\uFE00'},
+-	"vnsub;":                   {'\u2282', '\u20D2'},
+-	"vnsup;":                   {'\u2283', '\u20D2'},
+-	"vsubnE;":                  {'\u2ACB', '\uFE00'},
+-	"vsubne;":                  {'\u228A', '\uFE00'},
+-	"vsupnE;":                  {'\u2ACC', '\uFE00'},
+-	"vsupne;":                  {'\u228B', '\uFE00'},
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/entity_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/entity_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/entity_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/entity_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,29 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"testing"
+-	"unicode/utf8"
+-)
+-
+-func TestEntityLength(t *testing.T) {
+-	// We verify that the length of UTF-8 encoding of each value is <= 1 + len(key).
+-	// The +1 comes from the leading "&". This property implies that the length of
+-	// unescaped text is <= the length of escaped text.
+-	for k, v := range entity {
+-		if 1+len(k) < utf8.RuneLen(v) {
+-			t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v))
+-		}
+-		if len(k) > longestEntityWithoutSemicolon && k[len(k)-1] != ';' {
+-			t.Errorf("entity name %s is %d characters, but longestEntityWithoutSemicolon=%d", k, len(k), longestEntityWithoutSemicolon)
+-		}
+-	}
+-	for k, v := range entity2 {
+-		if 1+len(k) < utf8.RuneLen(v[0])+utf8.RuneLen(v[1]) {
+-			t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v[0]) + string(v[1]))
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/escape.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/escape.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/escape.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/escape.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,258 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"bytes"
+-	"strings"
+-	"unicode/utf8"
+-)
+-
+-// These replacements permit compatibility with old numeric entities that
+-// assumed Windows-1252 encoding.
+-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
+-var replacementTable = [...]rune{
+-	'\u20AC', // First entry is what 0x80 should be replaced with.
+-	'\u0081',
+-	'\u201A',
+-	'\u0192',
+-	'\u201E',
+-	'\u2026',
+-	'\u2020',
+-	'\u2021',
+-	'\u02C6',
+-	'\u2030',
+-	'\u0160',
+-	'\u2039',
+-	'\u0152',
+-	'\u008D',
+-	'\u017D',
+-	'\u008F',
+-	'\u0090',
+-	'\u2018',
+-	'\u2019',
+-	'\u201C',
+-	'\u201D',
+-	'\u2022',
+-	'\u2013',
+-	'\u2014',
+-	'\u02DC',
+-	'\u2122',
+-	'\u0161',
+-	'\u203A',
+-	'\u0153',
+-	'\u009D',
+-	'\u017E',
+-	'\u0178', // Last entry is 0x9F.
+-	// 0x00->'\uFFFD' is handled programmatically.
+-	// 0x0D->'\u000D' is a no-op.
+-}
+-
+-// unescapeEntity reads an entity like "&lt;" from b[src:] and writes the
+-// corresponding "<" to b[dst:], returning the incremented dst and src cursors.
+-// Precondition: b[src] == '&' && dst <= src.
+-// attribute should be true if parsing an attribute value.
+-func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) {
+-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
+-
+-	// i starts at 1 because we already know that s[0] == '&'.
+-	i, s := 1, b[src:]
+-
+-	if len(s) <= 1 {
+-		b[dst] = b[src]
+-		return dst + 1, src + 1
+-	}
+-
+-	if s[i] == '#' {
+-		if len(s) <= 3 { // We need to have at least "&#.".
+-			b[dst] = b[src]
+-			return dst + 1, src + 1
+-		}
+-		i++
+-		c := s[i]
+-		hex := false
+-		if c == 'x' || c == 'X' {
+-			hex = true
+-			i++
+-		}
+-
+-		x := '\x00'
+-		for i < len(s) {
+-			c = s[i]
+-			i++
+-			if hex {
+-				if '0' <= c && c <= '9' {
+-					x = 16*x + rune(c) - '0'
+-					continue
+-				} else if 'a' <= c && c <= 'f' {
+-					x = 16*x + rune(c) - 'a' + 10
+-					continue
+-				} else if 'A' <= c && c <= 'F' {
+-					x = 16*x + rune(c) - 'A' + 10
+-					continue
+-				}
+-			} else if '0' <= c && c <= '9' {
+-				x = 10*x + rune(c) - '0'
+-				continue
+-			}
+-			if c != ';' {
+-				i--
+-			}
+-			break
+-		}
+-
+-		if i <= 3 { // No characters matched.
+-			b[dst] = b[src]
+-			return dst + 1, src + 1
+-		}
+-
+-		if 0x80 <= x && x <= 0x9F {
+-			// Replace characters from Windows-1252 with UTF-8 equivalents.
+-			x = replacementTable[x-0x80]
+-		} else if x == 0 || (0xD800 <= x && x <= 0xDFFF) || x > 0x10FFFF {
+-			// Replace invalid characters with the replacement character.
+-			x = '\uFFFD'
+-		}
+-
+-		return dst + utf8.EncodeRune(b[dst:], x), src + i
+-	}
+-
+-	// Consume the maximum number of characters possible, with the
+-	// consumed characters matching one of the named references.
+-
+-	for i < len(s) {
+-		c := s[i]
+-		i++
+-		// Lower-cased characters are more common in entities, so we check for them first.
+-		if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' {
+-			continue
+-		}
+-		if c != ';' {
+-			i--
+-		}
+-		break
+-	}
+-
+-	entityName := string(s[1:i])
+-	if entityName == "" {
+-		// No-op.
+-	} else if attribute && entityName[len(entityName)-1] != ';' && len(s) > i && s[i] == '=' {
+-		// No-op.
+-	} else if x := entity[entityName]; x != 0 {
+-		return dst + utf8.EncodeRune(b[dst:], x), src + i
+-	} else if x := entity2[entityName]; x[0] != 0 {
+-		dst1 := dst + utf8.EncodeRune(b[dst:], x[0])
+-		return dst1 + utf8.EncodeRune(b[dst1:], x[1]), src + i
+-	} else if !attribute {
+-		maxLen := len(entityName) - 1
+-		if maxLen > longestEntityWithoutSemicolon {
+-			maxLen = longestEntityWithoutSemicolon
+-		}
+-		for j := maxLen; j > 1; j-- {
+-			if x := entity[entityName[:j]]; x != 0 {
+-				return dst + utf8.EncodeRune(b[dst:], x), src + j + 1
+-			}
+-		}
+-	}
+-
+-	dst1, src1 = dst+i, src+i
+-	copy(b[dst:dst1], b[src:src1])
+-	return dst1, src1
+-}
+-
+-// unescape unescapes b's entities in-place, so that "a&lt;b" becomes "a<b".
+-// attribute should be true if parsing an attribute value.
+-func unescape(b []byte, attribute bool) []byte {
+-	for i, c := range b {
+-		if c == '&' {
+-			dst, src := unescapeEntity(b, i, i, attribute)
+-			for src < len(b) {
+-				c := b[src]
+-				if c == '&' {
+-					dst, src = unescapeEntity(b, dst, src, attribute)
+-				} else {
+-					b[dst] = c
+-					dst, src = dst+1, src+1
+-				}
+-			}
+-			return b[0:dst]
+-		}
+-	}
+-	return b
+-}
+-
+-// lower lower-cases the A-Z bytes in b in-place, so that "aBc" becomes "abc".
+-func lower(b []byte) []byte {
+-	for i, c := range b {
+-		if 'A' <= c && c <= 'Z' {
+-			b[i] = c + 'a' - 'A'
+-		}
+-	}
+-	return b
+-}
+-
+-const escapedChars = "&'<>\"\r"
+-
+-func escape(w writer, s string) error {
+-	i := strings.IndexAny(s, escapedChars)
+-	for i != -1 {
+-		if _, err := w.WriteString(s[:i]); err != nil {
+-			return err
+-		}
+-		var esc string
+-		switch s[i] {
+-		case '&':
+-			esc = "&amp;"
+-		case '\'':
+-			// "&#39;" is shorter than "&apos;" and apos was not in HTML until HTML5.
+-			esc = "&#39;"
+-		case '<':
+-			esc = "&lt;"
+-		case '>':
+-			esc = "&gt;"
+-		case '"':
+-			// "&#34;" is shorter than "&quot;".
+-			esc = "&#34;"
+-		case '\r':
+-			esc = "&#13;"
+-		default:
+-			panic("unrecognized escape character")
+-		}
+-		s = s[i+1:]
+-		if _, err := w.WriteString(esc); err != nil {
+-			return err
+-		}
+-		i = strings.IndexAny(s, escapedChars)
+-	}
+-	_, err := w.WriteString(s)
+-	return err
+-}
+-
+-// EscapeString escapes special characters like "<" to become "&lt;". It
+-// escapes only five such characters: <, >, &, ' and ".
+-// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't
+-// always true.
+-func EscapeString(s string) string {
+-	if strings.IndexAny(s, escapedChars) == -1 {
+-		return s
+-	}
+-	var buf bytes.Buffer
+-	escape(&buf, s)
+-	return buf.String()
+-}
+-
+-// UnescapeString unescapes entities like "&lt;" to become "<". It unescapes a
+-// larger range of entities than EscapeString escapes. For example, "&aacute;"
+-// unescapes to "á", as does "&#225;" and "&xE1;".
+-// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't
+-// always true.
+-func UnescapeString(s string) string {
+-	for _, c := range s {
+-		if c == '&' {
+-			return string(unescape([]byte(s), false))
+-		}
+-	}
+-	return s
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/example_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/example_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/example_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/example_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,40 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// This example demonstrates parsing HTML data and walking the resulting tree.
+-package html_test
+-
+-import (
+-	"fmt"
+-	"log"
+-	"strings"
+-
+-	"code.google.com/p/go.net/html"
+-)
+-
+-func ExampleParse() {
+-	s := `<p>Links:</p><ul><li><a href="foo">Foo</a><li><a href="/bar/baz">BarBaz</a></ul>`
+-	doc, err := html.Parse(strings.NewReader(s))
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	var f func(*html.Node)
+-	f = func(n *html.Node) {
+-		if n.Type == html.ElementNode && n.Data == "a" {
+-			for _, a := range n.Attr {
+-				if a.Key == "href" {
+-					fmt.Println(a.Val)
+-					break
+-				}
+-			}
+-		}
+-		for c := n.FirstChild; c != nil; c = c.NextSibling {
+-			f(c)
+-		}
+-	}
+-	f(doc)
+-	// Output:
+-	// foo
+-	// /bar/baz
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/foreign.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/foreign.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/foreign.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/foreign.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,226 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"strings"
+-)
+-
+-func adjustAttributeNames(aa []Attribute, nameMap map[string]string) {
+-	for i := range aa {
+-		if newName, ok := nameMap[aa[i].Key]; ok {
+-			aa[i].Key = newName
+-		}
+-	}
+-}
+-
+-func adjustForeignAttributes(aa []Attribute) {
+-	for i, a := range aa {
+-		if a.Key == "" || a.Key[0] != 'x' {
+-			continue
+-		}
+-		switch a.Key {
+-		case "xlink:actuate", "xlink:arcrole", "xlink:href", "xlink:role", "xlink:show",
+-			"xlink:title", "xlink:type", "xml:base", "xml:lang", "xml:space", "xmlns:xlink":
+-			j := strings.Index(a.Key, ":")
+-			aa[i].Namespace = a.Key[:j]
+-			aa[i].Key = a.Key[j+1:]
+-		}
+-	}
+-}
+-
+-func htmlIntegrationPoint(n *Node) bool {
+-	if n.Type != ElementNode {
+-		return false
+-	}
+-	switch n.Namespace {
+-	case "math":
+-		if n.Data == "annotation-xml" {
+-			for _, a := range n.Attr {
+-				if a.Key == "encoding" {
+-					val := strings.ToLower(a.Val)
+-					if val == "text/html" || val == "application/xhtml+xml" {
+-						return true
+-					}
+-				}
+-			}
+-		}
+-	case "svg":
+-		switch n.Data {
+-		case "desc", "foreignObject", "title":
+-			return true
+-		}
+-	}
+-	return false
+-}
+-
+-func mathMLTextIntegrationPoint(n *Node) bool {
+-	if n.Namespace != "math" {
+-		return false
+-	}
+-	switch n.Data {
+-	case "mi", "mo", "mn", "ms", "mtext":
+-		return true
+-	}
+-	return false
+-}
+-
+-// Section 12.2.5.5.
+-var breakout = map[string]bool{
+-	"b":          true,
+-	"big":        true,
+-	"blockquote": true,
+-	"body":       true,
+-	"br":         true,
+-	"center":     true,
+-	"code":       true,
+-	"dd":         true,
+-	"div":        true,
+-	"dl":         true,
+-	"dt":         true,
+-	"em":         true,
+-	"embed":      true,
+-	"h1":         true,
+-	"h2":         true,
+-	"h3":         true,
+-	"h4":         true,
+-	"h5":         true,
+-	"h6":         true,
+-	"head":       true,
+-	"hr":         true,
+-	"i":          true,
+-	"img":        true,
+-	"li":         true,
+-	"listing":    true,
+-	"menu":       true,
+-	"meta":       true,
+-	"nobr":       true,
+-	"ol":         true,
+-	"p":          true,
+-	"pre":        true,
+-	"ruby":       true,
+-	"s":          true,
+-	"small":      true,
+-	"span":       true,
+-	"strong":     true,
+-	"strike":     true,
+-	"sub":        true,
+-	"sup":        true,
+-	"table":      true,
+-	"tt":         true,
+-	"u":          true,
+-	"ul":         true,
+-	"var":        true,
+-}
+-
+-// Section 12.2.5.5.
+-var svgTagNameAdjustments = map[string]string{
+-	"altglyph":            "altGlyph",
+-	"altglyphdef":         "altGlyphDef",
+-	"altglyphitem":        "altGlyphItem",
+-	"animatecolor":        "animateColor",
+-	"animatemotion":       "animateMotion",
+-	"animatetransform":    "animateTransform",
+-	"clippath":            "clipPath",
+-	"feblend":             "feBlend",
+-	"fecolormatrix":       "feColorMatrix",
+-	"fecomponenttransfer": "feComponentTransfer",
+-	"fecomposite":         "feComposite",
+-	"feconvolvematrix":    "feConvolveMatrix",
+-	"fediffuselighting":   "feDiffuseLighting",
+-	"fedisplacementmap":   "feDisplacementMap",
+-	"fedistantlight":      "feDistantLight",
+-	"feflood":             "feFlood",
+-	"fefunca":             "feFuncA",
+-	"fefuncb":             "feFuncB",
+-	"fefuncg":             "feFuncG",
+-	"fefuncr":             "feFuncR",
+-	"fegaussianblur":      "feGaussianBlur",
+-	"feimage":             "feImage",
+-	"femerge":             "feMerge",
+-	"femergenode":         "feMergeNode",
+-	"femorphology":        "feMorphology",
+-	"feoffset":            "feOffset",
+-	"fepointlight":        "fePointLight",
+-	"fespecularlighting":  "feSpecularLighting",
+-	"fespotlight":         "feSpotLight",
+-	"fetile":              "feTile",
+-	"feturbulence":        "feTurbulence",
+-	"foreignobject":       "foreignObject",
+-	"glyphref":            "glyphRef",
+-	"lineargradient":      "linearGradient",
+-	"radialgradient":      "radialGradient",
+-	"textpath":            "textPath",
+-}
+-
+-// Section 12.2.5.1
+-var mathMLAttributeAdjustments = map[string]string{
+-	"definitionurl": "definitionURL",
+-}
+-
+-var svgAttributeAdjustments = map[string]string{
+-	"attributename":             "attributeName",
+-	"attributetype":             "attributeType",
+-	"basefrequency":             "baseFrequency",
+-	"baseprofile":               "baseProfile",
+-	"calcmode":                  "calcMode",
+-	"clippathunits":             "clipPathUnits",
+-	"contentscripttype":         "contentScriptType",
+-	"contentstyletype":          "contentStyleType",
+-	"diffuseconstant":           "diffuseConstant",
+-	"edgemode":                  "edgeMode",
+-	"externalresourcesrequired": "externalResourcesRequired",
+-	"filterres":                 "filterRes",
+-	"filterunits":               "filterUnits",
+-	"glyphref":                  "glyphRef",
+-	"gradienttransform":         "gradientTransform",
+-	"gradientunits":             "gradientUnits",
+-	"kernelmatrix":              "kernelMatrix",
+-	"kernelunitlength":          "kernelUnitLength",
+-	"keypoints":                 "keyPoints",
+-	"keysplines":                "keySplines",
+-	"keytimes":                  "keyTimes",
+-	"lengthadjust":              "lengthAdjust",
+-	"limitingconeangle":         "limitingConeAngle",
+-	"markerheight":              "markerHeight",
+-	"markerunits":               "markerUnits",
+-	"markerwidth":               "markerWidth",
+-	"maskcontentunits":          "maskContentUnits",
+-	"maskunits":                 "maskUnits",
+-	"numoctaves":                "numOctaves",
+-	"pathlength":                "pathLength",
+-	"patterncontentunits":       "patternContentUnits",
+-	"patterntransform":          "patternTransform",
+-	"patternunits":              "patternUnits",
+-	"pointsatx":                 "pointsAtX",
+-	"pointsaty":                 "pointsAtY",
+-	"pointsatz":                 "pointsAtZ",
+-	"preservealpha":             "preserveAlpha",
+-	"preserveaspectratio":       "preserveAspectRatio",
+-	"primitiveunits":            "primitiveUnits",
+-	"refx":                      "refX",
+-	"refy":                      "refY",
+-	"repeatcount":               "repeatCount",
+-	"repeatdur":                 "repeatDur",
+-	"requiredextensions":        "requiredExtensions",
+-	"requiredfeatures":          "requiredFeatures",
+-	"specularconstant":          "specularConstant",
+-	"specularexponent":          "specularExponent",
+-	"spreadmethod":              "spreadMethod",
+-	"startoffset":               "startOffset",
+-	"stddeviation":              "stdDeviation",
+-	"stitchtiles":               "stitchTiles",
+-	"surfacescale":              "surfaceScale",
+-	"systemlanguage":            "systemLanguage",
+-	"tablevalues":               "tableValues",
+-	"targetx":                   "targetX",
+-	"targety":                   "targetY",
+-	"textlength":                "textLength",
+-	"viewbox":                   "viewBox",
+-	"viewtarget":                "viewTarget",
+-	"xchannelselector":          "xChannelSelector",
+-	"ychannelselector":          "yChannelSelector",
+-	"zoomandpan":                "zoomAndPan",
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/node.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/node.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/node.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/node.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,193 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"code.google.com/p/go.net/html/atom"
+-)
+-
+-// A NodeType is the type of a Node.
+-type NodeType uint32
+-
+-const (
+-	ErrorNode NodeType = iota
+-	TextNode
+-	DocumentNode
+-	ElementNode
+-	CommentNode
+-	DoctypeNode
+-	scopeMarkerNode
+-)
+-
+-// Section 12.2.3.3 says "scope markers are inserted when entering applet
+-// elements, buttons, object elements, marquees, table cells, and table
+-// captions, and are used to prevent formatting from 'leaking'".
+-var scopeMarker = Node{Type: scopeMarkerNode}
+-
+-// A Node consists of a NodeType and some Data (tag name for element nodes,
+-// content for text) and are part of a tree of Nodes. Element nodes may also
+-// have a Namespace and contain a slice of Attributes. Data is unescaped, so
+-// that it looks like "a<b" rather than "a&lt;b". For element nodes, DataAtom
+-// is the atom for Data, or zero if Data is not a known tag name.
+-//
+-// An empty Namespace implies a "http://www.w3.org/1999/xhtml" namespace.
+-// Similarly, "math" is short for "http://www.w3.org/1998/Math/MathML", and
+-// "svg" is short for "http://www.w3.org/2000/svg".
+-type Node struct {
+-	Parent, FirstChild, LastChild, PrevSibling, NextSibling *Node
+-
+-	Type      NodeType
+-	DataAtom  atom.Atom
+-	Data      string
+-	Namespace string
+-	Attr      []Attribute
+-}
+-
+-// InsertBefore inserts newChild as a child of n, immediately before oldChild
+-// in the sequence of n's children. oldChild may be nil, in which case newChild
+-// is appended to the end of n's children.
+-//
+-// It will panic if newChild already has a parent or siblings.
+-func (n *Node) InsertBefore(newChild, oldChild *Node) {
+-	if newChild.Parent != nil || newChild.PrevSibling != nil || newChild.NextSibling != nil {
+-		panic("html: InsertBefore called for an attached child Node")
+-	}
+-	var prev, next *Node
+-	if oldChild != nil {
+-		prev, next = oldChild.PrevSibling, oldChild
+-	} else {
+-		prev = n.LastChild
+-	}
+-	if prev != nil {
+-		prev.NextSibling = newChild
+-	} else {
+-		n.FirstChild = newChild
+-	}
+-	if next != nil {
+-		next.PrevSibling = newChild
+-	} else {
+-		n.LastChild = newChild
+-	}
+-	newChild.Parent = n
+-	newChild.PrevSibling = prev
+-	newChild.NextSibling = next
+-}
+-
+-// AppendChild adds a node c as a child of n.
+-//
+-// It will panic if c already has a parent or siblings.
+-func (n *Node) AppendChild(c *Node) {
+-	if c.Parent != nil || c.PrevSibling != nil || c.NextSibling != nil {
+-		panic("html: AppendChild called for an attached child Node")
+-	}
+-	last := n.LastChild
+-	if last != nil {
+-		last.NextSibling = c
+-	} else {
+-		n.FirstChild = c
+-	}
+-	n.LastChild = c
+-	c.Parent = n
+-	c.PrevSibling = last
+-}
+-
+-// RemoveChild removes a node c that is a child of n. Afterwards, c will have
+-// no parent and no siblings.
+-//
+-// It will panic if c's parent is not n.
+-func (n *Node) RemoveChild(c *Node) {
+-	if c.Parent != n {
+-		panic("html: RemoveChild called for a non-child Node")
+-	}
+-	if n.FirstChild == c {
+-		n.FirstChild = c.NextSibling
+-	}
+-	if c.NextSibling != nil {
+-		c.NextSibling.PrevSibling = c.PrevSibling
+-	}
+-	if n.LastChild == c {
+-		n.LastChild = c.PrevSibling
+-	}
+-	if c.PrevSibling != nil {
+-		c.PrevSibling.NextSibling = c.NextSibling
+-	}
+-	c.Parent = nil
+-	c.PrevSibling = nil
+-	c.NextSibling = nil
+-}
+-
+-// reparentChildren reparents all of src's child nodes to dst.
+-func reparentChildren(dst, src *Node) {
+-	for {
+-		child := src.FirstChild
+-		if child == nil {
+-			break
+-		}
+-		src.RemoveChild(child)
+-		dst.AppendChild(child)
+-	}
+-}
+-
+-// clone returns a new node with the same type, data and attributes.
+-// The clone has no parent, no siblings and no children.
+-func (n *Node) clone() *Node {
+-	m := &Node{
+-		Type:     n.Type,
+-		DataAtom: n.DataAtom,
+-		Data:     n.Data,
+-		Attr:     make([]Attribute, len(n.Attr)),
+-	}
+-	copy(m.Attr, n.Attr)
+-	return m
+-}
+-
+-// nodeStack is a stack of nodes.
+-type nodeStack []*Node
+-
+-// pop pops the stack. It will panic if s is empty.
+-func (s *nodeStack) pop() *Node {
+-	i := len(*s)
+-	n := (*s)[i-1]
+-	*s = (*s)[:i-1]
+-	return n
+-}
+-
+-// top returns the most recently pushed node, or nil if s is empty.
+-func (s *nodeStack) top() *Node {
+-	if i := len(*s); i > 0 {
+-		return (*s)[i-1]
+-	}
+-	return nil
+-}
+-
+-// index returns the index of the top-most occurrence of n in the stack, or -1
+-// if n is not present.
+-func (s *nodeStack) index(n *Node) int {
+-	for i := len(*s) - 1; i >= 0; i-- {
+-		if (*s)[i] == n {
+-			return i
+-		}
+-	}
+-	return -1
+-}
+-
+-// insert inserts a node at the given index.
+-func (s *nodeStack) insert(i int, n *Node) {
+-	(*s) = append(*s, nil)
+-	copy((*s)[i+1:], (*s)[i:])
+-	(*s)[i] = n
+-}
+-
+-// remove removes a node from the stack. It is a no-op if n is not present.
+-func (s *nodeStack) remove(n *Node) {
+-	i := s.index(n)
+-	if i == -1 {
+-		return
+-	}
+-	copy((*s)[i:], (*s)[i+1:])
+-	j := len(*s) - 1
+-	(*s)[j] = nil
+-	*s = (*s)[:j]
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/node_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/node_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/node_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/node_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,146 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"fmt"
+-)
+-
+-// checkTreeConsistency checks that a node and its descendants are all
+-// consistent in their parent/child/sibling relationships.
+-func checkTreeConsistency(n *Node) error {
+-	return checkTreeConsistency1(n, 0)
+-}
+-
+-func checkTreeConsistency1(n *Node, depth int) error {
+-	if depth == 1e4 {
+-		return fmt.Errorf("html: tree looks like it contains a cycle")
+-	}
+-	if err := checkNodeConsistency(n); err != nil {
+-		return err
+-	}
+-	for c := n.FirstChild; c != nil; c = c.NextSibling {
+-		if err := checkTreeConsistency1(c, depth+1); err != nil {
+-			return err
+-		}
+-	}
+-	return nil
+-}
+-
+-// checkNodeConsistency checks that a node's parent/child/sibling relationships
+-// are consistent.
+-func checkNodeConsistency(n *Node) error {
+-	if n == nil {
+-		return nil
+-	}
+-
+-	nParent := 0
+-	for p := n.Parent; p != nil; p = p.Parent {
+-		nParent++
+-		if nParent == 1e4 {
+-			return fmt.Errorf("html: parent list looks like an infinite loop")
+-		}
+-	}
+-
+-	nForward := 0
+-	for c := n.FirstChild; c != nil; c = c.NextSibling {
+-		nForward++
+-		if nForward == 1e6 {
+-			return fmt.Errorf("html: forward list of children looks like an infinite loop")
+-		}
+-		if c.Parent != n {
+-			return fmt.Errorf("html: inconsistent child/parent relationship")
+-		}
+-	}
+-
+-	nBackward := 0
+-	for c := n.LastChild; c != nil; c = c.PrevSibling {
+-		nBackward++
+-		if nBackward == 1e6 {
+-			return fmt.Errorf("html: backward list of children looks like an infinite loop")
+-		}
+-		if c.Parent != n {
+-			return fmt.Errorf("html: inconsistent child/parent relationship")
+-		}
+-	}
+-
+-	if n.Parent != nil {
+-		if n.Parent == n {
+-			return fmt.Errorf("html: inconsistent parent relationship")
+-		}
+-		if n.Parent == n.FirstChild {
+-			return fmt.Errorf("html: inconsistent parent/first relationship")
+-		}
+-		if n.Parent == n.LastChild {
+-			return fmt.Errorf("html: inconsistent parent/last relationship")
+-		}
+-		if n.Parent == n.PrevSibling {
+-			return fmt.Errorf("html: inconsistent parent/prev relationship")
+-		}
+-		if n.Parent == n.NextSibling {
+-			return fmt.Errorf("html: inconsistent parent/next relationship")
+-		}
+-
+-		parentHasNAsAChild := false
+-		for c := n.Parent.FirstChild; c != nil; c = c.NextSibling {
+-			if c == n {
+-				parentHasNAsAChild = true
+-				break
+-			}
+-		}
+-		if !parentHasNAsAChild {
+-			return fmt.Errorf("html: inconsistent parent/child relationship")
+-		}
+-	}
+-
+-	if n.PrevSibling != nil && n.PrevSibling.NextSibling != n {
+-		return fmt.Errorf("html: inconsistent prev/next relationship")
+-	}
+-	if n.NextSibling != nil && n.NextSibling.PrevSibling != n {
+-		return fmt.Errorf("html: inconsistent next/prev relationship")
+-	}
+-
+-	if (n.FirstChild == nil) != (n.LastChild == nil) {
+-		return fmt.Errorf("html: inconsistent first/last relationship")
+-	}
+-	if n.FirstChild != nil && n.FirstChild == n.LastChild {
+-		// We have a sole child.
+-		if n.FirstChild.PrevSibling != nil || n.FirstChild.NextSibling != nil {
+-			return fmt.Errorf("html: inconsistent sole child's sibling relationship")
+-		}
+-	}
+-
+-	seen := map[*Node]bool{}
+-
+-	var last *Node
+-	for c := n.FirstChild; c != nil; c = c.NextSibling {
+-		if seen[c] {
+-			return fmt.Errorf("html: inconsistent repeated child")
+-		}
+-		seen[c] = true
+-		last = c
+-	}
+-	if last != n.LastChild {
+-		return fmt.Errorf("html: inconsistent last relationship")
+-	}
+-
+-	var first *Node
+-	for c := n.LastChild; c != nil; c = c.PrevSibling {
+-		if !seen[c] {
+-			return fmt.Errorf("html: inconsistent missing child")
+-		}
+-		delete(seen, c)
+-		first = c
+-	}
+-	if first != n.FirstChild {
+-		return fmt.Errorf("html: inconsistent first relationship")
+-	}
+-
+-	if len(seen) != 0 {
+-		return fmt.Errorf("html: inconsistent forwards/backwards child list")
+-	}
+-
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/parse.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/parse.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/parse.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/parse.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,2092 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"errors"
+-	"fmt"
+-	"io"
+-	"strings"
+-
+-	a "code.google.com/p/go.net/html/atom"
+-)
+-
+-// A parser implements the HTML5 parsing algorithm:
+-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tree-construction
+-type parser struct {
+-	// tokenizer provides the tokens for the parser.
+-	tokenizer *Tokenizer
+-	// tok is the most recently read token.
+-	tok Token
+-	// Self-closing tags like <hr/> are treated as start tags, except that
+-	// hasSelfClosingToken is set while they are being processed.
+-	hasSelfClosingToken bool
+-	// doc is the document root element.
+-	doc *Node
+-	// The stack of open elements (section 12.2.3.2) and active formatting
+-	// elements (section 12.2.3.3).
+-	oe, afe nodeStack
+-	// Element pointers (section 12.2.3.4).
+-	head, form *Node
+-	// Other parsing state flags (section 12.2.3.5).
+-	scripting, framesetOK bool
+-	// im is the current insertion mode.
+-	im insertionMode
+-	// originalIM is the insertion mode to go back to after completing a text
+-	// or inTableText insertion mode.
+-	originalIM insertionMode
+-	// fosterParenting is whether new elements should be inserted according to
+-	// the foster parenting rules (section 12.2.5.3).
+-	fosterParenting bool
+-	// quirks is whether the parser is operating in "quirks mode."
+-	quirks bool
+-	// fragment is whether the parser is parsing an HTML fragment.
+-	fragment bool
+-	// context is the context element when parsing an HTML fragment
+-	// (section 12.4).
+-	context *Node
+-}
+-
+-func (p *parser) top() *Node {
+-	if n := p.oe.top(); n != nil {
+-		return n
+-	}
+-	return p.doc
+-}
+-
+-// Stop tags for use in popUntil. These come from section 12.2.3.2.
+-var (
+-	defaultScopeStopTags = map[string][]a.Atom{
+-		"":     {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object},
+-		"math": {a.AnnotationXml, a.Mi, a.Mn, a.Mo, a.Ms, a.Mtext},
+-		"svg":  {a.Desc, a.ForeignObject, a.Title},
+-	}
+-)
+-
+-type scope int
+-
+-const (
+-	defaultScope scope = iota
+-	listItemScope
+-	buttonScope
+-	tableScope
+-	tableRowScope
+-	tableBodyScope
+-	selectScope
+-)
+-
+-// popUntil pops the stack of open elements at the highest element whose tag
+-// is in matchTags, provided there is no higher element in the scope's stop
+-// tags (as defined in section 12.2.3.2). It returns whether or not there was
+-// such an element. If there was not, popUntil leaves the stack unchanged.
+-//
+-// For example, the set of stop tags for table scope is: "html", "table". If
+-// the stack was:
+-// ["html", "body", "font", "table", "b", "i", "u"]
+-// then popUntil(tableScope, "font") would return false, but
+-// popUntil(tableScope, "i") would return true and the stack would become:
+-// ["html", "body", "font", "table", "b"]
+-//
+-// If an element's tag is in both the stop tags and matchTags, then the stack
+-// will be popped and the function returns true (provided, of course, there was
+-// no higher element in the stack that was also in the stop tags). For example,
+-// popUntil(tableScope, "table") returns true and leaves:
+-// ["html", "body", "font"]
+-func (p *parser) popUntil(s scope, matchTags ...a.Atom) bool {
+-	if i := p.indexOfElementInScope(s, matchTags...); i != -1 {
+-		p.oe = p.oe[:i]
+-		return true
+-	}
+-	return false
+-}
+-
+-// indexOfElementInScope returns the index in p.oe of the highest element whose
+-// tag is in matchTags that is in scope. If no matching element is in scope, it
+-// returns -1.
+-func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int {
+-	for i := len(p.oe) - 1; i >= 0; i-- {
+-		tagAtom := p.oe[i].DataAtom
+-		if p.oe[i].Namespace == "" {
+-			for _, t := range matchTags {
+-				if t == tagAtom {
+-					return i
+-				}
+-			}
+-			switch s {
+-			case defaultScope:
+-				// No-op.
+-			case listItemScope:
+-				if tagAtom == a.Ol || tagAtom == a.Ul {
+-					return -1
+-				}
+-			case buttonScope:
+-				if tagAtom == a.Button {
+-					return -1
+-				}
+-			case tableScope:
+-				if tagAtom == a.Html || tagAtom == a.Table {
+-					return -1
+-				}
+-			case selectScope:
+-				if tagAtom != a.Optgroup && tagAtom != a.Option {
+-					return -1
+-				}
+-			default:
+-				panic("unreachable")
+-			}
+-		}
+-		switch s {
+-		case defaultScope, listItemScope, buttonScope:
+-			for _, t := range defaultScopeStopTags[p.oe[i].Namespace] {
+-				if t == tagAtom {
+-					return -1
+-				}
+-			}
+-		}
+-	}
+-	return -1
+-}
+-
+-// elementInScope is like popUntil, except that it doesn't modify the stack of
+-// open elements.
+-func (p *parser) elementInScope(s scope, matchTags ...a.Atom) bool {
+-	return p.indexOfElementInScope(s, matchTags...) != -1
+-}
+-
+-// clearStackToContext pops elements off the stack of open elements until a
+-// scope-defined element is found.
+-func (p *parser) clearStackToContext(s scope) {
+-	for i := len(p.oe) - 1; i >= 0; i-- {
+-		tagAtom := p.oe[i].DataAtom
+-		switch s {
+-		case tableScope:
+-			if tagAtom == a.Html || tagAtom == a.Table {
+-				p.oe = p.oe[:i+1]
+-				return
+-			}
+-		case tableRowScope:
+-			if tagAtom == a.Html || tagAtom == a.Tr {
+-				p.oe = p.oe[:i+1]
+-				return
+-			}
+-		case tableBodyScope:
+-			if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead {
+-				p.oe = p.oe[:i+1]
+-				return
+-			}
+-		default:
+-			panic("unreachable")
+-		}
+-	}
+-}
+-
+-// generateImpliedEndTags pops nodes off the stack of open elements as long as
+-// the top node has a tag name of dd, dt, li, option, optgroup, p, rp, or rt.
+-// If exceptions are specified, nodes with that name will not be popped off.
+-func (p *parser) generateImpliedEndTags(exceptions ...string) {
+-	var i int
+-loop:
+-	for i = len(p.oe) - 1; i >= 0; i-- {
+-		n := p.oe[i]
+-		if n.Type == ElementNode {
+-			switch n.DataAtom {
+-			case a.Dd, a.Dt, a.Li, a.Option, a.Optgroup, a.P, a.Rp, a.Rt:
+-				for _, except := range exceptions {
+-					if n.Data == except {
+-						break loop
+-					}
+-				}
+-				continue
+-			}
+-		}
+-		break
+-	}
+-
+-	p.oe = p.oe[:i+1]
+-}
+-
+-// addChild adds a child node n to the top element, and pushes n onto the stack
+-// of open elements if it is an element node.
+-func (p *parser) addChild(n *Node) {
+-	if p.shouldFosterParent() {
+-		p.fosterParent(n)
+-	} else {
+-		p.top().AppendChild(n)
+-	}
+-
+-	if n.Type == ElementNode {
+-		p.oe = append(p.oe, n)
+-	}
+-}
+-
+-// shouldFosterParent returns whether the next node to be added should be
+-// foster parented.
+-func (p *parser) shouldFosterParent() bool {
+-	if p.fosterParenting {
+-		switch p.top().DataAtom {
+-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+-			return true
+-		}
+-	}
+-	return false
+-}
+-
+-// fosterParent adds a child node according to the foster parenting rules.
+-// Section 12.2.5.3, "foster parenting".
+-func (p *parser) fosterParent(n *Node) {
+-	var table, parent, prev *Node
+-	var i int
+-	for i = len(p.oe) - 1; i >= 0; i-- {
+-		if p.oe[i].DataAtom == a.Table {
+-			table = p.oe[i]
+-			break
+-		}
+-	}
+-
+-	if table == nil {
+-		// The foster parent is the html element.
+-		parent = p.oe[0]
+-	} else {
+-		parent = table.Parent
+-	}
+-	if parent == nil {
+-		parent = p.oe[i-1]
+-	}
+-
+-	if table != nil {
+-		prev = table.PrevSibling
+-	} else {
+-		prev = parent.LastChild
+-	}
+-	if prev != nil && prev.Type == TextNode && n.Type == TextNode {
+-		prev.Data += n.Data
+-		return
+-	}
+-
+-	parent.InsertBefore(n, table)
+-}
+-
+-// addText adds text to the preceding node if it is a text node, or else it
+-// calls addChild with a new text node.
+-func (p *parser) addText(text string) {
+-	if text == "" {
+-		return
+-	}
+-
+-	if p.shouldFosterParent() {
+-		p.fosterParent(&Node{
+-			Type: TextNode,
+-			Data: text,
+-		})
+-		return
+-	}
+-
+-	t := p.top()
+-	if n := t.LastChild; n != nil && n.Type == TextNode {
+-		n.Data += text
+-		return
+-	}
+-	p.addChild(&Node{
+-		Type: TextNode,
+-		Data: text,
+-	})
+-}
+-
+-// addElement adds a child element based on the current token.
+-func (p *parser) addElement() {
+-	p.addChild(&Node{
+-		Type:     ElementNode,
+-		DataAtom: p.tok.DataAtom,
+-		Data:     p.tok.Data,
+-		Attr:     p.tok.Attr,
+-	})
+-}
+-
+-// Section 12.2.3.3.
+-func (p *parser) addFormattingElement() {
+-	tagAtom, attr := p.tok.DataAtom, p.tok.Attr
+-	p.addElement()
+-
+-	// Implement the Noah's Ark clause, but with three per family instead of two.
+-	identicalElements := 0
+-findIdenticalElements:
+-	for i := len(p.afe) - 1; i >= 0; i-- {
+-		n := p.afe[i]
+-		if n.Type == scopeMarkerNode {
+-			break
+-		}
+-		if n.Type != ElementNode {
+-			continue
+-		}
+-		if n.Namespace != "" {
+-			continue
+-		}
+-		if n.DataAtom != tagAtom {
+-			continue
+-		}
+-		if len(n.Attr) != len(attr) {
+-			continue
+-		}
+-	compareAttributes:
+-		for _, t0 := range n.Attr {
+-			for _, t1 := range attr {
+-				if t0.Key == t1.Key && t0.Namespace == t1.Namespace && t0.Val == t1.Val {
+-					// Found a match for this attribute, continue with the next attribute.
+-					continue compareAttributes
+-				}
+-			}
+-			// If we get here, there is no attribute that matches a.
+-			// Therefore the element is not identical to the new one.
+-			continue findIdenticalElements
+-		}
+-
+-		identicalElements++
+-		if identicalElements >= 3 {
+-			p.afe.remove(n)
+-		}
+-	}
+-
+-	p.afe = append(p.afe, p.top())
+-}
+-
+-// Section 12.2.3.3.
+-func (p *parser) clearActiveFormattingElements() {
+-	for {
+-		n := p.afe.pop()
+-		if len(p.afe) == 0 || n.Type == scopeMarkerNode {
+-			return
+-		}
+-	}
+-}
+-
+-// Section 12.2.3.3.
+-func (p *parser) reconstructActiveFormattingElements() {
+-	n := p.afe.top()
+-	if n == nil {
+-		return
+-	}
+-	if n.Type == scopeMarkerNode || p.oe.index(n) != -1 {
+-		return
+-	}
+-	i := len(p.afe) - 1
+-	for n.Type != scopeMarkerNode && p.oe.index(n) == -1 {
+-		if i == 0 {
+-			i = -1
+-			break
+-		}
+-		i--
+-		n = p.afe[i]
+-	}
+-	for {
+-		i++
+-		clone := p.afe[i].clone()
+-		p.addChild(clone)
+-		p.afe[i] = clone
+-		if i == len(p.afe)-1 {
+-			break
+-		}
+-	}
+-}
+-
+-// Section 12.2.4.
+-func (p *parser) acknowledgeSelfClosingTag() {
+-	p.hasSelfClosingToken = false
+-}
+-
+-// An insertion mode (section 12.2.3.1) is the state transition function from
+-// a particular state in the HTML5 parser's state machine. It updates the
+-// parser's fields depending on parser.tok (where ErrorToken means EOF).
+-// It returns whether the token was consumed.
+-type insertionMode func(*parser) bool
+-
+-// setOriginalIM sets the insertion mode to return to after completing a text or
+-// inTableText insertion mode.
+-// Section 12.2.3.1, "using the rules for".
+-func (p *parser) setOriginalIM() {
+-	if p.originalIM != nil {
+-		panic("html: bad parser state: originalIM was set twice")
+-	}
+-	p.originalIM = p.im
+-}
+-
+-// Section 12.2.3.1, "reset the insertion mode".
+-func (p *parser) resetInsertionMode() {
+-	for i := len(p.oe) - 1; i >= 0; i-- {
+-		n := p.oe[i]
+-		if i == 0 && p.context != nil {
+-			n = p.context
+-		}
+-
+-		switch n.DataAtom {
+-		case a.Select:
+-			p.im = inSelectIM
+-		case a.Td, a.Th:
+-			p.im = inCellIM
+-		case a.Tr:
+-			p.im = inRowIM
+-		case a.Tbody, a.Thead, a.Tfoot:
+-			p.im = inTableBodyIM
+-		case a.Caption:
+-			p.im = inCaptionIM
+-		case a.Colgroup:
+-			p.im = inColumnGroupIM
+-		case a.Table:
+-			p.im = inTableIM
+-		case a.Head:
+-			p.im = inBodyIM
+-		case a.Body:
+-			p.im = inBodyIM
+-		case a.Frameset:
+-			p.im = inFramesetIM
+-		case a.Html:
+-			p.im = beforeHeadIM
+-		default:
+-			continue
+-		}
+-		return
+-	}
+-	p.im = inBodyIM
+-}
+-
+-const whitespace = " \t\r\n\f"
+-
+-// Section 12.2.5.4.1.
+-func initialIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case TextToken:
+-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(p.tok.Data) == 0 {
+-			// It was all whitespace, so ignore it.
+-			return true
+-		}
+-	case CommentToken:
+-		p.doc.AppendChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	case DoctypeToken:
+-		n, quirks := parseDoctype(p.tok.Data)
+-		p.doc.AppendChild(n)
+-		p.quirks = quirks
+-		p.im = beforeHTMLIM
+-		return true
+-	}
+-	p.quirks = true
+-	p.im = beforeHTMLIM
+-	return false
+-}
+-
+-// Section 12.2.5.4.2.
+-func beforeHTMLIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case DoctypeToken:
+-		// Ignore the token.
+-		return true
+-	case TextToken:
+-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(p.tok.Data) == 0 {
+-			// It was all whitespace, so ignore it.
+-			return true
+-		}
+-	case StartTagToken:
+-		if p.tok.DataAtom == a.Html {
+-			p.addElement()
+-			p.im = beforeHeadIM
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Head, a.Body, a.Html, a.Br:
+-			p.parseImpliedToken(StartTagToken, a.Html, a.Html.String())
+-			return false
+-		default:
+-			// Ignore the token.
+-			return true
+-		}
+-	case CommentToken:
+-		p.doc.AppendChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	}
+-	p.parseImpliedToken(StartTagToken, a.Html, a.Html.String())
+-	return false
+-}
+-
+-// Section 12.2.5.4.3.
+-func beforeHeadIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case TextToken:
+-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(p.tok.Data) == 0 {
+-			// It was all whitespace, so ignore it.
+-			return true
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Head:
+-			p.addElement()
+-			p.head = p.top()
+-			p.im = inHeadIM
+-			return true
+-		case a.Html:
+-			return inBodyIM(p)
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Head, a.Body, a.Html, a.Br:
+-			p.parseImpliedToken(StartTagToken, a.Head, a.Head.String())
+-			return false
+-		default:
+-			// Ignore the token.
+-			return true
+-		}
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	case DoctypeToken:
+-		// Ignore the token.
+-		return true
+-	}
+-
+-	p.parseImpliedToken(StartTagToken, a.Head, a.Head.String())
+-	return false
+-}
+-
+-// Section 12.2.5.4.4.
+-func inHeadIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case TextToken:
+-		s := strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(s) < len(p.tok.Data) {
+-			// Add the initial whitespace to the current node.
+-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
+-			if s == "" {
+-				return true
+-			}
+-			p.tok.Data = s
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			return inBodyIM(p)
+-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta:
+-			p.addElement()
+-			p.oe.pop()
+-			p.acknowledgeSelfClosingTag()
+-			return true
+-		case a.Script, a.Title, a.Noscript, a.Noframes, a.Style:
+-			p.addElement()
+-			p.setOriginalIM()
+-			p.im = textIM
+-			return true
+-		case a.Head:
+-			// Ignore the token.
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Head:
+-			n := p.oe.pop()
+-			if n.DataAtom != a.Head {
+-				panic("html: bad parser state: <head> element not found, in the in-head insertion mode")
+-			}
+-			p.im = afterHeadIM
+-			return true
+-		case a.Body, a.Html, a.Br:
+-			p.parseImpliedToken(EndTagToken, a.Head, a.Head.String())
+-			return false
+-		default:
+-			// Ignore the token.
+-			return true
+-		}
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	case DoctypeToken:
+-		// Ignore the token.
+-		return true
+-	}
+-
+-	p.parseImpliedToken(EndTagToken, a.Head, a.Head.String())
+-	return false
+-}
+-
+-// Section 12.2.5.4.6.
+-func afterHeadIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case TextToken:
+-		s := strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(s) < len(p.tok.Data) {
+-			// Add the initial whitespace to the current node.
+-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
+-			if s == "" {
+-				return true
+-			}
+-			p.tok.Data = s
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			return inBodyIM(p)
+-		case a.Body:
+-			p.addElement()
+-			p.framesetOK = false
+-			p.im = inBodyIM
+-			return true
+-		case a.Frameset:
+-			p.addElement()
+-			p.im = inFramesetIM
+-			return true
+-		case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
+-			p.oe = append(p.oe, p.head)
+-			defer p.oe.remove(p.head)
+-			return inHeadIM(p)
+-		case a.Head:
+-			// Ignore the token.
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Body, a.Html, a.Br:
+-			// Drop down to creating an implied <body> tag.
+-		default:
+-			// Ignore the token.
+-			return true
+-		}
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	case DoctypeToken:
+-		// Ignore the token.
+-		return true
+-	}
+-
+-	p.parseImpliedToken(StartTagToken, a.Body, a.Body.String())
+-	p.framesetOK = true
+-	return false
+-}
+-
+-// copyAttributes copies attributes of src not found on dst to dst.
+-func copyAttributes(dst *Node, src Token) {
+-	if len(src.Attr) == 0 {
+-		return
+-	}
+-	attr := map[string]string{}
+-	for _, t := range dst.Attr {
+-		attr[t.Key] = t.Val
+-	}
+-	for _, t := range src.Attr {
+-		if _, ok := attr[t.Key]; !ok {
+-			dst.Attr = append(dst.Attr, t)
+-			attr[t.Key] = t.Val
+-		}
+-	}
+-}
+-
+-// Section 12.2.5.4.7.
+-func inBodyIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case TextToken:
+-		d := p.tok.Data
+-		switch n := p.oe.top(); n.DataAtom {
+-		case a.Pre, a.Listing:
+-			if n.FirstChild == nil {
+-				// Ignore a newline at the start of a <pre> block.
+-				if d != "" && d[0] == '\r' {
+-					d = d[1:]
+-				}
+-				if d != "" && d[0] == '\n' {
+-					d = d[1:]
+-				}
+-			}
+-		}
+-		d = strings.Replace(d, "\x00", "", -1)
+-		if d == "" {
+-			return true
+-		}
+-		p.reconstructActiveFormattingElements()
+-		p.addText(d)
+-		if p.framesetOK && strings.TrimLeft(d, whitespace) != "" {
+-			// There were non-whitespace characters inserted.
+-			p.framesetOK = false
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			copyAttributes(p.oe[0], p.tok)
+-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
+-			return inHeadIM(p)
+-		case a.Body:
+-			if len(p.oe) >= 2 {
+-				body := p.oe[1]
+-				if body.Type == ElementNode && body.DataAtom == a.Body {
+-					p.framesetOK = false
+-					copyAttributes(body, p.tok)
+-				}
+-			}
+-		case a.Frameset:
+-			if !p.framesetOK || len(p.oe) < 2 || p.oe[1].DataAtom != a.Body {
+-				// Ignore the token.
+-				return true
+-			}
+-			body := p.oe[1]
+-			if body.Parent != nil {
+-				body.Parent.RemoveChild(body)
+-			}
+-			p.oe = p.oe[:1]
+-			p.addElement()
+-			p.im = inFramesetIM
+-			return true
+-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul:
+-			p.popUntil(buttonScope, a.P)
+-			p.addElement()
+-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
+-			p.popUntil(buttonScope, a.P)
+-			switch n := p.top(); n.DataAtom {
+-			case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
+-				p.oe.pop()
+-			}
+-			p.addElement()
+-		case a.Pre, a.Listing:
+-			p.popUntil(buttonScope, a.P)
+-			p.addElement()
+-			// The newline, if any, will be dealt with by the TextToken case.
+-			p.framesetOK = false
+-		case a.Form:
+-			if p.form == nil {
+-				p.popUntil(buttonScope, a.P)
+-				p.addElement()
+-				p.form = p.top()
+-			}
+-		case a.Li:
+-			p.framesetOK = false
+-			for i := len(p.oe) - 1; i >= 0; i-- {
+-				node := p.oe[i]
+-				switch node.DataAtom {
+-				case a.Li:
+-					p.oe = p.oe[:i]
+-				case a.Address, a.Div, a.P:
+-					continue
+-				default:
+-					if !isSpecialElement(node) {
+-						continue
+-					}
+-				}
+-				break
+-			}
+-			p.popUntil(buttonScope, a.P)
+-			p.addElement()
+-		case a.Dd, a.Dt:
+-			p.framesetOK = false
+-			for i := len(p.oe) - 1; i >= 0; i-- {
+-				node := p.oe[i]
+-				switch node.DataAtom {
+-				case a.Dd, a.Dt:
+-					p.oe = p.oe[:i]
+-				case a.Address, a.Div, a.P:
+-					continue
+-				default:
+-					if !isSpecialElement(node) {
+-						continue
+-					}
+-				}
+-				break
+-			}
+-			p.popUntil(buttonScope, a.P)
+-			p.addElement()
+-		case a.Plaintext:
+-			p.popUntil(buttonScope, a.P)
+-			p.addElement()
+-		case a.Button:
+-			p.popUntil(defaultScope, a.Button)
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-			p.framesetOK = false
+-		case a.A:
+-			for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- {
+-				if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A {
+-					p.inBodyEndTagFormatting(a.A)
+-					p.oe.remove(n)
+-					p.afe.remove(n)
+-					break
+-				}
+-			}
+-			p.reconstructActiveFormattingElements()
+-			p.addFormattingElement()
+-		case a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
+-			p.reconstructActiveFormattingElements()
+-			p.addFormattingElement()
+-		case a.Nobr:
+-			p.reconstructActiveFormattingElements()
+-			if p.elementInScope(defaultScope, a.Nobr) {
+-				p.inBodyEndTagFormatting(a.Nobr)
+-				p.reconstructActiveFormattingElements()
+-			}
+-			p.addFormattingElement()
+-		case a.Applet, a.Marquee, a.Object:
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-			p.afe = append(p.afe, &scopeMarker)
+-			p.framesetOK = false
+-		case a.Table:
+-			if !p.quirks {
+-				p.popUntil(buttonScope, a.P)
+-			}
+-			p.addElement()
+-			p.framesetOK = false
+-			p.im = inTableIM
+-			return true
+-		case a.Area, a.Br, a.Embed, a.Img, a.Input, a.Keygen, a.Wbr:
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-			p.oe.pop()
+-			p.acknowledgeSelfClosingTag()
+-			if p.tok.DataAtom == a.Input {
+-				for _, t := range p.tok.Attr {
+-					if t.Key == "type" {
+-						if strings.ToLower(t.Val) == "hidden" {
+-							// Skip setting framesetOK = false
+-							return true
+-						}
+-					}
+-				}
+-			}
+-			p.framesetOK = false
+-		case a.Param, a.Source, a.Track:
+-			p.addElement()
+-			p.oe.pop()
+-			p.acknowledgeSelfClosingTag()
+-		case a.Hr:
+-			p.popUntil(buttonScope, a.P)
+-			p.addElement()
+-			p.oe.pop()
+-			p.acknowledgeSelfClosingTag()
+-			p.framesetOK = false
+-		case a.Image:
+-			p.tok.DataAtom = a.Img
+-			p.tok.Data = a.Img.String()
+-			return false
+-		case a.Isindex:
+-			if p.form != nil {
+-				// Ignore the token.
+-				return true
+-			}
+-			action := ""
+-			prompt := "This is a searchable index. Enter search keywords: "
+-			attr := []Attribute{{Key: "name", Val: "isindex"}}
+-			for _, t := range p.tok.Attr {
+-				switch t.Key {
+-				case "action":
+-					action = t.Val
+-				case "name":
+-					// Ignore the attribute.
+-				case "prompt":
+-					prompt = t.Val
+-				default:
+-					attr = append(attr, t)
+-				}
+-			}
+-			p.acknowledgeSelfClosingTag()
+-			p.popUntil(buttonScope, a.P)
+-			p.parseImpliedToken(StartTagToken, a.Form, a.Form.String())
+-			if action != "" {
+-				p.form.Attr = []Attribute{{Key: "action", Val: action}}
+-			}
+-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
+-			p.parseImpliedToken(StartTagToken, a.Label, a.Label.String())
+-			p.addText(prompt)
+-			p.addChild(&Node{
+-				Type:     ElementNode,
+-				DataAtom: a.Input,
+-				Data:     a.Input.String(),
+-				Attr:     attr,
+-			})
+-			p.oe.pop()
+-			p.parseImpliedToken(EndTagToken, a.Label, a.Label.String())
+-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
+-			p.parseImpliedToken(EndTagToken, a.Form, a.Form.String())
+-		case a.Textarea:
+-			p.addElement()
+-			p.setOriginalIM()
+-			p.framesetOK = false
+-			p.im = textIM
+-		case a.Xmp:
+-			p.popUntil(buttonScope, a.P)
+-			p.reconstructActiveFormattingElements()
+-			p.framesetOK = false
+-			p.addElement()
+-			p.setOriginalIM()
+-			p.im = textIM
+-		case a.Iframe:
+-			p.framesetOK = false
+-			p.addElement()
+-			p.setOriginalIM()
+-			p.im = textIM
+-		case a.Noembed, a.Noscript:
+-			p.addElement()
+-			p.setOriginalIM()
+-			p.im = textIM
+-		case a.Select:
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-			p.framesetOK = false
+-			p.im = inSelectIM
+-			return true
+-		case a.Optgroup, a.Option:
+-			if p.top().DataAtom == a.Option {
+-				p.oe.pop()
+-			}
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-		case a.Rp, a.Rt:
+-			if p.elementInScope(defaultScope, a.Ruby) {
+-				p.generateImpliedEndTags()
+-			}
+-			p.addElement()
+-		case a.Math, a.Svg:
+-			p.reconstructActiveFormattingElements()
+-			if p.tok.DataAtom == a.Math {
+-				adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
+-			} else {
+-				adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
+-			}
+-			adjustForeignAttributes(p.tok.Attr)
+-			p.addElement()
+-			p.top().Namespace = p.tok.Data
+-			if p.hasSelfClosingToken {
+-				p.oe.pop()
+-				p.acknowledgeSelfClosingTag()
+-			}
+-			return true
+-		case a.Caption, a.Col, a.Colgroup, a.Frame, a.Head, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
+-			// Ignore the token.
+-		default:
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Body:
+-			if p.elementInScope(defaultScope, a.Body) {
+-				p.im = afterBodyIM
+-			}
+-		case a.Html:
+-			if p.elementInScope(defaultScope, a.Body) {
+-				p.parseImpliedToken(EndTagToken, a.Body, a.Body.String())
+-				return false
+-			}
+-			return true
+-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
+-			p.popUntil(defaultScope, p.tok.DataAtom)
+-		case a.Form:
+-			node := p.form
+-			p.form = nil
+-			i := p.indexOfElementInScope(defaultScope, a.Form)
+-			if node == nil || i == -1 || p.oe[i] != node {
+-				// Ignore the token.
+-				return true
+-			}
+-			p.generateImpliedEndTags()
+-			p.oe.remove(node)
+-		case a.P:
+-			if !p.elementInScope(buttonScope, a.P) {
+-				p.parseImpliedToken(StartTagToken, a.P, a.P.String())
+-			}
+-			p.popUntil(buttonScope, a.P)
+-		case a.Li:
+-			p.popUntil(listItemScope, a.Li)
+-		case a.Dd, a.Dt:
+-			p.popUntil(defaultScope, p.tok.DataAtom)
+-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
+-			p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6)
+-		case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
+-			p.inBodyEndTagFormatting(p.tok.DataAtom)
+-		case a.Applet, a.Marquee, a.Object:
+-			if p.popUntil(defaultScope, p.tok.DataAtom) {
+-				p.clearActiveFormattingElements()
+-			}
+-		case a.Br:
+-			p.tok.Type = StartTagToken
+-			return false
+-		default:
+-			p.inBodyEndTagOther(p.tok.DataAtom)
+-		}
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-	}
+-
+-	return true
+-}
+-
+-func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
+-	// This is the "adoption agency" algorithm, described at
+-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#adoptionAgency
+-
+-	// TODO: this is a fairly literal line-by-line translation of that algorithm.
+-	// Once the code successfully parses the comprehensive test suite, we should
+-	// refactor this code to be more idiomatic.
+-
+-	// Steps 1-3. The outer loop.
+-	for i := 0; i < 8; i++ {
+-		// Step 4. Find the formatting element.
+-		var formattingElement *Node
+-		for j := len(p.afe) - 1; j >= 0; j-- {
+-			if p.afe[j].Type == scopeMarkerNode {
+-				break
+-			}
+-			if p.afe[j].DataAtom == tagAtom {
+-				formattingElement = p.afe[j]
+-				break
+-			}
+-		}
+-		if formattingElement == nil {
+-			p.inBodyEndTagOther(tagAtom)
+-			return
+-		}
+-		feIndex := p.oe.index(formattingElement)
+-		if feIndex == -1 {
+-			p.afe.remove(formattingElement)
+-			return
+-		}
+-		if !p.elementInScope(defaultScope, tagAtom) {
+-			// Ignore the tag.
+-			return
+-		}
+-
+-		// Steps 5-6. Find the furthest block.
+-		var furthestBlock *Node
+-		for _, e := range p.oe[feIndex:] {
+-			if isSpecialElement(e) {
+-				furthestBlock = e
+-				break
+-			}
+-		}
+-		if furthestBlock == nil {
+-			e := p.oe.pop()
+-			for e != formattingElement {
+-				e = p.oe.pop()
+-			}
+-			p.afe.remove(e)
+-			return
+-		}
+-
+-		// Steps 7-8. Find the common ancestor and bookmark node.
+-		commonAncestor := p.oe[feIndex-1]
+-		bookmark := p.afe.index(formattingElement)
+-
+-		// Step 9. The inner loop. Find the lastNode to reparent.
+-		lastNode := furthestBlock
+-		node := furthestBlock
+-		x := p.oe.index(node)
+-		// Steps 9.1-9.3.
+-		for j := 0; j < 3; j++ {
+-			// Step 9.4.
+-			x--
+-			node = p.oe[x]
+-			// Step 9.5.
+-			if p.afe.index(node) == -1 {
+-				p.oe.remove(node)
+-				continue
+-			}
+-			// Step 9.6.
+-			if node == formattingElement {
+-				break
+-			}
+-			// Step 9.7.
+-			clone := node.clone()
+-			p.afe[p.afe.index(node)] = clone
+-			p.oe[p.oe.index(node)] = clone
+-			node = clone
+-			// Step 9.8.
+-			if lastNode == furthestBlock {
+-				bookmark = p.afe.index(node) + 1
+-			}
+-			// Step 9.9.
+-			if lastNode.Parent != nil {
+-				lastNode.Parent.RemoveChild(lastNode)
+-			}
+-			node.AppendChild(lastNode)
+-			// Step 9.10.
+-			lastNode = node
+-		}
+-
+-		// Step 10. Reparent lastNode to the common ancestor,
+-		// or for misnested table nodes, to the foster parent.
+-		if lastNode.Parent != nil {
+-			lastNode.Parent.RemoveChild(lastNode)
+-		}
+-		switch commonAncestor.DataAtom {
+-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+-			p.fosterParent(lastNode)
+-		default:
+-			commonAncestor.AppendChild(lastNode)
+-		}
+-
+-		// Steps 11-13. Reparent nodes from the furthest block's children
+-		// to a clone of the formatting element.
+-		clone := formattingElement.clone()
+-		reparentChildren(clone, furthestBlock)
+-		furthestBlock.AppendChild(clone)
+-
+-		// Step 14. Fix up the list of active formatting elements.
+-		if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark {
+-			// Move the bookmark with the rest of the list.
+-			bookmark--
+-		}
+-		p.afe.remove(formattingElement)
+-		p.afe.insert(bookmark, clone)
+-
+-		// Step 15. Fix up the stack of open elements.
+-		p.oe.remove(formattingElement)
+-		p.oe.insert(p.oe.index(furthestBlock)+1, clone)
+-	}
+-}
+-
+-// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
+-func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
+-	for i := len(p.oe) - 1; i >= 0; i-- {
+-		if p.oe[i].DataAtom == tagAtom {
+-			p.oe = p.oe[:i]
+-			break
+-		}
+-		if isSpecialElement(p.oe[i]) {
+-			break
+-		}
+-	}
+-}
+-
+-// Section 12.2.5.4.8.
+-func textIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case ErrorToken:
+-		p.oe.pop()
+-	case TextToken:
+-		d := p.tok.Data
+-		if n := p.oe.top(); n.DataAtom == a.Textarea && n.FirstChild == nil {
+-			// Ignore a newline at the start of a <textarea> block.
+-			if d != "" && d[0] == '\r' {
+-				d = d[1:]
+-			}
+-			if d != "" && d[0] == '\n' {
+-				d = d[1:]
+-			}
+-		}
+-		if d == "" {
+-			return true
+-		}
+-		p.addText(d)
+-		return true
+-	case EndTagToken:
+-		p.oe.pop()
+-	}
+-	p.im = p.originalIM
+-	p.originalIM = nil
+-	return p.tok.Type == EndTagToken
+-}
+-
+-// Section 12.2.5.4.9.
+-func inTableIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case ErrorToken:
+-		// Stop parsing.
+-		return true
+-	case TextToken:
+-		p.tok.Data = strings.Replace(p.tok.Data, "\x00", "", -1)
+-		switch p.oe.top().DataAtom {
+-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+-			if strings.Trim(p.tok.Data, whitespace) == "" {
+-				p.addText(p.tok.Data)
+-				return true
+-			}
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Caption:
+-			p.clearStackToContext(tableScope)
+-			p.afe = append(p.afe, &scopeMarker)
+-			p.addElement()
+-			p.im = inCaptionIM
+-			return true
+-		case a.Colgroup:
+-			p.clearStackToContext(tableScope)
+-			p.addElement()
+-			p.im = inColumnGroupIM
+-			return true
+-		case a.Col:
+-			p.parseImpliedToken(StartTagToken, a.Colgroup, a.Colgroup.String())
+-			return false
+-		case a.Tbody, a.Tfoot, a.Thead:
+-			p.clearStackToContext(tableScope)
+-			p.addElement()
+-			p.im = inTableBodyIM
+-			return true
+-		case a.Td, a.Th, a.Tr:
+-			p.parseImpliedToken(StartTagToken, a.Tbody, a.Tbody.String())
+-			return false
+-		case a.Table:
+-			if p.popUntil(tableScope, a.Table) {
+-				p.resetInsertionMode()
+-				return false
+-			}
+-			// Ignore the token.
+-			return true
+-		case a.Style, a.Script:
+-			return inHeadIM(p)
+-		case a.Input:
+-			for _, t := range p.tok.Attr {
+-				if t.Key == "type" && strings.ToLower(t.Val) == "hidden" {
+-					p.addElement()
+-					p.oe.pop()
+-					return true
+-				}
+-			}
+-			// Otherwise drop down to the default action.
+-		case a.Form:
+-			if p.form != nil {
+-				// Ignore the token.
+-				return true
+-			}
+-			p.addElement()
+-			p.form = p.oe.pop()
+-		case a.Select:
+-			p.reconstructActiveFormattingElements()
+-			switch p.top().DataAtom {
+-			case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+-				p.fosterParenting = true
+-			}
+-			p.addElement()
+-			p.fosterParenting = false
+-			p.framesetOK = false
+-			p.im = inSelectInTableIM
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Table:
+-			if p.popUntil(tableScope, a.Table) {
+-				p.resetInsertionMode()
+-				return true
+-			}
+-			// Ignore the token.
+-			return true
+-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
+-			// Ignore the token.
+-			return true
+-		}
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	case DoctypeToken:
+-		// Ignore the token.
+-		return true
+-	}
+-
+-	p.fosterParenting = true
+-	defer func() { p.fosterParenting = false }()
+-
+-	return inBodyIM(p)
+-}
+-
+-// Section 12.2.5.4.11.
+-func inCaptionIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Thead, a.Tr:
+-			if p.popUntil(tableScope, a.Caption) {
+-				p.clearActiveFormattingElements()
+-				p.im = inTableIM
+-				return false
+-			} else {
+-				// Ignore the token.
+-				return true
+-			}
+-		case a.Select:
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-			p.framesetOK = false
+-			p.im = inSelectInTableIM
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Caption:
+-			if p.popUntil(tableScope, a.Caption) {
+-				p.clearActiveFormattingElements()
+-				p.im = inTableIM
+-			}
+-			return true
+-		case a.Table:
+-			if p.popUntil(tableScope, a.Caption) {
+-				p.clearActiveFormattingElements()
+-				p.im = inTableIM
+-				return false
+-			} else {
+-				// Ignore the token.
+-				return true
+-			}
+-		case a.Body, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
+-			// Ignore the token.
+-			return true
+-		}
+-	}
+-	return inBodyIM(p)
+-}
+-
+-// Section 12.2.5.4.12.
+-func inColumnGroupIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case TextToken:
+-		s := strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(s) < len(p.tok.Data) {
+-			// Add the initial whitespace to the current node.
+-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
+-			if s == "" {
+-				return true
+-			}
+-			p.tok.Data = s
+-		}
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	case DoctypeToken:
+-		// Ignore the token.
+-		return true
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			return inBodyIM(p)
+-		case a.Col:
+-			p.addElement()
+-			p.oe.pop()
+-			p.acknowledgeSelfClosingTag()
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Colgroup:
+-			if p.oe.top().DataAtom != a.Html {
+-				p.oe.pop()
+-				p.im = inTableIM
+-			}
+-			return true
+-		case a.Col:
+-			// Ignore the token.
+-			return true
+-		}
+-	}
+-	if p.oe.top().DataAtom != a.Html {
+-		p.oe.pop()
+-		p.im = inTableIM
+-		return false
+-	}
+-	return true
+-}
+-
+-// Section 12.2.5.4.13.
+-func inTableBodyIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Tr:
+-			p.clearStackToContext(tableBodyScope)
+-			p.addElement()
+-			p.im = inRowIM
+-			return true
+-		case a.Td, a.Th:
+-			p.parseImpliedToken(StartTagToken, a.Tr, a.Tr.String())
+-			return false
+-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead:
+-			if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
+-				p.im = inTableIM
+-				return false
+-			}
+-			// Ignore the token.
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Tbody, a.Tfoot, a.Thead:
+-			if p.elementInScope(tableScope, p.tok.DataAtom) {
+-				p.clearStackToContext(tableBodyScope)
+-				p.oe.pop()
+-				p.im = inTableIM
+-			}
+-			return true
+-		case a.Table:
+-			if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
+-				p.im = inTableIM
+-				return false
+-			}
+-			// Ignore the token.
+-			return true
+-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th, a.Tr:
+-			// Ignore the token.
+-			return true
+-		}
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	}
+-
+-	return inTableIM(p)
+-}
+-
+-// Section 12.2.5.4.14.
+-func inRowIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Td, a.Th:
+-			p.clearStackToContext(tableRowScope)
+-			p.addElement()
+-			p.afe = append(p.afe, &scopeMarker)
+-			p.im = inCellIM
+-			return true
+-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+-			if p.popUntil(tableScope, a.Tr) {
+-				p.im = inTableBodyIM
+-				return false
+-			}
+-			// Ignore the token.
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Tr:
+-			if p.popUntil(tableScope, a.Tr) {
+-				p.im = inTableBodyIM
+-				return true
+-			}
+-			// Ignore the token.
+-			return true
+-		case a.Table:
+-			if p.popUntil(tableScope, a.Tr) {
+-				p.im = inTableBodyIM
+-				return false
+-			}
+-			// Ignore the token.
+-			return true
+-		case a.Tbody, a.Tfoot, a.Thead:
+-			if p.elementInScope(tableScope, p.tok.DataAtom) {
+-				p.parseImpliedToken(EndTagToken, a.Tr, a.Tr.String())
+-				return false
+-			}
+-			// Ignore the token.
+-			return true
+-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th:
+-			// Ignore the token.
+-			return true
+-		}
+-	}
+-
+-	return inTableIM(p)
+-}
+-
+-// Section 12.2.5.4.15.
+-func inCellIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
+-			if p.popUntil(tableScope, a.Td, a.Th) {
+-				// Close the cell and reprocess.
+-				p.clearActiveFormattingElements()
+-				p.im = inRowIM
+-				return false
+-			}
+-			// Ignore the token.
+-			return true
+-		case a.Select:
+-			p.reconstructActiveFormattingElements()
+-			p.addElement()
+-			p.framesetOK = false
+-			p.im = inSelectInTableIM
+-			return true
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Td, a.Th:
+-			if !p.popUntil(tableScope, p.tok.DataAtom) {
+-				// Ignore the token.
+-				return true
+-			}
+-			p.clearActiveFormattingElements()
+-			p.im = inRowIM
+-			return true
+-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html:
+-			// Ignore the token.
+-			return true
+-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+-			if !p.elementInScope(tableScope, p.tok.DataAtom) {
+-				// Ignore the token.
+-				return true
+-			}
+-			// Close the cell and reprocess.
+-			p.popUntil(tableScope, a.Td, a.Th)
+-			p.clearActiveFormattingElements()
+-			p.im = inRowIM
+-			return false
+-		}
+-	}
+-	return inBodyIM(p)
+-}
+-
+-// Section 12.2.5.4.16.
+-func inSelectIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case ErrorToken:
+-		// Stop parsing.
+-		return true
+-	case TextToken:
+-		p.addText(strings.Replace(p.tok.Data, "\x00", "", -1))
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			return inBodyIM(p)
+-		case a.Option:
+-			if p.top().DataAtom == a.Option {
+-				p.oe.pop()
+-			}
+-			p.addElement()
+-		case a.Optgroup:
+-			if p.top().DataAtom == a.Option {
+-				p.oe.pop()
+-			}
+-			if p.top().DataAtom == a.Optgroup {
+-				p.oe.pop()
+-			}
+-			p.addElement()
+-		case a.Select:
+-			p.tok.Type = EndTagToken
+-			return false
+-		case a.Input, a.Keygen, a.Textarea:
+-			if p.elementInScope(selectScope, a.Select) {
+-				p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
+-				return false
+-			}
+-			// In order to properly ignore <textarea>, we need to change the tokenizer mode.
+-			p.tokenizer.NextIsNotRawText()
+-			// Ignore the token.
+-			return true
+-		case a.Script:
+-			return inHeadIM(p)
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Option:
+-			if p.top().DataAtom == a.Option {
+-				p.oe.pop()
+-			}
+-		case a.Optgroup:
+-			i := len(p.oe) - 1
+-			if p.oe[i].DataAtom == a.Option {
+-				i--
+-			}
+-			if p.oe[i].DataAtom == a.Optgroup {
+-				p.oe = p.oe[:i]
+-			}
+-		case a.Select:
+-			if p.popUntil(selectScope, a.Select) {
+-				p.resetInsertionMode()
+-			}
+-		}
+-	case CommentToken:
+-		p.doc.AppendChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-	case DoctypeToken:
+-		// Ignore the token.
+-		return true
+-	}
+-
+-	return true
+-}
+-
+-// Section 12.2.5.4.17.
+-func inSelectInTableIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case StartTagToken, EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th:
+-			if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.DataAtom) {
+-				p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
+-				return false
+-			} else {
+-				// Ignore the token.
+-				return true
+-			}
+-		}
+-	}
+-	return inSelectIM(p)
+-}
+-
+-// Section 12.2.5.4.18.
+-func afterBodyIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case ErrorToken:
+-		// Stop parsing.
+-		return true
+-	case TextToken:
+-		s := strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(s) == 0 {
+-			// It was all whitespace.
+-			return inBodyIM(p)
+-		}
+-	case StartTagToken:
+-		if p.tok.DataAtom == a.Html {
+-			return inBodyIM(p)
+-		}
+-	case EndTagToken:
+-		if p.tok.DataAtom == a.Html {
+-			if !p.fragment {
+-				p.im = afterAfterBodyIM
+-			}
+-			return true
+-		}
+-	case CommentToken:
+-		// The comment is attached to the <html> element.
+-		if len(p.oe) < 1 || p.oe[0].DataAtom != a.Html {
+-			panic("html: bad parser state: <html> element not found, in the after-body insertion mode")
+-		}
+-		p.oe[0].AppendChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	}
+-	p.im = inBodyIM
+-	return false
+-}
+-
+-// Section 12.2.5.4.19.
+-func inFramesetIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-	case TextToken:
+-		// Ignore all text but whitespace.
+-		s := strings.Map(func(c rune) rune {
+-			switch c {
+-			case ' ', '\t', '\n', '\f', '\r':
+-				return c
+-			}
+-			return -1
+-		}, p.tok.Data)
+-		if s != "" {
+-			p.addText(s)
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			return inBodyIM(p)
+-		case a.Frameset:
+-			p.addElement()
+-		case a.Frame:
+-			p.addElement()
+-			p.oe.pop()
+-			p.acknowledgeSelfClosingTag()
+-		case a.Noframes:
+-			return inHeadIM(p)
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Frameset:
+-			if p.oe.top().DataAtom != a.Html {
+-				p.oe.pop()
+-				if p.oe.top().DataAtom != a.Frameset {
+-					p.im = afterFramesetIM
+-					return true
+-				}
+-			}
+-		}
+-	default:
+-		// Ignore the token.
+-	}
+-	return true
+-}
+-
+-// Section 12.2.5.4.20.
+-func afterFramesetIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-	case TextToken:
+-		// Ignore all text but whitespace.
+-		s := strings.Map(func(c rune) rune {
+-			switch c {
+-			case ' ', '\t', '\n', '\f', '\r':
+-				return c
+-			}
+-			return -1
+-		}, p.tok.Data)
+-		if s != "" {
+-			p.addText(s)
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			return inBodyIM(p)
+-		case a.Noframes:
+-			return inHeadIM(p)
+-		}
+-	case EndTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			p.im = afterAfterFramesetIM
+-			return true
+-		}
+-	default:
+-		// Ignore the token.
+-	}
+-	return true
+-}
+-
+-// Section 12.2.5.4.21.
+-func afterAfterBodyIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case ErrorToken:
+-		// Stop parsing.
+-		return true
+-	case TextToken:
+-		s := strings.TrimLeft(p.tok.Data, whitespace)
+-		if len(s) == 0 {
+-			// It was all whitespace.
+-			return inBodyIM(p)
+-		}
+-	case StartTagToken:
+-		if p.tok.DataAtom == a.Html {
+-			return inBodyIM(p)
+-		}
+-	case CommentToken:
+-		p.doc.AppendChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-		return true
+-	case DoctypeToken:
+-		return inBodyIM(p)
+-	}
+-	p.im = inBodyIM
+-	return false
+-}
+-
+-// Section 12.2.5.4.22.
+-func afterAfterFramesetIM(p *parser) bool {
+-	switch p.tok.Type {
+-	case CommentToken:
+-		p.doc.AppendChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-	case TextToken:
+-		// Ignore all text but whitespace.
+-		s := strings.Map(func(c rune) rune {
+-			switch c {
+-			case ' ', '\t', '\n', '\f', '\r':
+-				return c
+-			}
+-			return -1
+-		}, p.tok.Data)
+-		if s != "" {
+-			p.tok.Data = s
+-			return inBodyIM(p)
+-		}
+-	case StartTagToken:
+-		switch p.tok.DataAtom {
+-		case a.Html:
+-			return inBodyIM(p)
+-		case a.Noframes:
+-			return inHeadIM(p)
+-		}
+-	case DoctypeToken:
+-		return inBodyIM(p)
+-	default:
+-		// Ignore the token.
+-	}
+-	return true
+-}
+-
+-const whitespaceOrNUL = whitespace + "\x00"
+-
+-// Section 12.2.5.5.
+-func parseForeignContent(p *parser) bool {
+-	switch p.tok.Type {
+-	case TextToken:
+-		if p.framesetOK {
+-			p.framesetOK = strings.TrimLeft(p.tok.Data, whitespaceOrNUL) == ""
+-		}
+-		p.tok.Data = strings.Replace(p.tok.Data, "\x00", "\ufffd", -1)
+-		p.addText(p.tok.Data)
+-	case CommentToken:
+-		p.addChild(&Node{
+-			Type: CommentNode,
+-			Data: p.tok.Data,
+-		})
+-	case StartTagToken:
+-		b := breakout[p.tok.Data]
+-		if p.tok.DataAtom == a.Font {
+-		loop:
+-			for _, attr := range p.tok.Attr {
+-				switch attr.Key {
+-				case "color", "face", "size":
+-					b = true
+-					break loop
+-				}
+-			}
+-		}
+-		if b {
+-			for i := len(p.oe) - 1; i >= 0; i-- {
+-				n := p.oe[i]
+-				if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) {
+-					p.oe = p.oe[:i+1]
+-					break
+-				}
+-			}
+-			return false
+-		}
+-		switch p.top().Namespace {
+-		case "math":
+-			adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
+-		case "svg":
+-			// Adjust SVG tag names. The tokenizer lower-cases tag names, but
+-			// SVG wants e.g. "foreignObject" with a capital second "O".
+-			if x := svgTagNameAdjustments[p.tok.Data]; x != "" {
+-				p.tok.DataAtom = a.Lookup([]byte(x))
+-				p.tok.Data = x
+-			}
+-			adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
+-		default:
+-			panic("html: bad parser state: unexpected namespace")
+-		}
+-		adjustForeignAttributes(p.tok.Attr)
+-		namespace := p.top().Namespace
+-		p.addElement()
+-		p.top().Namespace = namespace
+-		if namespace != "" {
+-			// Don't let the tokenizer go into raw text mode in foreign content
+-			// (e.g. in an SVG <title> tag).
+-			p.tokenizer.NextIsNotRawText()
+-		}
+-		if p.hasSelfClosingToken {
+-			p.oe.pop()
+-			p.acknowledgeSelfClosingTag()
+-		}
+-	case EndTagToken:
+-		for i := len(p.oe) - 1; i >= 0; i-- {
+-			if p.oe[i].Namespace == "" {
+-				return p.im(p)
+-			}
+-			if strings.EqualFold(p.oe[i].Data, p.tok.Data) {
+-				p.oe = p.oe[:i]
+-				break
+-			}
+-		}
+-		return true
+-	default:
+-		// Ignore the token.
+-	}
+-	return true
+-}
+-
+-// Section 12.2.5.
+-func (p *parser) inForeignContent() bool {
+-	if len(p.oe) == 0 {
+-		return false
+-	}
+-	n := p.oe[len(p.oe)-1]
+-	if n.Namespace == "" {
+-		return false
+-	}
+-	if mathMLTextIntegrationPoint(n) {
+-		if p.tok.Type == StartTagToken && p.tok.DataAtom != a.Mglyph && p.tok.DataAtom != a.Malignmark {
+-			return false
+-		}
+-		if p.tok.Type == TextToken {
+-			return false
+-		}
+-	}
+-	if n.Namespace == "math" && n.DataAtom == a.AnnotationXml && p.tok.Type == StartTagToken && p.tok.DataAtom == a.Svg {
+-		return false
+-	}
+-	if htmlIntegrationPoint(n) && (p.tok.Type == StartTagToken || p.tok.Type == TextToken) {
+-		return false
+-	}
+-	if p.tok.Type == ErrorToken {
+-		return false
+-	}
+-	return true
+-}
+-
+-// parseImpliedToken parses a token as though it had appeared in the parser's
+-// input.
+-func (p *parser) parseImpliedToken(t TokenType, dataAtom a.Atom, data string) {
+-	realToken, selfClosing := p.tok, p.hasSelfClosingToken
+-	p.tok = Token{
+-		Type:     t,
+-		DataAtom: dataAtom,
+-		Data:     data,
+-	}
+-	p.hasSelfClosingToken = false
+-	p.parseCurrentToken()
+-	p.tok, p.hasSelfClosingToken = realToken, selfClosing
+-}
+-
+-// parseCurrentToken runs the current token through the parsing routines
+-// until it is consumed.
+-func (p *parser) parseCurrentToken() {
+-	if p.tok.Type == SelfClosingTagToken {
+-		p.hasSelfClosingToken = true
+-		p.tok.Type = StartTagToken
+-	}
+-
+-	consumed := false
+-	for !consumed {
+-		if p.inForeignContent() {
+-			consumed = parseForeignContent(p)
+-		} else {
+-			consumed = p.im(p)
+-		}
+-	}
+-
+-	if p.hasSelfClosingToken {
+-		// This is a parse error, but ignore it.
+-		p.hasSelfClosingToken = false
+-	}
+-}
+-
+-func (p *parser) parse() error {
+-	// Iterate until EOF. Any other error will cause an early return.
+-	var err error
+-	for err != io.EOF {
+-		// CDATA sections are allowed only in foreign content.
+-		n := p.oe.top()
+-		p.tokenizer.AllowCDATA(n != nil && n.Namespace != "")
+-		// Read and parse the next token.
+-		p.tokenizer.Next()
+-		p.tok = p.tokenizer.Token()
+-		if p.tok.Type == ErrorToken {
+-			err = p.tokenizer.Err()
+-			if err != nil && err != io.EOF {
+-				return err
+-			}
+-		}
+-		p.parseCurrentToken()
+-	}
+-	return nil
+-}
+-
+-// Parse returns the parse tree for the HTML from the given Reader.
+-// The input is assumed to be UTF-8 encoded.
+-func Parse(r io.Reader) (*Node, error) {
+-	p := &parser{
+-		tokenizer: NewTokenizer(r),
+-		doc: &Node{
+-			Type: DocumentNode,
+-		},
+-		scripting:  true,
+-		framesetOK: true,
+-		im:         initialIM,
+-	}
+-	err := p.parse()
+-	if err != nil {
+-		return nil, err
+-	}
+-	return p.doc, nil
+-}
+-
+-// ParseFragment parses a fragment of HTML and returns the nodes that were
+-// found. If the fragment is the InnerHTML for an existing element, pass that
+-// element in context.
+-func ParseFragment(r io.Reader, context *Node) ([]*Node, error) {
+-	contextTag := ""
+-	if context != nil {
+-		if context.Type != ElementNode {
+-			return nil, errors.New("html: ParseFragment of non-element Node")
+-		}
+-		// The next check isn't just context.DataAtom.String() == context.Data because
+-		// it is valid to pass an element whose tag isn't a known atom. For example,
+-		// DataAtom == 0 and Data = "tagfromthefuture" is perfectly consistent.
+-		if context.DataAtom != a.Lookup([]byte(context.Data)) {
+-			return nil, fmt.Errorf("html: inconsistent Node: DataAtom=%q, Data=%q", context.DataAtom, context.Data)
+-		}
+-		contextTag = context.DataAtom.String()
+-	}
+-	p := &parser{
+-		tokenizer: NewTokenizerFragment(r, contextTag),
+-		doc: &Node{
+-			Type: DocumentNode,
+-		},
+-		scripting: true,
+-		fragment:  true,
+-		context:   context,
+-	}
+-
+-	root := &Node{
+-		Type:     ElementNode,
+-		DataAtom: a.Html,
+-		Data:     a.Html.String(),
+-	}
+-	p.doc.AppendChild(root)
+-	p.oe = nodeStack{root}
+-	p.resetInsertionMode()
+-
+-	for n := context; n != nil; n = n.Parent {
+-		if n.Type == ElementNode && n.DataAtom == a.Form {
+-			p.form = n
+-			break
+-		}
+-	}
+-
+-	err := p.parse()
+-	if err != nil {
+-		return nil, err
+-	}
+-
+-	parent := p.doc
+-	if context != nil {
+-		parent = root
+-	}
+-
+-	var result []*Node
+-	for c := parent.FirstChild; c != nil; {
+-		next := c.NextSibling
+-		parent.RemoveChild(c)
+-		result = append(result, c)
+-		c = next
+-	}
+-	return result, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/parse_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/parse_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/parse_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/parse_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,388 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"bufio"
+-	"bytes"
+-	"errors"
+-	"fmt"
+-	"io"
+-	"io/ioutil"
+-	"os"
+-	"path/filepath"
+-	"runtime"
+-	"sort"
+-	"strings"
+-	"testing"
+-
+-	"code.google.com/p/go.net/html/atom"
+-)
+-
+-// readParseTest reads a single test case from r.
+-func readParseTest(r *bufio.Reader) (text, want, context string, err error) {
+-	line, err := r.ReadSlice('\n')
+-	if err != nil {
+-		return "", "", "", err
+-	}
+-	var b []byte
+-
+-	// Read the HTML.
+-	if string(line) != "#data\n" {
+-		return "", "", "", fmt.Errorf(`got %q want "#data\n"`, line)
+-	}
+-	for {
+-		line, err = r.ReadSlice('\n')
+-		if err != nil {
+-			return "", "", "", err
+-		}
+-		if line[0] == '#' {
+-			break
+-		}
+-		b = append(b, line...)
+-	}
+-	text = strings.TrimSuffix(string(b), "\n")
+-	b = b[:0]
+-
+-	// Skip the error list.
+-	if string(line) != "#errors\n" {
+-		return "", "", "", fmt.Errorf(`got %q want "#errors\n"`, line)
+-	}
+-	for {
+-		line, err = r.ReadSlice('\n')
+-		if err != nil {
+-			return "", "", "", err
+-		}
+-		if line[0] == '#' {
+-			break
+-		}
+-	}
+-
+-	if string(line) == "#document-fragment\n" {
+-		line, err = r.ReadSlice('\n')
+-		if err != nil {
+-			return "", "", "", err
+-		}
+-		context = strings.TrimSpace(string(line))
+-		line, err = r.ReadSlice('\n')
+-		if err != nil {
+-			return "", "", "", err
+-		}
+-	}
+-
+-	// Read the dump of what the parse tree should be.
+-	if string(line) != "#document\n" {
+-		return "", "", "", fmt.Errorf(`got %q want "#document\n"`, line)
+-	}
+-	inQuote := false
+-	for {
+-		line, err = r.ReadSlice('\n')
+-		if err != nil && err != io.EOF {
+-			return "", "", "", err
+-		}
+-		trimmed := bytes.Trim(line, "| \n")
+-		if len(trimmed) > 0 {
+-			if line[0] == '|' && trimmed[0] == '"' {
+-				inQuote = true
+-			}
+-			if trimmed[len(trimmed)-1] == '"' && !(line[0] == '|' && len(trimmed) == 1) {
+-				inQuote = false
+-			}
+-		}
+-		if len(line) == 0 || len(line) == 1 && line[0] == '\n' && !inQuote {
+-			break
+-		}
+-		b = append(b, line...)
+-	}
+-	return text, string(b), context, nil
+-}
+-
+-func dumpIndent(w io.Writer, level int) {
+-	io.WriteString(w, "| ")
+-	for i := 0; i < level; i++ {
+-		io.WriteString(w, "  ")
+-	}
+-}
+-
+-type sortedAttributes []Attribute
+-
+-func (a sortedAttributes) Len() int {
+-	return len(a)
+-}
+-
+-func (a sortedAttributes) Less(i, j int) bool {
+-	if a[i].Namespace != a[j].Namespace {
+-		return a[i].Namespace < a[j].Namespace
+-	}
+-	return a[i].Key < a[j].Key
+-}
+-
+-func (a sortedAttributes) Swap(i, j int) {
+-	a[i], a[j] = a[j], a[i]
+-}
+-
+-func dumpLevel(w io.Writer, n *Node, level int) error {
+-	dumpIndent(w, level)
+-	switch n.Type {
+-	case ErrorNode:
+-		return errors.New("unexpected ErrorNode")
+-	case DocumentNode:
+-		return errors.New("unexpected DocumentNode")
+-	case ElementNode:
+-		if n.Namespace != "" {
+-			fmt.Fprintf(w, "<%s %s>", n.Namespace, n.Data)
+-		} else {
+-			fmt.Fprintf(w, "<%s>", n.Data)
+-		}
+-		attr := sortedAttributes(n.Attr)
+-		sort.Sort(attr)
+-		for _, a := range attr {
+-			io.WriteString(w, "\n")
+-			dumpIndent(w, level+1)
+-			if a.Namespace != "" {
+-				fmt.Fprintf(w, `%s %s="%s"`, a.Namespace, a.Key, a.Val)
+-			} else {
+-				fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val)
+-			}
+-		}
+-	case TextNode:
+-		fmt.Fprintf(w, `"%s"`, n.Data)
+-	case CommentNode:
+-		fmt.Fprintf(w, "<!-- %s -->", n.Data)
+-	case DoctypeNode:
+-		fmt.Fprintf(w, "<!DOCTYPE %s", n.Data)
+-		if n.Attr != nil {
+-			var p, s string
+-			for _, a := range n.Attr {
+-				switch a.Key {
+-				case "public":
+-					p = a.Val
+-				case "system":
+-					s = a.Val
+-				}
+-			}
+-			if p != "" || s != "" {
+-				fmt.Fprintf(w, ` "%s"`, p)
+-				fmt.Fprintf(w, ` "%s"`, s)
+-			}
+-		}
+-		io.WriteString(w, ">")
+-	case scopeMarkerNode:
+-		return errors.New("unexpected scopeMarkerNode")
+-	default:
+-		return errors.New("unknown node type")
+-	}
+-	io.WriteString(w, "\n")
+-	for c := n.FirstChild; c != nil; c = c.NextSibling {
+-		if err := dumpLevel(w, c, level+1); err != nil {
+-			return err
+-		}
+-	}
+-	return nil
+-}
+-
+-func dump(n *Node) (string, error) {
+-	if n == nil || n.FirstChild == nil {
+-		return "", nil
+-	}
+-	var b bytes.Buffer
+-	for c := n.FirstChild; c != nil; c = c.NextSibling {
+-		if err := dumpLevel(&b, c, 0); err != nil {
+-			return "", err
+-		}
+-	}
+-	return b.String(), nil
+-}
+-
+-const testDataDir = "testdata/webkit/"
+-
+-func TestParser(t *testing.T) {
+-	testFiles, err := filepath.Glob(testDataDir + "*.dat")
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	for _, tf := range testFiles {
+-		f, err := os.Open(tf)
+-		if err != nil {
+-			t.Fatal(err)
+-		}
+-		defer f.Close()
+-		r := bufio.NewReader(f)
+-
+-		for i := 0; ; i++ {
+-			text, want, context, err := readParseTest(r)
+-			if err == io.EOF {
+-				break
+-			}
+-			if err != nil {
+-				t.Fatal(err)
+-			}
+-
+-			err = testParseCase(text, want, context)
+-
+-			if err != nil {
+-				t.Errorf("%s test #%d %q, %s", tf, i, text, err)
+-			}
+-		}
+-	}
+-}
+-
+-// testParseCase tests one test case from the test files. If the test does not
+-// pass, it returns an error that explains the failure.
+-// text is the HTML to be parsed, want is a dump of the correct parse tree,
+-// and context is the name of the context node, if any.
+-func testParseCase(text, want, context string) (err error) {
+-	defer func() {
+-		if x := recover(); x != nil {
+-			switch e := x.(type) {
+-			case error:
+-				err = e
+-			default:
+-				err = fmt.Errorf("%v", e)
+-			}
+-		}
+-	}()
+-
+-	var doc *Node
+-	if context == "" {
+-		doc, err = Parse(strings.NewReader(text))
+-		if err != nil {
+-			return err
+-		}
+-	} else {
+-		contextNode := &Node{
+-			Type:     ElementNode,
+-			DataAtom: atom.Lookup([]byte(context)),
+-			Data:     context,
+-		}
+-		nodes, err := ParseFragment(strings.NewReader(text), contextNode)
+-		if err != nil {
+-			return err
+-		}
+-		doc = &Node{
+-			Type: DocumentNode,
+-		}
+-		for _, n := range nodes {
+-			doc.AppendChild(n)
+-		}
+-	}
+-
+-	if err := checkTreeConsistency(doc); err != nil {
+-		return err
+-	}
+-
+-	got, err := dump(doc)
+-	if err != nil {
+-		return err
+-	}
+-	// Compare the parsed tree to the #document section.
+-	if got != want {
+-		return fmt.Errorf("got vs want:\n----\n%s----\n%s----", got, want)
+-	}
+-
+-	if renderTestBlacklist[text] || context != "" {
+-		return nil
+-	}
+-
+-	// Check that rendering and re-parsing results in an identical tree.
+-	pr, pw := io.Pipe()
+-	go func() {
+-		pw.CloseWithError(Render(pw, doc))
+-	}()
+-	doc1, err := Parse(pr)
+-	if err != nil {
+-		return err
+-	}
+-	got1, err := dump(doc1)
+-	if err != nil {
+-		return err
+-	}
+-	if got != got1 {
+-		return fmt.Errorf("got vs got1:\n----\n%s----\n%s----", got, got1)
+-	}
+-
+-	return nil
+-}
+-
+-// Some test input result in parse trees are not 'well-formed' despite
+-// following the HTML5 recovery algorithms. Rendering and re-parsing such a
+-// tree will not result in an exact clone of that tree. We blacklist such
+-// inputs from the render test.
+-var renderTestBlacklist = map[string]bool{
+-	// The second <a> will be reparented to the first <table>'s parent. This
+-	// results in an <a> whose parent is an <a>, which is not 'well-formed'.
+-	`<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y`: true,
+-	// The same thing with a <p>:
+-	`<p><table></p>`: true,
+-	// More cases of <a> being reparented:
+-	`<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe`: true,
+-	`<a><table><a></table><p><a><div><a>`:                                     true,
+-	`<a><table><td><a><table></table><a></tr><a></table><a>`:                  true,
+-	// A similar reparenting situation involving <nobr>:
+-	`<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3`: true,
+-	// A <plaintext> element is reparented, putting it before a table.
+-	// A <plaintext> element can't have anything after it in HTML.
+-	`<table><plaintext><td>`:                                   true,
+-	`<!doctype html><table><plaintext></plaintext>`:            true,
+-	`<!doctype html><table><tbody><plaintext></plaintext>`:     true,
+-	`<!doctype html><table><tbody><tr><plaintext></plaintext>`: true,
+-	// A form inside a table inside a form doesn't work either.
+-	`<!doctype html><form><table></form><form></table></form>`: true,
+-	// A script that ends at EOF may escape its own closing tag when rendered.
+-	`<!doctype html><script><!--<script `:          true,
+-	`<!doctype html><script><!--<script <`:         true,
+-	`<!doctype html><script><!--<script <a`:        true,
+-	`<!doctype html><script><!--<script </`:        true,
+-	`<!doctype html><script><!--<script </s`:       true,
+-	`<!doctype html><script><!--<script </script`:  true,
+-	`<!doctype html><script><!--<script </scripta`: true,
+-	`<!doctype html><script><!--<script -`:         true,
+-	`<!doctype html><script><!--<script -a`:        true,
+-	`<!doctype html><script><!--<script -<`:        true,
+-	`<!doctype html><script><!--<script --`:        true,
+-	`<!doctype html><script><!--<script --a`:       true,
+-	`<!doctype html><script><!--<script --<`:       true,
+-	`<script><!--<script `:                         true,
+-	`<script><!--<script <a`:                       true,
+-	`<script><!--<script </script`:                 true,
+-	`<script><!--<script </scripta`:                true,
+-	`<script><!--<script -`:                        true,
+-	`<script><!--<script -a`:                       true,
+-	`<script><!--<script --`:                       true,
+-	`<script><!--<script --a`:                      true,
+-	`<script><!--<script <`:                        true,
+-	`<script><!--<script </`:                       true,
+-	`<script><!--<script </s`:                      true,
+-	// Reconstructing the active formatting elements results in a <plaintext>
+-	// element that contains an <a> element.
+-	`<!doctype html><p><a><plaintext>b`: true,
+-}
+-
+-func TestNodeConsistency(t *testing.T) {
+-	// inconsistentNode is a Node whose DataAtom and Data do not agree.
+-	inconsistentNode := &Node{
+-		Type:     ElementNode,
+-		DataAtom: atom.Frameset,
+-		Data:     "table",
+-	}
+-	_, err := ParseFragment(strings.NewReader("<p>hello</p>"), inconsistentNode)
+-	if err == nil {
+-		t.Errorf("got nil error, want non-nil")
+-	}
+-}
+-
+-func BenchmarkParser(b *testing.B) {
+-	buf, err := ioutil.ReadFile("testdata/go1.html")
+-	if err != nil {
+-		b.Fatalf("could not read testdata/go1.html: %v", err)
+-	}
+-	b.SetBytes(int64(len(buf)))
+-	runtime.GC()
+-	b.ReportAllocs()
+-	b.ResetTimer()
+-	for i := 0; i < b.N; i++ {
+-		Parse(bytes.NewBuffer(buf))
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/render.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/render.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/render.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/render.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,271 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"bufio"
+-	"errors"
+-	"fmt"
+-	"io"
+-	"strings"
+-)
+-
+-type writer interface {
+-	io.Writer
+-	WriteByte(c byte) error // in Go 1.1, use io.ByteWriter
+-	WriteString(string) (int, error)
+-}
+-
+-// Render renders the parse tree n to the given writer.
+-//
+-// Rendering is done on a 'best effort' basis: calling Parse on the output of
+-// Render will always result in something similar to the original tree, but it
+-// is not necessarily an exact clone unless the original tree was 'well-formed'.
+-// 'Well-formed' is not easily specified; the HTML5 specification is
+-// complicated.
+-//
+-// Calling Parse on arbitrary input typically results in a 'well-formed' parse
+-// tree. However, it is possible for Parse to yield a 'badly-formed' parse tree.
+-// For example, in a 'well-formed' parse tree, no <a> element is a child of
+-// another <a> element: parsing "<a><a>" results in two sibling elements.
+-// Similarly, in a 'well-formed' parse tree, no <a> element is a child of a
+-// <table> element: parsing "<p><table><a>" results in a <p> with two sibling
+-// children; the <a> is reparented to the <table>'s parent. However, calling
+-// Parse on "<a><table><a>" does not return an error, but the result has an <a>
+-// element with an <a> child, and is therefore not 'well-formed'.
+-//
+-// Programmatically constructed trees are typically also 'well-formed', but it
+-// is possible to construct a tree that looks innocuous but, when rendered and
+-// re-parsed, results in a different tree. A simple example is that a solitary
+-// text node would become a tree containing <html>, <head> and <body> elements.
+-// Another example is that the programmatic equivalent of "a<head>b</head>c"
+-// becomes "<html><head><head/><body>abc</body></html>".
+-func Render(w io.Writer, n *Node) error {
+-	if x, ok := w.(writer); ok {
+-		return render(x, n)
+-	}
+-	buf := bufio.NewWriter(w)
+-	if err := render(buf, n); err != nil {
+-		return err
+-	}
+-	return buf.Flush()
+-}
+-
+-// plaintextAbort is returned from render1 when a <plaintext> element
+-// has been rendered. No more end tags should be rendered after that.
+-var plaintextAbort = errors.New("html: internal error (plaintext abort)")
+-
+-func render(w writer, n *Node) error {
+-	err := render1(w, n)
+-	if err == plaintextAbort {
+-		err = nil
+-	}
+-	return err
+-}
+-
+-func render1(w writer, n *Node) error {
+-	// Render non-element nodes; these are the easy cases.
+-	switch n.Type {
+-	case ErrorNode:
+-		return errors.New("html: cannot render an ErrorNode node")
+-	case TextNode:
+-		return escape(w, n.Data)
+-	case DocumentNode:
+-		for c := n.FirstChild; c != nil; c = c.NextSibling {
+-			if err := render1(w, c); err != nil {
+-				return err
+-			}
+-		}
+-		return nil
+-	case ElementNode:
+-		// No-op.
+-	case CommentNode:
+-		if _, err := w.WriteString("<!--"); err != nil {
+-			return err
+-		}
+-		if _, err := w.WriteString(n.Data); err != nil {
+-			return err
+-		}
+-		if _, err := w.WriteString("-->"); err != nil {
+-			return err
+-		}
+-		return nil
+-	case DoctypeNode:
+-		if _, err := w.WriteString("<!DOCTYPE "); err != nil {
+-			return err
+-		}
+-		if _, err := w.WriteString(n.Data); err != nil {
+-			return err
+-		}
+-		if n.Attr != nil {
+-			var p, s string
+-			for _, a := range n.Attr {
+-				switch a.Key {
+-				case "public":
+-					p = a.Val
+-				case "system":
+-					s = a.Val
+-				}
+-			}
+-			if p != "" {
+-				if _, err := w.WriteString(" PUBLIC "); err != nil {
+-					return err
+-				}
+-				if err := writeQuoted(w, p); err != nil {
+-					return err
+-				}
+-				if s != "" {
+-					if err := w.WriteByte(' '); err != nil {
+-						return err
+-					}
+-					if err := writeQuoted(w, s); err != nil {
+-						return err
+-					}
+-				}
+-			} else if s != "" {
+-				if _, err := w.WriteString(" SYSTEM "); err != nil {
+-					return err
+-				}
+-				if err := writeQuoted(w, s); err != nil {
+-					return err
+-				}
+-			}
+-		}
+-		return w.WriteByte('>')
+-	default:
+-		return errors.New("html: unknown node type")
+-	}
+-
+-	// Render the <xxx> opening tag.
+-	if err := w.WriteByte('<'); err != nil {
+-		return err
+-	}
+-	if _, err := w.WriteString(n.Data); err != nil {
+-		return err
+-	}
+-	for _, a := range n.Attr {
+-		if err := w.WriteByte(' '); err != nil {
+-			return err
+-		}
+-		if a.Namespace != "" {
+-			if _, err := w.WriteString(a.Namespace); err != nil {
+-				return err
+-			}
+-			if err := w.WriteByte(':'); err != nil {
+-				return err
+-			}
+-		}
+-		if _, err := w.WriteString(a.Key); err != nil {
+-			return err
+-		}
+-		if _, err := w.WriteString(`="`); err != nil {
+-			return err
+-		}
+-		if err := escape(w, a.Val); err != nil {
+-			return err
+-		}
+-		if err := w.WriteByte('"'); err != nil {
+-			return err
+-		}
+-	}
+-	if voidElements[n.Data] {
+-		if n.FirstChild != nil {
+-			return fmt.Errorf("html: void element <%s> has child nodes", n.Data)
+-		}
+-		_, err := w.WriteString("/>")
+-		return err
+-	}
+-	if err := w.WriteByte('>'); err != nil {
+-		return err
+-	}
+-
+-	// Add initial newline where there is danger of a newline beging ignored.
+-	if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") {
+-		switch n.Data {
+-		case "pre", "listing", "textarea":
+-			if err := w.WriteByte('\n'); err != nil {
+-				return err
+-			}
+-		}
+-	}
+-
+-	// Render any child nodes.
+-	switch n.Data {
+-	case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp":
+-		for c := n.FirstChild; c != nil; c = c.NextSibling {
+-			if c.Type == TextNode {
+-				if _, err := w.WriteString(c.Data); err != nil {
+-					return err
+-				}
+-			} else {
+-				if err := render1(w, c); err != nil {
+-					return err
+-				}
+-			}
+-		}
+-		if n.Data == "plaintext" {
+-			// Don't render anything else. <plaintext> must be the
+-			// last element in the file, with no closing tag.
+-			return plaintextAbort
+-		}
+-	default:
+-		for c := n.FirstChild; c != nil; c = c.NextSibling {
+-			if err := render1(w, c); err != nil {
+-				return err
+-			}
+-		}
+-	}
+-
+-	// Render the </xxx> closing tag.
+-	if _, err := w.WriteString("</"); err != nil {
+-		return err
+-	}
+-	if _, err := w.WriteString(n.Data); err != nil {
+-		return err
+-	}
+-	return w.WriteByte('>')
+-}
+-
+-// writeQuoted writes s to w surrounded by quotes. Normally it will use double
+-// quotes, but if s contains a double quote, it will use single quotes.
+-// It is used for writing the identifiers in a doctype declaration.
+-// In valid HTML, they can't contain both types of quotes.
+-func writeQuoted(w writer, s string) error {
+-	var q byte = '"'
+-	if strings.Contains(s, `"`) {
+-		q = '\''
+-	}
+-	if err := w.WriteByte(q); err != nil {
+-		return err
+-	}
+-	if _, err := w.WriteString(s); err != nil {
+-		return err
+-	}
+-	if err := w.WriteByte(q); err != nil {
+-		return err
+-	}
+-	return nil
+-}
+-
+-// Section 12.1.2, "Elements", gives this list of void elements. Void elements
+-// are those that can't have any contents.
+-var voidElements = map[string]bool{
+-	"area":    true,
+-	"base":    true,
+-	"br":      true,
+-	"col":     true,
+-	"command": true,
+-	"embed":   true,
+-	"hr":      true,
+-	"img":     true,
+-	"input":   true,
+-	"keygen":  true,
+-	"link":    true,
+-	"meta":    true,
+-	"param":   true,
+-	"source":  true,
+-	"track":   true,
+-	"wbr":     true,
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/render_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/render_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/render_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/render_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,156 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"bytes"
+-	"testing"
+-)
+-
+-func TestRenderer(t *testing.T) {
+-	nodes := [...]*Node{
+-		0: {
+-			Type: ElementNode,
+-			Data: "html",
+-		},
+-		1: {
+-			Type: ElementNode,
+-			Data: "head",
+-		},
+-		2: {
+-			Type: ElementNode,
+-			Data: "body",
+-		},
+-		3: {
+-			Type: TextNode,
+-			Data: "0<1",
+-		},
+-		4: {
+-			Type: ElementNode,
+-			Data: "p",
+-			Attr: []Attribute{
+-				{
+-					Key: "id",
+-					Val: "A",
+-				},
+-				{
+-					Key: "foo",
+-					Val: `abc"def`,
+-				},
+-			},
+-		},
+-		5: {
+-			Type: TextNode,
+-			Data: "2",
+-		},
+-		6: {
+-			Type: ElementNode,
+-			Data: "b",
+-			Attr: []Attribute{
+-				{
+-					Key: "empty",
+-					Val: "",
+-				},
+-			},
+-		},
+-		7: {
+-			Type: TextNode,
+-			Data: "3",
+-		},
+-		8: {
+-			Type: ElementNode,
+-			Data: "i",
+-			Attr: []Attribute{
+-				{
+-					Key: "backslash",
+-					Val: `\`,
+-				},
+-			},
+-		},
+-		9: {
+-			Type: TextNode,
+-			Data: "&4",
+-		},
+-		10: {
+-			Type: TextNode,
+-			Data: "5",
+-		},
+-		11: {
+-			Type: ElementNode,
+-			Data: "blockquote",
+-		},
+-		12: {
+-			Type: ElementNode,
+-			Data: "br",
+-		},
+-		13: {
+-			Type: TextNode,
+-			Data: "6",
+-		},
+-	}
+-
+-	// Build a tree out of those nodes, based on a textual representation.
+-	// Only the ".\t"s are significant. The trailing HTML-like text is
+-	// just commentary. The "0:" prefixes are for easy cross-reference with
+-	// the nodes array.
+-	treeAsText := [...]string{
+-		0: `<html>`,
+-		1: `.	<head>`,
+-		2: `.	<body>`,
+-		3: `.	.	"0&lt;1"`,
+-		4: `.	.	<p id="A" foo="abc&#34;def">`,
+-		5: `.	.	.	"2"`,
+-		6: `.	.	.	<b empty="">`,
+-		7: `.	.	.	.	"3"`,
+-		8: `.	.	.	<i backslash="\">`,
+-		9: `.	.	.	.	"&amp;4"`,
+-		10: `.	.	"5"`,
+-		11: `.	.	<blockquote>`,
+-		12: `.	.	<br>`,
+-		13: `.	.	"6"`,
+-	}
+-	if len(nodes) != len(treeAsText) {
+-		t.Fatal("len(nodes) != len(treeAsText)")
+-	}
+-	var stack [8]*Node
+-	for i, line := range treeAsText {
+-		level := 0
+-		for line[0] == '.' {
+-			// Strip a leading ".\t".
+-			line = line[2:]
+-			level++
+-		}
+-		n := nodes[i]
+-		if level == 0 {
+-			if stack[0] != nil {
+-				t.Fatal("multiple root nodes")
+-			}
+-			stack[0] = n
+-		} else {
+-			stack[level-1].AppendChild(n)
+-			stack[level] = n
+-			for i := level + 1; i < len(stack); i++ {
+-				stack[i] = nil
+-			}
+-		}
+-		// At each stage of tree construction, we check all nodes for consistency.
+-		for j, m := range nodes {
+-			if err := checkNodeConsistency(m); err != nil {
+-				t.Fatalf("i=%d, j=%d: %v", i, j, err)
+-			}
+-		}
+-	}
+-
+-	want := `<html><head></head><body>0&lt;1<p id="A" foo="abc&#34;def">` +
+-		`2<b empty="">3</b><i backslash="\">&amp;4</i></p>` +
+-		`5<blockquote></blockquote><br/>6</body></html>`
+-	b := new(bytes.Buffer)
+-	if err := Render(b, nodes[0]); err != nil {
+-		t.Fatal(err)
+-	}
+-	if got := b.String(); got != want {
+-		t.Errorf("got vs want:\n%s\n%s\n", got, want)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/go1.html docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/go1.html
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/go1.html	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/go1.html	1969-12-31 18:00:00.000000000 -0600
+@@ -1,2237 +0,0 @@
+-<!DOCTYPE html>
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+-
+-  <title>Go 1 Release Notes - The Go Programming Language</title>
+-
+-<link type="text/css" rel="stylesheet" href="/doc/style.css">
+-<script type="text/javascript" src="/doc/godocs.js"></script>
+-
+-<link rel="search" type="application/opensearchdescription+xml" title="godoc" href="/opensearch.xml" />
+-
+-<script type="text/javascript">
+-var _gaq = _gaq || [];
+-_gaq.push(["_setAccount", "UA-11222381-2"]);
+-_gaq.push(["_trackPageview"]);
+-</script>
+-</head>
+-<body>
+-
+-<div id="topbar"><div class="container wide">
+-
+-<form method="GET" action="/search">
+-<div id="menu">
+-<a href="/doc/">Documents</a>
+-<a href="/ref/">References</a>
+-<a href="/pkg/">Packages</a>
+-<a href="/project/">The Project</a>
+-<a href="/help/">Help</a>
+-<input type="text" id="search" name="q" class="inactive" value="Search">
+-</div>
+-<div id="heading"><a href="/">The Go Programming Language</a></div>
+-</form>
+-
+-</div></div>
+-
+-<div id="page" class="wide">
+-
+-
+-  <div id="plusone"><g:plusone size="small" annotation="none"></g:plusone></div>
+-  <h1>Go 1 Release Notes</h1>
+-
+-
+-
+-
+-<div id="nav"></div>
+-
+-
+-
+-
+-<h2 id="introduction">Introduction to Go 1</h2>
+-
+-<p>
+-Go version 1, Go 1 for short, defines a language and a set of core libraries
+-that provide a stable foundation for creating reliable products, projects, and
+-publications.
+-</p>
+-
+-<p>
+-The driving motivation for Go 1 is stability for its users. People should be able to
+-write Go programs and expect that they will continue to compile and run without
+-change, on a time scale of years, including in production environments such as
+-Google App Engine. Similarly, people should be able to write books about Go, be
+-able to say which version of Go the book is describing, and have that version
+-number still be meaningful much later.
+-</p>
+-
+-<p>
+-Code that compiles in Go 1 should, with few exceptions, continue to compile and
+-run throughout the lifetime of that version, even as we issue updates and bug
+-fixes such as Go version 1.1, 1.2, and so on. Other than critical fixes, changes
+-made to the language and library for subsequent releases of Go 1 may
+-add functionality but will not break existing Go 1 programs.
+-<a href="go1compat.html">The Go 1 compatibility document</a>
+-explains the compatibility guidelines in more detail.
+-</p>
+-
+-<p>
+-Go 1 is a representation of Go as it used today, not a wholesale rethinking of
+-the language. We avoided designing new features and instead focused on cleaning
+-up problems and inconsistencies and improving portability. There are a number
+-changes to the Go language and packages that we had considered for some time and
+-prototyped but not released primarily because they are significant and
+-backwards-incompatible. Go 1 was an opportunity to get them out, which is
+-helpful for the long term, but also means that Go 1 introduces incompatibilities
+-for old programs. Fortunately, the <code>go</code> <code>fix</code> tool can
+-automate much of the work needed to bring programs up to the Go 1 standard.
+-</p>
+-
+-<p>
+-This document outlines the major changes in Go 1 that will affect programmers
+-updating existing code; its reference point is the prior release, r60 (tagged as
+-r60.3). It also explains how to update code from r60 to run under Go 1.
+-</p>
+-
+-<h2 id="language">Changes to the language</h2>
+-
+-<h3 id="append">Append</h3>
+-
+-<p>
+-The <code>append</code> predeclared variadic function makes it easy to grow a slice
+-by adding elements to the end.
+-A common use is to add bytes to the end of a byte slice when generating output.
+-However, <code>append</code> did not provide a way to append a string to a <code>[]byte</code>,
+-which is another common case.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/greeting := ..byte/` `/append.*hello/`}}
+--->    greeting := []byte{}
+-    greeting = append(greeting, []byte(&#34;hello &#34;)...)</pre>
+-
+-<p>
+-By analogy with the similar property of <code>copy</code>, Go 1
+-permits a string to be appended (byte-wise) directly to a byte
+-slice, reducing the friction between strings and byte slices.
+-The conversion is no longer necessary:
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/append.*world/`}}
+--->    greeting = append(greeting, &#34;world&#34;...)</pre>
+-
+-<p>
+-<em>Updating</em>:
+-This is a new feature, so existing code needs no changes.
+-</p>
+-
+-<h3 id="close">Close</h3>
+-
+-<p>
+-The <code>close</code> predeclared function provides a mechanism
+-for a sender to signal that no more values will be sent.
+-It is important to the implementation of <code>for</code> <code>range</code>
+-loops over channels and is helpful in other situations.
+-Partly by design and partly because of race conditions that can occur otherwise,
+-it is intended for use only by the goroutine sending on the channel,
+-not by the goroutine receiving data.
+-However, before Go 1 there was no compile-time checking that <code>close</code>
+-was being used correctly.
+-</p>
+-
+-<p>
+-To close this gap, at least in part, Go 1 disallows <code>close</code> on receive-only channels.
+-Attempting to close such a channel is a compile-time error.
+-</p>
+-
+-<pre>
+-    var c chan int
+-    var csend chan&lt;- int = c
+-    var crecv &lt;-chan int = c
+-    close(c)     // legal
+-    close(csend) // legal
+-    close(crecv) // illegal
+-</pre>
+-
+-<p>
+-<em>Updating</em>:
+-Existing code that attempts to close a receive-only channel was
+-erroneous even before Go 1 and should be fixed.  The compiler will
+-now reject such code.
+-</p>
+-
+-<h3 id="literals">Composite literals</h3>
+-
+-<p>
+-In Go 1, a composite literal of array, slice, or map type can elide the
+-type specification for the elements' initializers if they are of pointer type.
+-All four of the initializations in this example are legal; the last one was illegal before Go 1.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/type Date struct/` `/STOP/`}}
+--->    type Date struct {
+-        month string
+-        day   int
+-    }
+-    <span class="comment">// Struct values, fully qualified; always legal.</span>
+-    holiday1 := []Date{
+-        Date{&#34;Feb&#34;, 14},
+-        Date{&#34;Nov&#34;, 11},
+-        Date{&#34;Dec&#34;, 25},
+-    }
+-    <span class="comment">// Struct values, type name elided; always legal.</span>
+-    holiday2 := []Date{
+-        {&#34;Feb&#34;, 14},
+-        {&#34;Nov&#34;, 11},
+-        {&#34;Dec&#34;, 25},
+-    }
+-    <span class="comment">// Pointers, fully qualified, always legal.</span>
+-    holiday3 := []*Date{
+-        &amp;Date{&#34;Feb&#34;, 14},
+-        &amp;Date{&#34;Nov&#34;, 11},
+-        &amp;Date{&#34;Dec&#34;, 25},
+-    }
+-    <span class="comment">// Pointers, type name elided; legal in Go 1.</span>
+-    holiday4 := []*Date{
+-        {&#34;Feb&#34;, 14},
+-        {&#34;Nov&#34;, 11},
+-        {&#34;Dec&#34;, 25},
+-    }</pre>
+-
+-<p>
+-<em>Updating</em>:
+-This change has no effect on existing code, but the command
+-<code>gofmt</code> <code>-s</code> applied to existing source
+-will, among other things, elide explicit element types wherever permitted.
+-</p>
+-
+-
+-<h3 id="init">Goroutines during init</h3>
+-
+-<p>
+-The old language defined that <code>go</code> statements executed during initialization created goroutines but that they did not begin to run until initialization of the entire program was complete.
+-This introduced clumsiness in many places and, in effect, limited the utility
+-of the <code>init</code> construct:
+-if it was possible for another package to use the library during initialization, the library
+-was forced to avoid goroutines.
+-This design was done for reasons of simplicity and safety but,
+-as our confidence in the language grew, it seemed unnecessary.
+-Running goroutines during initialization is no more complex or unsafe than running them during normal execution.
+-</p>
+-
+-<p>
+-In Go 1, code that uses goroutines can be called from
+-<code>init</code> routines and global initialization expressions
+-without introducing a deadlock.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/PackageGlobal/` `/^}/`}}
+--->var PackageGlobal int
+-
+-func init() {
+-    c := make(chan int)
+-    go initializationFunction(c)
+-    PackageGlobal = &lt;-c
+-}</pre>
+-
+-<p>
+-<em>Updating</em>:
+-This is a new feature, so existing code needs no changes,
+-although it's possible that code that depends on goroutines not starting before <code>main</code> will break.
+-There was no such code in the standard repository.
+-</p>
+-
+-<h3 id="rune">The rune type</h3>
+-
+-<p>
+-The language spec allows the <code>int</code> type to be 32 or 64 bits wide, but current implementations set <code>int</code> to 32 bits even on 64-bit platforms.
+-It would be preferable to have <code>int</code> be 64 bits on 64-bit platforms.
+-(There are important consequences for indexing large slices.)
+-However, this change would waste space when processing Unicode characters with
+-the old language because the <code>int</code> type was also used to hold Unicode code points: each code point would waste an extra 32 bits of storage if <code>int</code> grew from 32 bits to 64.
+-</p>
+-
+-<p>
+-To make changing to 64-bit <code>int</code> feasible,
+-Go 1 introduces a new basic type, <code>rune</code>, to represent
+-individual Unicode code points.
+-It is an alias for <code>int32</code>, analogous to <code>byte</code>
+-as an alias for <code>uint8</code>.
+-</p>
+-
+-<p>
+-Character literals such as <code>'a'</code>, <code>'語'</code>, and <code>'\u0345'</code>
+-now have default type <code>rune</code>,
+-analogous to <code>1.0</code> having default type <code>float64</code>.
+-A variable initialized to a character constant will therefore
+-have type <code>rune</code> unless otherwise specified.
+-</p>
+-
+-<p>
+-Libraries have been updated to use <code>rune</code> rather than <code>int</code>
+-when appropriate. For instance, the functions <code>unicode.ToLower</code> and
+-relatives now take and return a <code>rune</code>.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/STARTRUNE/` `/ENDRUNE/`}}
+--->    delta := &#39;δ&#39; <span class="comment">// delta has type rune.</span>
+-    var DELTA rune
+-    DELTA = unicode.ToUpper(delta)
+-    epsilon := unicode.ToLower(DELTA + 1)
+-    if epsilon != &#39;δ&#39;+1 {
+-        log.Fatal(&#34;inconsistent casing for Greek&#34;)
+-    }</pre>
+-
+-<p>
+-<em>Updating</em>:
+-Most source code will be unaffected by this because the type inference from
+-<code>:=</code> initializers introduces the new type silently, and it propagates
+-from there.
+-Some code may get type errors that a trivial conversion will resolve.
+-</p>
+-
+-<h3 id="error">The error type</h3>
+-
+-<p>
+-Go 1 introduces a new built-in type, <code>error</code>, which has the following definition:
+-</p>
+-
+-<pre>
+-    type error interface {
+-        Error() string
+-    }
+-</pre>
+-
+-<p>
+-Since the consequences of this type are all in the package library,
+-it is discussed <a href="#errors">below</a>.
+-</p>
+-
+-<h3 id="delete">Deleting from maps</h3>
+-
+-<p>
+-In the old language, to delete the entry with key <code>k</code> from map <code>m</code>, one wrote the statement,
+-</p>
+-
+-<pre>
+-    m[k] = value, false
+-</pre>
+-
+-<p>
+-This syntax was a peculiar special case, the only two-to-one assignment.
+-It required passing a value (usually ignored) that is evaluated but discarded,
+-plus a boolean that was nearly always the constant <code>false</code>.
+-It did the job but was odd and a point of contention.
+-</p>
+-
+-<p>
+-In Go 1, that syntax has gone; instead there is a new built-in
+-function, <code>delete</code>.  The call
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/delete\(m, k\)/`}}
+--->    delete(m, k)</pre>
+-
+-<p>
+-will delete the map entry retrieved by the expression <code>m[k]</code>.
+-There is no return value. Deleting a non-existent entry is a no-op.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will convert expressions of the form <code>m[k] = value,
+-false</code> into <code>delete(m, k)</code> when it is clear that
+-the ignored value can be safely discarded from the program and
+-<code>false</code> refers to the predefined boolean constant.
+-The fix tool
+-will flag other uses of the syntax for inspection by the programmer.
+-</p>
+-
+-<h3 id="iteration">Iterating in maps</h3>
+-
+-<p>
+-The old language specification did not define the order of iteration for maps,
+-and in practice it differed across hardware platforms.
+-This caused tests that iterated over maps to be fragile and non-portable, with the
+-unpleasant property that a test might always pass on one machine but break on another.
+-</p>
+-
+-<p>
+-In Go 1, the order in which elements are visited when iterating
+-over a map using a <code>for</code> <code>range</code> statement
+-is defined to be unpredictable, even if the same loop is run multiple
+-times with the same map.
+-Code should not assume that the elements are visited in any particular order.
+-</p>
+-
+-<p>
+-This change means that code that depends on iteration order is very likely to break early and be fixed long before it becomes a problem.
+-Just as important, it allows the map implementation to ensure better map balancing even when programs are using range loops to select an element from a map.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/Sunday/` `/^	}/`}}
+--->    m := map[string]int{&#34;Sunday&#34;: 0, &#34;Monday&#34;: 1}
+-    for name, value := range m {
+-        <span class="comment">// This loop should not assume Sunday will be visited first.</span>
+-        f(name, value)
+-    }</pre>
+-
+-<p>
+-<em>Updating</em>:
+-This is one change where tools cannot help.  Most existing code
+-will be unaffected, but some programs may break or misbehave; we
+-recommend manual checking of all range statements over maps to
+-verify they do not depend on iteration order. There were a few such
+-examples in the standard repository; they have been fixed.
+-Note that it was already incorrect to depend on the iteration order, which
+-was unspecified. This change codifies the unpredictability.
+-</p>
+-
+-<h3 id="multiple_assignment">Multiple assignment</h3>
+-
+-<p>
+-The language specification has long guaranteed that in assignments
+-the right-hand-side expressions are all evaluated before any left-hand-side expressions are assigned.
+-To guarantee predictable behavior,
+-Go 1 refines the specification further.
+-</p>
+-
+-<p>
+-If the left-hand side of the assignment
+-statement contains expressions that require evaluation, such as
+-function calls or array indexing operations, these will all be done
+-using the usual left-to-right rule before any variables are assigned
+-their value.  Once everything is evaluated, the actual assignments
+-proceed in left-to-right order.
+-</p>
+-
+-<p>
+-These examples illustrate the behavior.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/sa :=/` `/then sc.0. = 2/`}}
+--->    sa := []int{1, 2, 3}
+-    i := 0
+-    i, sa[i] = 1, 2 <span class="comment">// sets i = 1, sa[0] = 2</span>
+-
+-    sb := []int{1, 2, 3}
+-    j := 0
+-    sb[j], j = 2, 1 <span class="comment">// sets sb[0] = 2, j = 1</span>
+-
+-    sc := []int{1, 2, 3}
+-    sc[0], sc[0] = 1, 2 <span class="comment">// sets sc[0] = 1, then sc[0] = 2 (so sc[0] = 2 at end)</span></pre>
+-
+-<p>
+-<em>Updating</em>:
+-This is one change where tools cannot help, but breakage is unlikely.
+-No code in the standard repository was broken by this change, and code
+-that depended on the previous unspecified behavior was already incorrect.
+-</p>
+-
+-<h3 id="shadowing">Returns and shadowed variables</h3>
+-
+-<p>
+-A common mistake is to use <code>return</code> (without arguments) after an assignment to a variable that has the same name as a result variable but is not the same variable.
+-This situation is called <em>shadowing</em>: the result variable has been shadowed by another variable with the same name declared in an inner scope.
+-</p>
+-
+-<p>
+-In functions with named return values,
+-the Go 1 compilers disallow return statements without arguments if any of the named return values is shadowed at the point of the return statement.
+-(It isn't part of the specification, because this is one area we are still exploring;
+-the situation is analogous to the compilers rejecting functions that do not end with an explicit return statement.)
+-</p>
+-
+-<p>
+-This function implicitly returns a shadowed return value and will be rejected by the compiler:
+-</p>
+-
+-<pre>
+-    func Bug() (i, j, k int) {
+-        for i = 0; i &lt; 5; i++ {
+-            for j := 0; j &lt; 5; j++ { // Redeclares j.
+-                k += i*j
+-                if k > 100 {
+-                    return // Rejected: j is shadowed here.
+-                }
+-            }
+-        }
+-        return // OK: j is not shadowed here.
+-    }
+-</pre>
+-
+-<p>
+-<em>Updating</em>:
+-Code that shadows return values in this way will be rejected by the compiler and will need to be fixed by hand.
+-The few cases that arose in the standard repository were mostly bugs.
+-</p>
+-
+-<h3 id="unexported">Copying structs with unexported fields</h3>
+-
+-<p>
+-The old language did not allow a package to make a copy of a struct value containing unexported fields belonging to a different package.
+-There was, however, a required exception for a method receiver;
+-also, the implementations of <code>copy</code> and <code>append</code> have never honored the restriction.
+-</p>
+-
+-<p>
+-Go 1 will allow packages to copy struct values containing unexported fields from other packages.
+-Besides resolving the inconsistency,
+-this change admits a new kind of API: a package can return an opaque value without resorting to a pointer or interface.
+-The new implementations of <code>time.Time</code> and
+-<code>reflect.Value</code> are examples of types taking advantage of this new property.
+-</p>
+-
+-<p>
+-As an example, if package <code>p</code> includes the definitions,
+-</p>
+-
+-<pre>
+-    type Struct struct {
+-        Public int
+-        secret int
+-    }
+-    func NewStruct(a int) Struct {  // Note: not a pointer.
+-        return Struct{a, f(a)}
+-    }
+-    func (s Struct) String() string {
+-        return fmt.Sprintf("{%d (secret %d)}", s.Public, s.secret)
+-    }
+-</pre>
+-
+-<p>
+-a package that imports <code>p</code> can assign and copy values of type
+-<code>p.Struct</code> at will.
+-Behind the scenes the unexported fields will be assigned and copied just
+-as if they were exported,
+-but the client code will never be aware of them. The code
+-</p>
+-
+-<pre>
+-    import "p"
+-
+-    myStruct := p.NewStruct(23)
+-    copyOfMyStruct := myStruct
+-    fmt.Println(myStruct, copyOfMyStruct)
+-</pre>
+-
+-<p>
+-will show that the secret field of the struct has been copied to the new value.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-This is a new feature, so existing code needs no changes.
+-</p>
+-
+-<h3 id="equality">Equality</h3>
+-
+-<p>
+-Before Go 1, the language did not define equality on struct and array values.
+-This meant,
+-among other things, that structs and arrays could not be used as map keys.
+-On the other hand, Go did define equality on function and map values.
+-Function equality was problematic in the presence of closures
+-(when are two closures equal?)
+-while map equality compared pointers, not the maps' content, which was usually
+-not what the user would want.
+-</p>
+-
+-<p>
+-Go 1 addressed these issues.
+-First, structs and arrays can be compared for equality and inequality
+-(<code>==</code> and <code>!=</code>),
+-and therefore be used as map keys,
+-provided they are composed from elements for which equality is also defined,
+-using element-wise comparison.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/type Day struct/` `/Printf/`}}
+--->    type Day struct {
+-        long  string
+-        short string
+-    }
+-    Christmas := Day{&#34;Christmas&#34;, &#34;XMas&#34;}
+-    Thanksgiving := Day{&#34;Thanksgiving&#34;, &#34;Turkey&#34;}
+-    holiday := map[Day]bool{
+-        Christmas:    true,
+-        Thanksgiving: true,
+-    }
+-    fmt.Printf(&#34;Christmas is a holiday: %t\n&#34;, holiday[Christmas])</pre>
+-
+-<p>
+-Second, Go 1 removes the definition of equality for function values,
+-except for comparison with <code>nil</code>.
+-Finally, map equality is gone too, also except for comparison with <code>nil</code>.
+-</p>
+-
+-<p>
+-Note that equality is still undefined for slices, for which the
+-calculation is in general infeasible.  Also note that the ordered
+-comparison operators (<code>&lt;</code> <code>&lt;=</code>
+-<code>&gt;</code> <code>&gt;=</code>) are still undefined for
+-structs and arrays.
+-
+-<p>
+-<em>Updating</em>:
+-Struct and array equality is a new feature, so existing code needs no changes.
+-Existing code that depends on function or map equality will be
+-rejected by the compiler and will need to be fixed by hand.
+-Few programs will be affected, but the fix may require some
+-redesign.
+-</p>
+-
+-<h2 id="packages">The package hierarchy</h2>
+-
+-<p>
+-Go 1 addresses many deficiencies in the old standard library and
+-cleans up a number of packages, making them more internally consistent
+-and portable.
+-</p>
+-
+-<p>
+-This section describes how the packages have been rearranged in Go 1.
+-Some have moved, some have been renamed, some have been deleted.
+-New packages are described in later sections.
+-</p>
+-
+-<h3 id="hierarchy">The package hierarchy</h3>
+-
+-<p>
+-Go 1 has a rearranged package hierarchy that groups related items
+-into subdirectories. For instance, <code>utf8</code> and
+-<code>utf16</code> now occupy subdirectories of <code>unicode</code>.
+-Also, <a href="#subrepo">some packages</a> have moved into
+-subrepositories of
+-<a href="http://code.google.com/p/go"><code>code.google.com/p/go</code></a>
+-while <a href="#deleted">others</a> have been deleted outright.
+-</p>
+-
+-<table class="codetable" frame="border" summary="Moved packages">
+-<colgroup align="left" width="60%"></colgroup>
+-<colgroup align="left" width="40%"></colgroup>
+-<tr>
+-<th align="left">Old path</th>
+-<th align="left">New path</th>
+-</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>asn1</td> <td>encoding/asn1</td></tr>
+-<tr><td>csv</td> <td>encoding/csv</td></tr>
+-<tr><td>gob</td> <td>encoding/gob</td></tr>
+-<tr><td>json</td> <td>encoding/json</td></tr>
+-<tr><td>xml</td> <td>encoding/xml</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>exp/template/html</td> <td>html/template</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>big</td> <td>math/big</td></tr>
+-<tr><td>cmath</td> <td>math/cmplx</td></tr>
+-<tr><td>rand</td> <td>math/rand</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>http</td> <td>net/http</td></tr>
+-<tr><td>http/cgi</td> <td>net/http/cgi</td></tr>
+-<tr><td>http/fcgi</td> <td>net/http/fcgi</td></tr>
+-<tr><td>http/httptest</td> <td>net/http/httptest</td></tr>
+-<tr><td>http/pprof</td> <td>net/http/pprof</td></tr>
+-<tr><td>mail</td> <td>net/mail</td></tr>
+-<tr><td>rpc</td> <td>net/rpc</td></tr>
+-<tr><td>rpc/jsonrpc</td> <td>net/rpc/jsonrpc</td></tr>
+-<tr><td>smtp</td> <td>net/smtp</td></tr>
+-<tr><td>url</td> <td>net/url</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>exec</td> <td>os/exec</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>scanner</td> <td>text/scanner</td></tr>
+-<tr><td>tabwriter</td> <td>text/tabwriter</td></tr>
+-<tr><td>template</td> <td>text/template</td></tr>
+-<tr><td>template/parse</td> <td>text/template/parse</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>utf8</td> <td>unicode/utf8</td></tr>
+-<tr><td>utf16</td> <td>unicode/utf16</td></tr>
+-</table>
+-
+-<p>
+-Note that the package names for the old <code>cmath</code> and
+-<code>exp/template/html</code> packages have changed to <code>cmplx</code>
+-and <code>template</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update all imports and package renames for packages that
+-remain inside the standard repository.  Programs that import packages
+-that are no longer in the standard repository will need to be edited
+-by hand.
+-</p>
+-
+-<h3 id="exp">The package tree exp</h3>
+-
+-<p>
+-Because they are not standardized, the packages under the <code>exp</code> directory will not be available in the
+-standard Go 1 release distributions, although they will be available in source code form
+-in <a href="http://code.google.com/p/go/">the repository</a> for
+-developers who wish to use them.
+-</p>
+-
+-<p>
+-Several packages have moved under <code>exp</code> at the time of Go 1's release:
+-</p>
+-
+-<ul>
+-<li><code>ebnf</code></li>
+-<li><code>html</code><sup>&#8224;</sup></li>
+-<li><code>go/types</code></li>
+-</ul>
+-
+-<p>
+-(<sup>&#8224;</sup>The <code>EscapeString</code> and <code>UnescapeString</code> types remain
+-in package <code>html</code>.)
+-</p>
+-
+-<p>
+-All these packages are available under the same names, with the prefix <code>exp/</code>: <code>exp/ebnf</code> etc.
+-</p>
+-
+-<p>
+-Also, the <code>utf8.String</code> type has been moved to its own package, <code>exp/utf8string</code>.
+-</p>
+-
+-<p>
+-Finally, the <code>gotype</code> command now resides in <code>exp/gotype</code>, while
+-<code>ebnflint</code> is now in <code>exp/ebnflint</code>.
+-If they are installed, they now reside in <code>$GOROOT/bin/tool</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code that uses packages in <code>exp</code> will need to be updated by hand,
+-or else compiled from an installation that has <code>exp</code> available.
+-The <code>go</code> <code>fix</code> tool or the compiler will complain about such uses.
+-</p>
+-
+-<h3 id="old">The package tree old</h3>
+-
+-<p>
+-Because they are deprecated, the packages under the <code>old</code> directory will not be available in the
+-standard Go 1 release distributions, although they will be available in source code form for
+-developers who wish to use them.
+-</p>
+-
+-<p>
+-The packages in their new locations are:
+-</p>
+-
+-<ul>
+-<li><code>old/netchan</code></li>
+-<li><code>old/regexp</code></li>
+-<li><code>old/template</code></li>
+-</ul>
+-
+-<p>
+-<em>Updating</em>:
+-Code that uses packages now in <code>old</code> will need to be updated by hand,
+-or else compiled from an installation that has <code>old</code> available.
+-The <code>go</code> <code>fix</code> tool will warn about such uses.
+-</p>
+-
+-<h3 id="deleted">Deleted packages</h3>
+-
+-<p>
+-Go 1 deletes several packages outright:
+-</p>
+-
+-<ul>
+-<li><code>container/vector</code></li>
+-<li><code>exp/datafmt</code></li>
+-<li><code>go/typechecker</code></li>
+-<li><code>try</code></li>
+-</ul>
+-
+-<p>
+-and also the command <code>gotry</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code that uses <code>container/vector</code> should be updated to use
+-slices directly.  See
+-<a href="http://code.google.com/p/go-wiki/wiki/SliceTricks">the Go
+-Language Community Wiki</a> for some suggestions.
+-Code that uses the other packages (there should be almost zero) will need to be rethought.
+-</p>
+-
+-<h3 id="subrepo">Packages moving to subrepositories</h3>
+-
+-<p>
+-Go 1 has moved a number of packages into other repositories, usually sub-repositories of
+-<a href="http://code.google.com/p/go/">the main Go repository</a>.
+-This table lists the old and new import paths:
+-
+-<table class="codetable" frame="border" summary="Sub-repositories">
+-<colgroup align="left" width="40%"></colgroup>
+-<colgroup align="left" width="60%"></colgroup>
+-<tr>
+-<th align="left">Old</th>
+-<th align="left">New</th>
+-</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>crypto/bcrypt</td> <td>code.google.com/p/go.crypto/bcrypt</tr>
+-<tr><td>crypto/blowfish</td> <td>code.google.com/p/go.crypto/blowfish</tr>
+-<tr><td>crypto/cast5</td> <td>code.google.com/p/go.crypto/cast5</tr>
+-<tr><td>crypto/md4</td> <td>code.google.com/p/go.crypto/md4</tr>
+-<tr><td>crypto/ocsp</td> <td>code.google.com/p/go.crypto/ocsp</tr>
+-<tr><td>crypto/openpgp</td> <td>code.google.com/p/go.crypto/openpgp</tr>
+-<tr><td>crypto/openpgp/armor</td> <td>code.google.com/p/go.crypto/openpgp/armor</tr>
+-<tr><td>crypto/openpgp/elgamal</td> <td>code.google.com/p/go.crypto/openpgp/elgamal</tr>
+-<tr><td>crypto/openpgp/errors</td> <td>code.google.com/p/go.crypto/openpgp/errors</tr>
+-<tr><td>crypto/openpgp/packet</td> <td>code.google.com/p/go.crypto/openpgp/packet</tr>
+-<tr><td>crypto/openpgp/s2k</td> <td>code.google.com/p/go.crypto/openpgp/s2k</tr>
+-<tr><td>crypto/ripemd160</td> <td>code.google.com/p/go.crypto/ripemd160</tr>
+-<tr><td>crypto/twofish</td> <td>code.google.com/p/go.crypto/twofish</tr>
+-<tr><td>crypto/xtea</td> <td>code.google.com/p/go.crypto/xtea</tr>
+-<tr><td>exp/ssh</td> <td>code.google.com/p/go.crypto/ssh</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr>
+-<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>net/dict</td> <td>code.google.com/p/go.net/dict</tr>
+-<tr><td>net/websocket</td> <td>code.google.com/p/go.net/websocket</tr>
+-<tr><td>exp/spdy</td> <td>code.google.com/p/go.net/spdy</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>encoding/git85</td> <td>code.google.com/p/go.codereview/git85</tr>
+-<tr><td>patch</td> <td>code.google.com/p/go.codereview/patch</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>exp/wingui</td> <td>code.google.com/p/gowingui</tr>
+-</table>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update imports of these packages to use the new import paths.
+-Installations that depend on these packages will need to install them using
+-a <code>go get</code> command.
+-</p>
+-
+-<h2 id="major">Major changes to the library</h2>
+-
+-<p>
+-This section describes significant changes to the core libraries, the ones that
+-affect the most programs.
+-</p>
+-
+-<h3 id="errors">The error type and errors package</h3>
+-
+-<p>
+-The placement of <code>os.Error</code> in package <code>os</code> is mostly historical: errors first came up when implementing package <code>os</code>, and they seemed system-related at the time.
+-Since then it has become clear that errors are more fundamental than the operating system.  For example, it would be nice to use <code>Errors</code> in packages that <code>os</code> depends on, like <code>syscall</code>.
+-Also, having <code>Error</code> in <code>os</code> introduces many dependencies on <code>os</code> that would otherwise not exist.
+-</p>
+-
+-<p>
+-Go 1 solves these problems by introducing a built-in <code>error</code> interface type and a separate <code>errors</code> package (analogous to <code>bytes</code> and <code>strings</code>) that contains utility functions.
+-It replaces <code>os.NewError</code> with
+-<a href="/pkg/errors/#New"><code>errors.New</code></a>,
+-giving errors a more central place in the environment.
+-</p>
+-
+-<p>
+-So the widely-used <code>String</code> method does not cause accidental satisfaction
+-of the <code>error</code> interface, the <code>error</code> interface uses instead
+-the name <code>Error</code> for that method:
+-</p>
+-
+-<pre>
+-    type error interface {
+-        Error() string
+-    }
+-</pre>
+-
+-<p>
+-The <code>fmt</code> library automatically invokes <code>Error</code>, as it already
+-does for <code>String</code>, for easy printing of error values.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/START ERROR EXAMPLE/` `/END ERROR EXAMPLE/`}}
+--->type SyntaxError struct {
+-    File    string
+-    Line    int
+-    Message string
+-}
+-
+-func (se *SyntaxError) Error() string {
+-    return fmt.Sprintf(&#34;%s:%d: %s&#34;, se.File, se.Line, se.Message)
+-}</pre>
+-
+-<p>
+-All standard packages have been updated to use the new interface; the old <code>os.Error</code> is gone.
+-</p>
+-
+-<p>
+-A new package, <a href="/pkg/errors/"><code>errors</code></a>, contains the function
+-</p>
+-
+-<pre>
+-func New(text string) error
+-</pre>
+-
+-<p>
+-to turn a string into an error. It replaces the old <code>os.NewError</code>.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/ErrSyntax/`}}
+--->    var ErrSyntax = errors.New(&#34;syntax error&#34;)</pre>
+-		
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
+-Code that defines error types with a <code>String</code> method will need to be updated
+-by hand to rename the methods to <code>Error</code>.
+-</p>
+-
+-<h3 id="errno">System call errors</h3>
+-
+-<p>
+-The old <code>syscall</code> package, which predated <code>os.Error</code>
+-(and just about everything else),
+-returned errors as <code>int</code> values.
+-In turn, the <code>os</code> package forwarded many of these errors, such
+-as <code>EINVAL</code>, but using a different set of errors on each platform.
+-This behavior was unpleasant and unportable.
+-</p>
+-
+-<p>
+-In Go 1, the
+-<a href="/pkg/syscall/"><code>syscall</code></a>
+-package instead returns an <code>error</code> for system call errors.
+-On Unix, the implementation is done by a
+-<a href="/pkg/syscall/#Errno"><code>syscall.Errno</code></a> type
+-that satisfies <code>error</code> and replaces the old <code>os.Errno</code>.
+-</p>
+-
+-<p>
+-The changes affecting <code>os.EINVAL</code> and relatives are
+-described <a href="#os">elsewhere</a>.
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
+-Regardless, most code should use the <code>os</code> package
+-rather than <code>syscall</code> and so will be unaffected.
+-</p>
+-
+-<h3 id="time">Time</h3>
+-
+-<p>
+-Time is always a challenge to support well in a programming language.
+-The old Go <code>time</code> package had <code>int64</code> units, no
+-real type safety,
+-and no distinction between absolute times and durations.
+-</p>
+-
+-<p>
+-One of the most sweeping changes in the Go 1 library is therefore a
+-complete redesign of the
+-<a href="/pkg/time/"><code>time</code></a> package.
+-Instead of an integer number of nanoseconds as an <code>int64</code>,
+-and a separate <code>*time.Time</code> type to deal with human
+-units such as hours and years,
+-there are now two fundamental types:
+-<a href="/pkg/time/#Time"><code>time.Time</code></a>
+-(a value, so the <code>*</code> is gone), which represents a moment in time;
+-and <a href="/pkg/time/#Duration"><code>time.Duration</code></a>,
+-which represents an interval.
+-Both have nanosecond resolution.
+-A <code>Time</code> can represent any time into the ancient
+-past and remote future, while a <code>Duration</code> can
+-span plus or minus only about 290 years.
+-There are methods on these types, plus a number of helpful
+-predefined constant durations such as <code>time.Second</code>.
+-</p>
+-
+-<p>
+-Among the new methods are things like
+-<a href="/pkg/time/#Time.Add"><code>Time.Add</code></a>,
+-which adds a <code>Duration</code> to a <code>Time</code>, and
+-<a href="/pkg/time/#Time.Sub"><code>Time.Sub</code></a>,
+-which subtracts two <code>Times</code> to yield a <code>Duration</code>.
+-</p>
+-
+-<p>
+-The most important semantic change is that the Unix epoch (Jan 1, 1970) is now
+-relevant only for those functions and methods that mention Unix:
+-<a href="/pkg/time/#Unix"><code>time.Unix</code></a>
+-and the <a href="/pkg/time/#Time.Unix"><code>Unix</code></a>
+-and <a href="/pkg/time/#Time.UnixNano"><code>UnixNano</code></a> methods
+-of the <code>Time</code> type.
+-In particular,
+-<a href="/pkg/time/#Now"><code>time.Now</code></a>
+-returns a <code>time.Time</code> value rather than, in the old
+-API, an integer nanosecond count since the Unix epoch.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/sleepUntil/` `/^}/`}}
+---><span class="comment">// sleepUntil sleeps until the specified time. It returns immediately if it&#39;s too late.</span>
+-func sleepUntil(wakeup time.Time) {
+-    now := time.Now() <span class="comment">// A Time.</span>
+-    if !wakeup.After(now) {
+-        return
+-    }
+-    delta := wakeup.Sub(now) <span class="comment">// A Duration.</span>
+-    fmt.Printf(&#34;Sleeping for %.3fs\n&#34;, delta.Seconds())
+-    time.Sleep(delta)
+-}</pre>
+-
+-<p>
+-The new types, methods, and constants have been propagated through
+-all the standard packages that use time, such as <code>os</code> and
+-its representation of file time stamps.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-The <code>go</code> <code>fix</code> tool will update many uses of the old <code>time</code> package to use the new
+-types and methods, although it does not replace values such as <code>1e9</code>
+-representing nanoseconds per second.
+-Also, because of type changes in some of the values that arise,
+-some of the expressions rewritten by the fix tool may require
+-further hand editing; in such cases the rewrite will include
+-the correct function or method for the old functionality, but
+-may have the wrong type or require further analysis.
+-</p>
+-
+-<h2 id="minor">Minor changes to the library</h2>
+-
+-<p>
+-This section describes smaller changes, such as those to less commonly
+-used packages or that affect
+-few programs beyond the need to run <code>go</code> <code>fix</code>.
+-This category includes packages that are new in Go 1.
+-Collectively they improve portability, regularize behavior, and
+-make the interfaces more modern and Go-like.
+-</p>
+-
+-<h3 id="archive_zip">The archive/zip package</h3>
+-
+-<p>
+-In Go 1, <a href="/pkg/archive/zip/#Writer"><code>*zip.Writer</code></a> no
+-longer has a <code>Write</code> method. Its presence was a mistake.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-What little code is affected will be caught by the compiler and must be updated by hand.
+-</p>
+-
+-<h3 id="bufio">The bufio package</h3>
+-
+-<p>
+-In Go 1, <a href="/pkg/bufio/#NewReaderSize"><code>bufio.NewReaderSize</code></a>
+-and
+-<a href="/pkg/bufio/#NewWriterSize"><code>bufio.NewWriterSize</code></a>
+-functions no longer return an error for invalid sizes.
+-If the argument size is too small or invalid, it is adjusted.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update calls that assign the error to _.
+-Calls that aren't fixed will be caught by the compiler and must be updated by hand.
+-</p>
+-
+-<h3 id="compress">The compress/flate, compress/gzip and compress/zlib packages</h3>
+-
+-<p>
+-In Go 1, the <code>NewWriterXxx</code> functions in
+-<a href="/pkg/compress/flate"><code>compress/flate</code></a>,
+-<a href="/pkg/compress/gzip"><code>compress/gzip</code></a> and
+-<a href="/pkg/compress/zlib"><code>compress/zlib</code></a>
+-all return <code>(*Writer, error)</code> if they take a compression level,
+-and <code>*Writer</code> otherwise. Package <code>gzip</code>'s
+-<code>Compressor</code> and <code>Decompressor</code> types have been renamed
+-to <code>Writer</code> and <code>Reader</code>. Package <code>flate</code>'s
+-<code>WrongValueError</code> type has been removed.
+-</p>
+-
+-<p>
+-<em>Updating</em>
+-Running <code>go</code> <code>fix</code> will update old names and calls that assign the error to _.
+-Calls that aren't fixed will be caught by the compiler and must be updated by hand.
+-</p>
+-
+-<h3 id="crypto_aes_des">The crypto/aes and crypto/des packages</h3>
+-
+-<p>
+-In Go 1, the <code>Reset</code> method has been removed. Go does not guarantee
+-that memory is not copied and therefore this method was misleading.
+-</p>
+-
+-<p>
+-The cipher-specific types <code>*aes.Cipher</code>, <code>*des.Cipher</code>,
+-and <code>*des.TripleDESCipher</code> have been removed in favor of
+-<code>cipher.Block</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Remove the calls to Reset. Replace uses of the specific cipher types with
+-cipher.Block.
+-</p>
+-
+-<h3 id="crypto_elliptic">The crypto/elliptic package</h3>
+-
+-<p>
+-In Go 1, <a href="/pkg/crypto/elliptic/#Curve"><code>elliptic.Curve</code></a>
+-has been made an interface to permit alternative implementations. The curve
+-parameters have been moved to the
+-<a href="/pkg/crypto/elliptic/#CurveParams"><code>elliptic.CurveParams</code></a>
+-structure.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Existing users of <code>*elliptic.Curve</code> will need to change to
+-simply <code>elliptic.Curve</code>. Calls to <code>Marshal</code>,
+-<code>Unmarshal</code> and <code>GenerateKey</code> are now functions
+-in <code>crypto/elliptic</code> that take an <code>elliptic.Curve</code>
+-as their first argument.
+-</p>
+-
+-<h3 id="crypto_hmac">The crypto/hmac package</h3>
+-
+-<p>
+-In Go 1, the hash-specific functions, such as <code>hmac.NewMD5</code>, have
+-been removed from <code>crypto/hmac</code>. Instead, <code>hmac.New</code> takes
+-a function that returns a <code>hash.Hash</code>, such as <code>md5.New</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will perform the needed changes.
+-</p>
+-
+-<h3 id="crypto_x509">The crypto/x509 package</h3>
+-
+-<p>
+-In Go 1, the
+-<a href="/pkg/crypto/x509/#CreateCertificate"><code>CreateCertificate</code></a>
+-and
+-<a href="/pkg/crypto/x509/#CreateCRL"><code>CreateCRL</code></a>
+-functions in <code>crypto/x509</code> have been altered to take an
+-<code>interface{}</code> where they previously took a <code>*rsa.PublicKey</code>
+-or <code>*rsa.PrivateKey</code>. This will allow other public key algorithms
+-to be implemented in the future.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-No changes will be needed.
+-</p>
+-
+-<h3 id="encoding_binary">The encoding/binary package</h3>
+-
+-<p>
+-In Go 1, the <code>binary.TotalSize</code> function has been replaced by
+-<a href="/pkg/encoding/binary/#Size"><code>Size</code></a>,
+-which takes an <code>interface{}</code> argument rather than
+-a <code>reflect.Value</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-What little code is affected will be caught by the compiler and must be updated by hand.
+-</p>
+-
+-<h3 id="encoding_xml">The encoding/xml package</h3>
+-
+-<p>
+-In Go 1, the <a href="/pkg/encoding/xml/"><code>xml</code></a> package
+-has been brought closer in design to the other marshaling packages such
+-as <a href="/pkg/encoding/gob/"><code>encoding/gob</code></a>.
+-</p>
+-
+-<p>
+-The old <code>Parser</code> type is renamed
+-<a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> and has a new
+-<a href="/pkg/encoding/xml/#Decoder.Decode"><code>Decode</code></a> method. An
+-<a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a> type was also introduced.
+-</p>
+-
+-<p>
+-The functions <a href="/pkg/encoding/xml/#Marshal"><code>Marshal</code></a>
+-and <a href="/pkg/encoding/xml/#Unmarshal"><code>Unmarshal</code></a>
+-work with <code>[]byte</code> values now. To work with streams,
+-use the new <a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a>
+-and <a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> types.
+-</p>
+-
+-<p>
+-When marshaling or unmarshaling values, the format of supported flags in
+-field tags has changed to be closer to the
+-<a href="/pkg/encoding/json"><code>json</code></a> package
+-(<code>`xml:"name,flag"`</code>). The matching done between field tags, field
+-names, and the XML attribute and element names is now case-sensitive.
+-The <code>XMLName</code> field tag, if present, must also match the name
+-of the XML element being marshaled.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update most uses of the package except for some calls to
+-<code>Unmarshal</code>. Special care must be taken with field tags,
+-since the fix tool will not update them and if not fixed by hand they will
+-misbehave silently in some cases. For example, the old
+-<code>"attr"</code> is now written <code>",attr"</code> while plain
+-<code>"attr"</code> remains valid but with a different meaning.
+-</p>
+-
+-<h3 id="expvar">The expvar package</h3>
+-
+-<p>
+-In Go 1, the <code>RemoveAll</code> function has been removed.
+-The <code>Iter</code> function and Iter method on <code>*Map</code> have
+-been replaced by
+-<a href="/pkg/expvar/#Do"><code>Do</code></a>
+-and
+-<a href="/pkg/expvar/#Map.Do"><code>(*Map).Do</code></a>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Most code using <code>expvar</code> will not need changing. The rare code that used
+-<code>Iter</code> can be updated to pass a closure to <code>Do</code> to achieve the same effect.
+-</p>
+-
+-<h3 id="flag">The flag package</h3>
+-
+-<p>
+-In Go 1, the interface <a href="/pkg/flag/#Value"><code>flag.Value</code></a> has changed slightly.
+-The <code>Set</code> method now returns an <code>error</code> instead of
+-a <code>bool</code> to indicate success or failure.
+-</p>
+-
+-<p>
+-There is also a new kind of flag, <code>Duration</code>, to support argument
+-values specifying time intervals.
+-Values for such flags must be given units, just as <code>time.Duration</code>
+-formats them: <code>10s</code>, <code>1h30m</code>, etc.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/timeout/`}}
+--->var timeout = flag.Duration(&#34;timeout&#34;, 30*time.Second, &#34;how long to wait for completion&#34;)</pre>
+-
+-<p>
+-<em>Updating</em>:
+-Programs that implement their own flags will need minor manual fixes to update their
+-<code>Set</code> methods.
+-The <code>Duration</code> flag is new and affects no existing code.
+-</p>
+-
+-
+-<h3 id="go">The go/* packages</h3>
+-
+-<p>
+-Several packages under <code>go</code> have slightly revised APIs.
+-</p>
+-
+-<p>
+-A concrete <code>Mode</code> type was introduced for configuration mode flags
+-in the packages
+-<a href="/pkg/go/scanner/"><code>go/scanner</code></a>,
+-<a href="/pkg/go/parser/"><code>go/parser</code></a>,
+-<a href="/pkg/go/printer/"><code>go/printer</code></a>, and
+-<a href="/pkg/go/doc/"><code>go/doc</code></a>.
+-</p>
+-
+-<p>
+-The modes <code>AllowIllegalChars</code> and <code>InsertSemis</code> have been removed
+-from the <a href="/pkg/go/scanner/"><code>go/scanner</code></a> package. They were mostly
+-useful for scanning text other then Go source files. Instead, the
+-<a href="/pkg/text/scanner/"><code>text/scanner</code></a> package should be used
+-for that purpose.
+-</p>
+-
+-<p>
+-The <a href="/pkg/go/scanner/#ErrorHandler"><code>ErrorHandler</code></a> provided
+-to the scanner's <a href="/pkg/go/scanner/#Scanner.Init"><code>Init</code></a> method is
+-now simply a function rather than an interface. The <code>ErrorVector</code> type has
+-been removed in favor of the (existing) <a href="/pkg/go/scanner/#ErrorList"><code>ErrorList</code></a>
+-type, and the <code>ErrorVector</code> methods have been migrated. Instead of embedding
+-an <code>ErrorVector</code> in a client of the scanner, now a client should maintain
+-an <code>ErrorList</code>.
+-</p>
+-
+-<p>
+-The set of parse functions provided by the <a href="/pkg/go/parser/"><code>go/parser</code></a>
+-package has been reduced to the primary parse function
+-<a href="/pkg/go/parser/#ParseFile"><code>ParseFile</code></a>, and a couple of
+-convenience functions <a href="/pkg/go/parser/#ParseDir"><code>ParseDir</code></a>
+-and <a href="/pkg/go/parser/#ParseExpr"><code>ParseExpr</code></a>.
+-</p>
+-
+-<p>
+-The <a href="/pkg/go/printer/"><code>go/printer</code></a> package supports an additional
+-configuration mode <a href="/pkg/go/printer/#Mode"><code>SourcePos</code></a>;
+-if set, the printer will emit <code>//line</code> comments such that the generated
+-output contains the original source code position information. The new type
+-<a href="/pkg/go/printer/#CommentedNode"><code>CommentedNode</code></a> can be
+-used to provide comments associated with an arbitrary
+-<a href="/pkg/go/ast/#Node"><code>ast.Node</code></a> (until now only
+-<a href="/pkg/go/ast/#File"><code>ast.File</code></a> carried comment information).
+-</p>
+-
+-<p>
+-The type names of the <a href="/pkg/go/doc/"><code>go/doc</code></a> package have been
+-streamlined by removing the <code>Doc</code> suffix: <code>PackageDoc</code>
+-is now <code>Package</code>, <code>ValueDoc</code> is <code>Value</code>, etc.
+-Also, all types now consistently have a <code>Name</code> field (or <code>Names</code>,
+-in the case of type <code>Value</code>) and <code>Type.Factories</code> has become
+-<code>Type.Funcs</code>.
+-Instead of calling <code>doc.NewPackageDoc(pkg, importpath)</code>,
+-documentation for a package is created with:
+-</p>
+-
+-<pre>
+-    doc.New(pkg, importpath, mode)
+-</pre>
+-
+-<p>
+-where the new <code>mode</code> parameter specifies the operation mode:
+-if set to <a href="/pkg/go/doc/#AllDecls"><code>AllDecls</code></a>, all declarations
+-(not just exported ones) are considered.
+-The function <code>NewFileDoc</code> was removed, and the function
+-<code>CommentText</code> has become the method
+-<a href="/pkg/go/ast/#Text"><code>Text</code></a> of
+-<a href="/pkg/go/ast/#CommentGroup"><code>ast.CommentGroup</code></a>.
+-</p>
+-
+-<p>
+-In package <a href="/pkg/go/token/"><code>go/token</code></a>, the
+-<a href="/pkg/go/token/#FileSet"><code>token.FileSet</code></a> method <code>Files</code>
+-(which originally returned a channel of <code>*token.File</code>s) has been replaced
+-with the iterator <a href="/pkg/go/token/#FileSet.Iterate"><code>Iterate</code></a> that
+-accepts a function argument instead.
+-</p>
+-
+-<p>
+-In package <a href="/pkg/go/build/"><code>go/build</code></a>, the API
+-has been nearly completely replaced.
+-The package still computes Go package information
+-but it does not run the build: the <code>Cmd</code> and <code>Script</code>
+-types are gone.
+-(To build code, use the new
+-<a href="/cmd/go/"><code>go</code></a> command instead.)
+-The <code>DirInfo</code> type is now named
+-<a href="/pkg/go/build/#Package"><code>Package</code></a>.
+-<code>FindTree</code> and <code>ScanDir</code> are replaced by
+-<a href="/pkg/go/build/#Import"><code>Import</code></a>
+-and
+-<a href="/pkg/go/build/#ImportDir"><code>ImportDir</code></a>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code that uses packages in <code>go</code> will have to be updated by hand; the
+-compiler will reject incorrect uses. Templates used in conjunction with any of the
+-<code>go/doc</code> types may need manual fixes; the renamed fields will lead
+-to run-time errors.
+-</p>
+-
+-<h3 id="hash">The hash package</h3>
+-
+-<p>
+-In Go 1, the definition of <a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> includes
+-a new method, <code>BlockSize</code>.  This new method is used primarily in the
+-cryptographic libraries.
+-</p>
+-
+-<p>
+-The <code>Sum</code> method of the
+-<a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> interface now takes a
+-<code>[]byte</code> argument, to which the hash value will be appended.
+-The previous behavior can be recreated by adding a <code>nil</code> argument to the call.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Existing implementations of <code>hash.Hash</code> will need to add a
+-<code>BlockSize</code> method.  Hashes that process the input one byte at
+-a time can implement <code>BlockSize</code> to return 1.
+-Running <code>go</code> <code>fix</code> will update calls to the <code>Sum</code> methods of the various
+-implementations of <code>hash.Hash</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Since the package's functionality is new, no updating is necessary.
+-</p>
+-
+-<h3 id="http">The http package</h3>
+-
+-<p>
+-In Go 1 the <a href="/pkg/net/http/"><code>http</code></a> package is refactored,
+-putting some of the utilities into a
+-<a href="/pkg/net/http/httputil/"><code>httputil</code></a> subdirectory.
+-These pieces are only rarely needed by HTTP clients.
+-The affected items are:
+-</p>
+-
+-<ul>
+-<li>ClientConn</li>
+-<li>DumpRequest</li>
+-<li>DumpRequestOut</li>
+-<li>DumpResponse</li>
+-<li>NewChunkedReader</li>
+-<li>NewChunkedWriter</li>
+-<li>NewClientConn</li>
+-<li>NewProxyClientConn</li>
+-<li>NewServerConn</li>
+-<li>NewSingleHostReverseProxy</li>
+-<li>ReverseProxy</li>
+-<li>ServerConn</li>
+-</ul>
+-
+-<p>
+-The <code>Request.RawURL</code> field has been removed; it was a
+-historical artifact.
+-</p>
+-
+-<p>
+-The <code>Handle</code> and <code>HandleFunc</code>
+-functions, and the similarly-named methods of <code>ServeMux</code>,
+-now panic if an attempt is made to register the same pattern twice.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update the few programs that are affected except for
+-uses of <code>RawURL</code>, which must be fixed by hand.
+-</p>
+-
+-<h3 id="image">The image package</h3>
+-
+-<p>
+-The <a href="/pkg/image/"><code>image</code></a> package has had a number of
+-minor changes, rearrangements and renamings.
+-</p>
+-
+-<p>
+-Most of the color handling code has been moved into its own package,
+-<a href="/pkg/image/color/"><code>image/color</code></a>.
+-For the elements that moved, a symmetry arises; for instance,
+-each pixel of an
+-<a href="/pkg/image/#RGBA"><code>image.RGBA</code></a>
+-is a
+-<a href="/pkg/image/color/#RGBA"><code>color.RGBA</code></a>.
+-</p>
+-
+-<p>
+-The old <code>image/ycbcr</code> package has been folded, with some
+-renamings, into the
+-<a href="/pkg/image/"><code>image</code></a>
+-and
+-<a href="/pkg/image/color/"><code>image/color</code></a>
+-packages.
+-</p>
+-
+-<p>
+-The old <code>image.ColorImage</code> type is still in the <code>image</code>
+-package but has been renamed
+-<a href="/pkg/image/#Uniform"><code>image.Uniform</code></a>,
+-while <code>image.Tiled</code> has been removed.
+-</p>
+-
+-<p>
+-This table lists the renamings.
+-</p>
+-
+-<table class="codetable" frame="border" summary="image renames">
+-<colgroup align="left" width="50%"></colgroup>
+-<colgroup align="left" width="50%"></colgroup>
+-<tr>
+-<th align="left">Old</th>
+-<th align="left">New</th>
+-</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>image.Color</td> <td>color.Color</td></tr>
+-<tr><td>image.ColorModel</td> <td>color.Model</td></tr>
+-<tr><td>image.ColorModelFunc</td> <td>color.ModelFunc</td></tr>
+-<tr><td>image.PalettedColorModel</td> <td>color.Palette</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>image.RGBAColor</td> <td>color.RGBA</td></tr>
+-<tr><td>image.RGBA64Color</td> <td>color.RGBA64</td></tr>
+-<tr><td>image.NRGBAColor</td> <td>color.NRGBA</td></tr>
+-<tr><td>image.NRGBA64Color</td> <td>color.NRGBA64</td></tr>
+-<tr><td>image.AlphaColor</td> <td>color.Alpha</td></tr>
+-<tr><td>image.Alpha16Color</td> <td>color.Alpha16</td></tr>
+-<tr><td>image.GrayColor</td> <td>color.Gray</td></tr>
+-<tr><td>image.Gray16Color</td> <td>color.Gray16</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>image.RGBAColorModel</td> <td>color.RGBAModel</td></tr>
+-<tr><td>image.RGBA64ColorModel</td> <td>color.RGBA64Model</td></tr>
+-<tr><td>image.NRGBAColorModel</td> <td>color.NRGBAModel</td></tr>
+-<tr><td>image.NRGBA64ColorModel</td> <td>color.NRGBA64Model</td></tr>
+-<tr><td>image.AlphaColorModel</td> <td>color.AlphaModel</td></tr>
+-<tr><td>image.Alpha16ColorModel</td> <td>color.Alpha16Model</td></tr>
+-<tr><td>image.GrayColorModel</td> <td>color.GrayModel</td></tr>
+-<tr><td>image.Gray16ColorModel</td> <td>color.Gray16Model</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>ycbcr.RGBToYCbCr</td> <td>color.RGBToYCbCr</td></tr>
+-<tr><td>ycbcr.YCbCrToRGB</td> <td>color.YCbCrToRGB</td></tr>
+-<tr><td>ycbcr.YCbCrColorModel</td> <td>color.YCbCrModel</td></tr>
+-<tr><td>ycbcr.YCbCrColor</td> <td>color.YCbCr</td></tr>
+-<tr><td>ycbcr.YCbCr</td> <td>image.YCbCr</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>ycbcr.SubsampleRatio444</td> <td>image.YCbCrSubsampleRatio444</td></tr>
+-<tr><td>ycbcr.SubsampleRatio422</td> <td>image.YCbCrSubsampleRatio422</td></tr>
+-<tr><td>ycbcr.SubsampleRatio420</td> <td>image.YCbCrSubsampleRatio420</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>image.ColorImage</td> <td>image.Uniform</td></tr>
+-</table>
+-
+-<p>
+-The image package's <code>New</code> functions
+-(<a href="/pkg/image/#NewRGBA"><code>NewRGBA</code></a>,
+-<a href="/pkg/image/#NewRGBA64"><code>NewRGBA64</code></a>, etc.)
+-take an <a href="/pkg/image/#Rectangle"><code>image.Rectangle</code></a> as an argument
+-instead of four integers.
+-</p>
+-
+-<p>
+-Finally, there are new predefined <code>color.Color</code> variables
+-<a href="/pkg/image/color/#Black"><code>color.Black</code></a>,
+-<a href="/pkg/image/color/#White"><code>color.White</code></a>,
+-<a href="/pkg/image/color/#Opaque"><code>color.Opaque</code></a>
+-and
+-<a href="/pkg/image/color/#Transparent"><code>color.Transparent</code></a>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
+-</p>
+-
+-<h3 id="log_syslog">The log/syslog package</h3>
+-
+-<p>
+-In Go 1, the <a href="/pkg/log/syslog/#NewLogger"><code>syslog.NewLogger</code></a>
+-function returns an error as well as a <code>log.Logger</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-What little code is affected will be caught by the compiler and must be updated by hand.
+-</p>
+-
+-<h3 id="mime">The mime package</h3>
+-
+-<p>
+-In Go 1, the <a href="/pkg/mime/#FormatMediaType"><code>FormatMediaType</code></a> function
+-of the <code>mime</code> package has  been simplified to make it
+-consistent with
+-<a href="/pkg/mime/#ParseMediaType"><code>ParseMediaType</code></a>.
+-It now takes <code>"text/html"</code> rather than <code>"text"</code> and <code>"html"</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-What little code is affected will be caught by the compiler and must be updated by hand.
+-</p>
+-
+-<h3 id="net">The net package</h3>
+-
+-<p>
+-In Go 1, the various <code>SetTimeout</code>,
+-<code>SetReadTimeout</code>, and <code>SetWriteTimeout</code> methods
+-have been replaced with
+-<a href="/pkg/net/#IPConn.SetDeadline"><code>SetDeadline</code></a>,
+-<a href="/pkg/net/#IPConn.SetReadDeadline"><code>SetReadDeadline</code></a>, and
+-<a href="/pkg/net/#IPConn.SetWriteDeadline"><code>SetWriteDeadline</code></a>,
+-respectively.  Rather than taking a timeout value in nanoseconds that
+-apply to any activity on the connection, the new methods set an
+-absolute deadline (as a <code>time.Time</code> value) after which
+-reads and writes will time out and no longer block.
+-</p>
+-
+-<p>
+-There are also new functions
+-<a href="/pkg/net/#DialTimeout"><code>net.DialTimeout</code></a>
+-to simplify timing out dialing a network address and
+-<a href="/pkg/net/#ListenMulticastUDP"><code>net.ListenMulticastUDP</code></a>
+-to allow multicast UDP to listen concurrently across multiple listeners.
+-The <code>net.ListenMulticastUDP</code> function replaces the old
+-<code>JoinGroup</code> and <code>LeaveGroup</code> methods.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code that uses the old methods will fail to compile and must be updated by hand.
+-The semantic change makes it difficult for the fix tool to update automatically.
+-</p>
+-
+-<h3 id="os">The os package</h3>
+-
+-<p>
+-The <code>Time</code> function has been removed; callers should use
+-the <a href="/pkg/time/#Time"><code>Time</code></a> type from the
+-<code>time</code> package.
+-</p>
+-
+-<p>
+-The <code>Exec</code> function has been removed; callers should use
+-<code>Exec</code> from the <code>syscall</code> package, where available.
+-</p>
+-
+-<p>
+-The <code>ShellExpand</code> function has been renamed to <a
+-href="/pkg/os/#ExpandEnv"><code>ExpandEnv</code></a>.
+-</p>
+-
+-<p>
+-The <a href="/pkg/os/#NewFile"><code>NewFile</code></a> function
+-now takes a <code>uintptr</code> fd, instead of an <code>int</code>.
+-The <a href="/pkg/os/#File.Fd"><code>Fd</code></a> method on files now
+-also returns a <code>uintptr</code>.
+-</p>
+-
+-<p>
+-There are no longer error constants such as <code>EINVAL</code>
+-in the <code>os</code> package, since the set of values varied with
+-the underlying operating system. There are new portable functions like
+-<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a>
+-to test common error properties, plus a few new error values
+-with more Go-like names, such as
+-<a href="/pkg/os/#ErrPermission"><code>ErrPermission</code></a>
+-and
+-<a href="/pkg/os/#ErrNoEnv"><code>ErrNoEnv</code></a>.
+-</p>
+-
+-<p>
+-The <code>Getenverror</code> function has been removed. To distinguish
+-between a non-existent environment variable and an empty string,
+-use <a href="/pkg/os/#Environ"><code>os.Environ</code></a> or
+-<a href="/pkg/syscall/#Getenv"><code>syscall.Getenv</code></a>.
+-</p>
+-
+-
+-<p>
+-The <a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a> method has
+-dropped its option argument and the associated constants are gone
+-from the package.
+-Also, the function <code>Wait</code> is gone; only the method of
+-the <code>Process</code> type persists.
+-</p>
+-
+-<p>
+-The <code>Waitmsg</code> type returned by
+-<a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a>
+-has been replaced with a more portable
+-<a href="/pkg/os/#ProcessState"><code>ProcessState</code></a>
+-type with accessor methods to recover information about the
+-process.
+-Because of changes to <code>Wait</code>, the <code>ProcessState</code>
+-value always describes an exited process.
+-Portability concerns simplified the interface in other ways, but the values returned by the
+-<a href="/pkg/os/#ProcessState.Sys"><code>ProcessState.Sys</code></a> and
+-<a href="/pkg/os/#ProcessState.SysUsage"><code>ProcessState.SysUsage</code></a>
+-methods can be type-asserted to underlying system-specific data structures such as
+-<a href="/pkg/syscall/#WaitStatus"><code>syscall.WaitStatus</code></a> and
+-<a href="/pkg/syscall/#Rusage"><code>syscall.Rusage</code></a> on Unix.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will drop a zero argument to <code>Process.Wait</code>.
+-All other changes will be caught by the compiler and must be updated by hand.
+-</p>
+-
+-<h4 id="os_fileinfo">The os.FileInfo type</h4>
+-
+-<p>
+-Go 1 redefines the <a href="/pkg/os/#FileInfo"><code>os.FileInfo</code></a> type,
+-changing it from a struct to an interface:
+-</p>
+-
+-<pre>
+-    type FileInfo interface {
+-        Name() string       // base name of the file
+-        Size() int64        // length in bytes
+-        Mode() FileMode     // file mode bits
+-        ModTime() time.Time // modification time
+-        IsDir() bool        // abbreviation for Mode().IsDir()
+-        Sys() interface{}   // underlying data source (can return nil)
+-    }
+-</pre>
+-
+-<p>
+-The file mode information has been moved into a subtype called
+-<a href="/pkg/os/#FileMode"><code>os.FileMode</code></a>,
+-a simple integer type with <code>IsDir</code>, <code>Perm</code>, and <code>String</code>
+-methods.
+-</p>
+-
+-<p>
+-The system-specific details of file modes and properties such as (on Unix)
+-i-number have been removed from <code>FileInfo</code> altogether.
+-Instead, each operating system's <code>os</code> package provides an
+-implementation of the <code>FileInfo</code> interface, which
+-has a <code>Sys</code> method that returns the
+-system-specific representation of file metadata.
+-For instance, to discover the i-number of a file on a Unix system, unpack
+-the <code>FileInfo</code> like this:
+-</p>
+-
+-<pre>
+-    fi, err := os.Stat("hello.go")
+-    if err != nil {
+-        log.Fatal(err)
+-    }
+-    // Check that it's a Unix file.
+-    unixStat, ok := fi.Sys().(*syscall.Stat_t)
+-    if !ok {
+-        log.Fatal("hello.go: not a Unix file")
+-    }
+-    fmt.Printf("file i-number: %d\n", unixStat.Ino)
+-</pre>
+-
+-<p>
+-Assuming (which is unwise) that <code>"hello.go"</code> is a Unix file,
+-the i-number expression could be contracted to
+-</p>
+-
+-<pre>
+-    fi.Sys().(*syscall.Stat_t).Ino
+-</pre>
+-
+-<p>
+-The vast majority of uses of <code>FileInfo</code> need only the methods
+-of the standard interface.
+-</p>
+-
+-<p>
+-The <code>os</code> package no longer contains wrappers for the POSIX errors
+-such as <code>ENOENT</code>.
+-For the few programs that need to verify particular error conditions, there are
+-now the boolean functions
+-<a href="/pkg/os/#IsExist"><code>IsExist</code></a>,
+-<a href="/pkg/os/#IsNotExist"><code>IsNotExist</code></a>
+-and
+-<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a>.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/os\.Open/` `/}/`}}
+--->    f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600)
+-    if os.IsExist(err) {
+-        log.Printf(&#34;%s already exists&#34;, name)
+-    }</pre>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update code that uses the old equivalent of the current <code>os.FileInfo</code>
+-and <code>os.FileMode</code> API.
+-Code that needs system-specific file details will need to be updated by hand.
+-Code that uses the old POSIX error values from the <code>os</code> package
+-will fail to compile and will also need to be updated by hand.
+-</p>
+-
+-<h3 id="os_signal">The os/signal package</h3>
+-
+-<p>
+-The <code>os/signal</code> package in Go 1 replaces the
+-<code>Incoming</code> function, which returned a channel
+-that received all incoming signals,
+-with the selective <code>Notify</code> function, which asks
+-for delivery of specific signals on an existing channel.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code must be updated by hand.
+-A literal translation of
+-</p>
+-<pre>
+-c := signal.Incoming()
+-</pre>
+-<p>
+-is
+-</p>
+-<pre>
+-c := make(chan os.Signal)
+-signal.Notify(c) // ask for all signals
+-</pre>
+-<p>
+-but most code should list the specific signals it wants to handle instead:
+-</p>
+-<pre>
+-c := make(chan os.Signal)
+-signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT)
+-</pre>
+-
+-<h3 id="path_filepath">The path/filepath package</h3>
+-
+-<p>
+-In Go 1, the <a href="/pkg/path/filepath/#Walk"><code>Walk</code></a> function of the
+-<code>path/filepath</code> package
+-has been changed to take a function value of type
+-<a href="/pkg/path/filepath/#WalkFunc"><code>WalkFunc</code></a>
+-instead of a <code>Visitor</code> interface value.
+-<code>WalkFunc</code> unifies the handling of both files and directories.
+-</p>
+-
+-<pre>
+-    type WalkFunc func(path string, info os.FileInfo, err error) error
+-</pre>
+-
+-<p>
+-The <code>WalkFunc</code> function will be called even for files or directories that could not be opened;
+-in such cases the error argument will describe the failure.
+-If a directory's contents are to be skipped,
+-the function should return the value <a href="/pkg/path/filepath/#variables"><code>filepath.SkipDir</code></a>
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/STARTWALK/` `/ENDWALK/`}}
+--->    markFn := func(path string, info os.FileInfo, err error) error {
+-        if path == &#34;pictures&#34; { <span class="comment">// Will skip walking of directory pictures and its contents.</span>
+-            return filepath.SkipDir
+-        }
+-        if err != nil {
+-            return err
+-        }
+-        log.Println(path)
+-        return nil
+-    }
+-    err := filepath.Walk(&#34;.&#34;, markFn)
+-    if err != nil {
+-        log.Fatal(err)
+-    }</pre>
+-
+-<p>
+-<em>Updating</em>:
+-The change simplifies most code but has subtle consequences, so affected programs
+-will need to be updated by hand.
+-The compiler will catch code using the old interface.
+-</p>
+-
+-<h3 id="regexp">The regexp package</h3>
+-
+-<p>
+-The <a href="/pkg/regexp/"><code>regexp</code></a> package has been rewritten.
+-It has the same interface but the specification of the regular expressions
+-it supports has changed from the old "egrep" form to that of
+-<a href="http://code.google.com/p/re2/">RE2</a>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code that uses the package should have its regular expressions checked by hand.
+-</p>
+-
+-<h3 id="runtime">The runtime package</h3>
+-
+-<p>
+-In Go 1, much of the API exported by package
+-<code>runtime</code> has been removed in favor of
+-functionality provided by other packages.
+-Code using the <code>runtime.Type</code> interface
+-or its specific concrete type implementations should
+-now use package <a href="/pkg/reflect/"><code>reflect</code></a>.
+-Code using <code>runtime.Semacquire</code> or <code>runtime.Semrelease</code>
+-should use channels or the abstractions in package <a href="/pkg/sync/"><code>sync</code></a>.
+-The <code>runtime.Alloc</code>, <code>runtime.Free</code>,
+-and <code>runtime.Lookup</code> functions, an unsafe API created for
+-debugging the memory allocator, have no replacement.
+-</p>
+-
+-<p>
+-Before, <code>runtime.MemStats</code> was a global variable holding
+-statistics about memory allocation, and calls to <code>runtime.UpdateMemStats</code>
+-ensured that it was up to date.
+-In Go 1, <code>runtime.MemStats</code> is a struct type, and code should use
+-<a href="/pkg/runtime/#ReadMemStats"><code>runtime.ReadMemStats</code></a>
+-to obtain the current statistics.
+-</p>
+-
+-<p>
+-The package adds a new function,
+-<a href="/pkg/runtime/#NumCPU"><code>runtime.NumCPU</code></a>, that returns the number of CPUs available
+-for parallel execution, as reported by the operating system kernel.
+-Its value can inform the setting of <code>GOMAXPROCS</code>.
+-The <code>runtime.Cgocalls</code> and <code>runtime.Goroutines</code> functions
+-have been renamed to <code>runtime.NumCgoCall</code> and <code>runtime.NumGoroutine</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update code for the function renamings.
+-Other code will need to be updated by hand.
+-</p>
+-
+-<h3 id="strconv">The strconv package</h3>
+-
+-<p>
+-In Go 1, the
+-<a href="/pkg/strconv/"><code>strconv</code></a>
+-package has been significantly reworked to make it more Go-like and less C-like,
+-although <code>Atoi</code> lives on (it's similar to
+-<code>int(ParseInt(x, 10, 0))</code>, as does
+-<code>Itoa(x)</code> (<code>FormatInt(int64(x), 10)</code>).
+-There are also new variants of some of the functions that append to byte slices rather than
+-return strings, to allow control over allocation.
+-</p>
+-
+-<p>
+-This table summarizes the renamings; see the
+-<a href="/pkg/strconv/">package documentation</a>
+-for full details.
+-</p>
+-
+-<table class="codetable" frame="border" summary="strconv renames">
+-<colgroup align="left" width="50%"></colgroup>
+-<colgroup align="left" width="50%"></colgroup>
+-<tr>
+-<th align="left">Old call</th>
+-<th align="left">New call</th>
+-</tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Atob(x)</td> <td>ParseBool(x)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Atof32(x)</td> <td>ParseFloat(x, 32)§</td></tr>
+-<tr><td>Atof64(x)</td> <td>ParseFloat(x, 64)</td></tr>
+-<tr><td>AtofN(x, n)</td> <td>ParseFloat(x, n)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Atoi(x)</td> <td>Atoi(x)</td></tr>
+-<tr><td>Atoi(x)</td> <td>ParseInt(x, 10, 0)§</td></tr>
+-<tr><td>Atoi64(x)</td> <td>ParseInt(x, 10, 64)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Atoui(x)</td> <td>ParseUint(x, 10, 0)§</td></tr>
+-<tr><td>Atoui64(x)</td> <td>ParseUint(x, 10, 64)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Btoi64(x, b)</td> <td>ParseInt(x, b, 64)</td></tr>
+-<tr><td>Btoui64(x, b)</td> <td>ParseUint(x, b, 64)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Btoa(x)</td> <td>FormatBool(x)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Ftoa32(x, f, p)</td> <td>FormatFloat(float64(x), f, p, 32)</td></tr>
+-<tr><td>Ftoa64(x, f, p)</td> <td>FormatFloat(x, f, p, 64)</td></tr>
+-<tr><td>FtoaN(x, f, p, n)</td> <td>FormatFloat(x, f, p, n)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Itoa(x)</td> <td>Itoa(x)</td></tr>
+-<tr><td>Itoa(x)</td> <td>FormatInt(int64(x), 10)</td></tr>
+-<tr><td>Itoa64(x)</td> <td>FormatInt(x, 10)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Itob(x, b)</td> <td>FormatInt(int64(x), b)</td></tr>
+-<tr><td>Itob64(x, b)</td> <td>FormatInt(x, b)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Uitoa(x)</td> <td>FormatUint(uint64(x), 10)</td></tr>
+-<tr><td>Uitoa64(x)</td> <td>FormatUint(x, 10)</td></tr>
+-<tr>
+-<td colspan="2"><hr></td>
+-</tr>
+-<tr><td>Uitob(x, b)</td> <td>FormatUint(uint64(x), b)</td></tr>
+-<tr><td>Uitob64(x, b)</td> <td>FormatUint(x, b)</td></tr>
+-</table>
+-		
+-<p>
+-<em>Updating</em>:
+-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
+-<br>
+-§ <code>Atoi</code> persists but <code>Atoui</code> and <code>Atof32</code> do not, so
+-they may require
+-a cast that must be added by hand; the <code>go</code> <code>fix</code> tool will warn about it.
+-</p>
+-
+-
+-<h3 id="templates">The template packages</h3>
+-
+-<p>
+-The <code>template</code> and <code>exp/template/html</code> packages have moved to 
+-<a href="/pkg/text/template/"><code>text/template</code></a> and
+-<a href="/pkg/html/template/"><code>html/template</code></a>.
+-More significant, the interface to these packages has been simplified.
+-The template language is the same, but the concept of "template set" is gone
+-and the functions and methods of the packages have changed accordingly,
+-often by elimination.
+-</p>
+-
+-<p>
+-Instead of sets, a <code>Template</code> object
+-may contain multiple named template definitions,
+-in effect constructing
+-name spaces for template invocation.
+-A template can invoke any other template associated with it, but only those
+-templates associated with it.
+-The simplest way to associate templates is to parse them together, something
+-made easier with the new structure of the packages.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-The imports will be updated by fix tool.
+-Single-template uses will be otherwise be largely unaffected.
+-Code that uses multiple templates in concert will need to be updated by hand.
+-The <a href="/pkg/text/template/#examples">examples</a> in
+-the documentation for <code>text/template</code> can provide guidance.
+-</p>
+-
+-<h3 id="testing">The testing package</h3>
+-
+-<p>
+-The testing package has a type, <code>B</code>, passed as an argument to benchmark functions.
+-In Go 1, <code>B</code> has new methods, analogous to those of <code>T</code>, enabling
+-logging and failure reporting.
+-</p>
+-
+-<pre><!--{{code "/doc/progs/go1.go" `/func.*Benchmark/` `/^}/`}}
+--->func BenchmarkSprintf(b *testing.B) {
+-    <span class="comment">// Verify correctness before running benchmark.</span>
+-    b.StopTimer()
+-    got := fmt.Sprintf(&#34;%x&#34;, 23)
+-    const expect = &#34;17&#34;
+-    if expect != got {
+-        b.Fatalf(&#34;expected %q; got %q&#34;, expect, got)
+-    }
+-    b.StartTimer()
+-    for i := 0; i &lt; b.N; i++ {
+-        fmt.Sprintf(&#34;%x&#34;, 23)
+-    }
+-}</pre>
+-
+-<p>
+-<em>Updating</em>:
+-Existing code is unaffected, although benchmarks that use <code>println</code>
+-or <code>panic</code> should be updated to use the new methods.
+-</p>
+-
+-<h3 id="testing_script">The testing/script package</h3>
+-
+-<p>
+-The testing/script package has been deleted. It was a dreg.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-No code is likely to be affected.
+-</p>
+-
+-<h3 id="unsafe">The unsafe package</h3>
+-
+-<p>
+-In Go 1, the functions
+-<code>unsafe.Typeof</code>, <code>unsafe.Reflect</code>,
+-<code>unsafe.Unreflect</code>, <code>unsafe.New</code>, and
+-<code>unsafe.NewArray</code> have been removed;
+-they duplicated safer functionality provided by
+-package <a href="/pkg/reflect/"><code>reflect</code></a>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code using these functions must be rewritten to use
+-package <a href="/pkg/reflect/"><code>reflect</code></a>.
+-The changes to <a href="http://code.google.com/p/go/source/detail?r=2646dc956207">encoding/gob</a> and the <a href="http://code.google.com/p/goprotobuf/source/detail?r=5340ad310031">protocol buffer library</a>
+-may be helpful as examples.
+-</p>
+-
+-<h3 id="url">The url package</h3>
+-
+-<p>
+-In Go 1 several fields from the <a href="/pkg/net/url/#URL"><code>url.URL</code></a> type
+-were removed or replaced.
+-</p>
+-
+-<p>
+-The <a href="/pkg/net/url/#URL.String"><code>String</code></a> method now
+-predictably rebuilds an encoded URL string using all of <code>URL</code>'s
+-fields as necessary. The resulting string will also no longer have
+-passwords escaped.
+-</p>
+-
+-<p>
+-The <code>Raw</code> field has been removed. In most cases the <code>String</code>
+-method may be used in its place.
+-</p>
+-
+-<p>
+-The old <code>RawUserinfo</code> field is replaced by the <code>User</code>
+-field, of type <a href="/pkg/net/url/#Userinfo"><code>*net.Userinfo</code></a>.
+-Values of this type may be created using the new <a href="/pkg/net/url/#User"><code>net.User</code></a>
+-and <a href="/pkg/net/url/#UserPassword"><code>net.UserPassword</code></a>
+-functions. The <code>EscapeUserinfo</code> and <code>UnescapeUserinfo</code>
+-functions are also gone.
+-</p>
+-
+-<p>
+-The <code>RawAuthority</code> field has been removed. The same information is
+-available in the <code>Host</code> and <code>User</code> fields.
+-</p>
+-
+-<p>
+-The <code>RawPath</code> field and the <code>EncodedPath</code> method have
+-been removed. The path information in rooted URLs (with a slash following the
+-schema) is now available only in decoded form in the <code>Path</code> field.
+-Occasionally, the encoded data may be required to obtain information that
+-was lost in the decoding process. These cases must be handled by accessing
+-the data the URL was built from.
+-</p>
+-
+-<p>
+-URLs with non-rooted paths, such as <code>"mailto:dev at golang.org?subject=Hi"</code>,
+-are also handled differently. The <code>OpaquePath</code> boolean field has been
+-removed and a new <code>Opaque</code> string field introduced to hold the encoded
+-path for such URLs. In Go 1, the cited URL parses as:
+-</p>
+-
+-<pre>
+-    URL{
+-        Scheme: "mailto",
+-        Opaque: "dev at golang.org",
+-        RawQuery: "subject=Hi",
+-    }
+-</pre>
+-
+-<p>
+-A new <a href="/pkg/net/url/#URL.RequestURI"><code>RequestURI</code></a> method was
+-added to <code>URL</code>.
+-</p>
+-
+-<p>
+-The <code>ParseWithReference</code> function has been renamed to <code>ParseWithFragment</code>.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Code that uses the old fields will fail to compile and must be updated by hand.
+-The semantic changes make it difficult for the fix tool to update automatically.
+-</p>
+-
+-<h2 id="cmd_go">The go command</h2>
+-
+-<p>
+-Go 1 introduces the <a href="/cmd/go/">go command</a>, a tool for fetching,
+-building, and installing Go packages and commands. The <code>go</code> command
+-does away with makefiles, instead using Go source code to find dependencies and
+-determine build conditions. Most existing Go programs will no longer require
+-makefiles to be built.
+-</p>
+-
+-<p>
+-See <a href="/doc/code.html">How to Write Go Code</a> for a primer on the
+-<code>go</code> command and the <a href="/cmd/go/">go command documentation</a>
+-for the full details.
+-</p>
+-
+-<p>
+-<em>Updating</em>:
+-Projects that depend on the Go project's old makefile-based build
+-infrastructure (<code>Make.pkg</code>, <code>Make.cmd</code>, and so on) should
+-switch to using the <code>go</code> command for building Go code and, if
+-necessary, rewrite their makefiles to perform any auxiliary build tasks.
+-</p>
+-
+-<h2 id="cmd_cgo">The cgo command</h2>
+-
+-<p>
+-In Go 1, the <a href="/cmd/cgo">cgo command</a>
+-uses a different <code>_cgo_export.h</code>
+-file, which is generated for packages containing <code>//export</code> lines.
+-The <code>_cgo_export.h</code> file now begins with the C preamble comment,
+-so that exported function definitions can use types defined there.
+-This has the effect of compiling the preamble multiple times, so a
+-package using <code>//export</code> must not put function definitions
+-or variable initializations in the C preamble.
+-</p>
+-
+-<h2 id="releases">Packaged releases</h2>
+-
+-<p>
+-One of the most significant changes associated with Go 1 is the availability
+-of prepackaged, downloadable distributions.
+-They are available for many combinations of architecture and operating system
+-(including Windows) and the list will grow.
+-Installation details are described on the
+-<a href="/doc/install">Getting Started</a> page, while
+-the distributions themselves are listed on the
+-<a href="http://code.google.com/p/go/downloads/list">downloads page</a>.
+-
+-
+-</div>
+-
+-<div id="footer">
+-Build version go1.0.1.<br>
+-Except as <a href="http://code.google.com/policies.html#restrictions">noted</a>,
+-the content of this page is licensed under the
+-Creative Commons Attribution 3.0 License,
+-and code is licensed under a <a href="/LICENSE">BSD license</a>.<br>
+-<a href="/doc/tos.html">Terms of Service</a> | 
+-<a href="http://www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a>
+-</div>
+-
+-<script type="text/javascript">
+-(function() {
+-  var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;
+-  ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";
+-  var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s);
+-})();
+-</script>
+-</body>
+-<script type="text/javascript">
+-  (function() {
+-    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+-    po.src = 'https://apis.google.com/js/plusone.js';
+-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+-  })();
+-</script>
+-</html>
+-
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,194 +0,0 @@
+-#data
+-<a><p></a></p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|     <p>
+-|       <a>
+-
+-#data
+-<a>1<p>2</a>3</p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       "1"
+-|     <p>
+-|       <a>
+-|         "2"
+-|       "3"
+-
+-#data
+-<a>1<button>2</a>3</button>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       "1"
+-|     <button>
+-|       <a>
+-|         "2"
+-|       "3"
+-
+-#data
+-<a>1<b>2</a>3</b>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       "1"
+-|       <b>
+-|         "2"
+-|     <b>
+-|       "3"
+-
+-#data
+-<a>1<div>2<div>3</a>4</div>5</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       "1"
+-|     <div>
+-|       <a>
+-|         "2"
+-|       <div>
+-|         <a>
+-|           "3"
+-|         "4"
+-|       "5"
+-
+-#data
+-<table><a>1<p>2</a>3</p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       "1"
+-|     <p>
+-|       <a>
+-|         "2"
+-|       "3"
+-|     <table>
+-
+-#data
+-<b><b><a><p></a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <b>
+-|         <a>
+-|         <p>
+-|           <a>
+-
+-#data
+-<b><a><b><p></a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <a>
+-|         <b>
+-|       <b>
+-|         <p>
+-|           <a>
+-
+-#data
+-<a><b><b><p></a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <b>
+-|         <b>
+-|     <b>
+-|       <b>
+-|         <p>
+-|           <a>
+-
+-#data
+-<p>1<s id="A">2<b id="B">3</p>4</s>5</b>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       "1"
+-|       <s>
+-|         id="A"
+-|         "2"
+-|         <b>
+-|           id="B"
+-|           "3"
+-|     <s>
+-|       id="A"
+-|       <b>
+-|         id="B"
+-|         "4"
+-|     <b>
+-|       id="B"
+-|       "5"
+-
+-#data
+-<table><a>1<td>2</td>3</table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       "1"
+-|     <a>
+-|       "3"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "2"
+-
+-#data
+-<table>A<td>B</td>C</table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "AC"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "B"
+-
+-#data
+-<a><svg><tr><input></a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <svg svg>
+-|         <svg tr>
+-|           <svg input>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption02.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption02.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption02.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/adoption02.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,31 +0,0 @@
+-#data
+-<b>1<i>2<p>3</b>4
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "1"
+-|       <i>
+-|         "2"
+-|     <i>
+-|       <p>
+-|         <b>
+-|           "3"
+-|         "4"
+-
+-#data
+-<a><div><style></style><address><a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|     <div>
+-|       <a>
+-|         <style>
+-|       <address>
+-|         <a>
+-|         <a>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/comments01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/comments01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/comments01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/comments01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,135 +0,0 @@
+-#data
+-FOO<!-- BAR -->BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  BAR  -->
+-|     "BAZ"
+-
+-#data
+-FOO<!-- BAR --!>BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  BAR  -->
+-|     "BAZ"
+-
+-#data
+-FOO<!-- BAR --   >BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  BAR --   >BAZ -->
+-
+-#data
+-FOO<!-- BAR -- <QUX> -- MUX -->BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  BAR -- <QUX> -- MUX  -->
+-|     "BAZ"
+-
+-#data
+-FOO<!-- BAR -- <QUX> -- MUX --!>BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  BAR -- <QUX> -- MUX  -->
+-|     "BAZ"
+-
+-#data
+-FOO<!-- BAR -- <QUX> -- MUX -- >BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  BAR -- <QUX> -- MUX -- >BAZ -->
+-
+-#data
+-FOO<!---->BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  -->
+-|     "BAZ"
+-
+-#data
+-FOO<!--->BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  -->
+-|     "BAZ"
+-
+-#data
+-FOO<!-->BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!--  -->
+-|     "BAZ"
+-
+-#data
+-<?xml version="1.0">Hi
+-#errors
+-#document
+-| <!-- ?xml version="1.0" -->
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hi"
+-
+-#data
+-<?xml version="1.0">
+-#errors
+-#document
+-| <!-- ?xml version="1.0" -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<?xml version
+-#errors
+-#document
+-| <!-- ?xml version -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-FOO<!----->BAZ
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <!-- - -->
+-|     "BAZ"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/doctype01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/doctype01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/doctype01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/doctype01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,370 +0,0 @@
+-#data
+-<!DOCTYPE html>Hello
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!dOctYpE HtMl>Hello
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPEhtml>Hello
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE>Hello
+-#errors
+-#document
+-| <!DOCTYPE >
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE >Hello
+-#errors
+-#document
+-| <!DOCTYPE >
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato >Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato taco>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato taco "ddd>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato sYstEM>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato sYstEM    >Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE   potato       sYstEM  ggg>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato SYSTEM taco  >Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato SYSTEM 'taco"'>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato "" "taco"">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato SYSTEM "taco">Hello
+-#errors
+-#document
+-| <!DOCTYPE potato "" "taco">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato SYSTEM "tai'co">Hello
+-#errors
+-#document
+-| <!DOCTYPE potato "" "tai'co">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato SYSTEMtaco "ddd">Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato grass SYSTEM taco>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato pUbLIc>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato pUbLIc >Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato pUbLIcgoof>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato PUBLIC goof>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato PUBLIC "go'of">Hello
+-#errors
+-#document
+-| <!DOCTYPE potato "go'of" "">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato PUBLIC 'go'of'>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato "go" "">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato PUBLIC 'go:hh   of' >Hello
+-#errors
+-#document
+-| <!DOCTYPE potato "go:hh   of" "">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello
+-#errors
+-#document
+-| <!DOCTYPE potato "W3C-//dfdf" "">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+-   "http://www.w3.org/TR/html4/strict.dtd">Hello
+-#errors
+-#document
+-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE ...>Hello
+-#errors
+-#document
+-| <!DOCTYPE ...>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Hello"
+-
+-#data
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+-#errors
+-#document
+-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+-#errors
+-#document
+-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ 
+-<!-- internal declarations -->
+-]>
+-#errors
+-#document
+-| <!DOCTYPE root-element>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "]>"
+-
+-#data
+-<!DOCTYPE html PUBLIC
+-  "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+-    "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+-#errors
+-#document
+-| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body>
+-#errors
+-#document
+-| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "Mine!"
+-
+-#data
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
+-#errors
+-#document
+-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
+-#errors
+-#document
+-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
+-#errors
+-#document
+-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>
+-#errors
+-#document
+-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+-| <html>
+-|   <head>
+-|   <body>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,603 +0,0 @@
+-#data
+-FOO&gt;BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO>BAR"
+-
+-#data
+-FOO&gtBAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO>BAR"
+-
+-#data
+-FOO&gt BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO> BAR"
+-
+-#data
+-FOO&gt;;;BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO>;;BAR"
+-
+-#data
+-I'm &notit; I tell you
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "I'm ¬it; I tell you"
+-
+-#data
+-I'm &notin; I tell you
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "I'm ∉ I tell you"
+-
+-#data
+-FOO& BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO& BAR"
+-
+-#data
+-FOO&<BAR>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO&"
+-|     <bar>
+-
+-#data
+-FOO&&&&gt;BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO&&&>BAR"
+-
+-#data
+-FOO&#41;BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO)BAR"
+-
+-#data
+-FOO&#x41;BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOABAR"
+-
+-#data
+-FOO&#X41;BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOABAR"
+-
+-#data
+-FOO&#BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO&#BAR"
+-
+-#data
+-FOO&#ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO&#ZOO"
+-
+-#data
+-FOO&#xBAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOºR"
+-
+-#data
+-FOO&#xZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO&#xZOO"
+-
+-#data
+-FOO&#XZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO&#XZOO"
+-
+-#data
+-FOO&#41BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO)BAR"
+-
+-#data
+-FOO&#x41BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO䆺R"
+-
+-#data
+-FOO&#x41ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOAZOO"
+-
+-#data
+-FOO&#x0000;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO�ZOO"
+-
+-#data
+-FOO&#x0078;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOxZOO"
+-
+-#data
+-FOO&#x0079;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOyZOO"
+-
+-#data
+-FOO&#x0080;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO€ZOO"
+-
+-#data
+-FOO&#x0081;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOZOO"
+-
+-#data
+-FOO&#x0082;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO‚ZOO"
+-
+-#data
+-FOO&#x0083;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOƒZOO"
+-
+-#data
+-FOO&#x0084;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO„ZOO"
+-
+-#data
+-FOO&#x0085;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO…ZOO"
+-
+-#data
+-FOO&#x0086;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO†ZOO"
+-
+-#data
+-FOO&#x0087;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO‡ZOO"
+-
+-#data
+-FOO&#x0088;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOˆZOO"
+-
+-#data
+-FOO&#x0089;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO‰ZOO"
+-
+-#data
+-FOO&#x008A;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOŠZOO"
+-
+-#data
+-FOO&#x008B;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO‹ZOO"
+-
+-#data
+-FOO&#x008C;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOŒZOO"
+-
+-#data
+-FOO&#x008D;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOZOO"
+-
+-#data
+-FOO&#x008E;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOŽZOO"
+-
+-#data
+-FOO&#x008F;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOZOO"
+-
+-#data
+-FOO&#x0090;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOZOO"
+-
+-#data
+-FOO&#x0091;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO‘ZOO"
+-
+-#data
+-FOO&#x0092;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO’ZOO"
+-
+-#data
+-FOO&#x0093;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO“ZOO"
+-
+-#data
+-FOO&#x0094;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO”ZOO"
+-
+-#data
+-FOO&#x0095;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO•ZOO"
+-
+-#data
+-FOO&#x0096;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO–ZOO"
+-
+-#data
+-FOO&#x0097;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO—ZOO"
+-
+-#data
+-FOO&#x0098;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO˜ZOO"
+-
+-#data
+-FOO&#x0099;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO™ZOO"
+-
+-#data
+-FOO&#x009A;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOšZOO"
+-
+-#data
+-FOO&#x009B;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO›ZOO"
+-
+-#data
+-FOO&#x009C;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOœZOO"
+-
+-#data
+-FOO&#x009D;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOZOO"
+-
+-#data
+-FOO&#x009E;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOžZOO"
+-
+-#data
+-FOO&#x009F;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOŸZOO"
+-
+-#data
+-FOO&#x00A0;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO ZOO"
+-
+-#data
+-FOO&#xD7FF;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO퟿ZOO"
+-
+-#data
+-FOO&#xD800;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO�ZOO"
+-
+-#data
+-FOO&#xD801;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO�ZOO"
+-
+-#data
+-FOO&#xDFFE;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO�ZOO"
+-
+-#data
+-FOO&#xDFFF;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO�ZOO"
+-
+-#data
+-FOO&#xE000;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOOZOO"
+-
+-#data
+-FOO&#x10FFFE;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO􏿾ZOO"
+-
+-#data
+-FOO&#x1087D4;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO􈟔ZOO"
+-
+-#data
+-FOO&#x10FFFF;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO􏿿ZOO"
+-
+-#data
+-FOO&#x110000;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO�ZOO"
+-
+-#data
+-FOO&#xFFFFFF;ZOO
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO�ZOO"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities02.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities02.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities02.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/entities02.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,249 +0,0 @@
+-#data
+-<div bar="ZZ&gt;YY"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ>YY"
+-
+-#data
+-<div bar="ZZ&"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&"
+-
+-#data
+-<div bar='ZZ&'></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&"
+-
+-#data
+-<div bar=ZZ&></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&"
+-
+-#data
+-<div bar="ZZ&gt=YY"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&gt=YY"
+-
+-#data
+-<div bar="ZZ&gt0YY"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&gt0YY"
+-
+-#data
+-<div bar="ZZ&gt9YY"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&gt9YY"
+-
+-#data
+-<div bar="ZZ&gtaYY"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&gtaYY"
+-
+-#data
+-<div bar="ZZ&gtZYY"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&gtZYY"
+-
+-#data
+-<div bar="ZZ&gt YY"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ> YY"
+-
+-#data
+-<div bar="ZZ&gt"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ>"
+-
+-#data
+-<div bar='ZZ&gt'></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ>"
+-
+-#data
+-<div bar=ZZ&gt></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ>"
+-
+-#data
+-<div bar="ZZ&pound_id=23"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ£_id=23"
+-
+-#data
+-<div bar="ZZ&prod_id=23"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&prod_id=23"
+-
+-#data
+-<div bar="ZZ&pound;_id=23"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ£_id=23"
+-
+-#data
+-<div bar="ZZ&prod;_id=23"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ∏_id=23"
+-
+-#data
+-<div bar="ZZ&pound=23"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&pound=23"
+-
+-#data
+-<div bar="ZZ&prod=23"></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       bar="ZZ&prod=23"
+-
+-#data
+-<div>ZZ&pound_id=23</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "ZZ£_id=23"
+-
+-#data
+-<div>ZZ&prod_id=23</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "ZZ&prod_id=23"
+-
+-#data
+-<div>ZZ&pound;_id=23</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "ZZ£_id=23"
+-
+-#data
+-<div>ZZ&prod;_id=23</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "ZZ∏_id=23"
+-
+-#data
+-<div>ZZ&pound=23</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "ZZ£=23"
+-
+-#data
+-<div>ZZ&prod=23</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "ZZ&prod=23"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/html5test-com.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/html5test-com.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/html5test-com.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/html5test-com.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,246 +0,0 @@
+-#data
+-<div<div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div<div>
+-
+-#data
+-<div foo<bar=''>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       foo<bar=""
+-
+-#data
+-<div foo=`bar`>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       foo="`bar`"
+-
+-#data
+-<div \"foo=''>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       \"foo=""
+-
+-#data
+-<a href='\nbar'></a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       href="\nbar"
+-
+-#data
+-<!DOCTYPE html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-&lang;&rang;
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "⟨⟩"
+-
+-#data
+-&apos;
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "'"
+-
+-#data
+-&ImaginaryI;
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "ⅈ"
+-
+-#data
+-&Kopf;
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "𝕂"
+-
+-#data
+-&notinva;
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "∉"
+-
+-#data
+-<?import namespace="foo" implementation="#bar">
+-#errors
+-#document
+-| <!-- ?import namespace="foo" implementation="#bar" -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!--foo--bar-->
+-#errors
+-#document
+-| <!-- foo--bar -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<![CDATA[x]]>
+-#errors
+-#document
+-| <!-- [CDATA[x]] -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<textarea><!--</textarea>--></textarea>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "<!--"
+-|     "-->"
+-
+-#data
+-<textarea><!--</textarea>-->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "<!--"
+-|     "-->"
+-
+-#data
+-<style><!--</style>--></style>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<style><!--</style>-->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<ul><li>A </li> <li>B</li></ul>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ul>
+-|       <li>
+-|         "A "
+-|       " "
+-|       <li>
+-|         "B"
+-
+-#data
+-<table><form><input type=hidden><input></form><div></div></table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <input>
+-|     <div>
+-|     <table>
+-|       <form>
+-|       <input>
+-|         type="hidden"
+-
+-#data
+-<i>A<b>B<p></i>C</b>D
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <i>
+-|       "A"
+-|       <b>
+-|         "B"
+-|     <b>
+-|     <p>
+-|       <b>
+-|         <i>
+-|         "C"
+-|       "D"
+-
+-#data
+-<div></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-
+-#data
+-<svg></svg>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-
+-#data
+-<math></math>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/inbody01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/inbody01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/inbody01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/inbody01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,43 +0,0 @@
+-#data
+-<button>1</foo>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <button>
+-|       "1"
+-
+-#data
+-<foo>1<p>2</foo>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <foo>
+-|       "1"
+-|       <p>
+-|         "2"
+-
+-#data
+-<dd>1</foo>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <dd>
+-|       "1"
+-
+-#data
+-<foo>1<dd>2</foo>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <foo>
+-|       "1"
+-|       <dd>
+-|         "2"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/isindex.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/isindex.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/isindex.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/isindex.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,40 +0,0 @@
+-#data
+-<isindex>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <hr>
+-|       <label>
+-|         "This is a searchable index. Enter search keywords: "
+-|         <input>
+-|           name="isindex"
+-|       <hr>
+-
+-#data
+-<isindex name="A" action="B" prompt="C" foo="D">
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       action="B"
+-|       <hr>
+-|       <label>
+-|         "C"
+-|         <input>
+-|           foo="D"
+-|           name="isindex"
+-|       <hr>
+-
+-#data
+-<form><isindex>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/pending-spec-changes.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/pending-spec-changes.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/pending-spec-changes.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/pending-spec-changes.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,52 +0,0 @@
+-#data
+-<input type="hidden"><frameset>
+-#errors
+-21: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-31: “frameset” start tag seen.
+-31: End of file seen and there were open elements.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!DOCTYPE html><table><caption><svg>foo</table>bar
+-#errors
+-47: End tag “table” did not match the name of the current open element (“svg”).
+-47: “table” closed but “caption” was still open.
+-47: End tag “table” seen, but there were open elements.
+-36: Unclosed element “svg”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <svg svg>
+-|           "foo"
+-|     "bar"
+-
+-#data
+-<table><tr><td><svg><desc><td></desc><circle>
+-#errors
+-7: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-30: A table cell was implicitly closed, but there were open elements.
+-26: Unclosed element “desc”.
+-20: Unclosed element “svg”.
+-37: Stray end tag “desc”.
+-45: End of file seen and there were open elements.
+-45: Unclosed element “circle”.
+-7: Unclosed element “table”.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <svg svg>
+-|               <svg desc>
+-|           <td>
+-|             <circle>
+Binary files docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat and docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat differ
+Binary files docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/plain-text-unsafe.dat and docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/plain-text-unsafe.dat differ
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/README docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/README
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/README	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/README	1969-12-31 18:00:00.000000000 -0600
+@@ -1,28 +0,0 @@
+-The *.dat files in this directory are copied from The WebKit Open Source
+-Project, specifically $WEBKITROOT/LayoutTests/html5lib/resources.
+-WebKit is licensed under a BSD style license.
+-http://webkit.org/coding/bsd-license.html says:
+-
+-Copyright (C) 2009 Apple Inc. All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions are met:
+-
+-1. Redistributions of source code must retain the above copyright notice,
+-this list of conditions and the following disclaimer.
+-
+-2. Redistributions in binary form must reproduce the above copyright notice,
+-this list of conditions and the following disclaimer in the documentation
+-and/or other materials provided with the distribution.
+-
+-THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS "AS IS" AND ANY
+-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+-DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scriptdata01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scriptdata01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scriptdata01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scriptdata01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,308 +0,0 @@
+-#data
+-FOO<script>'Hello'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'Hello'"
+-|     "BAR"
+-
+-#data
+-FOO<script></script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|     "BAR"
+-
+-#data
+-FOO<script></script >BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|     "BAR"
+-
+-#data
+-FOO<script></script/>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|     "BAR"
+-
+-#data
+-FOO<script></script/ >BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|     "BAR"
+-
+-#data
+-FOO<script type="text/plain"></scriptx>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "</scriptx>BAR"
+-
+-#data
+-FOO<script></script foo=">" dd>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|     "BAR"
+-
+-#data
+-FOO<script>'<'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!-'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!-'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!--'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!--'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!---'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!---'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!-->'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!-->'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!-->'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!-->'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!-- potato'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!-- potato'"
+-|     "BAR"
+-
+-#data
+-FOO<script>'<!-- <sCrIpt'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!-- <sCrIpt'"
+-|     "BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt>'</script>BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt> -'</script>BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt> --'</script>BAR"
+-
+-#data
+-FOO<script>'<!-- <sCrIpt> -->'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       "'<!-- <sCrIpt> -->'"
+-|     "BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt> --!>'</script>BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt> -- >'</script>BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt '</script>BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt/'</script>BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt\'"
+-|     "BAR"
+-
+-#data
+-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "FOO"
+-|     <script>
+-|       type="text/plain"
+-|       "'<!-- <sCrIpt/'</script>BAR"
+-|     "QUX"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/adoption01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/adoption01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/adoption01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/adoption01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,15 +0,0 @@
+-#data
+-<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <b>
+-|         id="B"
+-|         <script>
+-|           "document.getElementById("A").id = "B""
+-|     <b>
+-|       id="A"
+-|       "TEXT"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/webkit01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/webkit01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/webkit01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/scripted/webkit01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,28 +0,0 @@
+-#data
+-1<script>document.write("2")</script>3
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "1"
+-|     <script>
+-|       "document.write("2")"
+-|     "23"
+-
+-#data
+-1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "1"
+-|     <script>
+-|       "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")"
+-|     <script>
+-|       "document.write('2')"
+-|     "2"
+-|     <script>
+-|       "document.write('3')"
+-|     "34"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tables01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tables01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tables01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tables01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,212 +0,0 @@
+-#data
+-<table><th>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <th>
+-
+-#data
+-<table><td>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<table><col foo='bar'>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <colgroup>
+-|         <col>
+-|           foo="bar"
+-
+-#data
+-<table><colgroup></html>foo
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "foo"
+-|     <table>
+-|       <colgroup>
+-
+-#data
+-<table></table><p>foo
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|     <p>
+-|       "foo"
+-
+-#data
+-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<table><select><option>3</select></table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-|         "3"
+-|     <table>
+-
+-#data
+-<table><select><table></table></select></table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|     <table>
+-|     <table>
+-
+-#data
+-<table><select></table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|     <table>
+-
+-#data
+-<table><select><option>A<tr><td>B</td></tr></table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-|         "A"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "B"
+-
+-#data
+-<table><td></body></caption></col></colgroup></html>foo
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "foo"
+-
+-#data
+-<table><td>A</table>B
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "A"
+-|     "B"
+-
+-#data
+-<table><tr><caption>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|       <caption>
+-
+-#data
+-<table><tr></body></caption></col></colgroup></html></td></th><td>foo
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "foo"
+-
+-#data
+-<table><td><tr>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|         <tr>
+-
+-#data
+-<table><td><button><td>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <button>
+-|           <td>
+-
+-#data
+-<table><tr><td><svg><desc><td>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <svg svg>
+-|               <svg desc>
+-|           <td>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests10.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests10.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests10.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests10.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,799 +0,0 @@
+-#data
+-<!DOCTYPE html><svg></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-
+-#data
+-<!DOCTYPE html><svg></svg><![CDATA[a]]>
+-#errors
+-29: Bogus comment
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|     <!-- [CDATA[a]] -->
+-
+-#data
+-<!DOCTYPE html><body><svg></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-
+-#data
+-<!DOCTYPE html><body><select><svg></svg></select>
+-#errors
+-35: Stray “svg” start tag.
+-42: Stray end tag “svg”
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!DOCTYPE html><body><select><option><svg></svg></option></select>
+-#errors
+-43: Stray “svg” start tag.
+-50: Stray end tag “svg”
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-
+-#data
+-<!DOCTYPE html><body><table><svg></svg></table>
+-#errors
+-34: Start tag “svg” seen in “table”.
+-41: Stray end tag “svg”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|     <table>
+-
+-#data
+-<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>
+-#errors
+-34: Start tag “svg” seen in “table”.
+-46: Stray end tag “g”.
+-53: Stray end tag “svg”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg g>
+-|         "foo"
+-|     <table>
+-
+-#data
+-<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>
+-#errors
+-34: Start tag “svg” seen in “table”.
+-46: Stray end tag “g”.
+-58: Stray end tag “g”.
+-65: Stray end tag “svg”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg g>
+-|         "foo"
+-|       <svg g>
+-|         "bar"
+-|     <table>
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>
+-#errors
+-41: Start tag “svg” seen in “table”.
+-53: Stray end tag “g”.
+-65: Stray end tag “g”.
+-72: Stray end tag “svg”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg g>
+-|         "foo"
+-|       <svg g>
+-|         "bar"
+-|     <table>
+-|       <tbody>
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>
+-#errors
+-45: Start tag “svg” seen in “table”.
+-57: Stray end tag “g”.
+-69: Stray end tag “g”.
+-76: Stray end tag “svg”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg g>
+-|         "foo"
+-|       <svg g>
+-|         "bar"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <svg svg>
+-|               <svg g>
+-|                 "foo"
+-|               <svg g>
+-|                 "bar"
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <svg svg>
+-|               <svg g>
+-|                 "foo"
+-|               <svg g>
+-|                 "bar"
+-|             <p>
+-|               "baz"
+-
+-#data
+-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <svg svg>
+-|           <svg g>
+-|             "foo"
+-|           <svg g>
+-|             "bar"
+-|         <p>
+-|           "baz"
+-
+-#data
+-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
+-#errors
+-70: HTML start tag “p” in a foreign namespace context.
+-81: “table” closed but “caption” was still open.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <svg svg>
+-|           <svg g>
+-|             "foo"
+-|           <svg g>
+-|             "bar"
+-|         <p>
+-|           "baz"
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux
+-#errors
+-78: “table” closed but “caption” was still open.
+-78: Unclosed elements on stack.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <svg svg>
+-|           <svg g>
+-|             "foo"
+-|           <svg g>
+-|             "bar"
+-|           "baz"
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
+-#errors
+-44: Start tag “svg” seen in “table”.
+-56: Stray end tag “g”.
+-68: Stray end tag “g”.
+-71: HTML start tag “p” in a foreign namespace context.
+-71: Start tag “p” seen in “table”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg g>
+-|         "foo"
+-|       <svg g>
+-|         "bar"
+-|     <p>
+-|       "baz"
+-|     <table>
+-|       <colgroup>
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
+-#errors
+-50: Stray “svg” start tag.
+-54: Stray “g” start tag.
+-62: Stray end tag “g”
+-66: Stray “g” start tag.
+-74: Stray end tag “g”
+-77: Stray “p” start tag.
+-88: “table” end tag with “select” open.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <select>
+-|               "foobarbaz"
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
+-#errors
+-36: Start tag “select” seen in “table”.
+-42: Stray “svg” start tag.
+-46: Stray “g” start tag.
+-54: Stray end tag “g”
+-58: Stray “g” start tag.
+-66: Stray end tag “g”
+-69: Stray “p” start tag.
+-80: “table” end tag with “select” open.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       "foobarbaz"
+-|     <table>
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz
+-#errors
+-41: Stray “svg” start tag.
+-68: HTML start tag “p” in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg g>
+-|         "foo"
+-|       <svg g>
+-|         "bar"
+-|     <p>
+-|       "baz"
+-
+-#data
+-<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz
+-#errors
+-34: Stray “svg” start tag.
+-61: HTML start tag “p” in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg g>
+-|         "foo"
+-|       <svg g>
+-|         "bar"
+-|     <p>
+-|       "baz"
+-
+-#data
+-<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>
+-#errors
+-31: Stray “svg” start tag.
+-35: Stray “g” start tag.
+-40: Stray end tag “g”
+-44: Stray “g” start tag.
+-49: Stray end tag “g”
+-52: Stray “p” start tag.
+-58: Stray “span” start tag.
+-58: End of file seen and there were open elements.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>
+-#errors
+-42: Stray “svg” start tag.
+-46: Stray “g” start tag.
+-51: Stray end tag “g”
+-55: Stray “g” start tag.
+-60: Stray end tag “g”
+-63: Stray “p” start tag.
+-69: Stray “span” start tag.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     <svg svg>
+-|       xlink href="foo"
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     xml:lang="en"
+-|     <svg svg>
+-|       <svg g>
+-|         xlink href="foo"
+-|         xml lang="en"
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     xml:lang="en"
+-|     <svg svg>
+-|       <svg g>
+-|         xlink href="foo"
+-|         xml lang="en"
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     xml:lang="en"
+-|     <svg svg>
+-|       <svg g>
+-|         xlink href="foo"
+-|         xml lang="en"
+-|       "bar"
+-
+-#data
+-<svg></path>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-
+-#data
+-<div><svg></div>a
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <svg svg>
+-|     "a"
+-
+-#data
+-<div><svg><path></div>a
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <svg svg>
+-|         <svg path>
+-|     "a"
+-
+-#data
+-<div><svg><path></svg><path>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <svg svg>
+-|         <svg path>
+-|       <path>
+-
+-#data
+-<div><svg><path><foreignObject><math></div>a
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <svg svg>
+-|         <svg path>
+-|           <svg foreignObject>
+-|             <math math>
+-|               "a"
+-
+-#data
+-<div><svg><path><foreignObject><p></div>a
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <svg svg>
+-|         <svg path>
+-|           <svg foreignObject>
+-|             <p>
+-|               "a"
+-
+-#data
+-<!DOCTYPE html><svg><desc><div><svg><ul>a
+-#errors
+-40: HTML start tag “ul” in a foreign namespace context.
+-41: End of file in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg desc>
+-|         <div>
+-|           <svg svg>
+-|           <ul>
+-|             "a"
+-
+-#data
+-<!DOCTYPE html><svg><desc><svg><ul>a
+-#errors
+-35: HTML start tag “ul” in a foreign namespace context.
+-36: End of file in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg desc>
+-|         <svg svg>
+-|         <ul>
+-|           "a"
+-
+-#data
+-<!DOCTYPE html><p><svg><desc><p>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <svg svg>
+-|         <svg desc>
+-|           <p>
+-
+-#data
+-<!DOCTYPE html><p><svg><title><p>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <svg svg>
+-|         <svg title>
+-|           <p>
+-
+-#data
+-<div><svg><path><foreignObject><p></foreignObject><p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <svg svg>
+-|         <svg path>
+-|           <svg foreignObject>
+-|             <p>
+-|             <p>
+-
+-#data
+-<math><mi><div><object><div><span></span></div></object></div></mi><mi>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         <div>
+-|           <object>
+-|             <div>
+-|               <span>
+-|       <math mi>
+-
+-#data
+-<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         <svg svg>
+-|           <svg foreignObject>
+-|             <div>
+-|               <div>
+-|       <math mi>
+-
+-#data
+-<svg><script></script><path>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg script>
+-|       <svg path>
+-
+-#data
+-<table><svg></svg><tr>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<math><mi><mglyph>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         <math mglyph>
+-
+-#data
+-<math><mi><malignmark>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         <math malignmark>
+-
+-#data
+-<math><mo><mglyph>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mo>
+-|         <math mglyph>
+-
+-#data
+-<math><mo><malignmark>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mo>
+-|         <math malignmark>
+-
+-#data
+-<math><mn><mglyph>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mn>
+-|         <math mglyph>
+-
+-#data
+-<math><mn><malignmark>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mn>
+-|         <math malignmark>
+-
+-#data
+-<math><ms><mglyph>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math ms>
+-|         <math mglyph>
+-
+-#data
+-<math><ms><malignmark>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math ms>
+-|         <math malignmark>
+-
+-#data
+-<math><mtext><mglyph>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mtext>
+-|         <math mglyph>
+-
+-#data
+-<math><mtext><malignmark>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mtext>
+-|         <math malignmark>
+-
+-#data
+-<math><annotation-xml><svg></svg></annotation-xml><mi>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         <svg svg>
+-|       <math mi>
+-
+-#data
+-<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         <svg svg>
+-|           <svg foreignObject>
+-|             <div>
+-|               <math math>
+-|                 <math mi>
+-|               <span>
+-|           <svg path>
+-|       <math mi>
+-
+-#data
+-<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         <svg svg>
+-|           <svg foreignObject>
+-|             <math math>
+-|               <math mi>
+-|                 <svg svg>
+-|               <math mo>
+-|             <span>
+-|           <svg path>
+-|       <math mi>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests11.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests11.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests11.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests11.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,482 +0,0 @@
+-#data
+-<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelecto
 r='' yChannelSelector='' zoomAndPan=''></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       attributeName=""
+-|       attributeType=""
+-|       baseFrequency=""
+-|       baseProfile=""
+-|       calcMode=""
+-|       clipPathUnits=""
+-|       contentScriptType=""
+-|       contentStyleType=""
+-|       diffuseConstant=""
+-|       edgeMode=""
+-|       externalResourcesRequired=""
+-|       filterRes=""
+-|       filterUnits=""
+-|       glyphRef=""
+-|       gradientTransform=""
+-|       gradientUnits=""
+-|       kernelMatrix=""
+-|       kernelUnitLength=""
+-|       keyPoints=""
+-|       keySplines=""
+-|       keyTimes=""
+-|       lengthAdjust=""
+-|       limitingConeAngle=""
+-|       markerHeight=""
+-|       markerUnits=""
+-|       markerWidth=""
+-|       maskContentUnits=""
+-|       maskUnits=""
+-|       numOctaves=""
+-|       pathLength=""
+-|       patternContentUnits=""
+-|       patternTransform=""
+-|       patternUnits=""
+-|       pointsAtX=""
+-|       pointsAtY=""
+-|       pointsAtZ=""
+-|       preserveAlpha=""
+-|       preserveAspectRatio=""
+-|       primitiveUnits=""
+-|       refX=""
+-|       refY=""
+-|       repeatCount=""
+-|       repeatDur=""
+-|       requiredExtensions=""
+-|       requiredFeatures=""
+-|       specularConstant=""
+-|       specularExponent=""
+-|       spreadMethod=""
+-|       startOffset=""
+-|       stdDeviation=""
+-|       stitchTiles=""
+-|       surfaceScale=""
+-|       systemLanguage=""
+-|       tableValues=""
+-|       targetX=""
+-|       targetY=""
+-|       textLength=""
+-|       viewBox=""
+-|       viewTarget=""
+-|       xChannelSelector=""
+-|       yChannelSelector=""
+-|       zoomAndPan=""
+-
+-#data
+-<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTO
 R='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       attributeName=""
+-|       attributeType=""
+-|       baseFrequency=""
+-|       baseProfile=""
+-|       calcMode=""
+-|       clipPathUnits=""
+-|       contentScriptType=""
+-|       contentStyleType=""
+-|       diffuseConstant=""
+-|       edgeMode=""
+-|       externalResourcesRequired=""
+-|       filterRes=""
+-|       filterUnits=""
+-|       glyphRef=""
+-|       gradientTransform=""
+-|       gradientUnits=""
+-|       kernelMatrix=""
+-|       kernelUnitLength=""
+-|       keyPoints=""
+-|       keySplines=""
+-|       keyTimes=""
+-|       lengthAdjust=""
+-|       limitingConeAngle=""
+-|       markerHeight=""
+-|       markerUnits=""
+-|       markerWidth=""
+-|       maskContentUnits=""
+-|       maskUnits=""
+-|       numOctaves=""
+-|       pathLength=""
+-|       patternContentUnits=""
+-|       patternTransform=""
+-|       patternUnits=""
+-|       pointsAtX=""
+-|       pointsAtY=""
+-|       pointsAtZ=""
+-|       preserveAlpha=""
+-|       preserveAspectRatio=""
+-|       primitiveUnits=""
+-|       refX=""
+-|       refY=""
+-|       repeatCount=""
+-|       repeatDur=""
+-|       requiredExtensions=""
+-|       requiredFeatures=""
+-|       specularConstant=""
+-|       specularExponent=""
+-|       spreadMethod=""
+-|       startOffset=""
+-|       stdDeviation=""
+-|       stitchTiles=""
+-|       surfaceScale=""
+-|       systemLanguage=""
+-|       tableValues=""
+-|       targetX=""
+-|       targetY=""
+-|       textLength=""
+-|       viewBox=""
+-|       viewTarget=""
+-|       xChannelSelector=""
+-|       yChannelSelector=""
+-|       zoomAndPan=""
+-
+-#data
+-<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselecto
 r='' ychannelselector='' zoomandpan=''></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       attributeName=""
+-|       attributeType=""
+-|       baseFrequency=""
+-|       baseProfile=""
+-|       calcMode=""
+-|       clipPathUnits=""
+-|       contentScriptType=""
+-|       contentStyleType=""
+-|       diffuseConstant=""
+-|       edgeMode=""
+-|       externalResourcesRequired=""
+-|       filterRes=""
+-|       filterUnits=""
+-|       glyphRef=""
+-|       gradientTransform=""
+-|       gradientUnits=""
+-|       kernelMatrix=""
+-|       kernelUnitLength=""
+-|       keyPoints=""
+-|       keySplines=""
+-|       keyTimes=""
+-|       lengthAdjust=""
+-|       limitingConeAngle=""
+-|       markerHeight=""
+-|       markerUnits=""
+-|       markerWidth=""
+-|       maskContentUnits=""
+-|       maskUnits=""
+-|       numOctaves=""
+-|       pathLength=""
+-|       patternContentUnits=""
+-|       patternTransform=""
+-|       patternUnits=""
+-|       pointsAtX=""
+-|       pointsAtY=""
+-|       pointsAtZ=""
+-|       preserveAlpha=""
+-|       preserveAspectRatio=""
+-|       primitiveUnits=""
+-|       refX=""
+-|       refY=""
+-|       repeatCount=""
+-|       repeatDur=""
+-|       requiredExtensions=""
+-|       requiredFeatures=""
+-|       specularConstant=""
+-|       specularExponent=""
+-|       spreadMethod=""
+-|       startOffset=""
+-|       stdDeviation=""
+-|       stitchTiles=""
+-|       surfaceScale=""
+-|       systemLanguage=""
+-|       tableValues=""
+-|       targetX=""
+-|       targetY=""
+-|       textLength=""
+-|       viewBox=""
+-|       viewTarget=""
+-|       xChannelSelector=""
+-|       yChannelSelector=""
+-|       zoomAndPan=""
+-
+-#data
+-<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelect
 or='' yChannelSelector='' zoomAndPan=''></math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       attributename=""
+-|       attributetype=""
+-|       basefrequency=""
+-|       baseprofile=""
+-|       calcmode=""
+-|       clippathunits=""
+-|       contentscripttype=""
+-|       contentstyletype=""
+-|       diffuseconstant=""
+-|       edgemode=""
+-|       externalresourcesrequired=""
+-|       filterres=""
+-|       filterunits=""
+-|       glyphref=""
+-|       gradienttransform=""
+-|       gradientunits=""
+-|       kernelmatrix=""
+-|       kernelunitlength=""
+-|       keypoints=""
+-|       keysplines=""
+-|       keytimes=""
+-|       lengthadjust=""
+-|       limitingconeangle=""
+-|       markerheight=""
+-|       markerunits=""
+-|       markerwidth=""
+-|       maskcontentunits=""
+-|       maskunits=""
+-|       numoctaves=""
+-|       pathlength=""
+-|       patterncontentunits=""
+-|       patterntransform=""
+-|       patternunits=""
+-|       pointsatx=""
+-|       pointsaty=""
+-|       pointsatz=""
+-|       preservealpha=""
+-|       preserveaspectratio=""
+-|       primitiveunits=""
+-|       refx=""
+-|       refy=""
+-|       repeatcount=""
+-|       repeatdur=""
+-|       requiredextensions=""
+-|       requiredfeatures=""
+-|       specularconstant=""
+-|       specularexponent=""
+-|       spreadmethod=""
+-|       startoffset=""
+-|       stddeviation=""
+-|       stitchtiles=""
+-|       surfacescale=""
+-|       systemlanguage=""
+-|       tablevalues=""
+-|       targetx=""
+-|       targety=""
+-|       textlength=""
+-|       viewbox=""
+-|       viewtarget=""
+-|       xchannelselector=""
+-|       ychannelselector=""
+-|       zoomandpan=""
+-
+-#data
+-<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg altGlyph>
+-|       <svg altGlyphDef>
+-|       <svg altGlyphItem>
+-|       <svg animateColor>
+-|       <svg animateMotion>
+-|       <svg animateTransform>
+-|       <svg clipPath>
+-|       <svg feBlend>
+-|       <svg feColorMatrix>
+-|       <svg feComponentTransfer>
+-|       <svg feComposite>
+-|       <svg feConvolveMatrix>
+-|       <svg feDiffuseLighting>
+-|       <svg feDisplacementMap>
+-|       <svg feDistantLight>
+-|       <svg feFlood>
+-|       <svg feFuncA>
+-|       <svg feFuncB>
+-|       <svg feFuncG>
+-|       <svg feFuncR>
+-|       <svg feGaussianBlur>
+-|       <svg feImage>
+-|       <svg feMerge>
+-|       <svg feMergeNode>
+-|       <svg feMorphology>
+-|       <svg feOffset>
+-|       <svg fePointLight>
+-|       <svg feSpecularLighting>
+-|       <svg feSpotLight>
+-|       <svg feTile>
+-|       <svg feTurbulence>
+-|       <svg foreignObject>
+-|       <svg glyphRef>
+-|       <svg linearGradient>
+-|       <svg radialGradient>
+-|       <svg textPath>
+-
+-#data
+-<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg altGlyph>
+-|       <svg altGlyphDef>
+-|       <svg altGlyphItem>
+-|       <svg animateColor>
+-|       <svg animateMotion>
+-|       <svg animateTransform>
+-|       <svg clipPath>
+-|       <svg feBlend>
+-|       <svg feColorMatrix>
+-|       <svg feComponentTransfer>
+-|       <svg feComposite>
+-|       <svg feConvolveMatrix>
+-|       <svg feDiffuseLighting>
+-|       <svg feDisplacementMap>
+-|       <svg feDistantLight>
+-|       <svg feFlood>
+-|       <svg feFuncA>
+-|       <svg feFuncB>
+-|       <svg feFuncG>
+-|       <svg feFuncR>
+-|       <svg feGaussianBlur>
+-|       <svg feImage>
+-|       <svg feMerge>
+-|       <svg feMergeNode>
+-|       <svg feMorphology>
+-|       <svg feOffset>
+-|       <svg fePointLight>
+-|       <svg feSpecularLighting>
+-|       <svg feSpotLight>
+-|       <svg feTile>
+-|       <svg feTurbulence>
+-|       <svg foreignObject>
+-|       <svg glyphRef>
+-|       <svg linearGradient>
+-|       <svg radialGradient>
+-|       <svg textPath>
+-
+-#data
+-<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg altGlyph>
+-|       <svg altGlyphDef>
+-|       <svg altGlyphItem>
+-|       <svg animateColor>
+-|       <svg animateMotion>
+-|       <svg animateTransform>
+-|       <svg clipPath>
+-|       <svg feBlend>
+-|       <svg feColorMatrix>
+-|       <svg feComponentTransfer>
+-|       <svg feComposite>
+-|       <svg feConvolveMatrix>
+-|       <svg feDiffuseLighting>
+-|       <svg feDisplacementMap>
+-|       <svg feDistantLight>
+-|       <svg feFlood>
+-|       <svg feFuncA>
+-|       <svg feFuncB>
+-|       <svg feFuncG>
+-|       <svg feFuncR>
+-|       <svg feGaussianBlur>
+-|       <svg feImage>
+-|       <svg feMerge>
+-|       <svg feMergeNode>
+-|       <svg feMorphology>
+-|       <svg feOffset>
+-|       <svg fePointLight>
+-|       <svg feSpecularLighting>
+-|       <svg feSpotLight>
+-|       <svg feTile>
+-|       <svg feTurbulence>
+-|       <svg foreignObject>
+-|       <svg glyphRef>
+-|       <svg linearGradient>
+-|       <svg radialGradient>
+-|       <svg textPath>
+-
+-#data
+-<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math altglyph>
+-|       <math altglyphdef>
+-|       <math altglyphitem>
+-|       <math animatecolor>
+-|       <math animatemotion>
+-|       <math animatetransform>
+-|       <math clippath>
+-|       <math feblend>
+-|       <math fecolormatrix>
+-|       <math fecomponenttransfer>
+-|       <math fecomposite>
+-|       <math feconvolvematrix>
+-|       <math fediffuselighting>
+-|       <math fedisplacementmap>
+-|       <math fedistantlight>
+-|       <math feflood>
+-|       <math fefunca>
+-|       <math fefuncb>
+-|       <math fefuncg>
+-|       <math fefuncr>
+-|       <math fegaussianblur>
+-|       <math feimage>
+-|       <math femerge>
+-|       <math femergenode>
+-|       <math femorphology>
+-|       <math feoffset>
+-|       <math fepointlight>
+-|       <math fespecularlighting>
+-|       <math fespotlight>
+-|       <math fetile>
+-|       <math feturbulence>
+-|       <math foreignobject>
+-|       <math glyphref>
+-|       <math lineargradient>
+-|       <math radialgradient>
+-|       <math textpath>
+-
+-#data
+-<!DOCTYPE html><body><svg><solidColor /></svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg solidcolor>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests12.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests12.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests12.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests12.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,62 +0,0 @@
+-#data
+-<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       "foo"
+-|       <math math>
+-|         <math mtext>
+-|           <i>
+-|             "baz"
+-|         <math annotation-xml>
+-|           <svg svg>
+-|             <svg desc>
+-|               <b>
+-|                 "eggs"
+-|             <svg g>
+-|               <svg foreignObject>
+-|                 <p>
+-|                   "spam"
+-|                 <table>
+-|                   <tbody>
+-|                     <tr>
+-|                       <td>
+-|                         <img>
+-|             <svg g>
+-|               "quux"
+-|       "bar"
+-
+-#data
+-<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "foo"
+-|     <math math>
+-|       <math mtext>
+-|         <i>
+-|           "baz"
+-|       <math annotation-xml>
+-|         <svg svg>
+-|           <svg desc>
+-|             <b>
+-|               "eggs"
+-|           <svg g>
+-|             <svg foreignObject>
+-|               <p>
+-|                 "spam"
+-|               <table>
+-|                 <tbody>
+-|                   <tr>
+-|                     <td>
+-|                       <img>
+-|           <svg g>
+-|             "quux"
+-|     "bar"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests14.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests14.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests14.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests14.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,74 +0,0 @@
+-#data
+-<!DOCTYPE html><html><body><xyz:abc></xyz:abc>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <xyz:abc>
+-
+-#data
+-<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <xyz:abc>
+-|     <span>
+-
+-#data
+-<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>
+-#errors
+-15: Unexpected start tag html
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   abc:def="gh"
+-|   <head>
+-|   <body>
+-|     <xyz:abc>
+-
+-#data
+-<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>
+-#errors
+-15: Unexpected start tag html
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   xml:lang="bar"
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><html 123=456>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   123="456"
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><html 123=456><html 789=012>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   123="456"
+-|   789="012"
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><html><body 789=012>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     789="012"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests15.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests15.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests15.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests15.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,208 +0,0 @@
+-#data
+-<!DOCTYPE html><p><b><i><u></p> <p>X
+-#errors
+-Line: 1 Col: 31 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 36 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <b>
+-|         <i>
+-|           <u>
+-|     <b>
+-|       <i>
+-|         <u>
+-|           " "
+-|           <p>
+-|             "X"
+-
+-#data
+-<p><b><i><u></p>
+-<p>X
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
+-Line: 1 Col: 16 Unexpected end tag (p). Ignored.
+-Line: 2 Col: 4 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <b>
+-|         <i>
+-|           <u>
+-|     <b>
+-|       <i>
+-|         <u>
+-|           "
+-"
+-|           <p>
+-|             "X"
+-
+-#data
+-<!doctype html></html> <head>
+-#errors
+-Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     " "
+-
+-#data
+-<!doctype html></body><meta>
+-#errors
+-Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <meta>
+-
+-#data
+-<html></html><!-- foo -->
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-| <!--  foo  -->
+-
+-#data
+-<!doctype html></body><title>X</title>
+-#errors
+-Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <title>
+-|       "X"
+-
+-#data
+-<!doctype html><table> X<meta></table>
+-#errors
+-Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     " X"
+-|     <meta>
+-|     <table>
+-
+-#data
+-<!doctype html><table> x</table>
+-#errors
+-Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     " x"
+-|     <table>
+-
+-#data
+-<!doctype html><table> x </table>
+-#errors
+-Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     " x "
+-|     <table>
+-
+-#data
+-<!doctype html><table><tr> x</table>
+-#errors
+-Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     " x"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><table>X<style> <tr>x </style> </table>
+-#errors
+-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "X"
+-|     <table>
+-|       <style>
+-|         " <tr>x "
+-|       " "
+-
+-#data
+-<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>
+-#errors
+-Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode.
+-Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <a>
+-|         "foo"
+-|       <table>
+-|         " "
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               "bar"
+-|             " "
+-
+-#data
+-<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>
+-#errors
+-6: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-13: Stray start tag “frame”.
+-21: Stray end tag “frame”.
+-29: Stray end tag “frame”.
+-39: “frameset” start tag after “body” already open.
+-105: End of file seen inside an [R]CDATA element.
+-105: End of file seen and there were open elements.
+-XXX: These errors are wrong, please fix me!
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-|     <frameset>
+-|       <frame>
+-|     <noframes>
+-|       "</frameset><noframes>"
+-
+-#data
+-<!DOCTYPE html><object></html>
+-#errors
+-1: Expected closing tag. Unexpected end of file
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <object>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests16.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests16.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests16.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests16.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,2299 +0,0 @@
+-#data
+-<!doctype html><script>
+-#errors
+-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|   <body>
+-
+-#data
+-<!doctype html><script>a
+-#errors
+-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><
+-#errors
+-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<"
+-|   <body>
+-
+-#data
+-<!doctype html><script></
+-#errors
+-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</"
+-|   <body>
+-
+-#data
+-<!doctype html><script></S
+-#errors
+-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</S"
+-|   <body>
+-
+-#data
+-<!doctype html><script></SC
+-#errors
+-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SC"
+-|   <body>
+-
+-#data
+-<!doctype html><script></SCR
+-#errors
+-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCR"
+-|   <body>
+-
+-#data
+-<!doctype html><script></SCRI
+-#errors
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCRI"
+-|   <body>
+-
+-#data
+-<!doctype html><script></SCRIP
+-#errors
+-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCRIP"
+-|   <body>
+-
+-#data
+-<!doctype html><script></SCRIPT
+-#errors
+-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCRIPT"
+-|   <body>
+-
+-#data
+-<!doctype html><script></SCRIPT 
+-#errors
+-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|   <body>
+-
+-#data
+-<!doctype html><script></s
+-#errors
+-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</s"
+-|   <body>
+-
+-#data
+-<!doctype html><script></sc
+-#errors
+-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</sc"
+-|   <body>
+-
+-#data
+-<!doctype html><script></scr
+-#errors
+-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</scr"
+-|   <body>
+-
+-#data
+-<!doctype html><script></scri
+-#errors
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</scri"
+-|   <body>
+-
+-#data
+-<!doctype html><script></scrip
+-#errors
+-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</scrip"
+-|   <body>
+-
+-#data
+-<!doctype html><script></script
+-#errors
+-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</script"
+-|   <body>
+-
+-#data
+-<!doctype html><script></script 
+-#errors
+-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|   <body>
+-
+-#data
+-<!doctype html><script><!
+-#errors
+-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!a
+-#errors
+-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!-
+-#errors
+-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!-"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!-a
+-#errors
+-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!-a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--
+-#errors
+-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--a
+-#errors
+-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<
+-#errors
+-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<a
+-#errors
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--</
+-#errors
+-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--</"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--</script
+-#errors
+-Line: 1 Col: 35 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--</script"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--</script 
+-#errors
+-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<s
+-#errors
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<s"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script
+-#errors
+-Line: 1 Col: 34 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script 
+-#errors
+-Line: 1 Col: 35 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script "
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script <
+-#errors
+-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script <"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script <a
+-#errors
+-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script <a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </
+-#errors
+-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </s
+-#errors
+-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </s"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script
+-#errors
+-Line: 1 Col: 43 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </scripta
+-#errors
+-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </scripta"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script 
+-#errors
+-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script>
+-#errors
+-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script>"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script/
+-#errors
+-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script/"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script <
+-#errors
+-Line: 1 Col: 45 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script <"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script <a
+-#errors
+-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script <a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script </
+-#errors
+-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script </"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script </script
+-#errors
+-Line: 1 Col: 52 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script </script"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script </script 
+-#errors
+-Line: 1 Col: 53 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script </script/
+-#errors
+-Line: 1 Col: 53 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script </script </script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script -
+-#errors
+-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script -a
+-#errors
+-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script -<
+-#errors
+-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -<"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --
+-#errors
+-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --a
+-#errors
+-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --a"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --<
+-#errors
+-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --<"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script -->
+-#errors
+-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --><
+-#errors
+-Line: 1 Col: 39 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --><"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --></
+-#errors
+-Line: 1 Col: 40 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --></"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --></script
+-#errors
+-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --></script"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --></script 
+-#errors
+-Line: 1 Col: 47 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --></script/
+-#errors
+-Line: 1 Col: 47 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script --></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script><\/script>--></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script><\/script>-->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script></scr'+'ipt>--></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></scr'+'ipt>-->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script></script><script></script></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script></script><script></script>--><!--</script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>--><!--"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script></script><script></script>-- ></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>-- >"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script></script><script></script>- -></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>- ->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script></script><script></script>- - ></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>- - >"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script></script><script></script>-></script>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>->"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<script>--!></script>X
+-#errors
+-Line: 1 Col: 49 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script>--!></script>X"
+-|   <body>
+-
+-#data
+-<!doctype html><script><!--<scr'+'ipt></script>--></script>
+-#errors
+-Line: 1 Col: 59 Unexpected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<scr'+'ipt>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<!doctype html><script><!--<script></scr'+'ipt></script>X
+-#errors
+-Line: 1 Col: 57 Unexpected end of file. Expected end tag (script).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></scr'+'ipt></script>X"
+-|   <body>
+-
+-#data
+-<!doctype html><style><!--<style></style>--></style>
+-#errors
+-Line: 1 Col: 52 Unexpected end tag (style).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--<style>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<!doctype html><style><!--</style>X
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--"
+-|   <body>
+-|     "X"
+-
+-#data
+-<!doctype html><style><!--...</style>...--></style>
+-#errors
+-Line: 1 Col: 51 Unexpected end tag (style).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--..."
+-|   <body>
+-|     "...-->"
+-
+-#data
+-<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
+-|   <body>
+-|     "X"
+-
+-#data
+-<!doctype html><style><!--...<style><!--...--!></style>--></style>
+-#errors
+-Line: 1 Col: 66 Unexpected end tag (style).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--...<style><!--...--!>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<!doctype html><style><!--...</style><!-- --><style>@import ...</style>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--..."
+-|     <!--   -->
+-|     <style>
+-|       "@import ..."
+-|   <body>
+-
+-#data
+-<!doctype html><style>...<style><!--...</style><!-- --></style>
+-#errors
+-Line: 1 Col: 63 Unexpected end tag (style).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "...<style><!--..."
+-|     <!--   -->
+-|   <body>
+-
+-#data
+-<!doctype html><style>...<!--[if IE]><style>...</style>X
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       "...<!--[if IE]><style>..."
+-|   <body>
+-|     "X"
+-
+-#data
+-<!doctype html><title><!--<title></title>--></title>
+-#errors
+-Line: 1 Col: 52 Unexpected end tag (title).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "<!--<title>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<!doctype html><title>&lt;/title></title>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "</title>"
+-|   <body>
+-
+-#data
+-<!doctype html><title>foo/title><link></head><body>X
+-#errors
+-Line: 1 Col: 52 Unexpected end of file. Expected end tag (title).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "foo/title><link></head><body>X"
+-|   <body>
+-
+-#data
+-<!doctype html><noscript><!--<noscript></noscript>--></noscript>
+-#errors
+-Line: 1 Col: 64 Unexpected end tag (noscript).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <noscript>
+-|       "<!--<noscript>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <noscript>
+-|       "<!--"
+-|   <body>
+-|     "X"
+-|     <noscript>
+-|       "-->"
+-
+-#data
+-<!doctype html><noscript><iframe></noscript>X
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <noscript>
+-|       "<iframe>"
+-|   <body>
+-|     "X"
+-
+-#data
+-<!doctype html><noframes><!--<noframes></noframes>--></noframes>
+-#errors
+-Line: 1 Col: 64 Unexpected end tag (noframes).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <noframes>
+-|       "<!--<noframes>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<!doctype html><noframes><body><script><!--...</script></body></noframes></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <noframes>
+-|       "<body><script><!--...</script></body>"
+-|   <body>
+-
+-#data
+-<!doctype html><textarea><!--<textarea></textarea>--></textarea>
+-#errors
+-Line: 1 Col: 64 Unexpected end tag (textarea).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "<!--<textarea>"
+-|     "-->"
+-
+-#data
+-<!doctype html><textarea>&lt;/textarea></textarea>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "</textarea>"
+-
+-#data
+-<!doctype html><textarea>&lt;</textarea>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "<"
+-
+-#data
+-<!doctype html><textarea>a&lt;b</textarea>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "a<b"
+-
+-#data
+-<!doctype html><iframe><!--<iframe></iframe>--></iframe>
+-#errors
+-Line: 1 Col: 56 Unexpected end tag (iframe).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <iframe>
+-|       "<!--<iframe>"
+-|     "-->"
+-
+-#data
+-<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <iframe>
+-|       "...<!--X->...<!--/X->..."
+-
+-#data
+-<!doctype html><xmp><!--<xmp></xmp>--></xmp>
+-#errors
+-Line: 1 Col: 44 Unexpected end tag (xmp).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <xmp>
+-|       "<!--<xmp>"
+-|     "-->"
+-
+-#data
+-<!doctype html><noembed><!--<noembed></noembed>--></noembed>
+-#errors
+-Line: 1 Col: 60 Unexpected end tag (noembed).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <noembed>
+-|       "<!--<noembed>"
+-|     "-->"
+-
+-#data
+-<script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 8 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|   <body>
+-
+-#data
+-<script>a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 9 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "a"
+-|   <body>
+-
+-#data
+-<script><
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 9 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<"
+-|   <body>
+-
+-#data
+-<script></
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 10 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</"
+-|   <body>
+-
+-#data
+-<script></S
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</S"
+-|   <body>
+-
+-#data
+-<script></SC
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SC"
+-|   <body>
+-
+-#data
+-<script></SCR
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCR"
+-|   <body>
+-
+-#data
+-<script></SCRI
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCRI"
+-|   <body>
+-
+-#data
+-<script></SCRIP
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 15 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCRIP"
+-|   <body>
+-
+-#data
+-<script></SCRIPT
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 16 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</SCRIPT"
+-|   <body>
+-
+-#data
+-<script></SCRIPT 
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 17 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|   <body>
+-
+-#data
+-<script></s
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</s"
+-|   <body>
+-
+-#data
+-<script></sc
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</sc"
+-|   <body>
+-
+-#data
+-<script></scr
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</scr"
+-|   <body>
+-
+-#data
+-<script></scri
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</scri"
+-|   <body>
+-
+-#data
+-<script></scrip
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 15 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</scrip"
+-|   <body>
+-
+-#data
+-<script></script
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 16 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</script"
+-|   <body>
+-
+-#data
+-<script></script 
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 17 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|   <body>
+-
+-#data
+-<script><!
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 10 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!"
+-|   <body>
+-
+-#data
+-<script><!a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!a"
+-|   <body>
+-
+-#data
+-<script><!-
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!-"
+-|   <body>
+-
+-#data
+-<script><!-a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!-a"
+-|   <body>
+-
+-#data
+-<script><!--
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--"
+-|   <body>
+-
+-#data
+-<script><!--a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--a"
+-|   <body>
+-
+-#data
+-<script><!--<
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<"
+-|   <body>
+-
+-#data
+-<script><!--<a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<a"
+-|   <body>
+-
+-#data
+-<script><!--</
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--</"
+-|   <body>
+-
+-#data
+-<script><!--</script
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--</script"
+-|   <body>
+-
+-#data
+-<script><!--</script 
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--"
+-|   <body>
+-
+-#data
+-<script><!--<s
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<s"
+-|   <body>
+-
+-#data
+-<script><!--<script
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 19 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script"
+-|   <body>
+-
+-#data
+-<script><!--<script 
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script "
+-|   <body>
+-
+-#data
+-<script><!--<script <
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script <"
+-|   <body>
+-
+-#data
+-<script><!--<script <a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script <a"
+-|   <body>
+-
+-#data
+-<script><!--<script </
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </"
+-|   <body>
+-
+-#data
+-<script><!--<script </s
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </s"
+-|   <body>
+-
+-#data
+-<script><!--<script </script
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script"
+-|   <body>
+-
+-#data
+-<script><!--<script </scripta
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </scripta"
+-|   <body>
+-
+-#data
+-<script><!--<script </script 
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<script><!--<script </script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script>"
+-|   <body>
+-
+-#data
+-<script><!--<script </script/
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script/"
+-|   <body>
+-
+-#data
+-<script><!--<script </script <
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script <"
+-|   <body>
+-
+-#data
+-<script><!--<script </script <a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script <a"
+-|   <body>
+-
+-#data
+-<script><!--<script </script </
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script </"
+-|   <body>
+-
+-#data
+-<script><!--<script </script </script
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script </script"
+-|   <body>
+-
+-#data
+-<script><!--<script </script </script 
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<script><!--<script </script </script/
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<script><!--<script </script </script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script </script "
+-|   <body>
+-
+-#data
+-<script><!--<script -
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -"
+-|   <body>
+-
+-#data
+-<script><!--<script -a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -a"
+-|   <body>
+-
+-#data
+-<script><!--<script --
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --"
+-|   <body>
+-
+-#data
+-<script><!--<script --a
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --a"
+-|   <body>
+-
+-#data
+-<script><!--<script -->
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<script><!--<script --><
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --><"
+-|   <body>
+-
+-#data
+-<script><!--<script --></
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --></"
+-|   <body>
+-
+-#data
+-<script><!--<script --></script
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script --></script"
+-|   <body>
+-
+-#data
+-<script><!--<script --></script 
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<script><!--<script --></script/
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<script><!--<script --></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script -->"
+-|   <body>
+-
+-#data
+-<script><!--<script><\/script>--></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script><\/script>-->"
+-|   <body>
+-
+-#data
+-<script><!--<script></scr'+'ipt>--></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></scr'+'ipt>-->"
+-|   <body>
+-
+-#data
+-<script><!--<script></script><script></script></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>"
+-|   <body>
+-
+-#data
+-<script><!--<script></script><script></script>--><!--</script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>--><!--"
+-|   <body>
+-
+-#data
+-<script><!--<script></script><script></script>-- ></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>-- >"
+-|   <body>
+-
+-#data
+-<script><!--<script></script><script></script>- -></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>- ->"
+-|   <body>
+-
+-#data
+-<script><!--<script></script><script></script>- - ></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>- - >"
+-|   <body>
+-
+-#data
+-<script><!--<script></script><script></script>-></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></script><script></script>->"
+-|   <body>
+-
+-#data
+-<script><!--<script>--!></script>X
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 34 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script>--!></script>X"
+-|   <body>
+-
+-#data
+-<script><!--<scr'+'ipt></script>--></script>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 44 Unexpected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<scr'+'ipt>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<script><!--<script></scr'+'ipt></script>X
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 42 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<!--<script></scr'+'ipt></script>X"
+-|   <body>
+-
+-#data
+-<style><!--<style></style>--></style>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-Line: 1 Col: 37 Unexpected end tag (style).
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--<style>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<style><!--</style>X
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--"
+-|   <body>
+-|     "X"
+-
+-#data
+-<style><!--...</style>...--></style>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-Line: 1 Col: 36 Unexpected end tag (style).
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--..."
+-|   <body>
+-|     "...-->"
+-
+-#data
+-<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
+-|   <body>
+-|     "X"
+-
+-#data
+-<style><!--...<style><!--...--!></style>--></style>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-Line: 1 Col: 51 Unexpected end tag (style).
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--...<style><!--...--!>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<style><!--...</style><!-- --><style>@import ...</style>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--..."
+-|     <!--   -->
+-|     <style>
+-|       "@import ..."
+-|   <body>
+-
+-#data
+-<style>...<style><!--...</style><!-- --></style>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-Line: 1 Col: 48 Unexpected end tag (style).
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "...<style><!--..."
+-|     <!--   -->
+-|   <body>
+-
+-#data
+-<style>...<!--[if IE]><style>...</style>X
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "...<!--[if IE]><style>..."
+-|   <body>
+-|     "X"
+-
+-#data
+-<title><!--<title></title>--></title>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-Line: 1 Col: 37 Unexpected end tag (title).
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "<!--<title>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<title>&lt;/title></title>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "</title>"
+-|   <body>
+-
+-#data
+-<title>foo/title><link></head><body>X
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-Line: 1 Col: 37 Unexpected end of file. Expected end tag (title).
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "foo/title><link></head><body>X"
+-|   <body>
+-
+-#data
+-<noscript><!--<noscript></noscript>--></noscript>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
+-Line: 1 Col: 49 Unexpected end tag (noscript).
+-#document
+-| <html>
+-|   <head>
+-|     <noscript>
+-|       "<!--<noscript>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<noscript><!--</noscript>X<noscript>--></noscript>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <noscript>
+-|       "<!--"
+-|   <body>
+-|     "X"
+-|     <noscript>
+-|       "-->"
+-
+-#data
+-<noscript><iframe></noscript>X
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <noscript>
+-|       "<iframe>"
+-|   <body>
+-|     "X"
+-
+-#data
+-<noframes><!--<noframes></noframes>--></noframes>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE.
+-Line: 1 Col: 49 Unexpected end tag (noframes).
+-#document
+-| <html>
+-|   <head>
+-|     <noframes>
+-|       "<!--<noframes>"
+-|   <body>
+-|     "-->"
+-
+-#data
+-<noframes><body><script><!--...</script></body></noframes></html>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <noframes>
+-|       "<body><script><!--...</script></body>"
+-|   <body>
+-
+-#data
+-<textarea><!--<textarea></textarea>--></textarea>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
+-Line: 1 Col: 49 Unexpected end tag (textarea).
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "<!--<textarea>"
+-|     "-->"
+-
+-#data
+-<textarea>&lt;/textarea></textarea>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "</textarea>"
+-
+-#data
+-<iframe><!--<iframe></iframe>--></iframe>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
+-Line: 1 Col: 41 Unexpected end tag (iframe).
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <iframe>
+-|       "<!--<iframe>"
+-|     "-->"
+-
+-#data
+-<iframe>...<!--X->...<!--/X->...</iframe>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <iframe>
+-|       "...<!--X->...<!--/X->..."
+-
+-#data
+-<xmp><!--<xmp></xmp>--></xmp>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE.
+-Line: 1 Col: 29 Unexpected end tag (xmp).
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <xmp>
+-|       "<!--<xmp>"
+-|     "-->"
+-
+-#data
+-<noembed><!--<noembed></noembed>--></noembed>
+-#errors
+-Line: 1 Col: 9 Unexpected start tag (noembed). Expected DOCTYPE.
+-Line: 1 Col: 45 Unexpected end tag (noembed).
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <noembed>
+-|       "<!--<noembed>"
+-|     "-->"
+-
+-#data
+-<!doctype html><table>
+-
+-#errors
+-Line 2 Col 0 Unexpected end of file. Expected table content.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       "
+-"
+-
+-#data
+-<!doctype html><table><td><span><font></span><span>
+-#errors
+-Line 1 Col 26 Unexpected table cell start tag (td) in the table body phase.
+-Line 1 Col 45 Unexpected end tag (span).
+-Line 1 Col 51 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <span>
+-|               <font>
+-|             <font>
+-|               <span>
+-
+-#data
+-<!doctype html><form><table></form><form></table></form>
+-#errors
+-35: Stray end tag “form”.
+-41: Start tag “form” seen in “table”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <table>
+-|         <form>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests17.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests17.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests17.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests17.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,153 +0,0 @@
+-#data
+-<!doctype html><table><tbody><select><tr>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><table><tr><select><td>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<!doctype html><table><tr><td><select><td>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <select>
+-|           <td>
+-
+-#data
+-<!doctype html><table><tr><th><select><td>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <th>
+-|             <select>
+-|           <td>
+-
+-#data
+-<!doctype html><table><caption><select><tr>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <select>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><select><tr>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><select><td>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><select><th>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><select><tbody>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><select><thead>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><select><tfoot>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><select><caption>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><table><tr></table>a
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|     "a"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests18.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests18.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests18.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests18.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,269 +0,0 @@
+-#data
+-<!doctype html><plaintext></plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <plaintext>
+-|       "</plaintext>"
+-
+-#data
+-<!doctype html><table><plaintext></plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <plaintext>
+-|       "</plaintext>"
+-|     <table>
+-
+-#data
+-<!doctype html><table><tbody><plaintext></plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <plaintext>
+-|       "</plaintext>"
+-|     <table>
+-|       <tbody>
+-
+-#data
+-<!doctype html><table><tbody><tr><plaintext></plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <plaintext>
+-|       "</plaintext>"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><table><tbody><tr><plaintext></plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <plaintext>
+-|       "</plaintext>"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><table><td><plaintext></plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <plaintext>
+-|               "</plaintext>"
+-
+-#data
+-<!doctype html><table><caption><plaintext></plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <plaintext>
+-|           "</plaintext>"
+-
+-#data
+-<!doctype html><table><tr><style></script></style>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "abc"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <style>
+-|             "</script>"
+-
+-#data
+-<!doctype html><table><tr><script></style></script>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "abc"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <script>
+-|             "</style>"
+-
+-#data
+-<!doctype html><table><caption><style></script></style>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <style>
+-|           "</script>"
+-|         "abc"
+-
+-#data
+-<!doctype html><table><td><style></script></style>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <style>
+-|               "</script>"
+-|             "abc"
+-
+-#data
+-<!doctype html><select><script></style></script>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <script>
+-|         "</style>"
+-|       "abc"
+-
+-#data
+-<!doctype html><table><select><script></style></script>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <script>
+-|         "</style>"
+-|       "abc"
+-|     <table>
+-
+-#data
+-<!doctype html><table><tr><select><script></style></script>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <script>
+-|         "</style>"
+-|       "abc"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><frameset></frameset><noframes>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   <noframes>
+-|     "abc"
+-
+-#data
+-<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   <noframes>
+-|     "abc"
+-|   <!-- abc -->
+-
+-#data
+-<!doctype html><frameset></frameset></html><noframes>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   <noframes>
+-|     "abc"
+-
+-#data
+-<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   <noframes>
+-|     "abc"
+-| <!-- abc -->
+-
+-#data
+-<!doctype html><table><tr></tbody><tfoot>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|       <tfoot>
+-
+-#data
+-<!doctype html><table><td><svg></svg>abc<td>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <svg svg>
+-|             "abc"
+-|           <td>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests19.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests19.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests19.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests19.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,1237 +0,0 @@
+-#data
+-<!doctype html><math><mn DefinitionUrl="foo">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mn>
+-|         definitionURL="foo"
+-
+-#data
+-<!doctype html><html></p><!--foo-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <!-- foo -->
+-|   <head>
+-|   <body>
+-
+-#data
+-<!doctype html><head></head></p><!--foo-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <!-- foo -->
+-|   <body>
+-
+-#data
+-<!doctype html><body><p><pre>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <pre>
+-
+-#data
+-<!doctype html><body><p><listing>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <listing>
+-
+-#data
+-<!doctype html><p><plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <plaintext>
+-
+-#data
+-<!doctype html><p><h1>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <h1>
+-
+-#data
+-<!doctype html><form><isindex>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-
+-#data
+-<!doctype html><isindex action="POST">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       action="POST"
+-|       <hr>
+-|       <label>
+-|         "This is a searchable index. Enter search keywords: "
+-|         <input>
+-|           name="isindex"
+-|       <hr>
+-
+-#data
+-<!doctype html><isindex prompt="this is isindex">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <hr>
+-|       <label>
+-|         "this is isindex"
+-|         <input>
+-|           name="isindex"
+-|       <hr>
+-
+-#data
+-<!doctype html><isindex type="hidden">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <hr>
+-|       <label>
+-|         "This is a searchable index. Enter search keywords: "
+-|         <input>
+-|           name="isindex"
+-|           type="hidden"
+-|       <hr>
+-
+-#data
+-<!doctype html><isindex name="foo">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <hr>
+-|       <label>
+-|         "This is a searchable index. Enter search keywords: "
+-|         <input>
+-|           name="isindex"
+-|       <hr>
+-
+-#data
+-<!doctype html><ruby><p><rp>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <p>
+-|       <rp>
+-
+-#data
+-<!doctype html><ruby><div><span><rp>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <div>
+-|         <span>
+-|           <rp>
+-
+-#data
+-<!doctype html><ruby><div><p><rp>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <div>
+-|         <p>
+-|         <rp>
+-
+-#data
+-<!doctype html><ruby><p><rt>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <p>
+-|       <rt>
+-
+-#data
+-<!doctype html><ruby><div><span><rt>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <div>
+-|         <span>
+-|           <rt>
+-
+-#data
+-<!doctype html><ruby><div><p><rt>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <div>
+-|         <p>
+-|         <rt>
+-
+-#data
+-<!doctype html><math/><foo>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|     <foo>
+-
+-#data
+-<!doctype html><svg/><foo>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|     <foo>
+-
+-#data
+-<!doctype html><div></body><!--foo-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|   <!-- foo -->
+-
+-#data
+-<!doctype html><h1><div><h3><span></h1>foo
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <h1>
+-|       <div>
+-|         <h3>
+-|           <span>
+-|         "foo"
+-
+-#data
+-<!doctype html><p></h3>foo
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       "foo"
+-
+-#data
+-<!doctype html><h3><li>abc</h2>foo
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <h3>
+-|       <li>
+-|         "abc"
+-|     "foo"
+-
+-#data
+-<!doctype html><table>abc<!--foo-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "abc"
+-|     <table>
+-|       <!-- foo -->
+-
+-#data
+-<!doctype html><table>  <!--foo-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       "  "
+-|       <!-- foo -->
+-
+-#data
+-<!doctype html><table> b <!--foo-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     " b "
+-|     <table>
+-|       <!-- foo -->
+-
+-#data
+-<!doctype html><select><option><option>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-|       <option>
+-
+-#data
+-<!doctype html><select><option></optgroup>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-
+-#data
+-<!doctype html><select><option></optgroup>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-
+-#data
+-<!doctype html><p><math><mi><p><h1>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <math math>
+-|         <math mi>
+-|           <p>
+-|           <h1>
+-
+-#data
+-<!doctype html><p><math><mo><p><h1>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <math math>
+-|         <math mo>
+-|           <p>
+-|           <h1>
+-
+-#data
+-<!doctype html><p><math><mn><p><h1>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <math math>
+-|         <math mn>
+-|           <p>
+-|           <h1>
+-
+-#data
+-<!doctype html><p><math><ms><p><h1>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <math math>
+-|         <math ms>
+-|           <p>
+-|           <h1>
+-
+-#data
+-<!doctype html><p><math><mtext><p><h1>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <math math>
+-|         <math mtext>
+-|           <p>
+-|           <h1>
+-
+-#data
+-<!doctype html><frameset></noframes>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!doctype html><html c=d><body></html><html a=b>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   a="b"
+-|   c="d"
+-|   <head>
+-|   <body>
+-
+-#data
+-<!doctype html><html c=d><frameset></frameset></html><html a=b>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   a="b"
+-|   c="d"
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!doctype html><html><frameset></frameset></html><!--foo-->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-| <!-- foo -->
+-
+-#data
+-<!doctype html><html><frameset></frameset></html>  
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   "  "
+-
+-#data
+-<!doctype html><html><frameset></frameset></html>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!doctype html><html><frameset></frameset></html><p>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!doctype html><html><frameset></frameset></html></p>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<html><frameset></frameset></html><!doctype html>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!doctype html><body><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!doctype html><p><frameset><frame>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-
+-#data
+-<!doctype html><p>a<frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       "a"
+-
+-#data
+-<!doctype html><p> <frameset><frame>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-
+-#data
+-<!doctype html><pre><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-
+-#data
+-<!doctype html><listing><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <listing>
+-
+-#data
+-<!doctype html><li><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <li>
+-
+-#data
+-<!doctype html><dd><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <dd>
+-
+-#data
+-<!doctype html><dt><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <dt>
+-
+-#data
+-<!doctype html><button><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <button>
+-
+-#data
+-<!doctype html><applet><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <applet>
+-
+-#data
+-<!doctype html><marquee><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <marquee>
+-
+-#data
+-<!doctype html><object><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <object>
+-
+-#data
+-<!doctype html><table><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-
+-#data
+-<!doctype html><area><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <area>
+-
+-#data
+-<!doctype html><basefont><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <basefont>
+-|   <frameset>
+-
+-#data
+-<!doctype html><bgsound><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <bgsound>
+-|   <frameset>
+-
+-#data
+-<!doctype html><br><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <br>
+-
+-#data
+-<!doctype html><embed><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <embed>
+-
+-#data
+-<!doctype html><img><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <img>
+-
+-#data
+-<!doctype html><input><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <input>
+-
+-#data
+-<!doctype html><keygen><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <keygen>
+-
+-#data
+-<!doctype html><wbr><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <wbr>
+-
+-#data
+-<!doctype html><hr><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <hr>
+-
+-#data
+-<!doctype html><textarea></textarea><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-
+-#data
+-<!doctype html><xmp></xmp><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <xmp>
+-
+-#data
+-<!doctype html><iframe></iframe><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <iframe>
+-
+-#data
+-<!doctype html><select></select><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!doctype html><svg></svg><frameset><frame>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-
+-#data
+-<!doctype html><math></math><frameset><frame>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-
+-#data
+-<!doctype html><svg><foreignObject><div> <frameset><frame>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-
+-#data
+-<!doctype html><svg>a</svg><frameset><frame>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "a"
+-
+-#data
+-<!doctype html><svg> </svg><frameset><frame>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-
+-#data
+-<html>aaa<frameset></frameset>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "aaa"
+-
+-#data
+-<html> a <frameset></frameset>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "a "
+-
+-#data
+-<!doctype html><div><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!doctype html><div><body><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-
+-#data
+-<!doctype html><p><math></p>a
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <math math>
+-|     "a"
+-
+-#data
+-<!doctype html><p><math><mn><span></p>a
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <math math>
+-|         <math mn>
+-|           <span>
+-|             <p>
+-|             "a"
+-
+-#data
+-<!doctype html><math></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-
+-#data
+-<!doctype html><meta charset="ascii">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <meta>
+-|       charset="ascii"
+-|   <body>
+-
+-#data
+-<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <meta>
+-|       content="text/html;charset=ascii"
+-|       http-equiv="content-type"
+-|   <body>
+-
+-#data
+-<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8">
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -->
+-|     <meta>
+-|       charset="utf8"
+-|   <body>
+-
+-#data
+-<!doctype html><html a=b><head></head><html c=d>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   a="b"
+-|   c="d"
+-|   <head>
+-|   <body>
+-
+-#data
+-<!doctype html><image/>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <img>
+-
+-#data
+-<!doctype html>a<i>b<table>c<b>d</i>e</b>f
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "a"
+-|     <i>
+-|       "bc"
+-|       <b>
+-|         "de"
+-|       "f"
+-|       <table>
+-
+-#data
+-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <i>
+-|       "a"
+-|       <b>
+-|         "b"
+-|     <b>
+-|     <div>
+-|       <b>
+-|         <i>
+-|           "c"
+-|           <a>
+-|             "d"
+-|         <a>
+-|           "e"
+-|       <a>
+-|         "f"
+-|     <table>
+-
+-#data
+-<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <i>
+-|       "a"
+-|       <b>
+-|         "b"
+-|     <b>
+-|     <div>
+-|       <b>
+-|         <i>
+-|           "c"
+-|           <a>
+-|             "d"
+-|         <a>
+-|           "e"
+-|       <a>
+-|         "f"
+-
+-#data
+-<!doctype html><table><i>a<b>b<div>c</i>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <i>
+-|       "a"
+-|       <b>
+-|         "b"
+-|     <b>
+-|       <div>
+-|         <i>
+-|           "c"
+-|     <table>
+-
+-#data
+-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <i>
+-|       "a"
+-|       <b>
+-|         "b"
+-|     <b>
+-|     <div>
+-|       <b>
+-|         <i>
+-|           "c"
+-|           <a>
+-|             "d"
+-|         <a>
+-|           "e"
+-|       <a>
+-|         "f"
+-|     <table>
+-
+-#data
+-<!doctype html><table><i>a<div>b<tr>c<b>d</i>e
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <i>
+-|       "a"
+-|       <div>
+-|         "b"
+-|     <i>
+-|       "c"
+-|       <b>
+-|         "d"
+-|     <b>
+-|       "e"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><table><td><table><i>a<div>b<b>c</i>d
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <i>
+-|               "a"
+-|             <div>
+-|               <i>
+-|                 "b"
+-|                 <b>
+-|                   "c"
+-|               <b>
+-|                 "d"
+-|             <table>
+-
+-#data
+-<!doctype html><body><bgsound>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <bgsound>
+-
+-#data
+-<!doctype html><body><basefont>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <basefont>
+-
+-#data
+-<!doctype html><a><b></a><basefont>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <b>
+-|     <basefont>
+-
+-#data
+-<!doctype html><a><b></a><bgsound>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <b>
+-|     <bgsound>
+-
+-#data
+-<!doctype html><figcaption><article></figcaption>a
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <figcaption>
+-|       <article>
+-|     "a"
+-
+-#data
+-<!doctype html><summary><article></summary>a
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <summary>
+-|       <article>
+-|     "a"
+-
+-#data
+-<!doctype html><p><a><plaintext>b
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <a>
+-|     <plaintext>
+-|       <a>
+-|         "b"
+-
+-#data
+-<!DOCTYPE html><div>a<a></div>b<p>c</p>d
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "a"
+-|       <a>
+-|     <a>
+-|       "b"
+-|       <p>
+-|         "c"
+-|       "d"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests1.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests1.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests1.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests1.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,1952 +0,0 @@
+-#data
+-Test
+-#errors
+-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Test"
+-
+-#data
+-<p>One<p>Two
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       "One"
+-|     <p>
+-|       "Two"
+-
+-#data
+-Line1<br>Line2<br>Line3<br>Line4
+-#errors
+-Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Line1"
+-|     <br>
+-|     "Line2"
+-|     <br>
+-|     "Line3"
+-|     <br>
+-|     "Line4"
+-
+-#data
+-<html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<head>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<body>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><head>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><head></head>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><head></head><body>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><head></head><body></body>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><head><body></body></html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><head></body></html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-Line: 1 Col: 19 Unexpected end tag (body).
+-Line: 1 Col: 26 Unexpected end tag (html).
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><head><body></html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<html><body></html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<body></html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<head></html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected end tag (html). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-</head>
+-#errors
+-Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-</body>
+-#errors
+-Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE.
+-Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-</html>
+-#errors
+-Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE.
+-Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<b><table><td><i></table>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <i>
+-
+-#data
+-<b><table><td></b><i></table>X
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 30 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <i>
+-|       "X"
+-
+-#data
+-<h1>Hello<h2>World
+-#errors
+-4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-13: Heading cannot be a child of another heading.
+-18: End of file seen and there were open elements.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <h1>
+-|       "Hello"
+-|     <h2>
+-|       "World"
+-
+-#data
+-<a><p>X<a>Y</a>Z</p></a>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|     <p>
+-|       <a>
+-|         "X"
+-|       <a>
+-|         "Y"
+-|       "Z"
+-
+-#data
+-<b><button>foo</b>bar
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|     <button>
+-|       <b>
+-|         "foo"
+-|       "bar"
+-
+-#data
+-<!DOCTYPE html><span><button>foo</span>bar
+-#errors
+-39: End tag “span” seen but there were unclosed elements.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <span>
+-|       <button>
+-|         "foobar"
+-
+-#data
+-<p><b><div><marquee></p></b></div>X
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 24 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag.
+-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <b>
+-|     <div>
+-|       <b>
+-|         <marquee>
+-|           <p>
+-|           "X"
+-
+-#data
+-<script><div></script></div><title><p></title><p><p>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 28 Unexpected end tag (div). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "<div>"
+-|     <title>
+-|       "<p>"
+-|   <body>
+-|     <p>
+-|     <p>
+-
+-#data
+-<!--><div>--<!-->
+-#errors
+-Line: 1 Col: 5 Incorrect comment.
+-Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 17 Incorrect comment.
+-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
+-#document
+-| <!--  -->
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "--"
+-|       <!--  -->
+-
+-#data
+-<p><hr></p>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <hr>
+-|     <p>
+-
+-#data
+-<select><b><option><select><option></b></select>X
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored.
+-Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag.
+-Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 48 Unexpected end tag (select). Ignored.
+-Line: 1 Col: 49 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-|     <option>
+-|       "X"
+-
+-#data
+-<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode.
+-Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase.
+-Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 64 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <a>
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <a>
+-|                 <table>
+-|               <a>
+-|     <a>
+-|       <b>
+-|         "X"
+-|       "C"
+-|     <a>
+-|       "Y"
+-
+-#data
+-<a X>0<b>1<a Y>2
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       x=""
+-|       "0"
+-|       <b>
+-|         "1"
+-|     <b>
+-|       <a>
+-|         y=""
+-|         "2"
+-
+-#data
+-<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->
+-#errors
+-Line: 1 Col: 7 Unexpected '-' after '--' found in comment.
+-Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE.
+-Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode.
+-Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase.
+-Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase.
+-Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing.
+-Line: 1 Col: 71 Unexpected end of file. Expected table content.
+-#document
+-| <!-- - -->
+-| <html>
+-|   <head>
+-|   <body>
+-|     <font>
+-|       <div>
+-|         "helloexcite!"
+-|         <b>
+-|           "me!"
+-|         <table>
+-|           <tbody>
+-|             <tr>
+-|               <th>
+-|                 <i>
+-|                   "please!"
+-|             <!-- X -->
+-
+-#data
+-<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->
+-#errors
+-Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <li>
+-|       "hello"
+-|     <li>
+-|       "world"
+-|       <ul>
+-|         "how"
+-|         <li>
+-|           "do"
+-|       "you"
+-|   <!-- do -->
+-
+-#data
+-<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E
+-#errors
+-Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored.
+-Line: 1 Col: 55 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "A"
+-|     <option>
+-|       "B"
+-|     <optgroup>
+-|       "C"
+-|       <select>
+-|         "DE"
+-
+-#data
+-<
+-#errors
+-Line: 1 Col: 1 Expected tag name. Got something else instead
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "<"
+-
+-#data
+-<#
+-#errors
+-Line: 1 Col: 1 Expected tag name. Got something else instead
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "<#"
+-
+-#data
+-</
+-#errors
+-Line: 1 Col: 2 Expected closing tag. Unexpected end of file.
+-Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "</"
+-
+-#data
+-</#
+-#errors
+-Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found.
+-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- # -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<?
+-#errors
+-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
+-Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- ? -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<?#
+-#errors
+-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
+-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- ?# -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!
+-#errors
+-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
+-Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!--  -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!#
+-#errors
+-Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found.
+-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- # -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<?COMMENT?>
+-#errors
+-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
+-Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- ?COMMENT? -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!COMMENT>
+-#errors
+-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
+-Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- COMMENT -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-</ COMMENT >
+-#errors
+-Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found.
+-Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!--  COMMENT  -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<?COM--MENT?>
+-#errors
+-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
+-Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- ?COM--MENT? -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!COM--MENT>
+-#errors
+-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
+-Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- COM--MENT -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-</ COM--MENT >
+-#errors
+-Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found.
+-Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!--  COM--MENT  -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><style> EOF
+-#errors
+-Line: 1 Col: 26 Unexpected end of file. Expected end tag (style).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <style>
+-|       " EOF"
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><script> <!-- </script> --> </script> EOF
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       " <!-- "
+-|     " "
+-|   <body>
+-|     "-->  EOF"
+-
+-#data
+-<b><p></b>TEST
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|     <p>
+-|       <b>
+-|       "TEST"
+-
+-#data
+-<p id=a><b><p id=b></b>TEST
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE.
+-Line: 1 Col: 19 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       id="a"
+-|       <b>
+-|     <p>
+-|       id="b"
+-|       "TEST"
+-
+-#data
+-<b id=a><p><b id=b></p></b>TEST
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 23 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm.
+-Line: 1 Col: 31 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       id="a"
+-|       <p>
+-|         <b>
+-|           id="b"
+-|       "TEST"
+-
+-#data
+-<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>
+-#errors
+-Line: 1 Col: 61 Unexpected end tag (p). Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "U-test"
+-|   <body>
+-|     <div>
+-|       <p>
+-|         "Test"
+-|         <u>
+-
+-#data
+-<!DOCTYPE html><font><table></font></table></font>
+-#errors
+-Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode.
+-Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <font>
+-|       <table>
+-
+-#data
+-<font><p>hello<b>cruel</font>world
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE.
+-Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 34 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <font>
+-|     <p>
+-|       <font>
+-|         "hello"
+-|         <b>
+-|           "cruel"
+-|       <b>
+-|         "world"
+-
+-#data
+-<b>Test</i>Test
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "TestTest"
+-
+-#data
+-<b>A<cite>B<div>C
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "A"
+-|       <cite>
+-|         "B"
+-|         <div>
+-|           "C"
+-
+-#data
+-<b>A<cite>B<div>C</cite>D
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 24 Unexpected end tag (cite). Ignored.
+-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "A"
+-|       <cite>
+-|         "B"
+-|         <div>
+-|           "CD"
+-
+-#data
+-<b>A<cite>B<div>C</b>D
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 22 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "A"
+-|       <cite>
+-|         "B"
+-|     <div>
+-|       <b>
+-|         "C"
+-|       "D"
+-
+-#data
+-
+-#errors
+-Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<DIV>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 5 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-
+-#data
+-<DIV> abc
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 9 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc"
+-
+-#data
+-<DIV> abc <B>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 13 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-
+-#data
+-<DIV> abc <B> def
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def"
+-
+-#data
+-<DIV> abc <B> def <I>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 21 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-
+-#data
+-<DIV> abc <B> def <I> ghi
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi"
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|           <p>
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P> jkl
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 33 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|           <p>
+-|             " jkl"
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P> jkl </B>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 38 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|       <i>
+-|         <p>
+-|           <b>
+-|             " jkl "
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P> jkl </B> mno
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 42 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|       <i>
+-|         <p>
+-|           <b>
+-|             " jkl "
+-|           " mno"
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 47 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|       <i>
+-|       <p>
+-|         <i>
+-|           <b>
+-|             " jkl "
+-|           " mno "
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 51 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|       <i>
+-|       <p>
+-|         <i>
+-|           <b>
+-|             " jkl "
+-|           " mno "
+-|         " pqr"
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 56 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|       <i>
+-|       <p>
+-|         <i>
+-|           <b>
+-|             " jkl "
+-|           " mno "
+-|         " pqr "
+-
+-#data
+-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 60 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       " abc "
+-|       <b>
+-|         " def "
+-|         <i>
+-|           " ghi "
+-|       <i>
+-|       <p>
+-|         <i>
+-|           <b>
+-|             " jkl "
+-|           " mno "
+-|         " pqr "
+-|       " stu"
+-
+-#data
+-<test attribute-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 --------------------------------------------------->
+-#errors
+-Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE.
+-Line: 1 Col: 1040 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <test>
+-|       attribute-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 -----------------------------------------------------=""
+-
+-#data
+-<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe
+-#errors
+-Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode.
+-Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase.
+-Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase.
+-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
+-
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       href="blah"
+-|       "aba"
+-|       <a>
+-|         href="foo"
+-|         "br"
+-|       <a>
+-|         href="foo"
+-|         "x"
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|     <a>
+-|       href="foo"
+-|       "aoe"
+-
+-#data
+-<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe
+-#errors
+-Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       href="blah"
+-|       "abax"
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <a>
+-|                 href="foo"
+-|                 "br"
+-|       "aoe"
+-
+-#data
+-<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode.
+-Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase.
+-Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase.
+-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       href="blah"
+-|       "aba"
+-|     <a>
+-|       href="blah"
+-|       "x"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <a>
+-|               href="foo"
+-|               "br"
+-|     <a>
+-|       href="blah"
+-|       "aoe"
+-
+-#data
+-<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag.
+-Line: 1 Col: 47 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       href="a"
+-|       "aa"
+-|       <marquee>
+-|         "aa"
+-|         <a>
+-|           href="b"
+-|           "bb"
+-|       "aa"
+-
+-#data
+-<wbr><strike><code></strike><code><strike></code>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE.
+-Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 49 Unexpected end tag (code). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <wbr>
+-|     <strike>
+-|       <code>
+-|     <code>
+-|       <code>
+-|         <strike>
+-
+-#data
+-<!DOCTYPE html><spacer>foo
+-#errors
+-26: End of file seen and there were open elements.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <spacer>
+-|       "foo"
+-
+-#data
+-<title><meta></title><link><title><meta></title>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "<meta>"
+-|     <link>
+-|     <title>
+-|       "<meta>"
+-|   <body>
+-
+-#data
+-<style><!--</style><meta><script>--><link></script>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-Line: 1 Col: 51 Unexpected end of file. Expected end tag (style).
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       "<!--"
+-|     <meta>
+-|     <script>
+-|       "--><link>"
+-|   <body>
+-
+-#data
+-<head><meta></head><link>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved.
+-#document
+-| <html>
+-|   <head>
+-|     <meta>
+-|     <link>
+-|   <body>
+-
+-#data
+-<table><tr><tr><td><td><span><th><span>X</table>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|         <tr>
+-|           <td>
+-|           <td>
+-|             <span>
+-|           <th>
+-|             <span>
+-|               "X"
+-
+-#data
+-<body><body><base><link><meta><title><p></title><body><p></body>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
+-Line: 1 Col: 12 Unexpected start tag (body).
+-Line: 1 Col: 54 Unexpected start tag (body).
+-Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body).
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <base>
+-|     <link>
+-|     <meta>
+-|     <title>
+-|       "<p>"
+-|     <p>
+-
+-#data
+-<textarea><p></textarea>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "<p>"
+-
+-#data
+-<p><image></p>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
+-Line: 1 Col: 10 Unexpected start tag (image). Treated as img.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <img>
+-
+-#data
+-<a><table><a></table><p><a><div><a>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode.
+-Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a).
+-Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
+-Line: 1 Col: 32 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
+-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <a>
+-|       <table>
+-|     <p>
+-|       <a>
+-|     <div>
+-|       <a>
+-
+-#data
+-<head></p><meta><p>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-Line: 1 Col: 10 Unexpected end tag (p). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|     <meta>
+-|   <body>
+-|     <p>
+-
+-#data
+-<head></html><meta><p>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-Line: 1 Col: 19 Unexpected start tag (meta).
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <meta>
+-|     <p>
+-
+-#data
+-<b><table><td><i></table>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <i>
+-
+-#data
+-<b><table><td></b><i></table>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <i>
+-
+-#data
+-<h1><h2>
+-#errors
+-4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-8: Heading cannot be a child of another heading.
+-8: End of file seen and there were open elements.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <h1>
+-|     <h2>
+-
+-#data
+-<a><p><a></a></p></a>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|     <p>
+-|       <a>
+-|       <a>
+-
+-#data
+-<b><button></b></button></b>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|     <button>
+-|       <b>
+-
+-#data
+-<p><b><div><marquee></p></b></div>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 24 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag.
+-Line: 1 Col: 34 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <b>
+-|     <div>
+-|       <b>
+-|         <marquee>
+-|           <p>
+-
+-#data
+-<script></script></div><title></title><p><p>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 23 Unexpected end tag (div). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|     <title>
+-|   <body>
+-|     <p>
+-|     <p>
+-
+-#data
+-<p><hr></p>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <hr>
+-|     <p>
+-
+-#data
+-<select><b><option><select><option></b></select>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored.
+-Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag.
+-Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 48 Unexpected end tag (select). Ignored.
+-Line: 1 Col: 48 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-|     <option>
+-
+-#data
+-<html><head><title></title><body></body></html>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|   <body>
+-
+-#data
+-<a><table><td><a><table></table><a></tr><a></table><a>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing.
+-Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode.
+-Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase.
+-Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a).
+-Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
+-Line: 1 Col: 54 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <a>
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <a>
+-|                 <table>
+-|               <a>
+-|     <a>
+-
+-#data
+-<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>
+-#errors
+-Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE.
+-Line: 1 Col: 45 Missing end tag (div, li).
+-Line: 1 Col: 58 Missing end tag (address, li).
+-Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ul>
+-|       <li>
+-|       <div>
+-|         <li>
+-|       <li>
+-|       <li>
+-|         <div>
+-|       <li>
+-|         <address>
+-|       <li>
+-|         <b>
+-|           <em>
+-|       <li>
+-
+-#data
+-<ul><li><ul></li><li>a</li></ul></li></ul>
+-#errors
+-XXX: fix me
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ul>
+-|       <li>
+-|         <ul>
+-|           <li>
+-|             "a"
+-
+-#data
+-<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <frame>
+-|     <frameset>
+-|       <frame>
+-|     <noframes>
+-
+-#data
+-<h1><table><td><h3></table><h3></h1>
+-#errors
+-4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-15: “td” start tag in table body.
+-27: Unclosed elements.
+-31: Heading cannot be a child of another heading.
+-36: End tag “h1” seen but there were unclosed elements.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <h1>
+-|       <table>
+-|         <tbody>
+-|           <tr>
+-|             <td>
+-|               <h3>
+-|     <h3>
+-
+-#data
+-<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <colgroup>
+-|         <col>
+-|       <colgroup>
+-|         <col>
+-|         <col>
+-|         <col>
+-|       <colgroup>
+-|         <col>
+-|         <col>
+-|       <thead>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<table><col><tbody><col><tr><col><td><col></table><col>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 55 Unexpected start tag col. Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <colgroup>
+-|         <col>
+-|       <tbody>
+-|       <colgroup>
+-|         <col>
+-|       <tbody>
+-|         <tr>
+-|       <colgroup>
+-|         <col>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|       <colgroup>
+-|         <col>
+-
+-#data
+-<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 80 Unexpected start tag colgroup. Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <colgroup>
+-|       <tbody>
+-|       <colgroup>
+-|       <tbody>
+-|         <tr>
+-|       <colgroup>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|       <colgroup>
+-
+-#data
+-</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
+-#errors
+-Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE.
+-Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element.
+-Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element.
+-Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element.
+-Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element.
+-Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element.
+-Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element.
+-Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element.
+-Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element.
+-Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element.
+-Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element.
+-Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element.
+-Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element.
+-Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element.
+-Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element.
+-Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element.
+-Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element.
+-Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element.
+-Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element.
+-Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element.
+-Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element.
+-Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element.
+-Line: 1 Col: 130 Unexpected end tag (br). Treated as br element.
+-Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 140 This element (img) has no end tag.
+-Line: 1 Col: 148 Unexpected end tag (title). Ignored.
+-Line: 1 Col: 155 Unexpected end tag (span). Ignored.
+-Line: 1 Col: 163 Unexpected end tag (style). Ignored.
+-Line: 1 Col: 172 Unexpected end tag (script). Ignored.
+-Line: 1 Col: 180 Unexpected end tag (table). Ignored.
+-Line: 1 Col: 185 Unexpected end tag (th). Ignored.
+-Line: 1 Col: 190 Unexpected end tag (td). Ignored.
+-Line: 1 Col: 195 Unexpected end tag (tr). Ignored.
+-Line: 1 Col: 203 This element (frame) has no end tag.
+-Line: 1 Col: 210 This element (area) has no end tag.
+-Line: 1 Col: 217 Unexpected end tag (link). Ignored.
+-Line: 1 Col: 225 This element (param) has no end tag.
+-Line: 1 Col: 230 This element (hr) has no end tag.
+-Line: 1 Col: 238 This element (input) has no end tag.
+-Line: 1 Col: 244 Unexpected end tag (col). Ignored.
+-Line: 1 Col: 251 Unexpected end tag (base). Ignored.
+-Line: 1 Col: 258 Unexpected end tag (meta). Ignored.
+-Line: 1 Col: 269 This element (basefont) has no end tag.
+-Line: 1 Col: 279 This element (bgsound) has no end tag.
+-Line: 1 Col: 287 This element (embed) has no end tag.
+-Line: 1 Col: 296 This element (spacer) has no end tag.
+-Line: 1 Col: 300 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag.
+-Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag.
+-Line: 1 Col: 320 Unexpected end tag (caption). Ignored.
+-Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored.
+-Line: 1 Col: 339 Unexpected end tag (tbody). Ignored.
+-Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored.
+-Line: 1 Col: 355 Unexpected end tag (thead). Ignored.
+-Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag.
+-Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag.
+-Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag.
+-Line: 1 Col: 393 Unexpected end tag (dir). Ignored.
+-Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag.
+-Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag.
+-Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag.
+-Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag.
+-Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag.
+-Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag.
+-Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag.
+-Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag.
+-Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 460 This element (wbr) has no end tag.
+-Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag.
+-Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag.
+-Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag.
+-Line: 1 Col: 513 Unexpected end tag (html). Ignored.
+-Line: 1 Col: 513 Unexpected end tag (frameset). Ignored.
+-Line: 1 Col: 520 Unexpected end tag (head). Ignored.
+-Line: 1 Col: 529 Unexpected end tag (iframe). Ignored.
+-Line: 1 Col: 537 This element (image) has no end tag.
+-Line: 1 Col: 547 This element (isindex) has no end tag.
+-Line: 1 Col: 557 Unexpected end tag (noembed). Ignored.
+-Line: 1 Col: 568 Unexpected end tag (noframes). Ignored.
+-Line: 1 Col: 579 Unexpected end tag (noscript). Ignored.
+-Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored.
+-Line: 1 Col: 599 Unexpected end tag (option). Ignored.
+-Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored.
+-Line: 1 Col: 622 Unexpected end tag (textarea). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <br>
+-|     <p>
+-
+-#data
+-<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode.
+-Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode.
+-Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode.
+-Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode.
+-Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode.
+-Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode.
+-Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode.
+-Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode.
+-Line: 1 Col: 58 Unexpected end tag (blink). Ignored.
+-Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode.
+-Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode.
+-Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag.
+-Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode.
+-Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode.
+-Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode.
+-Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode.
+-Line: 1 Col: 99 Unexpected end tag (select). Ignored.
+-Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode.
+-Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag.
+-Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode.
+-Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag.
+-Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode.
+-Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag.
+-Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode.
+-Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag.
+-Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode.
+-Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag.
+-Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode.
+-Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag.
+-Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored.
+-Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode.
+-Line: 1 Col: 141 Unexpected end tag (br). Treated as br element.
+-Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode.
+-Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode.
+-Line: 1 Col: 151 This element (img) has no end tag.
+-Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode.
+-Line: 1 Col: 159 Unexpected end tag (title). Ignored.
+-Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode.
+-Line: 1 Col: 166 Unexpected end tag (span). Ignored.
+-Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode.
+-Line: 1 Col: 174 Unexpected end tag (style). Ignored.
+-Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode.
+-Line: 1 Col: 183 Unexpected end tag (script). Ignored.
+-Line: 1 Col: 196 Unexpected end tag (th). Ignored.
+-Line: 1 Col: 201 Unexpected end tag (td). Ignored.
+-Line: 1 Col: 206 Unexpected end tag (tr). Ignored.
+-Line: 1 Col: 214 This element (frame) has no end tag.
+-Line: 1 Col: 221 This element (area) has no end tag.
+-Line: 1 Col: 228 Unexpected end tag (link). Ignored.
+-Line: 1 Col: 236 This element (param) has no end tag.
+-Line: 1 Col: 241 This element (hr) has no end tag.
+-Line: 1 Col: 249 This element (input) has no end tag.
+-Line: 1 Col: 255 Unexpected end tag (col). Ignored.
+-Line: 1 Col: 262 Unexpected end tag (base). Ignored.
+-Line: 1 Col: 269 Unexpected end tag (meta). Ignored.
+-Line: 1 Col: 280 This element (basefont) has no end tag.
+-Line: 1 Col: 290 This element (bgsound) has no end tag.
+-Line: 1 Col: 298 This element (embed) has no end tag.
+-Line: 1 Col: 307 This element (spacer) has no end tag.
+-Line: 1 Col: 311 Unexpected end tag (p). Ignored.
+-Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag.
+-Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag.
+-Line: 1 Col: 331 Unexpected end tag (caption). Ignored.
+-Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored.
+-Line: 1 Col: 350 Unexpected end tag (tbody). Ignored.
+-Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored.
+-Line: 1 Col: 366 Unexpected end tag (thead). Ignored.
+-Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag.
+-Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag.
+-Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag.
+-Line: 1 Col: 404 Unexpected end tag (dir). Ignored.
+-Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag.
+-Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag.
+-Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag.
+-Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag.
+-Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag.
+-Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag.
+-Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag.
+-Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag.
+-Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
+-Line: 1 Col: 471 This element (wbr) has no end tag.
+-Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag.
+-Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag.
+-Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag.
+-Line: 1 Col: 524 Unexpected end tag (html). Ignored.
+-Line: 1 Col: 524 Unexpected end tag (frameset). Ignored.
+-Line: 1 Col: 531 Unexpected end tag (head). Ignored.
+-Line: 1 Col: 540 Unexpected end tag (iframe). Ignored.
+-Line: 1 Col: 548 This element (image) has no end tag.
+-Line: 1 Col: 558 This element (isindex) has no end tag.
+-Line: 1 Col: 568 Unexpected end tag (noembed). Ignored.
+-Line: 1 Col: 579 Unexpected end tag (noframes). Ignored.
+-Line: 1 Col: 590 Unexpected end tag (noscript). Ignored.
+-Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored.
+-Line: 1 Col: 610 Unexpected end tag (option). Ignored.
+-Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored.
+-Line: 1 Col: 633 Unexpected end tag (textarea). Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <br>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|     <p>
+-
+-#data
+-<frameset>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-Line: 1 Col: 10 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests20.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests20.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests20.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests20.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,455 +0,0 @@
+-#data
+-<!doctype html><p><button><button>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|       <button>
+-
+-#data
+-<!doctype html><p><button><address>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <address>
+-
+-#data
+-<!doctype html><p><button><blockquote>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <blockquote>
+-
+-#data
+-<!doctype html><p><button><menu>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <menu>
+-
+-#data
+-<!doctype html><p><button><p>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <p>
+-
+-#data
+-<!doctype html><p><button><ul>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <ul>
+-
+-#data
+-<!doctype html><p><button><h1>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <h1>
+-
+-#data
+-<!doctype html><p><button><h6>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <h6>
+-
+-#data
+-<!doctype html><p><button><listing>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <listing>
+-
+-#data
+-<!doctype html><p><button><pre>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <pre>
+-
+-#data
+-<!doctype html><p><button><form>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <form>
+-
+-#data
+-<!doctype html><p><button><li>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <li>
+-
+-#data
+-<!doctype html><p><button><dd>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <dd>
+-
+-#data
+-<!doctype html><p><button><dt>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <dt>
+-
+-#data
+-<!doctype html><p><button><plaintext>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <plaintext>
+-
+-#data
+-<!doctype html><p><button><table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <table>
+-
+-#data
+-<!doctype html><p><button><hr>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <hr>
+-
+-#data
+-<!doctype html><p><button><xmp>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <xmp>
+-
+-#data
+-<!doctype html><p><button></p>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <button>
+-|         <p>
+-
+-#data
+-<!doctype html><address><button></address>a
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <address>
+-|       <button>
+-|     "a"
+-
+-#data
+-<!doctype html><address><button></address>a
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <address>
+-|       <button>
+-|     "a"
+-
+-#data
+-<p><table></p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <p>
+-|       <table>
+-
+-#data
+-<!doctype html><svg>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-
+-#data
+-<!doctype html><p><figcaption>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <figcaption>
+-
+-#data
+-<!doctype html><p><summary>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <summary>
+-
+-#data
+-<!doctype html><form><table><form>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <table>
+-
+-#data
+-<!doctype html><table><form><form>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <form>
+-
+-#data
+-<!doctype html><table><form></table><form>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <form>
+-
+-#data
+-<!doctype html><svg><foreignObject><p>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg foreignObject>
+-|         <p>
+-
+-#data
+-<!doctype html><svg><title>abc
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg title>
+-|         "abc"
+-
+-#data
+-<option><span><option>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <option>
+-|       <span>
+-|         <option>
+-
+-#data
+-<option><option>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <option>
+-|     <option>
+-
+-#data
+-<math><annotation-xml><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|     <div>
+-
+-#data
+-<math><annotation-xml encoding="application/svg+xml"><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         encoding="application/svg+xml"
+-|     <div>
+-
+-#data
+-<math><annotation-xml encoding="application/xhtml+xml"><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         encoding="application/xhtml+xml"
+-|         <div>
+-
+-#data
+-<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         encoding="aPPlication/xhtmL+xMl"
+-|         <div>
+-
+-#data
+-<math><annotation-xml encoding="text/html"><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         encoding="text/html"
+-|         <div>
+-
+-#data
+-<math><annotation-xml encoding="Text/htmL"><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         encoding="Text/htmL"
+-|         <div>
+-
+-#data
+-<math><annotation-xml encoding=" text/html "><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         encoding=" text/html "
+-|     <div>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests21.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests21.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests21.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests21.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,221 +0,0 @@
+-#data
+-<svg><![CDATA[foo]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "foo"
+-
+-#data
+-<math><![CDATA[foo]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       "foo"
+-
+-#data
+-<div><![CDATA[foo]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <!-- [CDATA[foo]] -->
+-
+-#data
+-<svg><![CDATA[foo
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "foo"
+-
+-#data
+-<svg><![CDATA[foo
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "foo"
+-
+-#data
+-<svg><![CDATA[
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-
+-#data
+-<svg><![CDATA[]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-
+-#data
+-<svg><![CDATA[]] >]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "]] >"
+-
+-#data
+-<svg><![CDATA[]] >]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "]] >"
+-
+-#data
+-<svg><![CDATA[]]
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "]]"
+-
+-#data
+-<svg><![CDATA[]
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "]"
+-
+-#data
+-<svg><![CDATA[]>a
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "]>a"
+-
+-#data
+-<svg><foreignObject><div><![CDATA[foo]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg foreignObject>
+-|         <div>
+-|           <!-- [CDATA[foo]] -->
+-
+-#data
+-<svg><![CDATA[<svg>]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "<svg>"
+-
+-#data
+-<svg><![CDATA[</svg>a]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "</svg>a"
+-
+-#data
+-<svg><![CDATA[<svg>a
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "<svg>a"
+-
+-#data
+-<svg><![CDATA[</svg>a
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "</svg>a"
+-
+-#data
+-<svg><![CDATA[<svg>]]><path>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "<svg>"
+-|       <svg path>
+-
+-#data
+-<svg><![CDATA[<svg>]]></path>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "<svg>"
+-
+-#data
+-<svg><![CDATA[<svg>]]><!--path-->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "<svg>"
+-|       <!-- path -->
+-
+-#data
+-<svg><![CDATA[<svg>]]>path
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "<svg>path"
+-
+-#data
+-<svg><![CDATA[<!--svg-->]]>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       "<!--svg-->"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests22.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests22.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests22.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests22.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,157 +0,0 @@
+-#data
+-<a><b><big><em><strong><div>X</a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <b>
+-|         <big>
+-|           <em>
+-|             <strong>
+-|     <big>
+-|       <em>
+-|         <strong>
+-|           <div>
+-|             <a>
+-|               "X"
+-
+-#data
+-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <b>
+-|     <b>
+-|       <div>
+-|         id="1"
+-|         <a>
+-|         <div>
+-|           id="2"
+-|           <a>
+-|           <div>
+-|             id="3"
+-|             <a>
+-|             <div>
+-|               id="4"
+-|               <a>
+-|               <div>
+-|                 id="5"
+-|                 <a>
+-|                 <div>
+-|                   id="6"
+-|                   <a>
+-|                   <div>
+-|                     id="7"
+-|                     <a>
+-|                     <div>
+-|                       id="8"
+-|                       <a>
+-|                         "A"
+-
+-#data
+-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <b>
+-|     <b>
+-|       <div>
+-|         id="1"
+-|         <a>
+-|         <div>
+-|           id="2"
+-|           <a>
+-|           <div>
+-|             id="3"
+-|             <a>
+-|             <div>
+-|               id="4"
+-|               <a>
+-|               <div>
+-|                 id="5"
+-|                 <a>
+-|                 <div>
+-|                   id="6"
+-|                   <a>
+-|                   <div>
+-|                     id="7"
+-|                     <a>
+-|                     <div>
+-|                       id="8"
+-|                       <a>
+-|                         <div>
+-|                           id="9"
+-|                           "A"
+-
+-#data
+-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       <b>
+-|     <b>
+-|       <div>
+-|         id="1"
+-|         <a>
+-|         <div>
+-|           id="2"
+-|           <a>
+-|           <div>
+-|             id="3"
+-|             <a>
+-|             <div>
+-|               id="4"
+-|               <a>
+-|               <div>
+-|                 id="5"
+-|                 <a>
+-|                 <div>
+-|                   id="6"
+-|                   <a>
+-|                   <div>
+-|                     id="7"
+-|                     <a>
+-|                     <div>
+-|                       id="8"
+-|                       <a>
+-|                         <div>
+-|                           id="9"
+-|                           <div>
+-|                             id="10"
+-|                             "A"
+-
+-#data
+-<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE.
+-Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 50 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <cite>
+-|       <b>
+-|         <cite>
+-|           <i>
+-|             <cite>
+-|               <i>
+-|                 <cite>
+-|                   <i>
+-|       <i>
+-|         <i>
+-|           <div>
+-|             <b>
+-|               "X"
+-|             "TEST"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests23.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests23.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests23.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests23.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,155 +0,0 @@
+-#data
+-<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X
+-#errors
+-3: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-116: Unclosed elements.
+-117: End of file seen and there were open elements.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <font>
+-|         size="4"
+-|         <font>
+-|           color="red"
+-|           <font>
+-|             size="4"
+-|             <font>
+-|               size="4"
+-|               <font>
+-|                 size="4"
+-|                 <font>
+-|                   size="4"
+-|                   <font>
+-|                     size="4"
+-|                     <font>
+-|                       color="red"
+-|     <p>
+-|       <font>
+-|         color="red"
+-|         <font>
+-|           size="4"
+-|           <font>
+-|             size="4"
+-|             <font>
+-|               size="4"
+-|               <font>
+-|                 color="red"
+-|                 "X"
+-
+-#data
+-<p><font size=4><font size=4><font size=4><font size=4><p>X
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <font>
+-|         size="4"
+-|         <font>
+-|           size="4"
+-|           <font>
+-|             size="4"
+-|             <font>
+-|               size="4"
+-|     <p>
+-|       <font>
+-|         size="4"
+-|         <font>
+-|           size="4"
+-|           <font>
+-|             size="4"
+-|             "X"
+-
+-#data
+-<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <font>
+-|         size="4"
+-|         <font>
+-|           size="4"
+-|           <font>
+-|             size="4"
+-|             <font>
+-|               size="5"
+-|               <font>
+-|                 size="4"
+-|     <p>
+-|       <font>
+-|         size="4"
+-|         <font>
+-|           size="4"
+-|           <font>
+-|             size="5"
+-|             <font>
+-|               size="4"
+-|               "X"
+-
+-#data
+-<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <font>
+-|         id="a"
+-|         size="4"
+-|         <font>
+-|           id="b"
+-|           size="4"
+-|           <font>
+-|             size="4"
+-|             <font>
+-|               size="4"
+-|     <p>
+-|       <font>
+-|         id="a"
+-|         size="4"
+-|         <font>
+-|           id="b"
+-|           size="4"
+-|           <font>
+-|             size="4"
+-|             <font>
+-|               size="4"
+-|               "X"
+-
+-#data
+-<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <b>
+-|         id="a"
+-|         <b>
+-|           id="a"
+-|           <b>
+-|             id="a"
+-|             <b>
+-|               <object>
+-|                 <b>
+-|                   id="a"
+-|                   <b>
+-|                     id="a"
+-|                     "X"
+-|     <p>
+-|       <b>
+-|         id="a"
+-|         <b>
+-|           id="a"
+-|           <b>
+-|             id="a"
+-|             <b>
+-|               "Y"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests24.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests24.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests24.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests24.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,79 +0,0 @@
+-#data
+-<!DOCTYPE html>&NotEqualTilde;
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "≂̸"
+-
+-#data
+-<!DOCTYPE html>&NotEqualTilde;A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "≂̸A"
+-
+-#data
+-<!DOCTYPE html>&ThickSpace;
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "  "
+-
+-#data
+-<!DOCTYPE html>&ThickSpace;A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "  A"
+-
+-#data
+-<!DOCTYPE html>&NotSubset;
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "⊂⃒"
+-
+-#data
+-<!DOCTYPE html>&NotSubset;A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "⊂⃒A"
+-
+-#data
+-<!DOCTYPE html>&Gopf;
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "𝔾"
+-
+-#data
+-<!DOCTYPE html>&Gopf;A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "𝔾A"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests25.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests25.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests25.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests25.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,219 +0,0 @@
+-#data
+-<!DOCTYPE html><body><foo>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <foo>
+-|       "A"
+-
+-#data
+-<!DOCTYPE html><body><area>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <area>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><base>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <base>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><basefont>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <basefont>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><bgsound>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <bgsound>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><br>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <br>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><col>A
+-#errors
+-26: Stray start tag “col”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><command>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <command>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><embed>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <embed>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><frame>A
+-#errors
+-26: Stray start tag “frame”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><hr>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <hr>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><img>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <img>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><input>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <input>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><keygen>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <keygen>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><link>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <link>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><meta>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <meta>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><param>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <param>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><source>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <source>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><track>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <track>
+-|     "A"
+-
+-#data
+-<!DOCTYPE html><body><wbr>A
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <wbr>
+-|     "A"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests26.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests26.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests26.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests26.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,313 +0,0 @@
+-#data
+-<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       href="#1"
+-|       <nobr>
+-|         "1"
+-|       <nobr>
+-|     <nobr>
+-|       <br>
+-|       <a>
+-|         href="#2"
+-|     <a>
+-|       href="#2"
+-|       <nobr>
+-|         "2"
+-|       <nobr>
+-|     <nobr>
+-|       <br>
+-|       <a>
+-|         href="#3"
+-|     <a>
+-|       href="#3"
+-|       <nobr>
+-|         "3"
+-|       <nobr>
+-
+-#data
+-<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <nobr>
+-|         "1"
+-|       <nobr>
+-|     <nobr>
+-|       <i>
+-|     <i>
+-|       <nobr>
+-|         "2"
+-|       <nobr>
+-|     <nobr>
+-|       "3"
+-
+-#data
+-<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <nobr>
+-|         "1"
+-|         <nobr>
+-|           <i>
+-|         <i>
+-|           <nobr>
+-|             "2"
+-|           <nobr>
+-|         <nobr>
+-|           "3"
+-|         <table>
+-
+-#data
+-<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <nobr>
+-|         "1"
+-|         <table>
+-|           <tbody>
+-|             <tr>
+-|               <td>
+-|                 <nobr>
+-|                   <i>
+-|                 <i>
+-|                   <nobr>
+-|                     "2"
+-|                   <nobr>
+-|                 <nobr>
+-|                   "3"
+-
+-#data
+-<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <nobr>
+-|         "1"
+-|     <div>
+-|       <b>
+-|         <nobr>
+-|         <nobr>
+-|       <nobr>
+-|         <i>
+-|       <i>
+-|         <nobr>
+-|           "2"
+-|         <nobr>
+-|       <nobr>
+-|         "3"
+-
+-#data
+-<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <nobr>
+-|         "1"
+-|       <nobr>
+-|     <div>
+-|       <nobr>
+-|         <i>
+-|       <i>
+-|         <nobr>
+-|           "2"
+-|         <nobr>
+-|       <nobr>
+-|         "3"
+-
+-#data
+-<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <nobr>
+-|         "1"
+-|       <nobr>
+-|         <ins>
+-|     <nobr>
+-|       <i>
+-|     <i>
+-|       <nobr>
+-
+-#data
+-<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       <nobr>
+-|         "1"
+-|         <ins>
+-|       <nobr>
+-|     <nobr>
+-|       <i>
+-|         "2"
+-
+-#data
+-<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "1"
+-|       <nobr>
+-|     <nobr>
+-|       <i>
+-|     <i>
+-|       <nobr>
+-|         "2"
+-
+-#data
+-<p><code x</code></p>
+-
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <code>
+-|         code=""
+-|         x<=""
+-|     <code>
+-|       code=""
+-|       x<=""
+-|       "
+-"
+-
+-#data
+-<!DOCTYPE html><svg><foreignObject><p><i></p>a
+-#errors
+-45: End tag “p” seen, but there were open elements.
+-41: Unclosed element “i”.
+-46: End of file seen and there were open elements.
+-35: Unclosed element “foreignObject”.
+-20: Unclosed element “svg”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg foreignObject>
+-|         <p>
+-|           <i>
+-|         <i>
+-|           "a"
+-
+-#data
+-<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a
+-#errors
+-56: End tag “p” seen, but there were open elements.
+-52: Unclosed element “i”.
+-57: End of file seen and there were open elements.
+-46: Unclosed element “foreignObject”.
+-31: Unclosed element “svg”.
+-22: Unclosed element “table”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <svg svg>
+-|               <svg foreignObject>
+-|                 <p>
+-|                   <i>
+-|                 <i>
+-|                   "a"
+-
+-#data
+-<!DOCTYPE html><math><mtext><p><i></p>a
+-#errors
+-38: End tag “p” seen, but there were open elements.
+-34: Unclosed element “i”.
+-39: End of file in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mtext>
+-|         <p>
+-|           <i>
+-|         <i>
+-|           "a"
+-
+-#data
+-<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a
+-#errors
+-53: End tag “p” seen, but there were open elements.
+-49: Unclosed element “i”.
+-54: End of file in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <math math>
+-|               <math mtext>
+-|                 <p>
+-|                   <i>
+-|                 <i>
+-|                   "a"
+-
+-#data
+-<!DOCTYPE html><body><div><!/div>a
+-#errors
+-29: Bogus comment.
+-34: End of file seen and there were open elements.
+-26: Unclosed element “div”.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <!-- /div -->
+-|       "a"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests2.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests2.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests2.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests2.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,763 +0,0 @@
+-#data
+-<!DOCTYPE html>Test
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Test"
+-
+-#data
+-<textarea>test</div>test
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
+-Line: 1 Col: 24 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "test</div>test"
+-
+-#data
+-<table><td>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 11 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<table><td>test</tbody></table>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "test"
+-
+-#data
+-<frame>test
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE.
+-Line: 1 Col: 7 Unexpected start tag frame. Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "test"
+-
+-#data
+-<!DOCTYPE html><frameset>test
+-#errors
+-Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored.
+-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!DOCTYPE html><frameset><!DOCTYPE html>
+-#errors
+-Line: 1 Col: 40 Unexpected DOCTYPE. Ignored.
+-Line: 1 Col: 40 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!DOCTYPE html><font><p><b>test</font>
+-#errors
+-Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <font>
+-|     <p>
+-|       <font>
+-|         <b>
+-|           "test"
+-
+-#data
+-<!DOCTYPE html><dt><div><dd>
+-#errors
+-Line: 1 Col: 28 Missing end tag (div, dt).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <dt>
+-|       <div>
+-|     <dd>
+-
+-#data
+-<script></x
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       "</x"
+-|   <body>
+-
+-#data
+-<table><plaintext><td>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode.
+-Line: 1 Col: 22 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <plaintext>
+-|       "<td>"
+-|     <table>
+-
+-#data
+-<plaintext></plaintext>
+-#errors
+-Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE.
+-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <plaintext>
+-|       "</plaintext>"
+-
+-#data
+-<!DOCTYPE html><table><tr>TEST
+-#errors
+-Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 30 Unexpected end of file. Expected table content.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "TEST"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>
+-#errors
+-Line: 1 Col: 37 Unexpected start tag (body).
+-Line: 1 Col: 53 Unexpected start tag (body).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     t1="1"
+-|     t2="2"
+-|     t3="3"
+-|     t4="4"
+-
+-#data
+-</b test
+-#errors
+-Line: 1 Col: 8 Unexpected end of file in attribute name.
+-Line: 1 Col: 8 End tag contains unexpected attributes.
+-Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE.
+-Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html></b test<b &=&amp>X
+-#errors
+-Line: 1 Col: 32 Named entity didn't end with ';'.
+-Line: 1 Col: 33 End tag contains unexpected attributes.
+-Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "X"
+-
+-#data
+-<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt
+-#errors
+-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
+-Line: 1 Col: 54 Unexpected end of file in the tag name.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       type="text/x-foobar;baz"
+-|       "X</SCRipt"
+-|   <body>
+-
+-#data
+-&
+-#errors
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "&"
+-
+-#data
+-&#
+-#errors
+-Line: 1 Col: 1 Numeric entity expected. Got end of file instead.
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "&#"
+-
+-#data
+-&#X
+-#errors
+-Line: 1 Col: 3 Numeric entity expected but none found.
+-Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "&#X"
+-
+-#data
+-&#x
+-#errors
+-Line: 1 Col: 3 Numeric entity expected but none found.
+-Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "&#x"
+-
+-#data
+-&#45
+-#errors
+-Line: 1 Col: 4 Numeric entity didn't end with ';'.
+-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "-"
+-
+-#data
+-&x-test
+-#errors
+-Line: 1 Col: 1 Named entity expected. Got none.
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "&x-test"
+-
+-#data
+-<!doctypehtml><p><li>
+-#errors
+-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <li>
+-
+-#data
+-<!doctypehtml><p><dt>
+-#errors
+-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <dt>
+-
+-#data
+-<!doctypehtml><p><dd>
+-#errors
+-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <dd>
+-
+-#data
+-<!doctypehtml><p><form>
+-#errors
+-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
+-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <form>
+-
+-#data
+-<!DOCTYPE html><p></P>X
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     "X"
+-
+-#data
+-&AMP
+-#errors
+-Line: 1 Col: 4 Named entity didn't end with ';'.
+-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "&"
+-
+-#data
+-&AMp;
+-#errors
+-Line: 1 Col: 1 Named entity expected. Got none.
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "&AMp;"
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>
+-#errors
+-Line: 1 Col: 110 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>
+-
+-#data
+-<!DOCTYPE html>X</body>X
+-#errors
+-Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "XX"
+-
+-#data
+-<!DOCTYPE html><!-- X
+-#errors
+-Line: 1 Col: 21 Unexpected end of file in comment.
+-#document
+-| <!DOCTYPE html>
+-| <!--  X -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><table><caption>test TEST</caption><td>test
+-#errors
+-Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 58 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         "test TEST"
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "test"
+-
+-#data
+-<!DOCTYPE html><select><option><optgroup>
+-#errors
+-Line: 1 Col: 41 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-|       <optgroup>
+-
+-#data
+-<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>
+-#errors
+-Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag.
+-Line: 1 Col: 76 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <optgroup>
+-|         <option>
+-|       <option>
+-|     <option>
+-
+-#data
+-<!DOCTYPE html><select><optgroup><option><optgroup>
+-#errors
+-Line: 1 Col: 51 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <optgroup>
+-|         <option>
+-|       <optgroup>
+-
+-#data
+-<!DOCTYPE html><datalist><option>foo</datalist>bar
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <datalist>
+-|       <option>
+-|         "foo"
+-|     "bar"
+-
+-#data
+-<!DOCTYPE html><font><input><input></font>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <font>
+-|       <input>
+-|       <input>
+-
+-#data
+-<!DOCTYPE html><!-- XXX - XXX -->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <!--  XXX - XXX  -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><!-- XXX - XXX
+-#errors
+-Line: 1 Col: 29 Unexpected end of file in comment (-)
+-#document
+-| <!DOCTYPE html>
+-| <!--  XXX - XXX -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><!-- XXX - XXX - XXX -->
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <!--  XXX - XXX - XXX  -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<isindex test=x name=x>
+-#errors
+-Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE.
+-Line: 1 Col: 23 Unexpected start tag isindex. Don't use it!
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <hr>
+-|       <label>
+-|         "This is a searchable index. Enter search keywords: "
+-|         <input>
+-|           name="isindex"
+-|           test="x"
+-|       <hr>
+-
+-#data
+-test
+-test
+-#errors
+-Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "test
+-test"
+-
+-#data
+-<!DOCTYPE html><body><title>test</body></title>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <title>
+-|       "test</body>"
+-
+-#data
+-<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>
+-x { content:"</style" } </style>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <title>
+-|       "X"
+-|     <meta>
+-|       name="z"
+-|     <link>
+-|       rel="foo"
+-|     <style>
+-|       "
+-x { content:"</style" } "
+-
+-#data
+-<!DOCTYPE html><select><optgroup></optgroup></select>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <optgroup>
+-
+-#data
+- 
+- 
+-#errors
+-Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html>  <html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><script>
+-</script>  <title>x</title>  </head>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <script>
+-|       "
+-"
+-|     "  "
+-|     <title>
+-|       "x"
+-|     "  "
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><html><body><html id=x>
+-#errors
+-Line: 1 Col: 38 html needs to be the first start tag.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   id="x"
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html>X</body><html id="x">
+-#errors
+-Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase.
+-Line: 1 Col: 36 html needs to be the first start tag.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   id="x"
+-|   <head>
+-|   <body>
+-|     "X"
+-
+-#data
+-<!DOCTYPE html><head><html id=x>
+-#errors
+-Line: 1 Col: 32 html needs to be the first start tag.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   id="x"
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html>X</html>X
+-#errors
+-Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "XX"
+-
+-#data
+-<!DOCTYPE html>X</html> 
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "X "
+-
+-#data
+-<!DOCTYPE html>X</html><p>X
+-#errors
+-Line: 1 Col: 26 Unexpected start tag (p).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "X"
+-|     <p>
+-|       "X"
+-
+-#data
+-<!DOCTYPE html>X<p/x/y/z>
+-#errors
+-Line: 1 Col: 19 Expected a > after the /.
+-Line: 1 Col: 21 Solidus (/) incorrectly placed in tag.
+-Line: 1 Col: 23 Solidus (/) incorrectly placed in tag.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "X"
+-|     <p>
+-|       x=""
+-|       y=""
+-|       z=""
+-
+-#data
+-<!DOCTYPE html><!--x--
+-#errors
+-Line: 1 Col: 22 Unexpected end of file in comment (--).
+-#document
+-| <!DOCTYPE html>
+-| <!-- x -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><table><tr><td></p></table>
+-#errors
+-Line: 1 Col: 34 Unexpected end tag (p). Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <p>
+-
+-#data
+-<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->
+-#errors
+-Line: 1 Col: 20 Expected space or '>'. Got ''
+-Line: 1 Col: 25 Erroneous DOCTYPE.
+-Line: 1 Col: 35 Unexpected character in comment found.
+-#document
+-| <!DOCTYPE <!doctype>
+-| <html>
+-|   <head>
+-|   <body>
+-|     ">"
+-|     <!-- <!--x -->
+-|     "-->"
+-
+-#data
+-<!doctype html><div><form></form><div></div></div>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <form>
+-|       <div>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests3.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests3.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests3.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests3.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,305 +0,0 @@
+-#data
+-<head></head><style></style>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|   <body>
+-
+-#data
+-<head></head><script></script>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|   <body>
+-
+-#data
+-<head></head><!-- --><style></style><!-- --><script></script>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|     <script>
+-|   <!--   -->
+-|   <!--   -->
+-|   <body>
+-
+-#data
+-<head></head><!-- -->x<style></style><!-- --><script></script>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <!--   -->
+-|   <body>
+-|     "x"
+-|     <style>
+-|     <!--   -->
+-|     <script>
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><pre>
+-</pre></body></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><pre>
+-foo</pre></body></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-|       "foo"
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><pre>
+-
+-foo</pre></body></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-|       "
+-foo"
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><pre>
+-foo
+-</pre></body></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-|       "foo
+-"
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><pre>x</pre><span>
+-</span></body></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-|       "x"
+-|     <span>
+-|       "
+-"
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><pre>x
+-y</pre></body></html>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-|       "x
+-y"
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><pre>x<div>
+-y</pre></body></html>
+-#errors
+-Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-|       "x"
+-|       <div>
+-|         "
+-y"
+-
+-#data
+-<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <pre>
+-|       "
+-A"
+-
+-#data
+-<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>
+-#errors
+-Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <meta>
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>
+-#errors
+-Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<textarea>foo<span>bar</span><i>baz
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
+-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "foo<span>bar</span><i>baz"
+-
+-#data
+-<title>foo<span>bar</em><i>baz
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-Line: 1 Col: 30 Unexpected end of file. Expected end tag (title).
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "foo<span>bar</em><i>baz"
+-|   <body>
+-
+-#data
+-<!DOCTYPE html><textarea>
+-</textarea>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-
+-#data
+-<!DOCTYPE html><textarea>
+-foo</textarea>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "foo"
+-
+-#data
+-<!DOCTYPE html><textarea>
+-
+-foo</textarea>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       "
+-foo"
+-
+-#data
+-<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>
+-#errors
+-Line: 1 Col: 60 Missing end tag (div, li).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ul>
+-|       <li>
+-|         <div>
+-|           <p>
+-|       <li>
+-
+-#data
+-<!doctype html><nobr><nobr><nobr>
+-#errors
+-Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
+-Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr).
+-Line: 1 Col: 33 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <nobr>
+-|     <nobr>
+-|     <nobr>
+-
+-#data
+-<!doctype html><nobr><nobr></nobr><nobr>
+-#errors
+-Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
+-Line: 1 Col: 40 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <nobr>
+-|     <nobr>
+-|     <nobr>
+-
+-#data
+-<!doctype html><html><body><p><table></table></body></html>
+-#errors
+-Not known
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <table>
+-
+-#data
+-<p><table></table>
+-#errors
+-Not known
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <table>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests4.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests4.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests4.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests4.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,59 +0,0 @@
+-#data
+-direct div content
+-#errors
+-#document-fragment
+-div
+-#document
+-| "direct div content"
+-
+-#data
+-direct textarea content
+-#errors
+-#document-fragment
+-textarea
+-#document
+-| "direct textarea content"
+-
+-#data
+-textarea content with <em>pseudo</em> <foo>markup
+-#errors
+-#document-fragment
+-textarea
+-#document
+-| "textarea content with <em>pseudo</em> <foo>markup"
+-
+-#data
+-this is &#x0043;DATA inside a <style> element
+-#errors
+-#document-fragment
+-style
+-#document
+-| "this is &#x0043;DATA inside a <style> element"
+-
+-#data
+-</plaintext>
+-#errors
+-#document-fragment
+-plaintext
+-#document
+-| "</plaintext>"
+-
+-#data
+-setting html's innerHTML
+-#errors
+-Line: 1 Col: 24 Unexpected EOF in inner html mode.
+-#document-fragment
+-html
+-#document
+-| <head>
+-| <body>
+-|   "setting html's innerHTML"
+-
+-#data
+-<title>setting head's innerHTML</title>
+-#errors
+-#document-fragment
+-head
+-#document
+-| <title>
+-|   "setting head's innerHTML"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests5.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests5.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests5.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests5.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,191 +0,0 @@
+-#data
+-<style> <!-- </style>x
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected end of file. Expected end tag (style).
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       " <!-- "
+-|   <body>
+-|     "x"
+-
+-#data
+-<style> <!-- </style> --> </style>x
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       " <!-- "
+-|     " "
+-|   <body>
+-|     "--> x"
+-
+-#data
+-<style> <!--> </style>x
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       " <!--> "
+-|   <body>
+-|     "x"
+-
+-#data
+-<style> <!---> </style>x
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       " <!---> "
+-|   <body>
+-|     "x"
+-
+-#data
+-<iframe> <!---> </iframe>x
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <iframe>
+-|       " <!---> "
+-|     "x"
+-
+-#data
+-<iframe> <!--- </iframe>->x</iframe> --> </iframe>x
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <iframe>
+-|       " <!--- "
+-|     "->x --> x"
+-
+-#data
+-<script> <!-- </script> --> </script>x
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <script>
+-|       " <!-- "
+-|     " "
+-|   <body>
+-|     "--> x"
+-
+-#data
+-<title> <!-- </title> --> </title>x
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       " <!-- "
+-|     " "
+-|   <body>
+-|     "--> x"
+-
+-#data
+-<textarea> <!--- </textarea>->x</textarea> --> </textarea>x
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <textarea>
+-|       " <!--- "
+-|     "->x --> x"
+-
+-#data
+-<style> <!</-- </style>x
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|       " <!</-- "
+-|   <body>
+-|     "x"
+-
+-#data
+-<p><xmp></xmp>
+-#errors
+-XXX: Unknown
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|     <xmp>
+-
+-#data
+-<xmp> <!-- > --> </xmp>
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <xmp>
+-|       " <!-- > --> "
+-
+-#data
+-<title>&amp;</title>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "&"
+-|   <body>
+-
+-#data
+-<title><!--&amp;--></title>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "<!--&-->"
+-|   <body>
+-
+-#data
+-<title><!--</title>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
+-Line: 1 Col: 19 Unexpected end of file. Expected end tag (title).
+-#document
+-| <html>
+-|   <head>
+-|     <title>
+-|       "<!--"
+-|   <body>
+-
+-#data
+-<noscript><!--</noscript>--></noscript>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|     <noscript>
+-|       "<!--"
+-|   <body>
+-|     "-->"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests6.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests6.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests6.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests6.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,663 +0,0 @@
+-#data
+-<!doctype html></head> <head>
+-#errors
+-Line: 1 Col: 29 Unexpected start tag head. Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   " "
+-|   <body>
+-
+-#data
+-<!doctype html><form><div></form><div>
+-#errors
+-33: End tag "form" seen but there were unclosed elements.
+-38: End of file seen and there were open elements.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-|       <div>
+-|         <div>
+-
+-#data
+-<!doctype html><title>&amp;</title>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "&"
+-|   <body>
+-
+-#data
+-<!doctype html><title><!--&amp;--></title>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "<!--&-->"
+-|   <body>
+-
+-#data
+-<!doctype>
+-#errors
+-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
+-Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name.
+-Line: 1 Col: 10 Erroneous DOCTYPE.
+-#document
+-| <!DOCTYPE >
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!---x
+-#errors
+-Line: 1 Col: 6 Unexpected end of file in comment.
+-Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE.
+-#document
+-| <!-- -x -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<body>
+-<div>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (body).
+-Line: 2 Col: 5 Expected closing tag. Unexpected end of file.
+-#document-fragment
+-div
+-#document
+-| "
+-"
+-| <div>
+-
+-#data
+-<frameset></frameset>
+-foo
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   "
+-"
+-
+-#data
+-<frameset></frameset>
+-<noframes>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-Line: 2 Col: 10 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   "
+-"
+-|   <noframes>
+-
+-#data
+-<frameset></frameset>
+-<div>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   "
+-"
+-
+-#data
+-<frameset></frameset>
+-</html>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   "
+-"
+-
+-#data
+-<frameset></frameset>
+-</div>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   "
+-"
+-
+-#data
+-<form><form>
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE.
+-Line: 1 Col: 12 Unexpected start tag (form).
+-Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <form>
+-
+-#data
+-<button><button>
+-#errors
+-Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE.
+-Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button).
+-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <button>
+-|     <button>
+-
+-#data
+-<table><tr><td></th>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected end tag (th). Ignored.
+-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<table><caption><td>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected end tag (td). Ignored.
+-Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase.
+-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<table><caption><div>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 21 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <div>
+-
+-#data
+-</caption><div>
+-#errors
+-Line: 1 Col: 10 Unexpected end tag (caption). Ignored.
+-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
+-#document-fragment
+-caption
+-#document
+-| <div>
+-
+-#data
+-<table><caption><div></caption>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div).
+-Line: 1 Col: 31 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <div>
+-
+-#data
+-<table><caption></table>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-
+-#data
+-</table><div>
+-#errors
+-Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption.
+-Line: 1 Col: 8 Unexpected end tag (caption). Ignored.
+-Line: 1 Col: 13 Expected closing tag. Unexpected end of file.
+-#document-fragment
+-caption
+-#document
+-| <div>
+-
+-#data
+-<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 23 Unexpected end tag (body). Ignored.
+-Line: 1 Col: 29 Unexpected end tag (col). Ignored.
+-Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored.
+-Line: 1 Col: 47 Unexpected end tag (html). Ignored.
+-Line: 1 Col: 55 Unexpected end tag (tbody). Ignored.
+-Line: 1 Col: 60 Unexpected end tag (td). Ignored.
+-Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored.
+-Line: 1 Col: 73 Unexpected end tag (th). Ignored.
+-Line: 1 Col: 81 Unexpected end tag (thead). Ignored.
+-Line: 1 Col: 86 Unexpected end tag (tr). Ignored.
+-Line: 1 Col: 86 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-
+-#data
+-<table><caption><div></div>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 27 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <div>
+-
+-#data
+-<table><tr><td></body></caption></col></colgroup></html>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected end tag (body). Ignored.
+-Line: 1 Col: 32 Unexpected end tag (caption). Ignored.
+-Line: 1 Col: 38 Unexpected end tag (col). Ignored.
+-Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored.
+-Line: 1 Col: 56 Unexpected end tag (html). Ignored.
+-Line: 1 Col: 56 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-</table></tbody></tfoot></thead></tr><div>
+-#errors
+-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
+-Line: 1 Col: 16 Unexpected end tag (tbody). Ignored.
+-Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored.
+-Line: 1 Col: 32 Unexpected end tag (thead). Ignored.
+-Line: 1 Col: 37 Unexpected end tag (tr). Ignored.
+-Line: 1 Col: 42 Expected closing tag. Unexpected end of file.
+-#document-fragment
+-td
+-#document
+-| <div>
+-
+-#data
+-<table><colgroup>foo
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 20 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "foo"
+-|     <table>
+-|       <colgroup>
+-
+-#data
+-foo<col>
+-#errors
+-Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored.
+-#document-fragment
+-colgroup
+-#document
+-| <col>
+-
+-#data
+-<table><colgroup></col>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 23 This element (col) has no end tag.
+-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <colgroup>
+-
+-#data
+-<frameset><div>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored.
+-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-</frameset><frame>
+-#errors
+-Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML).
+-#document-fragment
+-frameset
+-#document
+-| <frame>
+-
+-#data
+-<frameset></div>
+-#errors
+-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
+-Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored.
+-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-</body><div>
+-#errors
+-Line: 1 Col: 7 Unexpected end tag (body). Ignored.
+-Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
+-#document-fragment
+-body
+-#document
+-| <div>
+-
+-#data
+-<table><tr><div>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode.
+-Line: 1 Col: 16 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-</tr><td>
+-#errors
+-Line: 1 Col: 5 Unexpected end tag (tr). Ignored.
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-</tbody></tfoot></thead><td>
+-#errors
+-Line: 1 Col: 8 Unexpected end tag (tbody). Ignored.
+-Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored.
+-Line: 1 Col: 24 Unexpected end tag (thead). Ignored.
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<table><tr><div><td>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode.
+-Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase.
+-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<caption><col><colgroup><tbody><tfoot><thead><tr>
+-#errors
+-Line: 1 Col: 9 Unexpected start tag (caption).
+-Line: 1 Col: 14 Unexpected start tag (col).
+-Line: 1 Col: 24 Unexpected start tag (colgroup).
+-Line: 1 Col: 31 Unexpected start tag (tbody).
+-Line: 1 Col: 38 Unexpected start tag (tfoot).
+-Line: 1 Col: 45 Unexpected start tag (thead).
+-Line: 1 Col: 49 Unexpected end of file. Expected table content.
+-#document-fragment
+-tbody
+-#document
+-| <tr>
+-
+-#data
+-<table><tbody></thead>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored.
+-Line: 1 Col: 22 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-
+-#data
+-</table><tr>
+-#errors
+-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
+-Line: 1 Col: 12 Unexpected end of file. Expected table content.
+-#document-fragment
+-tbody
+-#document
+-| <tr>
+-
+-#data
+-<table><tbody></body></caption></col></colgroup></html></td></th></tr>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored.
+-Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored.
+-Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored.
+-Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored.
+-Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored.
+-Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored.
+-Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored.
+-Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored.
+-Line: 1 Col: 70 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-
+-#data
+-<table><tbody></div>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode.
+-Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag.
+-Line: 1 Col: 20 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-
+-#data
+-<table><table>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table).
+-Line: 1 Col: 14 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|     <table>
+-
+-#data
+-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 14 Unexpected end tag (body). Ignored.
+-Line: 1 Col: 24 Unexpected end tag (caption). Ignored.
+-Line: 1 Col: 30 Unexpected end tag (col). Ignored.
+-Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored.
+-Line: 1 Col: 48 Unexpected end tag (html). Ignored.
+-Line: 1 Col: 56 Unexpected end tag (tbody). Ignored.
+-Line: 1 Col: 61 Unexpected end tag (td). Ignored.
+-Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored.
+-Line: 1 Col: 74 Unexpected end tag (th). Ignored.
+-Line: 1 Col: 82 Unexpected end tag (thead). Ignored.
+-Line: 1 Col: 87 Unexpected end tag (tr). Ignored.
+-Line: 1 Col: 87 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-
+-#data
+-</table><tr>
+-#errors
+-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
+-Line: 1 Col: 12 Unexpected end of file. Expected table content.
+-#document-fragment
+-table
+-#document
+-| <tbody>
+-|   <tr>
+-
+-#data
+-<body></body></html>
+-#errors
+-Line: 1 Col: 20 Unexpected html end tag in inner html mode.
+-Line: 1 Col: 20 Unexpected EOF in inner html mode.
+-#document-fragment
+-html
+-#document
+-| <head>
+-| <body>
+-
+-#data
+-<html><frameset></frameset></html> 
+-#errors
+-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|   " "
+-
+-#data
+-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html>
+-#errors
+-Line: 1 Col: 50 Erroneous DOCTYPE.
+-Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element.
+-#document
+-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "">
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<param><frameset></frameset>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (param). Expected DOCTYPE.
+-Line: 1 Col: 17 Unexpected start tag (frameset).
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<source><frameset></frameset>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (source). Expected DOCTYPE.
+-Line: 1 Col: 17 Unexpected start tag (frameset).
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<track><frameset></frameset>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (track). Expected DOCTYPE.
+-Line: 1 Col: 17 Unexpected start tag (frameset).
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-</html><frameset></frameset>
+-#errors
+-7: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-17: Stray “frameset” start tag.
+-17: “frameset” start tag seen.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-</body><frameset></frameset>
+-#errors
+-7: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+-17: Stray “frameset” start tag.
+-17: “frameset” start tag seen.
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests7.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests7.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests7.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests7.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,390 +0,0 @@
+-#data
+-<!doctype html><body><title>X</title>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <title>
+-|       "X"
+-
+-#data
+-<!doctype html><table><title>X</title></table>
+-#errors
+-Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode.
+-Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <title>
+-|       "X"
+-|     <table>
+-
+-#data
+-<!doctype html><head></head><title>X</title>
+-#errors
+-Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "X"
+-|   <body>
+-
+-#data
+-<!doctype html></head><title>X</title>
+-#errors
+-Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|     <title>
+-|       "X"
+-|   <body>
+-
+-#data
+-<!doctype html><table><meta></table>
+-#errors
+-Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <meta>
+-|     <table>
+-
+-#data
+-<!doctype html><table>X<tr><td><table> <meta></table></table>
+-#errors
+-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "X"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <meta>
+-|             <table>
+-|               " "
+-
+-#data
+-<!doctype html><html> <head>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!doctype html> <head>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!doctype html><table><style> <tr>x </style> </table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <style>
+-|         " <tr>x "
+-|       " "
+-
+-#data
+-<!doctype html><table><TBODY><script> <tr>x </script> </table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <script>
+-|           " <tr>x "
+-|         " "
+-
+-#data
+-<!doctype html><p><applet><p>X</p></applet>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <applet>
+-|         <p>
+-|           "X"
+-
+-#data
+-<!doctype html><listing>
+-X</listing>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <listing>
+-|       "X"
+-
+-#data
+-<!doctype html><select><input>X
+-#errors
+-Line: 1 Col: 30 Unexpected input start tag in the select phase.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|     <input>
+-|     "X"
+-
+-#data
+-<!doctype html><select><select>X
+-#errors
+-Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|     "X"
+-
+-#data
+-<!doctype html><table><input type=hidDEN></table>
+-#errors
+-Line: 1 Col: 41 Unexpected input with type hidden in table context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <input>
+-|         type="hidDEN"
+-
+-#data
+-<!doctype html><table>X<input type=hidDEN></table>
+-#errors
+-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     "X"
+-|     <table>
+-|       <input>
+-|         type="hidDEN"
+-
+-#data
+-<!doctype html><table>  <input type=hidDEN></table>
+-#errors
+-Line: 1 Col: 43 Unexpected input with type hidden in table context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       "  "
+-|       <input>
+-|         type="hidDEN"
+-
+-#data
+-<!doctype html><table>  <input type='hidDEN'></table>
+-#errors
+-Line: 1 Col: 45 Unexpected input with type hidden in table context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       "  "
+-|       <input>
+-|         type="hidDEN"
+-
+-#data
+-<!doctype html><table><input type=" hidden"><input type=hidDEN></table>
+-#errors
+-Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <input>
+-|       type=" hidden"
+-|     <table>
+-|       <input>
+-|         type="hidDEN"
+-
+-#data
+-<!doctype html><table><select>X<tr>
+-#errors
+-Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode.
+-Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase.
+-Line: 1 Col: 35 Unexpected end of file. Expected table content.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       "X"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!doctype html><select>X</select>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       "X"
+-
+-#data
+-<!DOCTYPE hTmL><html></html>
+-#errors
+-Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<!DOCTYPE HTML><html></html>
+-#errors
+-Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<body>X</body></body>
+-#errors
+-Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase.
+-Line: 1 Col: 21 Unexpected EOF in inner html mode.
+-#document-fragment
+-html
+-#document
+-| <head>
+-| <body>
+-|   "X"
+-
+-#data
+-<div><p>a</x> b
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 13 Unexpected end tag (x). Ignored.
+-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <p>
+-|         "a b"
+-
+-#data
+-<table><tr><td><code></code> </table>
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <code>
+-|             " "
+-
+-#data
+-<table><b><tr><td>aaa</td></tr>bbb</table>ccc
+-#errors
+-XXX: Fix me
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|     <b>
+-|       "bbb"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "aaa"
+-|     <b>
+-|       "ccc"
+-
+-#data
+-A<table><tr> B</tr> B</table>
+-#errors
+-XXX: Fix me
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "A B B"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-A<table><tr> B</tr> </em>C</table>
+-#errors
+-XXX: Fix me
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "A BC"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|         " "
+-
+-#data
+-<select><keygen>
+-#errors
+-Not known
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|     <keygen>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests8.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests8.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests8.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests8.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,148 +0,0 @@
+-#data
+-<div>
+-<div></div>
+-</span>x
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 3 Col: 7 Unexpected end tag (span). Ignored.
+-Line: 3 Col: 8 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "
+-"
+-|       <div>
+-|       "
+-x"
+-
+-#data
+-<div>x<div></div>
+-</span>x
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 2 Col: 7 Unexpected end tag (span). Ignored.
+-Line: 2 Col: 8 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "x"
+-|       <div>
+-|       "
+-x"
+-
+-#data
+-<div>x<div></div>x</span>x
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 25 Unexpected end tag (span). Ignored.
+-Line: 1 Col: 26 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "x"
+-|       <div>
+-|       "xx"
+-
+-#data
+-<div>x<div></div>y</span>z
+-#errors
+-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
+-Line: 1 Col: 25 Unexpected end tag (span). Ignored.
+-Line: 1 Col: 26 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "x"
+-|       <div>
+-|       "yz"
+-
+-#data
+-<table><div>x<div></div>x</span>x
+-#errors
+-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
+-Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode.
+-Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode.
+-Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode.
+-Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode.
+-Line: 1 Col: 32 Unexpected end tag (span). Ignored.
+-Line: 1 Col: 33 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "x"
+-|       <div>
+-|       "xx"
+-|     <table>
+-
+-#data
+-x<table>x
+-#errors
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 9 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "xx"
+-|     <table>
+-
+-#data
+-x<table><table>x
+-#errors
+-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
+-Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table).
+-Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode.
+-Line: 1 Col: 16 Unexpected end of file. Expected table content.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "x"
+-|     <table>
+-|     "x"
+-|     <table>
+-
+-#data
+-<b>a<div></div><div></b>y
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
+-Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|       "a"
+-|       <div>
+-|     <div>
+-|       <b>
+-|       "y"
+-
+-#data
+-<a><div><p></a>
+-#errors
+-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
+-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
+-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|     <div>
+-|       <a>
+-|       <p>
+-|         <a>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests9.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests9.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests9.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests9.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,457 +0,0 @@
+-#data
+-<!DOCTYPE html><math></math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-
+-#data
+-<!DOCTYPE html><body><math></math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-
+-#data
+-<!DOCTYPE html><math><mi>
+-#errors
+-25: End of file in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-
+-#data
+-<!DOCTYPE html><math><annotation-xml><svg><u>
+-#errors
+-45: HTML start tag “u” in a foreign namespace context.
+-45: End of file seen and there were open elements.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math annotation-xml>
+-|         <svg svg>
+-|     <u>
+-
+-#data
+-<!DOCTYPE html><body><select><math></math></select>
+-#errors
+-Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored.
+-Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-
+-#data
+-<!DOCTYPE html><body><select><option><math></math></option></select>
+-#errors
+-Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored.
+-Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-
+-#data
+-<!DOCTYPE html><body><table><math></math></table>
+-#errors
+-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
+-Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|     <table>
+-
+-#data
+-<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>
+-#errors
+-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
+-Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         "foo"
+-|     <table>
+-
+-#data
+-<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>
+-#errors
+-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
+-Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         "foo"
+-|       <math mi>
+-|         "bar"
+-|     <table>
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>
+-#errors
+-Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode.
+-Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         "foo"
+-|       <math mi>
+-|         "bar"
+-|     <table>
+-|       <tbody>
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>
+-#errors
+-Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode.
+-Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         "foo"
+-|       <math mi>
+-|         "bar"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <math math>
+-|               <math mi>
+-|                 "foo"
+-|               <math mi>
+-|                 "bar"
+-
+-#data
+-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <math math>
+-|               <math mi>
+-|                 "foo"
+-|               <math mi>
+-|                 "bar"
+-|             <p>
+-|               "baz"
+-
+-#data
+-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <math math>
+-|           <math mi>
+-|             "foo"
+-|           <math mi>
+-|             "bar"
+-|         <p>
+-|           "baz"
+-
+-#data
+-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
+-#errors
+-Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context.
+-Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <math math>
+-|           <math mi>
+-|             "foo"
+-|           <math mi>
+-|             "bar"
+-|         <p>
+-|           "baz"
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux
+-#errors
+-Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption.
+-Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math).
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <caption>
+-|         <math math>
+-|           <math mi>
+-|             "foo"
+-|           <math mi>
+-|             "bar"
+-|           "baz"
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
+-#errors
+-Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode.
+-Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode.
+-Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context.
+-Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         "foo"
+-|       <math mi>
+-|         "bar"
+-|     <p>
+-|       "baz"
+-|     <table>
+-|       <colgroup>
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
+-#errors
+-Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored.
+-Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored.
+-Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored.
+-Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored.
+-Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored.
+-Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored.
+-Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <select>
+-|               "foobarbaz"
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
+-#errors
+-Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode.
+-Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored.
+-Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored.
+-Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored.
+-Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored.
+-Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored.
+-Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored.
+-Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       "foobarbaz"
+-|     <table>
+-|     <p>
+-|       "quux"
+-
+-#data
+-<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz
+-#errors
+-Line: 1 Col: 41 Unexpected start tag (math).
+-Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         "foo"
+-|       <math mi>
+-|         "bar"
+-|     <p>
+-|       "baz"
+-
+-#data
+-<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz
+-#errors
+-Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase.
+-Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mi>
+-|         "foo"
+-|       <math mi>
+-|         "bar"
+-|     <p>
+-|       "baz"
+-
+-#data
+-<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>
+-#errors
+-Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored.
+-Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored.
+-Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored.
+-Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored.
+-Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored.
+-Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored.
+-Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored.
+-Line: 1 Col: 58 Expected closing tag. Unexpected end of file.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>
+-#errors
+-Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored.
+-Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored.
+-Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored.
+-Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored.
+-Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored.
+-Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored.
+-Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored.
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     <math math>
+-|       xlink href="foo"
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     xml:lang="en"
+-|     <math math>
+-|       <math mi>
+-|         xlink href="foo"
+-|         xml lang="en"
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     xml:lang="en"
+-|     <math math>
+-|       <math mi>
+-|         xlink href="foo"
+-|         xml lang="en"
+-
+-#data
+-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     xlink:href="foo"
+-|     xml:lang="en"
+-|     <math math>
+-|       <math mi>
+-|         xlink href="foo"
+-|         xml lang="en"
+-|       "bar"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests_innerHTML_1.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests_innerHTML_1.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests_innerHTML_1.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tests_innerHTML_1.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,741 +0,0 @@
+-#data
+-<body><span>
+-#errors
+-#document-fragment
+-body
+-#document
+-| <span>
+-
+-#data
+-<span><body>
+-#errors
+-#document-fragment
+-body
+-#document
+-| <span>
+-
+-#data
+-<span><body>
+-#errors
+-#document-fragment
+-div
+-#document
+-| <span>
+-
+-#data
+-<body><span>
+-#errors
+-#document-fragment
+-html
+-#document
+-| <head>
+-| <body>
+-|   <span>
+-
+-#data
+-<frameset><span>
+-#errors
+-#document-fragment
+-body
+-#document
+-| <span>
+-
+-#data
+-<span><frameset>
+-#errors
+-#document-fragment
+-body
+-#document
+-| <span>
+-
+-#data
+-<span><frameset>
+-#errors
+-#document-fragment
+-div
+-#document
+-| <span>
+-
+-#data
+-<frameset><span>
+-#errors
+-#document-fragment
+-html
+-#document
+-| <head>
+-| <frameset>
+-
+-#data
+-<table><tr>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <tbody>
+-|   <tr>
+-
+-#data
+-</table><tr>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <tbody>
+-|   <tr>
+-
+-#data
+-<a>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-
+-#data
+-<a>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-
+-#data
+-<a><caption>a
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <caption>
+-|   "a"
+-
+-#data
+-<a><colgroup><col>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <colgroup>
+-|   <col>
+-
+-#data
+-<a><tbody><tr>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <tbody>
+-|   <tr>
+-
+-#data
+-<a><tfoot><tr>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <tfoot>
+-|   <tr>
+-
+-#data
+-<a><thead><tr>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <thead>
+-|   <tr>
+-
+-#data
+-<a><tr>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <tbody>
+-|   <tr>
+-
+-#data
+-<a><th>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <tbody>
+-|   <tr>
+-|     <th>
+-
+-#data
+-<a><td>
+-#errors
+-#document-fragment
+-table
+-#document
+-| <a>
+-| <tbody>
+-|   <tr>
+-|     <td>
+-
+-#data
+-<table></table><tbody>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <table>
+-
+-#data
+-</table><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-
+-#data
+-<span></table>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-
+-#data
+-</caption><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-
+-#data
+-<span></caption><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><caption><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><col><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><colgroup><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><html><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><tbody><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><td><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><tfoot><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><thead><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><th><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span><tr><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-<span></table><span>
+-#errors
+-#document-fragment
+-caption
+-#document
+-| <span>
+-|   <span>
+-
+-#data
+-</colgroup><col>
+-#errors
+-#document-fragment
+-colgroup
+-#document
+-| <col>
+-
+-#data
+-<a><col>
+-#errors
+-#document-fragment
+-colgroup
+-#document
+-| <col>
+-
+-#data
+-<caption><a>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-
+-#data
+-<col><a>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-
+-#data
+-<colgroup><a>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-
+-#data
+-<tbody><a>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-
+-#data
+-<tfoot><a>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-
+-#data
+-<thead><a>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-
+-#data
+-</table><a>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-
+-#data
+-<a><tr>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-| <tr>
+-
+-#data
+-<a><td>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-| <tr>
+-|   <td>
+-
+-#data
+-<a><td>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-| <tr>
+-|   <td>
+-
+-#data
+-<a><td>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <a>
+-| <tr>
+-|   <td>
+-
+-#data
+-<td><table><tbody><a><tr>
+-#errors
+-#document-fragment
+-tbody
+-#document
+-| <tr>
+-|   <td>
+-|     <a>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-</tr><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<td><table><a><tr></tr><tr>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-|   <a>
+-|   <table>
+-|     <tbody>
+-|       <tr>
+-|       <tr>
+-
+-#data
+-<caption><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<col><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<colgroup><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<tbody><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<tfoot><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<thead><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<tr><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-</table><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-
+-#data
+-<td><table></table><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-|   <table>
+-| <td>
+-
+-#data
+-<td><table></table><td>
+-#errors
+-#document-fragment
+-tr
+-#document
+-| <td>
+-|   <table>
+-| <td>
+-
+-#data
+-<caption><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<col><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<colgroup><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<tbody><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<tfoot><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<th><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<thead><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<tr><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-</table><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-</tbody><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-</td><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-</tfoot><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-</thead><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-</th><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-</tr><a>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <a>
+-
+-#data
+-<table><td><td>
+-#errors
+-#document-fragment
+-td
+-#document
+-| <table>
+-|   <tbody>
+-|     <tr>
+-|       <td>
+-|       <td>
+-
+-#data
+-</select><option>
+-#errors
+-#document-fragment
+-select
+-#document
+-| <option>
+-
+-#data
+-<input><option>
+-#errors
+-#document-fragment
+-select
+-#document
+-| <option>
+-
+-#data
+-<keygen><option>
+-#errors
+-#document-fragment
+-select
+-#document
+-| <option>
+-
+-#data
+-<textarea><option>
+-#errors
+-#document-fragment
+-select
+-#document
+-| <option>
+-
+-#data
+-</html><!--abc-->
+-#errors
+-#document-fragment
+-html
+-#document
+-| <head>
+-| <body>
+-| <!-- abc -->
+-
+-#data
+-</frameset><frame>
+-#errors
+-#document-fragment
+-frameset
+-#document
+-| <frame>
+-
+-#data
+-#errors
+-#document-fragment
+-html
+-#document
+-| <head>
+-| <body>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tricky01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tricky01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tricky01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/tricky01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,261 +0,0 @@
+-#data
+-<b><p>Bold </b> Not bold</p>
+-Also not bold.
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <b>
+-|     <p>
+-|       <b>
+-|         "Bold "
+-|       " Not bold"
+-|     "
+-Also not bold."
+-
+-#data
+-<html>
+-<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain
+-<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>
+-<p>Italic and red. </i> Red.</font> I should not be red.</p>
+-<b>Bold <i>Bold and italic</b> Only Italic </i> Plain
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <font>
+-|       color="red"
+-|       <i>
+-|         "Italic and Red"
+-|     <i>
+-|       <p>
+-|         <font>
+-|           color="red"
+-|           "Italic and Red "
+-|         " Just italic."
+-|       " Italic only."
+-|     " Plain
+-"
+-|     <p>
+-|       "I should not be red. "
+-|       <font>
+-|         color="red"
+-|         "Red. "
+-|         <i>
+-|           "Italic and red."
+-|     <font>
+-|       color="red"
+-|       <i>
+-|         "
+-"
+-|     <p>
+-|       <font>
+-|         color="red"
+-|         <i>
+-|           "Italic and red. "
+-|         " Red."
+-|       " I should not be red."
+-|     "
+-"
+-|     <b>
+-|       "Bold "
+-|       <i>
+-|         "Bold and italic"
+-|     <i>
+-|       " Only Italic "
+-|     " Plain"
+-
+-#data
+-<html><body>
+-<p><font size="7">First paragraph.</p>
+-<p>Second paragraph.</p></font>
+-<b><p><i>Bold and Italic</b> Italic</p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "
+-"
+-|     <p>
+-|       <font>
+-|         size="7"
+-|         "First paragraph."
+-|     <font>
+-|       size="7"
+-|       "
+-"
+-|       <p>
+-|         "Second paragraph."
+-|     "
+-"
+-|     <b>
+-|     <p>
+-|       <b>
+-|         <i>
+-|           "Bold and Italic"
+-|       <i>
+-|         " Italic"
+-
+-#data
+-<html>
+-<dl>
+-<dt><b>Boo
+-<dd>Goo?
+-</dl>
+-</html>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <dl>
+-|       "
+-"
+-|       <dt>
+-|         <b>
+-|           "Boo
+-"
+-|       <dd>
+-|         <b>
+-|           "Goo?
+-"
+-|     <b>
+-|       "
+-"
+-
+-#data
+-<html><body>
+-<label><a><div>Hello<div>World</div></a></label>  
+-</body></html>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "
+-"
+-|     <label>
+-|       <a>
+-|       <div>
+-|         <a>
+-|           "Hello"
+-|           <div>
+-|             "World"
+-|         "  
+-"
+-
+-#data
+-<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <center>
+-|       " "
+-|       <font>
+-|         "a"
+-|     <font>
+-|       <img>
+-|       " "
+-|     <table>
+-|       " "
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             " "
+-|           " "
+-|         " "
+-
+-#data
+-<table><tr><p><a><p>You should see this text.
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       <a>
+-|     <p>
+-|       <a>
+-|         "You should see this text."
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-
+-#data
+-<TABLE>
+-<TR>
+-<CENTER><CENTER><TD></TD></TR><TR>
+-<FONT>
+-<TABLE><tr></tr></TABLE>
+-</P>
+-<a></font><font></a>
+-This page contains an insanely badly-nested tag sequence.
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <center>
+-|       <center>
+-|     <font>
+-|       "
+-"
+-|     <table>
+-|       "
+-"
+-|       <tbody>
+-|         <tr>
+-|           "
+-"
+-|           <td>
+-|         <tr>
+-|           "
+-"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|     <font>
+-|       "
+-"
+-|       <p>
+-|       "
+-"
+-|       <a>
+-|     <a>
+-|       <font>
+-|     <font>
+-|       "
+-This page contains an insanely badly-nested tag sequence."
+-
+-#data
+-<html>
+-<body>
+-<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the
+-nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>
+-</body>
+-</html>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "
+-"
+-|     <b>
+-|       <nobr>
+-|     <div>
+-|       <b>
+-|         <nobr>
+-|           "This text is in a div inside a nobr"
+-|         "More text that should not be in the nobr, i.e., the
+-nobr should have closed the div inside it implicitly. "
+-|       <pre>
+-|         "A pre tag outside everything else."
+-|       "
+-
+-"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit01.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit01.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit01.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit01.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,610 +0,0 @@
+-#data
+-Test
+-#errors
+-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "Test"
+-
+-#data
+-<div></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-
+-#data
+-<div>Test</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "Test"
+-
+-#data
+-<di
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<div>Hello</div>
+-<script>
+-console.log("PASS");
+-</script>
+-<div>Bye</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "Hello"
+-|     "
+-"
+-|     <script>
+-|       "
+-console.log("PASS");
+-"
+-|     "
+-"
+-|     <div>
+-|       "Bye"
+-
+-#data
+-<div foo="bar">Hello</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       foo="bar"
+-|       "Hello"
+-
+-#data
+-<div>Hello</div>
+-<script>
+-console.log("FOO<span>BAR</span>BAZ");
+-</script>
+-<div>Bye</div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       "Hello"
+-|     "
+-"
+-|     <script>
+-|       "
+-console.log("FOO<span>BAR</span>BAZ");
+-"
+-|     "
+-"
+-|     <div>
+-|       "Bye"
+-
+-#data
+-<foo bar="baz"></foo><potato quack="duck"></potato>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <foo>
+-|       bar="baz"
+-|     <potato>
+-|       quack="duck"
+-
+-#data
+-<foo bar="baz"><potato quack="duck"></potato></foo>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <foo>
+-|       bar="baz"
+-|       <potato>
+-|         quack="duck"
+-
+-#data
+-<foo></foo bar="baz"><potato></potato quack="duck">
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <foo>
+-|     <potato>
+-
+-#data
+-</ tttt>
+-#errors
+-#document
+-| <!--  tttt -->
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<div FOO ><img><img></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       foo=""
+-|       <img>
+-|       <img>
+-
+-#data
+-<p>Test</p<p>Test2</p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       "TestTest2"
+-
+-#data
+-<rdar://problem/6869687>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <rdar:>
+-|       6869687=""
+-|       problem=""
+-
+-#data
+-<A>test< /A>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|       "test< /A>"
+-
+-#data
+-&lt;
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "<"
+-
+-#data
+-<body foo='bar'><body foo='baz' yo='mama'>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     foo="bar"
+-|     yo="mama"
+-
+-#data
+-<body></br foo="bar"></body>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <br>
+-
+-#data
+-<bdy><br foo="bar"></body>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <bdy>
+-|       <br>
+-|         foo="bar"
+-
+-#data
+-<body></body></br foo="bar">
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <br>
+-
+-#data
+-<bdy></body><br foo="bar">
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <bdy>
+-|       <br>
+-|         foo="bar"
+-
+-#data
+-<html><body></body></html><!-- Hi there -->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-| <!--  Hi there  -->
+-
+-#data
+-<html><body></body></html>x<!-- Hi there -->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "x"
+-|     <!--  Hi there  -->
+-
+-#data
+-<html><body></body></html>x<!-- Hi there --></html><!-- Again -->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "x"
+-|     <!--  Hi there  -->
+-| <!--  Again  -->
+-
+-#data
+-<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "x"
+-|     <!--  Hi there  -->
+-| <!--  Again  -->
+-
+-#data
+-<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <div>
+-|         <rp>
+-|           "xx"
+-
+-#data
+-<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ruby>
+-|       <div>
+-|         <rt>
+-|           "xx"
+-
+-#data
+-<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <frameset>
+-|     <!-- 1 -->
+-|     <noframes>
+-|       "A"
+-|     <!-- 2 -->
+-|   <!-- 3 -->
+-|   <noframes>
+-|     "B"
+-|   <!-- 4 -->
+-|   <noframes>
+-|     "C"
+-| <!-- 5 -->
+-| <!-- 6 -->
+-
+-#data
+-<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <select>
+-|       <option>
+-|         "A"
+-|     <option>
+-|       "B"
+-|       <select>
+-|         <option>
+-|           "C"
+-|     <option>
+-|       "D"
+-|       <select>
+-|         <option>
+-|           "E"
+-|     <option>
+-|       "F"
+-|       <select>
+-|         <option>
+-|           "G"
+-
+-#data
+-<dd><dd><dt><dt><dd><li><li>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <dd>
+-|     <dd>
+-|     <dt>
+-|     <dt>
+-|     <dd>
+-|       <li>
+-|       <li>
+-
+-#data
+-<div><b></div><div><nobr>a<nobr>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <b>
+-|     <div>
+-|       <b>
+-|         <nobr>
+-|           "a"
+-|         <nobr>
+-
+-#data
+-<head></head>
+-<body></body>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   "
+-"
+-|   <body>
+-
+-#data
+-<head></head> <style></style>ddd
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|     <style>
+-|   " "
+-|   <body>
+-|     "ddd"
+-
+-#data
+-<kbd><table></kbd><col><select><tr>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <kbd>
+-|       <select>
+-|       <table>
+-|         <colgroup>
+-|           <col>
+-|         <tbody>
+-|           <tr>
+-
+-#data
+-<kbd><table></kbd><col><select><tr></table><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <kbd>
+-|       <select>
+-|       <table>
+-|         <colgroup>
+-|           <col>
+-|         <tbody>
+-|           <tr>
+-|       <div>
+-
+-#data
+-<a><li><style></style><title></title></a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|     <li>
+-|       <a>
+-|         <style>
+-|         <title>
+-
+-#data
+-<font></p><p><meta><title></title></font>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <font>
+-|       <p>
+-|     <p>
+-|       <font>
+-|         <meta>
+-|         <title>
+-
+-#data
+-<a><center><title></title><a>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <a>
+-|     <center>
+-|       <a>
+-|         <title>
+-|       <a>
+-
+-#data
+-<svg><title><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg title>
+-|         <div>
+-
+-#data
+-<svg><title><rect><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg title>
+-|         <rect>
+-|           <div>
+-
+-#data
+-<svg><title><svg><div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg title>
+-|         <svg svg>
+-|         <div>
+-
+-#data
+-<img <="" FAIL>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <img>
+-|       <=""
+-|       fail=""
+-
+-#data
+-<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <ul>
+-|       <li>
+-|         <div>
+-|           id="foo"
+-|           "A"
+-|       <li>
+-|         "B"
+-|         <div>
+-|           "C"
+-
+-#data
+-<svg><em><desc></em>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|     <em>
+-|       <desc>
+-
+-#data
+-<table><tr><td><svg><desc><td></desc><circle>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             <svg svg>
+-|               <svg desc>
+-|           <td>
+-|             <circle>
+-
+-#data
+-<svg><tfoot></mi><td>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <svg svg>
+-|       <svg tfoot>
+-|         <svg td>
+-
+-#data
+-<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <math math>
+-|       <math mrow>
+-|         <math mrow>
+-|           <math mn>
+-|             "1"
+-|         <math mi>
+-|           "a"
+-
+-#data
+-<!doctype html><input type="hidden"><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <frameset>
+-
+-#data
+-<!doctype html><input type="button"><frameset>
+-#errors
+-#document
+-| <!DOCTYPE html>
+-| <html>
+-|   <head>
+-|   <body>
+-|     <input>
+-|       type="button"
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit02.dat docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit02.dat
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit02.dat	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/testdata/webkit/webkit02.dat	1969-12-31 18:00:00.000000000 -0600
+@@ -1,159 +0,0 @@
+-#data
+-<foo bar=qux/>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <foo>
+-|       bar="qux/"
+-
+-#data
+-<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <p>
+-|       id="status"
+-|       <noscript>
+-|         "<strong>A</strong>"
+-|       <span>
+-|         "B"
+-
+-#data
+-<div><sarcasm><div></div></sarcasm></div>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <div>
+-|       <sarcasm>
+-|         <div>
+-
+-#data
+-<html><body><img src="" border="0" alt="><div>A</div></body></html>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-
+-#data
+-<table><td></tbody>A
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     "A"
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-
+-#data
+-<table><td></thead>A
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "A"
+-
+-#data
+-<table><td></tfoot>A
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <tbody>
+-|         <tr>
+-|           <td>
+-|             "A"
+-
+-#data
+-<table><thead><td></tbody>A
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <table>
+-|       <thead>
+-|         <tr>
+-|           <td>
+-|             "A"
+-
+-#data
+-<legend>test</legend>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <legend>
+-|       "test"
+-
+-#data
+-<table><input>
+-#errors
+-#document
+-| <html>
+-|   <head>
+-|   <body>
+-|     <input>
+-|     <table>
+-
+-#data
+-<b><em><dcell><postfield><postfield><postfield><postfield><missing_glyph><missing_glyph><missing_glyph><missing_glyph><hkern><aside></b></em>
+-#errors
+-#document-fragment
+-div
+-#document
+-| <b>
+-|   <em>
+-|     <dcell>
+-|       <postfield>
+-|         <postfield>
+-|           <postfield>
+-|             <postfield>
+-|               <missing_glyph>
+-|                 <missing_glyph>
+-|                   <missing_glyph>
+-|                     <missing_glyph>
+-|                       <hkern>
+-| <aside>
+-|   <em>
+-|     <b>
+-
+-#data
+-<isindex action="x">
+-#errors
+-#document-fragment
+-table
+-#document
+-| <form>
+-|   action="x"
+-| <hr>
+-| <label>
+-|   "This is a searchable index. Enter search keywords: "
+-|   <input>
+-|     name="isindex"
+-| <hr>
+-
+-#data
+-<option><XH<optgroup></optgroup>
+-#errors
+-#document-fragment
+-select
+-#document
+-| <option>
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/token.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/token.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/token.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/token.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,1174 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"bytes"
+-	"io"
+-	"strconv"
+-	"strings"
+-
+-	"code.google.com/p/go.net/html/atom"
+-)
+-
+-// A TokenType is the type of a Token.
+-type TokenType uint32
+-
+-const (
+-	// ErrorToken means that an error occurred during tokenization.
+-	ErrorToken TokenType = iota
+-	// TextToken means a text node.
+-	TextToken
+-	// A StartTagToken looks like <a>.
+-	StartTagToken
+-	// An EndTagToken looks like </a>.
+-	EndTagToken
+-	// A SelfClosingTagToken tag looks like <br/>.
+-	SelfClosingTagToken
+-	// A CommentToken looks like <!--x-->.
+-	CommentToken
+-	// A DoctypeToken looks like <!DOCTYPE x>
+-	DoctypeToken
+-)
+-
+-// String returns a string representation of the TokenType.
+-func (t TokenType) String() string {
+-	switch t {
+-	case ErrorToken:
+-		return "Error"
+-	case TextToken:
+-		return "Text"
+-	case StartTagToken:
+-		return "StartTag"
+-	case EndTagToken:
+-		return "EndTag"
+-	case SelfClosingTagToken:
+-		return "SelfClosingTag"
+-	case CommentToken:
+-		return "Comment"
+-	case DoctypeToken:
+-		return "Doctype"
+-	}
+-	return "Invalid(" + strconv.Itoa(int(t)) + ")"
+-}
+-
+-// An Attribute is an attribute namespace-key-value triple. Namespace is
+-// non-empty for foreign attributes like xlink, Key is alphabetic (and hence
+-// does not contain escapable characters like '&', '<' or '>'), and Val is
+-// unescaped (it looks like "a<b" rather than "a&lt;b").
+-//
+-// Namespace is only used by the parser, not the tokenizer.
+-type Attribute struct {
+-	Namespace, Key, Val string
+-}
+-
+-// A Token consists of a TokenType and some Data (tag name for start and end
+-// tags, content for text, comments and doctypes). A tag Token may also contain
+-// a slice of Attributes. Data is unescaped for all Tokens (it looks like "a<b"
+-// rather than "a&lt;b"). For tag Tokens, DataAtom is the atom for Data, or
+-// zero if Data is not a known tag name.
+-type Token struct {
+-	Type     TokenType
+-	DataAtom atom.Atom
+-	Data     string
+-	Attr     []Attribute
+-}
+-
+-// tagString returns a string representation of a tag Token's Data and Attr.
+-func (t Token) tagString() string {
+-	if len(t.Attr) == 0 {
+-		return t.Data
+-	}
+-	buf := bytes.NewBufferString(t.Data)
+-	for _, a := range t.Attr {
+-		buf.WriteByte(' ')
+-		buf.WriteString(a.Key)
+-		buf.WriteString(`="`)
+-		escape(buf, a.Val)
+-		buf.WriteByte('"')
+-	}
+-	return buf.String()
+-}
+-
+-// String returns a string representation of the Token.
+-func (t Token) String() string {
+-	switch t.Type {
+-	case ErrorToken:
+-		return ""
+-	case TextToken:
+-		return EscapeString(t.Data)
+-	case StartTagToken:
+-		return "<" + t.tagString() + ">"
+-	case EndTagToken:
+-		return "</" + t.tagString() + ">"
+-	case SelfClosingTagToken:
+-		return "<" + t.tagString() + "/>"
+-	case CommentToken:
+-		return "<!--" + t.Data + "-->"
+-	case DoctypeToken:
+-		return "<!DOCTYPE " + t.Data + ">"
+-	}
+-	return "Invalid(" + strconv.Itoa(int(t.Type)) + ")"
+-}
+-
+-// span is a range of bytes in a Tokenizer's buffer. The start is inclusive,
+-// the end is exclusive.
+-type span struct {
+-	start, end int
+-}
+-
+-// A Tokenizer returns a stream of HTML Tokens.
+-type Tokenizer struct {
+-	// r is the source of the HTML text.
+-	r io.Reader
+-	// tt is the TokenType of the current token.
+-	tt TokenType
+-	// err is the first error encountered during tokenization. It is possible
+-	// for tt != Error && err != nil to hold: this means that Next returned a
+-	// valid token but the subsequent Next call will return an error token.
+-	// For example, if the HTML text input was just "plain", then the first
+-	// Next call would set z.err to io.EOF but return a TextToken, and all
+-	// subsequent Next calls would return an ErrorToken.
+-	// err is never reset. Once it becomes non-nil, it stays non-nil.
+-	err error
+-	// buf[raw.start:raw.end] holds the raw bytes of the current token.
+-	// buf[raw.end:] is buffered input that will yield future tokens.
+-	raw span
+-	buf []byte
+-	// buf[data.start:data.end] holds the raw bytes of the current token's data:
+-	// a text token's text, a tag token's tag name, etc.
+-	data span
+-	// pendingAttr is the attribute key and value currently being tokenized.
+-	// When complete, pendingAttr is pushed onto attr. nAttrReturned is
+-	// incremented on each call to TagAttr.
+-	pendingAttr   [2]span
+-	attr          [][2]span
+-	nAttrReturned int
+-	// rawTag is the "script" in "</script>" that closes the next token. If
+-	// non-empty, the subsequent call to Next will return a raw or RCDATA text
+-	// token: one that treats "<p>" as text instead of an element.
+-	// rawTag's contents are lower-cased.
+-	rawTag string
+-	// textIsRaw is whether the current text token's data is not escaped.
+-	textIsRaw bool
+-	// convertNUL is whether NUL bytes in the current token's data should
+-	// be converted into \ufffd replacement characters.
+-	convertNUL bool
+-	// allowCDATA is whether CDATA sections are allowed in the current context.
+-	allowCDATA bool
+-}
+-
+-// AllowCDATA sets whether or not the tokenizer recognizes <![CDATA[foo]]> as
+-// the text "foo". The default value is false, which means to recognize it as
+-// a bogus comment "<!-- [CDATA[foo]] -->" instead.
+-//
+-// Strictly speaking, an HTML5 compliant tokenizer should allow CDATA if and
+-// only if tokenizing foreign content, such as MathML and SVG. However,
+-// tracking foreign-contentness is difficult to do purely in the tokenizer,
+-// as opposed to the parser, due to HTML integration points: an <svg> element
+-// can contain a <foreignObject> that is foreign-to-SVG but not foreign-to-
+-// HTML. For strict compliance with the HTML5 tokenization algorithm, it is the
+-// responsibility of the user of a tokenizer to call AllowCDATA as appropriate.
+-// In practice, if using the tokenizer without caring whether MathML or SVG
+-// CDATA is text or comments, such as tokenizing HTML to find all the anchor
+-// text, it is acceptable to ignore this responsibility.
+-func (z *Tokenizer) AllowCDATA(allowCDATA bool) {
+-	z.allowCDATA = allowCDATA
+-}
+-
+-// NextIsNotRawText instructs the tokenizer that the next token should not be
+-// considered as 'raw text'. Some elements, such as script and title elements,
+-// normally require the next token after the opening tag to be 'raw text' that
+-// has no child elements. For example, tokenizing "<title>a<b>c</b>d</title>"
+-// yields a start tag token for "<title>", a text token for "a<b>c</b>d", and
+-// an end tag token for "</title>". There are no distinct start tag or end tag
+-// tokens for the "<b>" and "</b>".
+-//
+-// This tokenizer implementation will generally look for raw text at the right
+-// times. Strictly speaking, an HTML5 compliant tokenizer should not look for
+-// raw text if in foreign content: <title> generally needs raw text, but a
+-// <title> inside an <svg> does not. Another example is that a <textarea>
+-// generally needs raw text, but a <textarea> is not allowed as an immediate
+-// child of a <select>; in normal parsing, a <textarea> implies </select>, but
+-// one cannot close the implicit element when parsing a <select>'s InnerHTML.
+-// Similarly to AllowCDATA, tracking the correct moment to override raw-text-
+-// ness is difficult to do purely in the tokenizer, as opposed to the parser.
+-// For strict compliance with the HTML5 tokenization algorithm, it is the
+-// responsibility of the user of a tokenizer to call NextIsNotRawText as
+-// appropriate. In practice, like AllowCDATA, it is acceptable to ignore this
+-// responsibility for basic usage.
+-//
+-// Note that this 'raw text' concept is different from the one offered by the
+-// Tokenizer.Raw method.
+-func (z *Tokenizer) NextIsNotRawText() {
+-	z.rawTag = ""
+-}
+-
+-// Err returns the error associated with the most recent ErrorToken token.
+-// This is typically io.EOF, meaning the end of tokenization.
+-func (z *Tokenizer) Err() error {
+-	if z.tt != ErrorToken {
+-		return nil
+-	}
+-	return z.err
+-}
+-
+-// readByte returns the next byte from the input stream, doing a buffered read
+-// from z.r into z.buf if necessary. z.buf[z.raw.start:z.raw.end] remains a contiguous byte
+-// slice that holds all the bytes read so far for the current token.
+-// It sets z.err if the underlying reader returns an error.
+-// Pre-condition: z.err == nil.
+-func (z *Tokenizer) readByte() byte {
+-	if z.raw.end >= len(z.buf) {
+-		// Our buffer is exhausted and we have to read from z.r.
+-		// We copy z.buf[z.raw.start:z.raw.end] to the beginning of z.buf. If the length
+-		// z.raw.end - z.raw.start is more than half the capacity of z.buf, then we
+-		// allocate a new buffer before the copy.
+-		c := cap(z.buf)
+-		d := z.raw.end - z.raw.start
+-		var buf1 []byte
+-		if 2*d > c {
+-			buf1 = make([]byte, d, 2*c)
+-		} else {
+-			buf1 = z.buf[:d]
+-		}
+-		copy(buf1, z.buf[z.raw.start:z.raw.end])
+-		if x := z.raw.start; x != 0 {
+-			// Adjust the data/attr spans to refer to the same contents after the copy.
+-			z.data.start -= x
+-			z.data.end -= x
+-			z.pendingAttr[0].start -= x
+-			z.pendingAttr[0].end -= x
+-			z.pendingAttr[1].start -= x
+-			z.pendingAttr[1].end -= x
+-			for i := range z.attr {
+-				z.attr[i][0].start -= x
+-				z.attr[i][0].end -= x
+-				z.attr[i][1].start -= x
+-				z.attr[i][1].end -= x
+-			}
+-		}
+-		z.raw.start, z.raw.end, z.buf = 0, d, buf1[:d]
+-		// Now that we have copied the live bytes to the start of the buffer,
+-		// we read from z.r into the remainder.
+-		n, err := z.r.Read(buf1[d:cap(buf1)])
+-		if err != nil {
+-			z.err = err
+-			return 0
+-		}
+-		z.buf = buf1[:d+n]
+-	}
+-	x := z.buf[z.raw.end]
+-	z.raw.end++
+-	return x
+-}
+-
+-// skipWhiteSpace skips past any white space.
+-func (z *Tokenizer) skipWhiteSpace() {
+-	if z.err != nil {
+-		return
+-	}
+-	for {
+-		c := z.readByte()
+-		if z.err != nil {
+-			return
+-		}
+-		switch c {
+-		case ' ', '\n', '\r', '\t', '\f':
+-			// No-op.
+-		default:
+-			z.raw.end--
+-			return
+-		}
+-	}
+-}
+-
+-// readRawOrRCDATA reads until the next "</foo>", where "foo" is z.rawTag and
+-// is typically something like "script" or "textarea".
+-func (z *Tokenizer) readRawOrRCDATA() {
+-	if z.rawTag == "script" {
+-		z.readScript()
+-		z.textIsRaw = true
+-		z.rawTag = ""
+-		return
+-	}
+-loop:
+-	for {
+-		c := z.readByte()
+-		if z.err != nil {
+-			break loop
+-		}
+-		if c != '<' {
+-			continue loop
+-		}
+-		c = z.readByte()
+-		if z.err != nil {
+-			break loop
+-		}
+-		if c != '/' {
+-			continue loop
+-		}
+-		if z.readRawEndTag() || z.err != nil {
+-			break loop
+-		}
+-	}
+-	z.data.end = z.raw.end
+-	// A textarea's or title's RCDATA can contain escaped entities.
+-	z.textIsRaw = z.rawTag != "textarea" && z.rawTag != "title"
+-	z.rawTag = ""
+-}
+-
+-// readRawEndTag attempts to read a tag like "</foo>", where "foo" is z.rawTag.
+-// If it succeeds, it backs up the input position to reconsume the tag and
+-// returns true. Otherwise it returns false. The opening "</" has already been
+-// consumed.
+-func (z *Tokenizer) readRawEndTag() bool {
+-	for i := 0; i < len(z.rawTag); i++ {
+-		c := z.readByte()
+-		if z.err != nil {
+-			return false
+-		}
+-		if c != z.rawTag[i] && c != z.rawTag[i]-('a'-'A') {
+-			z.raw.end--
+-			return false
+-		}
+-	}
+-	c := z.readByte()
+-	if z.err != nil {
+-		return false
+-	}
+-	switch c {
+-	case ' ', '\n', '\r', '\t', '\f', '/', '>':
+-		// The 3 is 2 for the leading "</" plus 1 for the trailing character c.
+-		z.raw.end -= 3 + len(z.rawTag)
+-		return true
+-	}
+-	z.raw.end--
+-	return false
+-}
+-
+-// readScript reads until the next </script> tag, following the byzantine
+-// rules for escaping/hiding the closing tag.
+-func (z *Tokenizer) readScript() {
+-	defer func() {
+-		z.data.end = z.raw.end
+-	}()
+-	var c byte
+-
+-scriptData:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	if c == '<' {
+-		goto scriptDataLessThanSign
+-	}
+-	goto scriptData
+-
+-scriptDataLessThanSign:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case '/':
+-		goto scriptDataEndTagOpen
+-	case '!':
+-		goto scriptDataEscapeStart
+-	}
+-	z.raw.end--
+-	goto scriptData
+-
+-scriptDataEndTagOpen:
+-	if z.readRawEndTag() || z.err != nil {
+-		return
+-	}
+-	goto scriptData
+-
+-scriptDataEscapeStart:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	if c == '-' {
+-		goto scriptDataEscapeStartDash
+-	}
+-	z.raw.end--
+-	goto scriptData
+-
+-scriptDataEscapeStartDash:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	if c == '-' {
+-		goto scriptDataEscapedDashDash
+-	}
+-	z.raw.end--
+-	goto scriptData
+-
+-scriptDataEscaped:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case '-':
+-		goto scriptDataEscapedDash
+-	case '<':
+-		goto scriptDataEscapedLessThanSign
+-	}
+-	goto scriptDataEscaped
+-
+-scriptDataEscapedDash:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case '-':
+-		goto scriptDataEscapedDashDash
+-	case '<':
+-		goto scriptDataEscapedLessThanSign
+-	}
+-	goto scriptDataEscaped
+-
+-scriptDataEscapedDashDash:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case '-':
+-		goto scriptDataEscapedDashDash
+-	case '<':
+-		goto scriptDataEscapedLessThanSign
+-	case '>':
+-		goto scriptData
+-	}
+-	goto scriptDataEscaped
+-
+-scriptDataEscapedLessThanSign:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	if c == '/' {
+-		goto scriptDataEscapedEndTagOpen
+-	}
+-	if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
+-		goto scriptDataDoubleEscapeStart
+-	}
+-	z.raw.end--
+-	goto scriptData
+-
+-scriptDataEscapedEndTagOpen:
+-	if z.readRawEndTag() || z.err != nil {
+-		return
+-	}
+-	goto scriptDataEscaped
+-
+-scriptDataDoubleEscapeStart:
+-	z.raw.end--
+-	for i := 0; i < len("script"); i++ {
+-		c = z.readByte()
+-		if z.err != nil {
+-			return
+-		}
+-		if c != "script"[i] && c != "SCRIPT"[i] {
+-			z.raw.end--
+-			goto scriptDataEscaped
+-		}
+-	}
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case ' ', '\n', '\r', '\t', '\f', '/', '>':
+-		goto scriptDataDoubleEscaped
+-	}
+-	z.raw.end--
+-	goto scriptDataEscaped
+-
+-scriptDataDoubleEscaped:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case '-':
+-		goto scriptDataDoubleEscapedDash
+-	case '<':
+-		goto scriptDataDoubleEscapedLessThanSign
+-	}
+-	goto scriptDataDoubleEscaped
+-
+-scriptDataDoubleEscapedDash:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case '-':
+-		goto scriptDataDoubleEscapedDashDash
+-	case '<':
+-		goto scriptDataDoubleEscapedLessThanSign
+-	}
+-	goto scriptDataDoubleEscaped
+-
+-scriptDataDoubleEscapedDashDash:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch c {
+-	case '-':
+-		goto scriptDataDoubleEscapedDashDash
+-	case '<':
+-		goto scriptDataDoubleEscapedLessThanSign
+-	case '>':
+-		goto scriptData
+-	}
+-	goto scriptDataDoubleEscaped
+-
+-scriptDataDoubleEscapedLessThanSign:
+-	c = z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	if c == '/' {
+-		goto scriptDataDoubleEscapeEnd
+-	}
+-	z.raw.end--
+-	goto scriptDataDoubleEscaped
+-
+-scriptDataDoubleEscapeEnd:
+-	if z.readRawEndTag() {
+-		z.raw.end += len("</script>")
+-		goto scriptDataEscaped
+-	}
+-	if z.err != nil {
+-		return
+-	}
+-	goto scriptDataDoubleEscaped
+-}
+-
+-// readComment reads the next comment token starting with "<!--". The opening
+-// "<!--" has already been consumed.
+-func (z *Tokenizer) readComment() {
+-	z.data.start = z.raw.end
+-	defer func() {
+-		if z.data.end < z.data.start {
+-			// It's a comment with no data, like <!-->.
+-			z.data.end = z.data.start
+-		}
+-	}()
+-	for dashCount := 2; ; {
+-		c := z.readByte()
+-		if z.err != nil {
+-			// Ignore up to two dashes at EOF.
+-			if dashCount > 2 {
+-				dashCount = 2
+-			}
+-			z.data.end = z.raw.end - dashCount
+-			return
+-		}
+-		switch c {
+-		case '-':
+-			dashCount++
+-			continue
+-		case '>':
+-			if dashCount >= 2 {
+-				z.data.end = z.raw.end - len("-->")
+-				return
+-			}
+-		case '!':
+-			if dashCount >= 2 {
+-				c = z.readByte()
+-				if z.err != nil {
+-					z.data.end = z.raw.end
+-					return
+-				}
+-				if c == '>' {
+-					z.data.end = z.raw.end - len("--!>")
+-					return
+-				}
+-			}
+-		}
+-		dashCount = 0
+-	}
+-}
+-
+-// readUntilCloseAngle reads until the next ">".
+-func (z *Tokenizer) readUntilCloseAngle() {
+-	z.data.start = z.raw.end
+-	for {
+-		c := z.readByte()
+-		if z.err != nil {
+-			z.data.end = z.raw.end
+-			return
+-		}
+-		if c == '>' {
+-			z.data.end = z.raw.end - len(">")
+-			return
+-		}
+-	}
+-}
+-
+-// readMarkupDeclaration reads the next token starting with "<!". It might be
+-// a "<!--comment-->", a "<!DOCTYPE foo>", a "<![CDATA[section]]>" or
+-// "<!a bogus comment". The opening "<!" has already been consumed.
+-func (z *Tokenizer) readMarkupDeclaration() TokenType {
+-	z.data.start = z.raw.end
+-	var c [2]byte
+-	for i := 0; i < 2; i++ {
+-		c[i] = z.readByte()
+-		if z.err != nil {
+-			z.data.end = z.raw.end
+-			return CommentToken
+-		}
+-	}
+-	if c[0] == '-' && c[1] == '-' {
+-		z.readComment()
+-		return CommentToken
+-	}
+-	z.raw.end -= 2
+-	if z.readDoctype() {
+-		return DoctypeToken
+-	}
+-	if z.allowCDATA && z.readCDATA() {
+-		z.convertNUL = true
+-		return TextToken
+-	}
+-	// It's a bogus comment.
+-	z.readUntilCloseAngle()
+-	return CommentToken
+-}
+-
+-// readDoctype attempts to read a doctype declaration and returns true if
+-// successful. The opening "<!" has already been consumed.
+-func (z *Tokenizer) readDoctype() bool {
+-	const s = "DOCTYPE"
+-	for i := 0; i < len(s); i++ {
+-		c := z.readByte()
+-		if z.err != nil {
+-			z.data.end = z.raw.end
+-			return false
+-		}
+-		if c != s[i] && c != s[i]+('a'-'A') {
+-			// Back up to read the fragment of "DOCTYPE" again.
+-			z.raw.end = z.data.start
+-			return false
+-		}
+-	}
+-	if z.skipWhiteSpace(); z.err != nil {
+-		z.data.start = z.raw.end
+-		z.data.end = z.raw.end
+-		return true
+-	}
+-	z.readUntilCloseAngle()
+-	return true
+-}
+-
+-// readCDATA attempts to read a CDATA section and returns true if
+-// successful. The opening "<!" has already been consumed.
+-func (z *Tokenizer) readCDATA() bool {
+-	const s = "[CDATA["
+-	for i := 0; i < len(s); i++ {
+-		c := z.readByte()
+-		if z.err != nil {
+-			z.data.end = z.raw.end
+-			return false
+-		}
+-		if c != s[i] {
+-			// Back up to read the fragment of "[CDATA[" again.
+-			z.raw.end = z.data.start
+-			return false
+-		}
+-	}
+-	z.data.start = z.raw.end
+-	brackets := 0
+-	for {
+-		c := z.readByte()
+-		if z.err != nil {
+-			z.data.end = z.raw.end
+-			return true
+-		}
+-		switch c {
+-		case ']':
+-			brackets++
+-		case '>':
+-			if brackets >= 2 {
+-				z.data.end = z.raw.end - len("]]>")
+-				return true
+-			}
+-			brackets = 0
+-		default:
+-			brackets = 0
+-		}
+-	}
+-	panic("unreachable")
+-}
+-
+-// startTagIn returns whether the start tag in z.buf[z.data.start:z.data.end]
+-// case-insensitively matches any element of ss.
+-func (z *Tokenizer) startTagIn(ss ...string) bool {
+-loop:
+-	for _, s := range ss {
+-		if z.data.end-z.data.start != len(s) {
+-			continue loop
+-		}
+-		for i := 0; i < len(s); i++ {
+-			c := z.buf[z.data.start+i]
+-			if 'A' <= c && c <= 'Z' {
+-				c += 'a' - 'A'
+-			}
+-			if c != s[i] {
+-				continue loop
+-			}
+-		}
+-		return true
+-	}
+-	return false
+-}
+-
+-// readStartTag reads the next start tag token. The opening "<a" has already
+-// been consumed, where 'a' means anything in [A-Za-z].
+-func (z *Tokenizer) readStartTag() TokenType {
+-	z.readTag(true)
+-	if z.err != nil {
+-		return ErrorToken
+-	}
+-	// Several tags flag the tokenizer's next token as raw.
+-	c, raw := z.buf[z.data.start], false
+-	if 'A' <= c && c <= 'Z' {
+-		c += 'a' - 'A'
+-	}
+-	switch c {
+-	case 'i':
+-		raw = z.startTagIn("iframe")
+-	case 'n':
+-		raw = z.startTagIn("noembed", "noframes", "noscript")
+-	case 'p':
+-		raw = z.startTagIn("plaintext")
+-	case 's':
+-		raw = z.startTagIn("script", "style")
+-	case 't':
+-		raw = z.startTagIn("textarea", "title")
+-	case 'x':
+-		raw = z.startTagIn("xmp")
+-	}
+-	if raw {
+-		z.rawTag = strings.ToLower(string(z.buf[z.data.start:z.data.end]))
+-	}
+-	// Look for a self-closing token like "<br/>".
+-	if z.err == nil && z.buf[z.raw.end-2] == '/' {
+-		return SelfClosingTagToken
+-	}
+-	return StartTagToken
+-}
+-
+-// readTag reads the next tag token and its attributes. If saveAttr, those
+-// attributes are saved in z.attr, otherwise z.attr is set to an empty slice.
+-// The opening "<a" or "</a" has already been consumed, where 'a' means anything
+-// in [A-Za-z].
+-func (z *Tokenizer) readTag(saveAttr bool) {
+-	z.attr = z.attr[:0]
+-	z.nAttrReturned = 0
+-	// Read the tag name and attribute key/value pairs.
+-	z.readTagName()
+-	if z.skipWhiteSpace(); z.err != nil {
+-		return
+-	}
+-	for {
+-		c := z.readByte()
+-		if z.err != nil || c == '>' {
+-			break
+-		}
+-		z.raw.end--
+-		z.readTagAttrKey()
+-		z.readTagAttrVal()
+-		// Save pendingAttr if saveAttr and that attribute has a non-empty key.
+-		if saveAttr && z.pendingAttr[0].start != z.pendingAttr[0].end {
+-			z.attr = append(z.attr, z.pendingAttr)
+-		}
+-		if z.skipWhiteSpace(); z.err != nil {
+-			break
+-		}
+-	}
+-}
+-
+-// readTagName sets z.data to the "div" in "<div k=v>". The reader (z.raw.end)
+-// is positioned such that the first byte of the tag name (the "d" in "<div")
+-// has already been consumed.
+-func (z *Tokenizer) readTagName() {
+-	z.data.start = z.raw.end - 1
+-	for {
+-		c := z.readByte()
+-		if z.err != nil {
+-			z.data.end = z.raw.end
+-			return
+-		}
+-		switch c {
+-		case ' ', '\n', '\r', '\t', '\f':
+-			z.data.end = z.raw.end - 1
+-			return
+-		case '/', '>':
+-			z.raw.end--
+-			z.data.end = z.raw.end
+-			return
+-		}
+-	}
+-}
+-
+-// readTagAttrKey sets z.pendingAttr[0] to the "k" in "<div k=v>".
+-// Precondition: z.err == nil.
+-func (z *Tokenizer) readTagAttrKey() {
+-	z.pendingAttr[0].start = z.raw.end
+-	for {
+-		c := z.readByte()
+-		if z.err != nil {
+-			z.pendingAttr[0].end = z.raw.end
+-			return
+-		}
+-		switch c {
+-		case ' ', '\n', '\r', '\t', '\f', '/':
+-			z.pendingAttr[0].end = z.raw.end - 1
+-			return
+-		case '=', '>':
+-			z.raw.end--
+-			z.pendingAttr[0].end = z.raw.end
+-			return
+-		}
+-	}
+-}
+-
+-// readTagAttrVal sets z.pendingAttr[1] to the "v" in "<div k=v>".
+-func (z *Tokenizer) readTagAttrVal() {
+-	z.pendingAttr[1].start = z.raw.end
+-	z.pendingAttr[1].end = z.raw.end
+-	if z.skipWhiteSpace(); z.err != nil {
+-		return
+-	}
+-	c := z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	if c != '=' {
+-		z.raw.end--
+-		return
+-	}
+-	if z.skipWhiteSpace(); z.err != nil {
+-		return
+-	}
+-	quote := z.readByte()
+-	if z.err != nil {
+-		return
+-	}
+-	switch quote {
+-	case '>':
+-		z.raw.end--
+-		return
+-
+-	case '\'', '"':
+-		z.pendingAttr[1].start = z.raw.end
+-		for {
+-			c := z.readByte()
+-			if z.err != nil {
+-				z.pendingAttr[1].end = z.raw.end
+-				return
+-			}
+-			if c == quote {
+-				z.pendingAttr[1].end = z.raw.end - 1
+-				return
+-			}
+-		}
+-
+-	default:
+-		z.pendingAttr[1].start = z.raw.end - 1
+-		for {
+-			c := z.readByte()
+-			if z.err != nil {
+-				z.pendingAttr[1].end = z.raw.end
+-				return
+-			}
+-			switch c {
+-			case ' ', '\n', '\r', '\t', '\f':
+-				z.pendingAttr[1].end = z.raw.end - 1
+-				return
+-			case '>':
+-				z.raw.end--
+-				z.pendingAttr[1].end = z.raw.end
+-				return
+-			}
+-		}
+-	}
+-}
+-
+-// Next scans the next token and returns its type.
+-func (z *Tokenizer) Next() TokenType {
+-	if z.err != nil {
+-		z.tt = ErrorToken
+-		return z.tt
+-	}
+-	z.raw.start = z.raw.end
+-	z.data.start = z.raw.end
+-	z.data.end = z.raw.end
+-	if z.rawTag != "" {
+-		if z.rawTag == "plaintext" {
+-			// Read everything up to EOF.
+-			for z.err == nil {
+-				z.readByte()
+-			}
+-			z.data.end = z.raw.end
+-			z.textIsRaw = true
+-		} else {
+-			z.readRawOrRCDATA()
+-		}
+-		if z.data.end > z.data.start {
+-			z.tt = TextToken
+-			z.convertNUL = true
+-			return z.tt
+-		}
+-	}
+-	z.textIsRaw = false
+-	z.convertNUL = false
+-
+-loop:
+-	for {
+-		c := z.readByte()
+-		if z.err != nil {
+-			break loop
+-		}
+-		if c != '<' {
+-			continue loop
+-		}
+-
+-		// Check if the '<' we have just read is part of a tag, comment
+-		// or doctype. If not, it's part of the accumulated text token.
+-		c = z.readByte()
+-		if z.err != nil {
+-			break loop
+-		}
+-		var tokenType TokenType
+-		switch {
+-		case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z':
+-			tokenType = StartTagToken
+-		case c == '/':
+-			tokenType = EndTagToken
+-		case c == '!' || c == '?':
+-			// We use CommentToken to mean any of "<!--actual comments-->",
+-			// "<!DOCTYPE declarations>" and "<?xml processing instructions?>".
+-			tokenType = CommentToken
+-		default:
+-			continue
+-		}
+-
+-		// We have a non-text token, but we might have accumulated some text
+-		// before that. If so, we return the text first, and return the non-
+-		// text token on the subsequent call to Next.
+-		if x := z.raw.end - len("<a"); z.raw.start < x {
+-			z.raw.end = x
+-			z.data.end = x
+-			z.tt = TextToken
+-			return z.tt
+-		}
+-		switch tokenType {
+-		case StartTagToken:
+-			z.tt = z.readStartTag()
+-			return z.tt
+-		case EndTagToken:
+-			c = z.readByte()
+-			if z.err != nil {
+-				break loop
+-			}
+-			if c == '>' {
+-				// "</>" does not generate a token at all.
+-				// Reset the tokenizer state and start again.
+-				z.raw.start = z.raw.end
+-				z.data.start = z.raw.end
+-				z.data.end = z.raw.end
+-				continue loop
+-			}
+-			if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
+-				z.readTag(false)
+-				if z.err != nil {
+-					z.tt = ErrorToken
+-				} else {
+-					z.tt = EndTagToken
+-				}
+-				return z.tt
+-			}
+-			z.raw.end--
+-			z.readUntilCloseAngle()
+-			z.tt = CommentToken
+-			return z.tt
+-		case CommentToken:
+-			if c == '!' {
+-				z.tt = z.readMarkupDeclaration()
+-				return z.tt
+-			}
+-			z.raw.end--
+-			z.readUntilCloseAngle()
+-			z.tt = CommentToken
+-			return z.tt
+-		}
+-	}
+-	if z.raw.start < z.raw.end {
+-		z.data.end = z.raw.end
+-		z.tt = TextToken
+-		return z.tt
+-	}
+-	z.tt = ErrorToken
+-	return z.tt
+-}
+-
+-// Raw returns the unmodified text of the current token. Calling Next, Token,
+-// Text, TagName or TagAttr may change the contents of the returned slice.
+-func (z *Tokenizer) Raw() []byte {
+-	return z.buf[z.raw.start:z.raw.end]
+-}
+-
+-// convertNewlines converts "\r" and "\r\n" in s to "\n".
+-// The conversion happens in place, but the resulting slice may be shorter.
+-func convertNewlines(s []byte) []byte {
+-	for i, c := range s {
+-		if c != '\r' {
+-			continue
+-		}
+-
+-		src := i + 1
+-		if src >= len(s) || s[src] != '\n' {
+-			s[i] = '\n'
+-			continue
+-		}
+-
+-		dst := i
+-		for src < len(s) {
+-			if s[src] == '\r' {
+-				if src+1 < len(s) && s[src+1] == '\n' {
+-					src++
+-				}
+-				s[dst] = '\n'
+-			} else {
+-				s[dst] = s[src]
+-			}
+-			src++
+-			dst++
+-		}
+-		return s[:dst]
+-	}
+-	return s
+-}
+-
+-var (
+-	nul         = []byte("\x00")
+-	replacement = []byte("\ufffd")
+-)
+-
+-// Text returns the unescaped text of a text, comment or doctype token. The
+-// contents of the returned slice may change on the next call to Next.
+-func (z *Tokenizer) Text() []byte {
+-	switch z.tt {
+-	case TextToken, CommentToken, DoctypeToken:
+-		s := z.buf[z.data.start:z.data.end]
+-		z.data.start = z.raw.end
+-		z.data.end = z.raw.end
+-		s = convertNewlines(s)
+-		if (z.convertNUL || z.tt == CommentToken) && bytes.Contains(s, nul) {
+-			s = bytes.Replace(s, nul, replacement, -1)
+-		}
+-		if !z.textIsRaw {
+-			s = unescape(s, false)
+-		}
+-		return s
+-	}
+-	return nil
+-}
+-
+-// TagName returns the lower-cased name of a tag token (the `img` out of
+-// `<IMG SRC="foo">`) and whether the tag has attributes.
+-// The contents of the returned slice may change on the next call to Next.
+-func (z *Tokenizer) TagName() (name []byte, hasAttr bool) {
+-	if z.data.start < z.data.end {
+-		switch z.tt {
+-		case StartTagToken, EndTagToken, SelfClosingTagToken:
+-			s := z.buf[z.data.start:z.data.end]
+-			z.data.start = z.raw.end
+-			z.data.end = z.raw.end
+-			return lower(s), z.nAttrReturned < len(z.attr)
+-		}
+-	}
+-	return nil, false
+-}
+-
+-// TagAttr returns the lower-cased key and unescaped value of the next unparsed
+-// attribute for the current tag token and whether there are more attributes.
+-// The contents of the returned slices may change on the next call to Next.
+-func (z *Tokenizer) TagAttr() (key, val []byte, moreAttr bool) {
+-	if z.nAttrReturned < len(z.attr) {
+-		switch z.tt {
+-		case StartTagToken, SelfClosingTagToken:
+-			x := z.attr[z.nAttrReturned]
+-			z.nAttrReturned++
+-			key = z.buf[x[0].start:x[0].end]
+-			val = z.buf[x[1].start:x[1].end]
+-			return lower(key), unescape(convertNewlines(val), true), z.nAttrReturned < len(z.attr)
+-		}
+-	}
+-	return nil, nil, false
+-}
+-
+-// Token returns the next Token. The result's Data and Attr values remain valid
+-// after subsequent Next calls.
+-func (z *Tokenizer) Token() Token {
+-	t := Token{Type: z.tt}
+-	switch z.tt {
+-	case TextToken, CommentToken, DoctypeToken:
+-		t.Data = string(z.Text())
+-	case StartTagToken, SelfClosingTagToken, EndTagToken:
+-		name, moreAttr := z.TagName()
+-		for moreAttr {
+-			var key, val []byte
+-			key, val, moreAttr = z.TagAttr()
+-			t.Attr = append(t.Attr, Attribute{"", atom.String(key), string(val)})
+-		}
+-		if a := atom.Lookup(name); a != 0 {
+-			t.DataAtom, t.Data = a, a.String()
+-		} else {
+-			t.DataAtom, t.Data = 0, string(name)
+-		}
+-	}
+-	return t
+-}
+-
+-// NewTokenizer returns a new HTML Tokenizer for the given Reader.
+-// The input is assumed to be UTF-8 encoded.
+-func NewTokenizer(r io.Reader) *Tokenizer {
+-	return NewTokenizerFragment(r, "")
+-}
+-
+-// NewTokenizerFragment returns a new HTML Tokenizer for the given Reader, for
+-// tokenizing an exisitng element's InnerHTML fragment. contextTag is that
+-// element's tag, such as "div" or "iframe".
+-//
+-// For example, how the InnerHTML "a<b" is tokenized depends on whether it is
+-// for a <p> tag or a <script> tag.
+-//
+-// The input is assumed to be UTF-8 encoded.
+-func NewTokenizerFragment(r io.Reader, contextTag string) *Tokenizer {
+-	z := &Tokenizer{
+-		r:   r,
+-		buf: make([]byte, 0, 4096),
+-	}
+-	if contextTag != "" {
+-		switch s := strings.ToLower(contextTag); s {
+-		case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "title", "textarea", "xmp":
+-			z.rawTag = s
+-		}
+-	}
+-	return z
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/html/token_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/html/token_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/html/token_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/html/token_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,679 +0,0 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package html
+-
+-import (
+-	"bytes"
+-	"io"
+-	"io/ioutil"
+-	"runtime"
+-	"strings"
+-	"testing"
+-)
+-
+-type tokenTest struct {
+-	// A short description of the test case.
+-	desc string
+-	// The HTML to parse.
+-	html string
+-	// The string representations of the expected tokens, joined by '$'.
+-	golden string
+-}
+-
+-var tokenTests = []tokenTest{
+-	{
+-		"empty",
+-		"",
+-		"",
+-	},
+-	// A single text node. The tokenizer should not break text nodes on whitespace,
+-	// nor should it normalize whitespace within a text node.
+-	{
+-		"text",
+-		"foo  bar",
+-		"foo  bar",
+-	},
+-	// An entity.
+-	{
+-		"entity",
+-		"one &lt; two",
+-		"one &lt; two",
+-	},
+-	// A start, self-closing and end tag. The tokenizer does not care if the start
+-	// and end tokens don't match; that is the job of the parser.
+-	{
+-		"tags",
+-		"<a>b<c/>d</e>",
+-		"<a>$b$<c/>$d$</e>",
+-	},
+-	// Angle brackets that aren't a tag.
+-	{
+-		"not a tag #0",
+-		"<",
+-		"&lt;",
+-	},
+-	{
+-		"not a tag #1",
+-		"</",
+-		"&lt;/",
+-	},
+-	{
+-		"not a tag #2",
+-		"</>",
+-		"",
+-	},
+-	{
+-		"not a tag #3",
+-		"a</>b",
+-		"a$b",
+-	},
+-	{
+-		"not a tag #4",
+-		"</ >",
+-		"<!-- -->",
+-	},
+-	{
+-		"not a tag #5",
+-		"</.",
+-		"<!--.-->",
+-	},
+-	{
+-		"not a tag #6",
+-		"</.>",
+-		"<!--.-->",
+-	},
+-	{
+-		"not a tag #7",
+-		"a < b",
+-		"a &lt; b",
+-	},
+-	{
+-		"not a tag #8",
+-		"<.>",
+-		"&lt;.&gt;",
+-	},
+-	{
+-		"not a tag #9",
+-		"a<<<b>>>c",
+-		"a&lt;&lt;$<b>$&gt;&gt;c",
+-	},
+-	{
+-		"not a tag #10",
+-		"if x<0 and y < 0 then x*y>0",
+-		"if x&lt;0 and y &lt; 0 then x*y&gt;0",
+-	},
+-	// EOF in a tag name.
+-	{
+-		"tag name eof #0",
+-		"<a",
+-		"",
+-	},
+-	{
+-		"tag name eof #1",
+-		"<a ",
+-		"",
+-	},
+-	{
+-		"tag name eof #2",
+-		"a<b",
+-		"a",
+-	},
+-	{
+-		"tag name eof #3",
+-		"<a><b",
+-		"<a>",
+-	},
+-	{
+-		"tag name eof #4",
+-		`<a x`,
+-		``,
+-	},
+-	// Some malformed tags that are missing a '>'.
+-	{
+-		"malformed tag #0",
+-		`<p</p>`,
+-		`<p< p="">`,
+-	},
+-	{
+-		"malformed tag #1",
+-		`<p </p>`,
+-		`<p <="" p="">`,
+-	},
+-	{
+-		"malformed tag #2",
+-		`<p id`,
+-		``,
+-	},
+-	{
+-		"malformed tag #3",
+-		`<p id=`,
+-		``,
+-	},
+-	{
+-		"malformed tag #4",
+-		`<p id=>`,
+-		`<p id="">`,
+-	},
+-	{
+-		"malformed tag #5",
+-		`<p id=0`,
+-		``,
+-	},
+-	{
+-		"malformed tag #6",
+-		`<p id=0</p>`,
+-		`<p id="0&lt;/p">`,
+-	},
+-	{
+-		"malformed tag #7",
+-		`<p id="0</p>`,
+-		``,
+-	},
+-	{
+-		"malformed tag #8",
+-		`<p id="0"</p>`,
+-		`<p id="0" <="" p="">`,
+-	},
+-	{
+-		"malformed tag #9",
+-		`<p></p id`,
+-		`<p>`,
+-	},
+-	// Raw text and RCDATA.
+-	{
+-		"basic raw text",
+-		"<script><a></b></script>",
+-		"<script>$&lt;a&gt;&lt;/b&gt;$</script>",
+-	},
+-	{
+-		"unfinished script end tag",
+-		"<SCRIPT>a</SCR",
+-		"<script>$a&lt;/SCR",
+-	},
+-	{
+-		"broken script end tag",
+-		"<SCRIPT>a</SCR ipt>",
+-		"<script>$a&lt;/SCR ipt&gt;",
+-	},
+-	{
+-		"EOF in script end tag",
+-		"<SCRIPT>a</SCRipt",
+-		"<script>$a&lt;/SCRipt",
+-	},
+-	{
+-		"scriptx end tag",
+-		"<SCRIPT>a</SCRiptx",
+-		"<script>$a&lt;/SCRiptx",
+-	},
+-	{
+-		"' ' completes script end tag",
+-		"<SCRIPT>a</SCRipt ",
+-		"<script>$a",
+-	},
+-	{
+-		"'>' completes script end tag",
+-		"<SCRIPT>a</SCRipt>",
+-		"<script>$a$</script>",
+-	},
+-	{
+-		"self-closing script end tag",
+-		"<SCRIPT>a</SCRipt/>",
+-		"<script>$a$</script>",
+-	},
+-	{
+-		"nested script tag",
+-		"<SCRIPT>a</SCRipt<script>",
+-		"<script>$a&lt;/SCRipt&lt;script&gt;",
+-	},
+-	{
+-		"script end tag after unfinished",
+-		"<SCRIPT>a</SCRipt</script>",
+-		"<script>$a&lt;/SCRipt$</script>",
+-	},
+-	{
+-		"script/style mismatched tags",
+-		"<script>a</style>",
+-		"<script>$a&lt;/style&gt;",
+-	},
+-	{
+-		"style element with entity",
+-		"<style>&apos;",
+-		"<style>$&amp;apos;",
+-	},
+-	{
+-		"textarea with tag",
+-		"<textarea><div></textarea>",
+-		"<textarea>$&lt;div&gt;$</textarea>",
+-	},
+-	{
+-		"title with tag and entity",
+-		"<title><b>K&amp;R C</b></title>",
+-		"<title>$&lt;b&gt;K&amp;R C&lt;/b&gt;$</title>",
+-	},
+-	// DOCTYPE tests.
+-	{
+-		"Proper DOCTYPE",
+-		"<!DOCTYPE html>",
+-		"<!DOCTYPE html>",
+-	},
+-	{
+-		"DOCTYPE with no space",
+-		"<!doctypehtml>",
+-		"<!DOCTYPE html>",
+-	},
+-	{
+-		"DOCTYPE with two spaces",
+-		"<!doctype  html>",
+-		"<!DOCTYPE html>",
+-	},
+-	{
+-		"looks like DOCTYPE but isn't",
+-		"<!DOCUMENT html>",
+-		"<!--DOCUMENT html-->",
+-	},
+-	{
+-		"DOCTYPE at EOF",
+-		"<!DOCtype",
+-		"<!DOCTYPE >",
+-	},
+-	// XML processing instructions.
+-	{
+-		"XML processing instruction",
+-		"<?xml?>",
+-		"<!--?xml?-->",
+-	},
+-	// Comments.
+-	{
+-		"comment0",
+-		"abc<b><!-- skipme --></b>def",
+-		"abc$<b>$<!-- skipme -->$</b>$def",
+-	},
+-	{
+-		"comment1",
+-		"a<!-->z",
+-		"a$<!---->$z",
+-	},
+-	{
+-		"comment2",
+-		"a<!--->z",
+-		"a$<!---->$z",
+-	},
+-	{
+-		"comment3",
+-		"a<!--x>-->z",
+-		"a$<!--x>-->$z",
+-	},
+-	{
+-		"comment4",
+-		"a<!--x->-->z",
+-		"a$<!--x->-->$z",
+-	},
+-	{
+-		"comment5",
+-		"a<!>z",
+-		"a$<!---->$z",
+-	},
+-	{
+-		"comment6",
+-		"a<!->z",
+-		"a$<!----->$z",
+-	},
+-	{
+-		"comment7",
+-		"a<!---<>z",
+-		"a$<!---<>z-->",
+-	},
+-	{
+-		"comment8",
+-		"a<!--z",
+-		"a$<!--z-->",
+-	},
+-	{
+-		"comment9",
+-		"a<!--z-",
+-		"a$<!--z-->",
+-	},
+-	{
+-		"comment10",
+-		"a<!--z--",
+-		"a$<!--z-->",
+-	},
+-	{
+-		"comment11",
+-		"a<!--z---",
+-		"a$<!--z--->",
+-	},
+-	{
+-		"comment12",
+-		"a<!--z----",
+-		"a$<!--z---->",
+-	},
+-	{
+-		"comment13",
+-		"a<!--x--!>z",
+-		"a$<!--x-->$z",
+-	},
+-	// An attribute with a backslash.
+-	{
+-		"backslash",
+-		`<p id="a\"b">`,
+-		`<p id="a\" b"="">`,
+-	},
+-	// Entities, tag name and attribute key lower-casing, and whitespace
+-	// normalization within a tag.
+-	{
+-		"tricky",
+-		"<p \t\n iD=\"a&quot;B\"  foo=\"bar\"><EM>te&lt;&amp;;xt</em></p>",
+-		`<p id="a&#34;B" foo="bar">$<em>$te&lt;&amp;;xt$</em>$</p>`,
+-	},
+-	// A nonexistent entity. Tokenizing and converting back to a string should
+-	// escape the "&" to become "&amp;".
+-	{
+-		"noSuchEntity",
+-		`<a b="c&noSuchEntity;d">&lt;&alsoDoesntExist;&`,
+-		`<a b="c&amp;noSuchEntity;d">$&lt;&amp;alsoDoesntExist;&amp;`,
+-	},
+-	{
+-		"entity without semicolon",
+-		`&notit;&notin;<a b="q=z&amp=5&notice=hello&not;=world">`,
+-		`¬it;∉$<a b="q=z&amp;amp=5&amp;notice=hello¬=world">`,
+-	},
+-	{
+-		"entity with digits",
+-		"&frac12;",
+-		"½",
+-	},
+-	// Attribute tests:
+-	// http://dev.w3.org/html5/spec/Overview.html#attributes-0
+-	{
+-		"Empty attribute",
+-		`<input disabled FOO>`,
+-		`<input disabled="" foo="">`,
+-	},
+-	{
+-		"Empty attribute, whitespace",
+-		`<input disabled FOO >`,
+-		`<input disabled="" foo="">`,
+-	},
+-	{
+-		"Unquoted attribute value",
+-		`<input value=yes FOO=BAR>`,
+-		`<input value="yes" foo="BAR">`,
+-	},
+-	{
+-		"Unquoted attribute value, spaces",
+-		`<input value = yes FOO = BAR>`,
+-		`<input value="yes" foo="BAR">`,
+-	},
+-	{
+-		"Unquoted attribute value, trailing space",
+-		`<input value=yes FOO=BAR >`,
+-		`<input value="yes" foo="BAR">`,
+-	},
+-	{
+-		"Single-quoted attribute value",
+-		`<input value='yes' FOO='BAR'>`,
+-		`<input value="yes" foo="BAR">`,
+-	},
+-	{
+-		"Single-quoted attribute value, trailing space",
+-		`<input value='yes' FOO='BAR' >`,
+-		`<input value="yes" foo="BAR">`,
+-	},
+-	{
+-		"Double-quoted attribute value",
+-		`<input value="I'm an attribute" FOO="BAR">`,
+-		`<input value="I&#39;m an attribute" foo="BAR">`,
+-	},
+-	{
+-		"Attribute name characters",
+-		`<meta http-equiv="content-type">`,
+-		`<meta http-equiv="content-type">`,
+-	},
+-	{
+-		"Mixed attributes",
+-		`a<P V="0 1" w='2' X=3 y>z`,
+-		`a$<p v="0 1" w="2" x="3" y="">$z`,
+-	},
+-	{
+-		"Attributes with a solitary single quote",
+-		`<p id=can't><p id=won't>`,
+-		`<p id="can&#39;t">$<p id="won&#39;t">`,
+-	},
+-}
+-
+-func TestTokenizer(t *testing.T) {
+-loop:
+-	for _, tt := range tokenTests {
+-		z := NewTokenizer(strings.NewReader(tt.html))
+-		if tt.golden != "" {
+-			for i, s := range strings.Split(tt.golden, "$") {
+-				if z.Next() == ErrorToken {
+-					t.Errorf("%s token %d: want %q got error %v", tt.desc, i, s, z.Err())
+-					continue loop
+-				}
+-				actual := z.Token().String()
+-				if s != actual {
+-					t.Errorf("%s token %d: want %q got %q", tt.desc, i, s, actual)
+-					continue loop
+-				}
+-			}
+-		}
+-		z.Next()
+-		if z.Err() != io.EOF {
+-			t.Errorf("%s: want EOF got %q", tt.desc, z.Err())
+-		}
+-	}
+-}
+-
+-type unescapeTest struct {
+-	// A short description of the test case.
+-	desc string
+-	// The HTML text.
+-	html string
+-	// The unescaped text.
+-	unescaped string
+-}
+-
+-var unescapeTests = []unescapeTest{
+-	// Handle no entities.
+-	{
+-		"copy",
+-		"A\ttext\nstring",
+-		"A\ttext\nstring",
+-	},
+-	// Handle simple named entities.
+-	{
+-		"simple",
+-		"&amp; &gt; &lt;",
+-		"& > <",
+-	},
+-	// Handle hitting the end of the string.
+-	{
+-		"stringEnd",
+-		"&amp &amp",
+-		"& &",
+-	},
+-	// Handle entities with two codepoints.
+-	{
+-		"multiCodepoint",
+-		"text &gesl; blah",
+-		"text \u22db\ufe00 blah",
+-	},
+-	// Handle decimal numeric entities.
+-	{
+-		"decimalEntity",
+-		"Delta = &#916; ",
+-		"Delta = Δ ",
+-	},
+-	// Handle hexadecimal numeric entities.
+-	{
+-		"hexadecimalEntity",
+-		"Lambda = &#x3bb; = &#X3Bb ",
+-		"Lambda = λ = λ ",
+-	},
+-	// Handle numeric early termination.
+-	{
+-		"numericEnds",
+-		"&# &#x &#128;43 &copy = &#169f = &#xa9",
+-		"&# &#x €43 © = ©f = ©",
+-	},
+-	// Handle numeric ISO-8859-1 entity replacements.
+-	{
+-		"numericReplacements",
+-		"Footnote&#x87;",
+-		"Footnote‡",
+-	},
+-}
+-
+-func TestUnescape(t *testing.T) {
+-	for _, tt := range unescapeTests {
+-		unescaped := UnescapeString(tt.html)
+-		if unescaped != tt.unescaped {
+-			t.Errorf("TestUnescape %s: want %q, got %q", tt.desc, tt.unescaped, unescaped)
+-		}
+-	}
+-}
+-
+-func TestUnescapeEscape(t *testing.T) {
+-	ss := []string{
+-		``,
+-		`abc def`,
+-		`a & b`,
+-		`a&amp;b`,
+-		`a &amp b`,
+-		`&quot;`,
+-		`"`,
+-		`"<&>"`,
+-		`&quot;&lt;&amp;&gt;&quot;`,
+-		`3&5==1 && 0<1, "0&lt;1", a+acute=&aacute;`,
+-		`The special characters are: <, >, &, ' and "`,
+-	}
+-	for _, s := range ss {
+-		if got := UnescapeString(EscapeString(s)); got != s {
+-			t.Errorf("got %q want %q", got, s)
+-		}
+-	}
+-}
+-
+-func TestBufAPI(t *testing.T) {
+-	s := "0<a>1</a>2<b>3<a>4<a>5</a>6</b>7</a>8<a/>9"
+-	z := NewTokenizer(bytes.NewBufferString(s))
+-	var result bytes.Buffer
+-	depth := 0
+-loop:
+-	for {
+-		tt := z.Next()
+-		switch tt {
+-		case ErrorToken:
+-			if z.Err() != io.EOF {
+-				t.Error(z.Err())
+-			}
+-			break loop
+-		case TextToken:
+-			if depth > 0 {
+-				result.Write(z.Text())
+-			}
+-		case StartTagToken, EndTagToken:
+-			tn, _ := z.TagName()
+-			if len(tn) == 1 && tn[0] == 'a' {
+-				if tt == StartTagToken {
+-					depth++
+-				} else {
+-					depth--
+-				}
+-			}
+-		}
+-	}
+-	u := "14567"
+-	v := string(result.Bytes())
+-	if u != v {
+-		t.Errorf("TestBufAPI: want %q got %q", u, v)
+-	}
+-}
+-
+-func TestConvertNewlines(t *testing.T) {
+-	testCases := map[string]string{
+-		"Mac\rDOS\r\nUnix\n":    "Mac\nDOS\nUnix\n",
+-		"Unix\nMac\rDOS\r\n":    "Unix\nMac\nDOS\n",
+-		"DOS\r\nDOS\r\nDOS\r\n": "DOS\nDOS\nDOS\n",
+-		"":         "",
+-		"\n":       "\n",
+-		"\n\r":     "\n\n",
+-		"\r":       "\n",
+-		"\r\n":     "\n",
+-		"\r\n\n":   "\n\n",
+-		"\r\n\r":   "\n\n",
+-		"\r\n\r\n": "\n\n",
+-		"\r\r":     "\n\n",
+-		"\r\r\n":   "\n\n",
+-		"\r\r\n\n": "\n\n\n",
+-		"\r\r\r\n": "\n\n\n",
+-		"\r \n":    "\n \n",
+-		"xyz":      "xyz",
+-	}
+-	for in, want := range testCases {
+-		if got := string(convertNewlines([]byte(in))); got != want {
+-			t.Errorf("input %q: got %q, want %q", in, got, want)
+-		}
+-	}
+-}
+-
+-const (
+-	rawLevel = iota
+-	lowLevel
+-	highLevel
+-)
+-
+-func benchmarkTokenizer(b *testing.B, level int) {
+-	buf, err := ioutil.ReadFile("testdata/go1.html")
+-	if err != nil {
+-		b.Fatalf("could not read testdata/go1.html: %v", err)
+-	}
+-	b.SetBytes(int64(len(buf)))
+-	runtime.GC()
+-	b.ReportAllocs()
+-	b.ResetTimer()
+-	for i := 0; i < b.N; i++ {
+-		z := NewTokenizer(bytes.NewBuffer(buf))
+-		for {
+-			tt := z.Next()
+-			if tt == ErrorToken {
+-				if err := z.Err(); err != nil && err != io.EOF {
+-					b.Fatalf("tokenizer error: %v", err)
+-				}
+-				break
+-			}
+-			switch level {
+-			case rawLevel:
+-				// Calling z.Raw just returns the raw bytes of the token. It does
+-				// not unescape &lt; to <, or lower-case tag names and attribute keys.
+-				z.Raw()
+-			case lowLevel:
+-				// Caling z.Text, z.TagName and z.TagAttr returns []byte values
+-				// whose contents may change on the next call to z.Next.
+-				switch tt {
+-				case TextToken, CommentToken, DoctypeToken:
+-					z.Text()
+-				case StartTagToken, SelfClosingTagToken:
+-					_, more := z.TagName()
+-					for more {
+-						_, _, more = z.TagAttr()
+-					}
+-				case EndTagToken:
+-					z.TagName()
+-				}
+-			case highLevel:
+-				// Calling z.Token converts []byte values to strings whose validity
+-				// extend beyond the next call to z.Next.
+-				z.Token()
+-			}
+-		}
+-	}
+-}
+-
+-func BenchmarkRawLevelTokenizer(b *testing.B)  { benchmarkTokenizer(b, rawLevel) }
+-func BenchmarkLowLevelTokenizer(b *testing.B)  { benchmarkTokenizer(b, lowLevel) }
+-func BenchmarkHighLevelTokenizer(b *testing.B) { benchmarkTokenizer(b, highLevel) }
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/idna.go docker-devmapper/vendor/src/code.google.com/p/go.net/idna/idna.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/idna.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/idna/idna.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,68 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package idna implements IDNA2008 (Internationalized Domain Names for
+-// Applications), defined in RFC 5890, RFC 5891, RFC 5892, RFC 5893 and
+-// RFC 5894.
+-package idna
+-
+-import (
+-	"strings"
+-	"unicode/utf8"
+-)
+-
+-// TODO(nigeltao): specify when errors occur. For example, is ToASCII(".") or
+-// ToASCII("foo\x00") an error? See also http://www.unicode.org/faq/idn.html#11
+-
+-// acePrefix is the ASCII Compatible Encoding prefix.
+-const acePrefix = "xn--"
+-
+-// ToASCII converts a domain or domain label to its ASCII form. For example,
+-// ToASCII("bücher.example.com") is "xn--bcher-kva.example.com", and
+-// ToASCII("golang") is "golang".
+-func ToASCII(s string) (string, error) {
+-	if ascii(s) {
+-		return s, nil
+-	}
+-	labels := strings.Split(s, ".")
+-	for i, label := range labels {
+-		if !ascii(label) {
+-			a, err := encode(acePrefix, label)
+-			if err != nil {
+-				return "", err
+-			}
+-			labels[i] = a
+-		}
+-	}
+-	return strings.Join(labels, "."), nil
+-}
+-
+-// ToUnicode converts a domain or domain label to its Unicode form. For example,
+-// ToUnicode("xn--bcher-kva.example.com") is "bücher.example.com", and
+-// ToUnicode("golang") is "golang".
+-func ToUnicode(s string) (string, error) {
+-	if !strings.Contains(s, acePrefix) {
+-		return s, nil
+-	}
+-	labels := strings.Split(s, ".")
+-	for i, label := range labels {
+-		if strings.HasPrefix(label, acePrefix) {
+-			u, err := decode(label[len(acePrefix):])
+-			if err != nil {
+-				return "", err
+-			}
+-			labels[i] = u
+-		}
+-	}
+-	return strings.Join(labels, "."), nil
+-}
+-
+-func ascii(s string) bool {
+-	for i := 0; i < len(s); i++ {
+-		if s[i] >= utf8.RuneSelf {
+-			return false
+-		}
+-	}
+-	return true
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/idna_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/idna/idna_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/idna_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/idna/idna_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,43 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package idna
+-
+-import (
+-	"testing"
+-)
+-
+-var idnaTestCases = [...]struct {
+-	ascii, unicode string
+-}{
+-	// Labels.
+-	{"books", "books"},
+-	{"xn--bcher-kva", "bücher"},
+-
+-	// Domains.
+-	{"foo--xn--bar.org", "foo--xn--bar.org"},
+-	{"golang.org", "golang.org"},
+-	{"example.xn--p1ai", "example.рф"},
+-	{"xn--czrw28b.tw", "商業.tw"},
+-	{"www.xn--mller-kva.de", "www.müller.de"},
+-}
+-
+-func TestIDNA(t *testing.T) {
+-	for _, tc := range idnaTestCases {
+-		if a, err := ToASCII(tc.unicode); err != nil {
+-			t.Errorf("ToASCII(%q): %v", tc.unicode, err)
+-		} else if a != tc.ascii {
+-			t.Errorf("ToASCII(%q): got %q, want %q", tc.unicode, a, tc.ascii)
+-		}
+-
+-		if u, err := ToUnicode(tc.ascii); err != nil {
+-			t.Errorf("ToUnicode(%q): %v", tc.ascii, err)
+-		} else if u != tc.unicode {
+-			t.Errorf("ToUnicode(%q): got %q, want %q", tc.ascii, u, tc.unicode)
+-		}
+-	}
+-}
+-
+-// TODO(nigeltao): test errors, once we've specified when ToASCII and ToUnicode
+-// return errors.
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/punycode.go docker-devmapper/vendor/src/code.google.com/p/go.net/idna/punycode.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/punycode.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/idna/punycode.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,200 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package idna
+-
+-// This file implements the Punycode algorithm from RFC 3492.
+-
+-import (
+-	"fmt"
+-	"math"
+-	"strings"
+-	"unicode/utf8"
+-)
+-
+-// These parameter values are specified in section 5.
+-//
+-// All computation is done with int32s, so that overflow behavior is identical
+-// regardless of whether int is 32-bit or 64-bit.
+-const (
+-	base        int32 = 36
+-	damp        int32 = 700
+-	initialBias int32 = 72
+-	initialN    int32 = 128
+-	skew        int32 = 38
+-	tmax        int32 = 26
+-	tmin        int32 = 1
+-)
+-
+-// decode decodes a string as specified in section 6.2.
+-func decode(encoded string) (string, error) {
+-	if encoded == "" {
+-		return "", nil
+-	}
+-	pos := 1 + strings.LastIndex(encoded, "-")
+-	if pos == 1 {
+-		return "", fmt.Errorf("idna: invalid label %q", encoded)
+-	}
+-	if pos == len(encoded) {
+-		return encoded[:len(encoded)-1], nil
+-	}
+-	output := make([]rune, 0, len(encoded))
+-	if pos != 0 {
+-		for _, r := range encoded[:pos-1] {
+-			output = append(output, r)
+-		}
+-	}
+-	i, n, bias := int32(0), initialN, initialBias
+-	for pos < len(encoded) {
+-		oldI, w := i, int32(1)
+-		for k := base; ; k += base {
+-			if pos == len(encoded) {
+-				return "", fmt.Errorf("idna: invalid label %q", encoded)
+-			}
+-			digit, ok := decodeDigit(encoded[pos])
+-			if !ok {
+-				return "", fmt.Errorf("idna: invalid label %q", encoded)
+-			}
+-			pos++
+-			i += digit * w
+-			if i < 0 {
+-				return "", fmt.Errorf("idna: invalid label %q", encoded)
+-			}
+-			t := k - bias
+-			if t < tmin {
+-				t = tmin
+-			} else if t > tmax {
+-				t = tmax
+-			}
+-			if digit < t {
+-				break
+-			}
+-			w *= base - t
+-			if w >= math.MaxInt32/base {
+-				return "", fmt.Errorf("idna: invalid label %q", encoded)
+-			}
+-		}
+-		x := int32(len(output) + 1)
+-		bias = adapt(i-oldI, x, oldI == 0)
+-		n += i / x
+-		i %= x
+-		if n > utf8.MaxRune || len(output) >= 1024 {
+-			return "", fmt.Errorf("idna: invalid label %q", encoded)
+-		}
+-		output = append(output, 0)
+-		copy(output[i+1:], output[i:])
+-		output[i] = n
+-		i++
+-	}
+-	return string(output), nil
+-}
+-
+-// encode encodes a string as specified in section 6.3 and prepends prefix to
+-// the result.
+-//
+-// The "while h < length(input)" line in the specification becomes "for
+-// remaining != 0" in the Go code, because len(s) in Go is in bytes, not runes.
+-func encode(prefix, s string) (string, error) {
+-	output := make([]byte, len(prefix), len(prefix)+1+2*len(s))
+-	copy(output, prefix)
+-	delta, n, bias := int32(0), initialN, initialBias
+-	b, remaining := int32(0), int32(0)
+-	for _, r := range s {
+-		if r < 0x80 {
+-			b++
+-			output = append(output, byte(r))
+-		} else {
+-			remaining++
+-		}
+-	}
+-	h := b
+-	if b > 0 {
+-		output = append(output, '-')
+-	}
+-	for remaining != 0 {
+-		m := int32(0x7fffffff)
+-		for _, r := range s {
+-			if m > r && r >= n {
+-				m = r
+-			}
+-		}
+-		delta += (m - n) * (h + 1)
+-		if delta < 0 {
+-			return "", fmt.Errorf("idna: invalid label %q", s)
+-		}
+-		n = m
+-		for _, r := range s {
+-			if r < n {
+-				delta++
+-				if delta < 0 {
+-					return "", fmt.Errorf("idna: invalid label %q", s)
+-				}
+-				continue
+-			}
+-			if r > n {
+-				continue
+-			}
+-			q := delta
+-			for k := base; ; k += base {
+-				t := k - bias
+-				if t < tmin {
+-					t = tmin
+-				} else if t > tmax {
+-					t = tmax
+-				}
+-				if q < t {
+-					break
+-				}
+-				output = append(output, encodeDigit(t+(q-t)%(base-t)))
+-				q = (q - t) / (base - t)
+-			}
+-			output = append(output, encodeDigit(q))
+-			bias = adapt(delta, h+1, h == b)
+-			delta = 0
+-			h++
+-			remaining--
+-		}
+-		delta++
+-		n++
+-	}
+-	return string(output), nil
+-}
+-
+-func decodeDigit(x byte) (digit int32, ok bool) {
+-	switch {
+-	case '0' <= x && x <= '9':
+-		return int32(x - ('0' - 26)), true
+-	case 'A' <= x && x <= 'Z':
+-		return int32(x - 'A'), true
+-	case 'a' <= x && x <= 'z':
+-		return int32(x - 'a'), true
+-	}
+-	return 0, false
+-}
+-
+-func encodeDigit(digit int32) byte {
+-	switch {
+-	case 0 <= digit && digit < 26:
+-		return byte(digit + 'a')
+-	case 26 <= digit && digit < 36:
+-		return byte(digit + ('0' - 26))
+-	}
+-	panic("idna: internal error in punycode encoding")
+-}
+-
+-// adapt is the bias adaptation function specified in section 6.1.
+-func adapt(delta, numPoints int32, firstTime bool) int32 {
+-	if firstTime {
+-		delta /= damp
+-	} else {
+-		delta /= 2
+-	}
+-	delta += delta / numPoints
+-	k := int32(0)
+-	for delta > ((base-tmin)*tmax)/2 {
+-		delta /= base - tmin
+-		k += base
+-	}
+-	return k + (base-tmin+1)*delta/(delta+skew)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/punycode_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/idna/punycode_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/idna/punycode_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/idna/punycode_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,198 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package idna
+-
+-import (
+-	"strings"
+-	"testing"
+-)
+-
+-var punycodeTestCases = [...]struct {
+-	s, encoded string
+-}{
+-	{"", ""},
+-	{"-", "--"},
+-	{"-a", "-a-"},
+-	{"-a-", "-a--"},
+-	{"a", "a-"},
+-	{"a-", "a--"},
+-	{"a-b", "a-b-"},
+-	{"books", "books-"},
+-	{"bücher", "bcher-kva"},
+-	{"Hello世界", "Hello-ck1hg65u"},
+-	{"ü", "tda"},
+-	{"üý", "tdac"},
+-
+-	// The test cases below come from RFC 3492 section 7.1 with Errata 3026.
+-	{
+-		// (A) Arabic (Egyptian).
+-		"\u0644\u064A\u0647\u0645\u0627\u0628\u062A\u0643\u0644" +
+-			"\u0645\u0648\u0634\u0639\u0631\u0628\u064A\u061F",
+-		"egbpdaj6bu4bxfgehfvwxn",
+-	},
+-	{
+-		// (B) Chinese (simplified).
+-		"\u4ED6\u4EEC\u4E3A\u4EC0\u4E48\u4E0D\u8BF4\u4E2D\u6587",
+-		"ihqwcrb4cv8a8dqg056pqjye",
+-	},
+-	{
+-		// (C) Chinese (traditional).
+-		"\u4ED6\u5011\u7232\u4EC0\u9EBD\u4E0D\u8AAA\u4E2D\u6587",
+-		"ihqwctvzc91f659drss3x8bo0yb",
+-	},
+-	{
+-		// (D) Czech.
+-		"\u0050\u0072\u006F\u010D\u0070\u0072\u006F\u0073\u0074" +
+-			"\u011B\u006E\u0065\u006D\u006C\u0075\u0076\u00ED\u010D" +
+-			"\u0065\u0073\u006B\u0079",
+-		"Proprostnemluvesky-uyb24dma41a",
+-	},
+-	{
+-		// (E) Hebrew.
+-		"\u05DC\u05DE\u05D4\u05D4\u05DD\u05E4\u05E9\u05D5\u05D8" +
+-			"\u05DC\u05D0\u05DE\u05D3\u05D1\u05E8\u05D9\u05DD\u05E2" +
+-			"\u05D1\u05E8\u05D9\u05EA",
+-		"4dbcagdahymbxekheh6e0a7fei0b",
+-	},
+-	{
+-		// (F) Hindi (Devanagari).
+-		"\u092F\u0939\u0932\u094B\u0917\u0939\u093F\u0928\u094D" +
+-			"\u0926\u0940\u0915\u094D\u092F\u094B\u0902\u0928\u0939" +
+-			"\u0940\u0902\u092C\u094B\u0932\u0938\u0915\u0924\u0947" +
+-			"\u0939\u0948\u0902",
+-		"i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd",
+-	},
+-	{
+-		// (G) Japanese (kanji and hiragana).
+-		"\u306A\u305C\u307F\u3093\u306A\u65E5\u672C\u8A9E\u3092" +
+-			"\u8A71\u3057\u3066\u304F\u308C\u306A\u3044\u306E\u304B",
+-		"n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa",
+-	},
+-	{
+-		// (H) Korean (Hangul syllables).
+-		"\uC138\uACC4\uC758\uBAA8\uB4E0\uC0AC\uB78C\uB4E4\uC774" +
+-			"\uD55C\uAD6D\uC5B4\uB97C\uC774\uD574\uD55C\uB2E4\uBA74" +
+-			"\uC5BC\uB9C8\uB098\uC88B\uC744\uAE4C",
+-		"989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5j" +
+-			"psd879ccm6fea98c",
+-	},
+-	{
+-		// (I) Russian (Cyrillic).
+-		"\u043F\u043E\u0447\u0435\u043C\u0443\u0436\u0435\u043E" +
+-			"\u043D\u0438\u043D\u0435\u0433\u043E\u0432\u043E\u0440" +
+-			"\u044F\u0442\u043F\u043E\u0440\u0443\u0441\u0441\u043A" +
+-			"\u0438",
+-		"b1abfaaepdrnnbgefbadotcwatmq2g4l",
+-	},
+-	{
+-		// (J) Spanish.
+-		"\u0050\u006F\u0072\u0071\u0075\u00E9\u006E\u006F\u0070" +
+-			"\u0075\u0065\u0064\u0065\u006E\u0073\u0069\u006D\u0070" +
+-			"\u006C\u0065\u006D\u0065\u006E\u0074\u0065\u0068\u0061" +
+-			"\u0062\u006C\u0061\u0072\u0065\u006E\u0045\u0073\u0070" +
+-			"\u0061\u00F1\u006F\u006C",
+-		"PorqunopuedensimplementehablarenEspaol-fmd56a",
+-	},
+-	{
+-		// (K) Vietnamese.
+-		"\u0054\u1EA1\u0069\u0073\u0061\u006F\u0068\u1ECD\u006B" +
+-			"\u0068\u00F4\u006E\u0067\u0074\u0068\u1EC3\u0063\u0068" +
+-			"\u1EC9\u006E\u00F3\u0069\u0074\u0069\u1EBF\u006E\u0067" +
+-			"\u0056\u0069\u1EC7\u0074",
+-		"TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g",
+-	},
+-	{
+-		// (L) 3<nen>B<gumi><kinpachi><sensei>.
+-		"\u0033\u5E74\u0042\u7D44\u91D1\u516B\u5148\u751F",
+-		"3B-ww4c5e180e575a65lsy2b",
+-	},
+-	{
+-		// (M) <amuro><namie>-with-SUPER-MONKEYS.
+-		"\u5B89\u5BA4\u5948\u7F8E\u6075\u002D\u0077\u0069\u0074" +
+-			"\u0068\u002D\u0053\u0055\u0050\u0045\u0052\u002D\u004D" +
+-			"\u004F\u004E\u004B\u0045\u0059\u0053",
+-		"-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n",
+-	},
+-	{
+-		// (N) Hello-Another-Way-<sorezore><no><basho>.
+-		"\u0048\u0065\u006C\u006C\u006F\u002D\u0041\u006E\u006F" +
+-			"\u0074\u0068\u0065\u0072\u002D\u0057\u0061\u0079\u002D" +
+-			"\u305D\u308C\u305E\u308C\u306E\u5834\u6240",
+-		"Hello-Another-Way--fc4qua05auwb3674vfr0b",
+-	},
+-	{
+-		// (O) <hitotsu><yane><no><shita>2.
+-		"\u3072\u3068\u3064\u5C4B\u6839\u306E\u4E0B\u0032",
+-		"2-u9tlzr9756bt3uc0v",
+-	},
+-	{
+-		// (P) Maji<de>Koi<suru>5<byou><mae>
+-		"\u004D\u0061\u006A\u0069\u3067\u004B\u006F\u0069\u3059" +
+-			"\u308B\u0035\u79D2\u524D",
+-		"MajiKoi5-783gue6qz075azm5e",
+-	},
+-	{
+-		// (Q) <pafii>de<runba>
+-		"\u30D1\u30D5\u30A3\u30FC\u0064\u0065\u30EB\u30F3\u30D0",
+-		"de-jg4avhby1noc0d",
+-	},
+-	{
+-		// (R) <sono><supiido><de>
+-		"\u305D\u306E\u30B9\u30D4\u30FC\u30C9\u3067",
+-		"d9juau41awczczp",
+-	},
+-	{
+-		// (S) -> $1.00 <-
+-		"\u002D\u003E\u0020\u0024\u0031\u002E\u0030\u0030\u0020" +
+-			"\u003C\u002D",
+-		"-> $1.00 <--",
+-	},
+-}
+-
+-func TestPunycode(t *testing.T) {
+-	for _, tc := range punycodeTestCases {
+-		if got, err := decode(tc.encoded); err != nil {
+-			t.Errorf("decode(%q): %v", tc.encoded, err)
+-		} else if got != tc.s {
+-			t.Errorf("decode(%q): got %q, want %q", tc.encoded, got, tc.s)
+-		}
+-
+-		if got, err := encode("", tc.s); err != nil {
+-			t.Errorf(`encode("", %q): %v`, tc.s, err)
+-		} else if got != tc.encoded {
+-			t.Errorf(`encode("", %q): got %q, want %q`, tc.s, got, tc.encoded)
+-		}
+-	}
+-}
+-
+-var punycodeErrorTestCases = [...]string{
+-	"decode -",            // A sole '-' is invalid.
+-	"decode foo\x00bar",   // '\x00' is not in [0-9A-Za-z].
+-	"decode foo#bar",      // '#' is not in [0-9A-Za-z].
+-	"decode foo\u00A3bar", // '\u00A3' is not in [0-9A-Za-z].
+-	"decode 9",            // "9a" decodes to codepoint \u00A3; "9" is truncated.
+-	"decode 99999a",       // "99999a" decodes to codepoint \U0048A3C1, which is > \U0010FFFF.
+-	"decode 9999999999a",  // "9999999999a" overflows the int32 calculation.
+-
+-	"encode " + strings.Repeat("x", 65536) + "\uff00", // int32 overflow.
+-}
+-
+-func TestPunycodeErrors(t *testing.T) {
+-	for _, tc := range punycodeErrorTestCases {
+-		var err error
+-		switch {
+-		case strings.HasPrefix(tc, "decode "):
+-			_, err = decode(tc[7:])
+-		case strings.HasPrefix(tc, "encode "):
+-			_, err = encode("", tc[7:])
+-		}
+-		if err == nil {
+-			if len(tc) > 256 {
+-				tc = tc[:100] + "..." + tc[len(tc)-100:]
+-			}
+-			t.Errorf("no error for %s", tc)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_bsd.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_bsd.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_bsd.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_bsd.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,121 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd netbsd openbsd
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	if cf&FlagTTL != 0 {
+-		if err := setIPv4ReceiveTTL(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagTTL)
+-		} else {
+-			opt.clear(FlagTTL)
+-		}
+-	}
+-	if cf&FlagDst != 0 {
+-		if err := setIPv4ReceiveDestinationAddress(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagDst)
+-		} else {
+-			opt.clear(FlagDst)
+-		}
+-	}
+-	if cf&FlagInterface != 0 {
+-		if err := setIPv4ReceiveInterface(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagInterface)
+-		} else {
+-			opt.clear(FlagInterface)
+-		}
+-	}
+-	return nil
+-}
+-
+-func newControlMessage(opt *rawOpt) (oob []byte) {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	l, off := 0, 0
+-	if opt.isset(FlagTTL) {
+-		l += syscall.CmsgSpace(1)
+-	}
+-	if opt.isset(FlagDst) {
+-		l += syscall.CmsgSpace(net.IPv4len)
+-	}
+-	if opt.isset(FlagInterface) {
+-		l += syscall.CmsgSpace(syscall.SizeofSockaddrDatalink)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if opt.isset(FlagTTL) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIP
+-			m.Type = syscall.IP_RECVTTL
+-			m.SetLen(syscall.CmsgLen(1))
+-			off += syscall.CmsgSpace(1)
+-		}
+-		if opt.isset(FlagDst) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIP
+-			m.Type = syscall.IP_RECVDSTADDR
+-			m.SetLen(syscall.CmsgLen(net.IPv4len))
+-			off += syscall.CmsgSpace(net.IPv4len)
+-		}
+-		if opt.isset(FlagInterface) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIP
+-			m.Type = syscall.IP_RECVIF
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofSockaddrDatalink))
+-			off += syscall.CmsgSpace(syscall.SizeofSockaddrDatalink)
+-		}
+-	}
+-	return
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	if len(b) == 0 {
+-		return nil, nil
+-	}
+-	cmsgs, err := syscall.ParseSocketControlMessage(b)
+-	if err != nil {
+-		return nil, os.NewSyscallError("parse socket control message", err)
+-	}
+-	cm := &ControlMessage{}
+-	for _, m := range cmsgs {
+-		if m.Header.Level != ianaProtocolIP {
+-			continue
+-		}
+-		switch m.Header.Type {
+-		case syscall.IP_RECVTTL:
+-			cm.TTL = int(*(*byte)(unsafe.Pointer(&m.Data[:1][0])))
+-		case syscall.IP_RECVDSTADDR:
+-			cm.Dst = m.Data[:net.IPv4len]
+-		case syscall.IP_RECVIF:
+-			sadl := (*syscall.SockaddrDatalink)(unsafe.Pointer(&m.Data[0]))
+-			cm.IfIndex = int(sadl.Index)
+-		}
+-	}
+-	return cm, nil
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) []byte {
+-	// TODO(mikio): Implement IP_PKTINFO stuff when OS X 10.8 comes
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,52 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"fmt"
+-	"net"
+-	"sync"
+-)
+-
+-type rawOpt struct {
+-	sync.Mutex
+-	cflags ControlFlags
+-}
+-
+-func (c *rawOpt) set(f ControlFlags)        { c.cflags |= f }
+-func (c *rawOpt) clear(f ControlFlags)      { c.cflags &^= f }
+-func (c *rawOpt) isset(f ControlFlags) bool { return c.cflags&f != 0 }
+-
+-type ControlFlags uint
+-
+-const (
+-	FlagTTL       ControlFlags = 1 << iota // pass the TTL on the received packet
+-	FlagSrc                                // pass the source address on the received packet
+-	FlagDst                                // pass the destination address on the received packet
+-	FlagInterface                          // pass the interface index on the received packet
+-)
+-
+-// A ControlMessage represents per packet basis IP-level socket options.
+-type ControlMessage struct {
+-	// Receiving socket options: SetControlMessage allows to
+-	// receive the options from the protocol stack using ReadFrom
+-	// method of PacketConn or RawConn.
+-	//
+-	// Specifying socket options: ControlMessage for WriteTo
+-	// method of PacketConn or RawConn allows to send the options
+-	// to the protocol stack.
+-	//
+-	TTL     int    // time-to-live, receiving only
+-	Src     net.IP // source address, specifying only
+-	Dst     net.IP // destination address, receiving only
+-	IfIndex int    // interface index, must be 1 <= value when specifying
+-}
+-
+-func (cm *ControlMessage) String() string {
+-	if cm == nil {
+-		return "<nil>"
+-	}
+-	return fmt.Sprintf("ttl: %v, src: %v, dst: %v, ifindex: %v", cm.TTL, cm.Src, cm.Dst, cm.IfIndex)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_linux.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_linux.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_linux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_linux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,126 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-// Linux provides a convenient path control option IP_PKTINFO that
+-// contains IP_SENDSRCADDR, IP_RECVDSTADDR, IP_RECVIF and IP_SENDIF.
+-const pktinfo = FlagSrc | FlagDst | FlagInterface
+-
+-func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	if cf&FlagTTL != 0 {
+-		if err := setIPv4ReceiveTTL(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagTTL)
+-		} else {
+-			opt.clear(FlagTTL)
+-		}
+-	}
+-	if cf&pktinfo != 0 {
+-		if err := setIPv4PacketInfo(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(cf & pktinfo)
+-		} else {
+-			opt.clear(cf & pktinfo)
+-		}
+-	}
+-	return nil
+-}
+-
+-func newControlMessage(opt *rawOpt) (oob []byte) {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	l, off := 0, 0
+-	if opt.isset(FlagTTL) {
+-		l += syscall.CmsgSpace(1)
+-	}
+-	if opt.isset(pktinfo) {
+-		l += syscall.CmsgSpace(syscall.SizeofInet4Pktinfo)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if opt.isset(FlagTTL) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIP
+-			m.Type = syscall.IP_RECVTTL
+-			m.SetLen(syscall.CmsgLen(1))
+-			off += syscall.CmsgSpace(1)
+-		}
+-		if opt.isset(pktinfo) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIP
+-			m.Type = syscall.IP_PKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet4Pktinfo))
+-			off += syscall.CmsgSpace(syscall.SizeofInet4Pktinfo)
+-		}
+-	}
+-	return
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	if len(b) == 0 {
+-		return nil, nil
+-	}
+-	cmsgs, err := syscall.ParseSocketControlMessage(b)
+-	if err != nil {
+-		return nil, os.NewSyscallError("parse socket control message", err)
+-	}
+-	cm := &ControlMessage{}
+-	for _, m := range cmsgs {
+-		if m.Header.Level != ianaProtocolIP {
+-			continue
+-		}
+-		switch m.Header.Type {
+-		case syscall.IP_TTL:
+-			cm.TTL = int(*(*byte)(unsafe.Pointer(&m.Data[:1][0])))
+-		case syscall.IP_PKTINFO:
+-			pi := (*syscall.Inet4Pktinfo)(unsafe.Pointer(&m.Data[0]))
+-			cm.IfIndex = int(pi.Ifindex)
+-			cm.Dst = pi.Addr[:]
+-		}
+-	}
+-	return cm, nil
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) (oob []byte) {
+-	if cm == nil {
+-		return
+-	}
+-	l, off := 0, 0
+-	pion := false
+-	if cm.Src.To4() != nil || cm.IfIndex != 0 {
+-		pion = true
+-		l += syscall.CmsgSpace(syscall.SizeofInet4Pktinfo)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if pion {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIP
+-			m.Type = syscall.IP_PKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet4Pktinfo))
+-			pi := (*syscall.Inet4Pktinfo)(unsafe.Pointer(&oob[off+syscall.CmsgLen(0)]))
+-			if ip := cm.Src.To4(); ip != nil {
+-				copy(pi.Addr[:], ip)
+-			}
+-			if cm.IfIndex != 0 {
+-				pi.Ifindex = int32(cm.IfIndex)
+-			}
+-			off += syscall.CmsgSpace(syscall.SizeofInet4Pktinfo)
+-		}
+-	}
+-	return
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import "syscall"
+-
+-func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-func newControlMessage(opt *rawOpt) []byte {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EPLAN9
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) []byte {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/control_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/control_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import "syscall"
+-
+-func setControlMessage(fd syscall.Handle, opt *rawOpt, cf ControlFlags, on bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+-
+-func newControlMessage(opt *rawOpt) []byte {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EWINDOWS
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) []byte {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,50 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-func (c *dgramOpt) MulticastTTL() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) SetMulticastTTL(ttl int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) MulticastInterface() (*net.Interface, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) MulticastLoopback() (bool, error) {
+-	// TODO(mikio): Implement this
+-	return false, syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) SetMulticastLoopback(on bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) JoinGroup(ifi *net.Interface, grp net.Addr) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) LeaveGroup(ifi *net.Interface, grp net.Addr) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_posix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_posix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_posix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/dgramopt_posix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,125 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd windows
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-// MulticastTTL returns the time-to-live field value for outgoing
+-// multicast packets.
+-func (c *dgramOpt) MulticastTTL() (int, error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return 0, err
+-	}
+-	return ipv4MulticastTTL(fd)
+-}
+-
+-// SetMulticastTTL sets the time-to-live field value for future
+-// outgoing multicast packets.
+-func (c *dgramOpt) SetMulticastTTL(ttl int) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv4MulticastTTL(fd, ttl)
+-}
+-
+-// MulticastInterface returns the default interface for multicast
+-// packet transmissions.
+-func (c *dgramOpt) MulticastInterface() (*net.Interface, error) {
+-	if !c.ok() {
+-		return nil, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return nil, err
+-	}
+-	return ipv4MulticastInterface(fd)
+-}
+-
+-// SetMulticastInterface sets the default interface for future
+-// multicast packet transmissions.
+-func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv4MulticastInterface(fd, ifi)
+-}
+-
+-// MulticastLoopback reports whether transmitted multicast packets
+-// should be copied and send back to the originator.
+-func (c *dgramOpt) MulticastLoopback() (bool, error) {
+-	if !c.ok() {
+-		return false, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return false, err
+-	}
+-	return ipv4MulticastLoopback(fd)
+-}
+-
+-// SetMulticastLoopback sets whether transmitted multicast packets
+-// should be copied and send back to the originator.
+-func (c *dgramOpt) SetMulticastLoopback(on bool) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv4MulticastLoopback(fd, on)
+-}
+-
+-// JoinGroup joins the group address group on the interface ifi.
+-// It uses the system assigned multicast interface when ifi is nil,
+-// although this is not recommended because the assignment depends on
+-// platforms and sometimes it might require routing configuration.
+-func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	grp := netAddrToIP4(group)
+-	if grp == nil {
+-		return errMissingAddress
+-	}
+-	return joinIPv4Group(fd, ifi, grp)
+-}
+-
+-// LeaveGroup leaves the group address group on the interface ifi.
+-func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	grp := netAddrToIP4(group)
+-	if grp == nil {
+-		return errMissingAddress
+-	}
+-	return leaveIPv4Group(fd, ifi, grp)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/doc.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/doc.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/doc.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/doc.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,196 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package ipv4 implements IP-level socket options for the Internet
+-// Protocol version 4.
+-//
+-// The package provides IP-level socket options that allow
+-// manipulation of IPv4 facilities.  The IPv4 and basic host
+-// requirements for IPv4 are defined in RFC 791, RFC 1112 and RFC
+-// 1122.
+-//
+-//
+-// Unicasting
+-//
+-// The options for unicasting are available for net.TCPConn,
+-// net.UDPConn and net.IPConn which are created as network connections
+-// that use the IPv4 transport.  When a single TCP connection carrying
+-// a data flow of multiple packets needs to indicate the flow is
+-// important, ipv4.Conn is used to set the type-of-service field on
+-// the IPv4 header for each packet.
+-//
+-//	ln, err := net.Listen("tcp4", "0.0.0.0:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer ln.Close()
+-//	for {
+-//		c, err := ln.Accept()
+-//		if err != nil {
+-//			// error handling
+-//		}
+-//		go func(c net.Conn) {
+-//			defer c.Close()
+-//
+-// The outgoing packets will be labeled DiffServ assured forwarding
+-// class 1 low drop precedence, as known as AF11 packets.
+-//
+-//			if err := ipv4.NewConn(c).SetTOS(DiffServAF11); err != nil {
+-//				// error handling
+-//			}
+-//			if _, err := c.Write(data); err != nil {
+-//				// error handling
+-//			}
+-//		}(c)
+-//	}
+-//
+-//
+-// Multicasting
+-//
+-// The options for multicasting are available for net.UDPConn and
+-// net.IPconn which are created as network connections that use the
+-// IPv4 transport.  A few network facilities must be prepared before
+-// you begin multicasting, at a minimum joining network interfaces and
+-// multicast groups.
+-//
+-//	en0, err := net.InterfaceByName("en0")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	en1, err := net.InterfaceByIndex(911)
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	group := net.IPv4(224, 0, 0, 250)
+-//
+-// First, an application listens to an appropriate address with an
+-// appropriate service port.
+-//
+-//	c, err := net.ListenPacket("udp4", "0.0.0.0:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c.Close()
+-//
+-// Second, the application joins multicast groups, starts listening to
+-// the groups on the specified network interfaces.  Note that the
+-// service port for transport layer protocol does not matter with this
+-// operation as joining groups affects only network and link layer
+-// protocols, such as IPv4 and Ethernet.
+-//
+-//	p := ipv4.NewPacketConn(c)
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: group}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en1, &net.UDPAddr{IP: group}); err != nil {
+-//		// error handling
+-//	}
+-//
+-// The application might set per packet control message transmissions
+-// between the protocol stack within the kernel.  When the application
+-// needs a destination address on an incoming packet,
+-// SetControlMessage of ipv4.PacketConn is used to enable control
+-// message transmissons.
+-//
+-//	if err := p.SetControlMessage(ipv4.FlagDst, true); err != nil {
+-//		// error handling
+-//	}
+-//
+-// The application could identify whether the received packets are
+-// of interest by using the control message that contains the
+-// destination address of the received packet.
+-//
+-//	b := make([]byte, 1500)
+-//	for {
+-//		n, cm, src, err := p.ReadFrom(b)
+-//		if err != nil {
+-//			// error handling
+-//		}
+-//		if cm.Dst.IsMulticast() {
+-//			if cm.Dst.Equal(group)
+-//				// joined group, do something
+-//			} else {
+-//				// unknown group, discard
+-//				continue
+-//			}
+-//		}
+-//
+-// The application can also send both unicast and multicast packets.
+-//
+-//		p.SetTOS(DiffServCS0)
+-//		p.SetTTL(16)
+-//		if _, err := p.WriteTo(data, nil, src); err != nil {
+-//			// error handling
+-//		}
+-//		dst := &net.UDPAddr{IP: group, Port: 1024}
+-//		for _, ifi := range []*net.Interface{en0, en1} {
+-//			if err := p.SetMulticastInterface(ifi); err != nil {
+-//				// error handling
+-//			}
+-//			p.SetMulticastTTL(2)
+-//			if _, err := p.WriteTo(data, nil, dst); err != nil {
+-//				// error handling
+-//			}
+-//		}
+-//	}
+-//
+-//
+-// More multicasting
+-//
+-// An application that uses PacketConn or RawConn may join multiple
+-// multicast groups.  For example, a UDP listener with port 1024 might
+-// join two different groups across over two different network
+-// interfaces by using:
+-//
+-//	c, err := net.ListenPacket("udp4", "0.0.0.0:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c.Close()
+-//	p := ipv4.NewPacketConn(c)
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en1, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}); err != nil {
+-//		// error handling
+-//	}
+-//
+-// It is possible for multiple UDP listeners that listen on the same
+-// UDP port to join the same multicast group.  The net package will
+-// provide a socket that listens to a wildcard address with reusable
+-// UDP port when an appropriate multicast address prefix is passed to
+-// the net.ListenPacket or net.ListenUDP.
+-//
+-//	c1, err := net.ListenPacket("udp4", "224.0.0.0:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c1.Close()
+-//	c2, err := net.ListenPacket("udp4", "224.0.0.0:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c2.Close()
+-//	p1 := ipv4.NewPacketConn(c1)
+-//	if err := p1.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil {
+-//		// error handling
+-//	}
+-//	p2 := ipv4.NewPacketConn(c2)
+-//	if err := p2.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil {
+-//		// error handling
+-//	}
+-//
+-// Also it is possible for the application to leave or rejoin a
+-// multicast group on the network interface.
+-//
+-//	if err := p.LeaveGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 250)}); err != nil {
+-//		// error handling
+-//	}
+-package ipv4
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/endpoint.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/endpoint.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/endpoint.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/endpoint.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,181 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"syscall"
+-	"time"
+-)
+-
+-// A Conn represents a network endpoint that uses the IPv4 transport.
+-// It is used to control basic IP-level socket options such as TOS and
+-// TTL.
+-type Conn struct {
+-	genericOpt
+-}
+-
+-type genericOpt struct {
+-	net.Conn
+-}
+-
+-func (c *genericOpt) ok() bool { return c != nil && c.Conn != nil }
+-
+-// NewConn returns a new Conn.
+-func NewConn(c net.Conn) *Conn {
+-	return &Conn{
+-		genericOpt: genericOpt{Conn: c},
+-	}
+-}
+-
+-// A PacketConn represents a packet network endpoint that uses the
+-// IPv4 transport.  It is used to control several IP-level socket
+-// options including multicasting.  It also provides datagram based
+-// network I/O methods specific to the IPv4 and higher layer protocols
+-// such as UDP.
+-type PacketConn struct {
+-	genericOpt
+-	dgramOpt
+-	payloadHandler
+-}
+-
+-type dgramOpt struct {
+-	net.PacketConn
+-}
+-
+-func (c *dgramOpt) ok() bool { return c != nil && c.PacketConn != nil }
+-
+-// SetControlMessage sets the per packet IP-level socket options.
+-func (c *PacketConn) SetControlMessage(cf ControlFlags, on bool) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.payloadHandler.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setControlMessage(fd, &c.payloadHandler.rawOpt, cf, on)
+-}
+-
+-// SetDeadline sets the read and write deadlines associated with the
+-// endpoint.
+-func (c *PacketConn) SetDeadline(t time.Time) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.PacketConn.SetDeadline(t)
+-}
+-
+-// SetReadDeadline sets the read deadline associated with the
+-// endpoint.
+-func (c *PacketConn) SetReadDeadline(t time.Time) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.PacketConn.SetReadDeadline(t)
+-}
+-
+-// SetWriteDeadline sets the write deadline associated with the
+-// endpoint.
+-func (c *PacketConn) SetWriteDeadline(t time.Time) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.PacketConn.SetWriteDeadline(t)
+-}
+-
+-// Close closes the endpoint.
+-func (c *PacketConn) Close() error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.PacketConn.Close()
+-}
+-
+-// NewPacketConn returns a new PacketConn using c as its underlying
+-// transport.
+-func NewPacketConn(c net.PacketConn) *PacketConn {
+-	return &PacketConn{
+-		genericOpt:     genericOpt{Conn: c.(net.Conn)},
+-		dgramOpt:       dgramOpt{PacketConn: c},
+-		payloadHandler: payloadHandler{PacketConn: c},
+-	}
+-}
+-
+-// A RawConn represents a packet network endpoint that uses the IPv4
+-// transport.  It is used to control several IP-level socket options
+-// including IPv4 header manipulation.  It also provides datagram
+-// based network I/O methods specific to the IPv4 and higher layer
+-// protocols that handle IPv4 datagram directly such as OSPF, GRE.
+-type RawConn struct {
+-	genericOpt
+-	dgramOpt
+-	packetHandler
+-}
+-
+-// SetControlMessage sets the per packet IP-level socket options.
+-func (c *RawConn) SetControlMessage(cf ControlFlags, on bool) error {
+-	if !c.packetHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.packetHandler.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setControlMessage(fd, &c.packetHandler.rawOpt, cf, on)
+-}
+-
+-// SetDeadline sets the read and write deadlines associated with the
+-// endpoint.
+-func (c *RawConn) SetDeadline(t time.Time) error {
+-	if !c.packetHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.packetHandler.c.SetDeadline(t)
+-}
+-
+-// SetReadDeadline sets the read deadline associated with the
+-// endpoint.
+-func (c *RawConn) SetReadDeadline(t time.Time) error {
+-	if !c.packetHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.packetHandler.c.SetReadDeadline(t)
+-}
+-
+-// SetWriteDeadline sets the write deadline associated with the
+-// endpoint.
+-func (c *RawConn) SetWriteDeadline(t time.Time) error {
+-	if !c.packetHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.packetHandler.c.SetWriteDeadline(t)
+-}
+-
+-// Close closes the endpoint.
+-func (c *RawConn) Close() error {
+-	if !c.packetHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.packetHandler.c.Close()
+-}
+-
+-// NewRawConn returns a new RawConn using c as its underlying
+-// transport.
+-func NewRawConn(c net.PacketConn) (*RawConn, error) {
+-	r := &RawConn{
+-		genericOpt:    genericOpt{Conn: c.(net.Conn)},
+-		dgramOpt:      dgramOpt{PacketConn: c},
+-		packetHandler: packetHandler{c: c.(*net.IPConn)},
+-	}
+-	fd, err := r.packetHandler.sysfd()
+-	if err != nil {
+-		return nil, err
+-	}
+-	if err := setIPv4HeaderPrepend(fd, true); err != nil {
+-		return nil, err
+-	}
+-	return r, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/example_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/example_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/example_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/example_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,283 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"log"
+-	"net"
+-)
+-
+-func ExampleUnicastTCPListener() {
+-	ln, err := net.Listen("tcp4", "0.0.0.0:1024")
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	defer ln.Close()
+-	for {
+-		c, err := ln.Accept()
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-		go func(c net.Conn) {
+-			defer c.Close()
+-			err := ipv4.NewConn(c).SetTOS(DiffServAF11)
+-			if err != nil {
+-				log.Fatal(err)
+-			}
+-			_, err = c.Write([]byte("HELLO-R-U-THERE-ACK"))
+-			if err != nil {
+-				log.Fatal(err)
+-			}
+-		}(c)
+-	}
+-}
+-
+-func ExampleMulticastUDPListener() {
+-	en0, err := net.InterfaceByName("en0")
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	en1, err := net.InterfaceByIndex(911)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	group := net.IPv4(224, 0, 0, 250)
+-
+-	c, err := net.ListenPacket("udp4", "0.0.0.0:1024")
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	defer c.Close()
+-
+-	p := ipv4.NewPacketConn(c)
+-	err = p.JoinGroup(en0, &net.UDPAddr{IP: group})
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	err = p.JoinGroup(en1, &net.UDPAddr{IP: group})
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-
+-	err = p.SetControlMessage(ipv4.FlagDst, true)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-
+-	b := make([]byte, 1500)
+-	for {
+-		n, cm, src, err := p.ReadFrom(b)
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-		if cm.Dst.IsMulticast() {
+-			if cm.Dst.Equal(group) {
+-				// joined group, do something
+-			} else {
+-				// unknown group, discard
+-				continue
+-			}
+-		}
+-		p.SetTOS(DiffServCS7)
+-		p.SetTTL(16)
+-		_, err = p.WriteTo(b[:n], nil, src)
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-		dst := &net.UDPAddr{IP: group, Port: 1024}
+-		for _, ifi := range []*net.Interface{en0, en1} {
+-			err := p.SetMulticastInterface(ifi)
+-			if err != nil {
+-				log.Fatal(err)
+-			}
+-			p.SetMulticastTTL(2)
+-			_, err = p.WriteTo(b[:n], nil, dst)
+-			if err != nil {
+-				log.Fatal(err)
+-			}
+-		}
+-	}
+-
+-	err = p.LeaveGroup(en1, &net.UDPAddr{IP: group})
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	newgroup := net.IPv4(224, 0, 0, 249)
+-	err = p.JoinGroup(en1, &net.UDPAddr{IP: newgroup})
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-}
+-
+-type OSPFHeader struct {
+-	Version  byte
+-	Type     byte
+-	Len      uint16
+-	RouterID uint32
+-	AreaID   uint32
+-	Checksum uint16
+-}
+-
+-const (
+-	OSPFHeaderLen      = 14
+-	OSPFHelloHeaderLen = 20
+-	OSPF_VERSION       = 2
+-	OSPF_TYPE_HELLO    = iota + 1
+-	OSPF_TYPE_DB_DESCRIPTION
+-	OSPF_TYPE_LS_REQUEST
+-	OSPF_TYPE_LS_UPDATE
+-	OSPF_TYPE_LS_ACK
+-)
+-
+-var (
+-	AllSPFRouters = net.IPv4(224, 0, 0, 5)
+-	AllDRouters   = net.IPv4(224, 0, 0, 6)
+-)
+-
+-func ExampleIPOSPFListener() {
+-	var ifs []*net.Interface
+-	en0, err := net.InterfaceByName("en0")
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	ifs = append(ifs, en0)
+-	en1, err := net.InterfaceByIndex(911)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	ifs = append(ifs, en1)
+-
+-	c, err := net.ListenPacket("ip4:89", "0.0.0.0") // OSFP for IPv4
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	defer c.Close()
+-
+-	r, err := ipv4.NewRawConn(c)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	for _, ifi := range ifs {
+-		err := r.JoinGroup(ifi, &net.IPAddr{IP: AllSPFRouters})
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-		err = r.JoinGroup(ifi, &net.IPAddr{IP: AllDRouters})
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-	}
+-
+-	err = r.SetControlMessage(ipv4.FlagDst|ipv4.FlagInterface, true)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	r.SetTOS(DiffServCS6)
+-
+-	parseOSPFHeader := func(b []byte) *OSPFHeader {
+-		if len(b) < OSPFHeaderLen {
+-			return nil
+-		}
+-		return &OSPFHeader{
+-			Version:  b[0],
+-			Type:     b[1],
+-			Len:      uint16(b[2])<<8 | uint16(b[3]),
+-			RouterID: uint32(b[4])<<24 | uint32(b[5])<<16 | uint32(b[6])<<8 | uint32(b[7]),
+-			AreaID:   uint32(b[8])<<24 | uint32(b[9])<<16 | uint32(b[10])<<8 | uint32(b[11]),
+-			Checksum: uint16(b[12])<<8 | uint16(b[13]),
+-		}
+-	}
+-
+-	b := make([]byte, 1500)
+-	for {
+-		iph, p, _, err := r.ReadFrom(b)
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-		if iph.Version != ipv4.Version {
+-			continue
+-		}
+-		if iph.Dst.IsMulticast() {
+-			if !iph.Dst.Equal(AllSPFRouters) && !iph.Dst.Equal(AllDRouters) {
+-				continue
+-			}
+-		}
+-		ospfh := parseOSPFHeader(p)
+-		if ospfh == nil {
+-			continue
+-		}
+-		if ospfh.Version != OSPF_VERSION {
+-			continue
+-		}
+-		switch ospfh.Type {
+-		case OSPF_TYPE_HELLO:
+-		case OSPF_TYPE_DB_DESCRIPTION:
+-		case OSPF_TYPE_LS_REQUEST:
+-		case OSPF_TYPE_LS_UPDATE:
+-		case OSPF_TYPE_LS_ACK:
+-		}
+-	}
+-}
+-
+-func ExampleWriteIPOSPFHello() {
+-	var ifs []*net.Interface
+-	en0, err := net.InterfaceByName("en0")
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	ifs = append(ifs, en0)
+-	en1, err := net.InterfaceByIndex(911)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	ifs = append(ifs, en1)
+-
+-	c, err := net.ListenPacket("ip4:89", "0.0.0.0") // OSPF for IPv4
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	defer c.Close()
+-
+-	r, err := ipv4.NewRawConn(c)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	for _, ifi := range ifs {
+-		err := r.JoinGroup(ifi, &net.IPAddr{IP: AllSPFRouters})
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-		err = r.JoinGroup(ifi, &net.IPAddr{IP: AllDRouters})
+-		if err != nil {
+-			log.Fatal(err)
+-		}
+-	}
+-
+-	hello := make([]byte, OSPFHelloHeaderLen)
+-	ospf := make([]byte, OSPFHeaderLen)
+-	ospf[0] = OSPF_VERSION
+-	ospf[1] = OSPF_TYPE_HELLO
+-	ospf = append(ospf, hello...)
+-	iph := &ipv4.Header{}
+-	iph.Version = ipv4.Version
+-	iph.Len = ipv4.HeaderLen
+-	iph.TOS = DiffServCS6
+-	iph.TotalLen = ipv4.HeaderLen + len(ospf)
+-	iph.TTL = 1
+-	iph.Protocol = 89
+-	iph.Dst = AllSPFRouters
+-
+-	for _, ifi := range ifs {
+-		err := r.SetMulticastInterface(ifi)
+-		if err != nil {
+-			return
+-		}
+-		err = r.WriteTo(iph, ospf, nil)
+-		if err != nil {
+-			return
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/genericopt_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/genericopt_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/genericopt_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/genericopt_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,29 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"syscall"
+-)
+-
+-func (c *genericOpt) TOS() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *genericOpt) SetTOS(tos int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-func (c *genericOpt) TTL() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *genericOpt) SetTTL(ttl int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/genericopt_posix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/genericopt_posix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/genericopt_posix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/genericopt_posix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,61 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd windows
+-
+-package ipv4
+-
+-import (
+-	"syscall"
+-)
+-
+-// TOS returns the type-of-service field value for outgoing packets.
+-func (c *genericOpt) TOS() (int, error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return 0, err
+-	}
+-	return ipv4TOS(fd)
+-}
+-
+-// SetTOS sets the type-of-service field value for future outgoing
+-// packets.
+-func (c *genericOpt) SetTOS(tos int) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv4TOS(fd, tos)
+-}
+-
+-// TTL returns the time-to-live field value for outgoing packets.
+-func (c *genericOpt) TTL() (int, error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return 0, err
+-	}
+-	return ipv4TTL(fd)
+-}
+-
+-// SetTTL sets the time-to-live field value for future outgoing
+-// packets.
+-func (c *genericOpt) SetTTL(ttl int) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv4TTL(fd, ttl)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/gen.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/gen.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/gen.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/gen.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,252 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build ignore
+-
+-// This program generates internet protocol constatns and tables by
+-// reading IANA protocol registries.
+-//
+-// Usage of this program:
+-//	go run gen.go > iana.go
+-package main
+-
+-import (
+-	"bytes"
+-	"encoding/xml"
+-	"fmt"
+-	"go/format"
+-	"io"
+-	"net/http"
+-	"os"
+-	"strconv"
+-	"strings"
+-)
+-
+-var registries = []struct {
+-	url   string
+-	parse func(io.Writer, io.Reader) error
+-}{
+-	{
+-		"http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml",
+-		parseICMPv4Parameters,
+-	},
+-	{
+-		"http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml",
+-		parseProtocolNumbers,
+-	},
+-}
+-
+-func main() {
+-	var bb bytes.Buffer
+-	fmt.Fprintf(&bb, "// go run gen.go\n")
+-	fmt.Fprintf(&bb, "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n")
+-	fmt.Fprintf(&bb, "package ipv4\n\n")
+-	for _, r := range registries {
+-		resp, err := http.Get(r.url)
+-		if err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		defer resp.Body.Close()
+-		if resp.StatusCode != http.StatusOK {
+-			fmt.Fprintf(os.Stderr, "got HTTP status code %v for %v\n", resp.StatusCode, r.url)
+-			os.Exit(1)
+-		}
+-		if err := r.parse(&bb, resp.Body); err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		fmt.Fprintf(&bb, "\n")
+-	}
+-	b, err := format.Source(bb.Bytes())
+-	if err != nil {
+-		fmt.Fprintln(os.Stderr, err)
+-		os.Exit(1)
+-	}
+-	os.Stdout.Write(b)
+-}
+-
+-func parseICMPv4Parameters(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var icp icmpv4Parameters
+-	if err := dec.Decode(&icp); err != nil {
+-		return err
+-	}
+-	prs := icp.escape()
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, pr := range prs {
+-		if pr.Descr == "" {
+-			continue
+-		}
+-		fmt.Fprintf(w, "ICMPType%s ICMPType = %d", pr.Descr, pr.Value)
+-		fmt.Fprintf(w, "// %s\n", pr.OrigDescr)
+-	}
+-	fmt.Fprintf(w, ")\n\n")
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated)
+-	fmt.Fprintf(w, "var icmpTypes = map[ICMPType]string{\n")
+-	for _, pr := range prs {
+-		if pr.Descr == "" {
+-			continue
+-		}
+-		fmt.Fprintf(w, "%d: %q,\n", pr.Value, strings.ToLower(pr.OrigDescr))
+-	}
+-	fmt.Fprintf(w, "}\n")
+-	return nil
+-}
+-
+-type icmpv4Parameters struct {
+-	XMLName    xml.Name              `xml:"registry"`
+-	Title      string                `xml:"title"`
+-	Updated    string                `xml:"updated"`
+-	Registries []icmpv4ParamRegistry `xml:"registry"`
+-}
+-
+-type icmpv4ParamRegistry struct {
+-	Title   string              `xml:"title"`
+-	Records []icmpv4ParamRecord `xml:"record"`
+-}
+-
+-type icmpv4ParamRecord struct {
+-	Value string `xml:"value"`
+-	Descr string `xml:"description"`
+-}
+-
+-type canonICMPv4ParamRecord struct {
+-	OrigDescr string
+-	Descr     string
+-	Value     int
+-}
+-
+-func (icp *icmpv4Parameters) escape() []canonICMPv4ParamRecord {
+-	id := -1
+-	for i, r := range icp.Registries {
+-		if strings.Contains(r.Title, "Type") || strings.Contains(r.Title, "type") {
+-			id = i
+-			break
+-		}
+-	}
+-	if id < 0 {
+-		return nil
+-	}
+-	prs := make([]canonICMPv4ParamRecord, len(icp.Registries[id].Records))
+-	sr := strings.NewReplacer(
+-		"Messages", "",
+-		"Message", "",
+-		"ICMP", "",
+-		"+", "P",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, pr := range icp.Registries[id].Records {
+-		if strings.Contains(pr.Descr, "Reserved") ||
+-			strings.Contains(pr.Descr, "Unassigned") ||
+-			strings.Contains(pr.Descr, "Deprecated") ||
+-			strings.Contains(pr.Descr, "Experiment") ||
+-			strings.Contains(pr.Descr, "experiment") {
+-			continue
+-		}
+-		ss := strings.Split(pr.Descr, "\n")
+-		if len(ss) > 1 {
+-			prs[i].Descr = strings.Join(ss, " ")
+-		} else {
+-			prs[i].Descr = ss[0]
+-		}
+-		s := strings.TrimSpace(prs[i].Descr)
+-		prs[i].OrigDescr = s
+-		prs[i].Descr = sr.Replace(s)
+-		prs[i].Value, _ = strconv.Atoi(pr.Value)
+-	}
+-	return prs
+-}
+-
+-func parseProtocolNumbers(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var pn protocolNumbers
+-	if err := dec.Decode(&pn); err != nil {
+-		return err
+-	}
+-	prs := pn.escape()
+-	prs = append([]canonProtocolRecord{{
+-		Name:  "IP",
+-		Descr: "IPv4 encapsulation, pseudo protocol number",
+-		Value: 0,
+-	}}, prs...)
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", pn.Title, pn.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, pr := range prs {
+-		if pr.Name == "" {
+-			continue
+-		}
+-		fmt.Fprintf(w, "ianaProtocol%s = %d", pr.Name, pr.Value)
+-		s := pr.Descr
+-		if s == "" {
+-			s = pr.OrigName
+-		}
+-		fmt.Fprintf(w, "// %s\n", s)
+-	}
+-	fmt.Fprintf(w, ")\n")
+-	return nil
+-}
+-
+-type protocolNumbers struct {
+-	XMLName  xml.Name         `xml:"registry"`
+-	Title    string           `xml:"title"`
+-	Updated  string           `xml:"updated"`
+-	RegTitle string           `xml:"registry>title"`
+-	Note     string           `xml:"registry>note"`
+-	Records  []protocolRecord `xml:"registry>record"`
+-}
+-
+-type protocolRecord struct {
+-	Value string `xml:"value"`
+-	Name  string `xml:"name"`
+-	Descr string `xml:"description"`
+-}
+-
+-type canonProtocolRecord struct {
+-	OrigName string
+-	Name     string
+-	Descr    string
+-	Value    int
+-}
+-
+-func (pn *protocolNumbers) escape() []canonProtocolRecord {
+-	prs := make([]canonProtocolRecord, len(pn.Records))
+-	sr := strings.NewReplacer(
+-		"-in-", "in",
+-		"-within-", "within",
+-		"-over-", "over",
+-		"+", "P",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, pr := range pn.Records {
+-		prs[i].OrigName = pr.Name
+-		s := strings.TrimSpace(pr.Name)
+-		switch pr.Name {
+-		case "ISIS over IPv4":
+-			prs[i].Name = "ISIS"
+-		case "manet":
+-			prs[i].Name = "MANET"
+-		default:
+-			prs[i].Name = sr.Replace(s)
+-		}
+-		ss := strings.Split(pr.Descr, "\n")
+-		for i := range ss {
+-			ss[i] = strings.TrimSpace(ss[i])
+-		}
+-		if len(ss) > 1 {
+-			prs[i].Descr = strings.Join(ss, " ")
+-		} else {
+-			prs[i].Descr = ss[0]
+-		}
+-		prs[i].Value, _ = strconv.Atoi(pr.Value)
+-	}
+-	return prs
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/gentest.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/gentest.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/gentest.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/gentest.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,196 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build ignore
+-
+-// This program generates internet protocol constants by reading IANA
+-// protocol registries.
+-//
+-// Usage:
+-//	go run gentest.go > iana_test.go
+-package main
+-
+-import (
+-	"bytes"
+-	"encoding/xml"
+-	"fmt"
+-	"go/format"
+-	"io"
+-	"net/http"
+-	"os"
+-	"strconv"
+-	"strings"
+-)
+-
+-var registries = []struct {
+-	url   string
+-	parse func(io.Writer, io.Reader) error
+-}{
+-	{
+-		"http://www.iana.org/assignments/dscp-registry/dscp-registry.xml",
+-		parseDSCPRegistry,
+-	},
+-	{
+-		"http://www.iana.org/assignments/ipv4-tos-byte/ipv4-tos-byte.xml",
+-		parseTOSTCByte,
+-	},
+-}
+-
+-func main() {
+-	var bb bytes.Buffer
+-	fmt.Fprintf(&bb, "// go run gentv.go\n")
+-	fmt.Fprintf(&bb, "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n")
+-	fmt.Fprintf(&bb, "package ipv4_test\n\n")
+-	for _, r := range registries {
+-		resp, err := http.Get(r.url)
+-		if err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		defer resp.Body.Close()
+-		if resp.StatusCode != http.StatusOK {
+-			fmt.Fprintf(os.Stderr, "got HTTP status code %v for %v\n", resp.StatusCode, r.url)
+-			os.Exit(1)
+-		}
+-		if err := r.parse(&bb, resp.Body); err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		fmt.Fprintf(&bb, "\n")
+-	}
+-	b, err := format.Source(bb.Bytes())
+-	if err != nil {
+-		fmt.Fprintln(os.Stderr, err)
+-		os.Exit(1)
+-	}
+-	os.Stdout.Write(b)
+-}
+-
+-func parseDSCPRegistry(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var dr dscpRegistry
+-	if err := dec.Decode(&dr); err != nil {
+-		return err
+-	}
+-	drs := dr.escape()
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", dr.Title, dr.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, dr := range drs {
+-		fmt.Fprintf(w, "DiffServ%s = %#x", dr.Name, dr.Value)
+-		fmt.Fprintf(w, "// %s\n", dr.OrigName)
+-	}
+-	fmt.Fprintf(w, ")\n")
+-	return nil
+-}
+-
+-type dscpRegistry struct {
+-	XMLName     xml.Name     `xml:"registry"`
+-	Title       string       `xml:"title"`
+-	Updated     string       `xml:"updated"`
+-	Note        string       `xml:"note"`
+-	RegTitle    string       `xml:"registry>title"`
+-	PoolRecords []dscpRecord `xml:"registry>record"`
+-	Records     []dscpRecord `xml:"registry>registry>record"`
+-}
+-
+-type dscpRecord struct {
+-	Name  string `xml:"name"`
+-	Space string `xml:"space"`
+-}
+-
+-type canonDSCPRecord struct {
+-	OrigName string
+-	Name     string
+-	Value    int
+-}
+-
+-func (drr *dscpRegistry) escape() []canonDSCPRecord {
+-	drs := make([]canonDSCPRecord, len(drr.Records))
+-	sr := strings.NewReplacer(
+-		"+", "",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, dr := range drr.Records {
+-		s := strings.TrimSpace(dr.Name)
+-		drs[i].OrigName = s
+-		drs[i].Name = sr.Replace(s)
+-		n, err := strconv.ParseUint(dr.Space, 2, 8)
+-		if err != nil {
+-			continue
+-		}
+-		drs[i].Value = int(n) << 2
+-	}
+-	return drs
+-}
+-
+-func parseTOSTCByte(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var ttb tosTCByte
+-	if err := dec.Decode(&ttb); err != nil {
+-		return err
+-	}
+-	trs := ttb.escape()
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", ttb.Title, ttb.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, tr := range trs {
+-		fmt.Fprintf(w, "%s = %#x", tr.Keyword, tr.Value)
+-		fmt.Fprintf(w, "// %s\n", tr.OrigKeyword)
+-	}
+-	fmt.Fprintf(w, ")\n")
+-	return nil
+-}
+-
+-type tosTCByte struct {
+-	XMLName  xml.Name          `xml:"registry"`
+-	Title    string            `xml:"title"`
+-	Updated  string            `xml:"updated"`
+-	Note     string            `xml:"note"`
+-	RegTitle string            `xml:"registry>title"`
+-	Records  []tosTCByteRecord `xml:"registry>record"`
+-}
+-
+-type tosTCByteRecord struct {
+-	Binary  string `xml:"binary"`
+-	Keyword string `xml:"keyword"`
+-}
+-
+-type canonTOSTCByteRecord struct {
+-	OrigKeyword string
+-	Keyword     string
+-	Value       int
+-}
+-
+-func (ttb *tosTCByte) escape() []canonTOSTCByteRecord {
+-	trs := make([]canonTOSTCByteRecord, len(ttb.Records))
+-	sr := strings.NewReplacer(
+-		"Capable", "",
+-		"(", "",
+-		")", "",
+-		"+", "",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, tr := range ttb.Records {
+-		s := strings.TrimSpace(tr.Keyword)
+-		trs[i].OrigKeyword = s
+-		ss := strings.Split(s, " ")
+-		if len(ss) > 1 {
+-			trs[i].Keyword = strings.Join(ss[1:], " ")
+-		} else {
+-			trs[i].Keyword = ss[0]
+-		}
+-		trs[i].Keyword = sr.Replace(trs[i].Keyword)
+-		n, err := strconv.ParseUint(tr.Binary, 2, 8)
+-		if err != nil {
+-			continue
+-		}
+-		trs[i].Value = int(n)
+-	}
+-	return trs
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/header.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/header.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/header.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/header.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,149 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"errors"
+-	"fmt"
+-	"net"
+-	"runtime"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-var (
+-	errMissingAddress  = errors.New("missing address")
+-	errMissingHeader   = errors.New("missing header")
+-	errHeaderTooShort  = errors.New("header too short")
+-	errBufferTooShort  = errors.New("buffer too short")
+-	errInvalidConnType = errors.New("invalid conn type")
+-)
+-
+-// References:
+-//
+-// RFC  791  Internet Protocol
+-//	http://tools.ietf.org/html/rfc791
+-// RFC 1112  Host Extensions for IP Multicasting
+-//	http://tools.ietf.org/html/rfc1112
+-// RFC 1122  Requirements for Internet Hosts
+-//	http://tools.ietf.org/html/rfc1122
+-
+-const (
+-	Version      = 4  // protocol version
+-	HeaderLen    = 20 // header length without extension headers
+-	maxHeaderLen = 60 // sensible default, revisit if later RFCs define new usage of version and header length fields
+-)
+-
+-type headerField int
+-
+-const (
+-	posTOS      headerField = 1  // type-of-service
+-	posTotalLen             = 2  // packet total length
+-	posID                   = 4  // identification
+-	posFragOff              = 6  // fragment offset
+-	posTTL                  = 8  // time-to-live
+-	posProtocol             = 9  // next protocol
+-	posChecksum             = 10 // checksum
+-	posSrc                  = 12 // source address
+-	posDst                  = 16 // destination address
+-)
+-
+-// A Header represents an IPv4 header.
+-type Header struct {
+-	Version  int    // protocol version
+-	Len      int    // header length
+-	TOS      int    // type-of-service
+-	TotalLen int    // packet total length
+-	ID       int    // identification
+-	FragOff  int    // fragment offset
+-	TTL      int    // time-to-live
+-	Protocol int    // next protocol
+-	Checksum int    // checksum
+-	Src      net.IP // source address
+-	Dst      net.IP // destination address
+-	Options  []byte // options, extension headers
+-}
+-
+-func (h *Header) String() string {
+-	if h == nil {
+-		return "<nil>"
+-	}
+-	return fmt.Sprintf("ver: %v, hdrlen: %v, tos: %#x, totallen: %v, id: %#x, fragoff: %#x, ttl: %v, proto: %v, cksum: %#x, src: %v, dst: %v", h.Version, h.Len, h.TOS, h.TotalLen, h.ID, h.FragOff, h.TTL, h.Protocol, h.Checksum, h.Src, h.Dst)
+-}
+-
+-// Please refer to the online manual; IP(4) on Darwin, FreeBSD and
+-// OpenBSD.  IP(7) on Linux.
+-const supportsNewIPInput = runtime.GOOS == "linux" || runtime.GOOS == "openbsd"
+-
+-// Marshal returns the binary encoding of the IPv4 header h.
+-func (h *Header) Marshal() ([]byte, error) {
+-	if h == nil {
+-		return nil, syscall.EINVAL
+-	}
+-	if h.Len < HeaderLen {
+-		return nil, errHeaderTooShort
+-	}
+-	hdrlen := HeaderLen + len(h.Options)
+-	b := make([]byte, hdrlen)
+-	b[0] = byte(Version<<4 | (hdrlen >> 2 & 0x0f))
+-	b[posTOS] = byte(h.TOS)
+-	if supportsNewIPInput {
+-		b[posTotalLen], b[posTotalLen+1] = byte(h.TotalLen>>8), byte(h.TotalLen)
+-		b[posFragOff], b[posFragOff+1] = byte(h.FragOff>>8), byte(h.FragOff)
+-	} else {
+-		*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])) = uint16(h.TotalLen)
+-		*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])) = uint16(h.FragOff)
+-	}
+-	b[posID], b[posID+1] = byte(h.ID>>8), byte(h.ID)
+-	b[posTTL] = byte(h.TTL)
+-	b[posProtocol] = byte(h.Protocol)
+-	b[posChecksum], b[posChecksum+1] = byte(h.Checksum>>8), byte(h.Checksum)
+-	if ip := h.Src.To4(); ip != nil {
+-		copy(b[posSrc:posSrc+net.IPv4len], ip[:net.IPv4len])
+-	}
+-	if ip := h.Dst.To4(); ip != nil {
+-		copy(b[posDst:posDst+net.IPv4len], ip[:net.IPv4len])
+-	} else {
+-		return nil, errMissingAddress
+-	}
+-	if len(h.Options) > 0 {
+-		copy(b[HeaderLen:], h.Options)
+-	}
+-	return b, nil
+-}
+-
+-// ParseHeader parses b as an IPv4 header.
+-func ParseHeader(b []byte) (*Header, error) {
+-	if len(b) < HeaderLen {
+-		return nil, errHeaderTooShort
+-	}
+-	hdrlen := int(b[0]&0x0f) << 2
+-	if hdrlen > len(b) {
+-		return nil, errBufferTooShort
+-	}
+-	h := &Header{}
+-	h.Version = int(b[0] >> 4)
+-	h.Len = hdrlen
+-	h.TOS = int(b[posTOS])
+-	if supportsNewIPInput {
+-		h.TotalLen = int(b[posTotalLen])<<8 | int(b[posTotalLen+1])
+-		h.FragOff = int(b[posFragOff])<<8 | int(b[posFragOff+1])
+-	} else {
+-		h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])))
+-		h.TotalLen += hdrlen
+-		h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])))
+-	}
+-	h.ID = int(b[posID])<<8 | int(b[posID+1])
+-	h.TTL = int(b[posTTL])
+-	h.Protocol = int(b[posProtocol])
+-	h.Checksum = int(b[posChecksum])<<8 | int(b[posChecksum+1])
+-	h.Src = net.IPv4(b[posSrc], b[posSrc+1], b[posSrc+2], b[posSrc+3])
+-	h.Dst = net.IPv4(b[posDst], b[posDst+1], b[posDst+2], b[posDst+3])
+-	if hdrlen-HeaderLen > 0 {
+-		h.Options = make([]byte, hdrlen-HeaderLen)
+-		copy(h.Options, b[HeaderLen:])
+-	}
+-	return h, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/header_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/header_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/header_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/header_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,95 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4_test
+-
+-import (
+-	"bytes"
+-	"code.google.com/p/go.net/ipv4"
+-	"net"
+-	"reflect"
+-	"runtime"
+-	"testing"
+-)
+-
+-var (
+-	wireHeaderFromKernel = [ipv4.HeaderLen]byte{
+-		0x45, 0x01, 0xbe, 0xef,
+-		0xca, 0xfe, 0x05, 0xdc,
+-		0xff, 0x01, 0xde, 0xad,
+-		172, 16, 254, 254,
+-		192, 168, 0, 1,
+-	}
+-	wireHeaderToKernel = [ipv4.HeaderLen]byte{
+-		0x45, 0x01, 0xbe, 0xef,
+-		0xca, 0xfe, 0x05, 0xdc,
+-		0xff, 0x01, 0xde, 0xad,
+-		172, 16, 254, 254,
+-		192, 168, 0, 1,
+-	}
+-	wireHeaderFromTradBSDKernel = [ipv4.HeaderLen]byte{
+-		0x45, 0x01, 0xdb, 0xbe,
+-		0xca, 0xfe, 0xdc, 0x05,
+-		0xff, 0x01, 0xde, 0xad,
+-		172, 16, 254, 254,
+-		192, 168, 0, 1,
+-	}
+-	wireHeaderToTradBSDKernel = [ipv4.HeaderLen]byte{
+-		0x45, 0x01, 0xef, 0xbe,
+-		0xca, 0xfe, 0xdc, 0x05,
+-		0xff, 0x01, 0xde, 0xad,
+-		172, 16, 254, 254,
+-		192, 168, 0, 1,
+-	}
+-	// TODO(mikio): Add platform dependent wire header formats when
+-	// we support new platforms.
+-
+-	testHeader = &ipv4.Header{
+-		Version:  ipv4.Version,
+-		Len:      ipv4.HeaderLen,
+-		TOS:      1,
+-		TotalLen: 0xbeef,
+-		ID:       0xcafe,
+-		FragOff:  1500,
+-		TTL:      255,
+-		Protocol: 1,
+-		Checksum: 0xdead,
+-		Src:      net.IPv4(172, 16, 254, 254),
+-		Dst:      net.IPv4(192, 168, 0, 1),
+-	}
+-)
+-
+-func TestMarshalHeader(t *testing.T) {
+-	b, err := testHeader.Marshal()
+-	if err != nil {
+-		t.Fatalf("ipv4.Header.Marshal failed: %v", err)
+-	}
+-	var wh []byte
+-	switch runtime.GOOS {
+-	case "linux", "openbsd":
+-		wh = wireHeaderToKernel[:]
+-	default:
+-		wh = wireHeaderToTradBSDKernel[:]
+-	}
+-	if !bytes.Equal(b, wh) {
+-		t.Fatalf("ipv4.Header.Marshal failed: %#v not equal %#v", b, wh)
+-	}
+-}
+-
+-func TestParseHeader(t *testing.T) {
+-	var wh []byte
+-	switch runtime.GOOS {
+-	case "linux", "openbsd":
+-		wh = wireHeaderFromKernel[:]
+-	default:
+-		wh = wireHeaderFromTradBSDKernel[:]
+-	}
+-	h, err := ipv4.ParseHeader(wh)
+-	if err != nil {
+-		t.Fatalf("ipv4.ParseHeader failed: %v", err)
+-	}
+-	if !reflect.DeepEqual(h, testHeader) {
+-		t.Fatalf("ipv4.ParseHeader failed: %#v not equal %#v", h, testHeader)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,85 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"errors"
+-	"net"
+-)
+-
+-var (
+-	errNoSuchInterface          = errors.New("no such interface")
+-	errNoSuchMulticastInterface = errors.New("no such multicast interface")
+-)
+-
+-func boolint(b bool) int {
+-	if b {
+-		return 1
+-	}
+-	return 0
+-}
+-
+-func netAddrToIP4(a net.Addr) net.IP {
+-	switch v := a.(type) {
+-	case *net.UDPAddr:
+-		if ip := v.IP.To4(); ip != nil {
+-			return ip
+-		}
+-	case *net.IPAddr:
+-		if ip := v.IP.To4(); ip != nil {
+-			return ip
+-		}
+-	}
+-	return nil
+-}
+-
+-func netIP4ToInterface(ip net.IP) (*net.Interface, error) {
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		return nil, err
+-	}
+-	for _, ifi := range ift {
+-		ifat, err := ifi.Addrs()
+-		if err != nil {
+-			return nil, err
+-		}
+-		for _, ifa := range ifat {
+-			switch v := ifa.(type) {
+-			case *net.IPAddr:
+-				if ip.Equal(v.IP) {
+-					return &ifi, nil
+-				}
+-			case *net.IPNet:
+-				if ip.Equal(v.IP) {
+-					return &ifi, nil
+-				}
+-			}
+-		}
+-	}
+-	return nil, errNoSuchInterface
+-}
+-
+-func netInterfaceToIP4(ifi *net.Interface) (net.IP, error) {
+-	if ifi == nil {
+-		return net.IPv4zero, nil
+-	}
+-	ifat, err := ifi.Addrs()
+-	if err != nil {
+-		return nil, err
+-	}
+-	for _, ifa := range ifat {
+-		switch v := ifa.(type) {
+-		case *net.IPAddr:
+-			if v.IP.To4() != nil {
+-				return v.IP, nil
+-			}
+-		case *net.IPNet:
+-			if v.IP.To4() != nil {
+-				return v.IP, nil
+-			}
+-		}
+-	}
+-	return nil, errNoSuchInterface
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import "syscall"
+-
+-func (c *genericOpt) sysfd() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) sysfd() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *payloadHandler) sysfd() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *packetHandler) sysfd() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_posix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_posix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_posix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_posix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,42 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd windows
+-
+-package ipv4
+-
+-import (
+-	"bytes"
+-	"net"
+-	"syscall"
+-)
+-
+-func setSyscallIPMreq(mreq *syscall.IPMreq, ifi *net.Interface) error {
+-	if ifi == nil {
+-		return nil
+-	}
+-	ifat, err := ifi.Addrs()
+-	if err != nil {
+-		return err
+-	}
+-	for _, ifa := range ifat {
+-		switch v := ifa.(type) {
+-		case *net.IPAddr:
+-			if a := v.IP.To4(); a != nil {
+-				copy(mreq.Interface[:], a)
+-				goto done
+-			}
+-		case *net.IPNet:
+-			if a := v.IP.To4(); a != nil {
+-				copy(mreq.Interface[:], a)
+-				goto done
+-			}
+-		}
+-	}
+-done:
+-	if bytes.Equal(mreq.Multiaddr[:], net.IPv4zero.To4()) {
+-		return errNoSuchMulticastInterface
+-	}
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_unix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_unix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_unix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_unix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,50 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"reflect"
+-)
+-
+-func (c *genericOpt) sysfd() (int, error) {
+-	switch p := c.Conn.(type) {
+-	case *net.TCPConn, *net.UDPConn, *net.IPConn:
+-		return sysfd(p)
+-	}
+-	return 0, errInvalidConnType
+-}
+-
+-func (c *dgramOpt) sysfd() (int, error) {
+-	switch p := c.PacketConn.(type) {
+-	case *net.UDPConn, *net.IPConn:
+-		return sysfd(p.(net.Conn))
+-	}
+-	return 0, errInvalidConnType
+-}
+-
+-func (c *payloadHandler) sysfd() (int, error) {
+-	return sysfd(c.PacketConn.(net.Conn))
+-}
+-
+-func (c *packetHandler) sysfd() (int, error) {
+-	return sysfd(c.c)
+-}
+-
+-func sysfd(c net.Conn) (int, error) {
+-	cv := reflect.ValueOf(c)
+-	switch ce := cv.Elem(); ce.Kind() {
+-	case reflect.Struct:
+-		netfd := ce.FieldByName("conn").FieldByName("fd")
+-		switch fe := netfd.Elem(); fe.Kind() {
+-		case reflect.Struct:
+-			fd := fe.FieldByName("sysfd")
+-			return int(fd.Int()), nil
+-		}
+-	}
+-	return 0, errInvalidConnType
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/helper_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/helper_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,49 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"reflect"
+-	"syscall"
+-)
+-
+-func (c *genericOpt) sysfd() (syscall.Handle, error) {
+-	switch p := c.Conn.(type) {
+-	case *net.TCPConn, *net.UDPConn, *net.IPConn:
+-		return sysfd(p)
+-	}
+-	return syscall.InvalidHandle, errInvalidConnType
+-}
+-
+-func (c *dgramOpt) sysfd() (syscall.Handle, error) {
+-	switch p := c.PacketConn.(type) {
+-	case *net.UDPConn, *net.IPConn:
+-		return sysfd(p.(net.Conn))
+-	}
+-	return syscall.InvalidHandle, errInvalidConnType
+-}
+-
+-func (c *payloadHandler) sysfd() (syscall.Handle, error) {
+-	return sysfd(c.PacketConn.(net.Conn))
+-}
+-
+-func (c *packetHandler) sysfd() (syscall.Handle, error) {
+-	return sysfd(c.c)
+-}
+-
+-func sysfd(c net.Conn) (syscall.Handle, error) {
+-	cv := reflect.ValueOf(c)
+-	switch ce := cv.Elem(); ce.Kind() {
+-	case reflect.Struct:
+-		netfd := ce.FieldByName("conn").FieldByName("fd")
+-		switch fe := netfd.Elem(); fe.Kind() {
+-		case reflect.Struct:
+-			fd := fe.FieldByName("sysfd")
+-			return syscall.Handle(fd.Uint()), nil
+-		}
+-	}
+-	return syscall.InvalidHandle, errInvalidConnType
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/iana.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/iana.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/iana.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/iana.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,179 +0,0 @@
+-// go run gen.go
+-// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+-
+-package ipv4
+-
+-// Internet Control Message Protocol (ICMP) Parameters, Updated: 2013-04-19
+-const (
+-	ICMPTypeEchoReply              ICMPType = 0  // Echo Reply
+-	ICMPTypeDestinationUnreachable ICMPType = 3  // Destination Unreachable
+-	ICMPTypeRedirect               ICMPType = 5  // Redirect
+-	ICMPTypeEcho                   ICMPType = 8  // Echo
+-	ICMPTypeRouterAdvertisement    ICMPType = 9  // Router Advertisement
+-	ICMPTypeRouterSolicitation     ICMPType = 10 // Router Solicitation
+-	ICMPTypeTimeExceeded           ICMPType = 11 // Time Exceeded
+-	ICMPTypeParameterProblem       ICMPType = 12 // Parameter Problem
+-	ICMPTypeTimestamp              ICMPType = 13 // Timestamp
+-	ICMPTypeTimestampReply         ICMPType = 14 // Timestamp Reply
+-	ICMPTypePhoturis               ICMPType = 40 // Photuris
+-)
+-
+-// Internet Control Message Protocol (ICMP) Parameters, Updated: 2013-04-19
+-var icmpTypes = map[ICMPType]string{
+-	0:  "echo reply",
+-	3:  "destination unreachable",
+-	5:  "redirect",
+-	8:  "echo",
+-	9:  "router advertisement",
+-	10: "router solicitation",
+-	11: "time exceeded",
+-	12: "parameter problem",
+-	13: "timestamp",
+-	14: "timestamp reply",
+-	40: "photuris",
+-}
+-
+-// Protocol Numbers, Updated: 2013-02-17
+-const (
+-	ianaProtocolIP             = 0   // IPv4 encapsulation, pseudo protocol number
+-	ianaProtocolHOPOPT         = 0   // IPv6 Hop-by-Hop Option
+-	ianaProtocolICMP           = 1   // Internet Control Message
+-	ianaProtocolIGMP           = 2   // Internet Group Management
+-	ianaProtocolGGP            = 3   // Gateway-to-Gateway
+-	ianaProtocolIPv4           = 4   // IPv4 encapsulation
+-	ianaProtocolST             = 5   // Stream
+-	ianaProtocolTCP            = 6   // Transmission Control
+-	ianaProtocolCBT            = 7   // CBT
+-	ianaProtocolEGP            = 8   // Exterior Gateway Protocol
+-	ianaProtocolIGP            = 9   // any private interior gateway (used by Cisco for their IGRP)
+-	ianaProtocolBBNRCCMON      = 10  // BBN RCC Monitoring
+-	ianaProtocolNVPII          = 11  // Network Voice Protocol
+-	ianaProtocolPUP            = 12  // PUP
+-	ianaProtocolARGUS          = 13  // ARGUS
+-	ianaProtocolEMCON          = 14  // EMCON
+-	ianaProtocolXNET           = 15  // Cross Net Debugger
+-	ianaProtocolCHAOS          = 16  // Chaos
+-	ianaProtocolUDP            = 17  // User Datagram
+-	ianaProtocolMUX            = 18  // Multiplexing
+-	ianaProtocolDCNMEAS        = 19  // DCN Measurement Subsystems
+-	ianaProtocolHMP            = 20  // Host Monitoring
+-	ianaProtocolPRM            = 21  // Packet Radio Measurement
+-	ianaProtocolXNSIDP         = 22  // XEROX NS IDP
+-	ianaProtocolTRUNK1         = 23  // Trunk-1
+-	ianaProtocolTRUNK2         = 24  // Trunk-2
+-	ianaProtocolLEAF1          = 25  // Leaf-1
+-	ianaProtocolLEAF2          = 26  // Leaf-2
+-	ianaProtocolRDP            = 27  // Reliable Data Protocol
+-	ianaProtocolIRTP           = 28  // Internet Reliable Transaction
+-	ianaProtocolISOTP4         = 29  // ISO Transport Protocol Class 4
+-	ianaProtocolNETBLT         = 30  // Bulk Data Transfer Protocol
+-	ianaProtocolMFENSP         = 31  // MFE Network Services Protocol
+-	ianaProtocolMERITINP       = 32  // MERIT Internodal Protocol
+-	ianaProtocolDCCP           = 33  // Datagram Congestion Control Protocol
+-	ianaProtocol3PC            = 34  // Third Party Connect Protocol
+-	ianaProtocolIDPR           = 35  // Inter-Domain Policy Routing Protocol
+-	ianaProtocolXTP            = 36  // XTP
+-	ianaProtocolDDP            = 37  // Datagram Delivery Protocol
+-	ianaProtocolIDPRCMTP       = 38  // IDPR Control Message Transport Proto
+-	ianaProtocolTPPP           = 39  // TP++ Transport Protocol
+-	ianaProtocolIL             = 40  // IL Transport Protocol
+-	ianaProtocolIPv6           = 41  // IPv6 encapsulation
+-	ianaProtocolSDRP           = 42  // Source Demand Routing Protocol
+-	ianaProtocolIPv6Route      = 43  // Routing Header for IPv6
+-	ianaProtocolIPv6Frag       = 44  // Fragment Header for IPv6
+-	ianaProtocolIDRP           = 45  // Inter-Domain Routing Protocol
+-	ianaProtocolRSVP           = 46  // Reservation Protocol
+-	ianaProtocolGRE            = 47  // Generic Routing Encapsulation
+-	ianaProtocolDSR            = 48  // Dynamic Source Routing Protocol
+-	ianaProtocolBNA            = 49  // BNA
+-	ianaProtocolESP            = 50  // Encap Security Payload
+-	ianaProtocolAH             = 51  // Authentication Header
+-	ianaProtocolINLSP          = 52  // Integrated Net Layer Security  TUBA
+-	ianaProtocolSWIPE          = 53  // IP with Encryption
+-	ianaProtocolNARP           = 54  // NBMA Address Resolution Protocol
+-	ianaProtocolMOBILE         = 55  // IP Mobility
+-	ianaProtocolTLSP           = 56  // Transport Layer Security Protocol using Kryptonet key management
+-	ianaProtocolSKIP           = 57  // SKIP
+-	ianaProtocolIPv6ICMP       = 58  // ICMP for IPv6
+-	ianaProtocolIPv6NoNxt      = 59  // No Next Header for IPv6
+-	ianaProtocolIPv6Opts       = 60  // Destination Options for IPv6
+-	ianaProtocolCFTP           = 62  // CFTP
+-	ianaProtocolSATEXPAK       = 64  // SATNET and Backroom EXPAK
+-	ianaProtocolKRYPTOLAN      = 65  // Kryptolan
+-	ianaProtocolRVD            = 66  // MIT Remote Virtual Disk Protocol
+-	ianaProtocolIPPC           = 67  // Internet Pluribus Packet Core
+-	ianaProtocolSATMON         = 69  // SATNET Monitoring
+-	ianaProtocolVISA           = 70  // VISA Protocol
+-	ianaProtocolIPCV           = 71  // Internet Packet Core Utility
+-	ianaProtocolCPNX           = 72  // Computer Protocol Network Executive
+-	ianaProtocolCPHB           = 73  // Computer Protocol Heart Beat
+-	ianaProtocolWSN            = 74  // Wang Span Network
+-	ianaProtocolPVP            = 75  // Packet Video Protocol
+-	ianaProtocolBRSATMON       = 76  // Backroom SATNET Monitoring
+-	ianaProtocolSUNND          = 77  // SUN ND PROTOCOL-Temporary
+-	ianaProtocolWBMON          = 78  // WIDEBAND Monitoring
+-	ianaProtocolWBEXPAK        = 79  // WIDEBAND EXPAK
+-	ianaProtocolISOIP          = 80  // ISO Internet Protocol
+-	ianaProtocolVMTP           = 81  // VMTP
+-	ianaProtocolSECUREVMTP     = 82  // SECURE-VMTP
+-	ianaProtocolVINES          = 83  // VINES
+-	ianaProtocolTTP            = 84  // TTP
+-	ianaProtocolIPTM           = 84  // Protocol Internet Protocol Traffic Manager
+-	ianaProtocolNSFNETIGP      = 85  // NSFNET-IGP
+-	ianaProtocolDGP            = 86  // Dissimilar Gateway Protocol
+-	ianaProtocolTCF            = 87  // TCF
+-	ianaProtocolEIGRP          = 88  // EIGRP
+-	ianaProtocolOSPFIGP        = 89  // OSPFIGP
+-	ianaProtocolSpriteRPC      = 90  // Sprite RPC Protocol
+-	ianaProtocolLARP           = 91  // Locus Address Resolution Protocol
+-	ianaProtocolMTP            = 92  // Multicast Transport Protocol
+-	ianaProtocolAX25           = 93  // AX.25 Frames
+-	ianaProtocolIPIP           = 94  // IP-within-IP Encapsulation Protocol
+-	ianaProtocolMICP           = 95  // Mobile Internetworking Control Pro.
+-	ianaProtocolSCCSP          = 96  // Semaphore Communications Sec. Pro.
+-	ianaProtocolETHERIP        = 97  // Ethernet-within-IP Encapsulation
+-	ianaProtocolENCAP          = 98  // Encapsulation Header
+-	ianaProtocolGMTP           = 100 // GMTP
+-	ianaProtocolIFMP           = 101 // Ipsilon Flow Management Protocol
+-	ianaProtocolPNNI           = 102 // PNNI over IP
+-	ianaProtocolPIM            = 103 // Protocol Independent Multicast
+-	ianaProtocolARIS           = 104 // ARIS
+-	ianaProtocolSCPS           = 105 // SCPS
+-	ianaProtocolQNX            = 106 // QNX
+-	ianaProtocolAN             = 107 // Active Networks
+-	ianaProtocolIPComp         = 108 // IP Payload Compression Protocol
+-	ianaProtocolSNP            = 109 // Sitara Networks Protocol
+-	ianaProtocolCompaqPeer     = 110 // Compaq Peer Protocol
+-	ianaProtocolIPXinIP        = 111 // IPX in IP
+-	ianaProtocolVRRP           = 112 // Virtual Router Redundancy Protocol
+-	ianaProtocolPGM            = 113 // PGM Reliable Transport Protocol
+-	ianaProtocolL2TP           = 115 // Layer Two Tunneling Protocol
+-	ianaProtocolDDX            = 116 // D-II Data Exchange (DDX)
+-	ianaProtocolIATP           = 117 // Interactive Agent Transfer Protocol
+-	ianaProtocolSTP            = 118 // Schedule Transfer Protocol
+-	ianaProtocolSRP            = 119 // SpectraLink Radio Protocol
+-	ianaProtocolUTI            = 120 // UTI
+-	ianaProtocolSMP            = 121 // Simple Message Protocol
+-	ianaProtocolSM             = 122 // SM
+-	ianaProtocolPTP            = 123 // Performance Transparency Protocol
+-	ianaProtocolISIS           = 124 // ISIS over IPv4
+-	ianaProtocolFIRE           = 125 // FIRE
+-	ianaProtocolCRTP           = 126 // Combat Radio Transport Protocol
+-	ianaProtocolCRUDP          = 127 // Combat Radio User Datagram
+-	ianaProtocolSSCOPMCE       = 128 // SSCOPMCE
+-	ianaProtocolIPLT           = 129 // IPLT
+-	ianaProtocolSPS            = 130 // Secure Packet Shield
+-	ianaProtocolPIPE           = 131 // Private IP Encapsulation within IP
+-	ianaProtocolSCTP           = 132 // Stream Control Transmission Protocol
+-	ianaProtocolFC             = 133 // Fibre Channel
+-	ianaProtocolRSVPE2EIGNORE  = 134 // RSVP-E2E-IGNORE
+-	ianaProtocolMobilityHeader = 135 // Mobility Header
+-	ianaProtocolUDPLite        = 136 // UDPLite
+-	ianaProtocolMPLSinIP       = 137 // MPLS-in-IP
+-	ianaProtocolMANET          = 138 // MANET Protocols
+-	ianaProtocolHIP            = 139 // Host Identity Protocol
+-	ianaProtocolShim6          = 140 // Shim6 Protocol
+-	ianaProtocolWESP           = 141 // Wrapped Encapsulating Security Payload
+-	ianaProtocolROHC           = 142 // Robust Header Compression
+-	ianaProtocolReserved       = 255 // Reserved
+-)
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/iana_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/iana_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/iana_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/iana_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,38 +0,0 @@
+-// go run gentv.go
+-// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+-
+-package ipv4_test
+-
+-// Differentiated Services Field Codepoints, Updated: 2010-05-11
+-const (
+-	DiffServCS0        = 0x0  // CS0
+-	DiffServCS1        = 0x20 // CS1
+-	DiffServCS2        = 0x40 // CS2
+-	DiffServCS3        = 0x60 // CS3
+-	DiffServCS4        = 0x80 // CS4
+-	DiffServCS5        = 0xa0 // CS5
+-	DiffServCS6        = 0xc0 // CS6
+-	DiffServCS7        = 0xe0 // CS7
+-	DiffServAF11       = 0x28 // AF11
+-	DiffServAF12       = 0x30 // AF12
+-	DiffServAF13       = 0x38 // AF13
+-	DiffServAF21       = 0x48 // AF21
+-	DiffServAF22       = 0x50 // AF22
+-	DiffServAF23       = 0x58 // AF23
+-	DiffServAF31       = 0x68 // AF31
+-	DiffServAF32       = 0x70 // AF32
+-	DiffServAF33       = 0x78 // AF33
+-	DiffServAF41       = 0x88 // AF41
+-	DiffServAF42       = 0x90 // AF42
+-	DiffServAF43       = 0x98 // AF43
+-	DiffServEFPHB      = 0xb8 // EF PHB
+-	DiffServVOICEADMIT = 0xb0 // VOICE-ADMIT
+-)
+-
+-// IPv4 TOS Byte and IPv6 Traffic Class Octet, Updated: 2001-09-06
+-const (
+-	NotECNTransport       = 0x0 // Not-ECT (Not ECN-Capable Transport)
+-	ECNTransport1         = 0x1 // ECT(1) (ECN-Capable Transport(1))
+-	ECNTransport0         = 0x2 // ECT(0) (ECN-Capable Transport(0))
+-	CongestionExperienced = 0x3 // CE (Congestion Experienced)
+-)
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/icmp.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/icmp.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/icmp.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/icmp.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,16 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-// An ICMPType represents a type of ICMP message.
+-type ICMPType int
+-
+-func (typ ICMPType) String() string {
+-	s, ok := icmpTypes[typ]
+-	if !ok {
+-		return "<nil>"
+-	}
+-	return s
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/mockicmp_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/mockicmp_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/mockicmp_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/mockicmp_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,111 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"errors"
+-	"flag"
+-)
+-
+-var testExternal = flag.Bool("external", true, "allow use of external networks during long test")
+-
+-// icmpMessage represents an ICMP message.
+-type icmpMessage struct {
+-	Type     ipv4.ICMPType   // type
+-	Code     int             // code
+-	Checksum int             // checksum
+-	Body     icmpMessageBody // body
+-}
+-
+-// icmpMessageBody represents an ICMP message body.
+-type icmpMessageBody interface {
+-	Len() int
+-	Marshal() ([]byte, error)
+-}
+-
+-// Marshal returns the binary enconding of the ICMP echo request or
+-// reply message m.
+-func (m *icmpMessage) Marshal() ([]byte, error) {
+-	b := []byte{byte(m.Type), byte(m.Code), 0, 0}
+-	if m.Body != nil && m.Body.Len() != 0 {
+-		mb, err := m.Body.Marshal()
+-		if err != nil {
+-			return nil, err
+-		}
+-		b = append(b, mb...)
+-	}
+-	csumcv := len(b) - 1 // checksum coverage
+-	s := uint32(0)
+-	for i := 0; i < csumcv; i += 2 {
+-		s += uint32(b[i+1])<<8 | uint32(b[i])
+-	}
+-	if csumcv&1 == 0 {
+-		s += uint32(b[csumcv])
+-	}
+-	s = s>>16 + s&0xffff
+-	s = s + s>>16
+-	// Place checksum back in header; using ^= avoids the
+-	// assumption the checksum bytes are zero.
+-	b[2] ^= byte(^s & 0xff)
+-	b[3] ^= byte(^s >> 8)
+-	return b, nil
+-}
+-
+-// parseICMPMessage parses b as an ICMP message.
+-func parseICMPMessage(b []byte) (*icmpMessage, error) {
+-	msglen := len(b)
+-	if msglen < 4 {
+-		return nil, errors.New("message too short")
+-	}
+-	m := &icmpMessage{Type: ipv4.ICMPType(b[0]), Code: int(b[1]), Checksum: int(b[2])<<8 | int(b[3])}
+-	if msglen > 4 {
+-		var err error
+-		switch m.Type {
+-		case ipv4.ICMPTypeEcho, ipv4.ICMPTypeEchoReply:
+-			m.Body, err = parseICMPEcho(b[4:])
+-			if err != nil {
+-				return nil, err
+-			}
+-		}
+-	}
+-	return m, nil
+-}
+-
+-// imcpEcho represenets an ICMP echo request or reply message body.
+-type icmpEcho struct {
+-	ID   int    // identifier
+-	Seq  int    // sequence number
+-	Data []byte // data
+-}
+-
+-func (p *icmpEcho) Len() int {
+-	if p == nil {
+-		return 0
+-	}
+-	return 4 + len(p.Data)
+-}
+-
+-// Marshal returns the binary enconding of the ICMP echo request or
+-// reply message body p.
+-func (p *icmpEcho) Marshal() ([]byte, error) {
+-	b := make([]byte, 4+len(p.Data))
+-	b[0], b[1] = byte(p.ID>>8), byte(p.ID&0xff)
+-	b[2], b[3] = byte(p.Seq>>8), byte(p.Seq&0xff)
+-	copy(b[4:], p.Data)
+-	return b, nil
+-}
+-
+-// parseICMPEcho parses b as an ICMP echo request or reply message
+-// body.
+-func parseICMPEcho(b []byte) (*icmpEcho, error) {
+-	bodylen := len(b)
+-	p := &icmpEcho{ID: int(b[0])<<8 | int(b[1]), Seq: int(b[2])<<8 | int(b[3])}
+-	if bodylen > 4 {
+-		p.Data = make([]byte, bodylen-4)
+-		copy(p.Data, b[4:])
+-	}
+-	return p, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/mocktransponder_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/mocktransponder_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/mocktransponder_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/mocktransponder_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,124 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"net"
+-	"testing"
+-	"time"
+-)
+-
+-// writeThenReadPayload transmits IPv4 datagram payloads to the
+-// loopback address or interface and captures the loopback'd datagram
+-// payloads.
+-func writeThenReadPayload(t *testing.T, i int, c *ipv4.PacketConn, wb []byte, dst net.Addr) []byte {
+-	rb := make([]byte, 1500)
+-	c.SetTOS(i + 1)
+-	var ip net.IP
+-	switch v := dst.(type) {
+-	case *net.UDPAddr:
+-		ip = v.IP
+-	case *net.IPAddr:
+-		ip = v.IP
+-	}
+-	if ip.IsMulticast() {
+-		c.SetMulticastTTL(i + 1)
+-	} else {
+-		c.SetTTL(i + 1)
+-	}
+-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
+-	if _, err := c.WriteTo(wb, nil, dst); err != nil {
+-		t.Fatalf("ipv4.PacketConn.WriteTo failed: %v", err)
+-	}
+-	n, cm, _, err := c.ReadFrom(rb)
+-	if err != nil {
+-		t.Fatalf("ipv4.PacketConn.ReadFrom failed: %v", err)
+-	}
+-	t.Logf("rcvd cmsg: %v", cm)
+-	return rb[:n]
+-}
+-
+-// writeThenReadDatagram transmits ICMP for IPv4 datagrams to the
+-// loopback address or interface and captures the response datagrams
+-// from the protocol stack within the kernel.
+-func writeThenReadDatagram(t *testing.T, i int, c *ipv4.RawConn, wb []byte, src, dst net.Addr) []byte {
+-	rb := make([]byte, ipv4.HeaderLen+len(wb))
+-	wh := &ipv4.Header{
+-		Version:  ipv4.Version,
+-		Len:      ipv4.HeaderLen,
+-		TOS:      i + 1,
+-		TotalLen: ipv4.HeaderLen + len(wb),
+-		TTL:      i + 1,
+-		Protocol: 1,
+-	}
+-	if src != nil {
+-		wh.Src = src.(*net.IPAddr).IP
+-	}
+-	if dst != nil {
+-		wh.Dst = dst.(*net.IPAddr).IP
+-	}
+-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
+-	if err := c.WriteTo(wh, wb, nil); err != nil {
+-		t.Fatalf("ipv4.RawConn.WriteTo failed: %v", err)
+-	}
+-	rh, b, cm, err := c.ReadFrom(rb)
+-	if err != nil {
+-		t.Fatalf("ipv4.RawConn.ReadFrom failed: %v", err)
+-	}
+-	t.Logf("rcvd cmsg: %v", cm.String())
+-	t.Logf("rcvd hdr: %v", rh.String())
+-	return b
+-}
+-
+-// LoopbackInterface returns a logical network interface for loopback
+-// tests.
+-func loopbackInterface() *net.Interface {
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		return nil
+-	}
+-	for _, ifi := range ift {
+-		if ifi.Flags&net.FlagLoopback != 0 {
+-			return &ifi
+-		}
+-	}
+-	return nil
+-}
+-
+-// isMulticastAvailable returns true if ifi is a multicast access
+-// enabled network interface.  It also returns a unicast IPv4 address
+-// that can be used for listening on ifi.
+-func isMulticastAvailable(ifi *net.Interface) (net.IP, bool) {
+-	if ifi.Flags&net.FlagUp == 0 || ifi.Flags&net.FlagMulticast == 0 {
+-		return nil, false
+-	}
+-	ifat, err := ifi.Addrs()
+-	if err != nil {
+-		return nil, false
+-	}
+-	if len(ifat) == 0 {
+-		return nil, false
+-	}
+-	var ip net.IP
+-	for _, ifa := range ifat {
+-		switch v := ifa.(type) {
+-		case *net.IPAddr:
+-			ip = v.IP
+-		case *net.IPNet:
+-			ip = v.IP
+-		default:
+-			continue
+-		}
+-		if ip.To4() == nil {
+-			ip = nil
+-			continue
+-		}
+-		break
+-	}
+-	return ip, true
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/multicastlistener_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/multicastlistener_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/multicastlistener_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/multicastlistener_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,237 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"net"
+-	"os"
+-	"testing"
+-)
+-
+-var udpMultipleGroupListenerTests = []struct {
+-	gaddr *net.UDPAddr
+-}{
+-	{&net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}}, // see RFC 4727
+-	{&net.UDPAddr{IP: net.IPv4(224, 0, 0, 250)}}, // see RFC 4727
+-	{&net.UDPAddr{IP: net.IPv4(224, 0, 0, 254)}}, // see RFC 4727
+-}
+-
+-func TestUDPSingleConnWithMultipleGroupListeners(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-
+-	for _, tt := range udpMultipleGroupListenerTests {
+-		// listen to a wildcard address with no reusable port
+-		c, err := net.ListenPacket("udp4", "0.0.0.0:0")
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c.Close()
+-
+-		p := ipv4.NewPacketConn(c)
+-
+-		var mift []*net.Interface
+-		ift, err := net.Interfaces()
+-		if err != nil {
+-			t.Fatalf("net.Interfaces failed: %v", err)
+-		}
+-		for i, ifi := range ift {
+-			if _, ok := isMulticastAvailable(&ifi); !ok {
+-				continue
+-			}
+-			if err := p.JoinGroup(&ifi, tt.gaddr); err != nil {
+-				t.Fatalf("ipv4.PacketConn.JoinGroup %v on %v failed: %v", tt.gaddr, ifi, err)
+-			}
+-			mift = append(mift, &ift[i])
+-		}
+-		for _, ifi := range mift {
+-			if err := p.LeaveGroup(ifi, tt.gaddr); err != nil {
+-				t.Fatalf("ipv4.PacketConn.LeaveGroup %v on %v failed: %v", tt.gaddr, ifi, err)
+-			}
+-		}
+-	}
+-}
+-
+-func TestUDPMultipleConnWithMultipleGroupListeners(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-
+-	for _, tt := range udpMultipleGroupListenerTests {
+-		// listen to a group address, actually a wildcard address
+-		// with reusable port
+-		c1, err := net.ListenPacket("udp4", "224.0.0.0:1024") // see RFC 4727
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c1.Close()
+-
+-		c2, err := net.ListenPacket("udp4", "224.0.0.0:1024") // see RFC 4727
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c2.Close()
+-
+-		var ps [2]*ipv4.PacketConn
+-		ps[0] = ipv4.NewPacketConn(c1)
+-		ps[1] = ipv4.NewPacketConn(c2)
+-
+-		var mift []*net.Interface
+-		ift, err := net.Interfaces()
+-		if err != nil {
+-			t.Fatalf("net.Interfaces failed: %v", err)
+-		}
+-		for i, ifi := range ift {
+-			if _, ok := isMulticastAvailable(&ifi); !ok {
+-				continue
+-			}
+-			for _, p := range ps {
+-				if err := p.JoinGroup(&ifi, tt.gaddr); err != nil {
+-					t.Fatalf("ipv4.PacketConn.JoinGroup %v on %v failed: %v", tt.gaddr, ifi, err)
+-				}
+-			}
+-			mift = append(mift, &ift[i])
+-		}
+-		for _, ifi := range mift {
+-			for _, p := range ps {
+-				if err := p.LeaveGroup(ifi, tt.gaddr); err != nil {
+-					t.Fatalf("ipv4.PacketConn.LeaveGroup %v on %v failed: %v", tt.gaddr, ifi, err)
+-				}
+-			}
+-		}
+-	}
+-}
+-
+-func TestIPSingleConnWithSingleGroupListener(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	// listen to a wildcard address
+-	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	r, err := ipv4.NewRawConn(c)
+-	if err != nil {
+-		t.Fatalf("ipv4.RawConn failed: %v", err)
+-	}
+-
+-	gaddr := &net.IPAddr{IP: net.IPv4(224, 0, 0, 254)} // see RFC 4727
+-	var mift []*net.Interface
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		t.Fatalf("net.Interfaces failed: %v", err)
+-	}
+-	for i, ifi := range ift {
+-		if _, ok := isMulticastAvailable(&ifi); !ok {
+-			continue
+-		}
+-		if err := r.JoinGroup(&ifi, gaddr); err != nil {
+-			t.Fatalf("ipv4.RawConn.JoinGroup on %v failed: %v", ifi, err)
+-		}
+-		mift = append(mift, &ift[i])
+-	}
+-	for _, ifi := range mift {
+-		if err := r.LeaveGroup(ifi, gaddr); err != nil {
+-			t.Fatalf("ipv4.RawConn.LeaveGroup on %v failed: %v", ifi, err)
+-		}
+-	}
+-}
+-
+-func TestUDPPerInterfaceSingleConnWithSingleGroupListener(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-
+-	gaddr := &net.IPAddr{IP: net.IPv4(224, 0, 0, 254)} // see RFC 4727
+-	type ml struct {
+-		c   *ipv4.PacketConn
+-		ifi *net.Interface
+-	}
+-	var mlt []*ml
+-
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		t.Fatalf("net.Interfaces failed: %v", err)
+-	}
+-	for i, ifi := range ift {
+-		ip, ok := isMulticastAvailable(&ifi)
+-		if !ok {
+-			continue
+-		}
+-		// listen to a unicast interface address
+-		c, err := net.ListenPacket("udp4", ip.String()+":"+"1024") // see RFC 4727
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket with %v failed: %v", ip, err)
+-		}
+-		defer c.Close()
+-		p := ipv4.NewPacketConn(c)
+-		if err := p.JoinGroup(&ifi, gaddr); err != nil {
+-			t.Fatalf("ipv4.PacketConn.JoinGroup on %v failed: %v", ifi, err)
+-		}
+-		mlt = append(mlt, &ml{p, &ift[i]})
+-	}
+-	for _, m := range mlt {
+-		if err := m.c.LeaveGroup(m.ifi, gaddr); err != nil {
+-			t.Fatalf("ipv4.PacketConn.LeaveGroup on %v failed: %v", m.ifi, err)
+-		}
+-	}
+-}
+-
+-func TestIPPerInterfaceSingleConnWithSingleGroupListener(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	gaddr := &net.IPAddr{IP: net.IPv4(224, 0, 0, 254)} // see RFC 4727
+-	type ml struct {
+-		c   *ipv4.RawConn
+-		ifi *net.Interface
+-	}
+-	var mlt []*ml
+-
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		t.Fatalf("net.Interfaces failed: %v", err)
+-	}
+-	for i, ifi := range ift {
+-		ip, ok := isMulticastAvailable(&ifi)
+-		if !ok {
+-			continue
+-		}
+-		// listen to a unicast interface address
+-		c, err := net.ListenPacket("ip4:253", ip.String()) // see RFC 4727
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket with %v failed: %v", ip, err)
+-		}
+-		defer c.Close()
+-		r, err := ipv4.NewRawConn(c)
+-		if err != nil {
+-			t.Fatalf("ipv4.NewRawConn failed: %v", err)
+-		}
+-		if err := r.JoinGroup(&ifi, gaddr); err != nil {
+-			t.Fatalf("ipv4.RawConn.JoinGroup on %v failed: %v", ifi, err)
+-		}
+-		mlt = append(mlt, &ml{r, &ift[i]})
+-	}
+-	for _, m := range mlt {
+-		if err := m.c.LeaveGroup(m.ifi, gaddr); err != nil {
+-			t.Fatalf("ipv4.RawConn.LeaveGroup on %v failed: %v", m.ifi, err)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/multicastsockopt_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/multicastsockopt_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/multicastsockopt_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/multicastsockopt_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,126 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd windows
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-type testMulticastConn interface {
+-	testUnicastConn
+-	MulticastTTL() (int, error)
+-	SetMulticastTTL(ttl int) error
+-	MulticastLoopback() (bool, error)
+-	SetMulticastLoopback(bool) error
+-	JoinGroup(*net.Interface, net.Addr) error
+-	LeaveGroup(*net.Interface, net.Addr) error
+-}
+-
+-type multicastSockoptTest struct {
+-	tos    int
+-	ttl    int
+-	mcttl  int
+-	mcloop bool
+-	gaddr  net.IP
+-}
+-
+-var multicastSockoptTests = []multicastSockoptTest{
+-	{DiffServCS0 | NotECNTransport, 127, 128, false, net.IPv4(224, 0, 0, 249)}, // see RFC 4727
+-	{DiffServAF11 | NotECNTransport, 255, 254, true, net.IPv4(224, 0, 0, 250)}, // see RFC 4727
+-}
+-
+-func TestUDPMulticastSockopt(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-
+-	for _, tt := range multicastSockoptTests {
+-		c, err := net.ListenPacket("udp4", "0.0.0.0:0")
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c.Close()
+-
+-		p := ipv4.NewPacketConn(c)
+-		testMulticastSockopt(t, tt, p, &net.UDPAddr{IP: tt.gaddr})
+-	}
+-}
+-
+-func TestIPMulticastSockopt(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	for _, tt := range multicastSockoptTests {
+-		c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c.Close()
+-
+-		r, _ := ipv4.NewRawConn(c)
+-		testMulticastSockopt(t, tt, r, &net.IPAddr{IP: tt.gaddr})
+-	}
+-}
+-
+-func testMulticastSockopt(t *testing.T, tt multicastSockoptTest, c testMulticastConn, gaddr net.Addr) {
+-	switch runtime.GOOS {
+-	case "windows":
+-		// IP_TOS option is supported on Windows 8 and beyond.
+-		t.Logf("skipping IP_TOS test on %q", runtime.GOOS)
+-	default:
+-		if err := c.SetTOS(tt.tos); err != nil {
+-			t.Fatalf("ipv4.PacketConn.SetTOS failed: %v", err)
+-		}
+-		if v, err := c.TOS(); err != nil {
+-			t.Fatalf("ipv4.PacketConn.TOS failed: %v", err)
+-		} else if v != tt.tos {
+-			t.Fatalf("Got unexpected TOS value %v; expected %v", v, tt.tos)
+-		}
+-	}
+-
+-	if err := c.SetTTL(tt.ttl); err != nil {
+-		t.Fatalf("ipv4.PacketConn.SetTTL failed: %v", err)
+-	}
+-	if v, err := c.TTL(); err != nil {
+-		t.Fatalf("ipv4.PacketConn.TTL failed: %v", err)
+-	} else if v != tt.ttl {
+-		t.Fatalf("Got unexpected TTL value %v; expected %v", v, tt.ttl)
+-	}
+-
+-	if err := c.SetMulticastTTL(tt.mcttl); err != nil {
+-		t.Fatalf("ipv4.PacketConn.SetMulticastTTL failed: %v", err)
+-	}
+-	if v, err := c.MulticastTTL(); err != nil {
+-		t.Fatalf("ipv4.PacketConn.MulticastTTL failed: %v", err)
+-	} else if v != tt.mcttl {
+-		t.Fatalf("Got unexpected MulticastTTL value %v; expected %v", v, tt.mcttl)
+-	}
+-
+-	if err := c.SetMulticastLoopback(tt.mcloop); err != nil {
+-		t.Fatalf("ipv4.PacketConn.SetMulticastLoopback failed: %v", err)
+-	}
+-	if v, err := c.MulticastLoopback(); err != nil {
+-		t.Fatalf("ipv4.PacketConn.MulticastLoopback failed: %v", err)
+-	} else if v != tt.mcloop {
+-		t.Fatalf("Got unexpected MulticastLoopback value %v; expected %v", v, tt.mcloop)
+-	}
+-
+-	if err := c.JoinGroup(nil, gaddr); err != nil {
+-		t.Fatalf("ipv4.PacketConn.JoinGroup(%v) failed: %v", gaddr, err)
+-	}
+-	if err := c.LeaveGroup(nil, gaddr); err != nil {
+-		t.Fatalf("ipv4.PacketConn.LeaveGroup(%v) failed: %v", gaddr, err)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/multicast_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/multicast_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/multicast_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/multicast_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,168 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"net"
+-	"os"
+-	"testing"
+-)
+-
+-func TestReadWriteMulticastIPPayloadUDP(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-
+-	c, err := net.ListenPacket("udp4", "224.0.0.0:1024") // see RFC 4727
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	ifi := loopbackInterface()
+-	if ifi == nil {
+-		t.Skip("an appropriate interface not found")
+-	}
+-	dst, err := net.ResolveUDPAddr("udp4", "224.0.0.254:1024") // see RFC 4727
+-	if err != nil {
+-		t.Fatalf("net.ResolveUDPAddr failed: %v", err)
+-	}
+-
+-	p := ipv4.NewPacketConn(c)
+-	if err := p.JoinGroup(ifi, dst); err != nil {
+-		t.Fatalf("ipv4.PacketConn.JoinGroup on %v failed: %v", ifi, err)
+-	}
+-	if err := p.SetMulticastInterface(ifi); err != nil {
+-		t.Fatalf("ipv4.PacketConn.SetMulticastInterface failed: %v", err)
+-	}
+-	if err := p.SetMulticastLoopback(true); err != nil {
+-		t.Fatalf("ipv4.PacketConn.SetMulticastLoopback failed: %v", err)
+-	}
+-	cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface
+-	for i, toggle := range []bool{true, false, true} {
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv4.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		writeThenReadPayload(t, i, p, []byte("HELLO-R-U-THERE"), dst)
+-	}
+-}
+-
+-func TestReadWriteMulticastIPPayloadICMP(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	ifi := loopbackInterface()
+-	if ifi == nil {
+-		t.Skip("an appropriate interface not found")
+-	}
+-	dst, err := net.ResolveIPAddr("ip4", "224.0.0.254") // see RFC 4727
+-	if err != nil {
+-		t.Fatalf("net.ResolveIPAddr failed: %v", err)
+-	}
+-
+-	p := ipv4.NewPacketConn(c)
+-	if err := p.JoinGroup(ifi, dst); err != nil {
+-		t.Fatalf("ipv4.PacketConn.JoinGroup on %v failed: %v", ifi, err)
+-	}
+-	if err := p.SetMulticastInterface(ifi); err != nil {
+-		t.Fatalf("ipv4.PacketConn.SetMulticastInterface failed: %v", err)
+-	}
+-	cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface
+-	for i, toggle := range []bool{true, false, true} {
+-		wb, err := (&icmpMessage{
+-			Type: ipv4.ICMPTypeEcho, Code: 0,
+-			Body: &icmpEcho{
+-				ID: os.Getpid() & 0xffff, Seq: i + 1,
+-				Data: []byte("HELLO-R-U-THERE"),
+-			},
+-		}).Marshal()
+-		if err != nil {
+-			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+-		}
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv4.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		rb := writeThenReadPayload(t, i, p, wb, dst)
+-		m, err := parseICMPMessage(rb)
+-		if err != nil {
+-			t.Fatalf("parseICMPMessage failed: %v", err)
+-		}
+-		if m.Type != ipv4.ICMPTypeEchoReply || m.Code != 0 {
+-			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0)
+-		}
+-	}
+-}
+-
+-func TestReadWriteMulticastIPDatagram(t *testing.T) {
+-	if testing.Short() || !*testExternal {
+-		t.Skip("to avoid external network")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	ifi := loopbackInterface()
+-	if ifi == nil {
+-		t.Skip("an appropriate interface not found")
+-	}
+-	dst, err := net.ResolveIPAddr("ip4", "224.0.0.254") // see RFC 4727
+-	if err != nil {
+-		t.Fatalf("ResolveIPAddr failed: %v", err)
+-	}
+-
+-	r, err := ipv4.NewRawConn(c)
+-	if err != nil {
+-		t.Fatalf("ipv4.NewRawConn failed: %v", err)
+-	}
+-	if err := r.JoinGroup(ifi, dst); err != nil {
+-		t.Fatalf("ipv4.RawConn.JoinGroup on %v failed: %v", ifi, err)
+-	}
+-	if err := r.SetMulticastInterface(ifi); err != nil {
+-		t.Fatalf("ipv4.PacketConn.SetMulticastInterface failed: %v", err)
+-	}
+-	cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface
+-	for i, toggle := range []bool{true, false, true} {
+-		wb, err := (&icmpMessage{
+-			Type: ipv4.ICMPTypeEcho, Code: 0,
+-			Body: &icmpEcho{
+-				ID: os.Getpid() & 0xffff, Seq: i + 1,
+-				Data: []byte("HELLO-R-U-THERE"),
+-			},
+-		}).Marshal()
+-		if err != nil {
+-			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+-		}
+-		if err := r.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv4.RawConn.SetControlMessage failed: %v", err)
+-		}
+-		rb := writeThenReadDatagram(t, i, r, wb, nil, dst)
+-		m, err := parseICMPMessage(rb)
+-		if err != nil {
+-			t.Fatalf("parseICMPMessage failed: %v", err)
+-		}
+-		if m.Type != ipv4.ICMPTypeEchoReply || m.Code != 0 {
+-			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/packet.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/packet.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/packet.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/packet.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,97 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-// A packetHandler represents the IPv4 datagram handler.
+-type packetHandler struct {
+-	c *net.IPConn
+-	rawOpt
+-}
+-
+-func (c *packetHandler) ok() bool { return c != nil && c.c != nil }
+-
+-// ReadFrom reads an IPv4 datagram from the endpoint c, copying the
+-// datagram into b.  It returns the received datagram as the IPv4
+-// header h, the payload p and the control message cm.
+-func (c *packetHandler) ReadFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) {
+-	if !c.ok() {
+-		return nil, nil, nil, syscall.EINVAL
+-	}
+-	oob := newControlMessage(&c.rawOpt)
+-	n, oobn, _, src, err := c.c.ReadMsgIP(b, oob)
+-	if err != nil {
+-		return nil, nil, nil, err
+-	}
+-	var hs []byte
+-	if hs, p, err = slicePacket(b[:n]); err != nil {
+-		return nil, nil, nil, err
+-	}
+-	if h, err = ParseHeader(hs); err != nil {
+-		return nil, nil, nil, err
+-	}
+-	if cm, err = parseControlMessage(oob[:oobn]); err != nil {
+-		return nil, nil, nil, err
+-	}
+-	if src != nil && cm != nil {
+-		cm.Src = src.IP
+-	}
+-	return
+-}
+-
+-func slicePacket(b []byte) (h, p []byte, err error) {
+-	if len(b) < HeaderLen {
+-		return nil, nil, errHeaderTooShort
+-	}
+-	hdrlen := int(b[0]&0x0f) << 2
+-	return b[:hdrlen], b[hdrlen:], nil
+-}
+-
+-// WriteTo writes an IPv4 datagram through the endpoint c, copying the
+-// datagram from the IPv4 header h and the payload p.  The control
+-// message cm allows the datagram path and the outgoing interface to be
+-// specified.  Currently only Linux supports this.  The cm may be nil
+-// if control of the outgoing datagram is not required.
+-//
+-// The IPv4 header h must contain appropriate fields that include:
+-//
+-//	Version       = ipv4.Version
+-//	Len           = <must be specified>
+-//	TOS           = <must be specified>
+-//	TotalLen      = <must be specified>
+-//	ID            = platform sets an appropriate value if ID is zero
+-//	FragOff       = <must be specified>
+-//	TTL           = <must be specified>
+-//	Protocol      = <must be specified>
+-//	Checksum      = platform sets an appropriate value if Checksum is zero
+-//	Src           = platform sets an appropriate value if Src is nil
+-//	Dst           = <must be specified>
+-//	h.Options     = optional
+-func (c *packetHandler) WriteTo(h *Header, p []byte, cm *ControlMessage) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	oob := marshalControlMessage(cm)
+-	wh, err := h.Marshal()
+-	if err != nil {
+-		return err
+-	}
+-	dst := &net.IPAddr{}
+-	if cm != nil {
+-		if ip := cm.Dst.To4(); ip != nil {
+-			dst.IP = ip
+-		}
+-	}
+-	if dst.IP == nil {
+-		dst.IP = h.Dst
+-	}
+-	wh = append(wh, p...)
+-	_, _, err = c.c.WriteMsgIP(wh, oob, dst)
+-	return err
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/payload.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/payload.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/payload.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/payload.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,81 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-// A payloadHandler represents the IPv4 datagram payload handler.
+-type payloadHandler struct {
+-	net.PacketConn
+-	rawOpt
+-}
+-
+-func (c *payloadHandler) ok() bool { return c != nil && c.PacketConn != nil }
+-
+-// ReadFrom reads a payload of the received IPv4 datagram, from the
+-// endpoint c, copying the payload into b.  It returns the number of
+-// bytes copied into b, the control message cm and the source address
+-// src of the received datagram.
+-func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
+-	if !c.ok() {
+-		return 0, nil, nil, syscall.EINVAL
+-	}
+-	oob := newControlMessage(&c.rawOpt)
+-	var oobn int
+-	switch c := c.PacketConn.(type) {
+-	case *net.UDPConn:
+-		if n, oobn, _, src, err = c.ReadMsgUDP(b, oob); err != nil {
+-			return 0, nil, nil, err
+-		}
+-	case *net.IPConn:
+-		nb := make([]byte, maxHeaderLen+len(b))
+-		if n, oobn, _, src, err = c.ReadMsgIP(nb, oob); err != nil {
+-			return 0, nil, nil, err
+-		}
+-		hdrlen := int(nb[0]&0x0f) << 2
+-		copy(b, nb[hdrlen:])
+-		n -= hdrlen
+-	default:
+-		return 0, nil, nil, errInvalidConnType
+-	}
+-	if cm, err = parseControlMessage(oob[:oobn]); err != nil {
+-		return 0, nil, nil, err
+-	}
+-	if cm != nil {
+-		cm.Src = netAddrToIP4(src)
+-	}
+-	return
+-}
+-
+-// WriteTo writes a payload of the IPv4 datagram, to the destination
+-// address dst through the endpoint c, copying the payload from b.  It
+-// returns the number of bytes written.  The control message cm allows
+-// the datagram path and the outgoing interface to be specified.
+-// Currently only Linux supports this.  The cm may be nil if control
+-// of the outgoing datagram is not required.
+-func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	oob := marshalControlMessage(cm)
+-	if dst == nil {
+-		return 0, errMissingAddress
+-	}
+-	switch c := c.PacketConn.(type) {
+-	case *net.UDPConn:
+-		n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr))
+-	case *net.IPConn:
+-		n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr))
+-	default:
+-		return 0, errInvalidConnType
+-	}
+-	if err != nil {
+-		return 0, err
+-	}
+-	return
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_bsd.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_bsd.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_bsd.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_bsd.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,95 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd netbsd openbsd
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv4MulticastTTL(fd int) (int, error) {
+-	v, err := syscall.GetsockoptByte(fd, ianaProtocolIP, syscall.IP_MULTICAST_TTL)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v), nil
+-}
+-
+-func setIPv4MulticastTTL(fd int, v int) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptByte(fd, ianaProtocolIP, syscall.IP_MULTICAST_TTL, byte(v)))
+-}
+-
+-func ipv4ReceiveDestinationAddress(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVDSTADDR)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4ReceiveDestinationAddress(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVDSTADDR, boolint(v)))
+-}
+-
+-func ipv4ReceiveInterface(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVIF)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4ReceiveInterface(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVIF, boolint(v)))
+-}
+-
+-func ipv4MulticastInterface(fd int) (*net.Interface, error) {
+-	v, err := syscall.GetsockoptInet4Addr(fd, ianaProtocolIP, syscall.IP_MULTICAST_IF)
+-	if err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	return netIP4ToInterface(net.IPv4(v[0], v[1], v[2], v[3]))
+-}
+-
+-func setIPv4MulticastInterface(fd int, ifi *net.Interface) error {
+-	ip, err := netInterfaceToIP4(ifi)
+-	if err != nil {
+-		return os.NewSyscallError("setsockopt", err)
+-	}
+-	var v [4]byte
+-	copy(v[:], ip.To4())
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInet4Addr(fd, ianaProtocolIP, syscall.IP_MULTICAST_IF, v))
+-}
+-
+-func ipv4MulticastLoopback(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptByte(fd, ianaProtocolIP, syscall.IP_MULTICAST_LOOP)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4MulticastLoopback(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptByte(fd, ianaProtocolIP, syscall.IP_MULTICAST_LOOP, byte(boolint(v))))
+-}
+-
+-func joinIPv4Group(fd int, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}}
+-	if err := setSyscallIPMreq(&mreq, ifi); err != nil {
+-		return err
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptIPMreq(fd, ianaProtocolIP, syscall.IP_ADD_MEMBERSHIP, &mreq))
+-}
+-
+-func leaveIPv4Group(fd int, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}}
+-	if err := setSyscallIPMreq(&mreq, ifi); err != nil {
+-		return err
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptIPMreq(fd, ianaProtocolIP, syscall.IP_DROP_MEMBERSHIP, &mreq))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_freebsd.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_freebsd.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_freebsd.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_freebsd.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,22 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv4SendSourceAddress(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_SENDSRCADDR)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4SendSourceAddress(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_SENDSRCADDR, boolint(v)))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_linux.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_linux.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_linux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_linux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,94 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv4ReceiveTOS(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVTOS)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4ReceiveTOS(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVTOS, boolint(v)))
+-}
+-
+-func ipv4MulticastTTL(fd int) (int, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_MULTICAST_TTL)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v, nil
+-}
+-
+-func setIPv4MulticastTTL(fd int, v int) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_MULTICAST_TTL, v))
+-}
+-
+-func ipv4PacketInfo(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_PKTINFO)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4PacketInfo(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_PKTINFO, boolint(v)))
+-}
+-
+-func ipv4MulticastInterface(fd int) (*net.Interface, error) {
+-	mreqn, err := syscall.GetsockoptIPMreqn(fd, ianaProtocolIP, syscall.IP_MULTICAST_IF)
+-	if err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	if int(mreqn.Ifindex) == 0 {
+-		return nil, nil
+-	}
+-	return net.InterfaceByIndex(int(mreqn.Ifindex))
+-}
+-
+-func setIPv4MulticastInterface(fd int, ifi *net.Interface) error {
+-	mreqn := syscall.IPMreqn{}
+-	if ifi != nil {
+-		mreqn.Ifindex = int32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptIPMreqn(fd, ianaProtocolIP, syscall.IP_MULTICAST_IF, &mreqn))
+-}
+-
+-func ipv4MulticastLoopback(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_MULTICAST_LOOP)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4MulticastLoopback(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_MULTICAST_LOOP, boolint(v)))
+-}
+-
+-func joinIPv4Group(fd int, ifi *net.Interface, grp net.IP) error {
+-	mreqn := syscall.IPMreqn{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}}
+-	if ifi != nil {
+-		mreqn.Ifindex = int32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptIPMreqn(fd, ianaProtocolIP, syscall.IP_ADD_MEMBERSHIP, &mreqn))
+-}
+-
+-func leaveIPv4Group(fd int, ifi *net.Interface, grp net.IP) error {
+-	mreqn := syscall.IPMreqn{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}}
+-	if ifi != nil {
+-		mreqn.Ifindex = int32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptIPMreqn(fd, ianaProtocolIP, syscall.IP_DROP_MEMBERSHIP, &mreqn))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,17 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import "syscall"
+-
+-func ipv4HeaderPrepend(fd int) (bool, error) {
+-	// TODO(mikio): Implement this
+-	return false, syscall.EPLAN9
+-}
+-
+-func setIPv4HeaderPrepend(fd int, v bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_unix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_unix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_unix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_unix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,60 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv4
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv4TOS(fd int) (int, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_TOS)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v, nil
+-}
+-
+-func setIPv4TOS(fd int, v int) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_TOS, v))
+-}
+-
+-func ipv4TTL(fd int) (int, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_TTL)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v, nil
+-}
+-
+-func setIPv4TTL(fd int, v int) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_TTL, v))
+-}
+-
+-func ipv4ReceiveTTL(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVTTL)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4ReceiveTTL(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_RECVTTL, boolint(v)))
+-}
+-
+-func ipv4HeaderPrepend(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIP, syscall.IP_HDRINCL)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4HeaderPrepend(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIP, syscall.IP_HDRINCL, boolint(v)))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/sockopt_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/sockopt_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,146 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv4
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-// Please refer to the online manual;
+-// http://msdn.microsoft.com/en-us/library/windows/desktop/ms738586(v=vs.85).aspx
+-
+-func ipv4TOS(fd syscall.Handle) (int, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIP, syscall.IP_TOS, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v), nil
+-}
+-
+-func setIPv4TOS(fd syscall.Handle, v int) error {
+-	vv := int32(v)
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIP, syscall.IP_TOS, (*byte)(unsafe.Pointer(&vv)), 4))
+-}
+-
+-func ipv4TTL(fd syscall.Handle) (int, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIP, syscall.IP_TTL, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v), nil
+-}
+-
+-func setIPv4TTL(fd syscall.Handle, v int) error {
+-	vv := int32(v)
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIP, syscall.IP_TTL, (*byte)(unsafe.Pointer(&vv)), 4))
+-}
+-
+-func ipv4MulticastTTL(fd syscall.Handle) (int, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIP, syscall.IP_MULTICAST_TTL, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v), nil
+-}
+-
+-func setIPv4MulticastTTL(fd syscall.Handle, v int) error {
+-	vv := int32(v)
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIP, syscall.IP_MULTICAST_TTL, (*byte)(unsafe.Pointer(&vv)), 4))
+-}
+-
+-func ipv4ReceiveTTL(fd syscall.Handle) (bool, error) {
+-	// NOTE: Not supported yet on any Windows
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv4ReceiveTTL(fd syscall.Handle, v bool) error {
+-	// NOTE: Not supported yet on any Windows
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv4ReceiveDestinationAddress(fd syscall.Handle) (bool, error) {
+-	// TODO(mikio): Implement this for XP and beyond
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv4ReceiveDestinationAddress(fd syscall.Handle, v bool) error {
+-	// TODO(mikio): Implement this for XP and beyond
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv4HeaderPrepend(fd syscall.Handle) (bool, error) {
+-	// TODO(mikio): Implement this for XP and beyond
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv4HeaderPrepend(fd syscall.Handle, v bool) error {
+-	// TODO(mikio): Implement this for XP and beyond
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv4ReceiveInterface(fd syscall.Handle) (bool, error) {
+-	// TODO(mikio): Implement this for Vista and beyond
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv4ReceiveInterface(fd syscall.Handle, v bool) error {
+-	// TODO(mikio): Implement this for Vista and beyond
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv4MulticastInterface(fd syscall.Handle) (*net.Interface, error) {
+-	var v [4]byte
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIP, syscall.IP_MULTICAST_IF, (*byte)(unsafe.Pointer(&v[0])), &l); err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	return netIP4ToInterface(net.IPv4(v[0], v[1], v[2], v[3]))
+-}
+-
+-func setIPv4MulticastInterface(fd syscall.Handle, ifi *net.Interface) error {
+-	ip, err := netInterfaceToIP4(ifi)
+-	if err != nil {
+-		return os.NewSyscallError("setsockopt", err)
+-	}
+-	var v [4]byte
+-	copy(v[:], ip.To4())
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIP, syscall.IP_MULTICAST_IF, (*byte)(unsafe.Pointer(&v[0])), 4))
+-}
+-
+-func ipv4MulticastLoopback(fd syscall.Handle) (bool, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIP, syscall.IP_MULTICAST_LOOP, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv4MulticastLoopback(fd syscall.Handle, v bool) error {
+-	vv := int32(boolint(v))
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIP, syscall.IP_MULTICAST_LOOP, (*byte)(unsafe.Pointer(&vv)), 4))
+-}
+-
+-func joinIPv4Group(fd syscall.Handle, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}}
+-	if err := setSyscallIPMreq(&mreq, ifi); err != nil {
+-		return err
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIP, syscall.IP_ADD_MEMBERSHIP, (*byte)(unsafe.Pointer(&mreq)), int32(unsafe.Sizeof(mreq))))
+-}
+-
+-func leaveIPv4Group(fd syscall.Handle, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}}
+-	if err := setSyscallIPMreq(&mreq, ifi); err != nil {
+-		return err
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIP, syscall.IP_DROP_MEMBERSHIP, (*byte)(unsafe.Pointer(&mreq)), int32(unsafe.Sizeof(mreq))))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/unicastsockopt_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/unicastsockopt_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/unicastsockopt_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/unicastsockopt_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,145 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd windows
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"errors"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-type testUnicastConn interface {
+-	TOS() (int, error)
+-	SetTOS(int) error
+-	TTL() (int, error)
+-	SetTTL(int) error
+-}
+-
+-type unicastSockoptTest struct {
+-	tos int
+-	ttl int
+-}
+-
+-var unicastSockoptTests = []unicastSockoptTest{
+-	{DiffServCS0 | NotECNTransport, 127},
+-	{DiffServAF11 | NotECNTransport, 255},
+-}
+-
+-func TestTCPUnicastSockopt(t *testing.T) {
+-	for _, tt := range unicastSockoptTests {
+-		listener := make(chan net.Listener)
+-		go tcpListener(t, "127.0.0.1:0", listener)
+-		ln := <-listener
+-		if ln == nil {
+-			return
+-		}
+-		defer ln.Close()
+-		c, err := net.Dial("tcp4", ln.Addr().String())
+-		if err != nil {
+-			t.Errorf("net.Dial failed: %v", err)
+-			return
+-		}
+-		defer c.Close()
+-
+-		cc := ipv4.NewConn(c)
+-		if err := testUnicastSockopt(t, tt, cc); err != nil {
+-			break
+-		}
+-	}
+-}
+-
+-func tcpListener(t *testing.T, addr string, listener chan<- net.Listener) {
+-	ln, err := net.Listen("tcp4", addr)
+-	if err != nil {
+-		t.Errorf("net.Listen failed: %v", err)
+-		listener <- nil
+-		return
+-	}
+-	listener <- ln
+-	c, err := ln.Accept()
+-	if err != nil {
+-		return
+-	}
+-	c.Close()
+-}
+-
+-func TestUDPUnicastSockopt(t *testing.T) {
+-	for _, tt := range unicastSockoptTests {
+-		c, err := net.ListenPacket("udp4", "127.0.0.1:0")
+-		if err != nil {
+-			t.Errorf("net.ListenPacket failed: %v", err)
+-			return
+-		}
+-		defer c.Close()
+-
+-		p := ipv4.NewPacketConn(c)
+-		if err := testUnicastSockopt(t, tt, p); err != nil {
+-			break
+-		}
+-	}
+-}
+-
+-func TestIPUnicastSockopt(t *testing.T) {
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	for _, tt := range unicastSockoptTests {
+-		c, err := net.ListenPacket("ip4:icmp", "127.0.0.1")
+-		if err != nil {
+-			t.Errorf("net.ListenPacket failed: %v", err)
+-			return
+-		}
+-		defer c.Close()
+-
+-		r, err := ipv4.NewRawConn(c)
+-		if err != nil {
+-			t.Errorf("ipv4.NewRawConn failed: %v", err)
+-			return
+-		}
+-		if err := testUnicastSockopt(t, tt, r); err != nil {
+-			break
+-		}
+-	}
+-}
+-
+-func testUnicastSockopt(t *testing.T, tt unicastSockoptTest, c testUnicastConn) error {
+-	switch runtime.GOOS {
+-	case "windows":
+-		// IP_TOS option is supported on Windows 8 and beyond.
+-		t.Logf("skipping IP_TOS test on %q", runtime.GOOS)
+-	default:
+-		if err := c.SetTOS(tt.tos); err != nil {
+-			t.Errorf("ipv4.Conn.SetTOS failed: %v", err)
+-			return err
+-		}
+-		if v, err := c.TOS(); err != nil {
+-			t.Errorf("ipv4.Conn.TOS failed: %v", err)
+-			return err
+-		} else if v != tt.tos {
+-			t.Errorf("Got unexpected TOS value %v; expected %v", v, tt.tos)
+-			return errors.New("Got unexpected TOS value")
+-		}
+-	}
+-
+-	if err := c.SetTTL(tt.ttl); err != nil {
+-		t.Errorf("ipv4.Conn.SetTTL failed: %v", err)
+-		return err
+-	}
+-	if v, err := c.TTL(); err != nil {
+-		t.Errorf("ipv4.Conn.TTL failed: %v", err)
+-		return err
+-	} else if v != tt.ttl {
+-		t.Errorf("Got unexpected TTL value %v; expected %v", v, tt.ttl)
+-		return errors.New("Got unexpected TTL value")
+-	}
+-
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/unicast_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/unicast_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv4/unicast_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv4/unicast_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,192 +0,0 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv4_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv4"
+-	"net"
+-	"os"
+-	"testing"
+-)
+-
+-func benchmarkUDPListener() (net.PacketConn, net.Addr, error) {
+-	c, err := net.ListenPacket("udp4", "127.0.0.1:0")
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-	dst, err := net.ResolveUDPAddr("udp4", c.LocalAddr().String())
+-	if err != nil {
+-		c.Close()
+-		return nil, nil, err
+-	}
+-	return c, dst, nil
+-}
+-
+-func BenchmarkReadWriteNetUDP(b *testing.B) {
+-	c, dst, err := benchmarkUDPListener()
+-	if err != nil {
+-		b.Fatalf("benchmarkUDPListener failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128)
+-	b.ResetTimer()
+-	for i := 0; i < b.N; i++ {
+-		benchmarkReadWriteNetUDP(b, c, wb, rb, dst)
+-	}
+-}
+-
+-func benchmarkReadWriteNetUDP(b *testing.B, c net.PacketConn, wb, rb []byte, dst net.Addr) {
+-	if _, err := c.WriteTo(wb, dst); err != nil {
+-		b.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+-	}
+-	if _, _, err := c.ReadFrom(rb); err != nil {
+-		b.Fatalf("net.PacketConn.ReadFrom failed: %v", err)
+-	}
+-}
+-
+-func BenchmarkReadWriteIPv4UDP(b *testing.B) {
+-	c, dst, err := benchmarkUDPListener()
+-	if err != nil {
+-		b.Fatalf("benchmarkUDPListener failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	p := ipv4.NewPacketConn(c)
+-	cf := ipv4.FlagTTL | ipv4.FlagInterface
+-	if err := p.SetControlMessage(cf, true); err != nil {
+-		b.Fatalf("ipv4.PacketConn.SetControlMessage failed: %v", err)
+-	}
+-	ifi := loopbackInterface()
+-
+-	wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128)
+-	b.ResetTimer()
+-	for i := 0; i < b.N; i++ {
+-		benchmarkReadWriteIPv4UDP(b, p, wb, rb, dst, ifi)
+-	}
+-}
+-
+-func benchmarkReadWriteIPv4UDP(b *testing.B, p *ipv4.PacketConn, wb, rb []byte, dst net.Addr, ifi *net.Interface) {
+-	cm := ipv4.ControlMessage{TTL: 1}
+-	if ifi != nil {
+-		cm.IfIndex = ifi.Index
+-	}
+-	if _, err := p.WriteTo(wb, &cm, dst); err != nil {
+-		b.Fatalf("ipv4.PacketConn.WriteTo failed: %v", err)
+-	}
+-	if _, _, _, err := p.ReadFrom(rb); err != nil {
+-		b.Fatalf("ipv4.PacketConn.ReadFrom failed: %v", err)
+-	}
+-}
+-
+-func TestReadWriteUnicastIPPayloadUDP(t *testing.T) {
+-	c, err := net.ListenPacket("udp4", "127.0.0.1:0")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	dst, err := net.ResolveUDPAddr("udp4", c.LocalAddr().String())
+-	if err != nil {
+-		t.Fatalf("net.ResolveUDPAddr failed: %v", err)
+-	}
+-	p := ipv4.NewPacketConn(c)
+-	cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface
+-	for i, toggle := range []bool{true, false, true} {
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv4.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		writeThenReadPayload(t, i, p, []byte("HELLO-R-U-THERE"), dst)
+-	}
+-}
+-
+-func TestReadWriteUnicastIPPayloadICMP(t *testing.T) {
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	dst, err := net.ResolveIPAddr("ip4", "127.0.0.1")
+-	if err != nil {
+-		t.Fatalf("ResolveIPAddr failed: %v", err)
+-	}
+-	p := ipv4.NewPacketConn(c)
+-	cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface
+-	for i, toggle := range []bool{true, false, true} {
+-		wb, err := (&icmpMessage{
+-			Type: ipv4.ICMPTypeEcho, Code: 0,
+-			Body: &icmpEcho{
+-				ID: os.Getpid() & 0xffff, Seq: i + 1,
+-				Data: []byte("HELLO-R-U-THERE"),
+-			},
+-		}).Marshal()
+-		if err != nil {
+-			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+-		}
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv4.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		rb := writeThenReadPayload(t, i, p, wb, dst)
+-		m, err := parseICMPMessage(rb)
+-		if err != nil {
+-			t.Fatalf("parseICMPMessage failed: %v", err)
+-		}
+-		if m.Type != ipv4.ICMPTypeEchoReply || m.Code != 0 {
+-			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0)
+-		}
+-	}
+-}
+-
+-func TestReadWriteUnicastIPDatagram(t *testing.T) {
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	dst, err := net.ResolveIPAddr("ip4", "127.0.0.1")
+-	if err != nil {
+-		t.Fatalf("ResolveIPAddr failed: %v", err)
+-	}
+-	r, err := ipv4.NewRawConn(c)
+-	if err != nil {
+-		t.Fatalf("ipv4.NewRawConn failed: %v", err)
+-	}
+-	cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface
+-	for i, toggle := range []bool{true, false, true} {
+-		wb, err := (&icmpMessage{
+-			Type: ipv4.ICMPTypeEcho, Code: 0,
+-			Body: &icmpEcho{
+-				ID: os.Getpid() & 0xffff, Seq: i + 1,
+-				Data: []byte("HELLO-R-U-THERE"),
+-			},
+-		}).Marshal()
+-		if err != nil {
+-			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+-		}
+-		if err := r.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv4.RawConn.SetControlMessage failed: %v", err)
+-		}
+-		rb := writeThenReadDatagram(t, i, r, wb, nil, dst)
+-		m, err := parseICMPMessage(rb)
+-		if err != nil {
+-			t.Fatalf("parseICMPMessage failed: %v", err)
+-		}
+-		if m.Type != ipv4.ICMPTypeEchoReply || m.Code != 0 {
+-			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,84 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"errors"
+-	"fmt"
+-	"net"
+-	"sync"
+-)
+-
+-var (
+-	errNotSupported    = errors.New("not supported")
+-	errMissingAddress  = errors.New("missing address")
+-	errInvalidConnType = errors.New("invalid conn type")
+-	errNoSuchInterface = errors.New("no such interface")
+-)
+-
+-// References:
+-//
+-// RFC 2292  Advanced Sockets API for IPv6
+-//	http://tools.ietf.org/html/rfc2292
+-// RFC 2460  Internet Protocol, Version 6 (IPv6) Specification
+-//	http://tools.ietf.org/html/rfc2460
+-// RFC 3493  Basic Socket Interface Extensions for IPv6
+-//	http://tools.ietf.org/html/rfc3493.html
+-// RFC 3542  Advanced Sockets Application Program Interface (API) for IPv6
+-//	http://tools.ietf.org/html/rfc3542
+-//
+-// Note that RFC 3542 obsoltes RFC 2292 but OS X Snow Leopard and the
+-// former still support RFC 2292 only.  Please be aware that almost
+-// all protocol implementations prohibit using a combination of RFC
+-// 2292 and RFC 3542 for some practical reasons.
+-
+-type rawOpt struct {
+-	sync.Mutex
+-	cflags ControlFlags
+-}
+-
+-func (c *rawOpt) set(f ControlFlags)        { c.cflags |= f }
+-func (c *rawOpt) clear(f ControlFlags)      { c.cflags &^= f }
+-func (c *rawOpt) isset(f ControlFlags) bool { return c.cflags&f != 0 }
+-
+-// A ControlFlags reprensents per packet basis IP-level socket option
+-// control flags.
+-type ControlFlags uint
+-
+-const (
+-	FlagTrafficClass ControlFlags = 1 << iota // pass the traffic class on the received packet
+-	FlagHopLimit                              // pass the hop limit on the received packet
+-	FlagSrc                                   // pass the source address on the received packet
+-	FlagDst                                   // pass the destination address on the received packet
+-	FlagInterface                             // pass the interface index on the received packet
+-	FlagPathMTU                               // pass the path MTU on the received packet path
+-)
+-
+-// A ControlMessage represents per packet basis IP-level socket
+-// options.
+-type ControlMessage struct {
+-	// Receiving socket options: SetControlMessage allows to
+-	// receive the options from the protocol stack using ReadFrom
+-	// method of PacketConn.
+-	//
+-	// Specifying socket options: ControlMessage for WriteTo
+-	// method of PacketConn allows to send the options to the
+-	// protocol stack.
+-	//
+-	TrafficClass int    // traffic class, must be 1 <= value <= 255 when specifying
+-	HopLimit     int    // hop limit, must be 1 <= value <= 255 when specifying
+-	Src          net.IP // source address, specifying only
+-	Dst          net.IP // destination address, receiving only
+-	IfIndex      int    // interface index, must be 1 <= value when specifying
+-	NextHop      net.IP // next hop address, specifying only
+-	MTU          int    // path MTU, receiving only
+-}
+-
+-func (cm *ControlMessage) String() string {
+-	if cm == nil {
+-		return "<nil>"
+-	}
+-	return fmt.Sprintf("tclass: %#x, hoplim: %v, src: %v, dst: %v, ifindex: %v, nexthop: %v, mtu: %v", cm.TrafficClass, cm.HopLimit, cm.Src, cm.Dst, cm.IfIndex, cm.NextHop, cm.MTU)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc2292_darwin.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc2292_darwin.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc2292_darwin.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc2292_darwin.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,151 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-const pktinfo = FlagDst | FlagInterface
+-
+-func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	if cf&FlagHopLimit != 0 {
+-		if err := setIPv6ReceiveHopLimit(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagHopLimit)
+-		} else {
+-			opt.clear(FlagHopLimit)
+-		}
+-	}
+-	if cf&pktinfo != 0 {
+-		if err := setIPv6ReceivePacketInfo(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(cf & pktinfo)
+-		} else {
+-			opt.clear(cf & pktinfo)
+-		}
+-	}
+-	return nil
+-}
+-
+-func newControlMessage(opt *rawOpt) (oob []byte) {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	l, off := 0, 0
+-	if opt.isset(FlagHopLimit) {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	if opt.isset(pktinfo) {
+-		l += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if opt.isset(FlagHopLimit) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_2292HOPLIMIT
+-			m.SetLen(syscall.CmsgLen(4))
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if opt.isset(pktinfo) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_2292PKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet6Pktinfo))
+-			off += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-		}
+-	}
+-	return
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	if len(b) == 0 {
+-		return nil, nil
+-	}
+-	cmsgs, err := syscall.ParseSocketControlMessage(b)
+-	if err != nil {
+-		return nil, os.NewSyscallError("parse socket control message", err)
+-	}
+-	cm := &ControlMessage{}
+-	for _, m := range cmsgs {
+-		if m.Header.Level != ianaProtocolIPv6 {
+-			continue
+-		}
+-		switch m.Header.Type {
+-		case syscall.IPV6_2292HOPLIMIT:
+-			cm.HopLimit = int(*(*byte)(unsafe.Pointer(&m.Data[:1][0])))
+-		case syscall.IPV6_2292PKTINFO:
+-			pi := (*syscall.Inet6Pktinfo)(unsafe.Pointer(&m.Data[0]))
+-			cm.IfIndex = int(pi.Ifindex)
+-			cm.Dst = pi.Addr[:]
+-		}
+-	}
+-	return cm, nil
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) (oob []byte) {
+-	if cm == nil {
+-		return
+-	}
+-	l, off := 0, 0
+-	if cm.HopLimit > 0 {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	pion := false
+-	if cm.Src.To4() == nil && cm.Src.To16() != nil || cm.IfIndex != 0 {
+-		pion = true
+-		l += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-	}
+-	if len(cm.NextHop) == net.IPv6len {
+-		l += syscall.CmsgSpace(syscall.SizeofSockaddrInet6)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if cm.HopLimit > 0 {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_2292HOPLIMIT
+-			m.SetLen(syscall.CmsgLen(4))
+-			data := oob[off+syscall.CmsgLen(0):]
+-			*(*byte)(unsafe.Pointer(&data[:1][0])) = byte(cm.HopLimit)
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if pion {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_2292PKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet6Pktinfo))
+-			pi := (*syscall.Inet6Pktinfo)(unsafe.Pointer(&oob[off+syscall.CmsgLen(0)]))
+-			if ip := cm.Src.To16(); ip != nil && ip.To4() == nil {
+-				copy(pi.Addr[:], ip)
+-			}
+-			if cm.IfIndex != 0 {
+-				pi.Ifindex = uint32(cm.IfIndex)
+-			}
+-			off += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-		}
+-		if len(cm.NextHop) == net.IPv6len {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_2292NEXTHOP
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofSockaddrInet6))
+-			sa := (*syscall.RawSockaddrInet6)(unsafe.Pointer(&oob[off+syscall.CmsgLen(0)]))
+-			sa.Len = syscall.SizeofSockaddrInet6
+-			sa.Family = syscall.AF_INET6
+-			copy(sa.Addr[:], cm.NextHop)
+-			off += syscall.CmsgSpace(syscall.SizeofSockaddrInet6)
+-		}
+-	}
+-	return
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_bsd.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_bsd.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_bsd.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_bsd.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,213 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build freebsd netbsd openbsd
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-const pktinfo = FlagDst | FlagInterface
+-
+-func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	if cf&FlagTrafficClass != 0 {
+-		if err := setIPv6ReceiveTrafficClass(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagTrafficClass)
+-		} else {
+-			opt.clear(FlagTrafficClass)
+-		}
+-	}
+-	if cf&FlagHopLimit != 0 {
+-		if err := setIPv6ReceiveHopLimit(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagHopLimit)
+-		} else {
+-			opt.clear(FlagHopLimit)
+-		}
+-	}
+-	if cf&pktinfo != 0 {
+-		if err := setIPv6ReceivePacketInfo(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(cf & pktinfo)
+-		} else {
+-			opt.clear(cf & pktinfo)
+-		}
+-	}
+-	if cf&FlagPathMTU != 0 {
+-		if err := setIPv6ReceivePathMTU(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagPathMTU)
+-		} else {
+-			opt.clear(FlagPathMTU)
+-		}
+-	}
+-	return nil
+-}
+-
+-func newControlMessage(opt *rawOpt) (oob []byte) {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	l, off := 0, 0
+-	if opt.isset(FlagTrafficClass) {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	if opt.isset(FlagHopLimit) {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	if opt.isset(pktinfo) {
+-		l += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-	}
+-	if opt.isset(FlagPathMTU) {
+-		l += syscall.CmsgSpace(syscall.SizeofIPv6MTUInfo)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if opt.isset(FlagTrafficClass) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_RECVTCLASS
+-			m.SetLen(syscall.CmsgLen(4))
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if opt.isset(FlagHopLimit) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_RECVHOPLIMIT
+-			m.SetLen(syscall.CmsgLen(4))
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if opt.isset(pktinfo) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_RECVPKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet6Pktinfo))
+-			off += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-		}
+-		if opt.isset(FlagPathMTU) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_RECVPATHMTU
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofIPv6MTUInfo))
+-			off += syscall.CmsgSpace(syscall.SizeofIPv6MTUInfo)
+-		}
+-	}
+-	return
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	if len(b) == 0 {
+-		return nil, nil
+-	}
+-	cmsgs, err := syscall.ParseSocketControlMessage(b)
+-	if err != nil {
+-		return nil, os.NewSyscallError("parse socket control message", err)
+-	}
+-	cm := &ControlMessage{}
+-	for _, m := range cmsgs {
+-		if m.Header.Level != ianaProtocolIPv6 {
+-			continue
+-		}
+-		switch m.Header.Type {
+-		case syscall.IPV6_TCLASS:
+-			cm.TrafficClass = int(*(*byte)(unsafe.Pointer(&m.Data[:1][0])))
+-		case syscall.IPV6_HOPLIMIT:
+-			cm.HopLimit = int(*(*byte)(unsafe.Pointer(&m.Data[:1][0])))
+-		case syscall.IPV6_PKTINFO:
+-			pi := (*syscall.Inet6Pktinfo)(unsafe.Pointer(&m.Data[0]))
+-			cm.Dst = pi.Addr[:]
+-			cm.IfIndex = int(pi.Ifindex)
+-		case syscall.IPV6_PATHMTU:
+-			mi := (*syscall.IPv6MTUInfo)(unsafe.Pointer(&m.Data[0]))
+-			cm.Dst = mi.Addr.Addr[:]
+-			cm.IfIndex = int(mi.Addr.Scope_id)
+-			cm.MTU = int(mi.Mtu)
+-		}
+-	}
+-	return cm, nil
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) (oob []byte) {
+-	if cm == nil {
+-		return
+-	}
+-	l, off := 0, 0
+-	if cm.TrafficClass > 0 {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	if cm.HopLimit > 0 {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	pion := false
+-	if cm.Src.To4() == nil && cm.Src.To16() != nil || cm.IfIndex != 0 {
+-		pion = true
+-		l += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-	}
+-	if len(cm.NextHop) == net.IPv6len {
+-		l += syscall.CmsgSpace(syscall.SizeofSockaddrInet6)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if cm.TrafficClass > 0 {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_TCLASS
+-			m.SetLen(syscall.CmsgLen(4))
+-			data := oob[off+syscall.CmsgLen(0):]
+-			*(*byte)(unsafe.Pointer(&data[:1][0])) = byte(cm.TrafficClass)
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if cm.HopLimit > 0 {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_HOPLIMIT
+-			m.SetLen(syscall.CmsgLen(4))
+-			data := oob[off+syscall.CmsgLen(0):]
+-			*(*byte)(unsafe.Pointer(&data[:1][0])) = byte(cm.HopLimit)
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if pion {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_PKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet6Pktinfo))
+-			pi := (*syscall.Inet6Pktinfo)(unsafe.Pointer(&oob[off+syscall.CmsgLen(0)]))
+-			if ip := cm.Src.To16(); ip != nil && ip.To4() == nil {
+-				copy(pi.Addr[:], ip)
+-			}
+-			if cm.IfIndex != 0 {
+-				pi.Ifindex = uint32(cm.IfIndex)
+-			}
+-			off += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-		}
+-		if len(cm.NextHop) == net.IPv6len {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_NEXTHOP
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofSockaddrInet6))
+-			sa := (*syscall.RawSockaddrInet6)(unsafe.Pointer(&oob[off+syscall.CmsgLen(0)]))
+-			sa.Len = syscall.SizeofSockaddrInet6
+-			sa.Family = syscall.AF_INET6
+-			copy(sa.Addr[:], cm.NextHop)
+-			sa.Scope_id = uint32(cm.IfIndex)
+-			off += syscall.CmsgSpace(syscall.SizeofSockaddrInet6)
+-		}
+-	}
+-	return
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_linux.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_linux.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_linux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_linux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,217 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-const (
+-	// See /usr/include/linux/in6.h.
+-	syscall_IPV6_RECVPATHMTU = syscall.IPV6_DSTOPTS + 1 + iota
+-	syscall_IPV6_PATHMTU
+-	syscall_IPV6_DONTFRAG
+-)
+-
+-const pktinfo = FlagDst | FlagInterface
+-
+-func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	if cf&FlagTrafficClass != 0 {
+-		if err := setIPv6ReceiveTrafficClass(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagTrafficClass)
+-		} else {
+-			opt.clear(FlagTrafficClass)
+-		}
+-	}
+-	if cf&FlagHopLimit != 0 {
+-		if err := setIPv6ReceiveHopLimit(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagHopLimit)
+-		} else {
+-			opt.clear(FlagHopLimit)
+-		}
+-	}
+-	if cf&pktinfo != 0 {
+-		if err := setIPv6ReceivePacketInfo(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(cf & pktinfo)
+-		} else {
+-			opt.clear(cf & pktinfo)
+-		}
+-	}
+-	if cf&FlagPathMTU != 0 {
+-		if err := setIPv6ReceivePathMTU(fd, on); err != nil {
+-			return err
+-		}
+-		if on {
+-			opt.set(FlagPathMTU)
+-		} else {
+-			opt.clear(FlagPathMTU)
+-		}
+-	}
+-	return nil
+-}
+-
+-func newControlMessage(opt *rawOpt) (oob []byte) {
+-	opt.Lock()
+-	defer opt.Unlock()
+-	l, off := 0, 0
+-	if opt.isset(FlagTrafficClass) {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	if opt.isset(FlagHopLimit) {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	if opt.isset(pktinfo) {
+-		l += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-	}
+-	if opt.isset(FlagPathMTU) {
+-		l += syscall.CmsgSpace(syscall.SizeofIPv6MTUInfo)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if opt.isset(FlagTrafficClass) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_RECVTCLASS
+-			m.SetLen(syscall.CmsgLen(4))
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if opt.isset(FlagHopLimit) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_RECVHOPLIMIT
+-			m.SetLen(syscall.CmsgLen(4))
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if opt.isset(pktinfo) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_RECVPKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet6Pktinfo))
+-			off += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-		}
+-		if opt.isset(FlagPathMTU) {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall_IPV6_RECVPATHMTU
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofIPv6MTUInfo))
+-			off += syscall.CmsgSpace(syscall.SizeofIPv6MTUInfo)
+-		}
+-	}
+-	return
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	if len(b) == 0 {
+-		return nil, nil
+-	}
+-	cmsgs, err := syscall.ParseSocketControlMessage(b)
+-	if err != nil {
+-		return nil, os.NewSyscallError("parse socket control message", err)
+-	}
+-	cm := &ControlMessage{}
+-	for _, m := range cmsgs {
+-		if m.Header.Level != ianaProtocolIPv6 {
+-			continue
+-		}
+-		switch m.Header.Type {
+-		case syscall.IPV6_TCLASS:
+-			cm.TrafficClass = int(*(*byte)(unsafe.Pointer(&m.Data[:1][0])))
+-		case syscall.IPV6_HOPLIMIT:
+-			cm.HopLimit = int(*(*byte)(unsafe.Pointer(&m.Data[:1][0])))
+-		case syscall.IPV6_PKTINFO:
+-			pi := (*syscall.Inet6Pktinfo)(unsafe.Pointer(&m.Data[0]))
+-			cm.Dst = pi.Addr[:]
+-			cm.IfIndex = int(pi.Ifindex)
+-		case syscall_IPV6_PATHMTU:
+-			mi := (*syscall.IPv6MTUInfo)(unsafe.Pointer(&m.Data[0]))
+-			cm.Dst = mi.Addr.Addr[:]
+-			cm.IfIndex = int(mi.Addr.Scope_id)
+-			cm.MTU = int(mi.Mtu)
+-		}
+-	}
+-	return cm, nil
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) (oob []byte) {
+-	if cm == nil {
+-		return
+-	}
+-	l, off := 0, 0
+-	if cm.TrafficClass > 0 {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	if cm.HopLimit > 0 {
+-		l += syscall.CmsgSpace(4)
+-	}
+-	pion := false
+-	if cm.Src.To4() == nil && cm.Src.To16() != nil || cm.IfIndex != 0 {
+-		pion = true
+-		l += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-	}
+-	if len(cm.NextHop) == net.IPv6len {
+-		l += syscall.CmsgSpace(syscall.SizeofSockaddrInet6)
+-	}
+-	if l > 0 {
+-		oob = make([]byte, l)
+-		if cm.TrafficClass > 0 {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_TCLASS
+-			m.SetLen(syscall.CmsgLen(4))
+-			data := oob[off+syscall.CmsgLen(0):]
+-			*(*byte)(unsafe.Pointer(&data[:1][0])) = byte(cm.TrafficClass)
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if cm.HopLimit > 0 {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_HOPLIMIT
+-			m.SetLen(syscall.CmsgLen(4))
+-			data := oob[off+syscall.CmsgLen(0):]
+-			*(*byte)(unsafe.Pointer(&data[:1][0])) = byte(cm.HopLimit)
+-			off += syscall.CmsgSpace(4)
+-		}
+-		if pion {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_PKTINFO
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofInet6Pktinfo))
+-			pi := (*syscall.Inet6Pktinfo)(unsafe.Pointer(&oob[off+syscall.CmsgLen(0)]))
+-			if ip := cm.Src.To16(); ip != nil && ip.To4() == nil {
+-				copy(pi.Addr[:], ip)
+-			}
+-			if cm.IfIndex != 0 {
+-				pi.Ifindex = uint32(cm.IfIndex)
+-			}
+-			off += syscall.CmsgSpace(syscall.SizeofInet6Pktinfo)
+-		}
+-		if len(cm.NextHop) == net.IPv6len {
+-			m := (*syscall.Cmsghdr)(unsafe.Pointer(&oob[off]))
+-			m.Level = ianaProtocolIPv6
+-			m.Type = syscall.IPV6_NEXTHOP
+-			m.SetLen(syscall.CmsgLen(syscall.SizeofSockaddrInet6))
+-			sa := (*syscall.RawSockaddrInet6)(unsafe.Pointer(&oob[off+syscall.CmsgLen(0)]))
+-			sa.Family = syscall.AF_INET6
+-			copy(sa.Addr[:], cm.NextHop)
+-			sa.Scope_id = uint32(cm.IfIndex)
+-			off += syscall.CmsgSpace(syscall.SizeofSockaddrInet6)
+-		}
+-	}
+-	return
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "syscall"
+-
+-func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-func newControlMessage(opt *rawOpt) (oob []byte) {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EPLAN9
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) (oob []byte) {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_rfc3542_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "syscall"
+-
+-func setControlMessage(fd syscall.Handle, opt *rawOpt, cf ControlFlags, on bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+-
+-func newControlMessage(opt *rawOpt) (oob []byte) {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+-
+-func parseControlMessage(b []byte) (*ControlMessage, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EWINDOWS
+-}
+-
+-func marshalControlMessage(cm *ControlMessage) (oob []byte) {
+-	// TODO(mikio): Implement this
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/control_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/control_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,42 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"sync"
+-	"testing"
+-)
+-
+-func TestControlFlags(t *testing.T) {
+-	tf := FlagInterface | FlagPathMTU
+-	opt := rawOpt{cflags: tf | FlagHopLimit}
+-
+-	// This loop runs methods of raw.Opt concurrently for testing
+-	// concurrent access to the rawOpt. The first entry shold be
+-	// opt.set and the last entry should be opt.clear.
+-	tfns := []func(ControlFlags){opt.set, opt.clear, opt.clear}
+-	ch := make(chan bool)
+-	var wg sync.WaitGroup
+-	for i, fn := range tfns {
+-		wg.Add(1)
+-		go func(i int, fn func(ControlFlags)) {
+-			defer wg.Done()
+-			switch i {
+-			case 0:
+-				close(ch)
+-			case len(tfns) - 1:
+-				<-ch
+-			}
+-			opt.Lock()
+-			defer opt.Unlock()
+-			fn(tf)
+-		}(i, fn)
+-	}
+-	wg.Wait()
+-
+-	if opt.isset(tf) {
+-		t.Fatalf("got %#x; expected %#x", opt.cflags, FlagHopLimit)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,96 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-// MulticastHopLimit returns the hop limit field value for outgoing
+-// multicast packets.
+-func (c *dgramOpt) MulticastHopLimit() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-// SetMulticastHopLimit sets the hop limit field value for future
+-// outgoing multicast packets.
+-func (c *dgramOpt) SetMulticastHopLimit(hoplim int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-// MulticastInterface returns the default interface for multicast
+-// packet transmissions.
+-func (c *dgramOpt) MulticastInterface() (*net.Interface, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EPLAN9
+-}
+-
+-// SetMulticastInterface sets the default interface for future
+-// multicast packet transmissions.
+-func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-// MulticastLoopback reports whether transmitted multicast packets
+-// should be copied and send back to the originator.
+-func (c *dgramOpt) MulticastLoopback() (bool, error) {
+-	// TODO(mikio): Implement this
+-	return false, syscall.EPLAN9
+-}
+-
+-// SetMulticastLoopback sets whether transmitted multicast packets
+-// should be copied and send back to the originator.
+-func (c *dgramOpt) SetMulticastLoopback(on bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-// JoinGroup joins the group address group on the interface ifi.
+-// It uses the system assigned multicast interface when ifi is nil,
+-// although this is not recommended because the assignment depends on
+-// platforms and sometimes it might require routing configuration.
+-func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-// LeaveGroup leaves the group address group on the interface ifi.
+-func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-// Checksum reports whether the kernel will compute, store or verify a
+-// checksum for both incoming and outgoing packets.  If on is true, it
+-// returns an offset in bytes into the data of where the checksum
+-// field is located.
+-func (c *dgramOpt) Checksum() (on bool, offset int, err error) {
+-	// TODO(mikio): Implement this
+-	return false, 0, syscall.EPLAN9
+-}
+-
+-// SetChecksum enables the kernel checksum processing.  If on is ture,
+-// the offset should be an offset in bytes into the data of where the
+-// checksum field is located.
+-func (c *dgramOpt) SetChecksum(on bool, offset int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-// ICMPFilter returns an ICMP filter.
+-func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EPLAN9
+-}
+-
+-// SetICMPFilter deploys the ICMP filter.
+-func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_posix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_posix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_posix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/dgramopt_posix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,178 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd windows
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-// MulticastHopLimit returns the hop limit field value for outgoing
+-// multicast packets.
+-func (c *dgramOpt) MulticastHopLimit() (int, error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return 0, err
+-	}
+-	return ipv6MulticastHopLimit(fd)
+-}
+-
+-// SetMulticastHopLimit sets the hop limit field value for future
+-// outgoing multicast packets.
+-func (c *dgramOpt) SetMulticastHopLimit(hoplim int) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv6MulticastHopLimit(fd, hoplim)
+-}
+-
+-// MulticastInterface returns the default interface for multicast
+-// packet transmissions.
+-func (c *dgramOpt) MulticastInterface() (*net.Interface, error) {
+-	if !c.ok() {
+-		return nil, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return nil, err
+-	}
+-	return ipv6MulticastInterface(fd)
+-}
+-
+-// SetMulticastInterface sets the default interface for future
+-// multicast packet transmissions.
+-func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv6MulticastInterface(fd, ifi)
+-}
+-
+-// MulticastLoopback reports whether transmitted multicast packets
+-// should be copied and send back to the originator.
+-func (c *dgramOpt) MulticastLoopback() (bool, error) {
+-	if !c.ok() {
+-		return false, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return false, err
+-	}
+-	return ipv6MulticastLoopback(fd)
+-}
+-
+-// SetMulticastLoopback sets whether transmitted multicast packets
+-// should be copied and send back to the originator.
+-func (c *dgramOpt) SetMulticastLoopback(on bool) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv6MulticastLoopback(fd, on)
+-}
+-
+-// JoinGroup joins the group address group on the interface ifi.
+-// It uses the system assigned multicast interface when ifi is nil,
+-// although this is not recommended because the assignment depends on
+-// platforms and sometimes it might require routing configuration.
+-func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	grp := netAddrToIP16(group)
+-	if grp == nil {
+-		return errMissingAddress
+-	}
+-	return joinIPv6Group(fd, ifi, grp)
+-}
+-
+-// LeaveGroup leaves the group address group on the interface ifi.
+-func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	grp := netAddrToIP16(group)
+-	if grp == nil {
+-		return errMissingAddress
+-	}
+-	return leaveIPv6Group(fd, ifi, grp)
+-}
+-
+-// Checksum reports whether the kernel will compute, store or verify a
+-// checksum for both incoming and outgoing packets.  If on is true, it
+-// returns an offset in bytes into the data of where the checksum
+-// field is located.
+-func (c *dgramOpt) Checksum() (on bool, offset int, err error) {
+-	if !c.ok() {
+-		return false, 0, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return false, 0, err
+-	}
+-	return ipv6Checksum(fd)
+-}
+-
+-// SetChecksum enables the kernel checksum processing.  If on is ture,
+-// the offset should be an offset in bytes into the data of where the
+-// checksum field is located.
+-func (c *dgramOpt) SetChecksum(on bool, offset int) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv6Checksum(fd, on, offset)
+-}
+-
+-// ICMPFilter returns an ICMP filter.
+-func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) {
+-	if !c.ok() {
+-		return nil, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return nil, err
+-	}
+-	return ipv6ICMPFilter(fd)
+-}
+-
+-// SetICMPFilter deploys the ICMP filter.
+-func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv6ICMPFilter(fd, f)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/doc.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/doc.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/doc.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/doc.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,193 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package ipv6 implements IP-level socket options for the Internet
+-// Protocol version 6.
+-//
+-// The package provides IP-level socket options that allow
+-// manipulation of IPv6 facilities.  The IPv6 and socket options for
+-// IPv6 are defined in RFC 2460, RFC 3493 and RFC 3542.
+-//
+-//
+-// Unicasting
+-//
+-// The options for unicasting are available for net.TCPConn,
+-// net.UDPConn and net.IPConn which are created as network connections
+-// that use the IPv6 transport.  When a single TCP connection carrying
+-// a data flow of multiple packets needs to indicate the flow is
+-// important, ipv6.Conn is used to set the traffic class field on the
+-// IPv6 header for each packet.
+-//
+-//	ln, err := net.Listen("tcp6", "[::]:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer ln.Close()
+-//	for {
+-//		c, err := ln.Accept()
+-//		if err != nil {
+-//			// error handling
+-//		}
+-//		go func(c net.Conn) {
+-//			defer c.Close()
+-//
+-// The outgoing packets will be labeled DiffServ assured forwarding
+-// class 1 low drop precedence, as known as AF11 packets.
+-//
+-//			if err := ipv6.NewConn(c).SetTrafficClass(DiffServAF11); err != nil {
+-//				// error handling
+-//			}
+-//			if _, err := c.Write(data); err != nil {
+-//				// error handling
+-//			}
+-//		}(c)
+-//	}
+-//
+-//
+-// Multicasting
+-//
+-// The options for multicasting are available for net.UDPConn and
+-// net.IPconn which are created as network connections that use the
+-// IPv6 transport.  A few network facilities must be prepared before
+-// you begin multicasting, at a minimum joining network interfaces and
+-// multicast groups.
+-//
+-//	en0, err := net.InterfaceByName("en0")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	en1, err := net.InterfaceByIndex(911)
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	group := net.ParseIP("ff02::114")
+-//
+-// First, an application listens to an appropriate address with an
+-// appropriate service port.
+-//
+-//	c, err := net.ListenPacket("udp6", "[::]:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c.Close()
+-//
+-// Second, the application joins multicast groups, starts listening to
+-// the groups on the specified network interfaces.  Note that the
+-// service port for transport layer protocol does not matter with this
+-// operation as joining groups affects only network and link layer
+-// protocols, such as IPv6 and Ethernet.
+-//
+-//	p := ipv6.NewPacketConn(c)
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: group}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en1, &net.UDPAddr{IP: group}); err != nil {
+-//		// error handling
+-//	}
+-//
+-// The application might set per packet control message transmissions
+-// between the protocol stack within the kernel.  When the application
+-// needs a destination address on an incoming packet,
+-// SetControlMessage of ipv6.PacketConn is used to enable control
+-// message transmissons.
+-//
+-//	if err := p.SetControlMessage(ipv6.FlagDst, true); err != nil {
+-//		// error handling
+-//	}
+-//
+-// The application could identify whether the received packets are
+-// of interest by using the control message that contains the
+-// destination address of the received packet.
+-//
+-//	b := make([]byte, 1500)
+-//	for {
+-//		n, rcm, src, err := p.ReadFrom(b)
+-//		if err != nil {
+-//			// error handling
+-//		}
+-//		if rcm.Dst.IsMulticast() {
+-//			if rcm.Dst.Equal(group)
+-//				// joined group, do something
+-//			} else {
+-//				// unknown group, discard
+-//				continue
+-//			}
+-//		}
+-//
+-// The application can also send both unicast and multicast packets.
+-//
+-//		p.SetTrafficClass(DiffServCS0)
+-//		p.SetHopLimit(16)
+-//		if _, err := p.WriteTo(data[:n], nil, src); err != nil {
+-//			// error handling
+-//		}
+-//		dst := &net.UDPAddr{IP: group, Port: 1024}
+-//		wcm := ipv6.ControlMessage{TrafficClass: DiffServCS7, HopLimit: 1}
+-//		for _, ifi := range []*net.Interface{en0, en1} {
+-//			wcm.IfIndex = ifi.Index
+-//			if _, err := p.WriteTo(data[:n], &wcm, dst); err != nil {
+-//				// error handling
+-//			}
+-//		}
+-//	}
+-//
+-//
+-// More multicasting
+-//
+-// An application that uses PacketConn may join multiple multicast
+-// groups.  For example, a UDP listener with port 1024 might join two
+-// different groups across over two different network interfaces by
+-// using:
+-//
+-//	c, err := net.ListenPacket("udp6", "[::]:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c.Close()
+-//	p := ipv6.NewPacketConn(c)
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::1:114")}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::2:114")}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en1, &net.UDPAddr{IP: net.ParseIP("ff02::2:114")}); err != nil {
+-//		// error handling
+-//	}
+-//
+-// It is possible for multiple UDP listeners that listen on the same
+-// UDP port to join the same multicast group.  The net package will
+-// provide a socket that listens to a wildcard address with reusable
+-// UDP port when an appropriate multicast address prefix is passed to
+-// the net.ListenPacket or net.ListenUDP.
+-//
+-//	c1, err := net.ListenPacket("udp6", "[ff02::]:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c1.Close()
+-//	c2, err := net.ListenPacket("udp6", "[ff02::]:1024")
+-//	if err != nil {
+-//		// error handling
+-//	}
+-//	defer c2.Close()
+-//	p1 := ipv6.NewPacketConn(c1)
+-//	if err := p1.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil {
+-//		// error handling
+-//	}
+-//	p2 := ipv6.NewPacketConn(c2)
+-//	if err := p2.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil {
+-//		// error handling
+-//	}
+-//
+-// Also it is possible for the application to leave or rejoin a
+-// multicast group on the network interface.
+-//
+-//	if err := p.LeaveGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil {
+-//		// error handling
+-//	}
+-//	if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff01::114")}); err != nil {
+-//		// error handling
+-//	}
+-package ipv6
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/endpoint.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/endpoint.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/endpoint.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/endpoint.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,119 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"syscall"
+-	"time"
+-)
+-
+-// A Conn represents a network endpoint that uses IPv6 transport.
+-// It allows to set basic IP-level socket options such as traffic
+-// class and hop limit.
+-type Conn struct {
+-	genericOpt
+-}
+-
+-type genericOpt struct {
+-	net.Conn
+-}
+-
+-func (c *genericOpt) ok() bool { return c != nil && c.Conn != nil }
+-
+-// PathMTU returns a path MTU value for the destination associated
+-// with the endpoint.
+-func (c *Conn) PathMTU() (int, error) {
+-	if !c.genericOpt.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	fd, err := c.genericOpt.sysfd()
+-	if err != nil {
+-		return 0, err
+-	}
+-	return ipv6PathMTU(fd)
+-}
+-
+-// NewConn returns a new Conn.
+-func NewConn(c net.Conn) *Conn {
+-	return &Conn{
+-		genericOpt: genericOpt{Conn: c},
+-	}
+-}
+-
+-// A PacketConn represents a packet network endpoint that uses IPv6
+-// transport.  It is used to control several IP-level socket options
+-// including IPv6 header manipulation.  It also provides datagram
+-// based network I/O methods specific to the IPv6 and higher layer
+-// protocols such as OSPF, GRE, and UDP.
+-type PacketConn struct {
+-	genericOpt
+-	dgramOpt
+-	payloadHandler
+-}
+-
+-type dgramOpt struct {
+-	net.PacketConn
+-}
+-
+-func (c *dgramOpt) ok() bool { return c != nil && c.PacketConn != nil }
+-
+-// SetControlMessage allows to receive the per packet basis IP-level
+-// socket options.
+-func (c *PacketConn) SetControlMessage(cf ControlFlags, on bool) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.payloadHandler.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setControlMessage(fd, &c.payloadHandler.rawOpt, cf, on)
+-}
+-
+-// SetDeadline sets the read and write deadlines associated with the
+-// endpoint.
+-func (c *PacketConn) SetDeadline(t time.Time) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.SetDeadline(t)
+-}
+-
+-// SetReadDeadline sets the read deadline associated with the
+-// endpoint.
+-func (c *PacketConn) SetReadDeadline(t time.Time) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.SetReadDeadline(t)
+-}
+-
+-// SetWriteDeadline sets the write deadline associated with the
+-// endpoint.
+-func (c *PacketConn) SetWriteDeadline(t time.Time) error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.SetWriteDeadline(t)
+-}
+-
+-// Close closes the endpoint.
+-func (c *PacketConn) Close() error {
+-	if !c.payloadHandler.ok() {
+-		return syscall.EINVAL
+-	}
+-	return c.payloadHandler.Close()
+-}
+-
+-// NewPacketConn returns a new PacketConn using c as its underlying
+-// transport.
+-func NewPacketConn(c net.PacketConn) *PacketConn {
+-	return &PacketConn{
+-		genericOpt:     genericOpt{Conn: c.(net.Conn)},
+-		dgramOpt:       dgramOpt{PacketConn: c},
+-		payloadHandler: payloadHandler{PacketConn: c},
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/genericopt_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/genericopt_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/genericopt_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/genericopt_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,34 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "syscall"
+-
+-// TrafficClass returns the traffic class field value for outgoing
+-// packets.
+-func (c *genericOpt) TrafficClass() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-// SetTrafficClass sets the traffic class field value for future
+-// outgoing packets.
+-func (c *genericOpt) SetTrafficClass(tclass int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+-
+-// HopLimit returns the hop limit field value for outgoing packets.
+-func (c *genericOpt) HopLimit() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-// SetHopLimit sets the hop limit field value for future outgoing
+-// packets.
+-func (c *genericOpt) SetHopLimit(hoplim int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/genericopt_posix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/genericopt_posix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/genericopt_posix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/genericopt_posix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,60 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd windows
+-
+-package ipv6
+-
+-import "syscall"
+-
+-// TrafficClass returns the traffic class field value for outgoing
+-// packets.
+-func (c *genericOpt) TrafficClass() (int, error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return 0, err
+-	}
+-	return ipv6TrafficClass(fd)
+-}
+-
+-// SetTrafficClass sets the traffic class field value for future
+-// outgoing packets.
+-func (c *genericOpt) SetTrafficClass(tclass int) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv6TrafficClass(fd, tclass)
+-}
+-
+-// HopLimit returns the hop limit field value for outgoing packets.
+-func (c *genericOpt) HopLimit() (int, error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return 0, err
+-	}
+-	return ipv6HopLimit(fd)
+-}
+-
+-// SetHopLimit sets the hop limit field value for future outgoing
+-// packets.
+-func (c *genericOpt) SetHopLimit(hoplim int) error {
+-	if !c.ok() {
+-		return syscall.EINVAL
+-	}
+-	fd, err := c.sysfd()
+-	if err != nil {
+-		return err
+-	}
+-	return setIPv6HopLimit(fd, hoplim)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/gen.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/gen.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/gen.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/gen.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,247 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build ignore
+-
+-// This program generates internet protocol constatns and tables by
+-// reading IANA protocol registries.
+-//
+-// Usage:
+-//	go run gen.go > iana.go
+-package main
+-
+-import (
+-	"bytes"
+-	"encoding/xml"
+-	"fmt"
+-	"go/format"
+-	"io"
+-	"net/http"
+-	"os"
+-	"strconv"
+-	"strings"
+-)
+-
+-var registries = []struct {
+-	url   string
+-	parse func(io.Writer, io.Reader) error
+-}{
+-	{
+-		"http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xml",
+-		parseICMPv6Parameters,
+-	},
+-	{
+-		"http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml",
+-		parseProtocolNumbers,
+-	},
+-}
+-
+-func main() {
+-	var bb bytes.Buffer
+-	fmt.Fprintf(&bb, "// go run gen.go\n")
+-	fmt.Fprintf(&bb, "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n")
+-	fmt.Fprintf(&bb, "package ipv6\n\n")
+-	for _, r := range registries {
+-		resp, err := http.Get(r.url)
+-		if err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		defer resp.Body.Close()
+-		if resp.StatusCode != http.StatusOK {
+-			fmt.Fprintf(os.Stderr, "got HTTP status code %v for %v\n", resp.StatusCode, r.url)
+-			os.Exit(1)
+-		}
+-		if err := r.parse(&bb, resp.Body); err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		fmt.Fprintf(&bb, "\n")
+-	}
+-	b, err := format.Source(bb.Bytes())
+-	if err != nil {
+-		fmt.Fprintln(os.Stderr, err)
+-		os.Exit(1)
+-	}
+-	os.Stdout.Write(b)
+-}
+-
+-func parseICMPv6Parameters(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var icp icmpv6Parameters
+-	if err := dec.Decode(&icp); err != nil {
+-		return err
+-	}
+-	prs := icp.escape()
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, pr := range prs {
+-		if pr.Name == "" {
+-			continue
+-		}
+-		fmt.Fprintf(w, "ICMPType%s ICMPType = %d", pr.Name, pr.Value)
+-		fmt.Fprintf(w, "// %s\n", pr.OrigName)
+-	}
+-	fmt.Fprintf(w, ")\n\n")
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated)
+-	fmt.Fprintf(w, "var icmpTypes = map[ICMPType]string{\n")
+-	for _, pr := range prs {
+-		if pr.Name == "" {
+-			continue
+-		}
+-		fmt.Fprintf(w, "%d: %q,\n", pr.Value, strings.ToLower(pr.OrigName))
+-	}
+-	fmt.Fprintf(w, "}\n")
+-	return nil
+-}
+-
+-type icmpv6Parameters struct {
+-	XMLName    xml.Name              `xml:"registry"`
+-	Title      string                `xml:"title"`
+-	Updated    string                `xml:"updated"`
+-	Registries []icmpv6ParamRegistry `xml:"registry"`
+-}
+-
+-type icmpv6ParamRegistry struct {
+-	Title   string              `xml:"title"`
+-	Records []icmpv6ParamRecord `xml:"record"`
+-}
+-
+-type icmpv6ParamRecord struct {
+-	Value string `xml:"value"`
+-	Name  string `xml:"name"`
+-}
+-
+-type canonICMPv6ParamRecord struct {
+-	OrigName string
+-	Name     string
+-	Value    int
+-}
+-
+-func (icp *icmpv6Parameters) escape() []canonICMPv6ParamRecord {
+-	id := -1
+-	for i, r := range icp.Registries {
+-		if strings.Contains(r.Title, "Type") || strings.Contains(r.Title, "type") {
+-			id = i
+-			break
+-		}
+-	}
+-	if id < 0 {
+-		return nil
+-	}
+-	prs := make([]canonICMPv6ParamRecord, len(icp.Registries[id].Records))
+-	sr := strings.NewReplacer(
+-		"Messages", "",
+-		"Message", "",
+-		"ICMP", "",
+-		"+", "P",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, pr := range icp.Registries[id].Records {
+-		if strings.Contains(pr.Name, "Reserved") ||
+-			strings.Contains(pr.Name, "Unassigned") ||
+-			strings.Contains(pr.Name, "Deprecated") ||
+-			strings.Contains(pr.Name, "Experiment") ||
+-			strings.Contains(pr.Name, "experiment") {
+-			continue
+-		}
+-		ss := strings.Split(pr.Name, "\n")
+-		if len(ss) > 1 {
+-			prs[i].Name = strings.Join(ss, " ")
+-		} else {
+-			prs[i].Name = ss[0]
+-		}
+-		s := strings.TrimSpace(prs[i].Name)
+-		prs[i].OrigName = s
+-		prs[i].Name = sr.Replace(s)
+-		prs[i].Value, _ = strconv.Atoi(pr.Value)
+-	}
+-	return prs
+-}
+-
+-func parseProtocolNumbers(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var pn protocolNumbers
+-	if err := dec.Decode(&pn); err != nil {
+-		return err
+-	}
+-	prs := pn.escape()
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", pn.Title, pn.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, pr := range prs {
+-		if pr.Name == "" {
+-			continue
+-		}
+-		fmt.Fprintf(w, "ianaProtocol%s = %d", pr.Name, pr.Value)
+-		s := pr.Descr
+-		if s == "" {
+-			s = pr.OrigName
+-		}
+-		fmt.Fprintf(w, "// %s\n", s)
+-	}
+-	fmt.Fprintf(w, ")\n")
+-	return nil
+-}
+-
+-type protocolNumbers struct {
+-	XMLName  xml.Name         `xml:"registry"`
+-	Title    string           `xml:"title"`
+-	Updated  string           `xml:"updated"`
+-	RegTitle string           `xml:"registry>title"`
+-	Note     string           `xml:"registry>note"`
+-	Records  []protocolRecord `xml:"registry>record"`
+-}
+-
+-type protocolRecord struct {
+-	Value string `xml:"value"`
+-	Name  string `xml:"name"`
+-	Descr string `xml:"description"`
+-}
+-
+-type canonProtocolRecord struct {
+-	OrigName string
+-	Name     string
+-	Descr    string
+-	Value    int
+-}
+-
+-func (pn *protocolNumbers) escape() []canonProtocolRecord {
+-	prs := make([]canonProtocolRecord, len(pn.Records))
+-	sr := strings.NewReplacer(
+-		"-in-", "in",
+-		"-within-", "within",
+-		"-over-", "over",
+-		"+", "P",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, pr := range pn.Records {
+-		prs[i].OrigName = pr.Name
+-		s := strings.TrimSpace(pr.Name)
+-		switch pr.Name {
+-		case "ISIS over IPv4":
+-			prs[i].Name = "ISIS"
+-		case "manet":
+-			prs[i].Name = "MANET"
+-		default:
+-			prs[i].Name = sr.Replace(s)
+-		}
+-		ss := strings.Split(pr.Descr, "\n")
+-		for i := range ss {
+-			ss[i] = strings.TrimSpace(ss[i])
+-		}
+-		if len(ss) > 1 {
+-			prs[i].Descr = strings.Join(ss, " ")
+-		} else {
+-			prs[i].Descr = ss[0]
+-		}
+-		prs[i].Value, _ = strconv.Atoi(pr.Value)
+-	}
+-	return prs
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/gentest.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/gentest.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/gentest.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/gentest.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,196 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build ignore
+-
+-// This program generates internet protocol constants by reading IANA
+-// protocol registries.
+-//
+-// Usage:
+-//	go run gentest.go > iana_test.go
+-package main
+-
+-import (
+-	"bytes"
+-	"encoding/xml"
+-	"fmt"
+-	"go/format"
+-	"io"
+-	"net/http"
+-	"os"
+-	"strconv"
+-	"strings"
+-)
+-
+-var registries = []struct {
+-	url   string
+-	parse func(io.Writer, io.Reader) error
+-}{
+-	{
+-		"http://www.iana.org/assignments/dscp-registry/dscp-registry.xml",
+-		parseDSCPRegistry,
+-	},
+-	{
+-		"http://www.iana.org/assignments/ipv4-tos-byte/ipv4-tos-byte.xml",
+-		parseTOSTCByte,
+-	},
+-}
+-
+-func main() {
+-	var bb bytes.Buffer
+-	fmt.Fprintf(&bb, "// go run gentv.go\n")
+-	fmt.Fprintf(&bb, "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n")
+-	fmt.Fprintf(&bb, "package ipv6_test\n\n")
+-	for _, r := range registries {
+-		resp, err := http.Get(r.url)
+-		if err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		defer resp.Body.Close()
+-		if resp.StatusCode != http.StatusOK {
+-			fmt.Fprintf(os.Stderr, "got HTTP status code %v for %v\n", resp.StatusCode, r.url)
+-			os.Exit(1)
+-		}
+-		if err := r.parse(&bb, resp.Body); err != nil {
+-			fmt.Fprintln(os.Stderr, err)
+-			os.Exit(1)
+-		}
+-		fmt.Fprintf(&bb, "\n")
+-	}
+-	b, err := format.Source(bb.Bytes())
+-	if err != nil {
+-		fmt.Fprintln(os.Stderr, err)
+-		os.Exit(1)
+-	}
+-	os.Stdout.Write(b)
+-}
+-
+-func parseDSCPRegistry(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var dr dscpRegistry
+-	if err := dec.Decode(&dr); err != nil {
+-		return err
+-	}
+-	drs := dr.escape()
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", dr.Title, dr.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, dr := range drs {
+-		fmt.Fprintf(w, "DiffServ%s = %#x", dr.Name, dr.Value)
+-		fmt.Fprintf(w, "// %s\n", dr.OrigName)
+-	}
+-	fmt.Fprintf(w, ")\n")
+-	return nil
+-}
+-
+-type dscpRegistry struct {
+-	XMLName     xml.Name     `xml:"registry"`
+-	Title       string       `xml:"title"`
+-	Updated     string       `xml:"updated"`
+-	Note        string       `xml:"note"`
+-	RegTitle    string       `xml:"registry>title"`
+-	PoolRecords []dscpRecord `xml:"registry>record"`
+-	Records     []dscpRecord `xml:"registry>registry>record"`
+-}
+-
+-type dscpRecord struct {
+-	Name  string `xml:"name"`
+-	Space string `xml:"space"`
+-}
+-
+-type canonDSCPRecord struct {
+-	OrigName string
+-	Name     string
+-	Value    int
+-}
+-
+-func (drr *dscpRegistry) escape() []canonDSCPRecord {
+-	drs := make([]canonDSCPRecord, len(drr.Records))
+-	sr := strings.NewReplacer(
+-		"+", "",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, dr := range drr.Records {
+-		s := strings.TrimSpace(dr.Name)
+-		drs[i].OrigName = s
+-		drs[i].Name = sr.Replace(s)
+-		n, err := strconv.ParseUint(dr.Space, 2, 8)
+-		if err != nil {
+-			continue
+-		}
+-		drs[i].Value = int(n) << 2
+-	}
+-	return drs
+-}
+-
+-func parseTOSTCByte(w io.Writer, r io.Reader) error {
+-	dec := xml.NewDecoder(r)
+-	var ttb tosTCByte
+-	if err := dec.Decode(&ttb); err != nil {
+-		return err
+-	}
+-	trs := ttb.escape()
+-	fmt.Fprintf(w, "// %s, Updated: %s\n", ttb.Title, ttb.Updated)
+-	fmt.Fprintf(w, "const (\n")
+-	for _, tr := range trs {
+-		fmt.Fprintf(w, "%s = %#x", tr.Keyword, tr.Value)
+-		fmt.Fprintf(w, "// %s\n", tr.OrigKeyword)
+-	}
+-	fmt.Fprintf(w, ")\n")
+-	return nil
+-}
+-
+-type tosTCByte struct {
+-	XMLName  xml.Name          `xml:"registry"`
+-	Title    string            `xml:"title"`
+-	Updated  string            `xml:"updated"`
+-	Note     string            `xml:"note"`
+-	RegTitle string            `xml:"registry>title"`
+-	Records  []tosTCByteRecord `xml:"registry>record"`
+-}
+-
+-type tosTCByteRecord struct {
+-	Binary  string `xml:"binary"`
+-	Keyword string `xml:"keyword"`
+-}
+-
+-type canonTOSTCByteRecord struct {
+-	OrigKeyword string
+-	Keyword     string
+-	Value       int
+-}
+-
+-func (ttb *tosTCByte) escape() []canonTOSTCByteRecord {
+-	trs := make([]canonTOSTCByteRecord, len(ttb.Records))
+-	sr := strings.NewReplacer(
+-		"Capable", "",
+-		"(", "",
+-		")", "",
+-		"+", "",
+-		"-", "",
+-		"/", "",
+-		".", "",
+-		" ", "",
+-	)
+-	for i, tr := range ttb.Records {
+-		s := strings.TrimSpace(tr.Keyword)
+-		trs[i].OrigKeyword = s
+-		ss := strings.Split(s, " ")
+-		if len(ss) > 1 {
+-			trs[i].Keyword = strings.Join(ss[1:], " ")
+-		} else {
+-			trs[i].Keyword = ss[0]
+-		}
+-		trs[i].Keyword = sr.Replace(trs[i].Keyword)
+-		n, err := strconv.ParseUint(tr.Binary, 2, 8)
+-		if err != nil {
+-			continue
+-		}
+-		trs[i].Value = int(n)
+-	}
+-	return trs
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,28 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "net"
+-
+-func boolint(b bool) int {
+-	if b {
+-		return 1
+-	}
+-	return 0
+-}
+-
+-func netAddrToIP16(a net.Addr) net.IP {
+-	switch v := a.(type) {
+-	case *net.UDPAddr:
+-		if ip := v.IP.To16(); ip != nil && ip.To4() == nil {
+-			return ip
+-		}
+-	case *net.IPAddr:
+-		if ip := v.IP.To16(); ip != nil && ip.To4() == nil {
+-			return ip
+-		}
+-	}
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,22 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "syscall"
+-
+-func (c *genericOpt) sysfd() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *dgramOpt) sysfd() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+-
+-func (c *payloadHandler) sysfd() (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper_unix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper_unix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper_unix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper_unix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,46 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"reflect"
+-)
+-
+-func (c *genericOpt) sysfd() (int, error) {
+-	switch p := c.Conn.(type) {
+-	case *net.TCPConn, *net.UDPConn, *net.IPConn:
+-		return sysfd(p)
+-	}
+-	return 0, errInvalidConnType
+-}
+-
+-func (c *dgramOpt) sysfd() (int, error) {
+-	switch p := c.PacketConn.(type) {
+-	case *net.UDPConn, *net.IPConn:
+-		return sysfd(p.(net.Conn))
+-	}
+-	return 0, errInvalidConnType
+-}
+-
+-func (c *payloadHandler) sysfd() (int, error) {
+-	return sysfd(c.PacketConn.(net.Conn))
+-}
+-
+-func sysfd(c net.Conn) (int, error) {
+-	cv := reflect.ValueOf(c)
+-	switch ce := cv.Elem(); ce.Kind() {
+-	case reflect.Struct:
+-		nfd := ce.FieldByName("conn").FieldByName("fd")
+-		switch fe := nfd.Elem(); fe.Kind() {
+-		case reflect.Struct:
+-			fd := fe.FieldByName("sysfd")
+-			return int(fd.Int()), nil
+-		}
+-	}
+-	return 0, errInvalidConnType
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/helper_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/helper_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,45 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"reflect"
+-	"syscall"
+-)
+-
+-func (c *genericOpt) sysfd() (syscall.Handle, error) {
+-	switch p := c.Conn.(type) {
+-	case *net.TCPConn, *net.UDPConn, *net.IPConn:
+-		return sysfd(p)
+-	}
+-	return syscall.InvalidHandle, errInvalidConnType
+-}
+-
+-func (c *dgramOpt) sysfd() (syscall.Handle, error) {
+-	switch p := c.PacketConn.(type) {
+-	case *net.UDPConn, *net.IPConn:
+-		return sysfd(p.(net.Conn))
+-	}
+-	return syscall.InvalidHandle, errInvalidConnType
+-}
+-
+-func (c *payloadHandler) sysfd() (syscall.Handle, error) {
+-	return sysfd(c.PacketConn.(net.Conn))
+-}
+-
+-func sysfd(c net.Conn) (syscall.Handle, error) {
+-	cv := reflect.ValueOf(c)
+-	switch ce := cv.Elem(); ce.Kind() {
+-	case reflect.Struct:
+-		netfd := ce.FieldByName("conn").FieldByName("fd")
+-		switch fe := netfd.Elem(); fe.Kind() {
+-		case reflect.Struct:
+-			fd := fe.FieldByName("sysfd")
+-			return syscall.Handle(fd.Uint()), nil
+-		}
+-	}
+-	return syscall.InvalidHandle, errInvalidConnType
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/iana.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/iana.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/iana.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/iana.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,224 +0,0 @@
+-// go run gen.go
+-// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+-
+-package ipv6
+-
+-// Internet Control Message Protocol version 6 (ICMPv6) Parameters, Updated: 2012-11-12
+-const (
+-	ICMPTypeDestinationUnreachable                ICMPType = 1   // Destination Unreachable
+-	ICMPTypePacketTooBig                          ICMPType = 2   // Packet Too Big
+-	ICMPTypeTimeExceeded                          ICMPType = 3   // Time Exceeded
+-	ICMPTypeParameterProblem                      ICMPType = 4   // Parameter Problem
+-	ICMPTypeEchoRequest                           ICMPType = 128 // Echo Request
+-	ICMPTypeEchoReply                             ICMPType = 129 // Echo Reply
+-	ICMPTypeMulticastListenerQuery                ICMPType = 130 // Multicast Listener Query
+-	ICMPTypeMulticastListenerReport               ICMPType = 131 // Multicast Listener Report
+-	ICMPTypeMulticastListenerDone                 ICMPType = 132 // Multicast Listener Done
+-	ICMPTypeRouterSolicitation                    ICMPType = 133 // Router Solicitation
+-	ICMPTypeRouterAdvertisement                   ICMPType = 134 // Router Advertisement
+-	ICMPTypeNeighborSolicitation                  ICMPType = 135 // Neighbor Solicitation
+-	ICMPTypeNeighborAdvertisement                 ICMPType = 136 // Neighbor Advertisement
+-	ICMPTypeRedirect                              ICMPType = 137 // Redirect Message
+-	ICMPTypeRouterRenumbering                     ICMPType = 138 // Router Renumbering
+-	ICMPTypeNodeInformationQuery                  ICMPType = 139 // ICMP Node Information Query
+-	ICMPTypeNodeInformationResponse               ICMPType = 140 // ICMP Node Information Response
+-	ICMPTypeInverseNeighborDiscoverySolicitation  ICMPType = 141 // Inverse Neighbor Discovery Solicitation Message
+-	ICMPTypeInverseNeighborDiscoveryAdvertisement ICMPType = 142 // Inverse Neighbor Discovery Advertisement Message
+-	ICMPTypeVersion2MulticastListenerReport       ICMPType = 143 // Version 2 Multicast Listener Report
+-	ICMPTypeHomeAgentAddressDiscoveryRequest      ICMPType = 144 // Home Agent Address Discovery Request Message
+-	ICMPTypeHomeAgentAddressDiscoveryReply        ICMPType = 145 // Home Agent Address Discovery Reply Message
+-	ICMPTypeMobilePrefixSolicitation              ICMPType = 146 // Mobile Prefix Solicitation
+-	ICMPTypeMobilePrefixAdvertisement             ICMPType = 147 // Mobile Prefix Advertisement
+-	ICMPTypeCertificationPathSolicitation         ICMPType = 148 // Certification Path Solicitation Message
+-	ICMPTypeCertificationPathAdvertisement        ICMPType = 149 // Certification Path Advertisement Message
+-	ICMPTypeMulticastRouterAdvertisement          ICMPType = 151 // Multicast Router Advertisement
+-	ICMPTypeMulticastRouterSolicitation           ICMPType = 152 // Multicast Router Solicitation
+-	ICMPTypeMulticastRouterTermination            ICMPType = 153 // Multicast Router Termination
+-	ICMPTypeFMIPv6                                ICMPType = 154 // FMIPv6 Messages
+-	ICMPTypeRPLControl                            ICMPType = 155 // RPL Control Message
+-	ICMPTypeILNPv6LocatorUpdate                   ICMPType = 156 // ILNPv6 Locator Update Message
+-	ICMPTypeDuplicateAddressRequest               ICMPType = 157 // Duplicate Address Request
+-	ICMPTypeDuplicateAddressConfirmation          ICMPType = 158 // Duplicate Address Confirmation
+-)
+-
+-// Internet Control Message Protocol version 6 (ICMPv6) Parameters, Updated: 2012-11-12
+-var icmpTypes = map[ICMPType]string{
+-	1:   "destination unreachable",
+-	2:   "packet too big",
+-	3:   "time exceeded",
+-	4:   "parameter problem",
+-	128: "echo request",
+-	129: "echo reply",
+-	130: "multicast listener query",
+-	131: "multicast listener report",
+-	132: "multicast listener done",
+-	133: "router solicitation",
+-	134: "router advertisement",
+-	135: "neighbor solicitation",
+-	136: "neighbor advertisement",
+-	137: "redirect message",
+-	138: "router renumbering",
+-	139: "icmp node information query",
+-	140: "icmp node information response",
+-	141: "inverse neighbor discovery solicitation message",
+-	142: "inverse neighbor discovery advertisement message",
+-	143: "version 2 multicast listener report",
+-	144: "home agent address discovery request message",
+-	145: "home agent address discovery reply message",
+-	146: "mobile prefix solicitation",
+-	147: "mobile prefix advertisement",
+-	148: "certification path solicitation message",
+-	149: "certification path advertisement message",
+-	151: "multicast router advertisement",
+-	152: "multicast router solicitation",
+-	153: "multicast router termination",
+-	154: "fmipv6 messages",
+-	155: "rpl control message",
+-	156: "ilnpv6 locator update message",
+-	157: "duplicate address request",
+-	158: "duplicate address confirmation",
+-}
+-
+-// Protocol Numbers, Updated: 2013-02-17
+-const (
+-	ianaProtocolHOPOPT         = 0   // IPv6 Hop-by-Hop Option
+-	ianaProtocolICMP           = 1   // Internet Control Message
+-	ianaProtocolIGMP           = 2   // Internet Group Management
+-	ianaProtocolGGP            = 3   // Gateway-to-Gateway
+-	ianaProtocolIPv4           = 4   // IPv4 encapsulation
+-	ianaProtocolST             = 5   // Stream
+-	ianaProtocolTCP            = 6   // Transmission Control
+-	ianaProtocolCBT            = 7   // CBT
+-	ianaProtocolEGP            = 8   // Exterior Gateway Protocol
+-	ianaProtocolIGP            = 9   // any private interior gateway (used by Cisco for their IGRP)
+-	ianaProtocolBBNRCCMON      = 10  // BBN RCC Monitoring
+-	ianaProtocolNVPII          = 11  // Network Voice Protocol
+-	ianaProtocolPUP            = 12  // PUP
+-	ianaProtocolARGUS          = 13  // ARGUS
+-	ianaProtocolEMCON          = 14  // EMCON
+-	ianaProtocolXNET           = 15  // Cross Net Debugger
+-	ianaProtocolCHAOS          = 16  // Chaos
+-	ianaProtocolUDP            = 17  // User Datagram
+-	ianaProtocolMUX            = 18  // Multiplexing
+-	ianaProtocolDCNMEAS        = 19  // DCN Measurement Subsystems
+-	ianaProtocolHMP            = 20  // Host Monitoring
+-	ianaProtocolPRM            = 21  // Packet Radio Measurement
+-	ianaProtocolXNSIDP         = 22  // XEROX NS IDP
+-	ianaProtocolTRUNK1         = 23  // Trunk-1
+-	ianaProtocolTRUNK2         = 24  // Trunk-2
+-	ianaProtocolLEAF1          = 25  // Leaf-1
+-	ianaProtocolLEAF2          = 26  // Leaf-2
+-	ianaProtocolRDP            = 27  // Reliable Data Protocol
+-	ianaProtocolIRTP           = 28  // Internet Reliable Transaction
+-	ianaProtocolISOTP4         = 29  // ISO Transport Protocol Class 4
+-	ianaProtocolNETBLT         = 30  // Bulk Data Transfer Protocol
+-	ianaProtocolMFENSP         = 31  // MFE Network Services Protocol
+-	ianaProtocolMERITINP       = 32  // MERIT Internodal Protocol
+-	ianaProtocolDCCP           = 33  // Datagram Congestion Control Protocol
+-	ianaProtocol3PC            = 34  // Third Party Connect Protocol
+-	ianaProtocolIDPR           = 35  // Inter-Domain Policy Routing Protocol
+-	ianaProtocolXTP            = 36  // XTP
+-	ianaProtocolDDP            = 37  // Datagram Delivery Protocol
+-	ianaProtocolIDPRCMTP       = 38  // IDPR Control Message Transport Proto
+-	ianaProtocolTPPP           = 39  // TP++ Transport Protocol
+-	ianaProtocolIL             = 40  // IL Transport Protocol
+-	ianaProtocolIPv6           = 41  // IPv6 encapsulation
+-	ianaProtocolSDRP           = 42  // Source Demand Routing Protocol
+-	ianaProtocolIPv6Route      = 43  // Routing Header for IPv6
+-	ianaProtocolIPv6Frag       = 44  // Fragment Header for IPv6
+-	ianaProtocolIDRP           = 45  // Inter-Domain Routing Protocol
+-	ianaProtocolRSVP           = 46  // Reservation Protocol
+-	ianaProtocolGRE            = 47  // Generic Routing Encapsulation
+-	ianaProtocolDSR            = 48  // Dynamic Source Routing Protocol
+-	ianaProtocolBNA            = 49  // BNA
+-	ianaProtocolESP            = 50  // Encap Security Payload
+-	ianaProtocolAH             = 51  // Authentication Header
+-	ianaProtocolINLSP          = 52  // Integrated Net Layer Security  TUBA
+-	ianaProtocolSWIPE          = 53  // IP with Encryption
+-	ianaProtocolNARP           = 54  // NBMA Address Resolution Protocol
+-	ianaProtocolMOBILE         = 55  // IP Mobility
+-	ianaProtocolTLSP           = 56  // Transport Layer Security Protocol using Kryptonet key management
+-	ianaProtocolSKIP           = 57  // SKIP
+-	ianaProtocolIPv6ICMP       = 58  // ICMP for IPv6
+-	ianaProtocolIPv6NoNxt      = 59  // No Next Header for IPv6
+-	ianaProtocolIPv6Opts       = 60  // Destination Options for IPv6
+-	ianaProtocolCFTP           = 62  // CFTP
+-	ianaProtocolSATEXPAK       = 64  // SATNET and Backroom EXPAK
+-	ianaProtocolKRYPTOLAN      = 65  // Kryptolan
+-	ianaProtocolRVD            = 66  // MIT Remote Virtual Disk Protocol
+-	ianaProtocolIPPC           = 67  // Internet Pluribus Packet Core
+-	ianaProtocolSATMON         = 69  // SATNET Monitoring
+-	ianaProtocolVISA           = 70  // VISA Protocol
+-	ianaProtocolIPCV           = 71  // Internet Packet Core Utility
+-	ianaProtocolCPNX           = 72  // Computer Protocol Network Executive
+-	ianaProtocolCPHB           = 73  // Computer Protocol Heart Beat
+-	ianaProtocolWSN            = 74  // Wang Span Network
+-	ianaProtocolPVP            = 75  // Packet Video Protocol
+-	ianaProtocolBRSATMON       = 76  // Backroom SATNET Monitoring
+-	ianaProtocolSUNND          = 77  // SUN ND PROTOCOL-Temporary
+-	ianaProtocolWBMON          = 78  // WIDEBAND Monitoring
+-	ianaProtocolWBEXPAK        = 79  // WIDEBAND EXPAK
+-	ianaProtocolISOIP          = 80  // ISO Internet Protocol
+-	ianaProtocolVMTP           = 81  // VMTP
+-	ianaProtocolSECUREVMTP     = 82  // SECURE-VMTP
+-	ianaProtocolVINES          = 83  // VINES
+-	ianaProtocolTTP            = 84  // TTP
+-	ianaProtocolIPTM           = 84  // Protocol Internet Protocol Traffic Manager
+-	ianaProtocolNSFNETIGP      = 85  // NSFNET-IGP
+-	ianaProtocolDGP            = 86  // Dissimilar Gateway Protocol
+-	ianaProtocolTCF            = 87  // TCF
+-	ianaProtocolEIGRP          = 88  // EIGRP
+-	ianaProtocolOSPFIGP        = 89  // OSPFIGP
+-	ianaProtocolSpriteRPC      = 90  // Sprite RPC Protocol
+-	ianaProtocolLARP           = 91  // Locus Address Resolution Protocol
+-	ianaProtocolMTP            = 92  // Multicast Transport Protocol
+-	ianaProtocolAX25           = 93  // AX.25 Frames
+-	ianaProtocolIPIP           = 94  // IP-within-IP Encapsulation Protocol
+-	ianaProtocolMICP           = 95  // Mobile Internetworking Control Pro.
+-	ianaProtocolSCCSP          = 96  // Semaphore Communications Sec. Pro.
+-	ianaProtocolETHERIP        = 97  // Ethernet-within-IP Encapsulation
+-	ianaProtocolENCAP          = 98  // Encapsulation Header
+-	ianaProtocolGMTP           = 100 // GMTP
+-	ianaProtocolIFMP           = 101 // Ipsilon Flow Management Protocol
+-	ianaProtocolPNNI           = 102 // PNNI over IP
+-	ianaProtocolPIM            = 103 // Protocol Independent Multicast
+-	ianaProtocolARIS           = 104 // ARIS
+-	ianaProtocolSCPS           = 105 // SCPS
+-	ianaProtocolQNX            = 106 // QNX
+-	ianaProtocolAN             = 107 // Active Networks
+-	ianaProtocolIPComp         = 108 // IP Payload Compression Protocol
+-	ianaProtocolSNP            = 109 // Sitara Networks Protocol
+-	ianaProtocolCompaqPeer     = 110 // Compaq Peer Protocol
+-	ianaProtocolIPXinIP        = 111 // IPX in IP
+-	ianaProtocolVRRP           = 112 // Virtual Router Redundancy Protocol
+-	ianaProtocolPGM            = 113 // PGM Reliable Transport Protocol
+-	ianaProtocolL2TP           = 115 // Layer Two Tunneling Protocol
+-	ianaProtocolDDX            = 116 // D-II Data Exchange (DDX)
+-	ianaProtocolIATP           = 117 // Interactive Agent Transfer Protocol
+-	ianaProtocolSTP            = 118 // Schedule Transfer Protocol
+-	ianaProtocolSRP            = 119 // SpectraLink Radio Protocol
+-	ianaProtocolUTI            = 120 // UTI
+-	ianaProtocolSMP            = 121 // Simple Message Protocol
+-	ianaProtocolSM             = 122 // SM
+-	ianaProtocolPTP            = 123 // Performance Transparency Protocol
+-	ianaProtocolISIS           = 124 // ISIS over IPv4
+-	ianaProtocolFIRE           = 125 // FIRE
+-	ianaProtocolCRTP           = 126 // Combat Radio Transport Protocol
+-	ianaProtocolCRUDP          = 127 // Combat Radio User Datagram
+-	ianaProtocolSSCOPMCE       = 128 // SSCOPMCE
+-	ianaProtocolIPLT           = 129 // IPLT
+-	ianaProtocolSPS            = 130 // Secure Packet Shield
+-	ianaProtocolPIPE           = 131 // Private IP Encapsulation within IP
+-	ianaProtocolSCTP           = 132 // Stream Control Transmission Protocol
+-	ianaProtocolFC             = 133 // Fibre Channel
+-	ianaProtocolRSVPE2EIGNORE  = 134 // RSVP-E2E-IGNORE
+-	ianaProtocolMobilityHeader = 135 // Mobility Header
+-	ianaProtocolUDPLite        = 136 // UDPLite
+-	ianaProtocolMPLSinIP       = 137 // MPLS-in-IP
+-	ianaProtocolMANET          = 138 // MANET Protocols
+-	ianaProtocolHIP            = 139 // Host Identity Protocol
+-	ianaProtocolShim6          = 140 // Shim6 Protocol
+-	ianaProtocolWESP           = 141 // Wrapped Encapsulating Security Payload
+-	ianaProtocolROHC           = 142 // Robust Header Compression
+-	ianaProtocolReserved       = 255 // Reserved
+-)
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/iana_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/iana_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/iana_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/iana_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,38 +0,0 @@
+-// go run gentv.go
+-// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+-
+-package ipv6_test
+-
+-// Differentiated Services Field Codepoints, Updated: 2010-05-11
+-const (
+-	DiffServCS0        = 0x0  // CS0
+-	DiffServCS1        = 0x20 // CS1
+-	DiffServCS2        = 0x40 // CS2
+-	DiffServCS3        = 0x60 // CS3
+-	DiffServCS4        = 0x80 // CS4
+-	DiffServCS5        = 0xa0 // CS5
+-	DiffServCS6        = 0xc0 // CS6
+-	DiffServCS7        = 0xe0 // CS7
+-	DiffServAF11       = 0x28 // AF11
+-	DiffServAF12       = 0x30 // AF12
+-	DiffServAF13       = 0x38 // AF13
+-	DiffServAF21       = 0x48 // AF21
+-	DiffServAF22       = 0x50 // AF22
+-	DiffServAF23       = 0x58 // AF23
+-	DiffServAF31       = 0x68 // AF31
+-	DiffServAF32       = 0x70 // AF32
+-	DiffServAF33       = 0x78 // AF33
+-	DiffServAF41       = 0x88 // AF41
+-	DiffServAF42       = 0x90 // AF42
+-	DiffServAF43       = 0x98 // AF43
+-	DiffServEFPHB      = 0xb8 // EF PHB
+-	DiffServVOICEADMIT = 0xb0 // VOICE-ADMIT
+-)
+-
+-// IPv4 TOS Byte and IPv6 Traffic Class Octet, Updated: 2001-09-06
+-const (
+-	NotECNTransport       = 0x0 // Not-ECT (Not ECN-Capable Transport)
+-	ECNTransport1         = 0x1 // ECT(1) (ECN-Capable Transport(1))
+-	ECNTransport0         = 0x2 // ECT(0) (ECN-Capable Transport(0))
+-	CongestionExperienced = 0x3 // CE (Congestion Experienced)
+-)
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_bsd.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_bsd.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_bsd.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_bsd.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,35 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd netbsd openbsd
+-
+-package ipv6
+-
+-import "syscall"
+-
+-type rawICMPFilter struct {
+-	syscall.ICMPv6Filter
+-}
+-
+-func (f *rawICMPFilter) set(typ ICMPType, block bool) {
+-	if block {
+-		f.Filt[typ>>5] &^= 1 << (uint32(typ) & 31)
+-	} else {
+-		f.Filt[typ>>5] |= 1 << (uint32(typ) & 31)
+-	}
+-}
+-
+-func (f *rawICMPFilter) setAll(block bool) {
+-	for i := range f.Filt {
+-		if block {
+-			f.Filt[i] = 0
+-		} else {
+-			f.Filt[i] = 1<<32 - 1
+-		}
+-	}
+-}
+-
+-func (f *rawICMPFilter) willBlock(typ ICMPType) bool {
+-	return f.Filt[typ>>5]&(1<<(uint32(typ)&31)) == 0
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,46 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "sync"
+-
+-// An ICMPType represents a type of ICMP message.
+-type ICMPType int
+-
+-func (typ ICMPType) String() string {
+-	s, ok := icmpTypes[typ]
+-	if !ok {
+-		return "<nil>"
+-	}
+-	return s
+-}
+-
+-// An ICMPFilter represents an ICMP message filter for incoming
+-// packets.
+-type ICMPFilter struct {
+-	mu sync.RWMutex
+-	rawICMPFilter
+-}
+-
+-// Set sets the ICMP type and filter action to the filter.
+-func (f *ICMPFilter) Set(typ ICMPType, block bool) {
+-	f.mu.Lock()
+-	defer f.mu.Unlock()
+-	f.set(typ, block)
+-}
+-
+-// SetAll sets the filter action to the filter.
+-func (f *ICMPFilter) SetAll(block bool) {
+-	f.mu.Lock()
+-	defer f.mu.Unlock()
+-	f.setAll(block)
+-}
+-
+-// WillBlock reports whether the ICMP type will be blocked.
+-func (f *ICMPFilter) WillBlock(typ ICMPType) bool {
+-	f.mu.RLock()
+-	defer f.mu.RUnlock()
+-	return f.willBlock(typ)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_linux.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_linux.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_linux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_linux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,33 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "syscall"
+-
+-type rawICMPFilter struct {
+-	syscall.ICMPv6Filter
+-}
+-
+-func (f *rawICMPFilter) set(typ ICMPType, block bool) {
+-	if block {
+-		f.Data[typ>>5] |= 1 << (uint32(typ) & 31)
+-	} else {
+-		f.Data[typ>>5] &^= 1 << (uint32(typ) & 31)
+-	}
+-}
+-
+-func (f *rawICMPFilter) setAll(block bool) {
+-	for i := range f.Data {
+-		if block {
+-			f.Data[i] = 1<<32 - 1
+-		} else {
+-			f.Data[i] = 0
+-		}
+-	}
+-}
+-
+-func (f *rawICMPFilter) willBlock(typ ICMPType) bool {
+-	return f.Data[typ>>5]&(1<<(uint32(typ)&31)) != 0
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,22 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-type rawICMPFilter struct {
+-	// TODO(mikio): Implement this
+-}
+-
+-func (f *rawICMPFilter) set(typ ICMPType, block bool) {
+-	// TODO(mikio): Implement this
+-}
+-
+-func (f *rawICMPFilter) setAll(block bool) {
+-	// TODO(mikio): Implement this
+-}
+-
+-func (f *rawICMPFilter) willBlock(typ ICMPType) bool {
+-	// TODO(mikio): Implement this
+-	return false
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,84 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"net"
+-	"os"
+-	"reflect"
+-	"runtime"
+-	"sync"
+-	"testing"
+-)
+-
+-func TestICMPFilter(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-
+-	var f ipv6.ICMPFilter
+-	for _, toggle := range []bool{false, true} {
+-		f.SetAll(toggle)
+-		var wg sync.WaitGroup
+-		for _, typ := range []ipv6.ICMPType{
+-			ipv6.ICMPTypeDestinationUnreachable,
+-			ipv6.ICMPTypeEchoReply,
+-			ipv6.ICMPTypeNeighborSolicitation,
+-			ipv6.ICMPTypeDuplicateAddressConfirmation,
+-		} {
+-			wg.Add(1)
+-			go func(typ ipv6.ICMPType) {
+-				defer wg.Done()
+-				f.Set(typ, false)
+-				if f.WillBlock(typ) {
+-					t.Errorf("ipv6.ICMPFilter.Set(%v, false) failed", typ)
+-				}
+-				f.Set(typ, true)
+-				if !f.WillBlock(typ) {
+-					t.Errorf("ipv6.ICMPFilter.Set(%v, true) failed", typ)
+-				}
+-			}(typ)
+-		}
+-		wg.Wait()
+-	}
+-}
+-
+-func TestSetICMPFilter(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip6:ipv6-icmp", "::1")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	p := ipv6.NewPacketConn(c)
+-
+-	var f ipv6.ICMPFilter
+-	f.SetAll(true)
+-	f.Set(ipv6.ICMPTypeEchoRequest, false)
+-	f.Set(ipv6.ICMPTypeEchoReply, false)
+-	if err := p.SetICMPFilter(&f); err != nil {
+-		t.Fatalf("ipv6.PacketConn.SetICMPFilter failed: %v", err)
+-	}
+-	kf, err := p.ICMPFilter()
+-	if err != nil {
+-		t.Fatalf("ipv6.PacketConn.ICMPFilter failed: %v", err)
+-	}
+-	if !reflect.DeepEqual(kf, &f) {
+-		t.Fatalf("got unexpected filter %#v; expected %#v", kf, f)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/icmp_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/icmp_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,22 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-type rawICMPFilter struct {
+-	// TODO(mikio): Implement this
+-}
+-
+-func (f *rawICMPFilter) set(typ ICMPType, block bool) {
+-	// TODO(mikio): Implement this
+-}
+-
+-func (f *rawICMPFilter) setAll(block bool) {
+-	// TODO(mikio): Implement this
+-}
+-
+-func (f *rawICMPFilter) willBlock(typ ICMPType) bool {
+-	// TODO(mikio): Implement this
+-	return false
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/mockicmp_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/mockicmp_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/mockicmp_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/mockicmp_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,112 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"errors"
+-)
+-
+-// icmpMessage represents an ICMP message.
+-type icmpMessage struct {
+-	Type     ipv6.ICMPType   // type
+-	Code     int             // code
+-	Checksum int             // checksum
+-	Body     icmpMessageBody // body
+-}
+-
+-// icmpMessageBody represents an ICMP message body.
+-type icmpMessageBody interface {
+-	Len() int
+-	Marshal() ([]byte, error)
+-}
+-
+-// Marshal returns the binary enconding of the ICMP echo request or
+-// reply message m.
+-func (m *icmpMessage) Marshal() ([]byte, error) {
+-	b := []byte{byte(m.Type), byte(m.Code), 0, 0}
+-	if m.Body != nil && m.Body.Len() != 0 {
+-		mb, err := m.Body.Marshal()
+-		if err != nil {
+-			return nil, err
+-		}
+-		b = append(b, mb...)
+-	}
+-	switch m.Type {
+-	case ipv6.ICMPTypeEchoRequest, ipv6.ICMPTypeEchoReply:
+-		return b, nil
+-	}
+-	csumcv := len(b) - 1 // checksum coverage
+-	s := uint32(0)
+-	for i := 0; i < csumcv; i += 2 {
+-		s += uint32(b[i+1])<<8 | uint32(b[i])
+-	}
+-	if csumcv&1 == 0 {
+-		s += uint32(b[csumcv])
+-	}
+-	s = s>>16 + s&0xffff
+-	s = s + s>>16
+-	// Place checksum back in header; using ^= avoids the
+-	// assumption the checksum bytes are zero.
+-	b[2] ^= byte(^s & 0xff)
+-	b[3] ^= byte(^s >> 8)
+-	return b, nil
+-}
+-
+-// parseICMPMessage parses b as an ICMP message.
+-func parseICMPMessage(b []byte) (*icmpMessage, error) {
+-	msglen := len(b)
+-	if msglen < 4 {
+-		return nil, errors.New("message too short")
+-	}
+-	m := &icmpMessage{Type: ipv6.ICMPType(b[0]), Code: int(b[1]), Checksum: int(b[2])<<8 | int(b[3])}
+-	if msglen > 4 {
+-		var err error
+-		switch m.Type {
+-		case ipv6.ICMPTypeEchoRequest, ipv6.ICMPTypeEchoReply:
+-			m.Body, err = parseICMPEcho(b[4:])
+-			if err != nil {
+-				return nil, err
+-			}
+-		}
+-	}
+-	return m, nil
+-}
+-
+-// imcpEcho represenets an ICMP echo request or reply message body.
+-type icmpEcho struct {
+-	ID   int    // identifier
+-	Seq  int    // sequence number
+-	Data []byte // data
+-}
+-
+-func (p *icmpEcho) Len() int {
+-	if p == nil {
+-		return 0
+-	}
+-	return 4 + len(p.Data)
+-}
+-
+-// Marshal returns the binary enconding of the ICMP echo request or
+-// reply message body p.
+-func (p *icmpEcho) Marshal() ([]byte, error) {
+-	b := make([]byte, 4+len(p.Data))
+-	b[0], b[1] = byte(p.ID>>8), byte(p.ID&0xff)
+-	b[2], b[3] = byte(p.Seq>>8), byte(p.Seq&0xff)
+-	copy(b[4:], p.Data)
+-	return b, nil
+-}
+-
+-// parseICMPEcho parses b as an ICMP echo request or reply message
+-// body.
+-func parseICMPEcho(b []byte) (*icmpEcho, error) {
+-	bodylen := len(b)
+-	p := &icmpEcho{ID: int(b[0])<<8 | int(b[1]), Seq: int(b[2])<<8 | int(b[3])}
+-	if bodylen > 4 {
+-		p.Data = make([]byte, bodylen-4)
+-		copy(p.Data, b[4:])
+-	}
+-	return p, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/mocktransponder_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/mocktransponder_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/mocktransponder_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/mocktransponder_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,110 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"net"
+-	"testing"
+-)
+-
+-func isLinkLocalUnicast(ip net.IP) bool {
+-	return ip.To4() == nil && ip.To16() != nil && ip.IsLinkLocalUnicast()
+-}
+-
+-func loopbackInterface() *net.Interface {
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		return nil
+-	}
+-	for _, ifi := range ift {
+-		if ifi.Flags&net.FlagLoopback == 0 || ifi.Flags&net.FlagUp == 0 {
+-			continue
+-		}
+-		ifat, err := ifi.Addrs()
+-		if err != nil {
+-			continue
+-		}
+-		for _, ifa := range ifat {
+-			switch ifa := ifa.(type) {
+-			case *net.IPAddr:
+-				if isLinkLocalUnicast(ifa.IP) {
+-					return &ifi
+-				}
+-			case *net.IPNet:
+-				if isLinkLocalUnicast(ifa.IP) {
+-					return &ifi
+-				}
+-			}
+-		}
+-	}
+-	return nil
+-}
+-
+-func isMulticastAvailable(ifi *net.Interface) (net.IP, bool) {
+-	if ifi == nil || ifi.Flags&net.FlagUp == 0 || ifi.Flags&net.FlagMulticast == 0 {
+-		return nil, false
+-	}
+-	ifat, err := ifi.Addrs()
+-	if err != nil {
+-		return nil, false
+-	}
+-	for _, ifa := range ifat {
+-		switch ifa := ifa.(type) {
+-		case *net.IPAddr:
+-			if isLinkLocalUnicast(ifa.IP) {
+-				return ifa.IP, true
+-			}
+-		case *net.IPNet:
+-			if isLinkLocalUnicast(ifa.IP) {
+-				return ifa.IP, true
+-			}
+-		}
+-	}
+-	return nil, false
+-}
+-
+-func connector(t *testing.T, network, addr string, done chan<- bool) {
+-	defer func() { done <- true }()
+-
+-	c, err := net.Dial(network, addr)
+-	if err != nil {
+-		t.Errorf("net.Dial failed: %v", err)
+-		return
+-	}
+-	c.Close()
+-}
+-
+-func acceptor(t *testing.T, ln net.Listener, done chan<- bool) {
+-	defer func() { done <- true }()
+-
+-	c, err := ln.Accept()
+-	if err != nil {
+-		t.Errorf("net.Listener.Accept failed: %v", err)
+-		return
+-	}
+-	c.Close()
+-}
+-
+-func transponder(t *testing.T, ln net.Listener, done chan<- bool) {
+-	defer func() { done <- true }()
+-
+-	c, err := ln.Accept()
+-	if err != nil {
+-		t.Errorf("net.Listener.Accept failed: %v", err)
+-		return
+-	}
+-	defer c.Close()
+-
+-	b := make([]byte, 128)
+-	n, err := c.Read(b)
+-	if err != nil {
+-		t.Errorf("net.Conn.Read failed: %v", err)
+-		return
+-	}
+-	if _, err := c.Write(b[:n]); err != nil {
+-		t.Errorf("net.Conn.Write failed: %v", err)
+-		return
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/multicastlistener_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/multicastlistener_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/multicastlistener_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/multicastlistener_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,197 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"fmt"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-var udpMultipleGroupListenerTests = []net.Addr{
+-	&net.UDPAddr{IP: net.ParseIP("ff02::114")}, // see RFC 4727
+-	&net.UDPAddr{IP: net.ParseIP("ff02::1:114")},
+-	&net.UDPAddr{IP: net.ParseIP("ff02::2:114")},
+-}
+-
+-func TestUDPSinglePacketConnWithMultipleGroupListeners(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	for _, gaddr := range udpMultipleGroupListenerTests {
+-		c, err := net.ListenPacket("udp6", "[::]:0") // wildcard address with non-reusable port
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c.Close()
+-
+-		p := ipv6.NewPacketConn(c)
+-		var mift []*net.Interface
+-
+-		ift, err := net.Interfaces()
+-		if err != nil {
+-			t.Fatalf("net.Interfaces failed: %v", err)
+-		}
+-		for i, ifi := range ift {
+-			if _, ok := isMulticastAvailable(&ifi); !ok {
+-				continue
+-			}
+-			if err := p.JoinGroup(&ifi, gaddr); err != nil {
+-				t.Fatalf("ipv6.PacketConn.JoinGroup %v on %v failed: %v", gaddr, ifi, err)
+-			}
+-			mift = append(mift, &ift[i])
+-		}
+-		for _, ifi := range mift {
+-			if err := p.LeaveGroup(ifi, gaddr); err != nil {
+-				t.Fatalf("ipv6.PacketConn.LeaveGroup %v on %v failed: %v", gaddr, ifi, err)
+-			}
+-		}
+-	}
+-}
+-
+-func TestUDPMultipleConnWithMultipleGroupListeners(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	for _, gaddr := range udpMultipleGroupListenerTests {
+-		c1, err := net.ListenPacket("udp6", "[ff02::]:1024") // wildcard address with reusable port
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c1.Close()
+-
+-		c2, err := net.ListenPacket("udp6", "[ff02::]:1024") // wildcard address with reusable port
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c2.Close()
+-
+-		var ps [2]*ipv6.PacketConn
+-		ps[0] = ipv6.NewPacketConn(c1)
+-		ps[1] = ipv6.NewPacketConn(c2)
+-		var mift []*net.Interface
+-
+-		ift, err := net.Interfaces()
+-		if err != nil {
+-			t.Fatalf("net.Interfaces failed: %v", err)
+-		}
+-		for i, ifi := range ift {
+-			if _, ok := isMulticastAvailable(&ifi); !ok {
+-				continue
+-			}
+-			for _, p := range ps {
+-				if err := p.JoinGroup(&ifi, gaddr); err != nil {
+-					t.Fatalf("ipv6.PacketConn.JoinGroup %v on %v failed: %v", gaddr, ifi, err)
+-				}
+-			}
+-			mift = append(mift, &ift[i])
+-		}
+-		for _, ifi := range mift {
+-			for _, p := range ps {
+-				if err := p.LeaveGroup(ifi, gaddr); err != nil {
+-					t.Fatalf("ipv6.PacketConn.LeaveGroup %v on %v failed: %v", gaddr, ifi, err)
+-				}
+-			}
+-		}
+-	}
+-}
+-
+-func TestUDPPerInterfaceSinglePacketConnWithSingleGroupListener(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	gaddr := &net.IPAddr{IP: net.ParseIP("ff02::114")} // see RFC 4727
+-	type ml struct {
+-		c   *ipv6.PacketConn
+-		ifi *net.Interface
+-	}
+-	var mlt []*ml
+-
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		t.Fatalf("net.Interfaces failed: %v", err)
+-	}
+-	for i, ifi := range ift {
+-		ip, ok := isMulticastAvailable(&ifi)
+-		if !ok {
+-			continue
+-		}
+-		c, err := net.ListenPacket("udp6", fmt.Sprintf("[%s%%%s]:1024", ip.String(), ifi.Name)) // unicast address with non-reusable port
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket with %v failed: %v", ip, err)
+-		}
+-		defer c.Close()
+-		p := ipv6.NewPacketConn(c)
+-		if err := p.JoinGroup(&ifi, gaddr); err != nil {
+-			t.Fatalf("ipv6.PacketConn.JoinGroup on %v failed: %v", ifi, err)
+-		}
+-		mlt = append(mlt, &ml{p, &ift[i]})
+-	}
+-	for _, m := range mlt {
+-		if err := m.c.LeaveGroup(m.ifi, gaddr); err != nil {
+-			t.Fatalf("ipv6.PacketConn.LeaveGroup on %v failed: %v", m.ifi, err)
+-		}
+-	}
+-}
+-
+-func TestIPSinglePacketConnWithSingleGroupListener(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip6:ipv6-icmp", "::")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	p := ipv6.NewPacketConn(c)
+-	gaddr := &net.IPAddr{IP: net.ParseIP("ff02::114")} // see RFC 4727
+-	var mift []*net.Interface
+-
+-	ift, err := net.Interfaces()
+-	if err != nil {
+-		t.Fatalf("net.Interfaces failed: %v", err)
+-	}
+-	for i, ifi := range ift {
+-		if _, ok := isMulticastAvailable(&ifi); !ok {
+-			continue
+-		}
+-		if err := p.JoinGroup(&ifi, gaddr); err != nil {
+-			t.Fatalf("ipv6.PacketConn.JoinGroup on %v failed: %v", ifi, err)
+-		}
+-		mift = append(mift, &ift[i])
+-	}
+-	for _, ifi := range mift {
+-		if err := p.LeaveGroup(ifi, gaddr); err != nil {
+-			t.Fatalf("ipv6.PacketConn.LeaveGroup on %v failed: %v", ifi, err)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/multicastsockopt_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/multicastsockopt_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/multicastsockopt_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/multicastsockopt_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,76 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-var packetConnMulticastSocketOptionTests = []struct {
+-	net, proto, addr string
+-	gaddr            net.Addr
+-}{
+-	{"udp6", "", "[ff02::]:0", &net.UDPAddr{IP: net.ParseIP("ff02::114")}}, // see RFC 4727
+-	{"ip6", ":ipv6-icmp", "::", &net.IPAddr{IP: net.ParseIP("ff02::114")}}, // see RFC 4727
+-}
+-
+-func TestPacketConnMulticastSocketOptions(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-	ifi := loopbackInterface()
+-	if ifi == nil {
+-		t.Skipf("not available on %q", runtime.GOOS)
+-	}
+-
+-	for _, tt := range packetConnMulticastSocketOptionTests {
+-		if tt.net == "ip6" && os.Getuid() != 0 {
+-			t.Skip("must be root")
+-		}
+-		c, err := net.ListenPacket(tt.net+tt.proto, tt.addr)
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket failed: %v", err)
+-		}
+-		defer c.Close()
+-
+-		p := ipv6.NewPacketConn(c)
+-
+-		hoplim := 255
+-		if err := p.SetMulticastHopLimit(hoplim); err != nil {
+-			t.Fatalf("ipv6.PacketConn.SetMulticastHopLimit failed: %v", err)
+-		}
+-		if v, err := p.MulticastHopLimit(); err != nil {
+-			t.Fatalf("ipv6.PacketConn.MulticastHopLimit failed: %v", err)
+-		} else if v != hoplim {
+-			t.Fatalf("got unexpected multicast hop limit %v; expected %v", v, hoplim)
+-		}
+-
+-		for _, toggle := range []bool{true, false} {
+-			if err := p.SetMulticastLoopback(toggle); err != nil {
+-				t.Fatalf("ipv6.PacketConn.SetMulticastLoopback failed: %v", err)
+-			}
+-			if v, err := p.MulticastLoopback(); err != nil {
+-				t.Fatalf("ipv6.PacketConn.MulticastLoopback failed: %v", err)
+-			} else if v != toggle {
+-				t.Fatalf("got unexpected multicast loopback %v; expected %v", v, toggle)
+-			}
+-		}
+-
+-		if err := p.JoinGroup(ifi, tt.gaddr); err != nil {
+-			t.Fatalf("ipv6.PacketConn.JoinGroup(%v, %v) failed: %v", ifi, tt.gaddr, err)
+-		}
+-		if err := p.LeaveGroup(ifi, tt.gaddr); err != nil {
+-			t.Fatalf("ipv6.PacketConn.LeaveGroup(%v, %v) failed: %v", ifi, tt.gaddr, err)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/multicast_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/multicast_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/multicast_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/multicast_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,161 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-func TestPacketConnReadWriteMulticastUDP(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "freebsd": // due to a bug on loopback marking
+-		// See http://www.freebsd.org/cgi/query-pr.cgi?pr=180065.
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-	ifi := loopbackInterface()
+-	if ifi == nil {
+-		t.Skipf("not available on %q", runtime.GOOS)
+-	}
+-
+-	c, err := net.ListenPacket("udp6", "[ff02::114]:0") // see RFC 4727
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	_, port, err := net.SplitHostPort(c.LocalAddr().String())
+-	if err != nil {
+-		t.Fatalf("net.SplitHostPort failed: %v", err)
+-	}
+-	dst, err := net.ResolveUDPAddr("udp6", "[ff02::114]:"+port) // see RFC 4727
+-	if err != nil {
+-		t.Fatalf("net.ResolveUDPAddr failed: %v", err)
+-	}
+-
+-	p := ipv6.NewPacketConn(c)
+-	if err := p.JoinGroup(ifi, dst); err != nil {
+-		t.Fatalf("ipv6.PacketConn.JoinGroup on %v failed: %v", ifi, err)
+-	}
+-	if err := p.SetMulticastInterface(ifi); err != nil {
+-		t.Fatalf("ipv6.PacketConn.SetMulticastInterface failed: %v", err)
+-	}
+-	if err := p.SetMulticastLoopback(true); err != nil {
+-		t.Fatalf("ipv6.PacketConn.SetMulticastLoopback failed: %v", err)
+-	}
+-
+-	cm := ipv6.ControlMessage{
+-		TrafficClass: DiffServAF11 | CongestionExperienced,
+-		IfIndex:      ifi.Index,
+-	}
+-	cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagInterface | ipv6.FlagPathMTU
+-
+-	for i, toggle := range []bool{true, false, true} {
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv6.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		cm.HopLimit = i + 1
+-		if _, err := p.WriteTo([]byte("HELLO-R-U-THERE"), &cm, dst); err != nil {
+-			t.Fatalf("ipv6.PacketConn.WriteTo failed: %v", err)
+-		}
+-		b := make([]byte, 128)
+-		if _, cm, _, err := p.ReadFrom(b); err != nil {
+-			t.Fatalf("ipv6.PacketConn.ReadFrom failed: %v", err)
+-		} else {
+-			t.Logf("rcvd cmsg: %v", cm)
+-		}
+-	}
+-}
+-
+-func TestPacketConnReadWriteMulticastICMP(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-	ifi := loopbackInterface()
+-	if ifi == nil {
+-		t.Skipf("not available on %q", runtime.GOOS)
+-	}
+-
+-	c, err := net.ListenPacket("ip6:ipv6-icmp", "::")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	dst, err := net.ResolveIPAddr("ip6", "ff02::114") // see RFC 4727
+-	if err != nil {
+-		t.Fatalf("net.ResolveIPAddr failed: %v", err)
+-	}
+-
+-	p := ipv6.NewPacketConn(c)
+-	if err := p.JoinGroup(ifi, dst); err != nil {
+-		t.Fatalf("ipv6.PacketConn.JoinGroup on %v failed: %v", ifi, err)
+-	}
+-	if err := p.SetMulticastInterface(ifi); err != nil {
+-		t.Fatalf("ipv6.PacketConn.SetMulticastInterface failed: %v", err)
+-	}
+-	if err := p.SetMulticastLoopback(true); err != nil {
+-		t.Fatalf("ipv6.PacketConn.SetMulticastLoopback failed: %v", err)
+-	}
+-
+-	cm := ipv6.ControlMessage{
+-		TrafficClass: DiffServAF11 | CongestionExperienced,
+-		IfIndex:      ifi.Index,
+-	}
+-	cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagInterface | ipv6.FlagPathMTU
+-
+-	var f ipv6.ICMPFilter
+-	f.SetAll(true)
+-	f.Set(ipv6.ICMPTypeEchoReply, false)
+-	if err := p.SetICMPFilter(&f); err != nil {
+-		t.Fatalf("ipv6.PacketConn.SetICMPFilter failed: %v", err)
+-	}
+-
+-	for i, toggle := range []bool{true, false, true} {
+-		wb, err := (&icmpMessage{
+-			Type: ipv6.ICMPTypeEchoRequest, Code: 0,
+-			Body: &icmpEcho{
+-				ID: os.Getpid() & 0xffff, Seq: i + 1,
+-				Data: []byte("HELLO-R-U-THERE"),
+-			},
+-		}).Marshal()
+-		if err != nil {
+-			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+-		}
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv6.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		cm.HopLimit = i + 1
+-		if _, err := p.WriteTo(wb, &cm, dst); err != nil {
+-			t.Fatalf("ipv6.PacketConn.WriteTo failed: %v", err)
+-		}
+-		b := make([]byte, 128)
+-		if n, cm, _, err := p.ReadFrom(b); err != nil {
+-			t.Fatalf("ipv6.PacketConn.ReadFrom failed: %v", err)
+-		} else {
+-			t.Logf("rcvd cmsg: %v", cm)
+-			if m, err := parseICMPMessage(b[:n]); err != nil {
+-				t.Fatalf("parseICMPMessage failed: %v", err)
+-			} else if m.Type != ipv6.ICMPTypeEchoReply || m.Code != 0 {
+-				t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, ipv6.ICMPTypeEchoReply, 0)
+-			}
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/payload_cmsg.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/payload_cmsg.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/payload_cmsg.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/payload_cmsg.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,70 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build !plan9,!windows
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-// ReadFrom reads a payload of the received IPv6 datagram, from the
+-// endpoint c, copying the payload into b.  It returns the number of
+-// bytes copied into b, the control message cm and the source address
+-// src of the received datagram.
+-func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
+-	if !c.ok() {
+-		return 0, nil, nil, syscall.EINVAL
+-	}
+-	oob := newControlMessage(&c.rawOpt)
+-	var oobn int
+-	switch c := c.PacketConn.(type) {
+-	case *net.UDPConn:
+-		if n, oobn, _, src, err = c.ReadMsgUDP(b, oob); err != nil {
+-			return 0, nil, nil, err
+-		}
+-	case *net.IPConn:
+-		if n, oobn, _, src, err = c.ReadMsgIP(b, oob); err != nil {
+-			return 0, nil, nil, err
+-		}
+-	default:
+-		return 0, nil, nil, errInvalidConnType
+-	}
+-	if cm, err = parseControlMessage(oob[:oobn]); err != nil {
+-		return 0, nil, nil, err
+-	}
+-	if cm != nil {
+-		cm.Src = netAddrToIP16(src)
+-	}
+-	return
+-}
+-
+-// WriteTo writes a payload of the IPv6 datagram, to the destination
+-// address dst through the endpoint c, copying the payload from b.  It
+-// returns the number of bytes written.  The control message cm allows
+-// the IPv6 header fields and the datagram path to be specified.  The
+-// cm may be nil if control of the outgoing datagram is not required.
+-func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	oob := marshalControlMessage(cm)
+-	if dst == nil {
+-		return 0, errMissingAddress
+-	}
+-	switch c := c.PacketConn.(type) {
+-	case *net.UDPConn:
+-		n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr))
+-	case *net.IPConn:
+-		n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr))
+-	default:
+-		return 0, errInvalidConnType
+-	}
+-	if err != nil {
+-		return 0, err
+-	}
+-	return
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/payload.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/payload.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/payload.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/payload.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,15 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "net"
+-
+-// A payloadHandler represents the IPv6 datagram payload handler.
+-type payloadHandler struct {
+-	net.PacketConn
+-	rawOpt
+-}
+-
+-func (c *payloadHandler) ok() bool { return c != nil && c.PacketConn != nil }
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/payload_noncmsg.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/payload_noncmsg.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/payload_noncmsg.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/payload_noncmsg.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,41 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build plan9 windows
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"syscall"
+-)
+-
+-// ReadFrom reads a payload of the received IPv6 datagram, from the
+-// endpoint c, copying the payload into b.  It returns the number of
+-// bytes copied into b, the control message cm and the source address
+-// src of the received datagram.
+-func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
+-	if !c.ok() {
+-		return 0, nil, nil, syscall.EINVAL
+-	}
+-	if n, src, err = c.PacketConn.ReadFrom(b); err != nil {
+-		return 0, nil, nil, err
+-	}
+-	return
+-}
+-
+-// WriteTo writes a payload of the IPv6 datagram, to the destination
+-// address dst through the endpoint c, copying the payload from b.  It
+-// returns the number of bytes written.  The control message cm allows
+-// the IPv6 header fields and the datagram path to be specified.  The
+-// cm may be nil if control of the outgoing datagram is not required.
+-func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
+-	if !c.ok() {
+-		return 0, syscall.EINVAL
+-	}
+-	if dst == nil {
+-		return 0, errMissingAddress
+-	}
+-	return c.PacketConn.WriteTo(b, dst)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc2292_darwin.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc2292_darwin.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc2292_darwin.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc2292_darwin.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,66 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv6ReceiveTrafficClass(fd int) (bool, error) {
+-	return false, errNotSupported
+-}
+-
+-func setIPv6ReceiveTrafficClass(fd int, v bool) error {
+-	return errNotSupported
+-}
+-
+-func ipv6ReceiveHopLimit(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_2292HOPLIMIT)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6ReceiveHopLimit(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_2292HOPLIMIT, boolint(v)))
+-}
+-
+-func ipv6ReceivePacketInfo(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_2292PKTINFO)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6ReceivePacketInfo(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_2292PKTINFO, boolint(v)))
+-}
+-
+-func ipv6PathMTU(fd int) (int, error) {
+-	return 0, errNotSupported
+-}
+-
+-func ipv6ReceivePathMTU(fd int) (bool, error) {
+-	return false, errNotSupported
+-}
+-
+-func setIPv6ReceivePathMTU(fd int, v bool) error {
+-	return errNotSupported
+-}
+-
+-func ipv6ICMPFilter(fd int) (*ICMPFilter, error) {
+-	v, err := syscall.GetsockoptICMPv6Filter(fd, ianaProtocolIPv6ICMP, syscall.ICMP6_FILTER)
+-	if err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	return &ICMPFilter{rawICMPFilter: rawICMPFilter{*v}}, nil
+-}
+-
+-func setIPv6ICMPFilter(fd int, f *ICMPFilter) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptICMPv6Filter(fd, ianaProtocolIPv6ICMP, syscall.ICMP6_FILTER, &f.rawICMPFilter.ICMPv6Filter))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_bsd.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_bsd.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_bsd.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_bsd.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,19 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd netbsd openbsd
+-
+-package ipv6
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func setIPv6Checksum(fd int, on bool, offset int) error {
+-	if !on {
+-		offset = -1
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_CHECKSUM, offset))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_linux.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_linux.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_linux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_linux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,17 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func setIPv6Checksum(fd int, on bool, offset int) error {
+-	if !on {
+-		offset = -1
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolReserved, syscall.IPV6_CHECKSUM, offset))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_unix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_unix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_unix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_unix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,114 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd linux netbsd openbsd
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv6TrafficClass(fd int) (int, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_TCLASS)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v, nil
+-}
+-
+-func setIPv6TrafficClass(fd, v int) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_TCLASS, v))
+-}
+-
+-func ipv6HopLimit(fd int) (int, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_UNICAST_HOPS)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v, nil
+-}
+-
+-func setIPv6HopLimit(fd, v int) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_UNICAST_HOPS, v))
+-}
+-
+-func ipv6Checksum(fd int) (bool, int, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_CHECKSUM)
+-	if err != nil {
+-		return false, 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	on := true
+-	if v == -1 {
+-		on = false
+-	}
+-	return on, v, nil
+-}
+-
+-func ipv6MulticastHopLimit(fd int) (int, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_HOPS)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v, nil
+-}
+-
+-func setIPv6MulticastHopLimit(fd, v int) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_HOPS, v))
+-}
+-
+-func ipv6MulticastInterface(fd int) (*net.Interface, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_IF)
+-	if err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	if v == 0 {
+-		return nil, nil
+-	}
+-	ifi, err := net.InterfaceByIndex(v)
+-	if err != nil {
+-		return nil, err
+-	}
+-	return ifi, nil
+-}
+-
+-func setIPv6MulticastInterface(fd int, ifi *net.Interface) error {
+-	var v int
+-	if ifi != nil {
+-		v = ifi.Index
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_IF, v))
+-}
+-
+-func ipv6MulticastLoopback(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_LOOP)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6MulticastLoopback(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_LOOP, boolint(v)))
+-}
+-
+-func joinIPv6Group(fd int, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPv6Mreq{}
+-	copy(mreq.Multiaddr[:], grp)
+-	if ifi != nil {
+-		mreq.Interface = uint32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptIPv6Mreq(fd, ianaProtocolIPv6, syscall.IPV6_JOIN_GROUP, &mreq))
+-}
+-
+-func leaveIPv6Group(fd int, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPv6Mreq{}
+-	copy(mreq.Multiaddr[:], grp)
+-	if ifi != nil {
+-		mreq.Interface = uint32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptIPv6Mreq(fd, ianaProtocolIPv6, syscall.IPV6_LEAVE_GROUP, &mreq))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3493_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,116 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"net"
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-func ipv6TrafficClass(fd syscall.Handle) (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EWINDOWS
+-}
+-
+-func setIPv6TrafficClass(fd syscall.Handle, v int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv6HopLimit(fd syscall.Handle) (int, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIPv6, syscall.IPV6_UNICAST_HOPS, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v), nil
+-}
+-
+-func setIPv6HopLimit(fd syscall.Handle, v int) error {
+-	vv := int32(v)
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIPv6, syscall.IPV6_UNICAST_HOPS, (*byte)(unsafe.Pointer(&vv)), 4))
+-}
+-
+-func ipv6Checksum(fd syscall.Handle) (bool, int, error) {
+-	// TODO(mikio): Implement this
+-	return false, 0, syscall.EWINDOWS
+-}
+-
+-func ipv6MulticastHopLimit(fd syscall.Handle) (int, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_HOPS, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v), nil
+-}
+-
+-func setIPv6MulticastHopLimit(fd syscall.Handle, v int) error {
+-	vv := int32(v)
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_HOPS, (*byte)(unsafe.Pointer(&vv)), 4))
+-}
+-
+-func ipv6MulticastInterface(fd syscall.Handle) (*net.Interface, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_IF, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	if v == 0 {
+-		return nil, nil
+-	}
+-	ifi, err := net.InterfaceByIndex(int(v))
+-	if err != nil {
+-		return nil, err
+-	}
+-	return ifi, nil
+-}
+-
+-func setIPv6MulticastInterface(fd syscall.Handle, ifi *net.Interface) error {
+-	var v int32
+-	if ifi != nil {
+-		v = int32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_IF, (*byte)(unsafe.Pointer(&v)), 4))
+-}
+-
+-func ipv6MulticastLoopback(fd syscall.Handle) (bool, error) {
+-	var v int32
+-	l := int32(4)
+-	if err := syscall.Getsockopt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_LOOP, (*byte)(unsafe.Pointer(&v)), &l); err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6MulticastLoopback(fd syscall.Handle, v bool) error {
+-	vv := int32(boolint(v))
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIPv6, syscall.IPV6_MULTICAST_LOOP, (*byte)(unsafe.Pointer(&vv)), 4))
+-}
+-
+-func joinIPv6Group(fd syscall.Handle, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPv6Mreq{}
+-	copy(mreq.Multiaddr[:], grp)
+-	if ifi != nil {
+-		mreq.Interface = uint32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIPv6, syscall.IPV6_JOIN_GROUP, (*byte)(unsafe.Pointer(&mreq)), int32(unsafe.Sizeof(mreq))))
+-}
+-
+-func leaveIPv6Group(fd syscall.Handle, ifi *net.Interface, grp net.IP) error {
+-	mreq := syscall.IPv6Mreq{}
+-	copy(mreq.Multiaddr[:], grp)
+-	if ifi != nil {
+-		mreq.Interface = uint32(ifi.Index)
+-	}
+-	return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, ianaProtocolIPv6, syscall.IPV6_LEAVE_GROUP, (*byte)(unsafe.Pointer(&mreq)), int32(unsafe.Sizeof(mreq))))
+-}
+-
+-func setIPv6Checksum(fd syscall.Handle, on bool, offset int) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_bsd.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_bsd.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_bsd.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_bsd.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,44 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build freebsd netbsd openbsd
+-
+-package ipv6
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv6PathMTU(fd int) (int, error) {
+-	v, err := syscall.GetsockoptIPv6MTUInfo(fd, ianaProtocolIPv6, syscall.IPV6_PATHMTU)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v.Mtu), nil
+-}
+-
+-func ipv6ReceivePathMTU(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVPATHMTU)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6ReceivePathMTU(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVPATHMTU, boolint(v)))
+-}
+-
+-func ipv6ICMPFilter(fd int) (*ICMPFilter, error) {
+-	v, err := syscall.GetsockoptICMPv6Filter(fd, ianaProtocolIPv6ICMP, syscall.ICMP6_FILTER)
+-	if err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	return &ICMPFilter{rawICMPFilter: rawICMPFilter{*v}}, nil
+-}
+-
+-func setIPv6ICMPFilter(fd int, f *ICMPFilter) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptICMPv6Filter(fd, ianaProtocolIPv6ICMP, syscall.ICMP6_FILTER, &f.rawICMPFilter.ICMPv6Filter))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_linux.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_linux.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_linux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_linux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,42 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv6PathMTU(fd int) (int, error) {
+-	v, err := syscall.GetsockoptIPv6MTUInfo(fd, ianaProtocolIPv6, syscall_IPV6_PATHMTU)
+-	if err != nil {
+-		return 0, os.NewSyscallError("getsockopt", err)
+-	}
+-	return int(v.Mtu), nil
+-}
+-
+-func ipv6ReceivePathMTU(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall_IPV6_RECVPATHMTU)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6ReceivePathMTU(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall_IPV6_RECVPATHMTU, boolint(v)))
+-}
+-
+-func ipv6ICMPFilter(fd int) (*ICMPFilter, error) {
+-	v, err := syscall.GetsockoptICMPv6Filter(fd, ianaProtocolIPv6ICMP, syscall.ICMPV6_FILTER)
+-	if err != nil {
+-		return nil, os.NewSyscallError("getsockopt", err)
+-	}
+-	return &ICMPFilter{rawICMPFilter: rawICMPFilter{*v}}, nil
+-}
+-
+-func setIPv6ICMPFilter(fd int, f *ICMPFilter) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptICMPv6Filter(fd, ianaProtocolIPv6ICMP, syscall.ICMPV6_FILTER, &f.rawICMPFilter.ICMPv6Filter))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_plan9.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_plan9.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_plan9.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_plan9.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,12 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "syscall"
+-
+-func ipv6PathMTU(fd int) (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EPLAN9
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_unix.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_unix.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_unix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_unix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,48 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build freebsd linux netbsd openbsd
+-
+-package ipv6
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func ipv6ReceiveTrafficClass(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVTCLASS)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6ReceiveTrafficClass(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVTCLASS, boolint(v)))
+-}
+-
+-func ipv6ReceiveHopLimit(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVHOPLIMIT)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6ReceiveHopLimit(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVHOPLIMIT, boolint(v)))
+-}
+-
+-func ipv6ReceivePacketInfo(fd int) (bool, error) {
+-	v, err := syscall.GetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVPKTINFO)
+-	if err != nil {
+-		return false, os.NewSyscallError("getsockopt", err)
+-	}
+-	return v == 1, nil
+-}
+-
+-func setIPv6ReceivePacketInfo(fd int, v bool) error {
+-	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, ianaProtocolIPv6, syscall.IPV6_RECVPKTINFO, boolint(v)))
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_windows.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_windows.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_windows.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_rfc3542_windows.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,62 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6
+-
+-import "syscall"
+-
+-func ipv6ReceiveTrafficClass(fd syscall.Handle) (bool, error) {
+-	// TODO(mikio): Implement this
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv6ReceiveTrafficClass(fd syscall.Handle, v bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv6ReceiveHopLimit(fd syscall.Handle) (bool, error) {
+-	// TODO(mikio): Implement this
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv6ReceiveHopLimit(fd syscall.Handle, v bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv6ReceivePacketInfo(fd syscall.Handle) (bool, error) {
+-	// TODO(mikio): Implement this
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv6ReceivePacketInfo(fd syscall.Handle, v bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv6PathMTU(fd syscall.Handle) (int, error) {
+-	// TODO(mikio): Implement this
+-	return 0, syscall.EWINDOWS
+-}
+-
+-func ipv6ReceivePathMTU(fd syscall.Handle) (bool, error) {
+-	// TODO(mikio): Implement this
+-	return false, syscall.EWINDOWS
+-}
+-
+-func setIPv6ReceivePathMTU(fd syscall.Handle, v bool) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+-
+-func ipv6ICMPFilter(fd syscall.Handle) (*ICMPFilter, error) {
+-	// TODO(mikio): Implement this
+-	return nil, syscall.EWINDOWS
+-}
+-
+-func setIPv6ICMPFilter(fd syscall.Handle, f *ICMPFilter) error {
+-	// TODO(mikio): Implement this
+-	return syscall.EWINDOWS
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/sockopt_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/sockopt_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,136 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-var supportsIPv6 bool
+-
+-func init() {
+-	if ln, err := net.Listen("tcp6", "[::1]:0"); err == nil {
+-		ln.Close()
+-		supportsIPv6 = true
+-	}
+-}
+-
+-var condFatalf = func() func(*testing.T, string, ...interface{}) {
+-	// A few APIs are not implemented yet on some platforms.
+-	switch runtime.GOOS {
+-	case "darwin", "plan9", "windows":
+-		return (*testing.T).Logf
+-	}
+-	return (*testing.T).Fatalf
+-}()
+-
+-func TestConnInitiatorPathMTU(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	ln, err := net.Listen("tcp6", "[::1]:0")
+-	if err != nil {
+-		t.Fatalf("net.Listen failed: %v", err)
+-	}
+-	defer ln.Close()
+-
+-	done := make(chan bool)
+-	go acceptor(t, ln, done)
+-
+-	c, err := net.Dial("tcp6", ln.Addr().String())
+-	if err != nil {
+-		t.Fatalf("net.Dial failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	if pmtu, err := ipv6.NewConn(c).PathMTU(); err != nil {
+-		condFatalf(t, "ipv6.Conn.PathMTU failed: %v", err)
+-	} else {
+-		t.Logf("path mtu for %v: %v", c.RemoteAddr(), pmtu)
+-	}
+-
+-	<-done
+-}
+-
+-func TestConnResponderPathMTU(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	ln, err := net.Listen("tcp6", "[::1]:0")
+-	if err != nil {
+-		t.Fatalf("net.Listen failed: %v", err)
+-	}
+-	defer ln.Close()
+-
+-	done := make(chan bool)
+-	go connector(t, "tcp6", ln.Addr().String(), done)
+-
+-	c, err := ln.Accept()
+-	if err != nil {
+-		t.Fatalf("net.Accept failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	if pmtu, err := ipv6.NewConn(c).PathMTU(); err != nil {
+-		condFatalf(t, "ipv6.Conn.PathMTU failed: %v", err)
+-	} else {
+-		t.Logf("path mtu for %v: %v", c.RemoteAddr(), pmtu)
+-	}
+-
+-	<-done
+-}
+-
+-func TestPacketConnChecksum(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip6:89", "::") // OSPF for IPv6
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	p := ipv6.NewPacketConn(c)
+-	offset := 12 // see RFC 5340
+-
+-	for _, toggle := range []bool{false, true} {
+-		if err := p.SetChecksum(toggle, offset); err != nil {
+-			if toggle {
+-				t.Fatalf("ipv6.PacketConn.SetChecksum(%v, %v) failed: %v", toggle, offset, err)
+-			} else {
+-				// Some platforms never allow to disable the kernel
+-				// checksum processing.
+-				t.Logf("ipv6.PacketConn.SetChecksum(%v, %v) failed: %v", toggle, offset, err)
+-			}
+-		}
+-		if on, offset, err := p.Checksum(); err != nil {
+-			t.Fatalf("ipv6.PacketConn.Checksum failed: %v", err)
+-		} else {
+-			t.Logf("kernel checksum processing enabled=%v, offset=%v", on, offset)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/unicastsockopt_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/unicastsockopt_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/unicastsockopt_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/unicastsockopt_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,101 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-func TestConnUnicastSocketOptions(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	ln, err := net.Listen("tcp6", "[::1]:0")
+-	if err != nil {
+-		t.Fatalf("net.Listen failed: %v", err)
+-	}
+-	defer ln.Close()
+-
+-	done := make(chan bool)
+-	go acceptor(t, ln, done)
+-
+-	c, err := net.Dial("tcp6", ln.Addr().String())
+-	if err != nil {
+-		t.Fatalf("net.Dial failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	testUnicastSocketOptions(t, ipv6.NewConn(c))
+-
+-	<-done
+-}
+-
+-var packetConnUnicastSocketOptionTests = []struct {
+-	net, proto, addr string
+-}{
+-	{"udp6", "", "[::1]:0"},
+-	{"ip6", ":ipv6-icmp", "::1"},
+-}
+-
+-func TestPacketConnUnicastSocketOptions(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	for _, tt := range packetConnUnicastSocketOptionTests {
+-		if tt.net == "ip6" && os.Getuid() != 0 {
+-			t.Skip("must be root")
+-		}
+-		c, err := net.ListenPacket(tt.net+tt.proto, tt.addr)
+-		if err != nil {
+-			t.Fatalf("net.ListenPacket(%q, %q) failed: %v", tt.net+tt.proto, tt.addr, err)
+-		}
+-		defer c.Close()
+-
+-		testUnicastSocketOptions(t, ipv6.NewPacketConn(c))
+-	}
+-}
+-
+-type testIPv6UnicastConn interface {
+-	TrafficClass() (int, error)
+-	SetTrafficClass(int) error
+-	HopLimit() (int, error)
+-	SetHopLimit(int) error
+-}
+-
+-func testUnicastSocketOptions(t *testing.T, c testIPv6UnicastConn) {
+-	tclass := DiffServCS0 | NotECNTransport
+-	if err := c.SetTrafficClass(tclass); err != nil {
+-		t.Fatalf("ipv6.Conn.SetTrafficClass failed: %v", err)
+-	}
+-	if v, err := c.TrafficClass(); err != nil {
+-		t.Fatalf("ipv6.Conn.TrafficClass failed: %v", err)
+-	} else if v != tclass {
+-		t.Fatalf("got unexpected traffic class %v; expected %v", v, tclass)
+-	}
+-
+-	hoplim := 255
+-	if err := c.SetHopLimit(hoplim); err != nil {
+-		t.Fatalf("ipv6.Conn.SetHopLimit failed: %v", err)
+-	}
+-	if v, err := c.HopLimit(); err != nil {
+-		t.Fatalf("ipv6.Conn.HopLimit failed: %v", err)
+-	} else if v != hoplim {
+-		t.Fatalf("got unexpected hop limit %v; expected %v", v, hoplim)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/unicast_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/unicast_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/ipv6/unicast_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/ipv6/unicast_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,203 +0,0 @@
+-// Copyright 2013 The Go Authors.  All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package ipv6_test
+-
+-import (
+-	"code.google.com/p/go.net/ipv6"
+-	"net"
+-	"os"
+-	"runtime"
+-	"testing"
+-)
+-
+-func benchmarkUDPListener() (net.PacketConn, net.Addr, error) {
+-	c, err := net.ListenPacket("udp6", "[::1]:0")
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-	dst, err := net.ResolveUDPAddr("udp6", c.LocalAddr().String())
+-	if err != nil {
+-		c.Close()
+-		return nil, nil, err
+-	}
+-	return c, dst, nil
+-}
+-
+-func BenchmarkReadWriteNetUDP(b *testing.B) {
+-	c, dst, err := benchmarkUDPListener()
+-	if err != nil {
+-		b.Fatalf("benchmarkUDPListener failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128)
+-	b.ResetTimer()
+-	for i := 0; i < b.N; i++ {
+-		benchmarkReadWriteNetUDP(b, c, wb, rb, dst)
+-	}
+-}
+-
+-func benchmarkReadWriteNetUDP(b *testing.B, c net.PacketConn, wb, rb []byte, dst net.Addr) {
+-	if _, err := c.WriteTo(wb, dst); err != nil {
+-		b.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+-	}
+-	if _, _, err := c.ReadFrom(rb); err != nil {
+-		b.Fatalf("net.PacketConn.ReadFrom failed: %v", err)
+-	}
+-}
+-
+-func BenchmarkReadWriteIPv6UDP(b *testing.B) {
+-	c, dst, err := benchmarkUDPListener()
+-	if err != nil {
+-		b.Fatalf("benchmarkUDPListener failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	p := ipv6.NewPacketConn(c)
+-	cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagInterface | ipv6.FlagPathMTU
+-	if err := p.SetControlMessage(cf, true); err != nil {
+-		b.Fatalf("ipv6.PacketConn.SetControlMessage failed: %v", err)
+-	}
+-	ifi := loopbackInterface()
+-
+-	wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128)
+-	b.ResetTimer()
+-	for i := 0; i < b.N; i++ {
+-		benchmarkReadWriteIPv6UDP(b, p, wb, rb, dst, ifi)
+-	}
+-}
+-
+-func benchmarkReadWriteIPv6UDP(b *testing.B, p *ipv6.PacketConn, wb, rb []byte, dst net.Addr, ifi *net.Interface) {
+-	cm := ipv6.ControlMessage{
+-		TrafficClass: DiffServAF11 | CongestionExperienced,
+-		HopLimit:     1,
+-	}
+-	if ifi != nil {
+-		cm.IfIndex = ifi.Index
+-	}
+-	if _, err := p.WriteTo(wb, &cm, dst); err != nil {
+-		b.Fatalf("ipv6.PacketConn.WriteTo failed: %v", err)
+-	}
+-	if _, _, _, err := p.ReadFrom(rb); err != nil {
+-		b.Fatalf("ipv6.PacketConn.ReadFrom failed: %v", err)
+-	}
+-}
+-
+-func TestPacketConnReadWriteUnicastUDP(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-
+-	c, err := net.ListenPacket("udp6", "[::1]:0")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	dst, err := net.ResolveUDPAddr("udp6", c.LocalAddr().String())
+-	if err != nil {
+-		t.Fatalf("net.ResolveUDPAddr failed: %v", err)
+-	}
+-
+-	p := ipv6.NewPacketConn(c)
+-	cm := ipv6.ControlMessage{
+-		TrafficClass: DiffServAF11 | CongestionExperienced,
+-	}
+-	cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagInterface | ipv6.FlagPathMTU
+-	ifi := loopbackInterface()
+-	if ifi != nil {
+-		cm.IfIndex = ifi.Index
+-	}
+-
+-	for i, toggle := range []bool{true, false, true} {
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv6.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		cm.HopLimit = i + 1
+-		if _, err := p.WriteTo([]byte("HELLO-R-U-THERE"), &cm, dst); err != nil {
+-			t.Fatalf("ipv6.PacketConn.WriteTo failed: %v", err)
+-		}
+-		b := make([]byte, 128)
+-		if _, cm, _, err := p.ReadFrom(b); err != nil {
+-			t.Fatalf("ipv6.PacketConn.ReadFrom failed: %v", err)
+-		} else {
+-			t.Logf("rcvd cmsg: %v", cm)
+-		}
+-	}
+-}
+-
+-func TestPacketConnReadWriteUnicastICMP(t *testing.T) {
+-	switch runtime.GOOS {
+-	case "plan9", "windows":
+-		t.Skipf("not supported on %q", runtime.GOOS)
+-	}
+-	if !supportsIPv6 {
+-		t.Skip("ipv6 is not supported")
+-	}
+-	if os.Getuid() != 0 {
+-		t.Skip("must be root")
+-	}
+-
+-	c, err := net.ListenPacket("ip6:ipv6-icmp", "::1")
+-	if err != nil {
+-		t.Fatalf("net.ListenPacket failed: %v", err)
+-	}
+-	defer c.Close()
+-
+-	dst, err := net.ResolveIPAddr("ip6", "::1")
+-	if err != nil {
+-		t.Fatalf("net.ResolveIPAddr failed: %v", err)
+-	}
+-
+-	p := ipv6.NewPacketConn(c)
+-	cm := ipv6.ControlMessage{TrafficClass: DiffServAF11 | CongestionExperienced}
+-	cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagInterface | ipv6.FlagPathMTU
+-	ifi := loopbackInterface()
+-	if ifi != nil {
+-		cm.IfIndex = ifi.Index
+-	}
+-
+-	var f ipv6.ICMPFilter
+-	f.SetAll(true)
+-	f.Set(ipv6.ICMPTypeEchoReply, false)
+-	if err := p.SetICMPFilter(&f); err != nil {
+-		t.Fatalf("ipv6.PacketConn.SetICMPFilter failed: %v", err)
+-	}
+-
+-	for i, toggle := range []bool{true, false, true} {
+-		wb, err := (&icmpMessage{
+-			Type: ipv6.ICMPTypeEchoRequest, Code: 0,
+-			Body: &icmpEcho{
+-				ID: os.Getpid() & 0xffff, Seq: i + 1,
+-				Data: []byte("HELLO-R-U-THERE"),
+-			},
+-		}).Marshal()
+-		if err != nil {
+-			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+-		}
+-		if err := p.SetControlMessage(cf, toggle); err != nil {
+-			t.Fatalf("ipv6.PacketConn.SetControlMessage failed: %v", err)
+-		}
+-		cm.HopLimit = i + 1
+-		if _, err := p.WriteTo(wb, &cm, dst); err != nil {
+-			t.Fatalf("ipv6.PacketConn.WriteTo failed: %v", err)
+-		}
+-		b := make([]byte, 128)
+-		if n, cm, _, err := p.ReadFrom(b); err != nil {
+-			t.Fatalf("ipv6.PacketConn.ReadFrom failed: %v", err)
+-		} else {
+-			t.Logf("rcvd cmsg: %v", cm)
+-			if m, err := parseICMPMessage(b[:n]); err != nil {
+-				t.Fatalf("parseICMPMessage failed: %v", err)
+-			} else if m.Type != ipv6.ICMPTypeEchoReply || m.Code != 0 {
+-				t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, ipv6.ICMPTypeEchoReply, 0)
+-			}
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/LICENSE docker-devmapper/vendor/src/code.google.com/p/go.net/LICENSE
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/LICENSE	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/LICENSE	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-Copyright (c) 2009 The Go Authors. All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions are
+-met:
+-
+-   * Redistributions of source code must retain the above copyright
+-notice, this list of conditions and the following disclaimer.
+-   * Redistributions in binary form must reproduce the above
+-copyright notice, this list of conditions and the following disclaimer
+-in the documentation and/or other materials provided with the
+-distribution.
+-   * Neither the name of Google Inc. nor the names of its
+-contributors may be used to endorse or promote products derived from
+-this software without specific prior written permission.
+-
+-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/PATENTS docker-devmapper/vendor/src/code.google.com/p/go.net/PATENTS
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/PATENTS	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/PATENTS	1969-12-31 18:00:00.000000000 -0600
+@@ -1,22 +0,0 @@
+-Additional IP Rights Grant (Patents)
+-
+-"This implementation" means the copyrightable works distributed by
+-Google as part of the Go project.
+-
+-Google hereby grants to You a perpetual, worldwide, non-exclusive,
+-no-charge, royalty-free, irrevocable (except as stated in this section)
+-patent license to make, have made, use, offer to sell, sell, import,
+-transfer and otherwise run, modify and propagate the contents of this
+-implementation of Go, where such license applies only to those patent
+-claims, both currently owned or controlled by Google and acquired in
+-the future, licensable by Google that are necessarily infringed by this
+-implementation of Go.  This grant does not include claims that would be
+-infringed only as a consequence of further modification of this
+-implementation.  If you or your agent or exclusive licensee institute or
+-order or agree to the institution of patent litigation against any
+-entity (including a cross-claim or counterclaim in a lawsuit) alleging
+-that this implementation of Go or any code incorporated within this
+-implementation of Go constitutes direct or contributory patent
+-infringement, or inducement of patent infringement, then any patent
+-rights granted to you under this License for this implementation of Go
+-shall terminate as of the date such litigation is filed.
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/direct.go docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/direct.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/direct.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/direct.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,18 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package proxy
+-
+-import (
+-	"net"
+-)
+-
+-type direct struct{}
+-
+-// Direct is a direct proxy: one that makes network connections directly.
+-var Direct = direct{}
+-
+-func (direct) Dial(network, addr string) (net.Conn, error) {
+-	return net.Dial(network, addr)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/per_host.go docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/per_host.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/per_host.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/per_host.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,140 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package proxy
+-
+-import (
+-	"net"
+-	"strings"
+-)
+-
+-// A PerHost directs connections to a default Dialer unless the hostname
+-// requested matches one of a number of exceptions.
+-type PerHost struct {
+-	def, bypass Dialer
+-
+-	bypassNetworks []*net.IPNet
+-	bypassIPs      []net.IP
+-	bypassZones    []string
+-	bypassHosts    []string
+-}
+-
+-// NewPerHost returns a PerHost Dialer that directs connections to either
+-// defaultDialer or bypass, depending on whether the connection matches one of
+-// the configured rules.
+-func NewPerHost(defaultDialer, bypass Dialer) *PerHost {
+-	return &PerHost{
+-		def:    defaultDialer,
+-		bypass: bypass,
+-	}
+-}
+-
+-// Dial connects to the address addr on the given network through either
+-// defaultDialer or bypass.
+-func (p *PerHost) Dial(network, addr string) (c net.Conn, err error) {
+-	host, _, err := net.SplitHostPort(addr)
+-	if err != nil {
+-		return nil, err
+-	}
+-
+-	return p.dialerForRequest(host).Dial(network, addr)
+-}
+-
+-func (p *PerHost) dialerForRequest(host string) Dialer {
+-	if ip := net.ParseIP(host); ip != nil {
+-		for _, net := range p.bypassNetworks {
+-			if net.Contains(ip) {
+-				return p.bypass
+-			}
+-		}
+-		for _, bypassIP := range p.bypassIPs {
+-			if bypassIP.Equal(ip) {
+-				return p.bypass
+-			}
+-		}
+-		return p.def
+-	}
+-
+-	for _, zone := range p.bypassZones {
+-		if strings.HasSuffix(host, zone) {
+-			return p.bypass
+-		}
+-		if host == zone[1:] {
+-			// For a zone "example.com", we match "example.com"
+-			// too.
+-			return p.bypass
+-		}
+-	}
+-	for _, bypassHost := range p.bypassHosts {
+-		if bypassHost == host {
+-			return p.bypass
+-		}
+-	}
+-	return p.def
+-}
+-
+-// AddFromString parses a string that contains comma-separated values
+-// specifying hosts that should use the bypass proxy. Each value is either an
+-// IP address, a CIDR range, a zone (*.example.com) or a hostname
+-// (localhost). A best effort is made to parse the string and errors are
+-// ignored.
+-func (p *PerHost) AddFromString(s string) {
+-	hosts := strings.Split(s, ",")
+-	for _, host := range hosts {
+-		host = strings.TrimSpace(host)
+-		if len(host) == 0 {
+-			continue
+-		}
+-		if strings.Contains(host, "/") {
+-			// We assume that it's a CIDR address like 127.0.0.0/8
+-			if _, net, err := net.ParseCIDR(host); err == nil {
+-				p.AddNetwork(net)
+-			}
+-			continue
+-		}
+-		if ip := net.ParseIP(host); ip != nil {
+-			p.AddIP(ip)
+-			continue
+-		}
+-		if strings.HasPrefix(host, "*.") {
+-			p.AddZone(host[1:])
+-			continue
+-		}
+-		p.AddHost(host)
+-	}
+-}
+-
+-// AddIP specifies an IP address that will use the bypass proxy. Note that
+-// this will only take effect if a literal IP address is dialed. A connection
+-// to a named host will never match an IP.
+-func (p *PerHost) AddIP(ip net.IP) {
+-	p.bypassIPs = append(p.bypassIPs, ip)
+-}
+-
+-// AddNetwork specifies an IP range that will use the bypass proxy. Note that
+-// this will only take effect if a literal IP address is dialed. A connection
+-// to a named host will never match.
+-func (p *PerHost) AddNetwork(net *net.IPNet) {
+-	p.bypassNetworks = append(p.bypassNetworks, net)
+-}
+-
+-// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of
+-// "example.com" matches "example.com" and all of its subdomains.
+-func (p *PerHost) AddZone(zone string) {
+-	if strings.HasSuffix(zone, ".") {
+-		zone = zone[:len(zone)-1]
+-	}
+-	if !strings.HasPrefix(zone, ".") {
+-		zone = "." + zone
+-	}
+-	p.bypassZones = append(p.bypassZones, zone)
+-}
+-
+-// AddHost specifies a hostname that will use the bypass proxy.
+-func (p *PerHost) AddHost(host string) {
+-	if strings.HasSuffix(host, ".") {
+-		host = host[:len(host)-1]
+-	}
+-	p.bypassHosts = append(p.bypassHosts, host)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/per_host_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/per_host_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/per_host_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/per_host_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,55 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package proxy
+-
+-import (
+-	"errors"
+-	"net"
+-	"reflect"
+-	"testing"
+-)
+-
+-type recordingProxy struct {
+-	addrs []string
+-}
+-
+-func (r *recordingProxy) Dial(network, addr string) (net.Conn, error) {
+-	r.addrs = append(r.addrs, addr)
+-	return nil, errors.New("recordingProxy")
+-}
+-
+-func TestPerHost(t *testing.T) {
+-	var def, bypass recordingProxy
+-	perHost := NewPerHost(&def, &bypass)
+-	perHost.AddFromString("localhost,*.zone,127.0.0.1,10.0.0.1/8,1000::/16")
+-
+-	expectedDef := []string{
+-		"example.com:123",
+-		"1.2.3.4:123",
+-		"[1001::]:123",
+-	}
+-	expectedBypass := []string{
+-		"localhost:123",
+-		"zone:123",
+-		"foo.zone:123",
+-		"127.0.0.1:123",
+-		"10.1.2.3:123",
+-		"[1000::]:123",
+-	}
+-
+-	for _, addr := range expectedDef {
+-		perHost.Dial("tcp", addr)
+-	}
+-	for _, addr := range expectedBypass {
+-		perHost.Dial("tcp", addr)
+-	}
+-
+-	if !reflect.DeepEqual(expectedDef, def.addrs) {
+-		t.Errorf("Hosts which went to the default proxy didn't match. Got %v, want %v", def.addrs, expectedDef)
+-	}
+-	if !reflect.DeepEqual(expectedBypass, bypass.addrs) {
+-		t.Errorf("Hosts which went to the bypass proxy didn't match. Got %v, want %v", bypass.addrs, expectedBypass)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/proxy.go docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/proxy.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/proxy.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/proxy.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,94 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package proxy provides support for a variety of protocols to proxy network
+-// data.
+-package proxy
+-
+-import (
+-	"errors"
+-	"net"
+-	"net/url"
+-	"os"
+-)
+-
+-// A Dialer is a means to establish a connection.
+-type Dialer interface {
+-	// Dial connects to the given address via the proxy.
+-	Dial(network, addr string) (c net.Conn, err error)
+-}
+-
+-// Auth contains authentication parameters that specific Dialers may require.
+-type Auth struct {
+-	User, Password string
+-}
+-
+-// DefaultDialer returns the dialer specified by the proxy related variables in
+-// the environment.
+-func FromEnvironment() Dialer {
+-	allProxy := os.Getenv("all_proxy")
+-	if len(allProxy) == 0 {
+-		return Direct
+-	}
+-
+-	proxyURL, err := url.Parse(allProxy)
+-	if err != nil {
+-		return Direct
+-	}
+-	proxy, err := FromURL(proxyURL, Direct)
+-	if err != nil {
+-		return Direct
+-	}
+-
+-	noProxy := os.Getenv("no_proxy")
+-	if len(noProxy) == 0 {
+-		return proxy
+-	}
+-
+-	perHost := NewPerHost(proxy, Direct)
+-	perHost.AddFromString(noProxy)
+-	return perHost
+-}
+-
+-// proxySchemes is a map from URL schemes to a function that creates a Dialer
+-// from a URL with such a scheme.
+-var proxySchemes map[string]func(*url.URL, Dialer) (Dialer, error)
+-
+-// RegisterDialerType takes a URL scheme and a function to generate Dialers from
+-// a URL with that scheme and a forwarding Dialer. Registered schemes are used
+-// by FromURL.
+-func RegisterDialerType(scheme string, f func(*url.URL, Dialer) (Dialer, error)) {
+-	if proxySchemes == nil {
+-		proxySchemes = make(map[string]func(*url.URL, Dialer) (Dialer, error))
+-	}
+-	proxySchemes[scheme] = f
+-}
+-
+-// FromURL returns a Dialer given a URL specification and an underlying
+-// Dialer for it to make network requests.
+-func FromURL(u *url.URL, forward Dialer) (Dialer, error) {
+-	var auth *Auth
+-	if u.User != nil {
+-		auth = new(Auth)
+-		auth.User = u.User.Username()
+-		if p, ok := u.User.Password(); ok {
+-			auth.Password = p
+-		}
+-	}
+-
+-	switch u.Scheme {
+-	case "socks5":
+-		return SOCKS5("tcp", u.Host, auth, forward)
+-	}
+-
+-	// If the scheme doesn't match any of the built-in schemes, see if it
+-	// was registered by another package.
+-	if proxySchemes != nil {
+-		if f, ok := proxySchemes[u.Scheme]; ok {
+-			return f(u, forward)
+-		}
+-	}
+-
+-	return nil, errors.New("proxy: unknown scheme: " + u.Scheme)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/proxy_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/proxy_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/proxy_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/proxy_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,142 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package proxy
+-
+-import (
+-	"io"
+-	"net"
+-	"net/url"
+-	"strconv"
+-	"sync"
+-	"testing"
+-)
+-
+-func TestFromURL(t *testing.T) {
+-	endSystem, err := net.Listen("tcp", "127.0.0.1:0")
+-	if err != nil {
+-		t.Fatalf("net.Listen failed: %v", err)
+-	}
+-	defer endSystem.Close()
+-	gateway, err := net.Listen("tcp", "127.0.0.1:0")
+-	if err != nil {
+-		t.Fatalf("net.Listen failed: %v", err)
+-	}
+-	defer gateway.Close()
+-
+-	var wg sync.WaitGroup
+-	wg.Add(1)
+-	go socks5Gateway(t, gateway, endSystem, socks5Domain, &wg)
+-
+-	url, err := url.Parse("socks5://user:password@" + gateway.Addr().String())
+-	if err != nil {
+-		t.Fatalf("url.Parse failed: %v", err)
+-	}
+-	proxy, err := FromURL(url, Direct)
+-	if err != nil {
+-		t.Fatalf("FromURL failed: %v", err)
+-	}
+-	_, port, err := net.SplitHostPort(endSystem.Addr().String())
+-	if err != nil {
+-		t.Fatalf("net.SplitHostPort failed: %v", err)
+-	}
+-	if c, err := proxy.Dial("tcp", "localhost:"+port); err != nil {
+-		t.Fatalf("FromURL.Dial failed: %v", err)
+-	} else {
+-		c.Close()
+-	}
+-
+-	wg.Wait()
+-}
+-
+-func TestSOCKS5(t *testing.T) {
+-	endSystem, err := net.Listen("tcp", "127.0.0.1:0")
+-	if err != nil {
+-		t.Fatalf("net.Listen failed: %v", err)
+-	}
+-	defer endSystem.Close()
+-	gateway, err := net.Listen("tcp", "127.0.0.1:0")
+-	if err != nil {
+-		t.Fatalf("net.Listen failed: %v", err)
+-	}
+-	defer gateway.Close()
+-
+-	var wg sync.WaitGroup
+-	wg.Add(1)
+-	go socks5Gateway(t, gateway, endSystem, socks5IP4, &wg)
+-
+-	proxy, err := SOCKS5("tcp", gateway.Addr().String(), nil, Direct)
+-	if err != nil {
+-		t.Fatalf("SOCKS5 failed: %v", err)
+-	}
+-	if c, err := proxy.Dial("tcp", endSystem.Addr().String()); err != nil {
+-		t.Fatalf("SOCKS5.Dial failed: %v", err)
+-	} else {
+-		c.Close()
+-	}
+-
+-	wg.Wait()
+-}
+-
+-func socks5Gateway(t *testing.T, gateway, endSystem net.Listener, typ byte, wg *sync.WaitGroup) {
+-	defer wg.Done()
+-
+-	c, err := gateway.Accept()
+-	if err != nil {
+-		t.Errorf("net.Listener.Accept failed: %v", err)
+-		return
+-	}
+-	defer c.Close()
+-
+-	b := make([]byte, 32)
+-	var n int
+-	if typ == socks5Domain {
+-		n = 4
+-	} else {
+-		n = 3
+-	}
+-	if _, err := io.ReadFull(c, b[:n]); err != nil {
+-		t.Errorf("io.ReadFull failed: %v", err)
+-		return
+-	}
+-	if _, err := c.Write([]byte{socks5Version, socks5AuthNone}); err != nil {
+-		t.Errorf("net.Conn.Write failed: %v", err)
+-		return
+-	}
+-	if typ == socks5Domain {
+-		n = 16
+-	} else {
+-		n = 10
+-	}
+-	if _, err := io.ReadFull(c, b[:n]); err != nil {
+-		t.Errorf("io.ReadFull failed: %v", err)
+-		return
+-	}
+-	if b[0] != socks5Version || b[1] != socks5Connect || b[2] != 0x00 || b[3] != typ {
+-		t.Errorf("got an unexpected packet: %#02x %#02x %#02x %#02x", b[0], b[1], b[2], b[3])
+-		return
+-	}
+-	if typ == socks5Domain {
+-		copy(b[:5], []byte{socks5Version, 0x00, 0x00, socks5Domain, 9})
+-		b = append(b, []byte("localhost")...)
+-	} else {
+-		copy(b[:4], []byte{socks5Version, 0x00, 0x00, socks5IP4})
+-	}
+-	host, port, err := net.SplitHostPort(endSystem.Addr().String())
+-	if err != nil {
+-		t.Errorf("net.SplitHostPort failed: %v", err)
+-		return
+-	}
+-	b = append(b, []byte(net.ParseIP(host).To4())...)
+-	p, err := strconv.Atoi(port)
+-	if err != nil {
+-		t.Errorf("strconv.Atoi failed: %v", err)
+-		return
+-	}
+-	b = append(b, []byte{byte(p >> 8), byte(p)}...)
+-	if _, err := c.Write(b); err != nil {
+-		t.Errorf("net.Conn.Write failed: %v", err)
+-		return
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/socks5.go docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/socks5.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/proxy/socks5.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/proxy/socks5.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,207 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package proxy
+-
+-import (
+-	"errors"
+-	"io"
+-	"net"
+-	"strconv"
+-)
+-
+-// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address
+-// with an optional username and password. See RFC 1928.
+-func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error) {
+-	s := &socks5{
+-		network: network,
+-		addr:    addr,
+-		forward: forward,
+-	}
+-	if auth != nil {
+-		s.user = auth.User
+-		s.password = auth.Password
+-	}
+-
+-	return s, nil
+-}
+-
+-type socks5 struct {
+-	user, password string
+-	network, addr  string
+-	forward        Dialer
+-}
+-
+-const socks5Version = 5
+-
+-const (
+-	socks5AuthNone     = 0
+-	socks5AuthPassword = 2
+-)
+-
+-const socks5Connect = 1
+-
+-const (
+-	socks5IP4    = 1
+-	socks5Domain = 3
+-	socks5IP6    = 4
+-)
+-
+-var socks5Errors = []string{
+-	"",
+-	"general failure",
+-	"connection forbidden",
+-	"network unreachable",
+-	"host unreachable",
+-	"connection refused",
+-	"TTL expired",
+-	"command not supported",
+-	"address type not supported",
+-}
+-
+-// Dial connects to the address addr on the network net via the SOCKS5 proxy.
+-func (s *socks5) Dial(network, addr string) (net.Conn, error) {
+-	switch network {
+-	case "tcp", "tcp6", "tcp4":
+-	default:
+-		return nil, errors.New("proxy: no support for SOCKS5 proxy connections of type " + network)
+-	}
+-
+-	conn, err := s.forward.Dial(s.network, s.addr)
+-	if err != nil {
+-		return nil, err
+-	}
+-	closeConn := &conn
+-	defer func() {
+-		if closeConn != nil {
+-			(*closeConn).Close()
+-		}
+-	}()
+-
+-	host, portStr, err := net.SplitHostPort(addr)
+-	if err != nil {
+-		return nil, err
+-	}
+-
+-	port, err := strconv.Atoi(portStr)
+-	if err != nil {
+-		return nil, errors.New("proxy: failed to parse port number: " + portStr)
+-	}
+-	if port < 1 || port > 0xffff {
+-		return nil, errors.New("proxy: port number out of range: " + portStr)
+-	}
+-
+-	// the size here is just an estimate
+-	buf := make([]byte, 0, 6+len(host))
+-
+-	buf = append(buf, socks5Version)
+-	if len(s.user) > 0 && len(s.user) < 256 && len(s.password) < 256 {
+-		buf = append(buf, 2 /* num auth methods */, socks5AuthNone, socks5AuthPassword)
+-	} else {
+-		buf = append(buf, 1 /* num auth methods */, socks5AuthNone)
+-	}
+-
+-	if _, err := conn.Write(buf); err != nil {
+-		return nil, errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-	}
+-
+-	if _, err := io.ReadFull(conn, buf[:2]); err != nil {
+-		return nil, errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-	}
+-	if buf[0] != 5 {
+-		return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0])))
+-	}
+-	if buf[1] == 0xff {
+-		return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication")
+-	}
+-
+-	if buf[1] == socks5AuthPassword {
+-		buf = buf[:0]
+-		buf = append(buf, 1 /* password protocol version */)
+-		buf = append(buf, uint8(len(s.user)))
+-		buf = append(buf, s.user...)
+-		buf = append(buf, uint8(len(s.password)))
+-		buf = append(buf, s.password...)
+-
+-		if _, err := conn.Write(buf); err != nil {
+-			return nil, errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-		}
+-
+-		if _, err := io.ReadFull(conn, buf[:2]); err != nil {
+-			return nil, errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-		}
+-
+-		if buf[1] != 0 {
+-			return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password")
+-		}
+-	}
+-
+-	buf = buf[:0]
+-	buf = append(buf, socks5Version, socks5Connect, 0 /* reserved */)
+-
+-	if ip := net.ParseIP(host); ip != nil {
+-		if ip4 := ip.To4(); ip4 != nil {
+-			buf = append(buf, socks5IP4)
+-			ip = ip4
+-		} else {
+-			buf = append(buf, socks5IP6)
+-		}
+-		buf = append(buf, ip...)
+-	} else {
+-		buf = append(buf, socks5Domain)
+-		buf = append(buf, byte(len(host)))
+-		buf = append(buf, host...)
+-	}
+-	buf = append(buf, byte(port>>8), byte(port))
+-
+-	if _, err := conn.Write(buf); err != nil {
+-		return nil, errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-	}
+-
+-	if _, err := io.ReadFull(conn, buf[:4]); err != nil {
+-		return nil, errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-	}
+-
+-	failure := "unknown error"
+-	if int(buf[1]) < len(socks5Errors) {
+-		failure = socks5Errors[buf[1]]
+-	}
+-
+-	if len(failure) > 0 {
+-		return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure)
+-	}
+-
+-	bytesToDiscard := 0
+-	switch buf[3] {
+-	case socks5IP4:
+-		bytesToDiscard = net.IPv4len
+-	case socks5IP6:
+-		bytesToDiscard = net.IPv6len
+-	case socks5Domain:
+-		_, err := io.ReadFull(conn, buf[:1])
+-		if err != nil {
+-			return nil, errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-		}
+-		bytesToDiscard = int(buf[0])
+-	default:
+-		return nil, errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr)
+-	}
+-
+-	if cap(buf) < bytesToDiscard {
+-		buf = make([]byte, bytesToDiscard)
+-	} else {
+-		buf = buf[:bytesToDiscard]
+-	}
+-	if _, err := io.ReadFull(conn, buf); err != nil {
+-		return nil, errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-	}
+-
+-	// Also need to discard the port number
+-	if _, err := io.ReadFull(conn, buf[:2]); err != nil {
+-		return nil, errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+-	}
+-
+-	closeConn = nil
+-	return conn, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/gen.go docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/gen.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/gen.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/gen.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,570 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build ignore
+-
+-package main
+-
+-// This program generates table.go and table_test.go.
+-// Invoke as:
+-//
+-//	go run gen.go -version "xxx"       >table.go
+-//	go run gen.go -version "xxx" -test >table_test.go
+-//
+-// The version is derived from information found at
+-// http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat
+-// which is linked from http://publicsuffix.org/list/.
+-//
+-// To fetch a particular hg revision, such as 05b11a8d1ace, pass
+-// -url "http://hg.mozilla.org/mozilla-central/raw-file/05b11a8d1ace/netwerk/dns/effective_tld_names.dat"
+-
+-import (
+-	"bufio"
+-	"bytes"
+-	"flag"
+-	"fmt"
+-	"go/format"
+-	"io"
+-	"net/http"
+-	"os"
+-	"sort"
+-	"strings"
+-
+-	"code.google.com/p/go.net/idna"
+-)
+-
+-const (
+-	nodesBitsChildren   = 9
+-	nodesBitsICANN      = 1
+-	nodesBitsTextOffset = 15
+-	nodesBitsTextLength = 6
+-
+-	childrenBitsWildcard = 1
+-	childrenBitsNodeType = 2
+-	childrenBitsHi       = 14
+-	childrenBitsLo       = 14
+-)
+-
+-const (
+-	nodeTypeNormal     = 0
+-	nodeTypeException  = 1
+-	nodeTypeParentOnly = 2
+-	numNodeType        = 3
+-)
+-
+-func nodeTypeStr(n int) string {
+-	switch n {
+-	case nodeTypeNormal:
+-		return "+"
+-	case nodeTypeException:
+-		return "!"
+-	case nodeTypeParentOnly:
+-		return "o"
+-	}
+-	panic("unreachable")
+-}
+-
+-var (
+-	labelEncoding = map[string]uint32{}
+-	labelsList    = []string{}
+-	labelsMap     = map[string]bool{}
+-	rules         = []string{}
+-
+-	crush  = flag.Bool("crush", true, "make the generated node text as small as possible")
+-	subset = flag.Bool("subset", false, "generate only a subset of the full table, for debugging")
+-	url    = flag.String("url",
+-		"http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1",
+-		"URL of the publicsuffix.org list. If empty, stdin is read instead")
+-	v       = flag.Bool("v", false, "verbose output (to stderr)")
+-	version = flag.String("version", "", "the effective_tld_names.dat version")
+-	test    = flag.Bool("test", false, "generate table_test.go")
+-)
+-
+-func main() {
+-	if err := main1(); err != nil {
+-		fmt.Fprintln(os.Stderr, err)
+-		os.Exit(1)
+-	}
+-}
+-
+-func main1() error {
+-	flag.Parse()
+-	if nodesBitsTextLength+nodesBitsTextOffset+nodesBitsICANN+nodesBitsChildren > 32 {
+-		return fmt.Errorf("not enough bits to encode the nodes table")
+-	}
+-	if childrenBitsLo+childrenBitsHi+childrenBitsNodeType+childrenBitsWildcard > 32 {
+-		return fmt.Errorf("not enough bits to encode the children table")
+-	}
+-	if *version == "" {
+-		return fmt.Errorf("-version was not specified")
+-	}
+-	var r io.Reader = os.Stdin
+-	if *url != "" {
+-		res, err := http.Get(*url)
+-		if err != nil {
+-			return err
+-		}
+-		if res.StatusCode != http.StatusOK {
+-			return fmt.Errorf("bad GET status for %s: %d", *url, res.Status)
+-		}
+-		r = res.Body
+-		defer res.Body.Close()
+-	}
+-
+-	var root node
+-	icann := false
+-	buf := new(bytes.Buffer)
+-	br := bufio.NewReader(r)
+-	for {
+-		s, err := br.ReadString('\n')
+-		if err != nil {
+-			if err == io.EOF {
+-				break
+-			}
+-			return err
+-		}
+-		s = strings.TrimSpace(s)
+-		if strings.Contains(s, "BEGIN ICANN DOMAINS") {
+-			icann = true
+-			continue
+-		}
+-		if strings.Contains(s, "END ICANN DOMAINS") {
+-			icann = false
+-			continue
+-		}
+-		if s == "" || strings.HasPrefix(s, "//") {
+-			continue
+-		}
+-		s, err = idna.ToASCII(s)
+-		if err != nil {
+-			return err
+-		}
+-
+-		if *subset {
+-			switch {
+-			case s == "ac.jp" || strings.HasSuffix(s, ".ac.jp"):
+-			case s == "ak.us" || strings.HasSuffix(s, ".ak.us"):
+-			case s == "ao" || strings.HasSuffix(s, ".ao"):
+-			case s == "ar" || strings.HasSuffix(s, ".ar"):
+-			case s == "arpa" || strings.HasSuffix(s, ".arpa"):
+-			case s == "cy" || strings.HasSuffix(s, ".cy"):
+-			case s == "dyndns.org" || strings.HasSuffix(s, ".dyndns.org"):
+-			case s == "jp":
+-			case s == "kobe.jp" || strings.HasSuffix(s, ".kobe.jp"):
+-			case s == "kyoto.jp" || strings.HasSuffix(s, ".kyoto.jp"):
+-			case s == "om" || strings.HasSuffix(s, ".om"):
+-			case s == "uk" || strings.HasSuffix(s, ".uk"):
+-			case s == "uk.com" || strings.HasSuffix(s, ".uk.com"):
+-			case s == "tw" || strings.HasSuffix(s, ".tw"):
+-			case s == "zw" || strings.HasSuffix(s, ".zw"):
+-			case s == "xn--p1ai" || strings.HasSuffix(s, ".xn--p1ai"):
+-				// xn--p1ai is Russian-Cyrillic "рф".
+-			default:
+-				continue
+-			}
+-		}
+-
+-		rules = append(rules, s)
+-
+-		nt, wildcard := nodeTypeNormal, false
+-		switch {
+-		case strings.HasPrefix(s, "*."):
+-			s, nt = s[2:], nodeTypeParentOnly
+-			wildcard = true
+-		case strings.HasPrefix(s, "!"):
+-			s, nt = s[1:], nodeTypeException
+-		}
+-		labels := strings.Split(s, ".")
+-		for n, i := &root, len(labels)-1; i >= 0; i-- {
+-			label := labels[i]
+-			n = n.child(label)
+-			if i == 0 {
+-				if nt != nodeTypeParentOnly && n.nodeType == nodeTypeParentOnly {
+-					n.nodeType = nt
+-				}
+-				n.icann = n.icann && icann
+-				n.wildcard = n.wildcard || wildcard
+-			}
+-			labelsMap[label] = true
+-		}
+-	}
+-	labelsList = make([]string, 0, len(labelsMap))
+-	for label := range labelsMap {
+-		labelsList = append(labelsList, label)
+-	}
+-	sort.Strings(labelsList)
+-
+-	p := printReal
+-	if *test {
+-		p = printTest
+-	}
+-	if err := p(buf, &root); err != nil {
+-		return err
+-	}
+-
+-	b, err := format.Source(buf.Bytes())
+-	if err != nil {
+-		return err
+-	}
+-	_, err = os.Stdout.Write(b)
+-	return err
+-}
+-
+-func printTest(w io.Writer, n *node) error {
+-	fmt.Fprintf(w, "// generated by go run gen.go; DO NOT EDIT\n\n")
+-	fmt.Fprintf(w, "package publicsuffix\n\nvar rules = [...]string{\n")
+-	for _, rule := range rules {
+-		fmt.Fprintf(w, "%q,\n", rule)
+-	}
+-	fmt.Fprintf(w, "}\n\nvar nodeLabels = [...]string{\n")
+-	if err := n.walk(w, printNodeLabel); err != nil {
+-		return err
+-	}
+-	fmt.Fprintf(w, "}\n")
+-	return nil
+-}
+-
+-func printReal(w io.Writer, n *node) error {
+-	const header = `// generated by go run gen.go; DO NOT EDIT
+-
+-package publicsuffix
+-
+-const version = %q
+-
+-const (
+-	nodesBitsChildren   = %d
+-	nodesBitsICANN      = %d
+-	nodesBitsTextOffset = %d
+-	nodesBitsTextLength = %d
+-
+-	childrenBitsWildcard = %d
+-	childrenBitsNodeType = %d
+-	childrenBitsHi       = %d
+-	childrenBitsLo       = %d
+-)
+-
+-const (
+-	nodeTypeNormal     = %d
+-	nodeTypeException  = %d
+-	nodeTypeParentOnly = %d
+-)
+-
+-// numTLD is the number of top level domains.
+-const numTLD = %d
+-
+-`
+-	fmt.Fprintf(w, header, *version,
+-		nodesBitsChildren, nodesBitsICANN, nodesBitsTextOffset, nodesBitsTextLength,
+-		childrenBitsWildcard, childrenBitsNodeType, childrenBitsHi, childrenBitsLo,
+-		nodeTypeNormal, nodeTypeException, nodeTypeParentOnly, len(n.children))
+-
+-	text := makeText()
+-	if text == "" {
+-		return fmt.Errorf("internal error: makeText returned no text")
+-	}
+-	for _, label := range labelsList {
+-		offset, length := strings.Index(text, label), len(label)
+-		if offset < 0 {
+-			return fmt.Errorf("internal error: could not find %q in text %q", label, text)
+-		}
+-		if offset >= 1<<nodesBitsTextOffset || length >= 1<<nodesBitsTextLength {
+-			return fmt.Errorf("text offset/length is too large: %d/%d", offset, length)
+-		}
+-		labelEncoding[label] = uint32(offset)<<nodesBitsTextLength | uint32(length)
+-	}
+-	fmt.Fprintf(w, "// Text is the combined text of all labels.\nconst text = ")
+-	for len(text) > 0 {
+-		n, plus := len(text), ""
+-		if n > 64 {
+-			n, plus = 64, " +"
+-		}
+-		fmt.Fprintf(w, "%q%s\n", text[:n], plus)
+-		text = text[n:]
+-	}
+-
+-	n.walk(w, assignIndexes)
+-
+-	fmt.Fprintf(w, `
+-
+-// nodes is the list of nodes. Each node is represented as a uint32, which
+-// encodes the node's children, wildcard bit and node type (as an index into
+-// the children array), ICANN bit and text.
+-//
+-// In the //-comment after each node's data, the nodes indexes of the children
+-// are formatted as (n0x1234-n0x1256), with * denoting the wildcard bit. The
+-// nodeType is printed as + for normal, ! for exception, and o for parent-only
+-// nodes that have children but don't match a domain label in their own right.
+-// An I denotes an ICANN domain.
+-//
+-// The layout within the uint32, from MSB to LSB, is:
+-//	[%2d bits] unused
+-//	[%2d bits] children index
+-//	[%2d bits] ICANN bit
+-//	[%2d bits] text index
+-//	[%2d bits] text length
+-var nodes = [...]uint32{
+-`,
+-		32-nodesBitsChildren-nodesBitsICANN-nodesBitsTextOffset-nodesBitsTextLength,
+-		nodesBitsChildren, nodesBitsICANN, nodesBitsTextOffset, nodesBitsTextLength)
+-	if err := n.walk(w, printNode); err != nil {
+-		return err
+-	}
+-	fmt.Fprintf(w, `}
+-
+-// children is the list of nodes' children, the parent's wildcard bit and the
+-// parent's node type. If a node has no children then their children index
+-// will be in the range [0, 6), depending on the wildcard bit and node type.
+-//
+-// The layout within the uint32, from MSB to LSB, is:
+-//	[%2d bits] unused
+-//	[%2d bits] wildcard bit
+-//	[%2d bits] node type
+-//	[%2d bits] high nodes index (exclusive) of children
+-//	[%2d bits] low nodes index (inclusive) of children
+-var children=[...]uint32{
+-`,
+-		32-childrenBitsWildcard-childrenBitsNodeType-childrenBitsHi-childrenBitsLo,
+-		childrenBitsWildcard, childrenBitsNodeType, childrenBitsHi, childrenBitsLo)
+-	for i, c := range childrenEncoding {
+-		s := "---------------"
+-		lo := c & (1<<childrenBitsLo - 1)
+-		hi := (c >> childrenBitsLo) & (1<<childrenBitsHi - 1)
+-		if lo != hi {
+-			s = fmt.Sprintf("n0x%04x-n0x%04x", lo, hi)
+-		}
+-		nodeType := int(c>>(childrenBitsLo+childrenBitsHi)) & (1<<childrenBitsNodeType - 1)
+-		wildcard := c>>(childrenBitsLo+childrenBitsHi+childrenBitsNodeType) != 0
+-		fmt.Fprintf(w, "0x%08x, // c0x%04x (%s)%s %s\n",
+-			c, i, s, wildcardStr(wildcard), nodeTypeStr(nodeType))
+-	}
+-	fmt.Fprintf(w, "}\n")
+-	return nil
+-}
+-
+-type node struct {
+-	label    string
+-	nodeType int
+-	icann    bool
+-	wildcard bool
+-	// nodesIndex and childrenIndex are the index of this node in the nodes
+-	// and the index of its children offset/length in the children arrays.
+-	nodesIndex, childrenIndex int
+-	// firstChild is the index of this node's first child, or zero if this
+-	// node has no children.
+-	firstChild int
+-	// children are the node's children, in strictly increasing node label order.
+-	children []*node
+-}
+-
+-func (n *node) walk(w io.Writer, f func(w1 io.Writer, n1 *node) error) error {
+-	if err := f(w, n); err != nil {
+-		return err
+-	}
+-	for _, c := range n.children {
+-		if err := c.walk(w, f); err != nil {
+-			return err
+-		}
+-	}
+-	return nil
+-}
+-
+-// child returns the child of n with the given label. The child is created if
+-// it did not exist beforehand.
+-func (n *node) child(label string) *node {
+-	for _, c := range n.children {
+-		if c.label == label {
+-			return c
+-		}
+-	}
+-	c := &node{
+-		label:    label,
+-		nodeType: nodeTypeParentOnly,
+-		icann:    true,
+-	}
+-	n.children = append(n.children, c)
+-	sort.Sort(byLabel(n.children))
+-	return c
+-}
+-
+-type byLabel []*node
+-
+-func (b byLabel) Len() int           { return len(b) }
+-func (b byLabel) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
+-func (b byLabel) Less(i, j int) bool { return b[i].label < b[j].label }
+-
+-var nextNodesIndex int
+-
+-// childrenEncoding are the encoded entries in the generated children array.
+-// All these pre-defined entries have no children.
+-var childrenEncoding = []uint32{
+-	0 << (childrenBitsLo + childrenBitsHi), // Without wildcard bit, nodeTypeNormal.
+-	1 << (childrenBitsLo + childrenBitsHi), // Without wildcard bit, nodeTypeException.
+-	2 << (childrenBitsLo + childrenBitsHi), // Without wildcard bit, nodeTypeParentOnly.
+-	4 << (childrenBitsLo + childrenBitsHi), // With wildcard bit, nodeTypeNormal.
+-	5 << (childrenBitsLo + childrenBitsHi), // With wildcard bit, nodeTypeException.
+-	6 << (childrenBitsLo + childrenBitsHi), // With wildcard bit, nodeTypeParentOnly.
+-}
+-
+-var firstCallToAssignIndexes = true
+-
+-func assignIndexes(w io.Writer, n *node) error {
+-	if len(n.children) != 0 {
+-		// Assign nodesIndex.
+-		n.firstChild = nextNodesIndex
+-		for _, c := range n.children {
+-			c.nodesIndex = nextNodesIndex
+-			nextNodesIndex++
+-		}
+-
+-		// The root node's children is implicit.
+-		if firstCallToAssignIndexes {
+-			firstCallToAssignIndexes = false
+-			return nil
+-		}
+-
+-		// Assign childrenIndex.
+-		if len(childrenEncoding) >= 1<<nodesBitsChildren {
+-			return fmt.Errorf("children table is too large")
+-		}
+-		n.childrenIndex = len(childrenEncoding)
+-		lo := uint32(n.firstChild)
+-		hi := lo + uint32(len(n.children))
+-		if lo >= 1<<childrenBitsLo || hi >= 1<<childrenBitsHi {
+-			return fmt.Errorf("children lo/hi is too large: %d/%d", lo, hi)
+-		}
+-		enc := hi<<childrenBitsLo | lo
+-		enc |= uint32(n.nodeType) << (childrenBitsLo + childrenBitsHi)
+-		if n.wildcard {
+-			enc |= 1 << (childrenBitsLo + childrenBitsHi + childrenBitsNodeType)
+-		}
+-		childrenEncoding = append(childrenEncoding, enc)
+-	} else {
+-		n.childrenIndex = n.nodeType
+-		if n.wildcard {
+-			n.childrenIndex += numNodeType
+-		}
+-	}
+-	return nil
+-}
+-
+-func printNode(w io.Writer, n *node) error {
+-	for _, c := range n.children {
+-		s := "---------------"
+-		if len(c.children) != 0 {
+-			s = fmt.Sprintf("n0x%04x-n0x%04x", c.firstChild, c.firstChild+len(c.children))
+-		}
+-		encoding := labelEncoding[c.label]
+-		if c.icann {
+-			encoding |= 1 << (nodesBitsTextLength + nodesBitsTextOffset)
+-		}
+-		encoding |= uint32(c.childrenIndex) << (nodesBitsTextLength + nodesBitsTextOffset + nodesBitsICANN)
+-		fmt.Fprintf(w, "0x%08x, // n0x%04x c0x%04x (%s)%s %s %s %s\n",
+-			encoding, c.nodesIndex, c.childrenIndex, s, wildcardStr(c.wildcard),
+-			nodeTypeStr(c.nodeType), icannStr(c.icann), c.label,
+-		)
+-	}
+-	return nil
+-}
+-
+-func printNodeLabel(w io.Writer, n *node) error {
+-	for _, c := range n.children {
+-		fmt.Fprintf(w, "%q,\n", c.label)
+-	}
+-	return nil
+-}
+-
+-func icannStr(icann bool) string {
+-	if icann {
+-		return "I"
+-	}
+-	return " "
+-}
+-
+-func wildcardStr(wildcard bool) string {
+-	if wildcard {
+-		return "*"
+-	}
+-	return " "
+-}
+-
+-// makeText combines all the strings in labelsList to form one giant string.
+-// If the crush flag is true, then overlapping strings will be merged: "arpa"
+-// and "parliament" could yield "arparliament".
+-func makeText() string {
+-	if !*crush {
+-		return strings.Join(labelsList, "")
+-	}
+-
+-	beforeLength := 0
+-	for _, s := range labelsList {
+-		beforeLength += len(s)
+-	}
+-
+-	// Make a copy of labelsList.
+-	ss := append(make([]string, 0, len(labelsList)), labelsList...)
+-
+-	// Remove strings that are substrings of other strings.
+-	for changed := true; changed; {
+-		changed = false
+-		for i, s := range ss {
+-			if s == "" {
+-				continue
+-			}
+-			for j, t := range ss {
+-				if i != j && t != "" && strings.Contains(s, t) {
+-					changed = true
+-					ss[j] = ""
+-				}
+-			}
+-		}
+-	}
+-
+-	// Remove the empty strings.
+-	sort.Strings(ss)
+-	for len(ss) > 0 && ss[0] == "" {
+-		ss = ss[1:]
+-	}
+-
+-	// Join strings where one suffix matches another prefix.
+-	for {
+-		// Find best i, j, k such that ss[i][len-k:] == ss[j][:k],
+-		// maximizing overlap length k.
+-		besti := -1
+-		bestj := -1
+-		bestk := 0
+-		for i, s := range ss {
+-			if s == "" {
+-				continue
+-			}
+-			for j, t := range ss {
+-				if i == j {
+-					continue
+-				}
+-				for k := bestk + 1; k <= len(s) && k <= len(t); k++ {
+-					if s[len(s)-k:] == t[:k] {
+-						besti = i
+-						bestj = j
+-						bestk = k
+-					}
+-				}
+-			}
+-		}
+-		if bestk > 0 {
+-			if *v {
+-				fmt.Fprintf(os.Stderr, "%d-length overlap at (%4d,%4d) out of (%4d,%4d): %q and %q\n",
+-					bestk, besti, bestj, len(ss), len(ss), ss[besti], ss[bestj])
+-			}
+-			ss[besti] += ss[bestj][bestk:]
+-			ss[bestj] = ""
+-			continue
+-		}
+-		break
+-	}
+-
+-	text := strings.Join(ss, "")
+-	if *v {
+-		fmt.Fprintf(os.Stderr, "crushed %d bytes to become %d bytes\n", beforeLength, len(text))
+-	}
+-	return text
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/list.go docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/list.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/list.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/list.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,133 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package publicsuffix provides a public suffix list based on data from
+-// http://publicsuffix.org/. A public suffix is one under which Internet users
+-// can directly register names.
+-package publicsuffix
+-
+-// TODO: specify case sensitivity and leading/trailing dot behavior for
+-// func PublicSuffix and func EffectiveTLDPlusOne.
+-
+-import (
+-	"fmt"
+-	"net/http/cookiejar"
+-	"strings"
+-)
+-
+-// List implements the cookiejar.PublicSuffixList interface by calling the
+-// PublicSuffix function.
+-var List cookiejar.PublicSuffixList = list{}
+-
+-type list struct{}
+-
+-func (list) PublicSuffix(domain string) string {
+-	ps, _ := PublicSuffix(domain)
+-	return ps
+-}
+-
+-func (list) String() string {
+-	return version
+-}
+-
+-// PublicSuffix returns the public suffix of the domain using a copy of the
+-// publicsuffix.org database compiled into the library.
+-//
+-// icann is whether the public suffix is managed by the Internet Corporation
+-// for Assigned Names and Numbers. If not, the public suffix is privately
+-// managed. For example, foo.org and foo.co.uk are ICANN domains,
+-// foo.dyndns.org and foo.blogspot.co.uk are private domains.
+-//
+-// Use cases for distinguishing ICANN domains like foo.com from private
+-// domains like foo.appspot.com can be found at
+-// https://wiki.mozilla.org/Public_Suffix_List/Use_Cases
+-func PublicSuffix(domain string) (publicSuffix string, icann bool) {
+-	lo, hi := uint32(0), uint32(numTLD)
+-	s, suffix, wildcard := domain, len(domain), false
+-loop:
+-	for {
+-		dot := strings.LastIndex(s, ".")
+-		if wildcard {
+-			suffix = 1 + dot
+-		}
+-		if lo == hi {
+-			break
+-		}
+-		f := find(s[1+dot:], lo, hi)
+-		if f == notFound {
+-			break
+-		}
+-
+-		u := nodes[f] >> (nodesBitsTextOffset + nodesBitsTextLength)
+-		icann = u&(1<<nodesBitsICANN-1) != 0
+-		u >>= nodesBitsICANN
+-		u = children[u&(1<<nodesBitsChildren-1)]
+-		lo = u & (1<<childrenBitsLo - 1)
+-		u >>= childrenBitsLo
+-		hi = u & (1<<childrenBitsHi - 1)
+-		u >>= childrenBitsHi
+-		switch u & (1<<childrenBitsNodeType - 1) {
+-		case nodeTypeNormal:
+-			suffix = 1 + dot
+-		case nodeTypeException:
+-			suffix = 1 + len(s)
+-			break loop
+-		}
+-		u >>= childrenBitsNodeType
+-		wildcard = u&(1<<childrenBitsWildcard-1) != 0
+-
+-		if dot == -1 {
+-			break
+-		}
+-		s = s[:dot]
+-	}
+-	if suffix == len(domain) {
+-		// If no rules match, the prevailing rule is "*".
+-		return domain[1+strings.LastIndex(domain, "."):], icann
+-	}
+-	return domain[suffix:], icann
+-}
+-
+-const notFound uint32 = 1<<32 - 1
+-
+-// find returns the index of the node in the range [lo, hi) whose label equals
+-// label, or notFound if there is no such node. The range is assumed to be in
+-// strictly increasing node label order.
+-func find(label string, lo, hi uint32) uint32 {
+-	for lo < hi {
+-		mid := lo + (hi-lo)/2
+-		s := nodeLabel(mid)
+-		if s < label {
+-			lo = mid + 1
+-		} else if s == label {
+-			return mid
+-		} else {
+-			hi = mid
+-		}
+-	}
+-	return notFound
+-}
+-
+-// nodeLabel returns the label for the i'th node.
+-func nodeLabel(i uint32) string {
+-	x := nodes[i]
+-	length := x & (1<<nodesBitsTextLength - 1)
+-	x >>= nodesBitsTextLength
+-	offset := x & (1<<nodesBitsTextOffset - 1)
+-	return text[offset : offset+length]
+-}
+-
+-// EffectiveTLDPlusOne returns the effective top level domain plus one more
+-// label. For example, the eTLD+1 for "foo.bar.golang.org" is "golang.org".
+-func EffectiveTLDPlusOne(domain string) (string, error) {
+-	suffix, _ := PublicSuffix(domain)
+-	if len(domain) <= len(suffix) {
+-		return "", fmt.Errorf("publicsuffix: cannot derive eTLD+1 for domain %q", domain)
+-	}
+-	i := len(domain) - len(suffix) - 1
+-	if domain[i] != '.' {
+-		return "", fmt.Errorf("publicsuffix: invalid public suffix %q for domain %q", suffix, domain)
+-	}
+-	return domain[1+strings.LastIndex(domain[:i], "."):], nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/list_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/list_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/list_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/list_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,404 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package publicsuffix
+-
+-import (
+-	"sort"
+-	"strings"
+-	"testing"
+-)
+-
+-func TestNodeLabel(t *testing.T) {
+-	for i, want := range nodeLabels {
+-		got := nodeLabel(uint32(i))
+-		if got != want {
+-			t.Errorf("%d: got %q, want %q", i, got, want)
+-		}
+-	}
+-}
+-
+-func TestFind(t *testing.T) {
+-	testCases := []string{
+-		"",
+-		"a",
+-		"a0",
+-		"aaaa",
+-		"ao",
+-		"ap",
+-		"ar",
+-		"aro",
+-		"arp",
+-		"arpa",
+-		"arpaa",
+-		"arpb",
+-		"az",
+-		"b",
+-		"b0",
+-		"ba",
+-		"z",
+-		"zu",
+-		"zv",
+-		"zw",
+-		"zx",
+-		"zy",
+-		"zz",
+-		"zzzz",
+-	}
+-	for _, tc := range testCases {
+-		got := find(tc, 0, numTLD)
+-		want := notFound
+-		for i := uint32(0); i < numTLD; i++ {
+-			if tc == nodeLabel(i) {
+-				want = i
+-				break
+-			}
+-		}
+-		if got != want {
+-			t.Errorf("%q: got %d, want %d", tc, got, want)
+-		}
+-	}
+-}
+-
+-func TestICANN(t *testing.T) {
+-	testCases := map[string]bool{
+-		"foo.org":            true,
+-		"foo.co.uk":          true,
+-		"foo.dyndns.org":     false,
+-		"foo.go.dyndns.org":  false,
+-		"foo.blogspot.co.uk": false,
+-		"foo.intranet":       false,
+-	}
+-	for domain, want := range testCases {
+-		_, got := PublicSuffix(domain)
+-		if got != want {
+-			t.Errorf("%q: got %v, want %v", domain, got, want)
+-		}
+-	}
+-}
+-
+-var publicSuffixTestCases = []struct {
+-	domain, want string
+-}{
+-	// Empty string.
+-	{"", ""},
+-
+-	// The .ao rules are:
+-	// ao
+-	// ed.ao
+-	// gv.ao
+-	// og.ao
+-	// co.ao
+-	// pb.ao
+-	// it.ao
+-	{"ao", "ao"},
+-	{"www.ao", "ao"},
+-	{"pb.ao", "pb.ao"},
+-	{"www.pb.ao", "pb.ao"},
+-	{"www.xxx.yyy.zzz.pb.ao", "pb.ao"},
+-
+-	// The .ar rules are:
+-	// *.ar
+-	// !congresodelalengua3.ar
+-	// !educ.ar
+-	// !gobiernoelectronico.ar
+-	// !mecon.ar
+-	// !nacion.ar
+-	// !nic.ar
+-	// !promocion.ar
+-	// !retina.ar
+-	// !uba.ar
+-	// blogspot.com.ar
+-	{"ar", "ar"},
+-	{"www.ar", "www.ar"},
+-	{"nic.ar", "ar"},
+-	{"www.nic.ar", "ar"},
+-	{"com.ar", "com.ar"},
+-	{"www.com.ar", "com.ar"},
+-	{"blogspot.com.ar", "blogspot.com.ar"},
+-	{"www.blogspot.com.ar", "blogspot.com.ar"},
+-	{"www.xxx.yyy.zzz.blogspot.com.ar", "blogspot.com.ar"},
+-	{"logspot.com.ar", "com.ar"},
+-	{"zlogspot.com.ar", "com.ar"},
+-	{"zblogspot.com.ar", "com.ar"},
+-
+-	// The .arpa rules are:
+-	// e164.arpa
+-	// in-addr.arpa
+-	// ip6.arpa
+-	// iris.arpa
+-	// uri.arpa
+-	// urn.arpa
+-	{"arpa", "arpa"},
+-	{"www.arpa", "arpa"},
+-	{"urn.arpa", "urn.arpa"},
+-	{"www.urn.arpa", "urn.arpa"},
+-	{"www.xxx.yyy.zzz.urn.arpa", "urn.arpa"},
+-
+-	// The relevant {kobe,kyoto}.jp rules are:
+-	// jp
+-	// *.kobe.jp
+-	// !city.kobe.jp
+-	// kyoto.jp
+-	// ide.kyoto.jp
+-	{"jp", "jp"},
+-	{"kobe.jp", "jp"},
+-	{"c.kobe.jp", "c.kobe.jp"},
+-	{"b.c.kobe.jp", "c.kobe.jp"},
+-	{"a.b.c.kobe.jp", "c.kobe.jp"},
+-	{"city.kobe.jp", "kobe.jp"},
+-	{"www.city.kobe.jp", "kobe.jp"},
+-	{"kyoto.jp", "kyoto.jp"},
+-	{"test.kyoto.jp", "kyoto.jp"},
+-	{"ide.kyoto.jp", "ide.kyoto.jp"},
+-	{"b.ide.kyoto.jp", "ide.kyoto.jp"},
+-	{"a.b.ide.kyoto.jp", "ide.kyoto.jp"},
+-
+-	// The .tw rules are:
+-	// tw
+-	// edu.tw
+-	// gov.tw
+-	// mil.tw
+-	// com.tw
+-	// net.tw
+-	// org.tw
+-	// idv.tw
+-	// game.tw
+-	// ebiz.tw
+-	// club.tw
+-	// 網路.tw (xn--zf0ao64a.tw)
+-	// 組織.tw (xn--uc0atv.tw)
+-	// 商業.tw (xn--czrw28b.tw)
+-	// blogspot.tw
+-	{"tw", "tw"},
+-	{"aaa.tw", "tw"},
+-	{"www.aaa.tw", "tw"},
+-	{"xn--czrw28b.aaa.tw", "tw"},
+-	{"edu.tw", "edu.tw"},
+-	{"www.edu.tw", "edu.tw"},
+-	{"xn--czrw28b.edu.tw", "edu.tw"},
+-	{"xn--czrw28b.tw", "xn--czrw28b.tw"},
+-	{"www.xn--czrw28b.tw", "xn--czrw28b.tw"},
+-	{"xn--uc0atv.xn--czrw28b.tw", "xn--czrw28b.tw"},
+-	{"xn--kpry57d.tw", "tw"},
+-
+-	// The .uk rules are:
+-	// *.uk
+-	// *.sch.uk
+-	// !bl.uk
+-	// !british-library.uk
+-	// !jet.uk
+-	// !mod.uk
+-	// !national-library-scotland.uk
+-	// !nel.uk
+-	// !nic.uk
+-	// !nls.uk
+-	// !parliament.uk
+-	// blogspot.co.uk
+-	{"uk", "uk"},
+-	{"aaa.uk", "aaa.uk"},
+-	{"www.aaa.uk", "aaa.uk"},
+-	{"mod.uk", "uk"},
+-	{"www.mod.uk", "uk"},
+-	{"sch.uk", "sch.uk"},
+-	{"mod.sch.uk", "mod.sch.uk"},
+-	{"www.sch.uk", "www.sch.uk"},
+-	{"blogspot.co.uk", "blogspot.co.uk"},
+-	{"blogspot.nic.uk", "uk"},
+-	{"blogspot.sch.uk", "blogspot.sch.uk"},
+-
+-	// The .рф rules are
+-	// рф (xn--p1ai)
+-	{"xn--p1ai", "xn--p1ai"},
+-	{"aaa.xn--p1ai", "xn--p1ai"},
+-	{"www.xxx.yyy.xn--p1ai", "xn--p1ai"},
+-
+-	// The .zw rules are:
+-	// *.zw
+-	{"zw", "zw"},
+-	{"www.zw", "www.zw"},
+-	{"zzz.zw", "zzz.zw"},
+-	{"www.zzz.zw", "zzz.zw"},
+-	{"www.xxx.yyy.zzz.zw", "zzz.zw"},
+-
+-	// There are no .nosuchtld rules.
+-	{"nosuchtld", "nosuchtld"},
+-	{"foo.nosuchtld", "nosuchtld"},
+-	{"bar.foo.nosuchtld", "nosuchtld"},
+-}
+-
+-func BenchmarkPublicSuffix(b *testing.B) {
+-	for i := 0; i < b.N; i++ {
+-		for _, tc := range publicSuffixTestCases {
+-			List.PublicSuffix(tc.domain)
+-		}
+-	}
+-}
+-
+-func TestPublicSuffix(t *testing.T) {
+-	for _, tc := range publicSuffixTestCases {
+-		got := List.PublicSuffix(tc.domain)
+-		if got != tc.want {
+-			t.Errorf("%q: got %q, want %q", tc.domain, got, tc.want)
+-		}
+-	}
+-}
+-
+-func TestSlowPublicSuffix(t *testing.T) {
+-	for _, tc := range publicSuffixTestCases {
+-		got := slowPublicSuffix(tc.domain)
+-		if got != tc.want {
+-			t.Errorf("%q: got %q, want %q", tc.domain, got, tc.want)
+-		}
+-	}
+-}
+-
+-// slowPublicSuffix implements the canonical (but O(number of rules)) public
+-// suffix algorithm described at http://publicsuffix.org/list/.
+-//
+-// 1. Match domain against all rules and take note of the matching ones.
+-// 2. If no rules match, the prevailing rule is "*".
+-// 3. If more than one rule matches, the prevailing rule is the one which is an exception rule.
+-// 4. If there is no matching exception rule, the prevailing rule is the one with the most labels.
+-// 5. If the prevailing rule is a exception rule, modify it by removing the leftmost label.
+-// 6. The public suffix is the set of labels from the domain which directly match the labels of the prevailing rule (joined by dots).
+-// 7. The registered or registrable domain is the public suffix plus one additional label.
+-//
+-// This function returns the public suffix, not the registrable domain, and so
+-// it stops after step 6.
+-func slowPublicSuffix(domain string) string {
+-	match := func(rulePart, domainPart string) bool {
+-		switch rulePart[0] {
+-		case '*':
+-			return true
+-		case '!':
+-			return rulePart[1:] == domainPart
+-		}
+-		return rulePart == domainPart
+-	}
+-
+-	domainParts := strings.Split(domain, ".")
+-	var matchingRules [][]string
+-
+-loop:
+-	for _, rule := range rules {
+-		ruleParts := strings.Split(rule, ".")
+-		if len(domainParts) < len(ruleParts) {
+-			continue
+-		}
+-		for i := range ruleParts {
+-			rulePart := ruleParts[len(ruleParts)-1-i]
+-			domainPart := domainParts[len(domainParts)-1-i]
+-			if !match(rulePart, domainPart) {
+-				continue loop
+-			}
+-		}
+-		matchingRules = append(matchingRules, ruleParts)
+-	}
+-	if len(matchingRules) == 0 {
+-		matchingRules = append(matchingRules, []string{"*"})
+-	} else {
+-		sort.Sort(byPriority(matchingRules))
+-	}
+-	prevailing := matchingRules[0]
+-	if prevailing[0][0] == '!' {
+-		prevailing = prevailing[1:]
+-	}
+-	if prevailing[0][0] == '*' {
+-		replaced := domainParts[len(domainParts)-len(prevailing)]
+-		prevailing = append([]string{replaced}, prevailing[1:]...)
+-	}
+-	return strings.Join(prevailing, ".")
+-}
+-
+-type byPriority [][]string
+-
+-func (b byPriority) Len() int      { return len(b) }
+-func (b byPriority) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
+-func (b byPriority) Less(i, j int) bool {
+-	if b[i][0][0] == '!' {
+-		return true
+-	}
+-	if b[j][0][0] == '!' {
+-		return false
+-	}
+-	return len(b[i]) > len(b[j])
+-}
+-
+-// eTLDPlusOneTestCases come from
+-// http://mxr.mozilla.org/mozilla-central/source/netwerk/test/unit/data/test_psl.txt
+-var eTLDPlusOneTestCases = []struct {
+-	domain, want string
+-}{
+-	// Empty input.
+-	{"", ""},
+-	// Unlisted TLD.
+-	{"example", ""},
+-	{"example.example", "example.example"},
+-	{"b.example.example", "example.example"},
+-	{"a.b.example.example", "example.example"},
+-	// TLD with only 1 rule.
+-	{"biz", ""},
+-	{"domain.biz", "domain.biz"},
+-	{"b.domain.biz", "domain.biz"},
+-	{"a.b.domain.biz", "domain.biz"},
+-	// TLD with some 2-level rules.
+-	{"com", ""},
+-	{"example.com", "example.com"},
+-	{"b.example.com", "example.com"},
+-	{"a.b.example.com", "example.com"},
+-	{"uk.com", ""},
+-	{"example.uk.com", "example.uk.com"},
+-	{"b.example.uk.com", "example.uk.com"},
+-	{"a.b.example.uk.com", "example.uk.com"},
+-	{"test.ac", "test.ac"},
+-	// TLD with only 1 (wildcard) rule.
+-	{"cy", ""},
+-	{"c.cy", ""},
+-	{"b.c.cy", "b.c.cy"},
+-	{"a.b.c.cy", "b.c.cy"},
+-	// More complex TLD.
+-	{"jp", ""},
+-	{"test.jp", "test.jp"},
+-	{"www.test.jp", "test.jp"},
+-	{"ac.jp", ""},
+-	{"test.ac.jp", "test.ac.jp"},
+-	{"www.test.ac.jp", "test.ac.jp"},
+-	{"kyoto.jp", ""},
+-	{"test.kyoto.jp", "test.kyoto.jp"},
+-	{"ide.kyoto.jp", ""},
+-	{"b.ide.kyoto.jp", "b.ide.kyoto.jp"},
+-	{"a.b.ide.kyoto.jp", "b.ide.kyoto.jp"},
+-	{"c.kobe.jp", ""},
+-	{"b.c.kobe.jp", "b.c.kobe.jp"},
+-	{"a.b.c.kobe.jp", "b.c.kobe.jp"},
+-	{"city.kobe.jp", "city.kobe.jp"},
+-	{"www.city.kobe.jp", "city.kobe.jp"},
+-	// TLD with a wildcard rule and exceptions.
+-	{"om", ""},
+-	{"test.om", ""},
+-	{"b.test.om", "b.test.om"},
+-	{"a.b.test.om", "b.test.om"},
+-	{"songfest.om", "songfest.om"},
+-	{"www.songfest.om", "songfest.om"},
+-	// US K12.
+-	{"us", ""},
+-	{"test.us", "test.us"},
+-	{"www.test.us", "test.us"},
+-	{"ak.us", ""},
+-	{"test.ak.us", "test.ak.us"},
+-	{"www.test.ak.us", "test.ak.us"},
+-	{"k12.ak.us", ""},
+-	{"test.k12.ak.us", "test.k12.ak.us"},
+-	{"www.test.k12.ak.us", "test.k12.ak.us"},
+-}
+-
+-func TestEffectiveTLDPlusOne(t *testing.T) {
+-	for _, tc := range eTLDPlusOneTestCases {
+-		got, _ := EffectiveTLDPlusOne(tc.domain)
+-		if got != tc.want {
+-			t.Errorf("%q: got %q, want %q", tc.domain, got, tc.want)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/table.go docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/table.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/table.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/table.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,6877 +0,0 @@
+-// generated by go run gen.go; DO NOT EDIT
+-
+-package publicsuffix
+-
+-const version = "publicsuffix.org's effective_tld_names.dat, hg revision 45cfff9c781f (2013-04-23)"
+-
+-const (
+-	nodesBitsChildren   = 9
+-	nodesBitsICANN      = 1
+-	nodesBitsTextOffset = 15
+-	nodesBitsTextLength = 6
+-
+-	childrenBitsWildcard = 1
+-	childrenBitsNodeType = 2
+-	childrenBitsHi       = 14
+-	childrenBitsLo       = 14
+-)
+-
+-const (
+-	nodeTypeNormal     = 0
+-	nodeTypeException  = 1
+-	nodeTypeParentOnly = 2
+-)
+-
+-// numTLD is the number of top level domains.
+-const numTLD = 310
+-
+-// Text is the combined text of all labels.
+-const text = "bernrtarantokyotangoceanographichisokananporovnoceanographiquebe" +
+-	"catanzarowfarmsteadrobakrehamnaturbruksgymnaturhistorisches3-us-" +
+-	"west-2beskidyn-o-saurlandebuildingjerstadotsurugashimanxjeonname" +
+-	"rikawauebetainaboxfordeatnuernbergjesdalivornohtawaramotoineppul" +
+-	"messinatsukigatakasakiiyamanobeeldengeluidyndns-at-workinggroupo" +
+-	"wiatargindianapolis-a-bloggerbielawalesundyndns-blogdns3-website" +
+-	"-ap-northeast-1biellaakesvuemieleccebieszczadygeyachiyodabievat-" +
+-	"band-campobassobetsuldalvdalaskanittedalaheadjudygarlandyndns-fr" +
+-	"eemasonryonagoyabifukagawallonieruchomoscienceandindustrynatuurw" +
+-	"etenschappenaumburgjovikashiharabihorologyonaguniversityumenaust" +
+-	"dalosangeles3-website-ap-southeast-1bilbaogakievenassisibenikiho" +
+-	"kumakogenebakkeshibechambagricultureklambulancertificationavalot" +
+-	"eneindianmarketplacebillustrationavigationavuotnakanojosoyrovigo" +
+-	"palanakanotoddenawrastelecomoldebiolsztynsettlers3-website-ap-so" +
+-	"utheast-2birdartdecodynaliascoli-picenogiessenglandyndns-homeftp" +
+-	"access3-website-eu-west-1birkenesoddtangenoamishirasatodabirthpl" +
+-	"acebjarkoyoriikashiwarabjerkreimperiabjugnayoromutashinainfoggia" +
+-	"bmdyndns-ipaleosloppadovanylveniceboltarnobrzegyptianpachigasaki" +
+-	"ds3-website-sa-east-1bolzanordlandyndns-mailouvrebomloabaths3-we" +
+-	"bsite-us-east-1bonnikkoebenhavnikolaevenessebyglandyndns-office-" +
+-	"on-the-webhopocznorfolkebiblebtimnetzgorzeleccoloradoplateaukraa" +
+-	"nghkemerovoldavvenjargalsadoes-itarumizusawabostonakijinsekikoge" +
+-	"novarabotanicalgardeninomiyakonojournalismolenskashiwazakinsuran" +
+-	"cebotanicgardenirasakintelligencebotanycateringebunkyonanaoshima" +
+-	"bariakesennumalvikasukabeiarndyndns-pics3-website-us-gov-west-1b" +
+-	"ozentsujiiebrandywinevalleyukuhashimoichinosekigaharabrasiljan-m" +
+-	"ayenishiawakurabremangerbresciabrindisiellakasamatsudolls3-websi" +
+-	"te-us-west-1bristolgamvikasumigaurawa-mazowszexeterbritish-libra" +
+-	"ryazannakadomari-elasticbeanstalkasuyanagawabritishcolumbialowie" +
+-	"zagannefrankfurtatarstanishiazainuyamanouchikuhokuryugasakitashi" +
+-	"obarabroadcastleasinglassassinational-library-scotlandes3-websit" +
+-	"e-us-west-2broke-itateshinanomachildrensgardenishigoshikiminokam" +
+-	"oenairguardyndns-remoteginankokubunjis-a-bulls-fanishiharabroker" +
+-	"bronnoysundyndns-serverbaniabrumunddalowiczest-a-la-maisondre-la" +
+-	"ndyndns-webetsuikikugawabrunelblagdenesnaaseralingenkainanaejrie" +
+-	"tis-a-candidatebrusselsakuragawabruxellesjamalborkangerbryanskle" +
+-	"ppgliwicebrynewjerseyurihonjostrodabvbalatinabearalvahkijogaszko" +
+-	"la-speziaustrheimatunduhrennesoygardeniwaizumiotsukuibigawaustev" +
+-	"ollimanowarudasnesoddenmarkhangelskjaknoluoktaikicks-assedicaser" +
+-	"taishinomakikuchikumagayagawatchandclockarlsoyekaterinburgdynias" +
+-	"kvollezajskariyamegurobihirosakikamijimaostalbansnasabaerobatica" +
+-	"sadelamonedagroks-theaternopilawakkanaibetsubamericanartanddesig" +
+-	"nieznodawaraholtalendoftheinternethnologyeongnamegawakuyabukibic" +
+-	"huozudmurtiamusementakkofuelverumbone-burg12bwhalinglogowildlife" +
+-	"djelenia-gorabzgradyndns-wikimobetsurutaharacivilaviationishinoo" +
+-	"motegotembaixadacivilisationishinoshimacivilizationishiokoppegar" +
+-	"dcivilwarmiasakuchinotsuchiurakawaclintonoshonaip6boneat-urlewis" +
+-	"millerhcloudfrontariobanazawaeroportalabamagasakishimabarahkkera" +
+-	"vjudaicaarborteaches-yogasawaragusartsaritsynarviikamogawagrinet" +
+-	"cmwegrowestfalenarvik-uralsk12000cntaxis-a-bruinsfanishitosashim" +
+-	"izunaminamiawajikis-a-cubicle-slaveroyrviknakaniikawatanaguracol" +
+-	"umbusantiquesakyotanabellunordkappspotenzachpomorskienishiwakis-" +
+-	"a-democratgorycomputerhistoryofscience-fictionissedalutskazoolog" +
+-	"ycongresodelalengua3consuladoomdnsaliascolipicenonoichikawamisat" +
+-	"obishimagnitkagaminord-aurdaltoadigeiseiroudaegubalestrandaberga" +
+-	"moarekepnorddalindasiauthordalandivtasvuodnaharimaniwakurate164c" +
+-	"onsultanthropologyconsultingvolluxembourgminakamichigangwonisshi" +
+-	"ngotsukisofukushimarburgqchattanooganordreisa-hockeynutazulsando" +
+-	"yusuharacontemporaryartgalleryggetmyipanamaconventjeldsundcooper" +
+-	"aunitelevisioniyodogawacopenhagentsalangenlsalatjomelhusdecorati" +
+-	"veartsaltdaluzernrwritesthisblogspotowncorporationcorvettexashor" +
+-	"okanaiecosenzakopanewyorkshireggiocalabriacostumediaphonefosshnc" +
+-	"ountysfjordcqhabororoskolegnicambridgeorgiacranbrookuwanamizuhob" +
+-	"by-sitextileborkdalvivcheltenham-radio-openair-surveillancecremo" +
+-	"nagatorockartuzycrewroclawwwcrimeacrotoneculturalcentercuneocxn-" +
+-	"-3e0b707ecymrussiafieldfigueresalvadordalillehammerfest-le-patro" +
+-	"ndheiminamifuranofilateliafilminamiiserniafineartsalzburgrimstad" +
+-	"finlandfinnoyfirenzefirminamiizukamishihoronobeokamikoaniihamata" +
+-	"makawajimashikedafitjarchitecturennebudejjuedischesapeakebayfjal" +
+-	"erdalflekkefjordflesbergenflightoyakokamiokamikitayamatotakadafl" +
+-	"ogisticsamegawafloraflorencefloridaflorokunohealthruhereggioemil" +
+-	"iafndfolldalfor-better-thanawafor-ourfor-somedicaltanissettaitog" +
+-	"itsulikes-piefor-thedmarkchristiansburgroks-thisayamanashichikas" +
+-	"hukujukuriyamaritimodalenforceforgotdnsamnangerforli-cesena-forl" +
+-	"icesenaforlikescandynathomebuiltoyokawaforsandasuolodingenfortmi" +
+-	"ssoulan-udell-ogliastrakhanamigawafortworthachijorpelandforumina" +
+-	"mimakis-a-designerfosnesanfranciscolonialwilliamsburgrongafother" +
+-	"fredrikstadaokagakinkobeardudinkakegawalbrzychampionshiparachuti" +
+-	"ngrossetouchijiwadepotaruis-a-doctorskenfreiburgroundhandlingroz" +
+-	"nyfreightoyonakagyokutomaritimekeepingrparaglidingruenoharafribo" +
+-	"urgsmolajollanbibaidarfrognfrolandfrom-akunemurorankoshigayachim" +
+-	"atainaikawababia-gorakkestadultoyonezawafrom-alfrom-arqldfrom-az" +
+-	"hytomyrfrom-cahcesuolocalhistorybnikahokutoeigersundfrom-collect" +
+-	"ionfrom-ctoyonofrom-dchelyabinskodjeffersongfest-a-la-masionishi" +
+-	"katakasugais-a-celticsfanishikatsuragis-a-chefauskedsmokorsettle" +
+-	"mentateyamafrom-dellogliastraderfrom-flakstadtoyookanrafrom-gaus" +
+-	"dalfrom-higashiagatsumagoizumizakirafrom-iafrom-idfrom-ilfrom-in" +
+-	"cheonfrom-ksangouvicenzaporizhzheguris-a-financialadvisor-aurdal" +
+-	"from-kyotobetsuwanouchikushinonsennanburyatiafrom-lahppiacenzama" +
+-	"microlightoyosatomobeneventochiokinoshimalselvendrellfrom-mannos" +
+-	"hirooshikamaishimodatefrom-mdfrom-medio-campidano-mediocampidano" +
+-	"mediofrom-midoringerikefrom-mnfrom-mochizukirkenesanjournalistav" +
+-	"ernfrom-msannanfrom-mtoyotaris-a-geekgunmarnardalfrom-ncherkasyd" +
+-	"neyusuissembokumamotoyamatsumaebashikaois-a-conservativefsnillfj" +
+-	"ordyroyuulvikaszubytomakomaibarafrom-ndfrom-nefrom-nhachinohekin" +
+-	"annestadfrom-njessheiminamiminowafrom-nminamiogunionfrom-nvdonsk" +
+-	"habarovskhakassiafrom-nyfrom-ohdafrom-oketogonohejis-a-greenfrom" +
+-	"-orlandfrom-pacifichernigovernmentatsunostrolekanazawafrom-prdfr" +
+-	"om-rissagaeroclubindallaspeziamallamadridvrdnsdojobojis-a-guruns" +
+-	"akatakatsukis-a-hard-workerfrom-schlesischesannohemnesantabarbar" +
+-	"afrom-sdfrom-tnfrom-txn--45brj9chernihivanovosibirskydivingloppe" +
+-	"nzaogashimadachicagobiernoelectronicoalstahaugesundfrom-utsiracu" +
+-	"sagamiharafrom-vadsoftwaremarkerfrom-vtoyotomiyazakis-a-hunterfr" +
+-	"om-wafrom-wielunnerfrom-wvenneslaskerfrom-wyfrosinonefrostargard" +
+-	"froyaitaiwanair-traffic-controlleyfstarostwodzislawfujiiderafuji" +
+-	"kawaguchikonefujiminohkurafujinomiyadafujiokayamansionsantacruzh" +
+-	"gorodfujisatoshoofujisawafujishiroishidakabiratoridelmenhorstalo" +
+-	"wa-wolawafujiyoshidafukayabeauxartsandcraftsantafederationfukuch" +
+-	"iyamadafukudominichernivtsiemenswedenishikawazukanagawafukuis-a-" +
+-	"knightoyotsukaidofukumitsukefukuokazakirovogradoyfukuroishigakir" +
+-	"yufuefukihabikinokawaircraftoyourafukusakisarazunzenfukuyamagata" +
+-	"jimidsundfunabashiriuchinadafunagatajirittogurafunahashikamiamak" +
+-	"usatsumasendaisenfundaciofuoiskujitawarafuosskoczowfurniturepbod" +
+-	"yndns-at-homednsanukis-a-landscaperugiafurubiraquariuminamisanri" +
+-	"kubetsurgeonshalloffameiwamatsunofurudonostiafurukawaharafusognd" +
+-	"alfussaikishiwadafutabayamaguchinomigawafuttsunanjohanamakinohar" +
+-	"afylkesbiblfyresdalhakubanhakuis-a-lawyerhakusandnessjoenhaldenh" +
+-	"alsaintlouis-a-anarchistoiretinazawahammarfeastafricapebretonami" +
+-	"bungotakadahamurakamigoris-a-liberalhangglidinguovdageaidnuoroms" +
+-	"koguchikuzenhannanmokuizumodellingushikamifuranotairesaotomeldal" +
+-	"hannoverhallancashirehanyuzenhapmirkutskharkivguernseyhappoumuen" +
+-	"chenhareidsbergbauernurembergwangjurharstadharvestcelebrationhas" +
+-	"amarahasaminami-alpschoenbrunnhasudahasvikharkoveronamsskoganeis" +
+-	"-a-libertarianhatogayakagehatoyamazakitahiroshimarugame-hostre-t" +
+-	"otenkawahatsukaichiharahattfjelldalhawaiijimarumorimachidahayash" +
+-	"imamotobusheyhazuminobusenetozsdehemsedalhigashihiroshimanehigas" +
+-	"hiizumozakitakatakamoriokamakurazakitakyushuaiahigashikagawahiga" +
+-	"shikagurasoedahigashikawakitaaikitamidtre-gauldalhigashikurumedi" +
+-	"zinhistorischesapporohigashimatsushimarylandhigashimatsuyamakita" +
+-	"akitadaitoigawahigashimurayamalatvuopmifunehigashinarusells-for-" +
+-	"lessaratoverranhigashinehigashiomihachimanchesterhigashiosakasay" +
+-	"amamotorcycleikangerhigashishirakawamatakanabedzin-addrammenviro" +
+-	"nmentalconservationhigashisumiyoshikawaminamiaikitamotosumidatla" +
+-	"ntichiryuoharuovatmpalermomanposts-and-telecommunicationsakurais" +
+-	"-a-cpaderbornishimerakerhigashitsunotteroyhigashiurausukitanakag" +
+-	"usukumodenakamuratakanezawahigashiyamatokoriyamanakakogawahigash" +
+-	"iyodogawahigashiyoshinogaris-a-linux-useranishiaritabashiibahcca" +
+-	"vuotnagaokakyotambadajozoraumaizurubtsovskjervoystre-slidrettran" +
+-	"amsosnowiechitachinakagawawindmillucernehiraizumisatohmarylhurst" +
+-	"athelleirfjordhirakatashinagawahiranairlinedre-eikerimo-i-ranaci" +
+-	"onhirarahiratsukagawahirayakumodernhistorichousesarpsborgxn--54b" +
+-	"7fta0cchernovtsykkylveneziahitachiomiyaginowaniigatakahamantovak" +
+-	"sdalhitachiotagoogleapisa-geekhersoniikappulawyhitoyoshimihamada" +
+-	"hitradingzjetozawahjartdalhjelmelandholeckobierzycehomelinuxn--5" +
+-	"5qx5dhomeunixn--90a3academykolaivano-frankivskiervaapsteiermarkh" +
+-	"melnitskiyamasoyhongooglecodespotranbyhonjyoichiropractichitoset" +
+-	"ogakushimotoganewportlligatewayuzawahornindalhortendofinternetra" +
+-	"ni-andria-barletta-trani-andriahoteledatabaseballangenhoyangerho" +
+-	"ylandetroitraniandriabarlettatraniandriahuissier-justicehumaniti" +
+-	"esarufutsunomiyawakasaikaitakoelnhurdalhurumajis-a-llamasfjorden" +
+-	"hyugawaraissmarterthanyouthachiojiyaizuwakamatsubushikusakadogaw" +
+-	"aiwatarailwayiwateiwatsukiyonojfkhvestbyjgorajpnkoperviklabuysho" +
+-	"usesavannahgakoryolbia-tempio-olbiatempioolbialystokkekosaigawak" +
+-	"osakaerodromeconferencechirebungoonomichinomiyakeisenbahnkoseis-" +
+-	"a-personaltrainerkoshimizumakis-a-photographeroykoshunantokamach" +
+-	"ippubetsubetsugarustkanzakiyosumitakaginozawaonsenkostromahabmer" +
+-	"kosugekotohiradomurakotourakouhokutamakis-a-playerkounosumypetsa" +
+-	"yokkaichirurgiens-dentisteshikagamiishikarikaturindalkouyamasuda" +
+-	"kouzushimateramoduminamiuonumatsusakahogis-a-republicanadakozaga" +
+-	"wakozakis-a-rockstarachowicekrageroticarbonia-iglesias-carboniai" +
+-	"glesiascarboniakrakowkrasnoyarskmsaves-the-whalessandria-trani-b" +
+-	"arletta-andriatranibarlettaandriakristiansandefjordkristiansundk" +
+-	"rodsheradkrokstadelvantaakryminamiyamashirokawanabellevuedavvesi" +
+-	"idazaifudaigobodoesntexisteingeekokonoekumatorinokumejimatsumoto" +
+-	"fukekumenanyokaichibaikaliszczytnord-odalkunisakis-a-socialistat" +
+-	"ionkunitachiaraisaijoshkar-olangevagsoykunitomigusukukis-a-soxfa" +
+-	"nkunneppuwajimakunstsammlungkunstunddesignkurekurgankurobelgorod" +
+-	"oykurogimimatakasagorgekuroisognekuromatsunairportland-4-salerno" +
+-	"gatagajoetsuruokadenagahamaroyerotikafjordkurotakikawasakis-a-st" +
+-	"udentranoykurskolobrzegersundkushirogawakustanairtraffichocolate" +
+-	"lemarkatowicekusunndalkutchandakutnokuzbassnoasaitamatsukuris-a-" +
+-	"teacherkassykuzumakis-a-techietis-a-nascarfankvafjordkvalsundkva" +
+-	"msterdamberkeleykvanangenkvinesdalkvinnheradkviteseidskogkvitsoy" +
+-	"kwkyowariasahikawakyuragithubalsanagochihayaakasakawagoebinorils" +
+-	"karpaczeladzgoravocataniaustraliaurskog-holandiscoveryokamikawan" +
+-	"ehonbetsurugildeskalmykiasmatartcentertainmentamayukibestadgcagl" +
+-	"iaridagawassamukawatarikuzentakatairaosteroykengerdalto-adigeelv" +
+-	"inckareliaomoriguchiharamlierneuest-mon-blogueurmishimatsuuramis" +
+-	"sileitungsenmisugitokashikis-an-actormitakeharamitourisminanomit" +
+-	"oyoakemiuramiyazumiyotamanomjondalenmombetsurgutrentomskomaganem" +
+-	"oneyagawamonmouthachirogatakahashimamakitagawamonticellondonetsk" +
+-	"omakis-a-painteractivegarsheiheijis-a-musicianmontrealestatecoun" +
+-	"cilmonza-brianzamonza-e-della-brianzamonzabrianzamonzaebrianzamo" +
+-	"nzaedellabrianzamordoviamoriyamatsuzakis-an-actressasayamamoriyo" +
+-	"shiokamisunagawamoroyamatta-varjjatrevisolaquilapyatigorskomatsu" +
+-	"shimassa-carrara-massacarraramassabuzenmoscowmoseushistorymosjoe" +
+-	"nmoskeneschokoladenmosreggio-calabriamosschoolkuszlgmosvikomforb" +
+-	"allooninggfarmerseinebinagisodegaurautomotivelandivttasvuotnakai" +
+-	"wamizawaustinnasushiobarastronomyokohamamatsudaejeonbukarmoyokos" +
+-	"ukaratsuginamikatagamilitaryokote12muenstermugis-an-anarchistori" +
+-	"calsocietysnesaseboknowsitallmuikamitondabayashiogamagoriziamuko" +
+-	"chikuseihigashichichibuskerudinewmexicoldwarszawashingtondchofun" +
+-	"atoristanore-og-uvdalukowloclawekatsushikabelaugustowadagestange" +
+-	"mologicaliforniamulhousells-itriesteamurskiptveterinairecreation" +
+-	"munakatanemuncieszynmuosattemurmanskomitamamuramurotorcraftroand" +
+-	"inosaureshinomusashimurayamamusashinodesashibetsukumiyamazonawsc" +
+-	"hweizhevskommunalforbundmuseetrogstadmuseumverenigingmutsuzawamy" +
+-	"photoshimamytis-a-bookkeepermincommunitysvardopartis-an-engineer" +
+-	"pasadenakasatsunais-an-entertainerpassenger-associationpaviapesc" +
+-	"arapharmaciensciencecentersciencehistorypharmacyberlevagangaviik" +
+-	"arugaulardalphiladelphiaareadmyblogsitephilatelyphoenixn--aropor" +
+-	"t-byaotsuzakanonjis-byklebesbydgoszczecincinnationalfirearmsaska" +
+-	"tchewanphotographyogoris-certifiedogawarabikomaezakirunosegawapi" +
+-	"lotscientisteigenpippupiszminnesotaketakashimatsushigepittsburgh" +
+-	"ofermobarapkommuneplanetariumisakis-a-therapistoiaplantationplan" +
+-	"tscrapper-siteplazaplchonangokasejnynysafetychyllestadplorenskog" +
+-	"podhaleksvikomonopodlasiedlcepodzonepoltavaresearchaeologicalpom" +
+-	"orzeszowpordenoneporsangerporsangujolsterporsgrunnanpoznanpreser" +
+-	"vationpresidioprincipesaro-urbino-pesarourbinopesaromantelekommu" +
+-	"nikationprivneprochowiceproductionproferraraprojectromsolognepro" +
+-	"mocionpruszkowprzeworskogpsienakatombetsurnadalptzparliamentroms" +
+-	"akakinokis-an-artistavangerpvtrusteepwpzwqslattumisasaguris-an-a" +
+-	"ccountantransportrapaniizashellaskimitsubatamiastarnbergsherbroo" +
+-	"kegawashimojis-goneshimokawashimokitayamashimonitayanagis-into-a" +
+-	"nimeeresassaris-a-nursells-for-usgardenshimonosekikawashimosuwal" +
+-	"kis-into-carsatxn--9dbhblg6dielddanuorriminingshimotsukeshimotsu" +
+-	"mashingulenshinichinanshinjoyoitakaokamchatkameokameyamashinashi" +
+-	"kiyosatohnoshowashinjukumanoshinkamigotoyohashimotokorozawashins" +
+-	"hinotsusakis-into-cartoonsaudashinshiroshintokushimashintomikasa" +
+-	"harashinyoshitomiokaneyamazoeshiojirishirifujiedashioyanaizushir" +
+-	"ahamatonbetsusonoshirakoenigshiranukaniepceshiraois-into-gamesav" +
+-	"erdeshiraokanmakiyosemiteshiratakahagis-leetravellinoshishikuis-" +
+-	"lostfoldshisokndalshisuifuettertdasnetzshitaramashizukuishimofus" +
+-	"aitokonamegatakatoris-not-certifieducatorahimeshimageandsoundand" +
+-	"visionshizuokannamihokkaidoshibuyahabaghdadsigdalsimbirskomvuxn-" +
+-	"-andy-irasimple-urlsirdalsldslgslupskovestfoldsnzsolundsomasvuot" +
+-	"nakayamasomnakhodkamitsuesoosopotularssonsor-odalsor-varangersor" +
+-	"foldsorreisahayakawakamiichikaiseiyokoshibahikariwanumatakayamas" +
+-	"ortlandsorumisawasouthcarolinaklodzkodairasouthwesterniiminamias" +
+-	"higarasowaspace-to-renturystykanumazuryspbalsfjordlugolekalugans" +
+-	"karuizawavoues3-ap-northeast-1spjelkavikonantanangerspydebergsqu" +
+-	"arendalenvikingatlantakazakis-savedunetnedalsrvestneseoullensake" +
+-	"rsteinkjerusalembetsukubahcavuotnagaivuotnagakutechnologystjohns" +
+-	"tjordalshalsenstockholmestrandstor-elvdalstordalstorenburgstorfj" +
+-	"ordstpetersburgstuff-4-salevangerstuttgartuvarggatverdalsuzukano" +
+-	"yaltaijis-slickhmelnytskyiversaillesauheradsvalbardurhamburgsvei" +
+-	"osvelvikongsbergsvizzeraswidnicarrierswiebodzinderoyswinoujscien" +
+-	"ceandhistorysxn--asky-iravestre-slidreamhosterservebbscrappingve" +
+-	"stre-totenris-uberleetrdvestvagoyvevelstadvibo-valentiavibovalen" +
+-	"tiavideovinnicartoonarteducationalchikugojomedecinemamurogawatch" +
+-	"-and-clockongsvingervinnytsiavirginiavirtualvirtuelviterbolognag" +
+-	"asakikonaioirasecngvladikavkazanvladimirumasakitaurayasudavladiv" +
+-	"ostokaizukarasjohkamiminerserveftparmavlogvolgogradvolkenkunders" +
+-	"eaportvologdanskoninohembygdsforbundvolyngdalvoronezhitomirvosse" +
+-	"vangenvrnvyatkarasjokonskowolansavonakatsugawaxn--bdddj-mrabdxn-" +
+-	"-bearalvhki-y4axn--berlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-" +
+-	"k7axn--bidr-5nachikatsuuraxn--bievt-0qaxn--bjarky-fyaroslavlaand" +
+-	"erenxn--bjddar-ptakinouexn--blt-elaborxn--bmlo-grajewolominamata" +
+-	"ketomisatokuyamaxn--bod-2napleservegame-servercellillesandiegorl" +
+-	"icexn--brnny-wuaccident-investigationjukudoyamaceratabusebastopo" +
+-	"logyeongbukonyvelomzaporizhzhiaxn--brnnysund-m8accident-preventi" +
+-	"onlinebraskaunbieidsvollxn--brum-voagatxn--btsfjord-9zaxn--ciqpn" +
+-	"xn--clchc0ea0b2g2a9gcdxn--comunicaes-v6a2oxn--correios-e-telecom" +
+-	"unicaes-ghc29axn--czrw28bambleangaviikagoshimallorcadaques3-ap-s" +
+-	"outheast-2xn--davvenjrga-y4axn--dnna-grandrapidserviceseminexn--" +
+-	"drbak-wuaxn--dyry-iraxn--eveni-0qa01gaxn--finny-yuaxn--fiqs8sett" +
+-	"surreyxn--fiqz9sevastopolelxn--fjord-lraxn--fl-ziaxn--flor-jraxn" +
+-	"--fpcrj9c3dxn--frde-granexn--frna-woarais-very-badaddjamisongdal" +
+-	"enxn--frya-hraxn--fzc2c9e2choseikakudamatsuedtirollagrarboretumi" +
+-	"namidaitomanmobileirvikatsuyamashikokuchuostrowiecfarsundyndns-w" +
+-	"orkshoppdaluccargodonnagasuketrzynishiizunazukis-a-catererxn--ge" +
+-	"crj9choshibukawaxn--ggaviika-8ya47hadanotogawaxn--gildeskl-g0axn" +
+-	"--givuotna-8yasakaiminatonsbergxn--gjvik-wuaxn--gls-elachoyodont" +
+-	"existmein-the-bandaiwafunewspaperxn--gmq050is-very-evillagematsu" +
+-	"barakawachinaganoharaokinawashirosatobamagazinewhampshireggio-em" +
+-	"iliaxn--gmqw5axn--h-2familyngenxn--h1aeghadselfiparisor-fronxn--" +
+-	"h2brj9chtraeumtgeradefenseljejuifcharterxn--hbmer-xqaxn--hcesuol" +
+-	"o-7ya35barcelonagaravennagareyamalopolskanlandnepropetrovskaruma" +
+-	"intenancebizenakamagayahikobayashijonawatehimejiheyakutiaxn--her" +
+-	"y-iraxn--hgebostad-g3axn--hmmrfeasta-s4achungbukautokeinostrowwl" +
+-	"kpalmspringsakerxn--hnefoss-q1axn--hobl-iraxn--holtlen-hxaxn--hp" +
+-	"mir-xqaxn--hyanger-q1axn--hylandet-54axn--indery-fyasugis-very-g" +
+-	"ooddaxn--io0a7is-very-nicexn--j1amhaebaruminamitanexn--j6w193gxn" +
+-	"--jlster-byasuokarasuyamashikizunokunimilanoxn--jrpeland-54axn--" +
+-	"karmy-yuaxn--kfjord-iuaxn--klbu-woaxn--koluokta-7ya57hagaxn--kpr" +
+-	"w13dxn--kpry57dxn--krager-gyatominamibosojaworznoxn--kranghke-b0" +
+-	"axn--krdsherad-m8axn--krehamn-dxaxn--krjohka-hwab49jevnakershusc" +
+-	"ulturexn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-fyatsukaratexn--kvn" +
+-	"angen-k0axn--l-1fareastcoastaldefencexn--laheadju-7yatsushiroxn-" +
+-	"-langevg-jxaxn--lcvr32dxn--ldingen-q1axn--leagaviika-52barreaudn" +
+-	"edalnationalheritagembroideryokozemergencyclopedicasinordre-land" +
+-	"nipropetrovskasaokaminokawanishiaizubangepilepsyzranzanativeamer" +
+-	"icanantiques3-eu-west-1xn--lesund-huaxn--lgbbat1ad8jewelryxn--lg" +
+-	"rd-poachungnamdalseidfjordxn--lhppi-xqaxn--linds-pratottoris-ver" +
+-	"y-sweetreexn--lns-qlarvikooris-a-patsfanxn--loabt-0qaxn--lrdal-s" +
+-	"raxn--lrenskog-54axn--lt-liachuvashiaxn--lten-granvindafjordxn--" +
+-	"lury-iraxn--mely-iraxn--merker-kuaxn--mgb2ddeshacknetrysilkomoro" +
+-	"tsukamisatohoboldlygoingnowhere-for-moregontrailroadxn--mgb9awbf" +
+-	"etsundxn--mgba3a4f16axn--mgba3a4franarashinoharaxn--mgbaam7a8hag" +
+-	"ebostadxn--mgbayh7gpaduaxn--mgbbh1a71exn--mgbc0a9azcgxn--mgberp4" +
+-	"a5d4a87gxn--mgberp4a5d4arxn--mgbqly7c0a67fbciminamiechizenishino" +
+-	"miyashironoxn--mgbqly7cvafranziskanerimarinexn--mgbtf8flandersha" +
+-	"kotankzxn--mjndalen-64axn--mk0axis-with-thebandovre-eikerxn--mla" +
+-	"tvuopmi-s4axn--mli-tlavagiskexn--mlselv-iuaxn--moreke-juaxn--mos" +
+-	"jen-eyawaraxn--mot-tlavangenxn--mre-og-romsdal-qqbarrel-of-knowl" +
+-	"edgeologyomitanobiraxn--msy-ula0haibarakitahatakahatakaishimogos" +
+-	"enxn--mtta-vrjjat-k7afgretajimakanegasakisosakitagatakaharunjarg" +
+-	"axn--muost-0qaxn--mxtq1misconfusedxn--nmesjevuemie-tcbajddarchae" +
+-	"ologyxn--nnx388axn--nodessakuhokksundxn--nry-yla5gxn--nttery-bya" +
+-	"esellsyourhomeiparochesterxn--nvuotna-hwaxn--o3cw4hakatanohataka" +
+-	"matsukawaxn--od0algxn--od0aq3barrell-of-knowledgeometre-experts-" +
+-	"comptables3-fips-us-gov-west-1xn--ogbpf8flatangerxn--oppegrd-ixa" +
+-	"xn--ostery-fyawatahamaxn--osyro-wuaxn--p1aisesakiwakunigamiharus" +
+-	"livinghistoryxn--pgbs0dhakodatexn--porsgu-sta26fhskazunoxn--rady" +
+-	"-iraxn--rdal-poaxn--rde-ulaxn--rdy-0nabarisleofmandalxn--rennesy" +
+-	"-v1axn--rhkkervju-01afhvalerxn--rholt-mragoworse-thandsondriodej" +
+-	"aneiroxn--risa-5naritakurashikisshikiyokawaraxn--risr-iraxn--rla" +
+-	"nd-uuaxn--rlingen-mxaxn--rmskog-byaxn--rros-gratangenxn--rskog-u" +
+-	"uaxn--rst-0naroyxn--rsta-francaiseharaxn--ryken-vuaxn--ryrvik-by" +
+-	"axn--s-1farmequipmentxn--s9brj9circuscountryestateofdelawarezzoo" +
+-	"logicaluroyuzhno-sakhalinskazimierz-dolnyxn--sandnessjen-ogbasel" +
+-	"burgjemnes3-sa-east-1xn--sandy-yuaxn--seral-lraxn--sgne-grazxn--" +
+-	"skierv-utazaskoyabenord-fronxn--skjervy-v1axn--skjk-soaxn--sknit" +
+-	"-yqaxn--sknland-fxaxn--slat-5narusawaxn--slt-elabourxn--smla-hra" +
+-	"xn--smna-graxn--snase-nraxn--sndre-land-0cbgxn--snes-poaxn--snsa" +
+-	"-roaxn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-varang" +
+-	"er-ggbashkiriaxn--srfold-byaxn--srreisa-q1axn--srum-graxn--stfol" +
+-	"d-9xaxn--stjrdal-s1axn--stjrdalshalsen-sqbatochigifuchukotkakami" +
+-	"gaharaxn--stre-toten-zcbatsfjordpalacevje-og-hornnessetagayaselj" +
+-	"ordrangedalinzaishobarakpetroleumeloyalistavropolkowicexhibition" +
+-	"aturalhistorymuseumcenterxn--tjme-hraxn--tn0agrigentomologyeongg" +
+-	"iehtavuoatnaamesjevuemielnoboribetsuitachikawakayamagadanconagaw" +
+-	"akembuchikujobsharis-foundationxn--tnsberg-q1axn--trany-yuaxn--t" +
+-	"rgstad-r1axn--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvedestr" +
+-	"andxn--uc0ay4axn--unjrga-rtakizawaxn--vads-jraxn--vard-jraxn--ve" +
+-	"grshei-c0axn--vestvgy-ixa6oxn--vg-yiabeppuboleslawiecastresistan" +
+-	"cexpressexchangets-itambovaroyonabarullensvangjerdrumemorialipet" +
+-	"skashibatakarazukaminoyamatsuriitatebayashichinohelsinkitakamiiz" +
+-	"umisanoksnes3-us-gov-west-1xn--vgan-qoaxn--vgsy-qoa0jewishartren" +
+-	"tinoxn--vler-qoaxn--vre-eiker-k8axn--vrggt-xqadxn--vry-yla5gxn--" +
+-	"wcvs22dxn--wgbh1citydalusterxn--wgbl6axn--xkc2al3hye2axn--xkc2dl" +
+-	"3a5ee0hakonexn--yer-znarutokigawaxn--yfro4i67oxn--ygarden-p1axn-" +
+-	"-ygbi2ammxn--aurskog-hland-jnbaltimore-og-romsdalindesnes3-ap-so" +
+-	"utheast-1xn--ystre-slidre-ujberlincolnaturalsciencesnaturelles3-" +
+-	"us-west-1xn--zf0ao64axn--zf0avxn--avery-yuasakegawaxxxn--b-5gaxz"
+-
+-// nodes is the list of nodes. Each node is represented as a uint32, which
+-// encodes the node's children, wildcard bit and node type (as an index into
+-// the children array), ICANN bit and text.
+-//
+-// In the //-comment after each node's data, the nodes indexes of the children
+-// are formatted as (n0x1234-n0x1256), with * denoting the wildcard bit. The
+-// nodeType is printed as + for normal, ! for exception, and o for parent-only
+-// nodes that have children but don't match a domain label in their own right.
+-// An I denotes an ICANN domain.
+-//
+-// The layout within the uint32, from MSB to LSB, is:
+-//	[ 1 bits] unused
+-//	[ 9 bits] children index
+-//	[ 1 bits] ICANN bit
+-//	[15 bits] text index
+-//	[ 6 bits] text length
+-var nodes = [...]uint32{
+-	0x01a06c42, // n0x0000 c0x0006 (n0x0136-n0x013c)  + I ac
+-	0x01e01442, // n0x0001 c0x0007 (n0x013c-n0x013d)  + I ad
+-	0x022138c2, // n0x0002 c0x0008 (n0x013d-n0x0144)  + I ae
+-	0x02628d84, // n0x0003 c0x0009 (n0x0144-n0x019d)  + I aero
+-	0x02a41442, // n0x0004 c0x000a (n0x019d-n0x01a2)  + I af
+-	0x02e082c2, // n0x0005 c0x000b (n0x01a2-n0x01a7)  + I ag
+-	0x032032c2, // n0x0006 c0x000c (n0x01a7-n0x01ab)  + I ai
+-	0x03603982, // n0x0007 c0x000d (n0x01ab-n0x01b1)  + I al
+-	0x002016c2, // n0x0008 c0x0000 (---------------)  + I am
+-	0x03a00202, // n0x0009 c0x000e (n0x01b1-n0x01b5)  + I an
+-	0x03e0aa02, // n0x000a c0x000f (n0x01b5-n0x01bb)  + I ao
+-	0x00271b82, // n0x000b c0x0000 (---------------)  + I aq
+-	0x04200182, // n0x000c c0x0010 (n0x01bb-n0x01c5)* o I ar
+-	0x04aae044, // n0x000d c0x0012 (n0x01c6-n0x01cc)  o I arpa
+-	0x04e02c02, // n0x000e c0x0013 (n0x01cc-n0x01cd)  + I as
+-	0x00237484, // n0x000f c0x0000 (---------------)  + I asia
+-	0x05201042, // n0x0010 c0x0014 (n0x01cd-n0x01d4)  + I at
+-	0x05a02482, // n0x0011 c0x0016 (n0x01d5-n0x01e7)  o I au
+-	0x06a030c2, // n0x0012 c0x001a (n0x01f7-n0x01f8)  + I aw
+-	0x00231902, // n0x0013 c0x0000 (---------------)  + I ax
+-	0x06e16d42, // n0x0014 c0x001b (n0x01f8-n0x0204)  + I az
+-	0x07201542, // n0x0015 c0x001c (n0x0204-n0x020e)  + I ba
+-	0x0763efc2, // n0x0016 c0x001d (n0x020e-n0x0216)  + I bb
+-	0x016f4c82, // n0x0017 c0x0005 (---------------)* o I bd
+-	0x07a00002, // n0x0018 c0x001e (n0x0216-n0x0218)  + I be
+-	0x07f1ff82, // n0x0019 c0x001f (n0x0218-n0x0219)  + I bf
+-	0x0833aa82, // n0x001a c0x0020 (n0x0219-n0x023d)  + I bg
+-	0x08614242, // n0x001b c0x0021 (n0x023d-n0x0242)  + I bh
+-	0x08a05742, // n0x001c c0x0022 (n0x0242-n0x0247)  + I bi
+-	0x08f0c243, // n0x001d c0x0023 (n0x0247-n0x024e)  + I biz
+-	0x092100c2, // n0x001e c0x0024 (n0x024e-n0x0252)  + I bj
+-	0x09611002, // n0x001f c0x0025 (n0x0252-n0x0257)  + I bm
+-	0x01652802, // n0x0020 c0x0005 (---------------)* o I bn
+-	0x09a033c2, // n0x0021 c0x0026 (n0x0257-n0x0260)  + I bo
+-	0x09e01882, // n0x0022 c0x0027 (n0x0260-n0x02a5)  + I br
+-	0x0a605ec2, // n0x0023 c0x0029 (n0x02a6-n0x02ab)  + I bs
+-	0x0aa14742, // n0x0024 c0x002a (n0x02ab-n0x02b0)  + I bt
+-	0x0ae2bb02, // n0x0025 c0x002b (n0x02b0-n0x02b2)  + I bw
+-	0x0b213b02, // n0x0026 c0x002c (n0x02b2-n0x02b6)  + I by
+-	0x0b62c342, // n0x0027 c0x002d (n0x02b6-n0x02bb)  + I bz
+-	0x0ba01002, // n0x0028 c0x002e (n0x02bb-n0x02cc)  + I ca
+-	0x00201003, // n0x0029 c0x0000 (---------------)  + I cat
+-	0x0be06842, // n0x002a c0x002f (n0x02cc-n0x02d0)  + I cc
+-	0x0c2fc502, // n0x002b c0x0030 (n0x02d0-n0x02d1)  + I cd
+-	0x0c703c42, // n0x002c c0x0031 (n0x02d1-n0x02d2)  + I cf
+-	0x00217202, // n0x002d c0x0000 (---------------)  + I cg
+-	0x0ca007c2, // n0x002e c0x0032 (n0x02d2-n0x02d3)  + I ch
+-	0x0ce08a02, // n0x002f c0x0033 (n0x02d3-n0x02e2)  + I ci
+-	0x0d226c42, // n0x0030 c0x0034 (n0x02e2-n0x02e3)* o I ck
+-	0x0d6278c2, // n0x0031 c0x0035 (n0x02e3-n0x02e7)  + I cl
+-	0x0da31002, // n0x0032 c0x0036 (n0x02e7-n0x02e8)  + I cm
+-	0x0de31842, // n0x0033 c0x0037 (n0x02e8-n0x0314)  + I cn
+-	0x0e20d642, // n0x0034 c0x0038 (n0x0314-n0x0321)  + I co
+-	0x0e60d643, // n0x0035 c0x0039 (n0x0321-n0x03d5)  + I com
+-	0x0023ae84, // n0x0036 c0x0000 (---------------)  + I coop
+-	0x0ee34182, // n0x0037 c0x003b (n0x03e9-n0x03f0)  + I cr
+-	0x0f20b742, // n0x0038 c0x003c (n0x03f0-n0x03f6)  + I cu
+-	0x0f717442, // n0x0039 c0x003d (n0x03f6-n0x03f7)  + I cv
+-	0x0fb2bbc2, // n0x003a c0x003e (n0x03f7-n0x03fb)  + I cw
+-	0x0fe40f02, // n0x003b c0x003f (n0x03fb-n0x03fd)  + I cx
+-	0x01641242, // n0x003c c0x0005 (---------------)* o I cy
+-	0x10206a42, // n0x003d c0x0040 (n0x03fd-n0x03fe)  + I cz
+-	0x10602602, // n0x003e c0x0041 (n0x03fe-n0x0406)  + I de
+-	0x00207b02, // n0x003f c0x0000 (---------------)  + I dj
+-	0x10a33742, // n0x0040 c0x0042 (n0x0406-n0x0407)  + I dk
+-	0x10e2b142, // n0x0041 c0x0043 (n0x0407-n0x040c)  + I dm
+-	0x11202a02, // n0x0042 c0x0044 (n0x040c-n0x0416)  + I do
+-	0x11668b02, // n0x0043 c0x0045 (n0x0416-n0x041e)  + I dz
+-	0x11a00fc2, // n0x0044 c0x0046 (n0x041e-n0x042a)  + I ec
+-	0x002df843, // n0x0045 c0x0000 (---------------)  + I edu
+-	0x11e04782, // n0x0046 c0x0047 (n0x042a-n0x0434)  + I ee
+-	0x12211b42, // n0x0047 c0x0048 (n0x0434-n0x043d)  + I eg
+-	0x01600042, // n0x0048 c0x0005 (---------------)* o I er
+-	0x12601e42, // n0x0049 c0x0049 (n0x043d-n0x0442)  + I es
+-	0x01603242, // n0x004a c0x0005 (---------------)* o I et
+-	0x0020f402, // n0x004b c0x0000 (---------------)  + I eu
+-	0x12e0bc82, // n0x004c c0x004b (n0x0443-n0x0446)  + I fi
+-	0x0163e182, // n0x004d c0x0005 (---------------)* o I fj
+-	0x016977c2, // n0x004e c0x0005 (---------------)* o I fk
+-	0x00330b82, // n0x004f c0x0000 (---------------)  + I fm
+-	0x00203482, // n0x0050 c0x0000 (---------------)  + I fo
+-	0x13207f82, // n0x0051 c0x004c (n0x0446-n0x045e)  + I fr
+-	0x00202bc2, // n0x0052 c0x0000 (---------------)  + I ga
+-	0x00205cc2, // n0x0053 c0x0000 (---------------)  + I gd
+-	0x13604902, // n0x0054 c0x004d (n0x045e-n0x0465)  + I ge
+-	0x00253ac2, // n0x0055 c0x0000 (---------------)  + I gf
+-	0x13a04e42, // n0x0056 c0x004e (n0x0465-n0x046a)  + I gg
+-	0x13e15042, // n0x0057 c0x004f (n0x046a-n0x046f)  + I gh
+-	0x14205182, // n0x0058 c0x0050 (n0x046f-n0x0475)  + I gi
+-	0x0020eb82, // n0x0059 c0x0000 (---------------)  + I gl
+-	0x00238a02, // n0x005a c0x0000 (---------------)  + I gm
+-	0x14610a02, // n0x005b c0x0051 (n0x0475-n0x047b)  o I gn
+-	0x00218d43, // n0x005c c0x0000 (---------------)  + I gov
+-	0x14acdfc2, // n0x005d c0x0052 (n0x047b-n0x0481)  + I gp
+-	0x002395c2, // n0x005e c0x0000 (---------------)  + I gq
+-	0x14e00642, // n0x005f c0x0053 (n0x0481-n0x0487)  + I gr
+-	0x0023c7c2, // n0x0060 c0x0000 (---------------)  + I gs
+-	0x152bfd42, // n0x0061 c0x0054 (n0x0487-n0x048e)  + I gt
+-	0x01609b42, // n0x0062 c0x0005 (---------------)* o I gu
+-	0x00238dc2, // n0x0063 c0x0000 (---------------)  + I gw
+-	0x156019c2, // n0x0064 c0x0055 (n0x048e-n0x0491)  + I gy
+-	0x15a15082, // n0x0065 c0x0056 (n0x0491-n0x04a7)  + I hk
+-	0x0028ad42, // n0x0066 c0x0000 (---------------)  + I hm
+-	0x15e2a882, // n0x0067 c0x0057 (n0x04a7-n0x04ad)  + I hn
+-	0x162255c2, // n0x0068 c0x0058 (n0x04ad-n0x04b1)  + I hr
+-	0x16603b82, // n0x0069 c0x0059 (n0x04b1-n0x04c2)  + I ht
+-	0x16a2b002, // n0x006a c0x005a (n0x04c2-n0x04e2)  + I hu
+-	0x16e02282, // n0x006b c0x005b (n0x04e2-n0x04ec)  + I id
+-	0x17205782, // n0x006c c0x005c (n0x04ec-n0x04ee)  + I ie
+-	0x17602702, // n0x006d c0x005d (n0x04ee-n0x04ef)* o I il
+-	0x17e02cc2, // n0x006e c0x005f (n0x04f0-n0x04f6)  + I im
+-	0x186027c2, // n0x006f c0x0061 (n0x04f8-n0x0505)  + I in
+-	0x18a10e04, // n0x0070 c0x0062 (n0x0505-n0x050f)  + I info
+-	0x18e17543, // n0x0071 c0x0063 (n0x050f-n0x0510)  + I int
+-	0x1920bdc2, // n0x0072 c0x0064 (n0x0510-n0x0512)  + I io
+-	0x19600e82, // n0x0073 c0x0065 (n0x0512-n0x0518)  + I iq
+-	0x19a0e282, // n0x0074 c0x0066 (n0x0518-n0x0521)  + I ir
+-	0x19e00842, // n0x0075 c0x0067 (n0x0521-n0x0527)  + I is
+-	0x1a205f42, // n0x0076 c0x0068 (n0x0527-n0x063d)  + I it
+-	0x1a602882, // n0x0077 c0x0069 (n0x063d-n0x0642)  + I je
+-	0x01740782, // n0x0078 c0x0005 (---------------)* o I jm
+-	0x1aa094c2, // n0x0079 c0x006a (n0x0642-n0x064a)  + I jo
+-	0x003422c4, // n0x007a c0x0000 (---------------)  + I jobs
+-	0x1ae97b42, // n0x007b c0x006b (n0x064a-n0x068a)  + I jp
+-	0x01606582, // n0x007c c0x0005 (---------------)* o I ke
+-	0x28a5c902, // n0x007d c0x00a2 (n0x0d20-n0x0d26)  + I kg
+-	0x01626682, // n0x007e c0x0005 (---------------)* o I kh
+-	0x28e02242, // n0x007f c0x00a3 (n0x0d26-n0x0d2d)  + I ki
+-	0x292a07c2, // n0x0080 c0x00a4 (n0x0d2d-n0x0d3e)  + I km
+-	0x29626942, // n0x0081 c0x00a5 (n0x0d3e-n0x0d42)  + I kn
+-	0x29b0e002, // n0x0082 c0x00a6 (n0x0d42-n0x0d48)  o I kp
+-	0x29e015c2, // n0x0083 c0x00a7 (n0x0d48-n0x0d66)  + I kr
+-	0x016ad002, // n0x0084 c0x0005 (---------------)* o I kw
+-	0x2a200302, // n0x0085 c0x00a8 (n0x0d66-n0x0d6b)  + I ky
+-	0x2a724142, // n0x0086 c0x00a9 (n0x0d6b-n0x0d71)  + I kz
+-	0x2aa02542, // n0x0087 c0x00aa (n0x0d71-n0x0d7a)  + I la
+-	0x2ae0a982, // n0x0088 c0x00ab (n0x0d7a-n0x0d7f)  o I lb
+-	0x2b240c02, // n0x0089 c0x00ac (n0x0d7f-n0x0d85)  + I lc
+-	0x002039c2, // n0x008a c0x0000 (---------------)  + I li
+-	0x2b614542, // n0x008b c0x00ad (n0x0d85-n0x0d93)  + I lk
+-	0x2bb00942, // n0x008c c0x00ae (n0x0d93-n0x0d98)  o I lr
+-	0x2be0d8c2, // n0x008d c0x00af (n0x0d98-n0x0d9a)  + I ls
+-	0x2c20b7c2, // n0x008e c0x00b0 (n0x0d9a-n0x0d9b)  + I lt
+-	0x00204982, // n0x008f c0x0000 (---------------)  + I lu
+-	0x2c6075c2, // n0x0090 c0x00b1 (n0x0d9b-n0x0da4)  + I lv
+-	0x2ca53602, // n0x0091 c0x00b2 (n0x0da4-n0x0dad)  + I ly
+-	0x2ce02d02, // n0x0092 c0x00b3 (n0x0dad-n0x0db3)  + I ma
+-	0x2d2d8982, // n0x0093 c0x00b4 (n0x0db3-n0x0db5)  + I mc
+-	0x00211042, // n0x0094 c0x0000 (---------------)  + I md
+-	0x2d602f82, // n0x0095 c0x00b5 (n0x0db5-n0x0dbd)  + I me
+-	0x2db1e982, // n0x0096 c0x00b6 (n0x0dbd-n0x0dc5)  + I mg
+-	0x002ed9c2, // n0x0097 c0x0000 (---------------)  + I mh
+-	0x0022f003, // n0x0098 c0x0000 (---------------)  + I mil
+-	0x2df246c2, // n0x0099 c0x00b7 (n0x0dc5-n0x0dcc)  + I mk
+-	0x2e212cc2, // n0x009a c0x00b8 (n0x0dcc-n0x0dd3)  + I ml
+-	0x01641bc2, // n0x009b c0x0005 (---------------)* o I mm
+-	0x2e601702, // n0x009c c0x00b9 (n0x0dd3-n0x0dd7)  + I mn
+-	0x2ea03d42, // n0x009d c0x00ba (n0x0dd7-n0x0ddc)  + I mo
+-	0x00303304, // n0x009e c0x0000 (---------------)  + I mobi
+-	0x002071c2, // n0x009f c0x0000 (---------------)  + I mp
+-	0x00307982, // n0x00a0 c0x0000 (---------------)  + I mq
+-	0x2ee412c2, // n0x00a1 c0x00bb (n0x0ddc-n0x0dde)  + I mr
+-	0x00201342, // n0x00a2 c0x0000 (---------------)  + I ms
+-	0x0165c502, // n0x00a3 c0x0005 (---------------)* o I mt
+-	0x2f210bc2, // n0x00a4 c0x00bc (n0x0dde-n0x0de5)  + I mu
+-	0x2f6c4946, // n0x00a5 c0x00bd (n0x0de5-n0x1009)  + I museum
+-	0x2fa1b542, // n0x00a6 c0x00be (n0x1009-n0x1017)  + I mv
+-	0x2fe31042, // n0x00a7 c0x00bf (n0x1017-n0x1022)  + I mw
+-	0x30329482, // n0x00a8 c0x00c0 (n0x1022-n0x1028)  + I mx
+-	0x3063a882, // n0x00a9 c0x00c1 (n0x1028-n0x102f)  + I my
+-	0x30afa482, // n0x00aa c0x00c2 (n0x102f-n0x1030)* o I mz
+-	0x30e00982, // n0x00ab c0x00c3 (n0x1030-n0x1041)  + I na
+-	0x31202f04, // n0x00ac c0x00c4 (n0x1041-n0x1043)  + I name
+-	0x31e08ac2, // n0x00ad c0x00c7 (n0x1045-n0x1046)  + I nc
+-	0x00203e82, // n0x00ae c0x0000 (---------------)  + I ne
+-	0x32214843, // n0x00af c0x00c8 (n0x1046-n0x1070)  + I net
+-	0x32610e42, // n0x00b0 c0x00c9 (n0x1070-n0x107a)  + I nf
+-	0x32a00442, // n0x00b1 c0x00ca (n0x107a-n0x1080)  o I ng
+-	0x01607802, // n0x00b2 c0x0005 (---------------)* o I ni
+-	0x32e3ba42, // n0x00b3 c0x00cb (n0x1080-n0x1083)  + I nl
+-	0x332005c2, // n0x00b4 c0x00cc (n0x1083-n0x1359)  + I no
+-	0x01600a02, // n0x00b5 c0x0005 (---------------)* o I np
+-	0x3b6000c2, // n0x00b6 c0x00ed (n0x1381-n0x1388)  + I nr
+-	0x3ba03642, // n0x00b7 c0x00ee (n0x1388-n0x138b)  + I nu
+-	0x3be01102, // n0x00b8 c0x00ef (n0x138b-n0x138c)* o I nz
+-	0x3c608902, // n0x00b9 c0x00f1 (n0x138d-n0x1397)* o I om
+-	0x3ca3e983, // n0x00ba c0x00f2 (n0x1397-n0x13cc)  + I org
+-	0x3d20d002, // n0x00bb c0x00f4 (n0x13ce-n0x13d9)  + I pa
+-	0x3d609242, // n0x00bc c0x00f5 (n0x13d9-n0x13e0)  + I pe
+-	0x3db2d942, // n0x00bd c0x00f6 (n0x13e0-n0x13e3)  + I pf
+-	0x01624042, // n0x00be c0x0005 (---------------)* o I pg
+-	0x3de00702, // n0x00bf c0x00f7 (n0x13e3-n0x13eb)  + I ph
+-	0x3e2cc282, // n0x00c0 c0x00f8 (n0x13eb-n0x13f9)  + I pk
+-	0x3e60c3c2, // n0x00c1 c0x00f9 (n0x13f9-n0x14a4)  + I pl
+-	0x002787c2, // n0x00c2 c0x0000 (---------------)  + I pm
+-	0x3ee371c2, // n0x00c3 c0x00fb (n0x14ad-n0x14b2)  + I pn
+-	0x00285744, // n0x00c4 c0x0000 (---------------)  + I post
+-	0x3f261ec2, // n0x00c5 c0x00fc (n0x14b2-n0x14bf)  + I pr
+-	0x3f6d1383, // n0x00c6 c0x00fd (n0x14bf-n0x14c6)  + I pro
+-	0x3fa33842, // n0x00c7 c0x00fe (n0x14c6-n0x14cd)  + I ps
+-	0x3fe11c02, // n0x00c8 c0x00ff (n0x14cd-n0x14d6)  + I pt
+-	0x402d3902, // n0x00c9 c0x0100 (n0x14d6-n0x14dc)  + I pw
+-	0x406b8c02, // n0x00ca c0x0101 (n0x14dc-n0x14e3)  + I py
+-	0x40af6942, // n0x00cb c0x0102 (n0x14e3-n0x14eb)  + I qa
+-	0x40e01602, // n0x00cc c0x0103 (n0x14eb-n0x14ef)  + I re
+-	0x41200ac2, // n0x00cd c0x0104 (n0x14ef-n0x14fb)  + I ro
+-	0x41602902, // n0x00ce c0x0105 (n0x14fb-n0x1501)  + I rs
+-	0x41a018c2, // n0x00cf c0x0106 (n0x1501-n0x1586)  + I ru
+-	0x41e08f82, // n0x00d0 c0x0107 (n0x1586-n0x158f)  + I rw
+-	0x42202442, // n0x00d1 c0x0108 (n0x158f-n0x1597)  + I sa
+-	0x4263c6c2, // n0x00d2 c0x0109 (n0x1597-n0x159c)  + I sb
+-	0x42a01d82, // n0x00d3 c0x010a (n0x159c-n0x15a1)  + I sc
+-	0x42e03902, // n0x00d4 c0x010b (n0x15a1-n0x15a9)  + I sd
+-	0x4320da42, // n0x00d5 c0x010c (n0x15a9-n0x15d2)  + I se
+-	0x43601982, // n0x00d6 c0x010d (n0x15d2-n0x15d9)  + I sg
+-	0x43a02c42, // n0x00d7 c0x010e (n0x15d9-n0x15de)  + I sh
+-	0x002040c2, // n0x00d8 c0x0000 (---------------)  + I si
+-	0x43e02202, // n0x00d9 c0x010f (n0x15de-n0x15df)  + I sk
+-	0x442113c2, // n0x00da c0x0110 (n0x15df-n0x15e4)  + I sl
+-	0x00216a02, // n0x00db c0x0000 (---------------)  + I sm
+-	0x44622982, // n0x00dc c0x0111 (n0x15e4-n0x15eb)  + I sn
+-	0x44a00882, // n0x00dd c0x0112 (n0x15eb-n0x15ee)  + I so
+-	0x002ba542, // n0x00de c0x0000 (---------------)  + I sr
+-	0x44e01382, // n0x00df c0x0113 (n0x15ee-n0x15fa)  + I st
+-	0x00202ac2, // n0x00e0 c0x0000 (---------------)  + I su
+-	0x01606602, // n0x00e1 c0x0005 (---------------)* o I sv
+-	0x452ed302, // n0x00e2 c0x0114 (n0x15fa-n0x15fb)  + I sx
+-	0x45630a82, // n0x00e3 c0x0115 (n0x15fb-n0x1601)  + I sy
+-	0x45a069c2, // n0x00e4 c0x0116 (n0x1601-n0x1604)  + I sz
+-	0x00227742, // n0x00e5 c0x0000 (---------------)  + I tc
+-	0x45e09fc2, // n0x00e6 c0x0117 (n0x1604-n0x1605)  + I td
+-	0x0020d543, // n0x00e7 c0x0000 (---------------)  + I tel
+-	0x00231282, // n0x00e8 c0x0000 (---------------)  + I tf
+-	0x00234242, // n0x00e9 c0x0000 (---------------)  + I tg
+-	0x462061c2, // n0x00ea c0x0118 (n0x1605-n0x160c)  + I th
+-	0x4663ac42, // n0x00eb c0x0119 (n0x160c-n0x161b)  + I tj
+-	0x002362c2, // n0x00ec c0x0000 (---------------)  + I tk
+-	0x46a0db02, // n0x00ed c0x011a (n0x161b-n0x161c)  + I tl
+-	0x46e3a842, // n0x00ee c0x011b (n0x161c-n0x1624)  + I tm
+-	0x47203602, // n0x00ef c0x011c (n0x1624-n0x1638)  + I tn
+-	0x47600282, // n0x00f0 c0x011d (n0x1638-n0x163e)  + I to
+-	0x47a08d82, // n0x00f1 c0x011e (n0x163e-n0x1640)* o I tr
+-	0x002ddac6, // n0x00f2 c0x0000 (---------------)  + I travel
+-	0x48207882, // n0x00f3 c0x0120 (n0x1641-n0x1652)  + I tt
+-	0x48681802, // n0x00f4 c0x0121 (n0x1652-n0x1656)  + I tv
+-	0x48a4b942, // n0x00f5 c0x0122 (n0x1656-n0x1664)  + I tw
+-	0x48e148c2, // n0x00f6 c0x0123 (n0x1664-n0x1670)  o I tz
+-	0x492201c2, // n0x00f7 c0x0124 (n0x1670-n0x16be)  + I ua
+-	0x49602b82, // n0x00f8 c0x0125 (n0x16be-n0x16c6)  + I ug
+-	0x49a01902, // n0x00f9 c0x0126 (n0x16c6-n0x16d1)* o I uk
+-	0x4a201f42, // n0x00fa c0x0128 (n0x16d2-n0x1711)  + I us
+-	0x5861c8c2, // n0x00fb c0x0161 (n0x17b8-n0x17be)  + I uy
+-	0x58a3c302, // n0x00fc c0x0162 (n0x17be-n0x17c2)  + I uz
+-	0x00206f02, // n0x00fd c0x0000 (---------------)  + I va
+-	0x58e3f542, // n0x00fe c0x0163 (n0x17c2-n0x17c8)  + I vc
+-	0x59209c42, // n0x00ff c0x0164 (n0x17c8-n0x17d2)  + I ve
+-	0x00278b42, // n0x0100 c0x0000 (---------------)  + I vg
+-	0x59609542, // n0x0101 c0x0165 (n0x17d2-n0x17d7)  + I vi
+-	0x59a00b42, // n0x0102 c0x0166 (n0x17d7-n0x17e3)  + I vn
+-	0x00206642, // n0x0103 c0x0000 (---------------)  + I vu
+-	0x00201242, // n0x0104 c0x0000 (---------------)  + I wf
+-	0x59e1ba82, // n0x0105 c0x0167 (n0x17e3-n0x17ea)  + I ws
+-	0x00240f4c, // n0x0106 c0x0000 (---------------)  + I xn--3e0b707e
+-	0x0026454b, // n0x0107 c0x0000 (---------------)  + I xn--45brj9c
+-	0x0028ce4e, // n0x0108 c0x0000 (---------------)  + I xn--54b7fta0cc
+-	0x0029030a, // n0x0109 c0x0000 (---------------)  + I xn--90a3ac
+-	0x002fc016, // n0x010a c0x0000 (---------------)  + I xn--clchc0ea0b2g2a9gcd
+-	0x002ffcca, // n0x010b c0x0000 (---------------)  + I xn--fiqs8s
+-	0x0030018a, // n0x010c c0x0000 (---------------)  + I xn--fiqz9s
+-	0x00300f8d, // n0x010d c0x0000 (---------------)  + I xn--fpcrj9c3d
+-	0x0030238d, // n0x010e c0x0000 (---------------)  + I xn--fzc2c9e2c
+-	0x00304e8b, // n0x010f c0x0000 (---------------)  + I xn--gecrj9c
+-	0x00309f0b, // n0x0110 c0x0000 (---------------)  + I xn--h2brj9c
+-	0x00310689, // n0x0111 c0x0000 (---------------)  + I xn--j1amh
+-	0x00310ccb, // n0x0112 c0x0000 (---------------)  + I xn--j6w193g
+-	0x00312e4b, // n0x0113 c0x0000 (---------------)  + I xn--kprw13d
+-	0x0031310b, // n0x0114 c0x0000 (---------------)  + I xn--kpry57d
+-	0x0031a94f, // n0x0115 c0x0000 (---------------)  + I xn--lgbbat1ad8j
+-	0x0031e88c, // n0x0116 c0x0000 (---------------)  + I xn--mgb2ddes
+-	0x0031fd0c, // n0x0117 c0x0000 (---------------)  + I xn--mgb9awbf
+-	0x0032018f, // n0x0118 c0x0000 (---------------)  + I xn--mgba3a4f16a
+-	0x0032054e, // n0x0119 c0x0000 (---------------)  + I xn--mgba3a4fra
+-	0x00320c0e, // n0x011a c0x0000 (---------------)  + I xn--mgbaam7a8h
+-	0x003211ce, // n0x011b c0x0000 (---------------)  + I xn--mgbayh7gpa
+-	0x0032160e, // n0x011c c0x0000 (---------------)  + I xn--mgbbh1a71e
+-	0x0032198f, // n0x011d c0x0000 (---------------)  + I xn--mgbc0a9azcg
+-	0x00321d53, // n0x011e c0x0000 (---------------)  + I xn--mgberp4a5d4a87g
+-	0x00322211, // n0x011f c0x0000 (---------------)  + I xn--mgberp4a5d4ar
+-	0x00322653, // n0x0120 c0x0000 (---------------)  + I xn--mgbqly7c0a67fbc
+-	0x003232d0, // n0x0121 c0x0000 (---------------)  + I xn--mgbqly7cvafr
+-	0x00323b0c, // n0x0122 c0x0000 (---------------)  + I xn--mgbtf8fl
+-	0x0032a14b, // n0x0123 c0x0000 (---------------)  + I xn--nnx388a
+-	0x0032a408, // n0x0124 c0x0000 (---------------)  + I xn--node
+-	0x0032ba4a, // n0x0125 c0x0000 (---------------)  + I xn--o3cw4h
+-	0x0032d78c, // n0x0126 c0x0000 (---------------)  + I xn--ogbpf8fl
+-	0x0032e8c8, // n0x0127 c0x0000 (---------------)  + I xn--p1ai
+-	0x0032f34b, // n0x0128 c0x0000 (---------------)  + I xn--pgbs0dh
+-	0x0033554b, // n0x0129 c0x0000 (---------------)  + I xn--s9brj9c
+-	0x0034a1ca, // n0x012a c0x0000 (---------------)  + I xn--wgbh1c
+-	0x0034a70a, // n0x012b c0x0000 (---------------)  + I xn--wgbl6a
+-	0x0034a990, // n0x012c c0x0000 (---------------)  + I xn--xkc2al3hye2a
+-	0x0034ad91, // n0x012d c0x0000 (---------------)  + I xn--xkc2dl3a5ee0h
+-	0x0034b84d, // n0x012e c0x0000 (---------------)  + I xn--yfro4i67o
+-	0x0034bf4d, // n0x012f c0x0000 (---------------)  + I xn--ygbi2ammx
+-	0x0034ecc3, // n0x0130 c0x0000 (---------------)  + I xxx
+-	0x0161a042, // n0x0131 c0x0005 (---------------)* o I ye
+-	0x00252042, // n0x0132 c0x0000 (---------------)  + I yt
+-	0x01601142, // n0x0133 c0x0005 (---------------)* o I za
+-	0x016cb642, // n0x0134 c0x0005 (---------------)* o I zm
+-	0x016d39c2, // n0x0135 c0x0005 (---------------)* o I zw
+-	0x0020d643, // n0x0136 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0137 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0138 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0139 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x013a c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x013b c0x0000 (---------------)  + I org
+-	0x00216583, // n0x013c c0x0000 (---------------)  + I nom
+-	0x00206c42, // n0x013d c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x013e c0x0000 (---------------)  + I co
+-	0x00218d43, // n0x013f c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0140 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0141 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0142 c0x0000 (---------------)  + I org
+-	0x00201d83, // n0x0143 c0x0000 (---------------)  + I sch
+-	0x002f93d6, // n0x0144 c0x0000 (---------------)  + I accident-investigation
+-	0x002fabd3, // n0x0145 c0x0000 (---------------)  + I accident-prevention
+-	0x00228d89, // n0x0146 c0x0000 (---------------)  + I aerobatic
+-	0x00262248, // n0x0147 c0x0000 (---------------)  + I aeroclub
+-	0x00299109, // n0x0148 c0x0000 (---------------)  + I aerodrome
+-	0x0023b746, // n0x0149 c0x0000 (---------------)  + I agents
+-	0x0023fad0, // n0x014a c0x0000 (---------------)  + I air-surveillance
+-	0x00268313, // n0x014b c0x0000 (---------------)  + I air-traffic-control
+-	0x0026e508, // n0x014c c0x0000 (---------------)  + I aircraft
+-	0x0028b907, // n0x014d c0x0000 (---------------)  + I airline
+-	0x002a7ac7, // n0x014e c0x0000 (---------------)  + I airport
+-	0x002a9b8a, // n0x014f c0x0000 (---------------)  + I airtraffic
+-	0x0020b989, // n0x0150 c0x0000 (---------------)  + I ambulance
+-	0x0022b2c9, // n0x0151 c0x0000 (---------------)  + I amusement
+-	0x002c6b0b, // n0x0152 c0x0000 (---------------)  + I association
+-	0x00237546, // n0x0153 c0x0000 (---------------)  + I author
+-	0x002bafca, // n0x0154 c0x0000 (---------------)  + I ballooning
+-	0x00220e86, // n0x0155 c0x0000 (---------------)  + I broker
+-	0x00230183, // n0x0156 c0x0000 (---------------)  + I caa
+-	0x00304345, // n0x0157 c0x0000 (---------------)  + I cargo
+-	0x002179c8, // n0x0158 c0x0000 (---------------)  + I catering
+-	0x0020bb4d, // n0x0159 c0x0000 (---------------)  + I certification
+-	0x0024db0c, // n0x015a c0x0000 (---------------)  + I championship
+-	0x0030a847, // n0x015b c0x0000 (---------------)  + I charter
+-	0x0022cb0d, // n0x015c c0x0000 (---------------)  + I civilaviation
+-	0x00262344, // n0x015d c0x0000 (---------------)  + I club
+-	0x0029934a, // n0x015e c0x0000 (---------------)  + I conference
+-	0x00237fca, // n0x015f c0x0000 (---------------)  + I consultant
+-	0x0023848a, // n0x0160 c0x0000 (---------------)  + I consulting
+-	0x00268607, // n0x0161 c0x0000 (---------------)  + I control
+-	0x002b5f07, // n0x0162 c0x0000 (---------------)  + I council
+-	0x00240404, // n0x0163 c0x0000 (---------------)  + I crew
+-	0x00229ec6, // n0x0164 c0x0000 (---------------)  + I design
+-	0x002afe84, // n0x0165 c0x0000 (---------------)  + I dgca
+-	0x002df848, // n0x0166 c0x0000 (---------------)  + I educator
+-	0x00318849, // n0x0167 c0x0000 (---------------)  + I emergency
+-	0x002c5e06, // n0x0168 c0x0000 (---------------)  + I engine
+-	0x002c5e08, // n0x0169 c0x0000 (---------------)  + I engineer
+-	0x002af84d, // n0x016a c0x0000 (---------------)  + I entertainment
+-	0x00335309, // n0x016b c0x0000 (---------------)  + I equipment
+-	0x00346208, // n0x016c c0x0000 (---------------)  + I exchange
+-	0x00346047, // n0x016d c0x0000 (---------------)  + I express
+-	0x0026bc0a, // n0x016e c0x0000 (---------------)  + I federation
+-	0x00245686, // n0x016f c0x0000 (---------------)  + I flight
+-	0x0024f087, // n0x0170 c0x0000 (---------------)  + I freight
+-	0x0022b604, // n0x0171 c0x0000 (---------------)  + I fuel
+-	0x0024fac7, // n0x0172 c0x0000 (---------------)  + I gliding
+-	0x0026160a, // n0x0173 c0x0000 (---------------)  + I government
+-	0x0024ebce, // n0x0174 c0x0000 (---------------)  + I groundhandling
+-	0x00204e85, // n0x0175 c0x0000 (---------------)  + I group
+-	0x0027690b, // n0x0176 c0x0000 (---------------)  + I hanggliding
+-	0x0024a5c9, // n0x0177 c0x0000 (---------------)  + I homebuilt
+-	0x00216e49, // n0x0178 c0x0000 (---------------)  + I insurance
+-	0x00216807, // n0x0179 c0x0000 (---------------)  + I journal
+-	0x0025bd0a, // n0x017a c0x0000 (---------------)  + I journalist
+-	0x0021e387, // n0x017b c0x0000 (---------------)  + I leasing
+-	0x00245fc9, // n0x017c c0x0000 (---------------)  + I logistics
+-	0x003089c8, // n0x017d c0x0000 (---------------)  + I magazine
+-	0x0030bf8b, // n0x017e c0x0000 (---------------)  + I maintenance
+-	0x0020c24b, // n0x017f c0x0000 (---------------)  + I marketplace
+-	0x0023dbc5, // n0x0180 c0x0000 (---------------)  + I media
+-	0x0025900a, // n0x0181 c0x0000 (---------------)  + I microlight
+-	0x00277649, // n0x0182 c0x0000 (---------------)  + I modelling
+-	0x0020c80a, // n0x0183 c0x0000 (---------------)  + I navigation
+-	0x0024ddcb, // n0x0184 c0x0000 (---------------)  + I parachuting
+-	0x0024f9cb, // n0x0185 c0x0000 (---------------)  + I paragliding
+-	0x002c6895, // n0x0186 c0x0000 (---------------)  + I passenger-association
+-	0x002caf85, // n0x0187 c0x0000 (---------------)  + I pilot
+-	0x003460c5, // n0x0188 c0x0000 (---------------)  + I press
+-	0x002d160a, // n0x0189 c0x0000 (---------------)  + I production
+-	0x002c1d8a, // n0x018a c0x0000 (---------------)  + I recreation
+-	0x00270e87, // n0x018b c0x0000 (---------------)  + I repbody
+-	0x0021a643, // n0x018c c0x0000 (---------------)  + I res
+-	0x002ceac8, // n0x018d c0x0000 (---------------)  + I research
+-	0x002c2c4a, // n0x018e c0x0000 (---------------)  + I rotorcraft
+-	0x002cd986, // n0x018f c0x0000 (---------------)  + I safety
+-	0x002cb0c9, // n0x0190 c0x0000 (---------------)  + I scientist
+-	0x002febc8, // n0x0191 c0x0000 (---------------)  + I services
+-	0x002d92c4, // n0x0192 c0x0000 (---------------)  + I show
+-	0x00264c89, // n0x0193 c0x0000 (---------------)  + I skydiving
+-	0x00266488, // n0x0194 c0x0000 (---------------)  + I software
+-	0x002a8f87, // n0x0195 c0x0000 (---------------)  + I student
+-	0x002318c4, // n0x0196 c0x0000 (---------------)  + I taxi
+-	0x00255686, // n0x0197 c0x0000 (---------------)  + I trader
+-	0x0028f087, // n0x0198 c0x0000 (---------------)  + I trading
+-	0x0029a287, // n0x0199 c0x0000 (---------------)  + I trainer
+-	0x0025fbc5, // n0x019a c0x0000 (---------------)  + I union
+-	0x00204ccc, // n0x019b c0x0000 (---------------)  + I workinggroup
+-	0x00303fc5, // n0x019c c0x0000 (---------------)  + I works
+-	0x0020d643, // n0x019d c0x0000 (---------------)  + I com
+-	0x002df843, // n0x019e c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x019f c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x01a0 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x01a1 c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x01a2 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x01a3 c0x0000 (---------------)  + I com
+-	0x00214843, // n0x01a4 c0x0000 (---------------)  + I net
+-	0x00216583, // n0x01a5 c0x0000 (---------------)  + I nom
+-	0x0023e983, // n0x01a6 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x01a7 c0x0000 (---------------)  + I com
+-	0x00214843, // n0x01a8 c0x0000 (---------------)  + I net
+-	0x00213e43, // n0x01a9 c0x0000 (---------------)  + I off
+-	0x0023e983, // n0x01aa c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x01ab c0x0000 (---------------)  + I com
+-	0x002df843, // n0x01ac c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x01ad c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x01ae c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x01af c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x01b0 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x01b1 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x01b2 c0x0000 (---------------)  + I edu
+-	0x00214843, // n0x01b3 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x01b4 c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x01b5 c0x0000 (---------------)  + I co
+-	0x00207902, // n0x01b6 c0x0000 (---------------)  + I ed
+-	0x002386c2, // n0x01b7 c0x0000 (---------------)  + I gv
+-	0x00205f42, // n0x01b8 c0x0000 (---------------)  + I it
+-	0x00200602, // n0x01b9 c0x0000 (---------------)  + I og
+-	0x00270f02, // n0x01ba c0x0000 (---------------)  + I pb
+-	0x0460d643, // n0x01bb c0x0011 (n0x01c5-n0x01c6)  o I com
+-	0x00635053, // n0x01bc c0x0001 (---------------)  ! I congresodelalengua3
+-	0x006df844, // n0x01bd c0x0001 (---------------)  ! I educ
+-	0x00665493, // n0x01be c0x0001 (---------------)  ! I gobiernoelectronico
+-	0x006992c5, // n0x01bf c0x0001 (---------------)  ! I mecon
+-	0x0068bf06, // n0x01c0 c0x0001 (---------------)  ! I nacion
+-	0x00611783, // n0x01c1 c0x0001 (---------------)  ! I nic
+-	0x006d1f49, // n0x01c2 c0x0001 (---------------)  ! I promocion
+-	0x00675686, // n0x01c3 c0x0001 (---------------)  ! I retina
+-	0x00629ac3, // n0x01c4 c0x0001 (---------------)  ! I uba
+-	0x0003c708, // n0x01c5 c0x0000 (---------------)  +   blogspot
+-	0x00237ec4, // n0x01c6 c0x0000 (---------------)  + I e164
+-	0x00283c07, // n0x01c7 c0x0000 (---------------)  + I in-addr
+-	0x0022ebc3, // n0x01c8 c0x0000 (---------------)  + I ip6
+-	0x002db884, // n0x01c9 c0x0000 (---------------)  + I iris
+-	0x00224543, // n0x01ca c0x0000 (---------------)  + I uri
+-	0x00216883, // n0x01cb c0x0000 (---------------)  + I urn
+-	0x00218d43, // n0x01cc c0x0000 (---------------)  + I gov
+-	0x00206c42, // n0x01cd c0x0000 (---------------)  + I ac
+-	0x0010c243, // n0x01ce c0x0000 (---------------)  +   biz
+-	0x0560d642, // n0x01cf c0x0015 (n0x01d4-n0x01d5)  + I co
+-	0x002386c2, // n0x01d0 c0x0000 (---------------)  + I gv
+-	0x00010e04, // n0x01d1 c0x0000 (---------------)  +   info
+-	0x00200a82, // n0x01d2 c0x0000 (---------------)  + I or
+-	0x000d1204, // n0x01d3 c0x0000 (---------------)  +   priv
+-	0x0003c708, // n0x01d4 c0x0000 (---------------)  +   blogspot
+-	0x00291d03, // n0x01d5 c0x0000 (---------------)  + I act
+-	0x00226343, // n0x01d6 c0x0000 (---------------)  + I asn
+-	0x05e0d643, // n0x01d7 c0x0017 (n0x01e7-n0x01e8)  + I com
+-	0x00299344, // n0x01d8 c0x0000 (---------------)  + I conf
+-	0x062df843, // n0x01d9 c0x0018 (n0x01e8-n0x01f0)  + I edu
+-	0x06618d43, // n0x01da c0x0019 (n0x01f0-n0x01f7)  + I gov
+-	0x00202282, // n0x01db c0x0000 (---------------)  + I id
+-	0x00210e04, // n0x01dc c0x0000 (---------------)  + I info
+-	0x00214843, // n0x01dd c0x0000 (---------------)  + I net
+-	0x0026c783, // n0x01de c0x0000 (---------------)  + I nsw
+-	0x00200242, // n0x01df c0x0000 (---------------)  + I nt
+-	0x0023e983, // n0x01e0 c0x0000 (---------------)  + I org
+-	0x00219002, // n0x01e1 c0x0000 (---------------)  + I oz
+-	0x00251d83, // n0x01e2 c0x0000 (---------------)  + I qld
+-	0x00202442, // n0x01e3 c0x0000 (---------------)  + I sa
+-	0x00210c43, // n0x01e4 c0x0000 (---------------)  + I tas
+-	0x00257443, // n0x01e5 c0x0000 (---------------)  + I vic
+-	0x00203102, // n0x01e6 c0x0000 (---------------)  + I wa
+-	0x0003c708, // n0x01e7 c0x0000 (---------------)  +   blogspot
+-	0x00291d03, // n0x01e8 c0x0000 (---------------)  + I act
+-	0x0026c783, // n0x01e9 c0x0000 (---------------)  + I nsw
+-	0x00200242, // n0x01ea c0x0000 (---------------)  + I nt
+-	0x00251d83, // n0x01eb c0x0000 (---------------)  + I qld
+-	0x00202442, // n0x01ec c0x0000 (---------------)  + I sa
+-	0x00210c43, // n0x01ed c0x0000 (---------------)  + I tas
+-	0x00257443, // n0x01ee c0x0000 (---------------)  + I vic
+-	0x00203102, // n0x01ef c0x0000 (---------------)  + I wa
+-	0x00291d03, // n0x01f0 c0x0000 (---------------)  + I act
+-	0x00200242, // n0x01f1 c0x0000 (---------------)  + I nt
+-	0x00251d83, // n0x01f2 c0x0000 (---------------)  + I qld
+-	0x00202442, // n0x01f3 c0x0000 (---------------)  + I sa
+-	0x00210c43, // n0x01f4 c0x0000 (---------------)  + I tas
+-	0x00257443, // n0x01f5 c0x0000 (---------------)  + I vic
+-	0x00203102, // n0x01f6 c0x0000 (---------------)  + I wa
+-	0x0020d643, // n0x01f7 c0x0000 (---------------)  + I com
+-	0x0030c243, // n0x01f8 c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x01f9 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x01fa c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x01fb c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x01fc c0x0000 (---------------)  + I info
+-	0x00217543, // n0x01fd c0x0000 (---------------)  + I int
+-	0x0022f003, // n0x01fe c0x0000 (---------------)  + I mil
+-	0x00202f04, // n0x01ff c0x0000 (---------------)  + I name
+-	0x00214843, // n0x0200 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0201 c0x0000 (---------------)  + I org
+-	0x00203f02, // n0x0202 c0x0000 (---------------)  + I pp
+-	0x002d1383, // n0x0203 c0x0000 (---------------)  + I pro
+-	0x0020d642, // n0x0204 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x0205 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0206 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0207 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0208 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0209 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x020a c0x0000 (---------------)  + I org
+-	0x00202902, // n0x020b c0x0000 (---------------)  + I rs
+-	0x002fb304, // n0x020c c0x0000 (---------------)  + I unbi
+-	0x00262f44, // n0x020d c0x0000 (---------------)  + I unsa
+-	0x0030c243, // n0x020e c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x020f c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0210 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0211 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x0212 c0x0000 (---------------)  + I info
+-	0x00214843, // n0x0213 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0214 c0x0000 (---------------)  + I org
+-	0x002e9c05, // n0x0215 c0x0000 (---------------)  + I store
+-	0x00206c42, // n0x0216 c0x0000 (---------------)  + I ac
+-	0x0003c708, // n0x0217 c0x0000 (---------------)  +   blogspot
+-	0x00218d43, // n0x0218 c0x0000 (---------------)  + I gov
+-	0x00231781, // n0x0219 c0x0000 (---------------)  + I 0
+-	0x00206381, // n0x021a c0x0000 (---------------)  + I 1
+-	0x00202141, // n0x021b c0x0000 (---------------)  + I 2
+-	0x00201ec1, // n0x021c c0x0000 (---------------)  + I 3
+-	0x00237f81, // n0x021d c0x0000 (---------------)  + I 4
+-	0x00264681, // n0x021e c0x0000 (---------------)  + I 5
+-	0x0022ec41, // n0x021f c0x0000 (---------------)  + I 6
+-	0x00241141, // n0x0220 c0x0000 (---------------)  + I 7
+-	0x002fab81, // n0x0221 c0x0000 (---------------)  + I 8
+-	0x00264781, // n0x0222 c0x0000 (---------------)  + I 9
+-	0x00200181, // n0x0223 c0x0000 (---------------)  + I a
+-	0x00200001, // n0x0224 c0x0000 (---------------)  + I b
+-	0x00200501, // n0x0225 c0x0000 (---------------)  + I c
+-	0x00201481, // n0x0226 c0x0000 (---------------)  + I d
+-	0x00200041, // n0x0227 c0x0000 (---------------)  + I e
+-	0x00201281, // n0x0228 c0x0000 (---------------)  + I f
+-	0x00200481, // n0x0229 c0x0000 (---------------)  + I g
+-	0x00200741, // n0x022a c0x0000 (---------------)  + I h
+-	0x00200781, // n0x022b c0x0000 (---------------)  + I i
+-	0x00202881, // n0x022c c0x0000 (---------------)  + I j
+-	0x00200301, // n0x022d c0x0000 (---------------)  + I k
+-	0x00202541, // n0x022e c0x0000 (---------------)  + I l
+-	0x00201341, // n0x022f c0x0000 (---------------)  + I m
+-	0x002000c1, // n0x0230 c0x0000 (---------------)  + I n
+-	0x002002c1, // n0x0231 c0x0000 (---------------)  + I o
+-	0x00200701, // n0x0232 c0x0000 (---------------)  + I p
+-	0x00200ec1, // n0x0233 c0x0000 (---------------)  + I q
+-	0x00200081, // n0x0234 c0x0000 (---------------)  + I r
+-	0x00200881, // n0x0235 c0x0000 (---------------)  + I s
+-	0x00200141, // n0x0236 c0x0000 (---------------)  + I t
+-	0x00200f01, // n0x0237 c0x0000 (---------------)  + I u
+-	0x00200b41, // n0x0238 c0x0000 (---------------)  + I v
+-	0x00201241, // n0x0239 c0x0000 (---------------)  + I w
+-	0x00202dc1, // n0x023a c0x0000 (---------------)  + I x
+-	0x00200341, // n0x023b c0x0000 (---------------)  + I y
+-	0x00201141, // n0x023c c0x0000 (---------------)  + I z
+-	0x0020d643, // n0x023d c0x0000 (---------------)  + I com
+-	0x002df843, // n0x023e c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x023f c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0240 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0241 c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x0242 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x0243 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0244 c0x0000 (---------------)  + I edu
+-	0x00200a82, // n0x0245 c0x0000 (---------------)  + I or
+-	0x0023e983, // n0x0246 c0x0000 (---------------)  + I org
+-	0x00004a46, // n0x0247 c0x0000 (---------------)  +   dyndns
+-	0x0004730a, // n0x0248 c0x0000 (---------------)  +   for-better
+-	0x0011f808, // n0x0249 c0x0000 (---------------)  +   for-more
+-	0x00047948, // n0x024a c0x0000 (---------------)  +   for-some
+-	0x00048347, // n0x024b c0x0000 (---------------)  +   for-the
+-	0x00109ac6, // n0x024c c0x0000 (---------------)  +   selfip
+-	0x000141c6, // n0x024d c0x0000 (---------------)  +   webhop
+-	0x002072c4, // n0x024e c0x0000 (---------------)  + I asso
+-	0x00317dc7, // n0x024f c0x0000 (---------------)  + I barreau
+-	0x0003c708, // n0x0250 c0x0000 (---------------)  +   blogspot
+-	0x00257384, // n0x0251 c0x0000 (---------------)  + I gouv
+-	0x0020d643, // n0x0252 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0253 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0254 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0255 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0256 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x0257 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0258 c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x0259 c0x0000 (---------------)  + I gob
+-	0x00218d43, // n0x025a c0x0000 (---------------)  + I gov
+-	0x00217543, // n0x025b c0x0000 (---------------)  + I int
+-	0x0022f003, // n0x025c c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x025d c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x025e c0x0000 (---------------)  + I org
+-	0x00281802, // n0x025f c0x0000 (---------------)  + I tv
+-	0x002c48c3, // n0x0260 c0x0000 (---------------)  + I adm
+-	0x00257c83, // n0x0261 c0x0000 (---------------)  + I adv
+-	0x0020b643, // n0x0262 c0x0000 (---------------)  + I agr
+-	0x002016c2, // n0x0263 c0x0000 (---------------)  + I am
+-	0x00251d03, // n0x0264 c0x0000 (---------------)  + I arq
+-	0x0020e343, // n0x0265 c0x0000 (---------------)  + I art
+-	0x0020fd03, // n0x0266 c0x0000 (---------------)  + I ato
+-	0x00200001, // n0x0267 c0x0000 (---------------)  + I b
+-	0x0020d803, // n0x0268 c0x0000 (---------------)  + I bio
+-	0x00205584, // n0x0269 c0x0000 (---------------)  + I blog
+-	0x00211003, // n0x026a c0x0000 (---------------)  + I bmd
+-	0x00322ac3, // n0x026b c0x0000 (---------------)  + I cim
+-	0x002f1403, // n0x026c c0x0000 (---------------)  + I cng
+-	0x00231843, // n0x026d c0x0000 (---------------)  + I cnt
+-	0x0a20d643, // n0x026e c0x0028 (n0x02a5-n0x02a6)  + I com
+-	0x0023ae84, // n0x026f c0x0000 (---------------)  + I coop
+-	0x002f13c3, // n0x0270 c0x0000 (---------------)  + I ecn
+-	0x0020d603, // n0x0271 c0x0000 (---------------)  + I eco
+-	0x002df843, // n0x0272 c0x0000 (---------------)  + I edu
+-	0x0023a303, // n0x0273 c0x0000 (---------------)  + I emp
+-	0x00204883, // n0x0274 c0x0000 (---------------)  + I eng
+-	0x00291703, // n0x0275 c0x0000 (---------------)  + I esp
+-	0x00230f83, // n0x0276 c0x0000 (---------------)  + I etc
+-	0x00222fc3, // n0x0277 c0x0000 (---------------)  + I eti
+-	0x00201283, // n0x0278 c0x0000 (---------------)  + I far
+-	0x00245f84, // n0x0279 c0x0000 (---------------)  + I flog
+-	0x00330b82, // n0x027a c0x0000 (---------------)  + I fm
+-	0x00247083, // n0x027b c0x0000 (---------------)  + I fnd
+-	0x0024ce83, // n0x027c c0x0000 (---------------)  + I fot
+-	0x00268883, // n0x027d c0x0000 (---------------)  + I fst
+-	0x0022ba43, // n0x027e c0x0000 (---------------)  + I g12
+-	0x002bb203, // n0x027f c0x0000 (---------------)  + I ggf
+-	0x00218d43, // n0x0280 c0x0000 (---------------)  + I gov
+-	0x002e0c83, // n0x0281 c0x0000 (---------------)  + I imb
+-	0x002051c3, // n0x0282 c0x0000 (---------------)  + I ind
+-	0x00210e03, // n0x0283 c0x0000 (---------------)  + I inf
+-	0x0023e1c3, // n0x0284 c0x0000 (---------------)  + I jor
+-	0x00294c43, // n0x0285 c0x0000 (---------------)  + I jus
+-	0x0023e603, // n0x0286 c0x0000 (---------------)  + I leg
+-	0x00300603, // n0x0287 c0x0000 (---------------)  + I lel
+-	0x0021abc3, // n0x0288 c0x0000 (---------------)  + I mat
+-	0x0023dbc3, // n0x0289 c0x0000 (---------------)  + I med
+-	0x0022f003, // n0x028a c0x0000 (---------------)  + I mil
+-	0x0022b303, // n0x028b c0x0000 (---------------)  + I mus
+-	0x00214843, // n0x028c c0x0000 (---------------)  + I net
+-	0x00216583, // n0x028d c0x0000 (---------------)  + I nom
+-	0x0020d203, // n0x028e c0x0000 (---------------)  + I not
+-	0x00268683, // n0x028f c0x0000 (---------------)  + I ntr
+-	0x0023b403, // n0x0290 c0x0000 (---------------)  + I odo
+-	0x0023e983, // n0x0291 c0x0000 (---------------)  + I org
+-	0x00224003, // n0x0292 c0x0000 (---------------)  + I ppg
+-	0x002d1383, // n0x0293 c0x0000 (---------------)  + I pro
+-	0x0027a483, // n0x0294 c0x0000 (---------------)  + I psc
+-	0x002d2643, // n0x0295 c0x0000 (---------------)  + I psi
+-	0x002d3a43, // n0x0296 c0x0000 (---------------)  + I qsl
+-	0x0023f845, // n0x0297 c0x0000 (---------------)  + I radio
+-	0x002c1d83, // n0x0298 c0x0000 (---------------)  + I rec
+-	0x002e1703, // n0x0299 c0x0000 (---------------)  + I slg
+-	0x002e7b03, // n0x029a c0x0000 (---------------)  + I srv
+-	0x002318c4, // n0x029b c0x0000 (---------------)  + I taxi
+-	0x00335c03, // n0x029c c0x0000 (---------------)  + I teo
+-	0x00285443, // n0x029d c0x0000 (---------------)  + I tmp
+-	0x002ee543, // n0x029e c0x0000 (---------------)  + I trd
+-	0x002017c3, // n0x029f c0x0000 (---------------)  + I tur
+-	0x00281802, // n0x02a0 c0x0000 (---------------)  + I tv
+-	0x0023cd43, // n0x02a1 c0x0000 (---------------)  + I vet
+-	0x002f2984, // n0x02a2 c0x0000 (---------------)  + I vlog
+-	0x0022c644, // n0x02a3 c0x0000 (---------------)  + I wiki
+-	0x002bac43, // n0x02a4 c0x0000 (---------------)  + I zlg
+-	0x0003c708, // n0x02a5 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x02a6 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x02a7 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x02a8 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x02a9 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x02aa c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x02ab c0x0000 (---------------)  + I com
+-	0x002df843, // n0x02ac c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x02ad c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x02ae c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x02af c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x02b0 c0x0000 (---------------)  + I co
+-	0x0023e983, // n0x02b1 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x02b2 c0x0000 (---------------)  + I com
+-	0x00218d43, // n0x02b3 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x02b4 c0x0000 (---------------)  + I mil
+-	0x00213e42, // n0x02b5 c0x0000 (---------------)  + I of
+-	0x0020d643, // n0x02b6 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x02b7 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x02b8 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x02b9 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x02ba c0x0000 (---------------)  + I org
+-	0x00203382, // n0x02bb c0x0000 (---------------)  + I ab
+-	0x00321b02, // n0x02bc c0x0000 (---------------)  + I bc
+-	0x0003c708, // n0x02bd c0x0000 (---------------)  +   blogspot
+-	0x0000d642, // n0x02be c0x0000 (---------------)  +   co
+-	0x002afec2, // n0x02bf c0x0000 (---------------)  + I gc
+-	0x00209382, // n0x02c0 c0x0000 (---------------)  + I mb
+-	0x00203742, // n0x02c1 c0x0000 (---------------)  + I nb
+-	0x00210e42, // n0x02c2 c0x0000 (---------------)  + I nf
+-	0x0023ba42, // n0x02c3 c0x0000 (---------------)  + I nl
+-	0x00204b42, // n0x02c4 c0x0000 (---------------)  + I ns
+-	0x00200242, // n0x02c5 c0x0000 (---------------)  + I nt
+-	0x00203642, // n0x02c6 c0x0000 (---------------)  + I nu
+-	0x00202e82, // n0x02c7 c0x0000 (---------------)  + I on
+-	0x00209242, // n0x02c8 c0x0000 (---------------)  + I pe
+-	0x00239602, // n0x02c9 c0x0000 (---------------)  + I qc
+-	0x00202202, // n0x02ca c0x0000 (---------------)  + I sk
+-	0x0028d3c2, // n0x02cb c0x0000 (---------------)  + I yk
+-	0x0000ef49, // n0x02cc c0x0000 (---------------)  +   ftpaccess
+-	0x000f88cb, // n0x02cd c0x0000 (---------------)  +   game-server
+-	0x000c4f88, // n0x02ce c0x0000 (---------------)  +   myphotos
+-	0x000edd49, // n0x02cf c0x0000 (---------------)  +   scrapping
+-	0x00218d43, // n0x02d0 c0x0000 (---------------)  + I gov
+-	0x0003c708, // n0x02d1 c0x0000 (---------------)  +   blogspot
+-	0x0003c708, // n0x02d2 c0x0000 (---------------)  +   blogspot
+-	0x00206c42, // n0x02d3 c0x0000 (---------------)  + I ac
+-	0x002072c4, // n0x02d4 c0x0000 (---------------)  + I asso
+-	0x0020d642, // n0x02d5 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x02d6 c0x0000 (---------------)  + I com
+-	0x00207902, // n0x02d7 c0x0000 (---------------)  + I ed
+-	0x002df843, // n0x02d8 c0x0000 (---------------)  + I edu
+-	0x00200482, // n0x02d9 c0x0000 (---------------)  + I go
+-	0x00257384, // n0x02da c0x0000 (---------------)  + I gouv
+-	0x00217543, // n0x02db c0x0000 (---------------)  + I int
+-	0x00211042, // n0x02dc c0x0000 (---------------)  + I md
+-	0x00214843, // n0x02dd c0x0000 (---------------)  + I net
+-	0x00200a82, // n0x02de c0x0000 (---------------)  + I or
+-	0x0023e983, // n0x02df c0x0000 (---------------)  + I org
+-	0x003460c6, // n0x02e0 c0x0000 (---------------)  + I presse
+-	0x002c8d8f, // n0x02e1 c0x0000 (---------------)  + I xn--aroport-bya
+-	0x00640643, // n0x02e2 c0x0001 (---------------)  ! I www
+-	0x0020d642, // n0x02e3 c0x0000 (---------------)  + I co
+-	0x00265483, // n0x02e4 c0x0000 (---------------)  + I gob
+-	0x00218d43, // n0x02e5 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x02e6 c0x0000 (---------------)  + I mil
+-	0x00218d43, // n0x02e7 c0x0000 (---------------)  + I gov
+-	0x00206c42, // n0x02e8 c0x0000 (---------------)  + I ac
+-	0x00207a02, // n0x02e9 c0x0000 (---------------)  + I ah
+-	0x002100c2, // n0x02ea c0x0000 (---------------)  + I bj
+-	0x0020d643, // n0x02eb c0x0000 (---------------)  + I com
+-	0x0023e2c2, // n0x02ec c0x0000 (---------------)  + I cq
+-	0x002df843, // n0x02ed c0x0000 (---------------)  + I edu
+-	0x0023e182, // n0x02ee c0x0000 (---------------)  + I fj
+-	0x00205cc2, // n0x02ef c0x0000 (---------------)  + I gd
+-	0x00218d43, // n0x02f0 c0x0000 (---------------)  + I gov
+-	0x0023c7c2, // n0x02f1 c0x0000 (---------------)  + I gs
+-	0x0028ce02, // n0x02f2 c0x0000 (---------------)  + I gx
+-	0x0028f202, // n0x02f3 c0x0000 (---------------)  + I gz
+-	0x00201682, // n0x02f4 c0x0000 (---------------)  + I ha
+-	0x002d7582, // n0x02f5 c0x0000 (---------------)  + I hb
+-	0x00201e02, // n0x02f6 c0x0000 (---------------)  + I he
+-	0x00200742, // n0x02f7 c0x0000 (---------------)  + I hi
+-	0x00215082, // n0x02f8 c0x0000 (---------------)  + I hk
+-	0x00263882, // n0x02f9 c0x0000 (---------------)  + I hl
+-	0x0022a882, // n0x02fa c0x0000 (---------------)  + I hn
+-	0x00311082, // n0x02fb c0x0000 (---------------)  + I jl
+-	0x00228202, // n0x02fc c0x0000 (---------------)  + I js
+-	0x002f56c2, // n0x02fd c0x0000 (---------------)  + I jx
+-	0x00291082, // n0x02fe c0x0000 (---------------)  + I ln
+-	0x0022f003, // n0x02ff c0x0000 (---------------)  + I mil
+-	0x00203d42, // n0x0300 c0x0000 (---------------)  + I mo
+-	0x00214843, // n0x0301 c0x0000 (---------------)  + I net
+-	0x0020c202, // n0x0302 c0x0000 (---------------)  + I nm
+-	0x00202d82, // n0x0303 c0x0000 (---------------)  + I nx
+-	0x0023e983, // n0x0304 c0x0000 (---------------)  + I org
+-	0x0023e302, // n0x0305 c0x0000 (---------------)  + I qh
+-	0x00201d82, // n0x0306 c0x0000 (---------------)  + I sc
+-	0x00203902, // n0x0307 c0x0000 (---------------)  + I sd
+-	0x00202c42, // n0x0308 c0x0000 (---------------)  + I sh
+-	0x00222982, // n0x0309 c0x0000 (---------------)  + I sn
+-	0x002ed302, // n0x030a c0x0000 (---------------)  + I sx
+-	0x0023ac42, // n0x030b c0x0000 (---------------)  + I tj
+-	0x0024b942, // n0x030c c0x0000 (---------------)  + I tw
+-	0x00202dc2, // n0x030d c0x0000 (---------------)  + I xj
+-	0x0028feca, // n0x030e c0x0000 (---------------)  + I xn--55qx5d
+-	0x0031014a, // n0x030f c0x0000 (---------------)  + I xn--io0a7i
+-	0x0032c24a, // n0x0310 c0x0000 (---------------)  + I xn--od0alg
+-	0x0034ef82, // n0x0311 c0x0000 (---------------)  + I xz
+-	0x00202302, // n0x0312 c0x0000 (---------------)  + I yn
+-	0x0028f242, // n0x0313 c0x0000 (---------------)  + I zj
+-	0x00230884, // n0x0314 c0x0000 (---------------)  + I arts
+-	0x0020d643, // n0x0315 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0316 c0x0000 (---------------)  + I edu
+-	0x00243504, // n0x0317 c0x0000 (---------------)  + I firm
+-	0x00218d43, // n0x0318 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x0319 c0x0000 (---------------)  + I info
+-	0x00217543, // n0x031a c0x0000 (---------------)  + I int
+-	0x0022f003, // n0x031b c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x031c c0x0000 (---------------)  + I net
+-	0x00216583, // n0x031d c0x0000 (---------------)  + I nom
+-	0x0023e983, // n0x031e c0x0000 (---------------)  + I org
+-	0x002c1d83, // n0x031f c0x0000 (---------------)  + I rec
+-	0x00205e43, // n0x0320 c0x0000 (---------------)  + I web
+-	0x0eac3d89, // n0x0321 c0x003a (n0x03d5-n0x03e9)  o I amazonaws
+-	0x000337c7, // n0x0322 c0x0000 (---------------)  +   appspot
+-	0x00000182, // n0x0323 c0x0000 (---------------)  +   ar
+-	0x0000320a, // n0x0324 c0x0000 (---------------)  +   betainabox
+-	0x00005c07, // n0x0325 c0x0000 (---------------)  +   blogdns
+-	0x0003c708, // n0x0326 c0x0000 (---------------)  +   blogspot
+-	0x00001882, // n0x0327 c0x0000 (---------------)  +   br
+-	0x00099547, // n0x0328 c0x0000 (---------------)  +   cechire
+-	0x00031842, // n0x0329 c0x0000 (---------------)  +   cn
+-	0x00091648, // n0x032a c0x0000 (---------------)  +   codespot
+-	0x00002602, // n0x032b c0x0000 (---------------)  +   de
+-	0x000357c8, // n0x032c c0x0000 (---------------)  +   dnsalias
+-	0x00062ac7, // n0x032d c0x0000 (---------------)  +   dnsdojo
+-	0x000a33cb, // n0x032e c0x0000 (---------------)  +   doesntexist
+-	0x00106f09, // n0x032f c0x0000 (---------------)  +   dontexist
+-	0x000356c7, // n0x0330 c0x0000 (---------------)  +   doomdns
+-	0x000ed8cc, // n0x0331 c0x0000 (---------------)  +   dreamhosters
+-	0x000022ca, // n0x0332 c0x0000 (---------------)  +   dyn-o-saur
+-	0x0000e508, // n0x0333 c0x0000 (---------------)  +   dynalias
+-	0x00070fce, // n0x0334 c0x0000 (---------------)  +   dyndns-at-home
+-	0x00004a4e, // n0x0335 c0x0000 (---------------)  +   dyndns-at-work
+-	0x00005a4b, // n0x0336 c0x0000 (---------------)  +   dyndns-blog
+-	0x00007dcb, // n0x0337 c0x0000 (---------------)  +   dyndns-free
+-	0x0000ec8b, // n0x0338 c0x0000 (---------------)  +   dyndns-home
+-	0x00011089, // n0x0339 c0x0000 (---------------)  +   dyndns-ip
+-	0x0001284b, // n0x033a c0x0000 (---------------)  +   dyndns-mail
+-	0x00013c8d, // n0x033b c0x0000 (---------------)  +   dyndns-office
+-	0x0001874b, // n0x033c c0x0000 (---------------)  +   dyndns-pics
+-	0x0002028d, // n0x033d c0x0000 (---------------)  +   dyndns-remote
+-	0x0002128d, // n0x033e c0x0000 (---------------)  +   dyndns-server
+-	0x0002204a, // n0x033f c0x0000 (---------------)  +   dyndns-web
+-	0x0002c48b, // n0x0340 c0x0000 (---------------)  +   dyndns-wiki
+-	0x00103e0b, // n0x0341 c0x0000 (---------------)  +   dyndns-work
+-	0x0001c450, // n0x0342 c0x0000 (---------------)  +   elasticbeanstalk
+-	0x00021acf, // n0x0343 c0x0000 (---------------)  +   est-a-la-maison
+-	0x00053b4f, // n0x0344 c0x0000 (---------------)  +   est-a-la-masion
+-	0x00041d0d, // n0x0345 c0x0000 (---------------)  +   est-le-patron
+-	0x000b1810, // n0x0346 c0x0000 (---------------)  +   est-mon-blogueur
+-	0x0000f402, // n0x0347 c0x0000 (---------------)  +   eu
+-	0x00050887, // n0x0348 c0x0000 (---------------)  +   from-ak
+-	0x00051a07, // n0x0349 c0x0000 (---------------)  +   from-al
+-	0x00051bc7, // n0x034a c0x0000 (---------------)  +   from-ar
+-	0x000521c7, // n0x034b c0x0000 (---------------)  +   from-ca
+-	0x000530c7, // n0x034c c0x0000 (---------------)  +   from-ct
+-	0x000533c7, // n0x034d c0x0000 (---------------)  +   from-dc
+-	0x000552c7, // n0x034e c0x0000 (---------------)  +   from-de
+-	0x00055807, // n0x034f c0x0000 (---------------)  +   from-fl
+-	0x00055dc7, // n0x0350 c0x0000 (---------------)  +   from-ga
+-	0x000560c7, // n0x0351 c0x0000 (---------------)  +   from-hi
+-	0x00056907, // n0x0352 c0x0000 (---------------)  +   from-ia
+-	0x00056ac7, // n0x0353 c0x0000 (---------------)  +   from-id
+-	0x00056c87, // n0x0354 c0x0000 (---------------)  +   from-il
+-	0x00056e47, // n0x0355 c0x0000 (---------------)  +   from-in
+-	0x00057147, // n0x0356 c0x0000 (---------------)  +   from-ks
+-	0x00058007, // n0x0357 c0x0000 (---------------)  +   from-ky
+-	0x00059d47, // n0x0358 c0x0000 (---------------)  +   from-ma
+-	0x0005a587, // n0x0359 c0x0000 (---------------)  +   from-md
+-	0x0005b147, // n0x035a c0x0000 (---------------)  +   from-mi
+-	0x0005b5c7, // n0x035b c0x0000 (---------------)  +   from-mn
+-	0x0005b787, // n0x035c c0x0000 (---------------)  +   from-mo
+-	0x0005c0c7, // n0x035d c0x0000 (---------------)  +   from-ms
+-	0x0005c3c7, // n0x035e c0x0000 (---------------)  +   from-mt
+-	0x0005cc47, // n0x035f c0x0000 (---------------)  +   from-nc
+-	0x0005e807, // n0x0360 c0x0000 (---------------)  +   from-nd
+-	0x0005e9c7, // n0x0361 c0x0000 (---------------)  +   from-ne
+-	0x0005eb87, // n0x0362 c0x0000 (---------------)  +   from-nh
+-	0x0005f207, // n0x0363 c0x0000 (---------------)  +   from-nj
+-	0x0005f847, // n0x0364 c0x0000 (---------------)  +   from-nm
+-	0x0005fd07, // n0x0365 c0x0000 (---------------)  +   from-nv
+-	0x00060607, // n0x0366 c0x0000 (---------------)  +   from-oh
+-	0x00060847, // n0x0367 c0x0000 (---------------)  +   from-ok
+-	0x00060f07, // n0x0368 c0x0000 (---------------)  +   from-or
+-	0x000611c7, // n0x0369 c0x0000 (---------------)  +   from-pa
+-	0x00061d87, // n0x036a c0x0000 (---------------)  +   from-pr
+-	0x00061f87, // n0x036b c0x0000 (---------------)  +   from-ri
+-	0x000636c7, // n0x036c c0x0000 (---------------)  +   from-sc
+-	0x00064047, // n0x036d c0x0000 (---------------)  +   from-sd
+-	0x00064207, // n0x036e c0x0000 (---------------)  +   from-tn
+-	0x000643c7, // n0x036f c0x0000 (---------------)  +   from-tx
+-	0x00065cc7, // n0x0370 c0x0000 (---------------)  +   from-ut
+-	0x00066287, // n0x0371 c0x0000 (---------------)  +   from-va
+-	0x00066807, // n0x0372 c0x0000 (---------------)  +   from-vt
+-	0x00066f87, // n0x0373 c0x0000 (---------------)  +   from-wa
+-	0x00067147, // n0x0374 c0x0000 (---------------)  +   from-wi
+-	0x000674c7, // n0x0375 c0x0000 (---------------)  +   from-wv
+-	0x00067947, // n0x0376 c0x0000 (---------------)  +   from-wy
+-	0x00079382, // n0x0377 c0x0000 (---------------)  +   gb
+-	0x0003a7c7, // n0x0378 c0x0000 (---------------)  +   getmyip
+-	0x0008e38a, // n0x0379 c0x0000 (---------------)  +   googleapis
+-	0x000914ca, // n0x037a c0x0000 (---------------)  +   googlecode
+-	0x00049846, // n0x037b c0x0000 (---------------)  +   gotdns
+-	0x00000642, // n0x037c c0x0000 (---------------)  +   gr
+-	0x0003ef4a, // n0x037d c0x0000 (---------------)  +   hobby-site
+-	0x0008fcc9, // n0x037e c0x0000 (---------------)  +   homelinux
+-	0x00090148, // n0x037f c0x0000 (---------------)  +   homeunix
+-	0x0002b002, // n0x0380 c0x0000 (---------------)  +   hu
+-	0x00062709, // n0x0381 c0x0000 (---------------)  +   iamallama
+-	0x0007528e, // n0x0382 c0x0000 (---------------)  +   is-a-anarchist
+-	0x0000544c, // n0x0383 c0x0000 (---------------)  +   is-a-blogger
+-	0x000c534f, // n0x0384 c0x0000 (---------------)  +   is-a-bookkeeper
+-	0x0002090e, // n0x0385 c0x0000 (---------------)  +   is-a-bulls-fan
+-	0x00104b8c, // n0x0386 c0x0000 (---------------)  +   is-a-caterer
+-	0x00054949, // n0x0387 c0x0000 (---------------)  +   is-a-chef
+-	0x0005d9d1, // n0x0388 c0x0000 (---------------)  +   is-a-conservative
+-	0x00085f88, // n0x0389 c0x0000 (---------------)  +   is-a-cpa
+-	0x00032452, // n0x038a c0x0000 (---------------)  +   is-a-cubicle-slave
+-	0x00033f4d, // n0x038b c0x0000 (---------------)  +   is-a-democrat
+-	0x0004c14d, // n0x038c c0x0000 (---------------)  +   is-a-designer
+-	0x0004e64b, // n0x038d c0x0000 (---------------)  +   is-a-doctor
+-	0x00057915, // n0x038e c0x0000 (---------------)  +   is-a-financialadvisor
+-	0x0005c709, // n0x038f c0x0000 (---------------)  +   is-a-geek
+-	0x00060c8a, // n0x0390 c0x0000 (---------------)  +   is-a-green
+-	0x00062d49, // n0x0391 c0x0000 (---------------)  +   is-a-guru
+-	0x000632d0, // n0x0392 c0x0000 (---------------)  +   is-a-hard-worker
+-	0x00066ccb, // n0x0393 c0x0000 (---------------)  +   is-a-hunter
+-	0x0007150f, // n0x0394 c0x0000 (---------------)  +   is-a-landscaper
+-	0x0007478b, // n0x0395 c0x0000 (---------------)  +   is-a-lawyer
+-	0x0007660c, // n0x0396 c0x0000 (---------------)  +   is-a-liberal
+-	0x0007af90, // n0x0397 c0x0000 (---------------)  +   is-a-libertarian
+-	0x00095b8a, // n0x0398 c0x0000 (---------------)  +   is-a-llama
+-	0x000b584d, // n0x0399 c0x0000 (---------------)  +   is-a-musician
+-	0x000ab7ce, // n0x039a c0x0000 (---------------)  +   is-a-nascarfan
+-	0x000d634a, // n0x039b c0x0000 (---------------)  +   is-a-nurse
+-	0x000b510c, // n0x039c c0x0000 (---------------)  +   is-a-painter
+-	0x00099f54, // n0x039d c0x0000 (---------------)  +   is-a-personaltrainer
+-	0x0009a751, // n0x039e c0x0000 (---------------)  +   is-a-photographer
+-	0x0009c9cb, // n0x039f c0x0000 (---------------)  +   is-a-player
+-	0x0009ea0f, // n0x03a0 c0x0000 (---------------)  +   is-a-republican
+-	0x0009f1cd, // n0x03a1 c0x0000 (---------------)  +   is-a-rockstar
+-	0x000a4c0e, // n0x03a2 c0x0000 (---------------)  +   is-a-socialist
+-	0x000a8e4c, // n0x03a3 c0x0000 (---------------)  +   is-a-student
+-	0x000aaecc, // n0x03a4 c0x0000 (---------------)  +   is-a-teacher
+-	0x000ab4cb, // n0x03a5 c0x0000 (---------------)  +   is-a-techie
+-	0x000cc84e, // n0x03a6 c0x0000 (---------------)  +   is-a-therapist
+-	0x000d3e50, // n0x03a7 c0x0000 (---------------)  +   is-an-accountant
+-	0x000b268b, // n0x03a8 c0x0000 (---------------)  +   is-an-actor
+-	0x000b798d, // n0x03a9 c0x0000 (---------------)  +   is-an-actress
+-	0x000bdb8f, // n0x03aa c0x0000 (---------------)  +   is-an-anarchist
+-	0x000d320c, // n0x03ab c0x0000 (---------------)  +   is-an-artist
+-	0x000c5c8e, // n0x03ac c0x0000 (---------------)  +   is-an-engineer
+-	0x000c6451, // n0x03ad c0x0000 (---------------)  +   is-an-entertainer
+-	0x000ca58c, // n0x03ae c0x0000 (---------------)  +   is-certified
+-	0x000d5307, // n0x03af c0x0000 (---------------)  +   is-gone
+-	0x000d5dcd, // n0x03b0 c0x0000 (---------------)  +   is-into-anime
+-	0x000d704c, // n0x03b1 c0x0000 (---------------)  +   is-into-cars
+-	0x000da290, // n0x03b2 c0x0000 (---------------)  +   is-into-cartoons
+-	0x000dcc4d, // n0x03b3 c0x0000 (---------------)  +   is-into-games
+-	0x000dd947, // n0x03b4 c0x0000 (---------------)  +   is-leet
+-	0x000df4d0, // n0x03b5 c0x0000 (---------------)  +   is-not-certified
+-	0x000eb1c8, // n0x03b6 c0x0000 (---------------)  +   is-slick
+-	0x000ee2cb, // n0x03b7 c0x0000 (---------------)  +   is-uberleet
+-	0x0012480f, // n0x03b8 c0x0000 (---------------)  +   is-with-theband
+-	0x0008e588, // n0x03b9 c0x0000 (---------------)  +   isa-geek
+-	0x00039a8d, // n0x03ba c0x0000 (---------------)  +   isa-hockeynut
+-	0x00096250, // n0x03bb c0x0000 (---------------)  +   issmarterthanyou
+-	0x00097b43, // n0x03bc c0x0000 (---------------)  +   jpn
+-	0x000015c2, // n0x03bd c0x0000 (---------------)  +   kr
+-	0x00048109, // n0x03be c0x0000 (---------------)  +   likes-pie
+-	0x0004a28a, // n0x03bf c0x0000 (---------------)  +   likescandy
+-	0x0002ed08, // n0x03c0 c0x0000 (---------------)  +   neat-url
+-	0x000005c2, // n0x03c1 c0x0000 (---------------)  +   no
+-	0x0003af0a, // n0x03c2 c0x0000 (---------------)  +   operaunite
+-	0x00039602, // n0x03c3 c0x0000 (---------------)  +   qc
+-	0x0002f147, // n0x03c4 c0x0000 (---------------)  +   rhcloud
+-	0x000018c2, // n0x03c5 c0x0000 (---------------)  +   ru
+-	0x00002442, // n0x03c6 c0x0000 (---------------)  +   sa
+-	0x000a0850, // n0x03c7 c0x0000 (---------------)  +   saves-the-whales
+-	0x0000da42, // n0x03c8 c0x0000 (---------------)  +   se
+-	0x00109ac6, // n0x03c9 c0x0000 (---------------)  +   selfip
+-	0x00081d8e, // n0x03ca c0x0000 (---------------)  +   sells-for-less
+-	0x000d654b, // n0x03cb c0x0000 (---------------)  +   sells-for-u
+-	0x000edb88, // n0x03cc c0x0000 (---------------)  +   servebbs
+-	0x000e124a, // n0x03cd c0x0000 (---------------)  +   simple-url
+-	0x000e528d, // n0x03ce c0x0000 (---------------)  +   space-to-rent
+-	0x0003034c, // n0x03cf c0x0000 (---------------)  +   teaches-yoga
+-	0x00001902, // n0x03d0 c0x0000 (---------------)  +   uk
+-	0x00001f42, // n0x03d1 c0x0000 (---------------)  +   us
+-	0x0001c8c2, // n0x03d2 c0x0000 (---------------)  +   uy
+-	0x0003c48e, // n0x03d3 c0x0000 (---------------)  +   writesthisblog
+-	0x00001142, // n0x03d4 c0x0000 (---------------)  +   za
+-	0x00022703, // n0x03d5 c0x0000 (---------------)  +   elb
+-	0x00001e82, // n0x03d6 c0x0000 (---------------)  +   s3
+-	0x000e6351, // n0x03d7 c0x0000 (---------------)  +   s3-ap-northeast-1
+-	0x0014ce11, // n0x03d8 c0x0000 (---------------)  +   s3-ap-southeast-1
+-	0x000fde51, // n0x03d9 c0x0000 (---------------)  +   s3-ap-southeast-2
+-	0x0011a2cc, // n0x03da c0x0000 (---------------)  +   s3-eu-west-1
+-	0x0012d255, // n0x03db c0x0000 (---------------)  +   s3-fips-us-gov-west-1
+-	0x0013724c, // n0x03dc c0x0000 (---------------)  +   s3-sa-east-1
+-	0x001482d0, // n0x03dd c0x0000 (---------------)  +   s3-us-gov-west-1
+-	0x0014df4c, // n0x03de c0x0000 (---------------)  +   s3-us-west-1
+-	0x00001e8c, // n0x03df c0x0000 (---------------)  +   s3-us-west-2
+-	0x00005d99, // n0x03e0 c0x0000 (---------------)  +   s3-website-ap-northeast-1
+-	0x0000a2d9, // n0x03e1 c0x0000 (---------------)  +   s3-website-ap-southeast-1
+-	0x0000dc19, // n0x03e2 c0x0000 (---------------)  +   s3-website-ap-southeast-2
+-	0x0000f154, // n0x03e3 c0x0000 (---------------)  +   s3-website-eu-west-1
+-	0x00012054, // n0x03e4 c0x0000 (---------------)  +   s3-website-sa-east-1
+-	0x00012ed4, // n0x03e5 c0x0000 (---------------)  +   s3-website-us-east-1
+-	0x000189d8, // n0x03e6 c0x0000 (---------------)  +   s3-website-us-gov-west-1
+-	0x0001ae14, // n0x03e7 c0x0000 (---------------)  +   s3-website-us-west-1
+-	0x0001edd4, // n0x03e8 c0x0000 (---------------)  +   s3-website-us-west-2
+-	0x00206c42, // n0x03e9 c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x03ea c0x0000 (---------------)  + I co
+-	0x00207902, // n0x03eb c0x0000 (---------------)  + I ed
+-	0x0020bc82, // n0x03ec c0x0000 (---------------)  + I fi
+-	0x00200482, // n0x03ed c0x0000 (---------------)  + I go
+-	0x00200a82, // n0x03ee c0x0000 (---------------)  + I or
+-	0x00202442, // n0x03ef c0x0000 (---------------)  + I sa
+-	0x0020d643, // n0x03f0 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x03f1 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x03f2 c0x0000 (---------------)  + I gov
+-	0x00210e03, // n0x03f3 c0x0000 (---------------)  + I inf
+-	0x00214843, // n0x03f4 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x03f5 c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x03f6 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x03f7 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x03f8 c0x0000 (---------------)  + I edu
+-	0x00214843, // n0x03f9 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x03fa c0x0000 (---------------)  + I org
+-	0x00012e03, // n0x03fb c0x0000 (---------------)  +   ath
+-	0x00218d43, // n0x03fc c0x0000 (---------------)  + I gov
+-	0x0003c708, // n0x03fd c0x0000 (---------------)  +   blogspot
+-	0x0003c708, // n0x03fe c0x0000 (---------------)  +   blogspot
+-	0x0000d643, // n0x03ff c0x0000 (---------------)  +   com
+-	0x000de60f, // n0x0400 c0x0000 (---------------)  +   fuettertdasnetz
+-	0x000a35ca, // n0x0401 c0x0000 (---------------)  +   isteingeek
+-	0x00107087, // n0x0402 c0x0000 (---------------)  +   istmein
+-	0x000146ca, // n0x0403 c0x0000 (---------------)  +   lebtimnetz
+-	0x000b208a, // n0x0404 c0x0000 (---------------)  +   leitungsen
+-	0x0010a20d, // n0x0405 c0x0000 (---------------)  +   traeumtgerade
+-	0x0003c708, // n0x0406 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x0407 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0408 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0409 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x040a c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x040b c0x0000 (---------------)  + I org
+-	0x0020e343, // n0x040c c0x0000 (---------------)  + I art
+-	0x0020d643, // n0x040d c0x0000 (---------------)  + I com
+-	0x002df843, // n0x040e c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x040f c0x0000 (---------------)  + I gob
+-	0x00218d43, // n0x0410 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0411 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0412 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0413 c0x0000 (---------------)  + I org
+-	0x002e1643, // n0x0414 c0x0000 (---------------)  + I sld
+-	0x00205e43, // n0x0415 c0x0000 (---------------)  + I web
+-	0x0020e343, // n0x0416 c0x0000 (---------------)  + I art
+-	0x002072c4, // n0x0417 c0x0000 (---------------)  + I asso
+-	0x0020d643, // n0x0418 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0419 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x041a c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x041b c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x041c c0x0000 (---------------)  + I org
+-	0x00205383, // n0x041d c0x0000 (---------------)  + I pol
+-	0x0020d643, // n0x041e c0x0000 (---------------)  + I com
+-	0x002df843, // n0x041f c0x0000 (---------------)  + I edu
+-	0x00242a83, // n0x0420 c0x0000 (---------------)  + I fin
+-	0x00265483, // n0x0421 c0x0000 (---------------)  + I gob
+-	0x00218d43, // n0x0422 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x0423 c0x0000 (---------------)  + I info
+-	0x002316c3, // n0x0424 c0x0000 (---------------)  + I k12
+-	0x0023dbc3, // n0x0425 c0x0000 (---------------)  + I med
+-	0x0022f003, // n0x0426 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0427 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0428 c0x0000 (---------------)  + I org
+-	0x002d1383, // n0x0429 c0x0000 (---------------)  + I pro
+-	0x0022eb83, // n0x042a c0x0000 (---------------)  + I aip
+-	0x0020d643, // n0x042b c0x0000 (---------------)  + I com
+-	0x002df843, // n0x042c c0x0000 (---------------)  + I edu
+-	0x00241483, // n0x042d c0x0000 (---------------)  + I fie
+-	0x00218d43, // n0x042e c0x0000 (---------------)  + I gov
+-	0x0021bec3, // n0x042f c0x0000 (---------------)  + I lib
+-	0x0023dbc3, // n0x0430 c0x0000 (---------------)  + I med
+-	0x0023e983, // n0x0431 c0x0000 (---------------)  + I org
+-	0x002d0383, // n0x0432 c0x0000 (---------------)  + I pri
+-	0x002102c4, // n0x0433 c0x0000 (---------------)  + I riik
+-	0x0020d643, // n0x0434 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0435 c0x0000 (---------------)  + I edu
+-	0x00290203, // n0x0436 c0x0000 (---------------)  + I eun
+-	0x00218d43, // n0x0437 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0438 c0x0000 (---------------)  + I mil
+-	0x00202f04, // n0x0439 c0x0000 (---------------)  + I name
+-	0x00214843, // n0x043a c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x043b c0x0000 (---------------)  + I org
+-	0x002089c3, // n0x043c c0x0000 (---------------)  + I sci
+-	0x12a0d643, // n0x043d c0x004a (n0x0442-n0x0443)  + I com
+-	0x002df843, // n0x043e c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x043f c0x0000 (---------------)  + I gob
+-	0x00216583, // n0x0440 c0x0000 (---------------)  + I nom
+-	0x0023e983, // n0x0441 c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x0442 c0x0000 (---------------)  +   blogspot
+-	0x00237705, // n0x0443 c0x0000 (---------------)  + I aland
+-	0x0003c708, // n0x0444 c0x0000 (---------------)  +   blogspot
+-	0x0000aec3, // n0x0445 c0x0000 (---------------)  +   iki
+-	0x0022f708, // n0x0446 c0x0000 (---------------)  + I aeroport
+-	0x00226d47, // n0x0447 c0x0000 (---------------)  + I assedic
+-	0x002072c4, // n0x0448 c0x0000 (---------------)  + I asso
+-	0x002ae3c6, // n0x0449 c0x0000 (---------------)  + I avocat
+-	0x002e6206, // n0x044a c0x0000 (---------------)  + I avoues
+-	0x0003c708, // n0x044b c0x0000 (---------------)  +   blogspot
+-	0x002f9403, // n0x044c c0x0000 (---------------)  + I cci
+-	0x0020b509, // n0x044d c0x0000 (---------------)  + I chambagri
+-	0x0029d195, // n0x044e c0x0000 (---------------)  + I chirurgiens-dentistes
+-	0x0020d643, // n0x044f c0x0000 (---------------)  + I com
+-	0x0032ce12, // n0x0450 c0x0000 (---------------)  + I experts-comptables
+-	0x0032cbcf, // n0x0451 c0x0000 (---------------)  + I geometre-expert
+-	0x00257384, // n0x0452 c0x0000 (---------------)  + I gouv
+-	0x00328585, // n0x0453 c0x0000 (---------------)  + I greta
+-	0x00294a10, // n0x0454 c0x0000 (---------------)  + I huissier-justice
+-	0x002efac7, // n0x0455 c0x0000 (---------------)  + I medecin
+-	0x00216583, // n0x0456 c0x0000 (---------------)  + I nom
+-	0x00277b88, // n0x0457 c0x0000 (---------------)  + I notaires
+-	0x002c70ca, // n0x0458 c0x0000 (---------------)  + I pharmacien
+-	0x0022f804, // n0x0459 c0x0000 (---------------)  + I port
+-	0x00261ec3, // n0x045a c0x0000 (---------------)  + I prd
+-	0x003460c6, // n0x045b c0x0000 (---------------)  + I presse
+-	0x0023a842, // n0x045c c0x0000 (---------------)  + I tm
+-	0x002c1b4b, // n0x045d c0x0000 (---------------)  + I veterinaire
+-	0x0020d643, // n0x045e c0x0000 (---------------)  + I com
+-	0x002df843, // n0x045f c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0460 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0461 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0462 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0463 c0x0000 (---------------)  + I org
+-	0x002d36c3, // n0x0464 c0x0000 (---------------)  + I pvt
+-	0x0020d642, // n0x0465 c0x0000 (---------------)  + I co
+-	0x00218d43, // n0x0466 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0467 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0468 c0x0000 (---------------)  + I org
+-	0x00201d83, // n0x0469 c0x0000 (---------------)  + I sch
+-	0x0020d643, // n0x046a c0x0000 (---------------)  + I com
+-	0x002df843, // n0x046b c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x046c c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x046d c0x0000 (---------------)  + I mil
+-	0x0023e983, // n0x046e c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x046f c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0470 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0471 c0x0000 (---------------)  + I gov
+-	0x0023c1c3, // n0x0472 c0x0000 (---------------)  + I ltd
+-	0x00249483, // n0x0473 c0x0000 (---------------)  + I mod
+-	0x0023e983, // n0x0474 c0x0000 (---------------)  + I org
+-	0x00206c42, // n0x0475 c0x0000 (---------------)  + I ac
+-	0x0020d643, // n0x0476 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0477 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0478 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0479 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x047a c0x0000 (---------------)  + I org
+-	0x002072c4, // n0x047b c0x0000 (---------------)  + I asso
+-	0x0020d643, // n0x047c c0x0000 (---------------)  + I com
+-	0x002df843, // n0x047d c0x0000 (---------------)  + I edu
+-	0x00303304, // n0x047e c0x0000 (---------------)  + I mobi
+-	0x00214843, // n0x047f c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0480 c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x0481 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x0482 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0483 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0484 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0485 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0486 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x0487 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0488 c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x0489 c0x0000 (---------------)  + I gob
+-	0x002051c3, // n0x048a c0x0000 (---------------)  + I ind
+-	0x0022f003, // n0x048b c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x048c c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x048d c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x048e c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x048f c0x0000 (---------------)  + I com
+-	0x00214843, // n0x0490 c0x0000 (---------------)  + I net
+-	0x0003c708, // n0x0491 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x0492 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0493 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0494 c0x0000 (---------------)  + I gov
+-	0x002629c3, // n0x0495 c0x0000 (---------------)  + I idv
+-	0x00214843, // n0x0496 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0497 c0x0000 (---------------)  + I org
+-	0x0028feca, // n0x0498 c0x0000 (---------------)  + I xn--55qx5d
+-	0x002fbdc9, // n0x0499 c0x0000 (---------------)  + I xn--ciqpn
+-	0x0030784b, // n0x049a c0x0000 (---------------)  + I xn--gmq050i
+-	0x0030910a, // n0x049b c0x0000 (---------------)  + I xn--gmqw5a
+-	0x0031014a, // n0x049c c0x0000 (---------------)  + I xn--io0a7i
+-	0x0031730b, // n0x049d c0x0000 (---------------)  + I xn--lcvr32d
+-	0x003245ca, // n0x049e c0x0000 (---------------)  + I xn--mk0axi
+-	0x0032938a, // n0x049f c0x0000 (---------------)  + I xn--mxtq1m
+-	0x0032c24a, // n0x04a0 c0x0000 (---------------)  + I xn--od0alg
+-	0x0032c4cb, // n0x04a1 c0x0000 (---------------)  + I xn--od0aq3b
+-	0x00340949, // n0x04a2 c0x0000 (---------------)  + I xn--tn0ag
+-	0x00343c0a, // n0x04a3 c0x0000 (---------------)  + I xn--uc0atv
+-	0x003440cb, // n0x04a4 c0x0000 (---------------)  + I xn--uc0ay4a
+-	0x00349f0b, // n0x04a5 c0x0000 (---------------)  + I xn--wcvs22d
+-	0x0034e54a, // n0x04a6 c0x0000 (---------------)  + I xn--zf0avx
+-	0x0020d643, // n0x04a7 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x04a8 c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x04a9 c0x0000 (---------------)  + I gob
+-	0x0022f003, // n0x04aa c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x04ab c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x04ac c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x04ad c0x0000 (---------------)  + I com
+-	0x00250884, // n0x04ae c0x0000 (---------------)  + I from
+-	0x00215942, // n0x04af c0x0000 (---------------)  + I iz
+-	0x00202f04, // n0x04b0 c0x0000 (---------------)  + I name
+-	0x00251685, // n0x04b1 c0x0000 (---------------)  + I adult
+-	0x0020e343, // n0x04b2 c0x0000 (---------------)  + I art
+-	0x002072c4, // n0x04b3 c0x0000 (---------------)  + I asso
+-	0x0020d643, // n0x04b4 c0x0000 (---------------)  + I com
+-	0x0023ae84, // n0x04b5 c0x0000 (---------------)  + I coop
+-	0x002df843, // n0x04b6 c0x0000 (---------------)  + I edu
+-	0x00243504, // n0x04b7 c0x0000 (---------------)  + I firm
+-	0x00257384, // n0x04b8 c0x0000 (---------------)  + I gouv
+-	0x00210e04, // n0x04b9 c0x0000 (---------------)  + I info
+-	0x0023dbc3, // n0x04ba c0x0000 (---------------)  + I med
+-	0x00214843, // n0x04bb c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x04bc c0x0000 (---------------)  + I org
+-	0x0029a085, // n0x04bd c0x0000 (---------------)  + I perso
+-	0x00205383, // n0x04be c0x0000 (---------------)  + I pol
+-	0x002d1383, // n0x04bf c0x0000 (---------------)  + I pro
+-	0x00259c43, // n0x04c0 c0x0000 (---------------)  + I rel
+-	0x003040c4, // n0x04c1 c0x0000 (---------------)  + I shop
+-	0x00231744, // n0x04c2 c0x0000 (---------------)  + I 2000
+-	0x00302cc5, // n0x04c3 c0x0000 (---------------)  + I agrar
+-	0x0003c708, // n0x04c4 c0x0000 (---------------)  +   blogspot
+-	0x00211884, // n0x04c5 c0x0000 (---------------)  + I bolt
+-	0x00318c46, // n0x04c6 c0x0000 (---------------)  + I casino
+-	0x0034a404, // n0x04c7 c0x0000 (---------------)  + I city
+-	0x0020d642, // n0x04c8 c0x0000 (---------------)  + I co
+-	0x0029f807, // n0x04c9 c0x0000 (---------------)  + I erotica
+-	0x002a8787, // n0x04ca c0x0000 (---------------)  + I erotika
+-	0x00242684, // n0x04cb c0x0000 (---------------)  + I film
+-	0x0024be05, // n0x04cc c0x0000 (---------------)  + I forum
+-	0x002dce45, // n0x04cd c0x0000 (---------------)  + I games
+-	0x002937c5, // n0x04ce c0x0000 (---------------)  + I hotel
+-	0x00210e04, // n0x04cf c0x0000 (---------------)  + I info
+-	0x002e7308, // n0x04d0 c0x0000 (---------------)  + I ingatlan
+-	0x00224e06, // n0x04d1 c0x0000 (---------------)  + I jogasz
+-	0x002fa288, // n0x04d2 c0x0000 (---------------)  + I konyvelo
+-	0x0021aa45, // n0x04d3 c0x0000 (---------------)  + I lakas
+-	0x0023dbc5, // n0x04d4 c0x0000 (---------------)  + I media
+-	0x00307604, // n0x04d5 c0x0000 (---------------)  + I news
+-	0x0023e983, // n0x04d6 c0x0000 (---------------)  + I org
+-	0x002d1204, // n0x04d7 c0x0000 (---------------)  + I priv
+-	0x0020b886, // n0x04d8 c0x0000 (---------------)  + I reklam
+-	0x003461c3, // n0x04d9 c0x0000 (---------------)  + I sex
+-	0x003040c4, // n0x04da c0x0000 (---------------)  + I shop
+-	0x002d4305, // n0x04db c0x0000 (---------------)  + I sport
+-	0x00248084, // n0x04dc c0x0000 (---------------)  + I suli
+-	0x0021bac4, // n0x04dd c0x0000 (---------------)  + I szex
+-	0x0023a842, // n0x04de c0x0000 (---------------)  + I tm
+-	0x0027d6c6, // n0x04df c0x0000 (---------------)  + I tozsde
+-	0x003381c6, // n0x04e0 c0x0000 (---------------)  + I utazas
+-	0x002ef0c5, // n0x04e1 c0x0000 (---------------)  + I video
+-	0x00206c42, // n0x04e2 c0x0000 (---------------)  + I ac
+-	0x0030c243, // n0x04e3 c0x0000 (---------------)  + I biz
+-	0x0020d642, // n0x04e4 c0x0000 (---------------)  + I co
+-	0x00200482, // n0x04e5 c0x0000 (---------------)  + I go
+-	0x0022f003, // n0x04e6 c0x0000 (---------------)  + I mil
+-	0x0023a882, // n0x04e7 c0x0000 (---------------)  + I my
+-	0x00214843, // n0x04e8 c0x0000 (---------------)  + I net
+-	0x00200a82, // n0x04e9 c0x0000 (---------------)  + I or
+-	0x00201d83, // n0x04ea c0x0000 (---------------)  + I sch
+-	0x00205e43, // n0x04eb c0x0000 (---------------)  + I web
+-	0x0003c708, // n0x04ec c0x0000 (---------------)  +   blogspot
+-	0x00218d43, // n0x04ed c0x0000 (---------------)  + I gov
+-	0x17a0d642, // n0x04ee c0x005e (n0x04ef-n0x04f0)  o I co
+-	0x0003c708, // n0x04ef c0x0000 (---------------)  +   blogspot
+-	0x00206c42, // n0x04f0 c0x0000 (---------------)  + I ac
+-	0x1820d642, // n0x04f1 c0x0060 (n0x04f6-n0x04f8)  + I co
+-	0x00218d43, // n0x04f2 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x04f3 c0x0000 (---------------)  + I net
+-	0x00211783, // n0x04f4 c0x0000 (---------------)  + I nic
+-	0x0023e983, // n0x04f5 c0x0000 (---------------)  + I org
+-	0x0023c1c3, // n0x04f6 c0x0000 (---------------)  + I ltd
+-	0x002cd4c3, // n0x04f7 c0x0000 (---------------)  + I plc
+-	0x00206c42, // n0x04f8 c0x0000 (---------------)  + I ac
+-	0x0003c708, // n0x04f9 c0x0000 (---------------)  +   blogspot
+-	0x0020d642, // n0x04fa c0x0000 (---------------)  + I co
+-	0x002df843, // n0x04fb c0x0000 (---------------)  + I edu
+-	0x00243504, // n0x04fc c0x0000 (---------------)  + I firm
+-	0x0020b183, // n0x04fd c0x0000 (---------------)  + I gen
+-	0x00218d43, // n0x04fe c0x0000 (---------------)  + I gov
+-	0x002051c3, // n0x04ff c0x0000 (---------------)  + I ind
+-	0x0022f003, // n0x0500 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0501 c0x0000 (---------------)  + I net
+-	0x00211783, // n0x0502 c0x0000 (---------------)  + I nic
+-	0x0023e983, // n0x0503 c0x0000 (---------------)  + I org
+-	0x0021a643, // n0x0504 c0x0000 (---------------)  + I res
+-	0x00126c53, // n0x0505 c0x0000 (---------------)  +   barrel-of-knowledge
+-	0x0012c754, // n0x0506 c0x0000 (---------------)  +   barrell-of-knowledge
+-	0x00004a46, // n0x0507 c0x0000 (---------------)  +   dyndns
+-	0x00047787, // n0x0508 c0x0000 (---------------)  +   for-our
+-	0x00029309, // n0x0509 c0x0000 (---------------)  +   groks-the
+-	0x0004898a, // n0x050a c0x0000 (---------------)  +   groks-this
+-	0x0011f6cd, // n0x050b c0x0000 (---------------)  +   here-for-more
+-	0x000be4ca, // n0x050c c0x0000 (---------------)  +   knowsitall
+-	0x00109ac6, // n0x050d c0x0000 (---------------)  +   selfip
+-	0x000141c6, // n0x050e c0x0000 (---------------)  +   webhop
+-	0x0020f402, // n0x050f c0x0000 (---------------)  + I eu
+-	0x0020d643, // n0x0510 c0x0000 (---------------)  + I com
+-	0x000ad5c6, // n0x0511 c0x0000 (---------------)  +   github
+-	0x0020d643, // n0x0512 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0513 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0514 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0515 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0516 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0517 c0x0000 (---------------)  + I org
+-	0x00206c42, // n0x0518 c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x0519 c0x0000 (---------------)  + I co
+-	0x00218d43, // n0x051a c0x0000 (---------------)  + I gov
+-	0x00202282, // n0x051b c0x0000 (---------------)  + I id
+-	0x00214843, // n0x051c c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x051d c0x0000 (---------------)  + I org
+-	0x00201d83, // n0x051e c0x0000 (---------------)  + I sch
+-	0x0032018f, // n0x051f c0x0000 (---------------)  + I xn--mgba3a4f16a
+-	0x0032054e, // n0x0520 c0x0000 (---------------)  + I xn--mgba3a4fra
+-	0x0020d643, // n0x0521 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0522 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0523 c0x0000 (---------------)  + I gov
+-	0x00217543, // n0x0524 c0x0000 (---------------)  + I int
+-	0x00214843, // n0x0525 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0526 c0x0000 (---------------)  + I org
+-	0x002082c2, // n0x0527 c0x0000 (---------------)  + I ag
+-	0x00340b09, // n0x0528 c0x0000 (---------------)  + I agrigento
+-	0x00203982, // n0x0529 c0x0000 (---------------)  + I al
+-	0x002a0b4b, // n0x052a c0x0000 (---------------)  + I alessandria
+-	0x002b0cca, // n0x052b c0x0000 (---------------)  + I alto-adige
+-	0x002366c9, // n0x052c c0x0000 (---------------)  + I altoadige
+-	0x00200202, // n0x052d c0x0000 (---------------)  + I an
+-	0x00341dc6, // n0x052e c0x0000 (---------------)  + I ancona
+-	0x002930d5, // n0x052f c0x0000 (---------------)  + I andria-barletta-trani
+-	0x002a0c95, // n0x0530 c0x0000 (---------------)  + I andria-trani-barletta
+-	0x002943d3, // n0x0531 c0x0000 (---------------)  + I andriabarlettatrani
+-	0x002a1213, // n0x0532 c0x0000 (---------------)  + I andriatranibarletta
+-	0x0020aa02, // n0x0533 c0x0000 (---------------)  + I ao
+-	0x002289c5, // n0x0534 c0x0000 (---------------)  + I aosta
+-	0x002b0905, // n0x0535 c0x0000 (---------------)  + I aoste
+-	0x002006c2, // n0x0536 c0x0000 (---------------)  + I ap
+-	0x00271b82, // n0x0537 c0x0000 (---------------)  + I aq
+-	0x002b8a86, // n0x0538 c0x0000 (---------------)  + I aquila
+-	0x00200182, // n0x0539 c0x0000 (---------------)  + I ar
+-	0x00335e46, // n0x053a c0x0000 (---------------)  + I arezzo
+-	0x0020e68d, // n0x053b c0x0000 (---------------)  + I ascoli-piceno
+-	0x0023594c, // n0x053c c0x0000 (---------------)  + I ascolipiceno
+-	0x0021c4c4, // n0x053d c0x0000 (---------------)  + I asti
+-	0x00201042, // n0x053e c0x0000 (---------------)  + I at
+-	0x0020be82, // n0x053f c0x0000 (---------------)  + I av
+-	0x002ddb48, // n0x0540 c0x0000 (---------------)  + I avellino
+-	0x00201542, // n0x0541 c0x0000 (---------------)  + I ba
+-	0x002ad706, // n0x0542 c0x0000 (---------------)  + I balsan
+-	0x00218004, // n0x0543 c0x0000 (---------------)  + I bari
+-	0x00293295, // n0x0544 c0x0000 (---------------)  + I barletta-trani-andria
+-	0x00294553, // n0x0545 c0x0000 (---------------)  + I barlettatraniandria
+-	0x00233547, // n0x0546 c0x0000 (---------------)  + I belluno
+-	0x002594c9, // n0x0547 c0x0000 (---------------)  + I benevento
+-	0x00236ec7, // n0x0548 c0x0000 (---------------)  + I bergamo
+-	0x0033aa82, // n0x0549 c0x0000 (---------------)  + I bg
+-	0x00205742, // n0x054a c0x0000 (---------------)  + I bi
+-	0x002063c6, // n0x054b c0x0000 (---------------)  + I biella
+-	0x00205582, // n0x054c c0x0000 (---------------)  + I bl
+-	0x0003c708, // n0x054d c0x0000 (---------------)  +   blogspot
+-	0x00252802, // n0x054e c0x0000 (---------------)  + I bn
+-	0x002033c2, // n0x054f c0x0000 (---------------)  + I bo
+-	0x002f0e07, // n0x0550 c0x0000 (---------------)  + I bologna
+-	0x00212547, // n0x0551 c0x0000 (---------------)  + I bolzano
+-	0x00218fc5, // n0x0552 c0x0000 (---------------)  + I bozen
+-	0x00201882, // n0x0553 c0x0000 (---------------)  + I br
+-	0x0021a607, // n0x0554 c0x0000 (---------------)  + I brescia
+-	0x0021a7c8, // n0x0555 c0x0000 (---------------)  + I brindisi
+-	0x00205ec2, // n0x0556 c0x0000 (---------------)  + I bs
+-	0x00214742, // n0x0557 c0x0000 (---------------)  + I bt
+-	0x0022c342, // n0x0558 c0x0000 (---------------)  + I bz
+-	0x00201002, // n0x0559 c0x0000 (---------------)  + I ca
+-	0x002aff08, // n0x055a c0x0000 (---------------)  + I cagliari
+-	0x00247bcd, // n0x055b c0x0000 (---------------)  + I caltanissetta
+-	0x0025aa0f, // n0x055c c0x0000 (---------------)  + I campidano-medio
+-	0x0025adce, // n0x055d c0x0000 (---------------)  + I campidanomedio
+-	0x0020714a, // n0x055e c0x0000 (---------------)  + I campobasso
+-	0x0029f951, // n0x055f c0x0000 (---------------)  + I carbonia-iglesias
+-	0x0029fdd0, // n0x0560 c0x0000 (---------------)  + I carboniaiglesias
+-	0x002b924d, // n0x0561 c0x0000 (---------------)  + I carrara-massa
+-	0x002b958c, // n0x0562 c0x0000 (---------------)  + I carraramassa
+-	0x00226ec7, // n0x0563 c0x0000 (---------------)  + I caserta
+-	0x002ae487, // n0x0564 c0x0000 (---------------)  + I catania
+-	0x00201009, // n0x0565 c0x0000 (---------------)  + I catanzaro
+-	0x0021c5c2, // n0x0566 c0x0000 (---------------)  + I cb
+-	0x00200502, // n0x0567 c0x0000 (---------------)  + I ce
+-	0x00249d4c, // n0x0568 c0x0000 (---------------)  + I cesena-forli
+-	0x0024a04b, // n0x0569 c0x0000 (---------------)  + I cesenaforli
+-	0x002007c2, // n0x056a c0x0000 (---------------)  + I ch
+-	0x002ab686, // n0x056b c0x0000 (---------------)  + I chieti
+-	0x00208a02, // n0x056c c0x0000 (---------------)  + I ci
+-	0x002278c2, // n0x056d c0x0000 (---------------)  + I cl
+-	0x00231842, // n0x056e c0x0000 (---------------)  + I cn
+-	0x0020d642, // n0x056f c0x0000 (---------------)  + I co
+-	0x0020d644, // n0x0570 c0x0000 (---------------)  + I como
+-	0x0023d1c7, // n0x0571 c0x0000 (---------------)  + I cosenza
+-	0x00234182, // n0x0572 c0x0000 (---------------)  + I cr
+-	0x0023fec7, // n0x0573 c0x0000 (---------------)  + I cremona
+-	0x00240887, // n0x0574 c0x0000 (---------------)  + I crotone
+-	0x00218982, // n0x0575 c0x0000 (---------------)  + I cs
+-	0x00234a42, // n0x0576 c0x0000 (---------------)  + I ct
+-	0x00240dc5, // n0x0577 c0x0000 (---------------)  + I cuneo
+-	0x00206a42, // n0x0578 c0x0000 (---------------)  + I cz
+-	0x0024b24e, // n0x0579 c0x0000 (---------------)  + I dell-ogliastra
+-	0x0025540d, // n0x057a c0x0000 (---------------)  + I dellogliastra
+-	0x002df843, // n0x057b c0x0000 (---------------)  + I edu
+-	0x00204882, // n0x057c c0x0000 (---------------)  + I en
+-	0x00258804, // n0x057d c0x0000 (---------------)  + I enna
+-	0x0030a802, // n0x057e c0x0000 (---------------)  + I fc
+-	0x0022bf82, // n0x057f c0x0000 (---------------)  + I fe
+-	0x002cc045, // n0x0580 c0x0000 (---------------)  + I fermo
+-	0x002d1947, // n0x0581 c0x0000 (---------------)  + I ferrara
+-	0x00328542, // n0x0582 c0x0000 (---------------)  + I fg
+-	0x0020bc82, // n0x0583 c0x0000 (---------------)  + I fi
+-	0x00243347, // n0x0584 c0x0000 (---------------)  + I firenze
+-	0x00246508, // n0x0585 c0x0000 (---------------)  + I florence
+-	0x00330b82, // n0x0586 c0x0000 (---------------)  + I fm
+-	0x00210e86, // n0x0587 c0x0000 (---------------)  + I foggia
+-	0x00249bcc, // n0x0588 c0x0000 (---------------)  + I forli-cesena
+-	0x00249f0b, // n0x0589 c0x0000 (---------------)  + I forlicesena
+-	0x00207f82, // n0x058a c0x0000 (---------------)  + I fr
+-	0x00267b09, // n0x058b c0x0000 (---------------)  + I frosinone
+-	0x00204902, // n0x058c c0x0000 (---------------)  + I ge
+-	0x0020f9c5, // n0x058d c0x0000 (---------------)  + I genoa
+-	0x00215f86, // n0x058e c0x0000 (---------------)  + I genova
+-	0x00200482, // n0x058f c0x0000 (---------------)  + I go
+-	0x002bed47, // n0x0590 c0x0000 (---------------)  + I gorizia
+-	0x00218d43, // n0x0591 c0x0000 (---------------)  + I gov
+-	0x00200642, // n0x0592 c0x0000 (---------------)  + I gr
+-	0x0024e048, // n0x0593 c0x0000 (---------------)  + I grosseto
+-	0x0029fb91, // n0x0594 c0x0000 (---------------)  + I iglesias-carbonia
+-	0x0029ffd0, // n0x0595 c0x0000 (---------------)  + I iglesiascarbonia
+-	0x00202cc2, // n0x0596 c0x0000 (---------------)  + I im
+-	0x00210787, // n0x0597 c0x0000 (---------------)  + I imperia
+-	0x00200842, // n0x0598 c0x0000 (---------------)  + I is
+-	0x002428c7, // n0x0599 c0x0000 (---------------)  + I isernia
+-	0x002015c2, // n0x059a c0x0000 (---------------)  + I kr
+-	0x00225009, // n0x059b c0x0000 (---------------)  + I la-spezia
+-	0x002b8a47, // n0x059c c0x0000 (---------------)  + I laquila
+-	0x00262588, // n0x059d c0x0000 (---------------)  + I laspezia
+-	0x002249c6, // n0x059e c0x0000 (---------------)  + I latina
+-	0x00240c02, // n0x059f c0x0000 (---------------)  + I lc
+-	0x00205902, // n0x05a0 c0x0000 (---------------)  + I le
+-	0x002067c5, // n0x05a1 c0x0000 (---------------)  + I lecce
+-	0x00214a85, // n0x05a2 c0x0000 (---------------)  + I lecco
+-	0x002039c2, // n0x05a3 c0x0000 (---------------)  + I li
+-	0x002039c7, // n0x05a4 c0x0000 (---------------)  + I livorno
+-	0x002055c2, // n0x05a5 c0x0000 (---------------)  + I lo
+-	0x0024ac84, // n0x05a6 c0x0000 (---------------)  + I lodi
+-	0x0020b7c2, // n0x05a7 c0x0000 (---------------)  + I lt
+-	0x00204982, // n0x05a8 c0x0000 (---------------)  + I lu
+-	0x00304285, // n0x05a9 c0x0000 (---------------)  + I lucca
+-	0x002f9b48, // n0x05aa c0x0000 (---------------)  + I macerata
+-	0x0028de07, // n0x05ab c0x0000 (---------------)  + I mantova
+-	0x002b90cd, // n0x05ac c0x0000 (---------------)  + I massa-carrara
+-	0x002b944c, // n0x05ad c0x0000 (---------------)  + I massacarrara
+-	0x0029e206, // n0x05ae c0x0000 (---------------)  + I matera
+-	0x00209382, // n0x05af c0x0000 (---------------)  + I mb
+-	0x002d8982, // n0x05b0 c0x0000 (---------------)  + I mc
+-	0x00202f82, // n0x05b1 c0x0000 (---------------)  + I me
+-	0x0025a88f, // n0x05b2 c0x0000 (---------------)  + I medio-campidano
+-	0x0025ac8e, // n0x05b3 c0x0000 (---------------)  + I mediocampidano
+-	0x00204007, // n0x05b4 c0x0000 (---------------)  + I messina
+-	0x00206702, // n0x05b5 c0x0000 (---------------)  + I mi
+-	0x00311985, // n0x05b6 c0x0000 (---------------)  + I milan
+-	0x00311986, // n0x05b7 c0x0000 (---------------)  + I milano
+-	0x00201702, // n0x05b8 c0x0000 (---------------)  + I mn
+-	0x00203d42, // n0x05b9 c0x0000 (---------------)  + I mo
+-	0x00287146, // n0x05ba c0x0000 (---------------)  + I modena
+-	0x002b60c5, // n0x05bb c0x0000 (---------------)  + I monza
+-	0x002b60cd, // n0x05bc c0x0000 (---------------)  + I monza-brianza
+-	0x002b6415, // n0x05bd c0x0000 (---------------)  + I monza-e-della-brianza
+-	0x002b694c, // n0x05be c0x0000 (---------------)  + I monzabrianza
+-	0x002b6c4d, // n0x05bf c0x0000 (---------------)  + I monzaebrianza
+-	0x002b6f92, // n0x05c0 c0x0000 (---------------)  + I monzaedellabrianza
+-	0x00201342, // n0x05c1 c0x0000 (---------------)  + I ms
+-	0x0025c502, // n0x05c2 c0x0000 (---------------)  + I mt
+-	0x00200982, // n0x05c3 c0x0000 (---------------)  + I na
+-	0x002f8646, // n0x05c4 c0x0000 (---------------)  + I naples
+-	0x00205306, // n0x05c5 c0x0000 (---------------)  + I napoli
+-	0x002005c2, // n0x05c6 c0x0000 (---------------)  + I no
+-	0x00216006, // n0x05c7 c0x0000 (---------------)  + I novara
+-	0x00203642, // n0x05c8 c0x0000 (---------------)  + I nu
+-	0x00276e45, // n0x05c9 c0x0000 (---------------)  + I nuoro
+-	0x00200602, // n0x05ca c0x0000 (---------------)  + I og
+-	0x0024b389, // n0x05cb c0x0000 (---------------)  + I ogliastra
+-	0x0029844c, // n0x05cc c0x0000 (---------------)  + I olbia-tempio
+-	0x0029878b, // n0x05cd c0x0000 (---------------)  + I olbiatempio
+-	0x00200a82, // n0x05ce c0x0000 (---------------)  + I or
+-	0x002c0088, // n0x05cf c0x0000 (---------------)  + I oristano
+-	0x00200382, // n0x05d0 c0x0000 (---------------)  + I ot
+-	0x0020d002, // n0x05d1 c0x0000 (---------------)  + I pa
+-	0x002114c6, // n0x05d2 c0x0000 (---------------)  + I padova
+-	0x003214c5, // n0x05d3 c0x0000 (---------------)  + I padua
+-	0x002854c7, // n0x05d4 c0x0000 (---------------)  + I palermo
+-	0x002f2845, // n0x05d5 c0x0000 (---------------)  + I parma
+-	0x002c6dc5, // n0x05d6 c0x0000 (---------------)  + I pavia
+-	0x002dca02, // n0x05d7 c0x0000 (---------------)  + I pc
+-	0x003041c2, // n0x05d8 c0x0000 (---------------)  + I pd
+-	0x00209242, // n0x05d9 c0x0000 (---------------)  + I pe
+-	0x00271807, // n0x05da c0x0000 (---------------)  + I perugia
+-	0x002d050d, // n0x05db c0x0000 (---------------)  + I pesaro-urbino
+-	0x002d088c, // n0x05dc c0x0000 (---------------)  + I pesarourbino
+-	0x002c6f07, // n0x05dd c0x0000 (---------------)  + I pescara
+-	0x00224042, // n0x05de c0x0000 (---------------)  + I pg
+-	0x0020e842, // n0x05df c0x0000 (---------------)  + I pi
+-	0x00258d88, // n0x05e0 c0x0000 (---------------)  + I piacenza
+-	0x0028e544, // n0x05e1 c0x0000 (---------------)  + I pisa
+-	0x002ccac7, // n0x05e2 c0x0000 (---------------)  + I pistoia
+-	0x002371c2, // n0x05e3 c0x0000 (---------------)  + I pn
+-	0x00200a42, // n0x05e4 c0x0000 (---------------)  + I po
+-	0x002cf209, // n0x05e5 c0x0000 (---------------)  + I pordenone
+-	0x002338c7, // n0x05e6 c0x0000 (---------------)  + I potenza
+-	0x00261ec2, // n0x05e7 c0x0000 (---------------)  + I pr
+-	0x0031bc45, // n0x05e8 c0x0000 (---------------)  + I prato
+-	0x00211c02, // n0x05e9 c0x0000 (---------------)  + I pt
+-	0x00203f42, // n0x05ea c0x0000 (---------------)  + I pu
+-	0x002d36c2, // n0x05eb c0x0000 (---------------)  + I pv
+-	0x002d3982, // n0x05ec c0x0000 (---------------)  + I pz
+-	0x002001c2, // n0x05ed c0x0000 (---------------)  + I ra
+-	0x00230746, // n0x05ee c0x0000 (---------------)  + I ragusa
+-	0x0030b487, // n0x05ef c0x0000 (---------------)  + I ravenna
+-	0x00240d82, // n0x05f0 c0x0000 (---------------)  + I rc
+-	0x00201602, // n0x05f1 c0x0000 (---------------)  + I re
+-	0x002ba58f, // n0x05f2 c0x0000 (---------------)  + I reggio-calabria
+-	0x00308dcd, // n0x05f3 c0x0000 (---------------)  + I reggio-emilia
+-	0x0023d70e, // n0x05f4 c0x0000 (---------------)  + I reggiocalabria
+-	0x00246d8c, // n0x05f5 c0x0000 (---------------)  + I reggioemilia
+-	0x00203802, // n0x05f6 c0x0000 (---------------)  + I rg
+-	0x00201d02, // n0x05f7 c0x0000 (---------------)  + I ri
+-	0x00222f45, // n0x05f8 c0x0000 (---------------)  + I rieti
+-	0x002d7986, // n0x05f9 c0x0000 (---------------)  + I rimini
+-	0x00201302, // n0x05fa c0x0000 (---------------)  + I rm
+-	0x00200082, // n0x05fb c0x0000 (---------------)  + I rn
+-	0x00200ac2, // n0x05fc c0x0000 (---------------)  + I ro
+-	0x0029bd84, // n0x05fd c0x0000 (---------------)  + I roma
+-	0x00299244, // n0x05fe c0x0000 (---------------)  + I rome
+-	0x0020ce86, // n0x05ff c0x0000 (---------------)  + I rovigo
+-	0x00202442, // n0x0600 c0x0000 (---------------)  + I sa
+-	0x002a7e47, // n0x0601 c0x0000 (---------------)  + I salerno
+-	0x002d61c7, // n0x0602 c0x0000 (---------------)  + I sassari
+-	0x002f47c6, // n0x0603 c0x0000 (---------------)  + I savona
+-	0x002040c2, // n0x0604 c0x0000 (---------------)  + I si
+-	0x002d2685, // n0x0605 c0x0000 (---------------)  + I siena
+-	0x00265e88, // n0x0606 c0x0000 (---------------)  + I siracusa
+-	0x00200882, // n0x0607 c0x0000 (---------------)  + I so
+-	0x00331d87, // n0x0608 c0x0000 (---------------)  + I sondrio
+-	0x002250c2, // n0x0609 c0x0000 (---------------)  + I sp
+-	0x002ba542, // n0x060a c0x0000 (---------------)  + I sr
+-	0x00204082, // n0x060b c0x0000 (---------------)  + I ss
+-	0x00302a49, // n0x060c c0x0000 (---------------)  + I suedtirol
+-	0x00206602, // n0x060d c0x0000 (---------------)  + I sv
+-	0x00200142, // n0x060e c0x0000 (---------------)  + I ta
+-	0x00200147, // n0x060f c0x0000 (---------------)  + I taranto
+-	0x002013c2, // n0x0610 c0x0000 (---------------)  + I te
+-	0x002985cc, // n0x0611 c0x0000 (---------------)  + I tempio-olbia
+-	0x002988cb, // n0x0612 c0x0000 (---------------)  + I tempioolbia
+-	0x0029e286, // n0x0613 c0x0000 (---------------)  + I teramo
+-	0x002e4c85, // n0x0614 c0x0000 (---------------)  + I terni
+-	0x00203602, // n0x0615 c0x0000 (---------------)  + I tn
+-	0x00200282, // n0x0616 c0x0000 (---------------)  + I to
+-	0x002a3ac6, // n0x0617 c0x0000 (---------------)  + I torino
+-	0x0020c382, // n0x0618 c0x0000 (---------------)  + I tp
+-	0x00208d82, // n0x0619 c0x0000 (---------------)  + I tr
+-	0x00292f55, // n0x061a c0x0000 (---------------)  + I trani-andria-barletta
+-	0x002a0e55, // n0x061b c0x0000 (---------------)  + I trani-barletta-andria
+-	0x00294293, // n0x061c c0x0000 (---------------)  + I traniandriabarletta
+-	0x002a1393, // n0x061d c0x0000 (---------------)  + I tranibarlettaandria
+-	0x002d4407, // n0x061e c0x0000 (---------------)  + I trapani
+-	0x00348f08, // n0x061f c0x0000 (---------------)  + I trentino
+-	0x002b3bc6, // n0x0620 c0x0000 (---------------)  + I trento
+-	0x002b8887, // n0x0621 c0x0000 (---------------)  + I treviso
+-	0x002c1747, // n0x0622 c0x0000 (---------------)  + I trieste
+-	0x00202a82, // n0x0623 c0x0000 (---------------)  + I ts
+-	0x0029db45, // n0x0624 c0x0000 (---------------)  + I turin
+-	0x00281802, // n0x0625 c0x0000 (---------------)  + I tv
+-	0x00207b82, // n0x0626 c0x0000 (---------------)  + I ud
+-	0x002bf6c5, // n0x0627 c0x0000 (---------------)  + I udine
+-	0x002d06cd, // n0x0628 c0x0000 (---------------)  + I urbino-pesaro
+-	0x002d0a0c, // n0x0629 c0x0000 (---------------)  + I urbinopesaro
+-	0x00206f02, // n0x062a c0x0000 (---------------)  + I va
+-	0x002cea46, // n0x062b c0x0000 (---------------)  + I varese
+-	0x00224902, // n0x062c c0x0000 (---------------)  + I vb
+-	0x0023f542, // n0x062d c0x0000 (---------------)  + I vc
+-	0x00209c42, // n0x062e c0x0000 (---------------)  + I ve
+-	0x0028d507, // n0x062f c0x0000 (---------------)  + I venezia
+-	0x00211706, // n0x0630 c0x0000 (---------------)  + I venice
+-	0x00221508, // n0x0631 c0x0000 (---------------)  + I verbania
+-	0x002f8ac8, // n0x0632 c0x0000 (---------------)  + I vercelli
+-	0x0027abc6, // n0x0633 c0x0000 (---------------)  + I verona
+-	0x00209542, // n0x0634 c0x0000 (---------------)  + I vi
+-	0x002eea8d, // n0x0635 c0x0000 (---------------)  + I vibo-valentia
+-	0x002eedcc, // n0x0636 c0x0000 (---------------)  + I vibovalentia
+-	0x00257447, // n0x0637 c0x0000 (---------------)  + I vicenza
+-	0x002f0cc7, // n0x0638 c0x0000 (---------------)  + I viterbo
+-	0x00212b82, // n0x0639 c0x0000 (---------------)  + I vr
+-	0x00260182, // n0x063a c0x0000 (---------------)  + I vs
+-	0x00237882, // n0x063b c0x0000 (---------------)  + I vt
+-	0x00215382, // n0x063c c0x0000 (---------------)  + I vv
+-	0x0020d642, // n0x063d c0x0000 (---------------)  + I co
+-	0x00218d43, // n0x063e c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x063f c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0640 c0x0000 (---------------)  + I org
+-	0x00201d83, // n0x0641 c0x0000 (---------------)  + I sch
+-	0x0020d643, // n0x0642 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0643 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0644 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0645 c0x0000 (---------------)  + I mil
+-	0x00202f04, // n0x0646 c0x0000 (---------------)  + I name
+-	0x00214843, // n0x0647 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0648 c0x0000 (---------------)  + I org
+-	0x00201d83, // n0x0649 c0x0000 (---------------)  + I sch
+-	0x00206c42, // n0x064a c0x0000 (---------------)  + I ac
+-	0x00201442, // n0x064b c0x0000 (---------------)  + I ad
+-	0x1b27c385, // n0x064c c0x006c (n0x068a-n0x06bf)  + I aichi
+-	0x1b61de05, // n0x064d c0x006d (n0x06bf-n0x06db)  + I akita
+-	0x1bab1246, // n0x064e c0x006e (n0x06db-n0x06f1)  + I aomori
+-	0x0003c708, // n0x064f c0x0000 (---------------)  +   blogspot
+-	0x1bea4405, // n0x0650 c0x006f (n0x06f1-n0x072b)  + I chiba
+-	0x0020d642, // n0x0651 c0x0000 (---------------)  + I co
+-	0x00207902, // n0x0652 c0x0000 (---------------)  + I ed
+-	0x1c30ca45, // n0x0653 c0x0070 (n0x072b-n0x0741)  + I ehime
+-	0x1c66cdc5, // n0x0654 c0x0071 (n0x0741-n0x0750)  + I fukui
+-	0x1ca6d707, // n0x0655 c0x0072 (n0x0750-n0x078f)  + I fukuoka
+-	0x1ce39289, // n0x0656 c0x0073 (n0x078f-n0x07c2)  + I fukushima
+-	0x1d33dc04, // n0x0657 c0x0074 (n0x07c2-n0x07e8)  + I gifu
+-	0x00200482, // n0x0658 c0x0000 (---------------)  + I go
+-	0x00200642, // n0x0659 c0x0000 (---------------)  + I gr
+-	0x1d65c945, // n0x065a c0x0075 (n0x07e8-n0x080c)  + I gunma
+-	0x1da7ba09, // n0x065b c0x0076 (n0x080c-n0x0825)  + I hiroshima
+-	0x1dee04c8, // n0x065c c0x0077 (n0x0825-n0x08b3)  + I hokkaido
+-	0x1e2ca405, // n0x065d c0x0078 (n0x08b3-n0x08e1)  + I hyogo
+-	0x1e727887, // n0x065e c0x0079 (n0x08e1-n0x0914)  + I ibaraki
+-	0x1ea6c948, // n0x065f c0x007a (n0x0914-n0x0927)  + I ishikawa
+-	0x1ee97345, // n0x0660 c0x007b (n0x0927-n0x094a)  + I iwate
+-	0x1f208506, // n0x0661 c0x007c (n0x094a-n0x0959)  + I kagawa
+-	0x1f6fd949, // n0x0662 c0x007d (n0x0959-n0x096d)  + I kagoshima
+-	0x1fa6cbc8, // n0x0663 c0x007e (n0x096d-n0x098b)  + I kanagawa
+-	0x1fea8c88, // n0x0664 c0x007f (n0x098b-n0x098c)* o I kawasaki
+-	0x2027e88a, // n0x0665 c0x0080 (n0x098c-n0x098d)* o I kitakyushu
+-	0x2064d504, // n0x0666 c0x0081 (n0x098d-n0x098e)* o I kobe
+-	0x20abef85, // n0x0667 c0x0082 (n0x098e-n0x09ad)  + I kochi
+-	0x20e5d348, // n0x0668 c0x0083 (n0x09ad-n0x09c7)  + I kumamoto
+-	0x21258145, // n0x0669 c0x0084 (n0x09c7-n0x09e6)  + I kyoto
+-	0x00216382, // n0x066a c0x0000 (---------------)  + I lg
+-	0x21606703, // n0x066b c0x0085 (n0x09e6-n0x0a04)  + I mie
+-	0x21a8d8c6, // n0x066c c0x0086 (n0x0a04-n0x0a25)  + I miyagi
+-	0x21e66b08, // n0x066d c0x0087 (n0x0a25-n0x0a40)  + I miyazaki
+-	0x223082c6, // n0x066e c0x0088 (n0x0a40-n0x0a8b)  + I nagano
+-	0x226f0f48, // n0x066f c0x0089 (n0x0a8b-n0x0aa1)  + I nagasaki
+-	0x22a08286, // n0x0670 c0x008a (n0x0aa1-n0x0aa2)* o I nagoya
+-	0x22f208c4, // n0x0671 c0x008b (n0x0aa2-n0x0ac8)  + I nara
+-	0x00203e82, // n0x0672 c0x0000 (---------------)  + I ne
+-	0x2328db47, // n0x0673 c0x008c (n0x0ac8-n0x0aea)  + I niigata
+-	0x236d8744, // n0x0674 c0x008d (n0x0aea-n0x0afd)  + I oita
+-	0x23a69a87, // n0x0675 c0x008e (n0x0afd-n0x0b17)  + I okayama
+-	0x23f08547, // n0x0676 c0x008f (n0x0b17-n0x0b41)  + I okinawa
+-	0x00200a82, // n0x0677 c0x0000 (---------------)  + I or
+-	0x24282e05, // n0x0678 c0x0090 (n0x0b41-n0x0b73)  + I osaka
+-	0x24662184, // n0x0679 c0x0091 (n0x0b73-n0x0b8d)  + I saga
+-	0x24aaab87, // n0x067a c0x0092 (n0x0b8d-n0x0bd2)  + I saitama
+-	0x24e80387, // n0x067b c0x0093 (n0x0bd2-n0x0bd3)* o I sapporo
+-	0x25270206, // n0x067c c0x0094 (n0x0bd3-n0x0bd4)* o I sendai
+-	0x25650d45, // n0x067d c0x0095 (n0x0bd4-n0x0beb)  + I shiga
+-	0x25a7dd07, // n0x067e c0x0096 (n0x0beb-n0x0c02)  + I shimane
+-	0x25ee0188, // n0x067f c0x0097 (n0x0c02-n0x0c26)  + I shizuoka
+-	0x2633dac7, // n0x0680 c0x0098 (n0x0c26-n0x0c45)  + I tochigi
+-	0x266daac9, // n0x0681 c0x0099 (n0x0c45-n0x0c56)  + I tokushima
+-	0x26a00285, // n0x0682 c0x009a (n0x0c56-n0x0c8f)  + I tokyo
+-	0x26f1bd07, // n0x0683 c0x009b (n0x0c8f-n0x0c9c)  + I tottori
+-	0x2725d4c6, // n0x0684 c0x009c (n0x0c9c-n0x0cb4)  + I toyama
+-	0x27741b08, // n0x0685 c0x009d (n0x0cb4-n0x0cd1)  + I wakayama
+-	0x27a6ee08, // n0x0686 c0x009e (n0x0cd1-n0x0cf3)  + I yamagata
+-	0x27e735c9, // n0x0687 c0x009f (n0x0cf3-n0x0d03)  + I yamaguchi
+-	0x28248c49, // n0x0688 c0x00a0 (n0x0d03-n0x0d1f)  + I yamanashi
+-	0x286bc808, // n0x0689 c0x00a1 (n0x0d1f-n0x0d20)* o I yokohama
+-	0x002a5385, // n0x068a c0x0000 (---------------)  + I aisai
+-	0x00204603, // n0x068b c0x0000 (---------------)  + I ama
+-	0x0025bc84, // n0x068c c0x0000 (---------------)  + I anjo
+-	0x00304605, // n0x068d c0x0000 (---------------)  + I asuke
+-	0x002850c6, // n0x068e c0x0000 (---------------)  + I chiryu
+-	0x0028a285, // n0x068f c0x0000 (---------------)  + I chita
+-	0x00272e44, // n0x0690 c0x0000 (---------------)  + I fuso
+-	0x002bec48, // n0x0691 c0x0000 (---------------)  + I gamagori
+-	0x002aa685, // n0x0692 c0x0000 (---------------)  + I handa
+-	0x0027d344, // n0x0693 c0x0000 (---------------)  + I hazu
+-	0x0025eec7, // n0x0694 c0x0000 (---------------)  + I hekinan
+-	0x00286a8a, // n0x0695 c0x0000 (---------------)  + I higashiura
+-	0x0029994a, // n0x0696 c0x0000 (---------------)  + I ichinomiya
+-	0x00275747, // n0x0697 c0x0000 (---------------)  + I inazawa
+-	0x0021d7c7, // n0x0698 c0x0000 (---------------)  + I inuyama
+-	0x00332787, // n0x0699 c0x0000 (---------------)  + I isshiki
+-	0x00237cc7, // n0x069a c0x0000 (---------------)  + I iwakura
+-	0x002dc8c5, // n0x069b c0x0000 (---------------)  + I kanie
+-	0x00228286, // n0x069c c0x0000 (---------------)  + I kariya
+-	0x00254107, // n0x069d c0x0000 (---------------)  + I kasugai
+-	0x00256804, // n0x069e c0x0000 (---------------)  + I kira
+-	0x0029b646, // n0x069f c0x0000 (---------------)  + I kiyosu
+-	0x002b4fc6, // n0x06a0 c0x0000 (---------------)  + I komaki
+-	0x002e69c5, // n0x06a1 c0x0000 (---------------)  + I konan
+-	0x00324004, // n0x06a2 c0x0000 (---------------)  + I kota
+-	0x0028ee06, // n0x06a3 c0x0000 (---------------)  + I mihama
+-	0x00284707, // n0x06a4 c0x0000 (---------------)  + I miyoshi
+-	0x002e8a48, // n0x06a5 c0x0000 (---------------)  + I nagakute
+-	0x0022dc86, // n0x06a6 c0x0000 (---------------)  + I nishio
+-	0x00238e87, // n0x06a7 c0x0000 (---------------)  + I nisshin
+-	0x0027d183, // n0x06a8 c0x0000 (---------------)  + I obu
+-	0x00277046, // n0x06a9 c0x0000 (---------------)  + I oguchi
+-	0x00285245, // n0x06aa c0x0000 (---------------)  + I oharu
+-	0x0026d807, // n0x06ab c0x0000 (---------------)  + I okazaki
+-	0x002ad10a, // n0x06ac c0x0000 (---------------)  + I owariasahi
+-	0x0024e144, // n0x06ad c0x0000 (---------------)  + I seto
+-	0x00254688, // n0x06ae c0x0000 (---------------)  + I shikatsu
+-	0x002da789, // n0x06af c0x0000 (---------------)  + I shinshiro
+-	0x002de9c7, // n0x06b0 c0x0000 (---------------)  + I shitara
+-	0x0022c986, // n0x06b1 c0x0000 (---------------)  + I tahara
+-	0x0028dc88, // n0x06b2 c0x0000 (---------------)  + I takahama
+-	0x00235fc9, // n0x06b3 c0x0000 (---------------)  + I tobishima
+-	0x00252a44, // n0x06b4 c0x0000 (---------------)  + I toei
+-	0x00260a44, // n0x06b5 c0x0000 (---------------)  + I togo
+-	0x002f2085, // n0x06b6 c0x0000 (---------------)  + I tokai
+-	0x002df088, // n0x06b7 c0x0000 (---------------)  + I tokoname
+-	0x002b2fc7, // n0x06b8 c0x0000 (---------------)  + I toyoake
+-	0x002d9989, // n0x06b9 c0x0000 (---------------)  + I toyohashi
+-	0x0024a7c8, // n0x06ba c0x0000 (---------------)  + I toyokawa
+-	0x00251786, // n0x06bb c0x0000 (---------------)  + I toyone
+-	0x0025c546, // n0x06bc c0x0000 (---------------)  + I toyota
+-	0x00280788, // n0x06bd c0x0000 (---------------)  + I tsushima
+-	0x003136c6, // n0x06be c0x0000 (---------------)  + I yatomi
+-	0x0021de05, // n0x06bf c0x0000 (---------------)  + I akita
+-	0x002702c6, // n0x06c0 c0x0000 (---------------)  + I daisen
+-	0x0026a148, // n0x06c1 c0x0000 (---------------)  + I fujisato
+-	0x002ef9c6, // n0x06c2 c0x0000 (---------------)  + I gojome
+-	0x002b440b, // n0x06c3 c0x0000 (---------------)  + I hachirogata
+-	0x00278d86, // n0x06c4 c0x0000 (---------------)  + I happou
+-	0x00281acd, // n0x06c5 c0x0000 (---------------)  + I higashinaruse
+-	0x00224605, // n0x06c6 c0x0000 (---------------)  + I honjo
+-	0x00291986, // n0x06c7 c0x0000 (---------------)  + I honjyo
+-	0x00203045, // n0x06c8 c0x0000 (---------------)  + I ikawa
+-	0x00243c09, // n0x06c9 c0x0000 (---------------)  + I kamikoani
+-	0x00245947, // n0x06ca c0x0000 (---------------)  + I kamioka
+-	0x002bd388, // n0x06cb c0x0000 (---------------)  + I katagami
+-	0x0032fc86, // n0x06cc c0x0000 (---------------)  + I kazuno
+-	0x00280f09, // n0x06cd c0x0000 (---------------)  + I kitaakita
+-	0x00298fc6, // n0x06ce c0x0000 (---------------)  + I kosaka
+-	0x002ad085, // n0x06cf c0x0000 (---------------)  + I kyowa
+-	0x00235ec6, // n0x06d0 c0x0000 (---------------)  + I misato
+-	0x00310b46, // n0x06d1 c0x0000 (---------------)  + I mitane
+-	0x002b7e89, // n0x06d2 c0x0000 (---------------)  + I moriyoshi
+-	0x00252846, // n0x06d3 c0x0000 (---------------)  + I nikaho
+-	0x00259f47, // n0x06d4 c0x0000 (---------------)  + I noshiro
+-	0x0025a445, // n0x06d5 c0x0000 (---------------)  + I odate
+-	0x0020aa43, // n0x06d6 c0x0000 (---------------)  + I oga
+-	0x002a7fc5, // n0x06d7 c0x0000 (---------------)  + I ogata
+-	0x0025d207, // n0x06d8 c0x0000 (---------------)  + I semboku
+-	0x002bd6c6, // n0x06d9 c0x0000 (---------------)  + I yokote
+-	0x00224509, // n0x06da c0x0000 (---------------)  + I yurihonjo
+-	0x002b1246, // n0x06db c0x0000 (---------------)  + I aomori
+-	0x00260ac6, // n0x06dc c0x0000 (---------------)  + I gonohe
+-	0x0025ed09, // n0x06dd c0x0000 (---------------)  + I hachinohe
+-	0x0026fcc9, // n0x06de c0x0000 (---------------)  + I hashikami
+-	0x0028b7c7, // n0x06df c0x0000 (---------------)  + I hiranai
+-	0x00228608, // n0x06e0 c0x0000 (---------------)  + I hirosaki
+-	0x002d5bc9, // n0x06e1 c0x0000 (---------------)  + I itayanagi
+-	0x0026dcc8, // n0x06e2 c0x0000 (---------------)  + I kuroishi
+-	0x002e42c6, // n0x06e3 c0x0000 (---------------)  + I misawa
+-	0x002c4d45, // n0x06e4 c0x0000 (---------------)  + I mutsu
+-	0x0021c18a, // n0x06e5 c0x0000 (---------------)  + I nakadomari
+-	0x00260b46, // n0x06e6 c0x0000 (---------------)  + I noheji
+-	0x002f1286, // n0x06e7 c0x0000 (---------------)  + I oirase
+-	0x0028da85, // n0x06e8 c0x0000 (---------------)  + I owani
+-	0x00246988, // n0x06e9 c0x0000 (---------------)  + I rokunohe
+-	0x00263ac7, // n0x06ea c0x0000 (---------------)  + I sannohe
+-	0x00347a0a, // n0x06eb c0x0000 (---------------)  + I shichinohe
+-	0x00238f46, // n0x06ec c0x0000 (---------------)  + I shingo
+-	0x0022b4c5, // n0x06ed c0x0000 (---------------)  + I takko
+-	0x002c0c86, // n0x06ee c0x0000 (---------------)  + I towada
+-	0x0029b2c7, // n0x06ef c0x0000 (---------------)  + I tsugaru
+-	0x0022c847, // n0x06f0 c0x0000 (---------------)  + I tsuruta
+-	0x002caa05, // n0x06f1 c0x0000 (---------------)  + I abiko
+-	0x002ad245, // n0x06f2 c0x0000 (---------------)  + I asahi
+-	0x002cd546, // n0x06f3 c0x0000 (---------------)  + I chonan
+-	0x00302686, // n0x06f4 c0x0000 (---------------)  + I chosei
+-	0x00305106, // n0x06f5 c0x0000 (---------------)  + I choshi
+-	0x0022afc4, // n0x06f6 c0x0000 (---------------)  + I chuo
+-	0x0026f249, // n0x06f7 c0x0000 (---------------)  + I funabashi
+-	0x00273a06, // n0x06f8 c0x0000 (---------------)  + I futtsu
+-	0x0024b60a, // n0x06f9 c0x0000 (---------------)  + I hanamigawa
+-	0x0027c3c8, // n0x06fa c0x0000 (---------------)  + I ichihara
+-	0x00235cc8, // n0x06fb c0x0000 (---------------)  + I ichikawa
+-	0x0029994a, // n0x06fc c0x0000 (---------------)  + I ichinomiya
+-	0x0033f2c5, // n0x06fd c0x0000 (---------------)  + I inzai
+-	0x00284645, // n0x06fe c0x0000 (---------------)  + I isumi
+-	0x0030c3c8, // n0x06ff c0x0000 (---------------)  + I kamagaya
+-	0x00230c88, // n0x0700 c0x0000 (---------------)  + I kamogawa
+-	0x00210387, // n0x0701 c0x0000 (---------------)  + I kashiwa
+-	0x002df386, // n0x0702 c0x0000 (---------------)  + I katori
+-	0x002f6488, // n0x0703 c0x0000 (---------------)  + I katsuura
+-	0x002d4847, // n0x0704 c0x0000 (---------------)  + I kimitsu
+-	0x0026ea08, // n0x0705 c0x0000 (---------------)  + I kisarazu
+-	0x0029f086, // n0x0706 c0x0000 (---------------)  + I kozaki
+-	0x00249088, // n0x0707 c0x0000 (---------------)  + I kujukuri
+-	0x00217cc6, // n0x0708 c0x0000 (---------------)  + I kyonan
+-	0x0021abc7, // n0x0709 c0x0000 (---------------)  + I matsudo
+-	0x0025b286, // n0x070a c0x0000 (---------------)  + I midori
+-	0x0028ee06, // n0x070b c0x0000 (---------------)  + I mihama
+-	0x003137ca, // n0x070c c0x0000 (---------------)  + I minamiboso
+-	0x002cc106, // n0x070d c0x0000 (---------------)  + I mobara
+-	0x002c4d49, // n0x070e c0x0000 (---------------)  + I mutsuzawa
+-	0x0030b386, // n0x070f c0x0000 (---------------)  + I nagara
+-	0x0030b5ca, // n0x0710 c0x0000 (---------------)  + I nagareyama
+-	0x003208c9, // n0x0711 c0x0000 (---------------)  + I narashino
+-	0x00332406, // n0x0712 c0x0000 (---------------)  + I narita
+-	0x0022a104, // n0x0713 c0x0000 (---------------)  + I noda
+-	0x0020fa8d, // n0x0714 c0x0000 (---------------)  + I oamishirasato
+-	0x00273847, // n0x0715 c0x0000 (---------------)  + I omigawa
+-	0x002f98c6, // n0x0716 c0x0000 (---------------)  + I onjuku
+-	0x002a8b45, // n0x0717 c0x0000 (---------------)  + I otaki
+-	0x00299045, // n0x0718 c0x0000 (---------------)  + I sakae
+-	0x00223586, // n0x0719 c0x0000 (---------------)  + I sakura
+-	0x002dee09, // n0x071a c0x0000 (---------------)  + I shimofusa
+-	0x002dc447, // n0x071b c0x0000 (---------------)  + I shirako
+-	0x0026a746, // n0x071c c0x0000 (---------------)  + I shiroi
+-	0x002de486, // n0x071d c0x0000 (---------------)  + I shisui
+-	0x002bb6c9, // n0x071e c0x0000 (---------------)  + I sodegaura
+-	0x00328a44, // n0x071f c0x0000 (---------------)  + I sosa
+-	0x00295684, // n0x0720 c0x0000 (---------------)  + I tako
+-	0x002550c8, // n0x0721 c0x0000 (---------------)  + I tateyama
+-	0x00292286, // n0x0722 c0x0000 (---------------)  + I togane
+-	0x002d9188, // n0x0723 c0x0000 (---------------)  + I tohnosho
+-	0x002f8088, // n0x0724 c0x0000 (---------------)  + I tomisato
+-	0x002f1c47, // n0x0725 c0x0000 (---------------)  + I urayasu
+-	0x00250e89, // n0x0726 c0x0000 (---------------)  + I yachimata
+-	0x00206c07, // n0x0727 c0x0000 (---------------)  + I yachiyo
+-	0x002a42ca, // n0x0728 c0x0000 (---------------)  + I yokaichiba
+-	0x002e388f, // n0x0729 c0x0000 (---------------)  + I yokoshibahikari
+-	0x0026d1ca, // n0x072a c0x0000 (---------------)  + I yotsukaido
+-	0x00222d45, // n0x072b c0x0000 (---------------)  + I ainan
+-	0x0022eac5, // n0x072c c0x0000 (---------------)  + I honai
+-	0x00253fc5, // n0x072d c0x0000 (---------------)  + I ikata
+-	0x00217f47, // n0x072e c0x0000 (---------------)  + I imabari
+-	0x00206d03, // n0x072f c0x0000 (---------------)  + I iyo
+-	0x00228808, // n0x0730 c0x0000 (---------------)  + I kamijima
+-	0x0020af06, // n0x0731 c0x0000 (---------------)  + I kihoku
+-	0x0020b009, // n0x0732 c0x0000 (---------------)  + I kumakogen
+-	0x002f1a46, // n0x0733 c0x0000 (---------------)  + I masaki
+-	0x00272687, // n0x0734 c0x0000 (---------------)  + I matsuno
+-	0x00280cc9, // n0x0735 c0x0000 (---------------)  + I matsuyama
+-	0x002bd288, // n0x0736 c0x0000 (---------------)  + I namikata
+-	0x00243dc7, // n0x0737 c0x0000 (---------------)  + I niihama
+-	0x0022b083, // n0x0738 c0x0000 (---------------)  + I ozu
+-	0x002a5405, // n0x0739 c0x0000 (---------------)  + I saijo
+-	0x002e37c5, // n0x073a c0x0000 (---------------)  + I seiyo
+-	0x003037cb, // n0x073b c0x0000 (---------------)  + I shikokuchuo
+-	0x00258204, // n0x073c c0x0000 (---------------)  + I tobe
+-	0x002da544, // n0x073d c0x0000 (---------------)  + I toon
+-	0x00269146, // n0x073e c0x0000 (---------------)  + I uchiko
+-	0x002a6207, // n0x073f c0x0000 (---------------)  + I uwajima
+-	0x0032e30a, // n0x0740 c0x0000 (---------------)  + I yawatahama
+-	0x00322cc7, // n0x0741 c0x0000 (---------------)  + I echizen
+-	0x002b56c7, // n0x0742 c0x0000 (---------------)  + I eiheiji
+-	0x0026cdc5, // n0x0743 c0x0000 (---------------)  + I fukui
+-	0x00244305, // n0x0744 c0x0000 (---------------)  + I ikeda
+-	0x00303589, // n0x0745 c0x0000 (---------------)  + I katsuyama
+-	0x0028ee06, // n0x0746 c0x0000 (---------------)  + I mihama
+-	0x00322b4d, // n0x0747 c0x0000 (---------------)  + I minamiechizen
+-	0x00308905, // n0x0748 c0x0000 (---------------)  + I obama
+-	0x00280503, // n0x0749 c0x0000 (---------------)  + I ohi
+-	0x00216743, // n0x074a c0x0000 (---------------)  + I ono
+-	0x00228cc5, // n0x074b c0x0000 (---------------)  + I sabae
+-	0x00306385, // n0x074c c0x0000 (---------------)  + I sakai
+-	0x0028dc88, // n0x074d c0x0000 (---------------)  + I takahama
+-	0x00202a87, // n0x074e c0x0000 (---------------)  + I tsuruga
+-	0x00295406, // n0x074f c0x0000 (---------------)  + I wakasa
+-	0x00287786, // n0x0750 c0x0000 (---------------)  + I ashiya
+-	0x002b9885, // n0x0751 c0x0000 (---------------)  + I buzen
+-	0x002ef887, // n0x0752 c0x0000 (---------------)  + I chikugo
+-	0x0021da47, // n0x0753 c0x0000 (---------------)  + I chikuho
+-	0x00342187, // n0x0754 c0x0000 (---------------)  + I chikujo
+-	0x0025850a, // n0x0755 c0x0000 (---------------)  + I chikushino
+-	0x00277108, // n0x0756 c0x0000 (---------------)  + I chikuzen
+-	0x0022afc4, // n0x0757 c0x0000 (---------------)  + I chuo
+-	0x002a3047, // n0x0758 c0x0000 (---------------)  + I dazaifu
+-	0x0026be87, // n0x0759 c0x0000 (---------------)  + I fukuchi
+-	0x0032bc86, // n0x075a c0x0000 (---------------)  + I hakata
+-	0x00256207, // n0x075b c0x0000 (---------------)  + I higashi
+-	0x002a29c8, // n0x075c c0x0000 (---------------)  + I hirokawa
+-	0x00248b48, // n0x075d c0x0000 (---------------)  + I hisayama
+-	0x00243706, // n0x075e c0x0000 (---------------)  + I iizuka
+-	0x00204108, // n0x075f c0x0000 (---------------)  + I inatsuki
+-	0x002528c4, // n0x0760 c0x0000 (---------------)  + I kaho
+-	0x00254106, // n0x0761 c0x0000 (---------------)  + I kasuga
+-	0x0021c806, // n0x0762 c0x0000 (---------------)  + I kasuya
+-	0x003329c6, // n0x0763 c0x0000 (---------------)  + I kawara
+-	0x00299bc6, // n0x0764 c0x0000 (---------------)  + I keisen
+-	0x0027ae04, // n0x0765 c0x0000 (---------------)  + I koga
+-	0x00237d86, // n0x0766 c0x0000 (---------------)  + I kurate
+-	0x002a7086, // n0x0767 c0x0000 (---------------)  + I kurogi
+-	0x0027fe06, // n0x0768 c0x0000 (---------------)  + I kurume
+-	0x00232146, // n0x0769 c0x0000 (---------------)  + I minami
+-	0x00216606, // n0x076a c0x0000 (---------------)  + I miyako
+-	0x002a2806, // n0x076b c0x0000 (---------------)  + I miyama
+-	0x00295308, // n0x076c c0x0000 (---------------)  + I miyawaka
+-	0x0029a588, // n0x076d c0x0000 (---------------)  + I mizumaki
+-	0x002c2008, // n0x076e c0x0000 (---------------)  + I munakata
+-	0x0028a488, // n0x076f c0x0000 (---------------)  + I nakagawa
+-	0x0030c346, // n0x0770 c0x0000 (---------------)  + I nakama
+-	0x0021a0c5, // n0x0771 c0x0000 (---------------)  + I nishi
+-	0x002a7f86, // n0x0772 c0x0000 (---------------)  + I nogata
+-	0x002ca485, // n0x0773 c0x0000 (---------------)  + I ogori
+-	0x0024d307, // n0x0774 c0x0000 (---------------)  + I okagaki
+-	0x0024a885, // n0x0775 c0x0000 (---------------)  + I okawa
+-	0x002597c3, // n0x0776 c0x0000 (---------------)  + I oki
+-	0x00210b85, // n0x0777 c0x0000 (---------------)  + I omuta
+-	0x0024cd84, // n0x0778 c0x0000 (---------------)  + I onga
+-	0x00216745, // n0x0779 c0x0000 (---------------)  + I onojo
+-	0x00203d83, // n0x077a c0x0000 (---------------)  + I oto
+-	0x00298e07, // n0x077b c0x0000 (---------------)  + I saigawa
+-	0x002d3c88, // n0x077c c0x0000 (---------------)  + I sasaguri
+-	0x002d8086, // n0x077d c0x0000 (---------------)  + I shingu
+-	0x002db10d, // n0x077e c0x0000 (---------------)  + I shinyoshitomi
+-	0x0022ea86, // n0x077f c0x0000 (---------------)  + I shonai
+-	0x0027f245, // n0x0780 c0x0000 (---------------)  + I soeda
+-	0x002e2583, // n0x0781 c0x0000 (---------------)  + I sue
+-	0x002a51c9, // n0x0782 c0x0000 (---------------)  + I tachiarai
+-	0x002b4a06, // n0x0783 c0x0000 (---------------)  + I tagawa
+-	0x0027e2c6, // n0x0784 c0x0000 (---------------)  + I takata
+-	0x0031f244, // n0x0785 c0x0000 (---------------)  + I toho
+-	0x0026d147, // n0x0786 c0x0000 (---------------)  + I toyotsu
+-	0x00222306, // n0x0787 c0x0000 (---------------)  + I tsuiki
+-	0x0026e185, // n0x0788 c0x0000 (---------------)  + I ukiha
+-	0x002158c3, // n0x0789 c0x0000 (---------------)  + I umi
+-	0x0025d0c4, // n0x078a c0x0000 (---------------)  + I usui
+-	0x0026c046, // n0x078b c0x0000 (---------------)  + I yamada
+-	0x00228384, // n0x078c c0x0000 (---------------)  + I yame
+-	0x0021c908, // n0x078d c0x0000 (---------------)  + I yanagawa
+-	0x00219689, // n0x078e c0x0000 (---------------)  + I yukuhashi
+-	0x00319809, // n0x078f c0x0000 (---------------)  + I aizubange
+-	0x0028aaca, // n0x0790 c0x0000 (---------------)  + I aizumisato
+-	0x002968cd, // n0x0791 c0x0000 (---------------)  + I aizuwakamatsu
+-	0x002adb87, // n0x0792 c0x0000 (---------------)  + I asakawa
+-	0x00307386, // n0x0793 c0x0000 (---------------)  + I bandai
+-	0x002232c4, // n0x0794 c0x0000 (---------------)  + I date
+-	0x00239289, // n0x0795 c0x0000 (---------------)  + I fukushima
+-	0x00272848, // n0x0796 c0x0000 (---------------)  + I furudono
+-	0x00273446, // n0x0797 c0x0000 (---------------)  + I futaba
+-	0x00247606, // n0x0798 c0x0000 (---------------)  + I hanawa
+-	0x00256207, // n0x0799 c0x0000 (---------------)  + I higashi
+-	0x002dd686, // n0x079a c0x0000 (---------------)  + I hirata
+-	0x00323146, // n0x079b c0x0000 (---------------)  + I hirono
+-	0x00347786, // n0x079c c0x0000 (---------------)  + I iitate
+-	0x003085ca, // n0x079d c0x0000 (---------------)  + I inawashiro
+-	0x0026c948, // n0x079e c0x0000 (---------------)  + I ishikawa
+-	0x00233e45, // n0x079f c0x0000 (---------------)  + I iwaki
+-	0x00256649, // n0x07a0 c0x0000 (---------------)  + I izumizaki
+-	0x0029d74a, // n0x07a1 c0x0000 (---------------)  + I kagamiishi
+-	0x002db488, // n0x07a2 c0x0000 (---------------)  + I kaneyama
+-	0x00283808, // n0x07a3 c0x0000 (---------------)  + I kawamata
+-	0x0027e248, // n0x07a4 c0x0000 (---------------)  + I kitakata
+-	0x0021de4c, // n0x07a5 c0x0000 (---------------)  + I kitashiobara
+-	0x0031c605, // n0x07a6 c0x0000 (---------------)  + I koori
+-	0x00287a08, // n0x07a7 c0x0000 (---------------)  + I koriyama
+-	0x00311886, // n0x07a8 c0x0000 (---------------)  + I kunimi
+-	0x0032ee46, // n0x07a9 c0x0000 (---------------)  + I miharu
+-	0x002b1c07, // n0x07aa c0x0000 (---------------)  + I mishima
+-	0x00322bc5, // n0x07ab c0x0000 (---------------)  + I namie
+-	0x002cd605, // n0x07ac c0x0000 (---------------)  + I nango
+-	0x003196c9, // n0x07ad c0x0000 (---------------)  + I nishiaizu
+-	0x0021fb47, // n0x07ae c0x0000 (---------------)  + I nishigo
+-	0x0020afc5, // n0x07af c0x0000 (---------------)  + I okuma
+-	0x0022cfc7, // n0x07b0 c0x0000 (---------------)  + I omotego
+-	0x00216743, // n0x07b1 c0x0000 (---------------)  + I ono
+-	0x002b3505, // n0x07b2 c0x0000 (---------------)  + I otama
+-	0x002461c8, // n0x07b3 c0x0000 (---------------)  + I samegawa
+-	0x00327e07, // n0x07b4 c0x0000 (---------------)  + I shimogo
+-	0x002836c9, // n0x07b5 c0x0000 (---------------)  + I shirakawa
+-	0x002d92c5, // n0x07b6 c0x0000 (---------------)  + I showa
+-	0x002e1dc4, // n0x07b7 c0x0000 (---------------)  + I soma
+-	0x0028c348, // n0x07b8 c0x0000 (---------------)  + I sukagawa
+-	0x00227007, // n0x07b9 c0x0000 (---------------)  + I taishin
+-	0x00243f88, // n0x07ba c0x0000 (---------------)  + I tamakawa
+-	0x00232d48, // n0x07bb c0x0000 (---------------)  + I tanagura
+-	0x0020bfc5, // n0x07bc c0x0000 (---------------)  + I tenei
+-	0x0022adc6, // n0x07bd c0x0000 (---------------)  + I yabuki
+-	0x00245c86, // n0x07be c0x0000 (---------------)  + I yamato
+-	0x00347589, // n0x07bf c0x0000 (---------------)  + I yamatsuri
+-	0x002dbd47, // n0x07c0 c0x0000 (---------------)  + I yanaizu
+-	0x00296046, // n0x07c1 c0x0000 (---------------)  + I yugawa
+-	0x00211cc7, // n0x07c2 c0x0000 (---------------)  + I anpachi
+-	0x00209283, // n0x07c3 c0x0000 (---------------)  + I ena
+-	0x0033dc04, // n0x07c4 c0x0000 (---------------)  + I gifu
+-	0x002205c5, // n0x07c5 c0x0000 (---------------)  + I ginan
+-	0x00304404, // n0x07c6 c0x0000 (---------------)  + I godo
+-	0x002cf804, // n0x07c7 c0x0000 (---------------)  + I gujo
+-	0x002b4747, // n0x07c8 c0x0000 (---------------)  + I hashima
+-	0x00200747, // n0x07c9 c0x0000 (---------------)  + I hichiso
+-	0x0026a904, // n0x07ca c0x0000 (---------------)  + I hida
+-	0x00283510, // n0x07cb c0x0000 (---------------)  + I higashishirakawa
+-	0x00225d07, // n0x07cc c0x0000 (---------------)  + I ibigawa
+-	0x00244305, // n0x07cd c0x0000 (---------------)  + I ikeda
+-	0x0033de8c, // n0x07ce c0x0000 (---------------)  + I kakamigahara
+-	0x00207784, // n0x07cf c0x0000 (---------------)  + I kani
+-	0x002daf08, // n0x07d0 c0x0000 (---------------)  + I kasahara
+-	0x0021aac9, // n0x07d1 c0x0000 (---------------)  + I kasamatsu
+-	0x00203086, // n0x07d2 c0x0000 (---------------)  + I kawaue
+-	0x00328b48, // n0x07d3 c0x0000 (---------------)  + I kitagata
+-	0x0021fe44, // n0x07d4 c0x0000 (---------------)  + I mino
+-	0x0021fe48, // n0x07d5 c0x0000 (---------------)  + I minokamo
+-	0x002b2946, // n0x07d6 c0x0000 (---------------)  + I mitake
+-	0x00231fc8, // n0x07d7 c0x0000 (---------------)  + I mizunami
+-	0x00284cc6, // n0x07d8 c0x0000 (---------------)  + I motosu
+-	0x002f48cb, // n0x07d9 c0x0000 (---------------)  + I nakatsugawa
+-	0x0020aa45, // n0x07da c0x0000 (---------------)  + I ogaki
+-	0x0029e848, // n0x07db c0x0000 (---------------)  + I sakahogi
+-	0x00215e04, // n0x07dc c0x0000 (---------------)  + I seki
+-	0x00219aca, // n0x07dd c0x0000 (---------------)  + I sekigahara
+-	0x002836c9, // n0x07de c0x0000 (---------------)  + I shirakawa
+-	0x0026ef86, // n0x07df c0x0000 (---------------)  + I tajimi
+-	0x002e3dc8, // n0x07e0 c0x0000 (---------------)  + I takayama
+-	0x0024e545, // n0x07e1 c0x0000 (---------------)  + I tarui
+-	0x0034b644, // n0x07e2 c0x0000 (---------------)  + I toki
+-	0x002dae06, // n0x07e3 c0x0000 (---------------)  + I tomika
+-	0x002583c8, // n0x07e4 c0x0000 (---------------)  + I wanouchi
+-	0x0026ee08, // n0x07e5 c0x0000 (---------------)  + I yamagata
+-	0x002c90c6, // n0x07e6 c0x0000 (---------------)  + I yaotsu
+-	0x00210ac4, // n0x07e7 c0x0000 (---------------)  + I yoro
+-	0x0021c106, // n0x07e8 c0x0000 (---------------)  + I annaka
+-	0x00206c87, // n0x07e9 c0x0000 (---------------)  + I chiyoda
+-	0x00269987, // n0x07ea c0x0000 (---------------)  + I fujioka
+-	0x0025620f, // n0x07eb c0x0000 (---------------)  + I higashiagatsuma
+-	0x0032ea87, // n0x07ec c0x0000 (---------------)  + I isesaki
+-	0x003324c7, // n0x07ed c0x0000 (---------------)  + I itakura
+-	0x002e0305, // n0x07ee c0x0000 (---------------)  + I kanna
+-	0x00255c85, // n0x07ef c0x0000 (---------------)  + I kanra
+-	0x0028b489, // n0x07f0 c0x0000 (---------------)  + I katashina
+-	0x002511c6, // n0x07f1 c0x0000 (---------------)  + I kawaba
+-	0x0026df45, // n0x07f2 c0x0000 (---------------)  + I kiryu
+-	0x0026ffc7, // n0x07f3 c0x0000 (---------------)  + I kusatsu
+-	0x0025d708, // n0x07f4 c0x0000 (---------------)  + I maebashi
+-	0x00272545, // n0x07f5 c0x0000 (---------------)  + I meiwa
+-	0x0025b286, // n0x07f6 c0x0000 (---------------)  + I midori
+-	0x00238a48, // n0x07f7 c0x0000 (---------------)  + I minakami
+-	0x003082ca, // n0x07f8 c0x0000 (---------------)  + I naganohara
+-	0x0020cbc8, // n0x07f9 c0x0000 (---------------)  + I nakanojo
+-	0x002773c7, // n0x07fa c0x0000 (---------------)  + I nanmoku
+-	0x002e3cc6, // n0x07fb c0x0000 (---------------)  + I numata
+-	0x00256606, // n0x07fc c0x0000 (---------------)  + I oizumi
+-	0x00214c03, // n0x07fd c0x0000 (---------------)  + I ora
+-	0x00200383, // n0x07fe c0x0000 (---------------)  + I ota
+-	0x003051c9, // n0x07ff c0x0000 (---------------)  + I shibukawa
+-	0x002d5a49, // n0x0800 c0x0000 (---------------)  + I shimonita
+-	0x002da9c6, // n0x0801 c0x0000 (---------------)  + I shinto
+-	0x002d92c5, // n0x0802 c0x0000 (---------------)  + I showa
+-	0x00204388, // n0x0803 c0x0000 (---------------)  + I takasaki
+-	0x002e3dc8, // n0x0804 c0x0000 (---------------)  + I takayama
+-	0x002c29c8, // n0x0805 c0x0000 (---------------)  + I tamamura
+-	0x0034780b, // n0x0806 c0x0000 (---------------)  + I tatebayashi
+-	0x002db347, // n0x0807 c0x0000 (---------------)  + I tomioka
+-	0x00297549, // n0x0808 c0x0000 (---------------)  + I tsukiyono
+-	0x00256488, // n0x0809 c0x0000 (---------------)  + I tsumagoi
+-	0x0024fcc4, // n0x080a c0x0000 (---------------)  + I ueno
+-	0x002b7f88, // n0x080b c0x0000 (---------------)  + I yoshioka
+-	0x0027a189, // n0x080c c0x0000 (---------------)  + I asaminami
+-	0x00307445, // n0x080d c0x0000 (---------------)  + I daiwa
+-	0x00328607, // n0x080e c0x0000 (---------------)  + I etajima
+-	0x0033dc85, // n0x080f c0x0000 (---------------)  + I fuchu
+-	0x0026ed08, // n0x0810 c0x0000 (---------------)  + I fukuyama
+-	0x0027c20b, // n0x0811 c0x0000 (---------------)  + I hatsukaichi
+-	0x0027da50, // n0x0812 c0x0000 (---------------)  + I higashihiroshima
+-	0x00291405, // n0x0813 c0x0000 (---------------)  + I hongo
+-	0x00215d4c, // n0x0814 c0x0000 (---------------)  + I jinsekikogen
+-	0x002955c5, // n0x0815 c0x0000 (---------------)  + I kaita
+-	0x00225c83, // n0x0816 c0x0000 (---------------)  + I kui
+-	0x002d9586, // n0x0817 c0x0000 (---------------)  + I kumano
+-	0x002a6a84, // n0x0818 c0x0000 (---------------)  + I kure
+-	0x00266106, // n0x0819 c0x0000 (---------------)  + I mihara
+-	0x00284707, // n0x081a c0x0000 (---------------)  + I miyoshi
+-	0x0020cbc4, // n0x081b c0x0000 (---------------)  + I naka
+-	0x00299848, // n0x081c c0x0000 (---------------)  + I onomichi
+-	0x002286cd, // n0x081d c0x0000 (---------------)  + I osakikamijima
+-	0x002cb805, // n0x081e c0x0000 (---------------)  + I otake
+-	0x00262fc4, // n0x081f c0x0000 (---------------)  + I saka
+-	0x00222a84, // n0x0820 c0x0000 (---------------)  + I sera
+-	0x00288989, // n0x0821 c0x0000 (---------------)  + I seranishi
+-	0x002d82c8, // n0x0822 c0x0000 (---------------)  + I shinichi
+-	0x0033f407, // n0x0823 c0x0000 (---------------)  + I shobara
+-	0x002b29c8, // n0x0824 c0x0000 (---------------)  + I takehara
+-	0x0026f308, // n0x0825 c0x0000 (---------------)  + I abashiri
+-	0x0026aa45, // n0x0826 c0x0000 (---------------)  + I abira
+-	0x00229947, // n0x0827 c0x0000 (---------------)  + I aibetsu
+-	0x0026a9c7, // n0x0828 c0x0000 (---------------)  + I akabira
+-	0x0020b2c7, // n0x0829 c0x0000 (---------------)  + I akkeshi
+-	0x002ad249, // n0x082a c0x0000 (---------------)  + I asahikawa
+-	0x002c3a09, // n0x082b c0x0000 (---------------)  + I ashibetsu
+-	0x0023cec6, // n0x082c c0x0000 (---------------)  + I ashoro
+-	0x002b9786, // n0x082d c0x0000 (---------------)  + I assabu
+-	0x00256446, // n0x082e c0x0000 (---------------)  + I atsuma
+-	0x00250385, // n0x082f c0x0000 (---------------)  + I bibai
+-	0x002fb384, // n0x0830 c0x0000 (---------------)  + I biei
+-	0x00208406, // n0x0831 c0x0000 (---------------)  + I bifuka
+-	0x00209806, // n0x0832 c0x0000 (---------------)  + I bihoro
+-	0x0026aa88, // n0x0833 c0x0000 (---------------)  + I biratori
+-	0x0029af8b, // n0x0834 c0x0000 (---------------)  + I chippubetsu
+-	0x00291e07, // n0x0835 c0x0000 (---------------)  + I chitose
+-	0x002232c4, // n0x0836 c0x0000 (---------------)  + I date
+-	0x00222246, // n0x0837 c0x0000 (---------------)  + I ebetsu
+-	0x002e8387, // n0x0838 c0x0000 (---------------)  + I embetsu
+-	0x00225905, // n0x0839 c0x0000 (---------------)  + I eniwa
+-	0x0028bc85, // n0x083a c0x0000 (---------------)  + I erimo
+-	0x0024c584, // n0x083b c0x0000 (---------------)  + I esan
+-	0x002c3986, // n0x083c c0x0000 (---------------)  + I esashi
+-	0x00208488, // n0x083d c0x0000 (---------------)  + I fukagawa
+-	0x00239289, // n0x083e c0x0000 (---------------)  + I fukushima
+-	0x002422c6, // n0x083f c0x0000 (---------------)  + I furano
+-	0x002719c8, // n0x0840 c0x0000 (---------------)  + I furubira
+-	0x0023e346, // n0x0841 c0x0000 (---------------)  + I haboro
+-	0x0032f5c8, // n0x0842 c0x0000 (---------------)  + I hakodate
+-	0x002dc04c, // n0x0843 c0x0000 (---------------)  + I hamatonbetsu
+-	0x0026a906, // n0x0844 c0x0000 (---------------)  + I hidaka
+-	0x0027ef0d, // n0x0845 c0x0000 (---------------)  + I higashikagura
+-	0x0027f38b, // n0x0846 c0x0000 (---------------)  + I higashikawa
+-	0x0025a005, // n0x0847 c0x0000 (---------------)  + I hiroo
+-	0x0021db87, // n0x0848 c0x0000 (---------------)  + I hokuryu
+-	0x00252946, // n0x0849 c0x0000 (---------------)  + I hokuto
+-	0x002af048, // n0x084a c0x0000 (---------------)  + I honbetsu
+-	0x0023cf49, // n0x084b c0x0000 (---------------)  + I horokanai
+-	0x002439c8, // n0x084c c0x0000 (---------------)  + I horonobe
+-	0x00244305, // n0x084d c0x0000 (---------------)  + I ikeda
+-	0x00328707, // n0x084e c0x0000 (---------------)  + I imakane
+-	0x0029d8c8, // n0x084f c0x0000 (---------------)  + I ishikari
+-	0x002bbfc9, // n0x0850 c0x0000 (---------------)  + I iwamizawa
+-	0x00268206, // n0x0851 c0x0000 (---------------)  + I iwanai
+-	0x0027798a, // n0x0852 c0x0000 (---------------)  + I kamifurano
+-	0x002aedc8, // n0x0853 c0x0000 (---------------)  + I kamikawa
+-	0x0024380b, // n0x0854 c0x0000 (---------------)  + I kamishihoro
+-	0x002b810c, // n0x0855 c0x0000 (---------------)  + I kamisunagawa
+-	0x0021ff48, // n0x0856 c0x0000 (---------------)  + I kamoenai
+-	0x0026b586, // n0x0857 c0x0000 (---------------)  + I kayabe
+-	0x00342048, // n0x0858 c0x0000 (---------------)  + I kembuchi
+-	0x002f10c7, // n0x0859 c0x0000 (---------------)  + I kikonai
+-	0x0022c6c9, // n0x085a c0x0000 (---------------)  + I kimobetsu
+-	0x0027b90d, // n0x085b c0x0000 (---------------)  + I kitahiroshima
+-	0x0027f7c6, // n0x085c c0x0000 (---------------)  + I kitami
+-	0x002d9008, // n0x085d c0x0000 (---------------)  + I kiyosato
+-	0x0029a449, // n0x085e c0x0000 (---------------)  + I koshimizu
+-	0x002a6048, // n0x085f c0x0000 (---------------)  + I kunneppu
+-	0x00249188, // n0x0860 c0x0000 (---------------)  + I kuriyama
+-	0x002a784c, // n0x0861 c0x0000 (---------------)  + I kuromatsunai
+-	0x002a9747, // n0x0862 c0x0000 (---------------)  + I kushiro
+-	0x002aa587, // n0x0863 c0x0000 (---------------)  + I kutchan
+-	0x002ad085, // n0x0864 c0x0000 (---------------)  + I kyowa
+-	0x00244207, // n0x0865 c0x0000 (---------------)  + I mashike
+-	0x0025d5c8, // n0x0866 c0x0000 (---------------)  + I matsumae
+-	0x002dae86, // n0x0867 c0x0000 (---------------)  + I mikasa
+-	0x0024214c, // n0x0868 c0x0000 (---------------)  + I minamifurano
+-	0x002b3908, // n0x0869 c0x0000 (---------------)  + I mombetsu
+-	0x002b9b48, // n0x086a c0x0000 (---------------)  + I moseushi
+-	0x002b0346, // n0x086b c0x0000 (---------------)  + I mukawa
+-	0x00250b07, // n0x086c c0x0000 (---------------)  + I muroran
+-	0x0023d0c4, // n0x086d c0x0000 (---------------)  + I naie
+-	0x0028a488, // n0x086e c0x0000 (---------------)  + I nakagawa
+-	0x002c618c, // n0x086f c0x0000 (---------------)  + I nakasatsunai
+-	0x002d274c, // n0x0870 c0x0000 (---------------)  + I nakatombetsu
+-	0x00222dc5, // n0x0871 c0x0000 (---------------)  + I nanae
+-	0x00200987, // n0x0872 c0x0000 (---------------)  + I nanporo
+-	0x00210a46, // n0x0873 c0x0000 (---------------)  + I nayoro
+-	0x00250a86, // n0x0874 c0x0000 (---------------)  + I nemuro
+-	0x0028e8c8, // n0x0875 c0x0000 (---------------)  + I niikappu
+-	0x0020ae84, // n0x0876 c0x0000 (---------------)  + I niki
+-	0x0022dc8b, // n0x0877 c0x0000 (---------------)  + I nishiokoppe
+-	0x0034164b, // n0x0878 c0x0000 (---------------)  + I noboribetsu
+-	0x002e3cc6, // n0x0879 c0x0000 (---------------)  + I numata
+-	0x00228547, // n0x087a c0x0000 (---------------)  + I obihiro
+-	0x003273c5, // n0x087b c0x0000 (---------------)  + I obira
+-	0x00260985, // n0x087c c0x0000 (---------------)  + I oketo
+-	0x0022ddc6, // n0x087d c0x0000 (---------------)  + I okoppe
+-	0x0024e505, // n0x087e c0x0000 (---------------)  + I otaru
+-	0x002581c5, // n0x087f c0x0000 (---------------)  + I otobe
+-	0x002a3f47, // n0x0880 c0x0000 (---------------)  + I otofuke
+-	0x00203d89, // n0x0881 c0x0000 (---------------)  + I otoineppu
+-	0x00278e84, // n0x0882 c0x0000 (---------------)  + I oumu
+-	0x00289585, // n0x0883 c0x0000 (---------------)  + I ozora
+-	0x002cb445, // n0x0884 c0x0000 (---------------)  + I pippu
+-	0x00250c08, // n0x0885 c0x0000 (---------------)  + I rankoshi
+-	0x00299685, // n0x0886 c0x0000 (---------------)  + I rebun
+-	0x00271f89, // n0x0887 c0x0000 (---------------)  + I rikubetsu
+-	0x002db8c7, // n0x0888 c0x0000 (---------------)  + I rishiri
+-	0x002db8cb, // n0x0889 c0x0000 (---------------)  + I rishirifuji
+-	0x002d0c06, // n0x088a c0x0000 (---------------)  + I saroma
+-	0x00295049, // n0x088b c0x0000 (---------------)  + I sarufutsu
+-	0x00323f48, // n0x088c c0x0000 (---------------)  + I shakotan
+-	0x00342385, // n0x088d c0x0000 (---------------)  + I shari
+-	0x0020b3c8, // n0x088e c0x0000 (---------------)  + I shibecha
+-	0x002c3a48, // n0x088f c0x0000 (---------------)  + I shibetsu
+-	0x002c0947, // n0x0890 c0x0000 (---------------)  + I shikabe
+-	0x0025d847, // n0x0891 c0x0000 (---------------)  + I shikaoi
+-	0x002b47c9, // n0x0892 c0x0000 (---------------)  + I shimamaki
+-	0x00231f07, // n0x0893 c0x0000 (---------------)  + I shimizu
+-	0x002d54c9, // n0x0894 c0x0000 (---------------)  + I shimokawa
+-	0x002d9ecc, // n0x0895 c0x0000 (---------------)  + I shinshinotsu
+-	0x002da9c8, // n0x0896 c0x0000 (---------------)  + I shintoku
+-	0x002dc709, // n0x0897 c0x0000 (---------------)  + I shiranuka
+-	0x002dcac7, // n0x0898 c0x0000 (---------------)  + I shiraoi
+-	0x0026f3c9, // n0x0899 c0x0000 (---------------)  + I shiriuchi
+-	0x00207347, // n0x089a c0x0000 (---------------)  + I sobetsu
+-	0x002b8208, // n0x089b c0x0000 (---------------)  + I sunagawa
+-	0x00226b05, // n0x089c c0x0000 (---------------)  + I taiki
+-	0x00254086, // n0x089d c0x0000 (---------------)  + I takasu
+-	0x002a8b88, // n0x089e c0x0000 (---------------)  + I takikawa
+-	0x002f7408, // n0x089f c0x0000 (---------------)  + I takinoue
+-	0x0029d609, // n0x08a0 c0x0000 (---------------)  + I teshikaga
+-	0x00258207, // n0x08a1 c0x0000 (---------------)  + I tobetsu
+-	0x0028acc5, // n0x08a2 c0x0000 (---------------)  + I tohma
+-	0x0025e4c9, // n0x08a3 c0x0000 (---------------)  + I tomakomai
+-	0x0024f546, // n0x08a4 c0x0000 (---------------)  + I tomari
+-	0x002457c4, // n0x08a5 c0x0000 (---------------)  + I toya
+-	0x002457c6, // n0x08a6 c0x0000 (---------------)  + I toyako
+-	0x00266988, // n0x08a7 c0x0000 (---------------)  + I toyotomi
+-	0x0026e6c7, // n0x08a8 c0x0000 (---------------)  + I toyoura
+-	0x0029b188, // n0x08a9 c0x0000 (---------------)  + I tsubetsu
+-	0x002041c9, // n0x08aa c0x0000 (---------------)  + I tsukigata
+-	0x0022e6c7, // n0x08ab c0x0000 (---------------)  + I urakawa
+-	0x00286c46, // n0x08ac c0x0000 (---------------)  + I urausu
+-	0x0021dc44, // n0x08ad c0x0000 (---------------)  + I uryu
+-	0x00210c09, // n0x08ae c0x0000 (---------------)  + I utashinai
+-	0x002297c8, // n0x08af c0x0000 (---------------)  + I wakkanai
+-	0x002b0207, // n0x08b0 c0x0000 (---------------)  + I wassamu
+-	0x0028c646, // n0x08b1 c0x0000 (---------------)  + I yakumo
+-	0x00291a86, // n0x08b2 c0x0000 (---------------)  + I yoichi
+-	0x002f1204, // n0x08b3 c0x0000 (---------------)  + I aioi
+-	0x002cb986, // n0x08b4 c0x0000 (---------------)  + I akashi
+-	0x0020b0c3, // n0x08b5 c0x0000 (---------------)  + I ako
+-	0x0022fa09, // n0x08b6 c0x0000 (---------------)  + I amagasaki
+-	0x0020aa06, // n0x08b7 c0x0000 (---------------)  + I aogaki
+-	0x002a73c5, // n0x08b8 c0x0000 (---------------)  + I asago
+-	0x00287786, // n0x08b9 c0x0000 (---------------)  + I ashiya
+-	0x002322c5, // n0x08ba c0x0000 (---------------)  + I awaji
+-	0x0026e888, // n0x08bb c0x0000 (---------------)  + I fukusaki
+-	0x0021fc87, // n0x08bc c0x0000 (---------------)  + I goshiki
+-	0x00237b06, // n0x08bd c0x0000 (---------------)  + I harima
+-	0x0030ca86, // n0x08be c0x0000 (---------------)  + I himeji
+-	0x00235cc8, // n0x08bf c0x0000 (---------------)  + I ichikawa
+-	0x0028b607, // n0x08c0 c0x0000 (---------------)  + I inagawa
+-	0x0027f805, // n0x08c1 c0x0000 (---------------)  + I itami
+-	0x00287c88, // n0x08c2 c0x0000 (---------------)  + I kakogawa
+-	0x00276448, // n0x08c3 c0x0000 (---------------)  + I kamigori
+-	0x002aedc8, // n0x08c4 c0x0000 (---------------)  + I kamikawa
+-	0x00295485, // n0x08c5 c0x0000 (---------------)  + I kasai
+-	0x00254106, // n0x08c6 c0x0000 (---------------)  + I kasuga
+-	0x003195c9, // n0x08c7 c0x0000 (---------------)  + I kawanishi
+-	0x00245b04, // n0x08c8 c0x0000 (---------------)  + I miki
+-	0x0023214b, // n0x08c9 c0x0000 (---------------)  + I minamiawaji
+-	0x00322e4b, // n0x08ca c0x0000 (---------------)  + I nishinomiya
+-	0x00233d49, // n0x08cb c0x0000 (---------------)  + I nishiwaki
+-	0x00216743, // n0x08cc c0x0000 (---------------)  + I ono
+-	0x0024aa85, // n0x08cd c0x0000 (---------------)  + I sanda
+-	0x0025c246, // n0x08ce c0x0000 (---------------)  + I sannan
+-	0x002b7c88, // n0x08cf c0x0000 (---------------)  + I sasayama
+-	0x0029cf84, // n0x08d0 c0x0000 (---------------)  + I sayo
+-	0x002d8086, // n0x08d1 c0x0000 (---------------)  + I shingu
+-	0x00258649, // n0x08d2 c0x0000 (---------------)  + I shinonsen
+-	0x002de205, // n0x08d3 c0x0000 (---------------)  + I shiso
+-	0x002a3e86, // n0x08d4 c0x0000 (---------------)  + I sumoto
+-	0x00227006, // n0x08d5 c0x0000 (---------------)  + I taishi
+-	0x00204384, // n0x08d6 c0x0000 (---------------)  + I taka
+-	0x0034720a, // n0x08d7 c0x0000 (---------------)  + I takarazuka
+-	0x002a7308, // n0x08d8 c0x0000 (---------------)  + I takasago
+-	0x002f7406, // n0x08d9 c0x0000 (---------------)  + I takino
+-	0x00289385, // n0x08da c0x0000 (---------------)  + I tamba
+-	0x00261847, // n0x08db c0x0000 (---------------)  + I tatsuno
+-	0x00255b47, // n0x08dc c0x0000 (---------------)  + I toyooka
+-	0x0022adc4, // n0x08dd c0x0000 (---------------)  + I yabu
+-	0x00323087, // n0x08de c0x0000 (---------------)  + I yashiro
+-	0x0024a844, // n0x08df c0x0000 (---------------)  + I yoka
+-	0x0024a846, // n0x08e0 c0x0000 (---------------)  + I yokawa
+-	0x0020fac3, // n0x08e1 c0x0000 (---------------)  + I ami
+-	0x002ad245, // n0x08e2 c0x0000 (---------------)  + I asahi
+-	0x00324ac5, // n0x08e3 c0x0000 (---------------)  + I bando
+-	0x002bf008, // n0x08e4 c0x0000 (---------------)  + I chikusei
+-	0x002a3205, // n0x08e5 c0x0000 (---------------)  + I daigo
+-	0x0026a649, // n0x08e6 c0x0000 (---------------)  + I fujishiro
+-	0x0028a2c7, // n0x08e7 c0x0000 (---------------)  + I hitachi
+-	0x0028a2cb, // n0x08e8 c0x0000 (---------------)  + I hitachinaka
+-	0x0028d6cc, // n0x08e9 c0x0000 (---------------)  + I hitachiomiya
+-	0x0028e10a, // n0x08ea c0x0000 (---------------)  + I hitachiota
+-	0x00327887, // n0x08eb c0x0000 (---------------)  + I ibaraki
+-	0x00203303, // n0x08ec c0x0000 (---------------)  + I ina
+-	0x002d8e88, // n0x08ed c0x0000 (---------------)  + I inashiki
+-	0x00295645, // n0x08ee c0x0000 (---------------)  + I itako
+-	0x002725c5, // n0x08ef c0x0000 (---------------)  + I iwama
+-	0x0020cd44, // n0x08f0 c0x0000 (---------------)  + I joso
+-	0x002b8106, // n0x08f1 c0x0000 (---------------)  + I kamisu
+-	0x0021aac6, // n0x08f2 c0x0000 (---------------)  + I kasama
+-	0x002cb9c7, // n0x08f3 c0x0000 (---------------)  + I kashima
+-	0x0021b60b, // n0x08f4 c0x0000 (---------------)  + I kasumigaura
+-	0x0027ae04, // n0x08f5 c0x0000 (---------------)  + I koga
+-	0x002e0444, // n0x08f6 c0x0000 (---------------)  + I miho
+-	0x002b2bc4, // n0x08f7 c0x0000 (---------------)  + I mito
+-	0x002b7606, // n0x08f8 c0x0000 (---------------)  + I moriya
+-	0x0020cbc4, // n0x08f9 c0x0000 (---------------)  + I naka
+-	0x002df188, // n0x08fa c0x0000 (---------------)  + I namegata
+-	0x003018c5, // n0x08fb c0x0000 (---------------)  + I oarai
+-	0x00230d45, // n0x08fc c0x0000 (---------------)  + I ogawa
+-	0x002c2907, // n0x08fd c0x0000 (---------------)  + I omitama
+-	0x0021dc89, // n0x08fe c0x0000 (---------------)  + I ryugasaki
+-	0x00306385, // n0x08ff c0x0000 (---------------)  + I sakai
+-	0x0022358a, // n0x0900 c0x0000 (---------------)  + I sakuragawa
+-	0x0025a349, // n0x0901 c0x0000 (---------------)  + I shimodate
+-	0x002d7e0a, // n0x0902 c0x0000 (---------------)  + I shimotsuma
+-	0x00308709, // n0x0903 c0x0000 (---------------)  + I shirosato
+-	0x002e5184, // n0x0904 c0x0000 (---------------)  + I sowa
+-	0x002de545, // n0x0905 c0x0000 (---------------)  + I suifu
+-	0x002dd788, // n0x0906 c0x0000 (---------------)  + I takahagi
+-	0x002aac4b, // n0x0907 c0x0000 (---------------)  + I tamatsukuri
+-	0x002f2085, // n0x0908 c0x0000 (---------------)  + I tokai
+-	0x002593c6, // n0x0909 c0x0000 (---------------)  + I tomobe
+-	0x00240944, // n0x090a c0x0000 (---------------)  + I tone
+-	0x0026ab86, // n0x090b c0x0000 (---------------)  + I toride
+-	0x0022e549, // n0x090c c0x0000 (---------------)  + I tsuchiura
+-	0x002e8487, // n0x090d c0x0000 (---------------)  + I tsukuba
+-	0x002b1408, // n0x090e c0x0000 (---------------)  + I uchihara
+-	0x00296c46, // n0x090f c0x0000 (---------------)  + I ushiku
+-	0x00206c07, // n0x0910 c0x0000 (---------------)  + I yachiyo
+-	0x0026ee08, // n0x0911 c0x0000 (---------------)  + I yamagata
+-	0x00326146, // n0x0912 c0x0000 (---------------)  + I yawara
+-	0x002afc44, // n0x0913 c0x0000 (---------------)  + I yuki
+-	0x0023ed87, // n0x0914 c0x0000 (---------------)  + I anamizu
+-	0x00274685, // n0x0915 c0x0000 (---------------)  + I hakui
+-	0x00274a47, // n0x0916 c0x0000 (---------------)  + I hakusan
+-	0x00208504, // n0x0917 c0x0000 (---------------)  + I kaga
+-	0x002528c6, // n0x0918 c0x0000 (---------------)  + I kahoku
+-	0x00261b88, // n0x0919 c0x0000 (---------------)  + I kanazawa
+-	0x0027f548, // n0x091a c0x0000 (---------------)  + I kawakita
+-	0x002b8e47, // n0x091b c0x0000 (---------------)  + I komatsu
+-	0x0020d108, // n0x091c c0x0000 (---------------)  + I nakanoto
+-	0x00217d85, // n0x091d c0x0000 (---------------)  + I nanao
+-	0x00216584, // n0x091e c0x0000 (---------------)  + I nomi
+-	0x00235bc8, // n0x091f c0x0000 (---------------)  + I nonoichi
+-	0x0020d204, // n0x0920 c0x0000 (---------------)  + I noto
+-	0x00253f45, // n0x0921 c0x0000 (---------------)  + I shika
+-	0x002eae04, // n0x0922 c0x0000 (---------------)  + I suzu
+-	0x002d4947, // n0x0923 c0x0000 (---------------)  + I tsubata
+-	0x002af187, // n0x0924 c0x0000 (---------------)  + I tsurugi
+-	0x0026f508, // n0x0925 c0x0000 (---------------)  + I uchinada
+-	0x00244106, // n0x0926 c0x0000 (---------------)  + I wajima
+-	0x002a3185, // n0x0927 c0x0000 (---------------)  + I fudai
+-	0x0026a448, // n0x0928 c0x0000 (---------------)  + I fujisawa
+-	0x00273cc8, // n0x0929 c0x0000 (---------------)  + I hanamaki
+-	0x0028aa09, // n0x092a c0x0000 (---------------)  + I hiraizumi
+-	0x00323146, // n0x092b c0x0000 (---------------)  + I hirono
+-	0x00347a88, // n0x092c c0x0000 (---------------)  + I ichinohe
+-	0x0021994a, // n0x092d c0x0000 (---------------)  + I ichinoseki
+-	0x00225988, // n0x092e c0x0000 (---------------)  + I iwaizumi
+-	0x00297345, // n0x092f c0x0000 (---------------)  + I iwate
+-	0x00262c06, // n0x0930 c0x0000 (---------------)  + I joboji
+-	0x0025a208, // n0x0931 c0x0000 (---------------)  + I kamaishi
+-	0x003287ca, // n0x0932 c0x0000 (---------------)  + I kanegasaki
+-	0x0030be87, // n0x0933 c0x0000 (---------------)  + I karumai
+-	0x0026e445, // n0x0934 c0x0000 (---------------)  + I kawai
+-	0x00347d88, // n0x0935 c0x0000 (---------------)  + I kitakami
+-	0x00270784, // n0x0936 c0x0000 (---------------)  + I kuji
+-	0x00246a06, // n0x0937 c0x0000 (---------------)  + I kunohe
+-	0x002ab308, // n0x0938 c0x0000 (---------------)  + I kuzumaki
+-	0x00216606, // n0x0939 c0x0000 (---------------)  + I miyako
+-	0x00215908, // n0x093a c0x0000 (---------------)  + I mizusawa
+-	0x0027e4c7, // n0x093b c0x0000 (---------------)  + I morioka
+-	0x002f3446, // n0x093c c0x0000 (---------------)  + I ninohe
+-	0x0022a104, // n0x093d c0x0000 (---------------)  + I noda
+-	0x002bff07, // n0x093e c0x0000 (---------------)  + I ofunato
+-	0x0029ac44, // n0x093f c0x0000 (---------------)  + I oshu
+-	0x0022e507, // n0x0940 c0x0000 (---------------)  + I otsuchi
+-	0x002b054d, // n0x0941 c0x0000 (---------------)  + I rikuzentakata
+-	0x00210405, // n0x0942 c0x0000 (---------------)  + I shiwa
+-	0x002dec0b, // n0x0943 c0x0000 (---------------)  + I shizukuishi
+-	0x0029b746, // n0x0944 c0x0000 (---------------)  + I sumita
+-	0x00344688, // n0x0945 c0x0000 (---------------)  + I takizawa
+-	0x0032bd88, // n0x0946 c0x0000 (---------------)  + I tanohata
+-	0x0022e984, // n0x0947 c0x0000 (---------------)  + I tono
+-	0x002e0806, // n0x0948 c0x0000 (---------------)  + I yahaba
+-	0x0026c046, // n0x0949 c0x0000 (---------------)  + I yamada
+-	0x00227587, // n0x094a c0x0000 (---------------)  + I ayagawa
+-	0x0027ebcd, // n0x094b c0x0000 (---------------)  + I higashikagawa
+-	0x002c92c7, // n0x094c c0x0000 (---------------)  + I kanonji
+-	0x0029c188, // n0x094d c0x0000 (---------------)  + I kotohira
+-	0x00259e85, // n0x094e c0x0000 (---------------)  + I manno
+-	0x0027bbc8, // n0x094f c0x0000 (---------------)  + I marugame
+-	0x002b2f46, // n0x0950 c0x0000 (---------------)  + I mitoyo
+-	0x00217e08, // n0x0951 c0x0000 (---------------)  + I naoshima
+-	0x002713c6, // n0x0952 c0x0000 (---------------)  + I sanuki
+-	0x00202987, // n0x0953 c0x0000 (---------------)  + I tadotsu
+-	0x0032bf09, // n0x0954 c0x0000 (---------------)  + I takamatsu
+-	0x0022e987, // n0x0955 c0x0000 (---------------)  + I tonosho
+-	0x00273708, // n0x0956 c0x0000 (---------------)  + I uchinomi
+-	0x00239d45, // n0x0957 c0x0000 (---------------)  + I utazu
+-	0x00219048, // n0x0958 c0x0000 (---------------)  + I zentsuji
+-	0x002509c5, // n0x0959 c0x0000 (---------------)  + I akune
+-	0x00258f45, // n0x095a c0x0000 (---------------)  + I amami
+-	0x00259745, // n0x095b c0x0000 (---------------)  + I hioki
+-	0x0022d543, // n0x095c c0x0000 (---------------)  + I isa
+-	0x00270344, // n0x095d c0x0000 (---------------)  + I isen
+-	0x00225a45, // n0x095e c0x0000 (---------------)  + I izumi
+-	0x002fd949, // n0x095f c0x0000 (---------------)  + I kagoshima
+-	0x002eaf06, // n0x0960 c0x0000 (---------------)  + I kanoya
+-	0x002a2ac8, // n0x0961 c0x0000 (---------------)  + I kawanabe
+-	0x0024d445, // n0x0962 c0x0000 (---------------)  + I kinko
+-	0x0029dd47, // n0x0963 c0x0000 (---------------)  + I kouyama
+-	0x0027e68a, // n0x0964 c0x0000 (---------------)  + I makurazaki
+-	0x002a3dc9, // n0x0965 c0x0000 (---------------)  + I matsumoto
+-	0x00310a4a, // n0x0966 c0x0000 (---------------)  + I minamitane
+-	0x002c2088, // n0x0967 c0x0000 (---------------)  + I nakatane
+-	0x0022ce0c, // n0x0968 c0x0000 (---------------)  + I nishinoomote
+-	0x0027004d, // n0x0969 c0x0000 (---------------)  + I satsumasendai
+-	0x002e2643, // n0x096a c0x0000 (---------------)  + I soo
+-	0x00215808, // n0x096b c0x0000 (---------------)  + I tarumizu
+-	0x0025d085, // n0x096c c0x0000 (---------------)  + I yusui
+-	0x00251146, // n0x096d c0x0000 (---------------)  + I aikawa
+-	0x002bd106, // n0x096e c0x0000 (---------------)  + I atsugi
+-	0x0033ee45, // n0x096f c0x0000 (---------------)  + I ayase
+-	0x00211dc9, // n0x0970 c0x0000 (---------------)  + I chigasaki
+-	0x002bb505, // n0x0971 c0x0000 (---------------)  + I ebina
+-	0x0026a448, // n0x0972 c0x0000 (---------------)  + I fujisawa
+-	0x00305886, // n0x0973 c0x0000 (---------------)  + I hadano
+-	0x0034b186, // n0x0974 c0x0000 (---------------)  + I hakone
+-	0x0028c209, // n0x0975 c0x0000 (---------------)  + I hiratsuka
+-	0x003347c7, // n0x0976 c0x0000 (---------------)  + I isehara
+-	0x002e3706, // n0x0977 c0x0000 (---------------)  + I kaisei
+-	0x0027e608, // n0x0978 c0x0000 (---------------)  + I kamakura
+-	0x003328c8, // n0x0979 c0x0000 (---------------)  + I kiyokawa
+-	0x002bca07, // n0x097a c0x0000 (---------------)  + I matsuda
+-	0x002e4e0e, // n0x097b c0x0000 (---------------)  + I minamiashigara
+-	0x002b3185, // n0x097c c0x0000 (---------------)  + I miura
+-	0x002bbec5, // n0x097d c0x0000 (---------------)  + I nakai
+-	0x00216508, // n0x097e c0x0000 (---------------)  + I ninomiya
+-	0x0022a147, // n0x097f c0x0000 (---------------)  + I odawara
+-	0x00203e02, // n0x0980 c0x0000 (---------------)  + I oi
+-	0x002a7684, // n0x0981 c0x0000 (---------------)  + I oiso
+-	0x0026600a, // n0x0982 c0x0000 (---------------)  + I sagamihara
+-	0x002b02c8, // n0x0983 c0x0000 (---------------)  + I samukawa
+-	0x00225bc6, // n0x0984 c0x0000 (---------------)  + I tsukui
+-	0x00280e08, // n0x0985 c0x0000 (---------------)  + I yamakita
+-	0x00245c86, // n0x0986 c0x0000 (---------------)  + I yamato
+-	0x002bcec8, // n0x0987 c0x0000 (---------------)  + I yokosuka
+-	0x00296048, // n0x0988 c0x0000 (---------------)  + I yugawara
+-	0x00258f04, // n0x0989 c0x0000 (---------------)  + I zama
+-	0x0029e0c5, // n0x098a c0x0000 (---------------)  + I zushi
+-	0x0074a404, // n0x098b c0x0001 (---------------)  ! I city
+-	0x0074a404, // n0x098c c0x0001 (---------------)  ! I city
+-	0x0074a404, // n0x098d c0x0001 (---------------)  ! I city
+-	0x002044c3, // n0x098e c0x0000 (---------------)  + I aki
+-	0x00236886, // n0x098f c0x0000 (---------------)  + I geisei
+-	0x0026a906, // n0x0990 c0x0000 (---------------)  + I hidaka
+-	0x0028660c, // n0x0991 c0x0000 (---------------)  + I higashitsuno
+-	0x00216543, // n0x0992 c0x0000 (---------------)  + I ino
+-	0x00236306, // n0x0993 c0x0000 (---------------)  + I kagami
+-	0x00228804, // n0x0994 c0x0000 (---------------)  + I kami
+-	0x002b4988, // n0x0995 c0x0000 (---------------)  + I kitagawa
+-	0x002bef85, // n0x0996 c0x0000 (---------------)  + I kochi
+-	0x00266106, // n0x0997 c0x0000 (---------------)  + I mihara
+-	0x0025d448, // n0x0998 c0x0000 (---------------)  + I motoyama
+-	0x002c2bc6, // n0x0999 c0x0000 (---------------)  + I muroto
+-	0x00237a86, // n0x099a c0x0000 (---------------)  + I nahari
+-	0x00287248, // n0x099b c0x0000 (---------------)  + I nakamura
+-	0x00220647, // n0x099c c0x0000 (---------------)  + I nankoku
+-	0x00231cc9, // n0x099d c0x0000 (---------------)  + I nishitosa
+-	0x0023b34a, // n0x099e c0x0000 (---------------)  + I niyodogawa
+-	0x002596c4, // n0x099f c0x0000 (---------------)  + I ochi
+-	0x0024a885, // n0x09a0 c0x0000 (---------------)  + I okawa
+-	0x002d9945, // n0x09a1 c0x0000 (---------------)  + I otoyo
+-	0x00239086, // n0x09a2 c0x0000 (---------------)  + I otsuki
+-	0x002adbc6, // n0x09a3 c0x0000 (---------------)  + I sakawa
+-	0x00287046, // n0x09a4 c0x0000 (---------------)  + I sukumo
+-	0x002da146, // n0x09a5 c0x0000 (---------------)  + I susaki
+-	0x00231e04, // n0x09a6 c0x0000 (---------------)  + I tosa
+-	0x00231e0b, // n0x09a7 c0x0000 (---------------)  + I tosashimizu
+-	0x0024a7c4, // n0x09a8 c0x0000 (---------------)  + I toyo
+-	0x002618c5, // n0x09a9 c0x0000 (---------------)  + I tsuno
+-	0x00295a85, // n0x09aa c0x0000 (---------------)  + I umaji
+-	0x002f1d06, // n0x09ab c0x0000 (---------------)  + I yasuda
+-	0x0023a008, // n0x09ac c0x0000 (---------------)  + I yusuhara
+-	0x0026ff07, // n0x09ad c0x0000 (---------------)  + I amakusa
+-	0x00308484, // n0x09ae c0x0000 (---------------)  + I arao
+-	0x002080c3, // n0x09af c0x0000 (---------------)  + I aso
+-	0x00306dc5, // n0x09b0 c0x0000 (---------------)  + I choyo
+-	0x0024f407, // n0x09b1 c0x0000 (---------------)  + I gyokuto
+-	0x0028ebc9, // n0x09b2 c0x0000 (---------------)  + I hitoyoshi
+-	0x0026fe0b, // n0x09b3 c0x0000 (---------------)  + I kamiamakusa
+-	0x002cb9c7, // n0x09b4 c0x0000 (---------------)  + I kashima
+-	0x00227287, // n0x09b5 c0x0000 (---------------)  + I kikuchi
+-	0x00298d84, // n0x09b6 c0x0000 (---------------)  + I kosa
+-	0x0025d348, // n0x09b7 c0x0000 (---------------)  + I kumamoto
+-	0x003115c7, // n0x09b8 c0x0000 (---------------)  + I mashiki
+-	0x00281946, // n0x09b9 c0x0000 (---------------)  + I mifune
+-	0x002f7e08, // n0x09ba c0x0000 (---------------)  + I minamata
+-	0x0025f9cb, // n0x09bb c0x0000 (---------------)  + I minamioguni
+-	0x00304546, // n0x09bc c0x0000 (---------------)  + I nagasu
+-	0x00220c49, // n0x09bd c0x0000 (---------------)  + I nishihara
+-	0x0025fb45, // n0x09be c0x0000 (---------------)  + I oguni
+-	0x0022b083, // n0x09bf c0x0000 (---------------)  + I ozu
+-	0x002a3e86, // n0x09c0 c0x0000 (---------------)  + I sumoto
+-	0x0027e3c8, // n0x09c1 c0x0000 (---------------)  + I takamori
+-	0x00204243, // n0x09c2 c0x0000 (---------------)  + I uki
+-	0x0024f503, // n0x09c3 c0x0000 (---------------)  + I uto
+-	0x0026ee06, // n0x09c4 c0x0000 (---------------)  + I yamaga
+-	0x00245c86, // n0x09c5 c0x0000 (---------------)  + I yamato
+-	0x00316cca, // n0x09c6 c0x0000 (---------------)  + I yatsushiro
+-	0x0026b5c5, // n0x09c7 c0x0000 (---------------)  + I ayabe
+-	0x0026be8b, // n0x09c8 c0x0000 (---------------)  + I fukuchiyama
+-	0x002876cb, // n0x09c9 c0x0000 (---------------)  + I higashiyama
+-	0x00268dc3, // n0x09ca c0x0000 (---------------)  + I ide
+-	0x00203e43, // n0x09cb c0x0000 (---------------)  + I ine
+-	0x002d8684, // n0x09cc c0x0000 (---------------)  + I joyo
+-	0x002d8ac7, // n0x09cd c0x0000 (---------------)  + I kameoka
+-	0x0021ff44, // n0x09ce c0x0000 (---------------)  + I kamo
+-	0x0021de44, // n0x09cf c0x0000 (---------------)  + I kita
+-	0x00311704, // n0x09d0 c0x0000 (---------------)  + I kizu
+-	0x002c3c48, // n0x09d1 c0x0000 (---------------)  + I kumiyama
+-	0x002892c8, // n0x09d2 c0x0000 (---------------)  + I kyotamba
+-	0x00233389, // n0x09d3 c0x0000 (---------------)  + I kyotanabe
+-	0x00200308, // n0x09d4 c0x0000 (---------------)  + I kyotango
+-	0x00289707, // n0x09d5 c0x0000 (---------------)  + I maizuru
+-	0x00232146, // n0x09d6 c0x0000 (---------------)  + I minami
+-	0x002a270f, // n0x09d7 c0x0000 (---------------)  + I minamiyamashiro
+-	0x002b32c6, // n0x09d8 c0x0000 (---------------)  + I miyazu
+-	0x002bef04, // n0x09d9 c0x0000 (---------------)  + I muko
+-	0x0028910a, // n0x09da c0x0000 (---------------)  + I nagaokakyo
+-	0x0024f307, // n0x09db c0x0000 (---------------)  + I nakagyo
+-	0x002e6a46, // n0x09dc c0x0000 (---------------)  + I nantan
+-	0x0027b749, // n0x09dd c0x0000 (---------------)  + I oyamazaki
+-	0x00233305, // n0x09de c0x0000 (---------------)  + I sakyo
+-	0x00302745, // n0x09df c0x0000 (---------------)  + I seika
+-	0x00233446, // n0x09e0 c0x0000 (---------------)  + I tanabe
+-	0x00219183, // n0x09e1 c0x0000 (---------------)  + I uji
+-	0x002707c9, // n0x09e2 c0x0000 (---------------)  + I ujitawara
+-	0x0026cac6, // n0x09e3 c0x0000 (---------------)  + I wazuka
+-	0x002d8d09, // n0x09e4 c0x0000 (---------------)  + I yamashina
+-	0x0032e306, // n0x09e5 c0x0000 (---------------)  + I yawata
+-	0x002ad245, // n0x09e6 c0x0000 (---------------)  + I asahi
+-	0x00224a85, // n0x09e7 c0x0000 (---------------)  + I inabe
+-	0x00236903, // n0x09e8 c0x0000 (---------------)  + I ise
+-	0x002d8c08, // n0x09e9 c0x0000 (---------------)  + I kameyama
+-	0x002adc47, // n0x09ea c0x0000 (---------------)  + I kawagoe
+-	0x0020af04, // n0x09eb c0x0000 (---------------)  + I kiho
+-	0x003289c8, // n0x09ec c0x0000 (---------------)  + I kisosaki
+-	0x0032ebc4, // n0x09ed c0x0000 (---------------)  + I kiwa
+-	0x002ce2c6, // n0x09ee c0x0000 (---------------)  + I komono
+-	0x002d9586, // n0x09ef c0x0000 (---------------)  + I kumano
+-	0x0023ecc6, // n0x09f0 c0x0000 (---------------)  + I kuwana
+-	0x0029e709, // n0x09f1 c0x0000 (---------------)  + I matsusaka
+-	0x00272545, // n0x09f2 c0x0000 (---------------)  + I meiwa
+-	0x0028ee06, // n0x09f3 c0x0000 (---------------)  + I mihama
+-	0x00242749, // n0x09f4 c0x0000 (---------------)  + I minamiise
+-	0x002b2306, // n0x09f5 c0x0000 (---------------)  + I misugi
+-	0x002a2806, // n0x09f6 c0x0000 (---------------)  + I miyama
+-	0x00330906, // n0x09f7 c0x0000 (---------------)  + I nabari
+-	0x00202c45, // n0x09f8 c0x0000 (---------------)  + I shima
+-	0x002eae06, // n0x09f9 c0x0000 (---------------)  + I suzuka
+-	0x00202984, // n0x09fa c0x0000 (---------------)  + I tado
+-	0x00226b05, // n0x09fb c0x0000 (---------------)  + I taiki
+-	0x002a8b84, // n0x09fc c0x0000 (---------------)  + I taki
+-	0x0029c886, // n0x09fd c0x0000 (---------------)  + I tamaki
+-	0x003088c4, // n0x09fe c0x0000 (---------------)  + I toba
+-	0x00202a83, // n0x09ff c0x0000 (---------------)  + I tsu
+-	0x00272905, // n0x0a00 c0x0000 (---------------)  + I udono
+-	0x002c3148, // n0x0a01 c0x0000 (---------------)  + I ureshino
+-	0x00297087, // n0x0a02 c0x0000 (---------------)  + I watarai
+-	0x0029d009, // n0x0a03 c0x0000 (---------------)  + I yokkaichi
+-	0x00272b48, // n0x0a04 c0x0000 (---------------)  + I furukawa
+-	0x00280551, // n0x0a05 c0x0000 (---------------)  + I higashimatsushima
+-	0x0022708a, // n0x0a06 c0x0000 (---------------)  + I ishinomaki
+-	0x002e3c07, // n0x0a07 c0x0000 (---------------)  + I iwanuma
+-	0x00302806, // n0x0a08 c0x0000 (---------------)  + I kakuda
+-	0x00228804, // n0x0a09 c0x0000 (---------------)  + I kami
+-	0x002a8c88, // n0x0a0a c0x0000 (---------------)  + I kawasaki
+-	0x00218149, // n0x0a0b c0x0000 (---------------)  + I kesennuma
+-	0x0027cac8, // n0x0a0c c0x0000 (---------------)  + I marumori
+-	0x0028070a, // n0x0a0d c0x0000 (---------------)  + I matsushima
+-	0x00271d4d, // n0x0a0e c0x0000 (---------------)  + I minamisanriku
+-	0x00235ec6, // n0x0a0f c0x0000 (---------------)  + I misato
+-	0x00287346, // n0x0a10 c0x0000 (---------------)  + I murata
+-	0x002bffc6, // n0x0a11 c0x0000 (---------------)  + I natori
+-	0x002ca887, // n0x0a12 c0x0000 (---------------)  + I ogawara
+-	0x0029c245, // n0x0a13 c0x0000 (---------------)  + I ohira
+-	0x00341e87, // n0x0a14 c0x0000 (---------------)  + I onagawa
+-	0x002286c5, // n0x0a15 c0x0000 (---------------)  + I osaki
+-	0x002dba04, // n0x0a16 c0x0000 (---------------)  + I rifu
+-	0x002fed86, // n0x0a17 c0x0000 (---------------)  + I semine
+-	0x003470c7, // n0x0a18 c0x0000 (---------------)  + I shibata
+-	0x00248dcd, // n0x0a19 c0x0000 (---------------)  + I shichikashuku
+-	0x0025a147, // n0x0a1a c0x0000 (---------------)  + I shikama
+-	0x002beb48, // n0x0a1b c0x0000 (---------------)  + I shiogama
+-	0x0026a749, // n0x0a1c c0x0000 (---------------)  + I shiroishi
+-	0x002a8086, // n0x0a1d c0x0000 (---------------)  + I tagajo
+-	0x00268185, // n0x0a1e c0x0000 (---------------)  + I taiwa
+-	0x00277e04, // n0x0a1f c0x0000 (---------------)  + I tome
+-	0x00266a86, // n0x0a20 c0x0000 (---------------)  + I tomiya
+-	0x0022acc6, // n0x0a21 c0x0000 (---------------)  + I wakuya
+-	0x002b0446, // n0x0a22 c0x0000 (---------------)  + I watari
+-	0x00282fc8, // n0x0a23 c0x0000 (---------------)  + I yamamoto
+-	0x00265043, // n0x0a24 c0x0000 (---------------)  + I zao
+-	0x00227583, // n0x0a25 c0x0000 (---------------)  + I aya
+-	0x002addc5, // n0x0a26 c0x0000 (---------------)  + I ebino
+-	0x002cd6c6, // n0x0a27 c0x0000 (---------------)  + I gokase
+-	0x00296005, // n0x0a28 c0x0000 (---------------)  + I hyuga
+-	0x00296e48, // n0x0a29 c0x0000 (---------------)  + I kadogawa
+-	0x002848ca, // n0x0a2a c0x0000 (---------------)  + I kawaminami
+-	0x00224d84, // n0x0a2b c0x0000 (---------------)  + I kijo
+-	0x002b4988, // n0x0a2c c0x0000 (---------------)  + I kitagawa
+-	0x0027e248, // n0x0a2d c0x0000 (---------------)  + I kitakata
+-	0x002f1b47, // n0x0a2e c0x0000 (---------------)  + I kitaura
+-	0x0030c649, // n0x0a2f c0x0000 (---------------)  + I kobayashi
+-	0x002a59c8, // n0x0a30 c0x0000 (---------------)  + I kunitomi
+-	0x00239307, // n0x0a31 c0x0000 (---------------)  + I kushima
+-	0x002a7206, // n0x0a32 c0x0000 (---------------)  + I mimata
+-	0x0021660a, // n0x0a33 c0x0000 (---------------)  + I miyakonojo
+-	0x00266b08, // n0x0a34 c0x0000 (---------------)  + I miyazaki
+-	0x0031ef09, // n0x0a35 c0x0000 (---------------)  + I morotsuka
+-	0x002d8388, // n0x0a36 c0x0000 (---------------)  + I nichinan
+-	0x00286309, // n0x0a37 c0x0000 (---------------)  + I nishimera
+-	0x00243ac7, // n0x0a38 c0x0000 (---------------)  + I nobeoka
+-	0x002defc5, // n0x0a39 c0x0000 (---------------)  + I saito
+-	0x00288d86, // n0x0a3a c0x0000 (---------------)  + I shiiba
+-	0x002dad08, // n0x0a3b c0x0000 (---------------)  + I shintomi
+-	0x00328cc8, // n0x0a3c c0x0000 (---------------)  + I takaharu
+-	0x00283988, // n0x0a3d c0x0000 (---------------)  + I takanabe
+-	0x002e7508, // n0x0a3e c0x0000 (---------------)  + I takazaki
+-	0x002618c5, // n0x0a3f c0x0000 (---------------)  + I tsuno
+-	0x00206c44, // n0x0a40 c0x0000 (---------------)  + I achi
+-	0x00307e08, // n0x0a41 c0x0000 (---------------)  + I agematsu
+-	0x00200944, // n0x0a42 c0x0000 (---------------)  + I anan
+-	0x00308504, // n0x0a43 c0x0000 (---------------)  + I aoki
+-	0x002ad245, // n0x0a44 c0x0000 (---------------)  + I asahi
+-	0x0027d387, // n0x0a45 c0x0000 (---------------)  + I azumino
+-	0x0021da49, // n0x0a46 c0x0000 (---------------)  + I chikuhoku
+-	0x00227387, // n0x0a47 c0x0000 (---------------)  + I chikuma
+-	0x00219985, // n0x0a48 c0x0000 (---------------)  + I chino
+-	0x00269346, // n0x0a49 c0x0000 (---------------)  + I fujimi
+-	0x002744c6, // n0x0a4a c0x0000 (---------------)  + I hakuba
+-	0x00209704, // n0x0a4b c0x0000 (---------------)  + I hara
+-	0x0028c546, // n0x0a4c c0x0000 (---------------)  + I hiraya
+-	0x002a2fc4, // n0x0a4d c0x0000 (---------------)  + I iida
+-	0x0027c9c6, // n0x0a4e c0x0000 (---------------)  + I iijima
+-	0x00204546, // n0x0a4f c0x0000 (---------------)  + I iiyama
+-	0x00304946, // n0x0a50 c0x0000 (---------------)  + I iizuna
+-	0x00244305, // n0x0a51 c0x0000 (---------------)  + I ikeda
+-	0x00296d07, // n0x0a52 c0x0000 (---------------)  + I ikusaka
+-	0x00203303, // n0x0a53 c0x0000 (---------------)  + I ina
+-	0x002e6009, // n0x0a54 c0x0000 (---------------)  + I karuizawa
+-	0x002e3408, // n0x0a55 c0x0000 (---------------)  + I kawakami
+-	0x00239184, // n0x0a56 c0x0000 (---------------)  + I kiso
+-	0x0023918d, // n0x0a57 c0x0000 (---------------)  + I kisofukushima
+-	0x0027f648, // n0x0a58 c0x0000 (---------------)  + I kitaaiki
+-	0x002b3dc8, // n0x0a59 c0x0000 (---------------)  + I komagane
+-	0x0031ee86, // n0x0a5a c0x0000 (---------------)  + I komoro
+-	0x0032c009, // n0x0a5b c0x0000 (---------------)  + I matsukawa
+-	0x002a3dc9, // n0x0a5c c0x0000 (---------------)  + I matsumoto
+-	0x0022e245, // n0x0a5d c0x0000 (---------------)  + I miasa
+-	0x002849ca, // n0x0a5e c0x0000 (---------------)  + I minamiaiki
+-	0x0024bf0a, // n0x0a5f c0x0000 (---------------)  + I minamimaki
+-	0x0025f54c, // n0x0a60 c0x0000 (---------------)  + I minamiminowa
+-	0x0025f6c6, // n0x0a61 c0x0000 (---------------)  + I minowa
+-	0x00269806, // n0x0a62 c0x0000 (---------------)  + I miyada
+-	0x002b3446, // n0x0a63 c0x0000 (---------------)  + I miyota
+-	0x0025b8c9, // n0x0a64 c0x0000 (---------------)  + I mochizuki
+-	0x003082c6, // n0x0a65 c0x0000 (---------------)  + I nagano
+-	0x0021c986, // n0x0a66 c0x0000 (---------------)  + I nagawa
+-	0x002bb5c6, // n0x0a67 c0x0000 (---------------)  + I nagiso
+-	0x0028a488, // n0x0a68 c0x0000 (---------------)  + I nakagawa
+-	0x0020cbc6, // n0x0a69 c0x0000 (---------------)  + I nakano
+-	0x0029b9cb, // n0x0a6a c0x0000 (---------------)  + I nozawaonsen
+-	0x0027d505, // n0x0a6b c0x0000 (---------------)  + I obuse
+-	0x00230d45, // n0x0a6c c0x0000 (---------------)  + I ogawa
+-	0x00269a85, // n0x0a6d c0x0000 (---------------)  + I okaya
+-	0x0021f706, // n0x0a6e c0x0000 (---------------)  + I omachi
+-	0x002165c3, // n0x0a6f c0x0000 (---------------)  + I omi
+-	0x0023ec46, // n0x0a70 c0x0000 (---------------)  + I ookuwa
+-	0x0025a0c7, // n0x0a71 c0x0000 (---------------)  + I ooshika
+-	0x002a8b45, // n0x0a72 c0x0000 (---------------)  + I otaki
+-	0x0025c605, // n0x0a73 c0x0000 (---------------)  + I otari
+-	0x00299045, // n0x0a74 c0x0000 (---------------)  + I sakae
+-	0x002d2fc6, // n0x0a75 c0x0000 (---------------)  + I sakaki
+-	0x00223584, // n0x0a76 c0x0000 (---------------)  + I saku
+-	0x0032a646, // n0x0a77 c0x0000 (---------------)  + I sakuho
+-	0x002d6d89, // n0x0a78 c0x0000 (---------------)  + I shimosuwa
+-	0x0021f58c, // n0x0a79 c0x0000 (---------------)  + I shinanomachi
+-	0x002db748, // n0x0a7a c0x0000 (---------------)  + I shiojiri
+-	0x00258344, // n0x0a7b c0x0000 (---------------)  + I suwa
+-	0x002c91c6, // n0x0a7c c0x0000 (---------------)  + I suzaka
+-	0x0029b846, // n0x0a7d c0x0000 (---------------)  + I takagi
+-	0x0027e3c8, // n0x0a7e c0x0000 (---------------)  + I takamori
+-	0x002e3dc8, // n0x0a7f c0x0000 (---------------)  + I takayama
+-	0x0021f489, // n0x0a80 c0x0000 (---------------)  + I tateshina
+-	0x00261847, // n0x0a81 c0x0000 (---------------)  + I tatsuno
+-	0x00291fc9, // n0x0a82 c0x0000 (---------------)  + I togakushi
+-	0x0026fa46, // n0x0a83 c0x0000 (---------------)  + I togura
+-	0x00266a84, // n0x0a84 c0x0000 (---------------)  + I tomi
+-	0x002a2dc4, // n0x0a85 c0x0000 (---------------)  + I ueda
+-	0x00273344, // n0x0a86 c0x0000 (---------------)  + I wada
+-	0x0026ee08, // n0x0a87 c0x0000 (---------------)  + I yamagata
+-	0x0021d88a, // n0x0a88 c0x0000 (---------------)  + I yamanouchi
+-	0x00306306, // n0x0a89 c0x0000 (---------------)  + I yasaka
+-	0x00311287, // n0x0a8a c0x0000 (---------------)  + I yasuoka
+-	0x0024e287, // n0x0a8b c0x0000 (---------------)  + I chijiwa
+-	0x00295145, // n0x0a8c c0x0000 (---------------)  + I futsu
+-	0x002d9904, // n0x0a8d c0x0000 (---------------)  + I goto
+-	0x0027a146, // n0x0a8e c0x0000 (---------------)  + I hasami
+-	0x0029c286, // n0x0a8f c0x0000 (---------------)  + I hirado
+-	0x0020aec3, // n0x0a90 c0x0000 (---------------)  + I iki
+-	0x002e3247, // n0x0a91 c0x0000 (---------------)  + I isahaya
+-	0x00232c48, // n0x0a92 c0x0000 (---------------)  + I kawatana
+-	0x0022e38a, // n0x0a93 c0x0000 (---------------)  + I kuchinotsu
+-	0x002b1d48, // n0x0a94 c0x0000 (---------------)  + I matsuura
+-	0x002f0f48, // n0x0a95 c0x0000 (---------------)  + I nagasaki
+-	0x00308905, // n0x0a96 c0x0000 (---------------)  + I obama
+-	0x0029c3c5, // n0x0a97 c0x0000 (---------------)  + I omura
+-	0x00291f05, // n0x0a98 c0x0000 (---------------)  + I oseto
+-	0x00295506, // n0x0a99 c0x0000 (---------------)  + I saikai
+-	0x002be346, // n0x0a9a c0x0000 (---------------)  + I sasebo
+-	0x002bf145, // n0x0a9b c0x0000 (---------------)  + I seihi
+-	0x0022fc49, // n0x0a9c c0x0000 (---------------)  + I shimabara
+-	0x002d970c, // n0x0a9d c0x0000 (---------------)  + I shinkamigoto
+-	0x00247f47, // n0x0a9e c0x0000 (---------------)  + I togitsu
+-	0x00280788, // n0x0a9f c0x0000 (---------------)  + I tsushima
+-	0x0026ebc5, // n0x0aa0 c0x0000 (---------------)  + I unzen
+-	0x0074a404, // n0x0aa1 c0x0001 (---------------)  ! I city
+-	0x00239f04, // n0x0aa2 c0x0000 (---------------)  + I ando
+-	0x00327f44, // n0x0aa3 c0x0000 (---------------)  + I gose
+-	0x002577c6, // n0x0aa4 c0x0000 (---------------)  + I heguri
+-	0x0028824e, // n0x0aa5 c0x0000 (---------------)  + I higashiyoshino
+-	0x002c7f87, // n0x0aa6 c0x0000 (---------------)  + I ikaruga
+-	0x002caa85, // n0x0aa7 c0x0000 (---------------)  + I ikoma
+-	0x00245a8c, // n0x0aa8 c0x0000 (---------------)  + I kamikitayama
+-	0x002dd287, // n0x0aa9 c0x0000 (---------------)  + I kanmaki
+-	0x00347047, // n0x0aaa c0x0000 (---------------)  + I kashiba
+-	0x002095c9, // n0x0aab c0x0000 (---------------)  + I kashihara
+-	0x00254749, // n0x0aac c0x0000 (---------------)  + I katsuragi
+-	0x0026e445, // n0x0aad c0x0000 (---------------)  + I kawai
+-	0x002e3408, // n0x0aae c0x0000 (---------------)  + I kawakami
+-	0x003195c9, // n0x0aaf c0x0000 (---------------)  + I kawanishi
+-	0x00298345, // n0x0ab0 c0x0000 (---------------)  + I koryo
+-	0x002a8a88, // n0x0ab1 c0x0000 (---------------)  + I kurotaki
+-	0x002e24c6, // n0x0ab2 c0x0000 (---------------)  + I mitsue
+-	0x00299ac6, // n0x0ab3 c0x0000 (---------------)  + I miyake
+-	0x003208c4, // n0x0ab4 c0x0000 (---------------)  + I nara
+-	0x002cad88, // n0x0ab5 c0x0000 (---------------)  + I nosegawa
+-	0x00262cc3, // n0x0ab6 c0x0000 (---------------)  + I oji
+-	0x00236a44, // n0x0ab7 c0x0000 (---------------)  + I ouda
+-	0x00306e45, // n0x0ab8 c0x0000 (---------------)  + I oyodo
+-	0x00285e07, // n0x0ab9 c0x0000 (---------------)  + I sakurai
+-	0x002572c5, // n0x0aba c0x0000 (---------------)  + I sango
+-	0x00219809, // n0x0abb c0x0000 (---------------)  + I shimoichi
+-	0x002d570d, // n0x0abc c0x0000 (---------------)  + I shimokitayama
+-	0x002d8586, // n0x0abd c0x0000 (---------------)  + I shinjo
+-	0x0028e844, // n0x0abe c0x0000 (---------------)  + I soni
+-	0x002df308, // n0x0abf c0x0000 (---------------)  + I takatori
+-	0x00203bca, // n0x0ac0 c0x0000 (---------------)  + I tawaramoto
+-	0x0027c047, // n0x0ac1 c0x0000 (---------------)  + I tenkawa
+-	0x002ee1c5, // n0x0ac2 c0x0000 (---------------)  + I tenri
+-	0x002262c3, // n0x0ac3 c0x0000 (---------------)  + I uda
+-	0x0028788e, // n0x0ac4 c0x0000 (---------------)  + I yamatokoriyama
+-	0x00245c8c, // n0x0ac5 c0x0000 (---------------)  + I yamatotakada
+-	0x002db587, // n0x0ac6 c0x0000 (---------------)  + I yamazoe
+-	0x00288407, // n0x0ac7 c0x0000 (---------------)  + I yoshino
+-	0x00208543, // n0x0ac8 c0x0000 (---------------)  + I aga
+-	0x00308305, // n0x0ac9 c0x0000 (---------------)  + I agano
+-	0x00327f45, // n0x0aca c0x0000 (---------------)  + I gosen
+-	0x002811c8, // n0x0acb c0x0000 (---------------)  + I itoigawa
+-	0x0027e089, // n0x0acc c0x0000 (---------------)  + I izumozaki
+-	0x002a8186, // n0x0acd c0x0000 (---------------)  + I joetsu
+-	0x0021ff44, // n0x0ace c0x0000 (---------------)  + I kamo
+-	0x002e3b46, // n0x0acf c0x0000 (---------------)  + I kariwa
+-	0x00216bcb, // n0x0ad0 c0x0000 (---------------)  + I kashiwazaki
+-	0x0029e48c, // n0x0ad1 c0x0000 (---------------)  + I minamiuonuma
+-	0x0026d547, // n0x0ad2 c0x0000 (---------------)  + I mitsuke
+-	0x002be745, // n0x0ad3 c0x0000 (---------------)  + I muika
+-	0x00276348, // n0x0ad4 c0x0000 (---------------)  + I murakami
+-	0x002bc7c5, // n0x0ad5 c0x0000 (---------------)  + I myoko
+-	0x00289107, // n0x0ad6 c0x0000 (---------------)  + I nagaoka
+-	0x0028db47, // n0x0ad7 c0x0000 (---------------)  + I niigata
+-	0x002967c5, // n0x0ad8 c0x0000 (---------------)  + I ojiya
+-	0x002165c3, // n0x0ad9 c0x0000 (---------------)  + I omi
+-	0x00215604, // n0x0ada c0x0000 (---------------)  + I sado
+-	0x0025bc45, // n0x0adb c0x0000 (---------------)  + I sanjo
+-	0x00236945, // n0x0adc c0x0000 (---------------)  + I seiro
+-	0x00236946, // n0x0add c0x0000 (---------------)  + I seirou
+-	0x002d6b88, // n0x0ade c0x0000 (---------------)  + I sekikawa
+-	0x003470c7, // n0x0adf c0x0000 (---------------)  + I shibata
+-	0x002bd406, // n0x0ae0 c0x0000 (---------------)  + I tagami
+-	0x00251046, // n0x0ae1 c0x0000 (---------------)  + I tainai
+-	0x00259686, // n0x0ae2 c0x0000 (---------------)  + I tochio
+-	0x0029ae09, // n0x0ae3 c0x0000 (---------------)  + I tokamachi
+-	0x00229a47, // n0x0ae4 c0x0000 (---------------)  + I tsubame
+-	0x00273ac6, // n0x0ae5 c0x0000 (---------------)  + I tsunan
+-	0x0029e606, // n0x0ae6 c0x0000 (---------------)  + I uonuma
+-	0x0030c546, // n0x0ae7 c0x0000 (---------------)  + I yahiko
+-	0x002d8705, // n0x0ae8 c0x0000 (---------------)  + I yoita
+-	0x00292786, // n0x0ae9 c0x0000 (---------------)  + I yuzawa
+-	0x00345945, // n0x0aea c0x0000 (---------------)  + I beppu
+-	0x00299708, // n0x0aeb c0x0000 (---------------)  + I bungoono
+-	0x0027600b, // n0x0aec c0x0000 (---------------)  + I bungotakada
+-	0x00279f46, // n0x0aed c0x0000 (---------------)  + I hasama
+-	0x0024e2c4, // n0x0aee c0x0000 (---------------)  + I hiji
+-	0x002dfa89, // n0x0aef c0x0000 (---------------)  + I himeshima
+-	0x0028a2c4, // n0x0af0 c0x0000 (---------------)  + I hita
+-	0x002e2448, // n0x0af1 c0x0000 (---------------)  + I kamitsue
+-	0x002a3807, // n0x0af2 c0x0000 (---------------)  + I kokonoe
+-	0x00249084, // n0x0af3 c0x0000 (---------------)  + I kuju
+-	0x002a4a48, // n0x0af4 c0x0000 (---------------)  + I kunisaki
+-	0x002aa344, // n0x0af5 c0x0000 (---------------)  + I kusu
+-	0x002d8744, // n0x0af6 c0x0000 (---------------)  + I oita
+-	0x00273145, // n0x0af7 c0x0000 (---------------)  + I saiki
+-	0x002cb846, // n0x0af8 c0x0000 (---------------)  + I taketa
+-	0x002c3b87, // n0x0af9 c0x0000 (---------------)  + I tsukumi
+-	0x002159c3, // n0x0afa c0x0000 (---------------)  + I usa
+-	0x00286d05, // n0x0afb c0x0000 (---------------)  + I usuki
+-	0x0026e004, // n0x0afc c0x0000 (---------------)  + I yufu
+-	0x002bbf06, // n0x0afd c0x0000 (---------------)  + I akaiwa
+-	0x0022e2c8, // n0x0afe c0x0000 (---------------)  + I asakuchi
+-	0x0030c245, // n0x0aff c0x0000 (---------------)  + I bizen
+-	0x0027ce89, // n0x0b00 c0x0000 (---------------)  + I hayashima
+-	0x0025e6c5, // n0x0b01 c0x0000 (---------------)  + I ibara
+-	0x00236308, // n0x0b02 c0x0000 (---------------)  + I kagamino
+-	0x00319307, // n0x0b03 c0x0000 (---------------)  + I kasaoka
+-	0x0022aec8, // n0x0b04 c0x0000 (---------------)  + I kibichuo
+-	0x002a4107, // n0x0b05 c0x0000 (---------------)  + I kumenan
+-	0x00332589, // n0x0b06 c0x0000 (---------------)  + I kurashiki
+-	0x00237c06, // n0x0b07 c0x0000 (---------------)  + I maniwa
+-	0x002cc706, // n0x0b08 c0x0000 (---------------)  + I misaki
+-	0x002bb5c4, // n0x0b09 c0x0000 (---------------)  + I nagi
+-	0x002e4d45, // n0x0b0a c0x0000 (---------------)  + I niimi
+-	0x0021a0cc, // n0x0b0b c0x0000 (---------------)  + I nishiawakura
+-	0x00269a87, // n0x0b0c c0x0000 (---------------)  + I okayama
+-	0x0026a247, // n0x0b0d c0x0000 (---------------)  + I satosho
+-	0x0024e148, // n0x0b0e c0x0000 (---------------)  + I setouchi
+-	0x002d8586, // n0x0b0f c0x0000 (---------------)  + I shinjo
+-	0x0026a344, // n0x0b10 c0x0000 (---------------)  + I shoo
+-	0x003139c4, // n0x0b11 c0x0000 (---------------)  + I soja
+-	0x002b4649, // n0x0b12 c0x0000 (---------------)  + I takahashi
+-	0x002b3546, // n0x0b13 c0x0000 (---------------)  + I tamano
+-	0x00280d47, // n0x0b14 c0x0000 (---------------)  + I tsuyama
+-	0x00341fc4, // n0x0b15 c0x0000 (---------------)  + I wake
+-	0x0027b506, // n0x0b16 c0x0000 (---------------)  + I yakage
+-	0x00209b05, // n0x0b17 c0x0000 (---------------)  + I aguni
+-	0x0028d9c7, // n0x0b18 c0x0000 (---------------)  + I ginowan
+-	0x0029b946, // n0x0b19 c0x0000 (---------------)  + I ginoza
+-	0x00277849, // n0x0b1a c0x0000 (---------------)  + I gushikami
+-	0x00310887, // n0x0b1b c0x0000 (---------------)  + I haebaru
+-	0x00256207, // n0x0b1c c0x0000 (---------------)  + I higashi
+-	0x0028c086, // n0x0b1d c0x0000 (---------------)  + I hirara
+-	0x0030cbc5, // n0x0b1e c0x0000 (---------------)  + I iheya
+-	0x0026ddc8, // n0x0b1f c0x0000 (---------------)  + I ishigaki
+-	0x0026c948, // n0x0b20 c0x0000 (---------------)  + I ishikawa
+-	0x00303186, // n0x0b21 c0x0000 (---------------)  + I itoman
+-	0x0030c285, // n0x0b22 c0x0000 (---------------)  + I izena
+-	0x002a83c6, // n0x0b23 c0x0000 (---------------)  + I kadena
+-	0x00204d83, // n0x0b24 c0x0000 (---------------)  + I kin
+-	0x00281049, // n0x0b25 c0x0000 (---------------)  + I kitadaito
+-	0x00286dce, // n0x0b26 c0x0000 (---------------)  + I kitanakagusuku
+-	0x002a3c48, // n0x0b27 c0x0000 (---------------)  + I kumejima
+-	0x0032ecc8, // n0x0b28 c0x0000 (---------------)  + I kunigami
+-	0x00302f8b, // n0x0b29 c0x0000 (---------------)  + I minamidaito
+-	0x0027d0c6, // n0x0b2a c0x0000 (---------------)  + I motobu
+-	0x00208284, // n0x0b2b c0x0000 (---------------)  + I nago
+-	0x00237a84, // n0x0b2c c0x0000 (---------------)  + I naha
+-	0x00286eca, // n0x0b2d c0x0000 (---------------)  + I nakagusuku
+-	0x00215c47, // n0x0b2e c0x0000 (---------------)  + I nakijin
+-	0x00273b85, // n0x0b2f c0x0000 (---------------)  + I nanjo
+-	0x00220c49, // n0x0b30 c0x0000 (---------------)  + I nishihara
+-	0x002a7145, // n0x0b31 c0x0000 (---------------)  + I ogimi
+-	0x00308547, // n0x0b32 c0x0000 (---------------)  + I okinawa
+-	0x00202e84, // n0x0b33 c0x0000 (---------------)  + I onna
+-	0x002d5187, // n0x0b34 c0x0000 (---------------)  + I shimoji
+-	0x002f7f88, // n0x0b35 c0x0000 (---------------)  + I taketomi
+-	0x002dea86, // n0x0b36 c0x0000 (---------------)  + I tarama
+-	0x002b2489, // n0x0b37 c0x0000 (---------------)  + I tokashiki
+-	0x002a5aca, // n0x0b38 c0x0000 (---------------)  + I tomigusuku
+-	0x00215bc6, // n0x0b39 c0x0000 (---------------)  + I tonaki
+-	0x0027f186, // n0x0b3a c0x0000 (---------------)  + I urasoe
+-	0x00295a05, // n0x0b3b c0x0000 (---------------)  + I uruma
+-	0x0032af85, // n0x0b3c c0x0000 (---------------)  + I yaese
+-	0x00327207, // n0x0b3d c0x0000 (---------------)  + I yomitan
+-	0x00346748, // n0x0b3e c0x0000 (---------------)  + I yonabaru
+-	0x00209a48, // n0x0b3f c0x0000 (---------------)  + I yonaguni
+-	0x00258f06, // n0x0b40 c0x0000 (---------------)  + I zamami
+-	0x00338405, // n0x0b41 c0x0000 (---------------)  + I abeno
+-	0x002ad94e, // n0x0b42 c0x0000 (---------------)  + I chihayaakasaka
+-	0x0022afc4, // n0x0b43 c0x0000 (---------------)  + I chuo
+-	0x00281145, // n0x0b44 c0x0000 (---------------)  + I daito
+-	0x00268cc9, // n0x0b45 c0x0000 (---------------)  + I fujiidera
+-	0x0026e248, // n0x0b46 c0x0000 (---------------)  + I habikino
+-	0x00277306, // n0x0b47 c0x0000 (---------------)  + I hannan
+-	0x00282c4c, // n0x0b48 c0x0000 (---------------)  + I higashiosaka
+-	0x002844d0, // n0x0b49 c0x0000 (---------------)  + I higashisumiyoshi
+-	0x00287e8f, // n0x0b4a c0x0000 (---------------)  + I higashiyodogawa
+-	0x0028b388, // n0x0b4b c0x0000 (---------------)  + I hirakata
+-	0x00327887, // n0x0b4c c0x0000 (---------------)  + I ibaraki
+-	0x00244305, // n0x0b4d c0x0000 (---------------)  + I ikeda
+-	0x00225a45, // n0x0b4e c0x0000 (---------------)  + I izumi
+-	0x00225a49, // n0x0b4f c0x0000 (---------------)  + I izumiotsu
+-	0x00347f89, // n0x0b50 c0x0000 (---------------)  + I izumisano
+-	0x0021c206, // n0x0b51 c0x0000 (---------------)  + I kadoma
+-	0x002f2107, // n0x0b52 c0x0000 (---------------)  + I kaizuka
+-	0x00200905, // n0x0b53 c0x0000 (---------------)  + I kanan
+-	0x00210389, // n0x0b54 c0x0000 (---------------)  + I kashiwara
+-	0x0032bd06, // n0x0b55 c0x0000 (---------------)  + I katano
+-	0x0030810d, // n0x0b56 c0x0000 (---------------)  + I kawachinagano
+-	0x00273209, // n0x0b57 c0x0000 (---------------)  + I kishiwada
+-	0x0021de44, // n0x0b58 c0x0000 (---------------)  + I kita
+-	0x002a39c8, // n0x0b59 c0x0000 (---------------)  + I kumatori
+-	0x00307ec9, // n0x0b5a c0x0000 (---------------)  + I matsubara
+-	0x003064c6, // n0x0b5b c0x0000 (---------------)  + I minato
+-	0x00269445, // n0x0b5c c0x0000 (---------------)  + I minoh
+-	0x002cc706, // n0x0b5d c0x0000 (---------------)  + I misaki
+-	0x002b12c9, // n0x0b5e c0x0000 (---------------)  + I moriguchi
+-	0x002b4048, // n0x0b5f c0x0000 (---------------)  + I neyagawa
+-	0x0021a0c5, // n0x0b60 c0x0000 (---------------)  + I nishi
+-	0x00219a44, // n0x0b61 c0x0000 (---------------)  + I nose
+-	0x00282e0b, // n0x0b62 c0x0000 (---------------)  + I osakasayama
+-	0x00306385, // n0x0b63 c0x0000 (---------------)  + I sakai
+-	0x00248bc6, // n0x0b64 c0x0000 (---------------)  + I sayama
+-	0x002587c6, // n0x0b65 c0x0000 (---------------)  + I sennan
+-	0x002fff06, // n0x0b66 c0x0000 (---------------)  + I settsu
+-	0x0030c7cb, // n0x0b67 c0x0000 (---------------)  + I shijonawate
+-	0x0027cf89, // n0x0b68 c0x0000 (---------------)  + I shimamoto
+-	0x00341885, // n0x0b69 c0x0000 (---------------)  + I suita
+-	0x0024d207, // n0x0b6a c0x0000 (---------------)  + I tadaoka
+-	0x00227006, // n0x0b6b c0x0000 (---------------)  + I taishi
+-	0x0026f886, // n0x0b6c c0x0000 (---------------)  + I tajiri
+-	0x00327cc8, // n0x0b6d c0x0000 (---------------)  + I takaishi
+-	0x002630c9, // n0x0b6e c0x0000 (---------------)  + I takatsuki
+-	0x002be90c, // n0x0b6f c0x0000 (---------------)  + I tondabayashi
+-	0x0024f208, // n0x0b70 c0x0000 (---------------)  + I toyonaka
+-	0x00253246, // n0x0b71 c0x0000 (---------------)  + I toyono
+-	0x002c90c3, // n0x0b72 c0x0000 (---------------)  + I yao
+-	0x00218046, // n0x0b73 c0x0000 (---------------)  + I ariake
+-	0x00288bc5, // n0x0b74 c0x0000 (---------------)  + I arita
+-	0x0026c1c8, // n0x0b75 c0x0000 (---------------)  + I fukudomi
+-	0x00222c46, // n0x0b76 c0x0000 (---------------)  + I genkai
+-	0x00243e88, // n0x0b77 c0x0000 (---------------)  + I hamatama
+-	0x00322d45, // n0x0b78 c0x0000 (---------------)  + I hizen
+-	0x00323945, // n0x0b79 c0x0000 (---------------)  + I imari
+-	0x002f2448, // n0x0b7a c0x0000 (---------------)  + I kamimine
+-	0x0029b507, // n0x0b7b c0x0000 (---------------)  + I kanzaki
+-	0x002bd047, // n0x0b7c c0x0000 (---------------)  + I karatsu
+-	0x002cb9c7, // n0x0b7d c0x0000 (---------------)  + I kashima
+-	0x00328b48, // n0x0b7e c0x0000 (---------------)  + I kitagata
+-	0x003279c8, // n0x0b7f c0x0000 (---------------)  + I kitahata
+-	0x002911c6, // n0x0b80 c0x0000 (---------------)  + I kiyama
+-	0x0029c6c7, // n0x0b81 c0x0000 (---------------)  + I kouhoku
+-	0x002ad487, // n0x0b82 c0x0000 (---------------)  + I kyuragi
+-	0x00288a8a, // n0x0b83 c0x0000 (---------------)  + I nishiarita
+-	0x0020e983, // n0x0b84 c0x0000 (---------------)  + I ogi
+-	0x0021f706, // n0x0b85 c0x0000 (---------------)  + I omachi
+-	0x0021d9c5, // n0x0b86 c0x0000 (---------------)  + I ouchi
+-	0x00262184, // n0x0b87 c0x0000 (---------------)  + I saga
+-	0x0026a749, // n0x0b88 c0x0000 (---------------)  + I shiroishi
+-	0x00332504, // n0x0b89 c0x0000 (---------------)  + I taku
+-	0x00200144, // n0x0b8a c0x0000 (---------------)  + I tara
+-	0x00284d44, // n0x0b8b c0x0000 (---------------)  + I tosu
+-	0x0028840b, // n0x0b8c c0x0000 (---------------)  + I yoshinogari
+-	0x00308047, // n0x0b8d c0x0000 (---------------)  + I arakawa
+-	0x002adb85, // n0x0b8e c0x0000 (---------------)  + I asaka
+-	0x002bf3c8, // n0x0b8f c0x0000 (---------------)  + I chichibu
+-	0x00269346, // n0x0b90 c0x0000 (---------------)  + I fujimi
+-	0x00269348, // n0x0b91 c0x0000 (---------------)  + I fujimino
+-	0x0026b506, // n0x0b92 c0x0000 (---------------)  + I fukaya
+-	0x00278005, // n0x0b93 c0x0000 (---------------)  + I hanno
+-	0x00278545, // n0x0b94 c0x0000 (---------------)  + I hanyu
+-	0x0027a786, // n0x0b95 c0x0000 (---------------)  + I hasuda
+-	0x0027b388, // n0x0b96 c0x0000 (---------------)  + I hatogaya
+-	0x0027b688, // n0x0b97 c0x0000 (---------------)  + I hatoyama
+-	0x0026a906, // n0x0b98 c0x0000 (---------------)  + I hidaka
+-	0x002bf20f, // n0x0b99 c0x0000 (---------------)  + I higashichichibu
+-	0x00280b10, // n0x0b9a c0x0000 (---------------)  + I higashimatsuyama
+-	0x00224605, // n0x0b9b c0x0000 (---------------)  + I honjo
+-	0x00203303, // n0x0b9c c0x0000 (---------------)  + I ina
+-	0x002f1985, // n0x0b9d c0x0000 (---------------)  + I iruma
+-	0x00297488, // n0x0b9e c0x0000 (---------------)  + I iwatsuki
+-	0x00347e89, // n0x0b9f c0x0000 (---------------)  + I kamiizumi
+-	0x002aedc8, // n0x0ba0 c0x0000 (---------------)  + I kamikawa
+-	0x0031f0c8, // n0x0ba1 c0x0000 (---------------)  + I kamisato
+-	0x00218448, // n0x0ba2 c0x0000 (---------------)  + I kasukabe
+-	0x002adc47, // n0x0ba3 c0x0000 (---------------)  + I kawagoe
+-	0x00269009, // n0x0ba4 c0x0000 (---------------)  + I kawaguchi
+-	0x00244088, // n0x0ba5 c0x0000 (---------------)  + I kawajima
+-	0x00234e04, // n0x0ba6 c0x0000 (---------------)  + I kazo
+-	0x00284bc8, // n0x0ba7 c0x0000 (---------------)  + I kitamoto
+-	0x00250cc9, // n0x0ba8 c0x0000 (---------------)  + I koshigaya
+-	0x0029cc87, // n0x0ba9 c0x0000 (---------------)  + I kounosu
+-	0x002a5cc4, // n0x0baa c0x0000 (---------------)  + I kuki
+-	0x00227448, // n0x0bab c0x0000 (---------------)  + I kumagaya
+-	0x00296aca, // n0x0bac c0x0000 (---------------)  + I matsubushi
+-	0x002b2dc6, // n0x0bad c0x0000 (---------------)  + I minano
+-	0x00235ec6, // n0x0bae c0x0000 (---------------)  + I misato
+-	0x00323009, // n0x0baf c0x0000 (---------------)  + I miyashiro
+-	0x00284707, // n0x0bb0 c0x0000 (---------------)  + I miyoshi
+-	0x002b8408, // n0x0bb1 c0x0000 (---------------)  + I moroyama
+-	0x00240008, // n0x0bb2 c0x0000 (---------------)  + I nagatoro
+-	0x0022ab48, // n0x0bb3 c0x0000 (---------------)  + I namegawa
+-	0x002d4545, // n0x0bb4 c0x0000 (---------------)  + I niiza
+-	0x00239845, // n0x0bb5 c0x0000 (---------------)  + I ogano
+-	0x00230d45, // n0x0bb6 c0x0000 (---------------)  + I ogawa
+-	0x00327f05, // n0x0bb7 c0x0000 (---------------)  + I ogose
+-	0x002d4fc7, // n0x0bb8 c0x0000 (---------------)  + I okegawa
+-	0x002165c5, // n0x0bb9 c0x0000 (---------------)  + I omiya
+-	0x002a8b45, // n0x0bba c0x0000 (---------------)  + I otaki
+-	0x00319c46, // n0x0bbb c0x0000 (---------------)  + I ranzan
+-	0x002aed07, // n0x0bbc c0x0000 (---------------)  + I ryokami
+-	0x002aab87, // n0x0bbd c0x0000 (---------------)  + I saitama
+-	0x00296dc6, // n0x0bbe c0x0000 (---------------)  + I sakado
+-	0x002c25c5, // n0x0bbf c0x0000 (---------------)  + I satte
+-	0x00248bc6, // n0x0bc0 c0x0000 (---------------)  + I sayama
+-	0x0021fd05, // n0x0bc1 c0x0000 (---------------)  + I shiki
+-	0x002dd108, // n0x0bc2 c0x0000 (---------------)  + I shiraoka
+-	0x00200884, // n0x0bc3 c0x0000 (---------------)  + I soka
+-	0x002b2386, // n0x0bc4 c0x0000 (---------------)  + I sugito
+-	0x0020fd44, // n0x0bc5 c0x0000 (---------------)  + I toda
+-	0x0034b648, // n0x0bc6 c0x0000 (---------------)  + I tokigawa
+-	0x002d9c4a, // n0x0bc7 c0x0000 (---------------)  + I tokorozawa
+-	0x00202a8c, // n0x0bc8 c0x0000 (---------------)  + I tsurugashima
+-	0x0021b805, // n0x0bc9 c0x0000 (---------------)  + I urawa
+-	0x002ca946, // n0x0bca c0x0000 (---------------)  + I warabi
+-	0x002beac6, // n0x0bcb c0x0000 (---------------)  + I yashio
+-	0x00318706, // n0x0bcc c0x0000 (---------------)  + I yokoze
+-	0x002532c4, // n0x0bcd c0x0000 (---------------)  + I yono
+-	0x00210245, // n0x0bce c0x0000 (---------------)  + I yorii
+-	0x0026b347, // n0x0bcf c0x0000 (---------------)  + I yoshida
+-	0x00284789, // n0x0bd0 c0x0000 (---------------)  + I yoshikawa
+-	0x0028ecc7, // n0x0bd1 c0x0000 (---------------)  + I yoshimi
+-	0x0074a404, // n0x0bd2 c0x0001 (---------------)  ! I city
+-	0x0074a404, // n0x0bd3 c0x0001 (---------------)  ! I city
+-	0x0033f385, // n0x0bd4 c0x0000 (---------------)  + I aisho
+-	0x00236f84, // n0x0bd5 c0x0000 (---------------)  + I gamo
+-	0x0028260a, // n0x0bd6 c0x0000 (---------------)  + I higashiomi
+-	0x002691c6, // n0x0bd7 c0x0000 (---------------)  + I hikone
+-	0x002458c4, // n0x0bd8 c0x0000 (---------------)  + I koka
+-	0x002e69c5, // n0x0bd9 c0x0000 (---------------)  + I konan
+-	0x00299e45, // n0x0bda c0x0000 (---------------)  + I kosei
+-	0x0029c184, // n0x0bdb c0x0000 (---------------)  + I koto
+-	0x0026ffc7, // n0x0bdc c0x0000 (---------------)  + I kusatsu
+-	0x0025e647, // n0x0bdd c0x0000 (---------------)  + I maibara
+-	0x002b7608, // n0x0bde c0x0000 (---------------)  + I moriyama
+-	0x002a84c8, // n0x0bdf c0x0000 (---------------)  + I nagahama
+-	0x0021d5c9, // n0x0be0 c0x0000 (---------------)  + I nishiazai
+-	0x00305988, // n0x0be1 c0x0000 (---------------)  + I notogawa
+-	0x002827cb, // n0x0be2 c0x0000 (---------------)  + I omihachiman
+-	0x00202a44, // n0x0be3 c0x0000 (---------------)  + I otsu
+-	0x0026f985, // n0x0be4 c0x0000 (---------------)  + I ritto
+-	0x00285185, // n0x0be5 c0x0000 (---------------)  + I ryuoh
+-	0x002cb949, // n0x0be6 c0x0000 (---------------)  + I takashima
+-	0x002630c9, // n0x0be7 c0x0000 (---------------)  + I takatsuki
+-	0x002df988, // n0x0be8 c0x0000 (---------------)  + I torahime
+-	0x00259248, // n0x0be9 c0x0000 (---------------)  + I toyosato
+-	0x002f1d04, // n0x0bea c0x0000 (---------------)  + I yasu
+-	0x0029b885, // n0x0beb c0x0000 (---------------)  + I akagi
+-	0x00204603, // n0x0bec c0x0000 (---------------)  + I ama
+-	0x00239045, // n0x0bed c0x0000 (---------------)  + I gotsu
+-	0x0028ee86, // n0x0bee c0x0000 (---------------)  + I hamada
+-	0x0027decc, // n0x0bef c0x0000 (---------------)  + I higashiizumo
+-	0x00235d46, // n0x0bf0 c0x0000 (---------------)  + I hikawa
+-	0x0021fd46, // n0x0bf1 c0x0000 (---------------)  + I hikimi
+-	0x00277585, // n0x0bf2 c0x0000 (---------------)  + I izumo
+-	0x002d3048, // n0x0bf3 c0x0000 (---------------)  + I kakinoki
+-	0x0029de86, // n0x0bf4 c0x0000 (---------------)  + I masuda
+-	0x00302986, // n0x0bf5 c0x0000 (---------------)  + I matsue
+-	0x00235ec6, // n0x0bf6 c0x0000 (---------------)  + I misato
+-	0x0022d6cc, // n0x0bf7 c0x0000 (---------------)  + I nishinoshima
+-	0x00260744, // n0x0bf8 c0x0000 (---------------)  + I ohda
+-	0x002597ca, // n0x0bf9 c0x0000 (---------------)  + I okinoshima
+-	0x002774c8, // n0x0bfa c0x0000 (---------------)  + I okuizumo
+-	0x0027dd07, // n0x0bfb c0x0000 (---------------)  + I shimane
+-	0x002afb46, // n0x0bfc c0x0000 (---------------)  + I tamayu
+-	0x00258307, // n0x0bfd c0x0000 (---------------)  + I tsuwano
+-	0x002cfbc5, // n0x0bfe c0x0000 (---------------)  + I unnan
+-	0x0028c646, // n0x0bff c0x0000 (---------------)  + I yakumo
+-	0x0030fc86, // n0x0c00 c0x0000 (---------------)  + I yasugi
+-	0x00315b87, // n0x0c01 c0x0000 (---------------)  + I yatsuka
+-	0x00296184, // n0x0c02 c0x0000 (---------------)  + I arai
+-	0x002d4a45, // n0x0c03 c0x0000 (---------------)  + I atami
+-	0x00268cc4, // n0x0c04 c0x0000 (---------------)  + I fuji
+-	0x002dba87, // n0x0c05 c0x0000 (---------------)  + I fujieda
+-	0x00268f08, // n0x0c06 c0x0000 (---------------)  + I fujikawa
+-	0x0026968a, // n0x0c07 c0x0000 (---------------)  + I fujinomiya
+-	0x0026dc47, // n0x0c08 c0x0000 (---------------)  + I fukuroi
+-	0x0022d107, // n0x0c09 c0x0000 (---------------)  + I gotemba
+-	0x00327807, // n0x0c0a c0x0000 (---------------)  + I haibara
+-	0x002bc909, // n0x0c0b c0x0000 (---------------)  + I hamamatsu
+-	0x0027deca, // n0x0c0c c0x0000 (---------------)  + I higashiizu
+-	0x00231dc3, // n0x0c0d c0x0000 (---------------)  + I ito
+-	0x00297045, // n0x0c0e c0x0000 (---------------)  + I iwata
+-	0x00215943, // n0x0c0f c0x0000 (---------------)  + I izu
+-	0x00311749, // n0x0c10 c0x0000 (---------------)  + I izunokuni
+-	0x0024d7c8, // n0x0c11 c0x0000 (---------------)  + I kakegawa
+-	0x002e0307, // n0x0c12 c0x0000 (---------------)  + I kannami
+-	0x002aeec9, // n0x0c13 c0x0000 (---------------)  + I kawanehon
+-	0x0026ca46, // n0x0c14 c0x0000 (---------------)  + I kawazu
+-	0x00222408, // n0x0c15 c0x0000 (---------------)  + I kikugawa
+-	0x00298d85, // n0x0c16 c0x0000 (---------------)  + I kosai
+-	0x00273dca, // n0x0c17 c0x0000 (---------------)  + I makinohara
+-	0x002b7789, // n0x0c18 c0x0000 (---------------)  + I matsuzaki
+-	0x002435c9, // n0x0c19 c0x0000 (---------------)  + I minamiizu
+-	0x002b1c07, // n0x0c1a c0x0000 (---------------)  + I mishima
+-	0x0027cbc9, // n0x0c1b c0x0000 (---------------)  + I morimachi
+-	0x00304848, // n0x0c1c c0x0000 (---------------)  + I nishiizu
+-	0x002e57c6, // n0x0c1d c0x0000 (---------------)  + I numazu
+-	0x002cab08, // n0x0c1e c0x0000 (---------------)  + I omaezaki
+-	0x00265187, // n0x0c1f c0x0000 (---------------)  + I shimada
+-	0x00231f07, // n0x0c20 c0x0000 (---------------)  + I shimizu
+-	0x0025a347, // n0x0c21 c0x0000 (---------------)  + I shimoda
+-	0x002e0188, // n0x0c22 c0x0000 (---------------)  + I shizuoka
+-	0x002dc2c6, // n0x0c23 c0x0000 (---------------)  + I susono
+-	0x00296885, // n0x0c24 c0x0000 (---------------)  + I yaizu
+-	0x0026b347, // n0x0c25 c0x0000 (---------------)  + I yoshida
+-	0x0027ec88, // n0x0c26 c0x0000 (---------------)  + I ashikaga
+-	0x0033da44, // n0x0c27 c0x0000 (---------------)  + I bato
+-	0x00312d44, // n0x0c28 c0x0000 (---------------)  + I haga
+-	0x002e3607, // n0x0c29 c0x0000 (---------------)  + I ichikai
+-	0x003074c7, // n0x0c2a c0x0000 (---------------)  + I iwafune
+-	0x0031944a, // n0x0c2b c0x0000 (---------------)  + I kaminokawa
+-	0x002e5746, // n0x0c2c c0x0000 (---------------)  + I kanuma
+-	0x003113ca, // n0x0c2d c0x0000 (---------------)  + I karasuyama
+-	0x002a75c7, // n0x0c2e c0x0000 (---------------)  + I kuroiso
+-	0x00303747, // n0x0c2f c0x0000 (---------------)  + I mashiko
+-	0x00275f84, // n0x0c30 c0x0000 (---------------)  + I mibu
+-	0x002d5584, // n0x0c31 c0x0000 (---------------)  + I moka
+-	0x002204c6, // n0x0c32 c0x0000 (---------------)  + I motegi
+-	0x002bc344, // n0x0c33 c0x0000 (---------------)  + I nasu
+-	0x002bc34c, // n0x0c34 c0x0000 (---------------)  + I nasushiobara
+-	0x00213485, // n0x0c35 c0x0000 (---------------)  + I nikko
+-	0x00253ec9, // n0x0c36 c0x0000 (---------------)  + I nishikata
+-	0x0020e944, // n0x0c37 c0x0000 (---------------)  + I nogi
+-	0x0029c245, // n0x0c38 c0x0000 (---------------)  + I ohira
+-	0x00203b48, // n0x0c39 c0x0000 (---------------)  + I ohtawara
+-	0x0025d505, // n0x0c3a c0x0000 (---------------)  + I oyama
+-	0x00223586, // n0x0c3b c0x0000 (---------------)  + I sakura
+-	0x003480c4, // n0x0c3c c0x0000 (---------------)  + I sano
+-	0x002d7b8a, // n0x0c3d c0x0000 (---------------)  + I shimotsuke
+-	0x002dbc46, // n0x0c3e c0x0000 (---------------)  + I shioya
+-	0x0028744a, // n0x0c3f c0x0000 (---------------)  + I takanezawa
+-	0x0033dac7, // n0x0c40 c0x0000 (---------------)  + I tochigi
+-	0x0029b2c5, // n0x0c41 c0x0000 (---------------)  + I tsuga
+-	0x00219185, // n0x0c42 c0x0000 (---------------)  + I ujiie
+-	0x0029518a, // n0x0c43 c0x0000 (---------------)  + I utsunomiya
+-	0x002680c5, // n0x0c44 c0x0000 (---------------)  + I yaita
+-	0x00225a06, // n0x0c45 c0x0000 (---------------)  + I aizumi
+-	0x00200944, // n0x0c46 c0x0000 (---------------)  + I anan
+-	0x002a43c6, // n0x0c47 c0x0000 (---------------)  + I ichiba
+-	0x003272c5, // n0x0c48 c0x0000 (---------------)  + I itano
+-	0x00222d06, // n0x0c49 c0x0000 (---------------)  + I kainan
+-	0x002b8e4c, // n0x0c4a c0x0000 (---------------)  + I komatsushima
+-	0x002cbb0a, // n0x0c4b c0x0000 (---------------)  + I matsushige
+-	0x0024c004, // n0x0c4c c0x0000 (---------------)  + I mima
+-	0x00232146, // n0x0c4d c0x0000 (---------------)  + I minami
+-	0x00284707, // n0x0c4e c0x0000 (---------------)  + I miyoshi
+-	0x002bdac4, // n0x0c4f c0x0000 (---------------)  + I mugi
+-	0x0028a488, // n0x0c50 c0x0000 (---------------)  + I nakagawa
+-	0x0034b546, // n0x0c51 c0x0000 (---------------)  + I naruto
+-	0x002ad7c9, // n0x0c52 c0x0000 (---------------)  + I sanagochi
+-	0x002ddd49, // n0x0c53 c0x0000 (---------------)  + I shishikui
+-	0x002daac9, // n0x0c54 c0x0000 (---------------)  + I tokushima
+-	0x00232306, // n0x0c55 c0x0000 (---------------)  + I wajiki
+-	0x00265286, // n0x0c56 c0x0000 (---------------)  + I adachi
+-	0x002cac47, // n0x0c57 c0x0000 (---------------)  + I akiruno
+-	0x0022fb88, // n0x0c58 c0x0000 (---------------)  + I akishima
+-	0x00265089, // n0x0c59 c0x0000 (---------------)  + I aogashima
+-	0x00308047, // n0x0c5a c0x0000 (---------------)  + I arakawa
+-	0x00217c06, // n0x0c5b c0x0000 (---------------)  + I bunkyo
+-	0x00206c87, // n0x0c5c c0x0000 (---------------)  + I chiyoda
+-	0x002bfe85, // n0x0c5d c0x0000 (---------------)  + I chofu
+-	0x0022afc4, // n0x0c5e c0x0000 (---------------)  + I chuo
+-	0x002ca807, // n0x0c5f c0x0000 (---------------)  + I edogawa
+-	0x0033dc85, // n0x0c60 c0x0000 (---------------)  + I fuchu
+-	0x00273085, // n0x0c61 c0x0000 (---------------)  + I fussa
+-	0x0024ba87, // n0x0c62 c0x0000 (---------------)  + I hachijo
+-	0x00296688, // n0x0c63 c0x0000 (---------------)  + I hachioji
+-	0x002762c6, // n0x0c64 c0x0000 (---------------)  + I hamura
+-	0x0027fc4d, // n0x0c65 c0x0000 (---------------)  + I higashikurume
+-	0x002813cf, // n0x0c66 c0x0000 (---------------)  + I higashimurayama
+-	0x002876cd, // n0x0c67 c0x0000 (---------------)  + I higashiyamato
+-	0x002199c4, // n0x0c68 c0x0000 (---------------)  + I hino
+-	0x002c3846, // n0x0c69 c0x0000 (---------------)  + I hinode
+-	0x00320a08, // n0x0c6a c0x0000 (---------------)  + I hinohara
+-	0x002bb585, // n0x0c6b c0x0000 (---------------)  + I inagi
+-	0x00288c48, // n0x0c6c c0x0000 (---------------)  + I itabashi
+-	0x002c080a, // n0x0c6d c0x0000 (---------------)  + I katsushika
+-	0x0021de44, // n0x0c6e c0x0000 (---------------)  + I kita
+-	0x002dd3c6, // n0x0c6f c0x0000 (---------------)  + I kiyose
+-	0x002e48c7, // n0x0c70 c0x0000 (---------------)  + I kodaira
+-	0x0027ae07, // n0x0c71 c0x0000 (---------------)  + I koganei
+-	0x00220709, // n0x0c72 c0x0000 (---------------)  + I kokubunji
+-	0x002caac5, // n0x0c73 c0x0000 (---------------)  + I komae
+-	0x0029c184, // n0x0c74 c0x0000 (---------------)  + I koto
+-	0x0029e00a, // n0x0c75 c0x0000 (---------------)  + I kouzushima
+-	0x002a50c9, // n0x0c76 c0x0000 (---------------)  + I kunitachi
+-	0x0027ccc7, // n0x0c77 c0x0000 (---------------)  + I machida
+-	0x00228406, // n0x0c78 c0x0000 (---------------)  + I meguro
+-	0x003064c6, // n0x0c79 c0x0000 (---------------)  + I minato
+-	0x0029b7c6, // n0x0c7a c0x0000 (---------------)  + I mitaka
+-	0x0023ee46, // n0x0c7b c0x0000 (---------------)  + I mizuho
+-	0x002c334f, // n0x0c7c c0x0000 (---------------)  + I musashimurayama
+-	0x002c3709, // n0x0c7d c0x0000 (---------------)  + I musashino
+-	0x0020cbc6, // n0x0c7e c0x0000 (---------------)  + I nakano
+-	0x00323886, // n0x0c7f c0x0000 (---------------)  + I nerima
+-	0x00230589, // n0x0c80 c0x0000 (---------------)  + I ogasawara
+-	0x0029c7c7, // n0x0c81 c0x0000 (---------------)  + I okutama
+-	0x0020ee83, // n0x0c82 c0x0000 (---------------)  + I ome
+-	0x00217e86, // n0x0c83 c0x0000 (---------------)  + I oshima
+-	0x00200383, // n0x0c84 c0x0000 (---------------)  + I ota
+-	0x0033ed08, // n0x0c85 c0x0000 (---------------)  + I setagaya
+-	0x002e06c7, // n0x0c86 c0x0000 (---------------)  + I shibuya
+-	0x0028b589, // n0x0c87 c0x0000 (---------------)  + I shinagawa
+-	0x002d9408, // n0x0c88 c0x0000 (---------------)  + I shinjuku
+-	0x002bd188, // n0x0c89 c0x0000 (---------------)  + I suginami
+-	0x00284dc6, // n0x0c8a c0x0000 (---------------)  + I sumida
+-	0x00341949, // n0x0c8b c0x0000 (---------------)  + I tachikawa
+-	0x00247e85, // n0x0c8c c0x0000 (---------------)  + I taito
+-	0x00243f84, // n0x0c8d c0x0000 (---------------)  + I tama
+-	0x002c50c7, // n0x0c8e c0x0000 (---------------)  + I toshima
+-	0x0025b945, // n0x0c8f c0x0000 (---------------)  + I chizu
+-	0x002199c4, // n0x0c90 c0x0000 (---------------)  + I hino
+-	0x00272c48, // n0x0c91 c0x0000 (---------------)  + I kawahara
+-	0x0020b104, // n0x0c92 c0x0000 (---------------)  + I koge
+-	0x0029c507, // n0x0c93 c0x0000 (---------------)  + I kotoura
+-	0x002d3c06, // n0x0c94 c0x0000 (---------------)  + I misasa
+-	0x00258885, // n0x0c95 c0x0000 (---------------)  + I nanbu
+-	0x002d8388, // n0x0c96 c0x0000 (---------------)  + I nichinan
+-	0x0030638b, // n0x0c97 c0x0000 (---------------)  + I sakaiminato
+-	0x0031bd07, // n0x0c98 c0x0000 (---------------)  + I tottori
+-	0x00295406, // n0x0c99 c0x0000 (---------------)  + I wakasa
+-	0x002b3344, // n0x0c9a c0x0000 (---------------)  + I yazu
+-	0x00208206, // n0x0c9b c0x0000 (---------------)  + I yonago
+-	0x002ad245, // n0x0c9c c0x0000 (---------------)  + I asahi
+-	0x0033dc85, // n0x0c9d c0x0000 (---------------)  + I fuchu
+-	0x0026d449, // n0x0c9e c0x0000 (---------------)  + I fukumitsu
+-	0x0026fbc9, // n0x0c9f c0x0000 (---------------)  + I funahashi
+-	0x00231f44, // n0x0ca0 c0x0000 (---------------)  + I himi
+-	0x00231f85, // n0x0ca1 c0x0000 (---------------)  + I imizu
+-	0x00232185, // n0x0ca2 c0x0000 (---------------)  + I inami
+-	0x00273c46, // n0x0ca3 c0x0000 (---------------)  + I johana
+-	0x002e3508, // n0x0ca4 c0x0000 (---------------)  + I kamiichi
+-	0x002a6d06, // n0x0ca5 c0x0000 (---------------)  + I kurobe
+-	0x00232a8b, // n0x0ca6 c0x0000 (---------------)  + I nakaniikawa
+-	0x00202f0a, // n0x0ca7 c0x0000 (---------------)  + I namerikawa
+-	0x0029ad45, // n0x0ca8 c0x0000 (---------------)  + I nanto
+-	0x002785c6, // n0x0ca9 c0x0000 (---------------)  + I nyuzen
+-	0x00338385, // n0x0caa c0x0000 (---------------)  + I oyabe
+-	0x002b0805, // n0x0cab c0x0000 (---------------)  + I taira
+-	0x002d87c7, // n0x0cac c0x0000 (---------------)  + I takaoka
+-	0x002550c8, // n0x0cad c0x0000 (---------------)  + I tateyama
+-	0x0027b404, // n0x0cae c0x0000 (---------------)  + I toga
+-	0x00275e86, // n0x0caf c0x0000 (---------------)  + I tonami
+-	0x0025d4c6, // n0x0cb0 c0x0000 (---------------)  + I toyama
+-	0x00304a07, // n0x0cb1 c0x0000 (---------------)  + I unazuki
+-	0x0022b044, // n0x0cb2 c0x0000 (---------------)  + I uozu
+-	0x0026c046, // n0x0cb3 c0x0000 (---------------)  + I yamada
+-	0x002b0045, // n0x0cb4 c0x0000 (---------------)  + I arida
+-	0x002b0049, // n0x0cb5 c0x0000 (---------------)  + I aridagawa
+-	0x002a32c4, // n0x0cb6 c0x0000 (---------------)  + I gobo
+-	0x002d9a89, // n0x0cb7 c0x0000 (---------------)  + I hashimoto
+-	0x0026a906, // n0x0cb8 c0x0000 (---------------)  + I hidaka
+-	0x002a9808, // n0x0cb9 c0x0000 (---------------)  + I hirogawa
+-	0x00232185, // n0x0cba c0x0000 (---------------)  + I inami
+-	0x0024e385, // n0x0cbb c0x0000 (---------------)  + I iwade
+-	0x00222d06, // n0x0cbc c0x0000 (---------------)  + I kainan
+-	0x002be809, // n0x0cbd c0x0000 (---------------)  + I kamitonda
+-	0x00254749, // n0x0cbe c0x0000 (---------------)  + I katsuragi
+-	0x0021fdc6, // n0x0cbf c0x0000 (---------------)  + I kimino
+-	0x0026e348, // n0x0cc0 c0x0000 (---------------)  + I kinokawa
+-	0x00245b88, // n0x0cc1 c0x0000 (---------------)  + I kitayama
+-	0x00338344, // n0x0cc2 c0x0000 (---------------)  + I koya
+-	0x0029ee84, // n0x0cc3 c0x0000 (---------------)  + I koza
+-	0x0029ee88, // n0x0cc4 c0x0000 (---------------)  + I kozagawa
+-	0x002f99c8, // n0x0cc5 c0x0000 (---------------)  + I kudoyama
+-	0x002920c9, // n0x0cc6 c0x0000 (---------------)  + I kushimoto
+-	0x0028ee06, // n0x0cc7 c0x0000 (---------------)  + I mihama
+-	0x00235ec6, // n0x0cc8 c0x0000 (---------------)  + I misato
+-	0x002f634d, // n0x0cc9 c0x0000 (---------------)  + I nachikatsuura
+-	0x002d8086, // n0x0cca c0x0000 (---------------)  + I shingu
+-	0x002dbf09, // n0x0ccb c0x0000 (---------------)  + I shirahama
+-	0x002eb0c5, // n0x0ccc c0x0000 (---------------)  + I taiji
+-	0x00233446, // n0x0ccd c0x0000 (---------------)  + I tanabe
+-	0x00341b08, // n0x0cce c0x0000 (---------------)  + I wakayama
+-	0x0034ea05, // n0x0ccf c0x0000 (---------------)  + I yuasa
+-	0x002ad4c4, // n0x0cd0 c0x0000 (---------------)  + I yura
+-	0x002ad245, // n0x0cd1 c0x0000 (---------------)  + I asahi
+-	0x0026f708, // n0x0cd2 c0x0000 (---------------)  + I funagata
+-	0x002823c9, // n0x0cd3 c0x0000 (---------------)  + I higashine
+-	0x00268d84, // n0x0cd4 c0x0000 (---------------)  + I iide
+-	0x002528c6, // n0x0cd5 c0x0000 (---------------)  + I kahoku
+-	0x0034740a, // n0x0cd6 c0x0000 (---------------)  + I kaminoyama
+-	0x002db488, // n0x0cd7 c0x0000 (---------------)  + I kaneyama
+-	0x003195c9, // n0x0cd8 c0x0000 (---------------)  + I kawanishi
+-	0x002efcca, // n0x0cd9 c0x0000 (---------------)  + I mamurogawa
+-	0x002aee46, // n0x0cda c0x0000 (---------------)  + I mikawa
+-	0x00281588, // n0x0cdb c0x0000 (---------------)  + I murayama
+-	0x002e8805, // n0x0cdc c0x0000 (---------------)  + I nagai
+-	0x002e2008, // n0x0cdd c0x0000 (---------------)  + I nakayama
+-	0x002a4205, // n0x0cde c0x0000 (---------------)  + I nanyo
+-	0x0026c909, // n0x0cdf c0x0000 (---------------)  + I nishikawa
+-	0x0022f509, // n0x0ce0 c0x0000 (---------------)  + I obanazawa
+-	0x00213582, // n0x0ce1 c0x0000 (---------------)  + I oe
+-	0x0025fb45, // n0x0ce2 c0x0000 (---------------)  + I oguni
+-	0x00269506, // n0x0ce3 c0x0000 (---------------)  + I ohkura
+-	0x0026a847, // n0x0ce4 c0x0000 (---------------)  + I oishida
+-	0x00262185, // n0x0ce5 c0x0000 (---------------)  + I sagae
+-	0x00262fc6, // n0x0ce6 c0x0000 (---------------)  + I sakata
+-	0x0034eac8, // n0x0ce7 c0x0000 (---------------)  + I sakegawa
+-	0x002d8586, // n0x0ce8 c0x0000 (---------------)  + I shinjo
+-	0x002dd649, // n0x0ce9 c0x0000 (---------------)  + I shirataka
+-	0x0022ea86, // n0x0cea c0x0000 (---------------)  + I shonai
+-	0x00327b48, // n0x0ceb c0x0000 (---------------)  + I takahata
+-	0x00292c05, // n0x0cec c0x0000 (---------------)  + I tendo
+-	0x0028f306, // n0x0ced c0x0000 (---------------)  + I tozawa
+-	0x002a8248, // n0x0cee c0x0000 (---------------)  + I tsuruoka
+-	0x0026ee08, // n0x0cef c0x0000 (---------------)  + I yamagata
+-	0x002045c8, // n0x0cf0 c0x0000 (---------------)  + I yamanobe
+-	0x00251808, // n0x0cf1 c0x0000 (---------------)  + I yonezawa
+-	0x00292784, // n0x0cf2 c0x0000 (---------------)  + I yuza
+-	0x0022ae03, // n0x0cf3 c0x0000 (---------------)  + I abu
+-	0x002dd884, // n0x0cf4 c0x0000 (---------------)  + I hagi
+-	0x0029d946, // n0x0cf5 c0x0000 (---------------)  + I hikari
+-	0x002bfec4, // n0x0cf6 c0x0000 (---------------)  + I hofu
+-	0x0032ec07, // n0x0cf7 c0x0000 (---------------)  + I iwakuni
+-	0x00302889, // n0x0cf8 c0x0000 (---------------)  + I kudamatsu
+-	0x002b2bc5, // n0x0cf9 c0x0000 (---------------)  + I mitou
+-	0x00240006, // n0x0cfa c0x0000 (---------------)  + I nagato
+-	0x00217e86, // n0x0cfb c0x0000 (---------------)  + I oshima
+-	0x002d69cb, // n0x0cfc c0x0000 (---------------)  + I shimonoseki
+-	0x0029ac86, // n0x0cfd c0x0000 (---------------)  + I shunan
+-	0x002f9cc6, // n0x0cfe c0x0000 (---------------)  + I tabuse
+-	0x002f8208, // n0x0cff c0x0000 (---------------)  + I tokuyama
+-	0x0025c546, // n0x0d00 c0x0000 (---------------)  + I toyota
+-	0x00272043, // n0x0d01 c0x0000 (---------------)  + I ube
+-	0x0025e183, // n0x0d02 c0x0000 (---------------)  + I yuu
+-	0x0022afc4, // n0x0d03 c0x0000 (---------------)  + I chuo
+-	0x002e0645, // n0x0d04 c0x0000 (---------------)  + I doshi
+-	0x0026e087, // n0x0d05 c0x0000 (---------------)  + I fuefuki
+-	0x00268f08, // n0x0d06 c0x0000 (---------------)  + I fujikawa
+-	0x00268f0f, // n0x0d07 c0x0000 (---------------)  + I fujikawaguchiko
+-	0x0026b24b, // n0x0d08 c0x0000 (---------------)  + I fujiyoshida
+-	0x002e3308, // n0x0d09 c0x0000 (---------------)  + I hayakawa
+-	0x00252946, // n0x0d0a c0x0000 (---------------)  + I hokuto
+-	0x00235cce, // n0x0d0b c0x0000 (---------------)  + I ichikawamisato
+-	0x00222d03, // n0x0d0c c0x0000 (---------------)  + I kai
+-	0x0022b584, // n0x0d0d c0x0000 (---------------)  + I kofu
+-	0x0029ac05, // n0x0d0e c0x0000 (---------------)  + I koshu
+-	0x0029c006, // n0x0d0f c0x0000 (---------------)  + I kosuge
+-	0x0027a24b, // n0x0d10 c0x0000 (---------------)  + I minami-alps
+-	0x0027d446, // n0x0d11 c0x0000 (---------------)  + I minobu
+-	0x00238ac9, // n0x0d12 c0x0000 (---------------)  + I nakamichi
+-	0x00258885, // n0x0d13 c0x0000 (---------------)  + I nanbu
+-	0x00339748, // n0x0d14 c0x0000 (---------------)  + I narusawa
+-	0x00217388, // n0x0d15 c0x0000 (---------------)  + I nirasaki
+-	0x0025460c, // n0x0d16 c0x0000 (---------------)  + I nishikatsura
+-	0x00288446, // n0x0d17 c0x0000 (---------------)  + I oshino
+-	0x00239086, // n0x0d18 c0x0000 (---------------)  + I otsuki
+-	0x002d92c5, // n0x0d19 c0x0000 (---------------)  + I showa
+-	0x002734c8, // n0x0d1a c0x0000 (---------------)  + I tabayama
+-	0x00202a85, // n0x0d1b c0x0000 (---------------)  + I tsuru
+-	0x0024fcc8, // n0x0d1c c0x0000 (---------------)  + I uenohara
+-	0x00287b0a, // n0x0d1d c0x0000 (---------------)  + I yamanakako
+-	0x00248c49, // n0x0d1e c0x0000 (---------------)  + I yamanashi
+-	0x0074a404, // n0x0d1f c0x0001 (---------------)  ! I city
+-	0x0020d643, // n0x0d20 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d21 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d22 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0d23 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0d24 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d25 c0x0000 (---------------)  + I org
+-	0x0030c243, // n0x0d26 c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x0d27 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d28 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d29 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x0d2a c0x0000 (---------------)  + I info
+-	0x00214843, // n0x0d2b c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d2c c0x0000 (---------------)  + I org
+-	0x002072c3, // n0x0d2d c0x0000 (---------------)  + I ass
+-	0x002072c4, // n0x0d2e c0x0000 (---------------)  + I asso
+-	0x0020d643, // n0x0d2f c0x0000 (---------------)  + I com
+-	0x0023ae84, // n0x0d30 c0x0000 (---------------)  + I coop
+-	0x002df843, // n0x0d31 c0x0000 (---------------)  + I edu
+-	0x00257384, // n0x0d32 c0x0000 (---------------)  + I gouv
+-	0x00218d43, // n0x0d33 c0x0000 (---------------)  + I gov
+-	0x002efac7, // n0x0d34 c0x0000 (---------------)  + I medecin
+-	0x0022f003, // n0x0d35 c0x0000 (---------------)  + I mil
+-	0x00216583, // n0x0d36 c0x0000 (---------------)  + I nom
+-	0x00277b88, // n0x0d37 c0x0000 (---------------)  + I notaires
+-	0x0023e983, // n0x0d38 c0x0000 (---------------)  + I org
+-	0x002c70cb, // n0x0d39 c0x0000 (---------------)  + I pharmaciens
+-	0x00261ec3, // n0x0d3a c0x0000 (---------------)  + I prd
+-	0x003460c6, // n0x0d3b c0x0000 (---------------)  + I presse
+-	0x0023a842, // n0x0d3c c0x0000 (---------------)  + I tm
+-	0x002c1b4b, // n0x0d3d c0x0000 (---------------)  + I veterinaire
+-	0x002df843, // n0x0d3e c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d3f c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0d40 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d41 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x0d42 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d43 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d44 c0x0000 (---------------)  + I gov
+-	0x0023e983, // n0x0d45 c0x0000 (---------------)  + I org
+-	0x00270e83, // n0x0d46 c0x0000 (---------------)  + I rep
+-	0x0020c683, // n0x0d47 c0x0000 (---------------)  + I tra
+-	0x00206c42, // n0x0d48 c0x0000 (---------------)  + I ac
+-	0x0003c708, // n0x0d49 c0x0000 (---------------)  +   blogspot
+-	0x00233085, // n0x0d4a c0x0000 (---------------)  + I busan
+-	0x0030da08, // n0x0d4b c0x0000 (---------------)  + I chungbuk
+-	0x0031b188, // n0x0d4c c0x0000 (---------------)  + I chungnam
+-	0x0020d642, // n0x0d4d c0x0000 (---------------)  + I co
+-	0x00236ac5, // n0x0d4e c0x0000 (---------------)  + I daegu
+-	0x002bcb47, // n0x0d4f c0x0000 (---------------)  + I daejeon
+-	0x00201e42, // n0x0d50 c0x0000 (---------------)  + I es
+-	0x00238d07, // n0x0d51 c0x0000 (---------------)  + I gangwon
+-	0x00200482, // n0x0d52 c0x0000 (---------------)  + I go
+-	0x00279707, // n0x0d53 c0x0000 (---------------)  + I gwangju
+-	0x002fa089, // n0x0d54 c0x0000 (---------------)  + I gyeongbuk
+-	0x00340e48, // n0x0d55 c0x0000 (---------------)  + I gyeonggi
+-	0x0022a9c9, // n0x0d56 c0x0000 (---------------)  + I gyeongnam
+-	0x00212e82, // n0x0d57 c0x0000 (---------------)  + I hs
+-	0x00256f87, // n0x0d58 c0x0000 (---------------)  + I incheon
+-	0x0030a6c4, // n0x0d59 c0x0000 (---------------)  + I jeju
+-	0x002bcc07, // n0x0d5a c0x0000 (---------------)  + I jeonbuk
+-	0x00202e07, // n0x0d5b c0x0000 (---------------)  + I jeonnam
+-	0x0025c902, // n0x0d5c c0x0000 (---------------)  + I kg
+-	0x0022f003, // n0x0d5d c0x0000 (---------------)  + I mil
+-	0x00201342, // n0x0d5e c0x0000 (---------------)  + I ms
+-	0x00203e82, // n0x0d5f c0x0000 (---------------)  + I ne
+-	0x00200a82, // n0x0d60 c0x0000 (---------------)  + I or
+-	0x00209242, // n0x0d61 c0x0000 (---------------)  + I pe
+-	0x00201602, // n0x0d62 c0x0000 (---------------)  + I re
+-	0x00201d82, // n0x0d63 c0x0000 (---------------)  + I sc
+-	0x002e7d05, // n0x0d64 c0x0000 (---------------)  + I seoul
+-	0x00239e45, // n0x0d65 c0x0000 (---------------)  + I ulsan
+-	0x0020d643, // n0x0d66 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d67 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d68 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0d69 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d6a c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x0d6b c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d6c c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d6d c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0d6e c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0d6f c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d70 c0x0000 (---------------)  + I org
+-	0x00000501, // n0x0d71 c0x0000 (---------------)  +   c
+-	0x0020d643, // n0x0d72 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d73 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d74 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x0d75 c0x0000 (---------------)  + I info
+-	0x00217543, // n0x0d76 c0x0000 (---------------)  + I int
+-	0x00214843, // n0x0d77 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d78 c0x0000 (---------------)  + I org
+-	0x00210803, // n0x0d79 c0x0000 (---------------)  + I per
+-	0x0020d643, // n0x0d7a c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d7b c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d7c c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0d7d c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d7e c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x0d7f c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x0d80 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d81 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d82 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0d83 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d84 c0x0000 (---------------)  + I org
+-	0x002aaa04, // n0x0d85 c0x0000 (---------------)  + I assn
+-	0x0020d643, // n0x0d86 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d87 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d88 c0x0000 (---------------)  + I gov
+-	0x0024f943, // n0x0d89 c0x0000 (---------------)  + I grp
+-	0x002937c5, // n0x0d8a c0x0000 (---------------)  + I hotel
+-	0x00217543, // n0x0d8b c0x0000 (---------------)  + I int
+-	0x0023c1c3, // n0x0d8c c0x0000 (---------------)  + I ltd
+-	0x00214843, // n0x0d8d c0x0000 (---------------)  + I net
+-	0x00200443, // n0x0d8e c0x0000 (---------------)  + I ngo
+-	0x0023e983, // n0x0d8f c0x0000 (---------------)  + I org
+-	0x00201d83, // n0x0d90 c0x0000 (---------------)  + I sch
+-	0x002a4d43, // n0x0d91 c0x0000 (---------------)  + I soc
+-	0x00205e43, // n0x0d92 c0x0000 (---------------)  + I web
+-	0x0020d643, // n0x0d93 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0d94 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d95 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0d96 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0d97 c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x0d98 c0x0000 (---------------)  + I co
+-	0x0023e983, // n0x0d99 c0x0000 (---------------)  + I org
+-	0x00218d43, // n0x0d9a c0x0000 (---------------)  + I gov
+-	0x00226343, // n0x0d9b c0x0000 (---------------)  + I asn
+-	0x0020d643, // n0x0d9c c0x0000 (---------------)  + I com
+-	0x00299344, // n0x0d9d c0x0000 (---------------)  + I conf
+-	0x002df843, // n0x0d9e c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0d9f c0x0000 (---------------)  + I gov
+-	0x00202282, // n0x0da0 c0x0000 (---------------)  + I id
+-	0x0022f003, // n0x0da1 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x0da2 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0da3 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x0da4 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0da5 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0da6 c0x0000 (---------------)  + I gov
+-	0x00202282, // n0x0da7 c0x0000 (---------------)  + I id
+-	0x0023dbc3, // n0x0da8 c0x0000 (---------------)  + I med
+-	0x00214843, // n0x0da9 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0daa c0x0000 (---------------)  + I org
+-	0x002cd4c3, // n0x0dab c0x0000 (---------------)  + I plc
+-	0x00201d83, // n0x0dac c0x0000 (---------------)  + I sch
+-	0x00206c42, // n0x0dad c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x0dae c0x0000 (---------------)  + I co
+-	0x00218d43, // n0x0daf c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0db0 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0db1 c0x0000 (---------------)  + I org
+-	0x003460c5, // n0x0db2 c0x0000 (---------------)  + I press
+-	0x002072c4, // n0x0db3 c0x0000 (---------------)  + I asso
+-	0x0023a842, // n0x0db4 c0x0000 (---------------)  + I tm
+-	0x00206c42, // n0x0db5 c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x0db6 c0x0000 (---------------)  + I co
+-	0x002df843, // n0x0db7 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0db8 c0x0000 (---------------)  + I gov
+-	0x00230a03, // n0x0db9 c0x0000 (---------------)  + I its
+-	0x00214843, // n0x0dba c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0dbb c0x0000 (---------------)  + I org
+-	0x002d1204, // n0x0dbc c0x0000 (---------------)  + I priv
+-	0x0020d643, // n0x0dbd c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0dbe c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0dbf c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x0dc0 c0x0000 (---------------)  + I mil
+-	0x00216583, // n0x0dc1 c0x0000 (---------------)  + I nom
+-	0x0023e983, // n0x0dc2 c0x0000 (---------------)  + I org
+-	0x00261ec3, // n0x0dc3 c0x0000 (---------------)  + I prd
+-	0x0023a842, // n0x0dc4 c0x0000 (---------------)  + I tm
+-	0x0020d643, // n0x0dc5 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0dc6 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0dc7 c0x0000 (---------------)  + I gov
+-	0x00210e03, // n0x0dc8 c0x0000 (---------------)  + I inf
+-	0x00202f04, // n0x0dc9 c0x0000 (---------------)  + I name
+-	0x00214843, // n0x0dca c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0dcb c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x0dcc c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0dcd c0x0000 (---------------)  + I edu
+-	0x00257384, // n0x0dce c0x0000 (---------------)  + I gouv
+-	0x00218d43, // n0x0dcf c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0dd0 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0dd1 c0x0000 (---------------)  + I org
+-	0x003460c6, // n0x0dd2 c0x0000 (---------------)  + I presse
+-	0x002df843, // n0x0dd3 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0dd4 c0x0000 (---------------)  + I gov
+-	0x00017943, // n0x0dd5 c0x0000 (---------------)  +   nyc
+-	0x0023e983, // n0x0dd6 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x0dd7 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x0dd8 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x0dd9 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0dda c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x0ddb c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x0ddc c0x0000 (---------------)  +   blogspot
+-	0x00218d43, // n0x0ddd c0x0000 (---------------)  + I gov
+-	0x00206c42, // n0x0dde c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x0ddf c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x0de0 c0x0000 (---------------)  + I com
+-	0x00218d43, // n0x0de1 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x0de2 c0x0000 (---------------)  + I net
+-	0x00200a82, // n0x0de3 c0x0000 (---------------)  + I or
+-	0x0023e983, // n0x0de4 c0x0000 (---------------)  + I org
+-	0x00290507, // n0x0de5 c0x0000 (---------------)  + I academy
+-	0x0020b64b, // n0x0de6 c0x0000 (---------------)  + I agriculture
+-	0x002200c3, // n0x0de7 c0x0000 (---------------)  + I air
+-	0x002200c8, // n0x0de8 c0x0000 (---------------)  + I airguard
+-	0x0022f907, // n0x0de9 c0x0000 (---------------)  + I alabama
+-	0x00207686, // n0x0dea c0x0000 (---------------)  + I alaska
+-	0x002ac185, // n0x0deb c0x0000 (---------------)  + I amber
+-	0x0020b989, // n0x0dec c0x0000 (---------------)  + I ambulance
+-	0x00229b48, // n0x0ded c0x0000 (---------------)  + I american
+-	0x00229b49, // n0x0dee c0x0000 (---------------)  + I americana
+-	0x00319f10, // n0x0def c0x0000 (---------------)  + I americanantiques
+-	0x00229b4b, // n0x0df0 c0x0000 (---------------)  + I americanart
+-	0x002abfc9, // n0x0df1 c0x0000 (---------------)  + I amsterdam
+-	0x00202583, // n0x0df2 c0x0000 (---------------)  + I and
+-	0x0021d0c9, // n0x0df3 c0x0000 (---------------)  + I annefrank
+-	0x00238186, // n0x0df4 c0x0000 (---------------)  + I anthro
+-	0x0023818c, // n0x0df5 c0x0000 (---------------)  + I anthropology
+-	0x00233148, // n0x0df6 c0x0000 (---------------)  + I antiques
+-	0x00271b88, // n0x0df7 c0x0000 (---------------)  + I aquarium
+-	0x00302d89, // n0x0df8 c0x0000 (---------------)  + I arboretum
+-	0x002cebce, // n0x0df9 c0x0000 (---------------)  + I archaeological
+-	0x00329e8b, // n0x0dfa c0x0000 (---------------)  + I archaeology
+-	0x0024454c, // n0x0dfb c0x0000 (---------------)  + I architecture
+-	0x0020e343, // n0x0dfc c0x0000 (---------------)  + I art
+-	0x00229d4c, // n0x0dfd c0x0000 (---------------)  + I artanddesign
+-	0x002af749, // n0x0dfe c0x0000 (---------------)  + I artcenter
+-	0x0020e347, // n0x0dff c0x0000 (---------------)  + I artdeco
+-	0x002ef50c, // n0x0e00 c0x0000 (---------------)  + I arteducation
+-	0x0023a50a, // n0x0e01 c0x0000 (---------------)  + I artgallery
+-	0x00230884, // n0x0e02 c0x0000 (---------------)  + I arts
+-	0x0026b7cd, // n0x0e03 c0x0000 (---------------)  + I artsandcrafts
+-	0x002af608, // n0x0e04 c0x0000 (---------------)  + I asmatart
+-	0x0021e58d, // n0x0e05 c0x0000 (---------------)  + I assassination
+-	0x0020ac86, // n0x0e06 c0x0000 (---------------)  + I assisi
+-	0x002c6b0b, // n0x0e07 c0x0000 (---------------)  + I association
+-	0x002bc609, // n0x0e08 c0x0000 (---------------)  + I astronomy
+-	0x002e73c7, // n0x0e09 c0x0000 (---------------)  + I atlanta
+-	0x002bc1c6, // n0x0e0a c0x0000 (---------------)  + I austin
+-	0x002ae609, // n0x0e0b c0x0000 (---------------)  + I australia
+-	0x002bb8ca, // n0x0e0c c0x0000 (---------------)  + I automotive
+-	0x0022cc48, // n0x0e0d c0x0000 (---------------)  + I aviation
+-	0x00231904, // n0x0e0e c0x0000 (---------------)  + I axis
+-	0x00289447, // n0x0e0f c0x0000 (---------------)  + I badajoz
+-	0x002e0907, // n0x0e10 c0x0000 (---------------)  + I baghdad
+-	0x00299d44, // n0x0e11 c0x0000 (---------------)  + I bahn
+-	0x00236c04, // n0x0e12 c0x0000 (---------------)  + I bale
+-	0x0034c749, // n0x0e13 c0x0000 (---------------)  + I baltimore
+-	0x0030b1c9, // n0x0e14 c0x0000 (---------------)  + I barcelona
+-	0x00293a48, // n0x0e15 c0x0000 (---------------)  + I baseball
+-	0x00336ec5, // n0x0e16 c0x0000 (---------------)  + I basel
+-	0x00212dc5, // n0x0e17 c0x0000 (---------------)  + I baths
+-	0x002793c6, // n0x0e18 c0x0000 (---------------)  + I bauern
+-	0x0026b689, // n0x0e19 c0x0000 (---------------)  + I beauxarts
+-	0x0020474d, // n0x0e1a c0x0000 (---------------)  + I beeldengeluid
+-	0x002a2c48, // n0x0e1b c0x0000 (---------------)  + I bellevue
+-	0x002792c7, // n0x0e1c c0x0000 (---------------)  + I bergbau
+-	0x002ac208, // n0x0e1d c0x0000 (---------------)  + I berkeley
+-	0x0034d706, // n0x0e1e c0x0000 (---------------)  + I berlin
+-	0x00200004, // n0x0e1f c0x0000 (---------------)  + I bern
+-	0x00214605, // n0x0e20 c0x0000 (---------------)  + I bible
+-	0x0020a906, // n0x0e21 c0x0000 (---------------)  + I bilbao
+-	0x0020c504, // n0x0e22 c0x0000 (---------------)  + I bill
+-	0x0020e247, // n0x0e23 c0x0000 (---------------)  + I birdart
+-	0x0020fe4a, // n0x0e24 c0x0000 (---------------)  + I birthplace
+-	0x002133c4, // n0x0e25 c0x0000 (---------------)  + I bonn
+-	0x00215b06, // n0x0e26 c0x0000 (---------------)  + I boston
+-	0x00216189, // n0x0e27 c0x0000 (---------------)  + I botanical
+-	0x0021618f, // n0x0e28 c0x0000 (---------------)  + I botanicalgarden
+-	0x0021708d, // n0x0e29 c0x0000 (---------------)  + I botanicgarden
+-	0x00217846, // n0x0e2a c0x0000 (---------------)  + I botany
+-	0x002192d0, // n0x0e2b c0x0000 (---------------)  + I brandywinevalley
+-	0x00219d46, // n0x0e2c c0x0000 (---------------)  + I brasil
+-	0x0021b307, // n0x0e2d c0x0000 (---------------)  + I bristol
+-	0x0021bcc7, // n0x0e2e c0x0000 (---------------)  + I british
+-	0x0021cb0f, // n0x0e2f c0x0000 (---------------)  + I britishcolumbia
+-	0x0021e149, // n0x0e30 c0x0000 (---------------)  + I broadcast
+-	0x00222606, // n0x0e31 c0x0000 (---------------)  + I brunel
+-	0x002233c7, // n0x0e32 c0x0000 (---------------)  + I brussel
+-	0x002233c8, // n0x0e33 c0x0000 (---------------)  + I brussels
+-	0x00223809, // n0x0e34 c0x0000 (---------------)  + I bruxelles
+-	0x00202688, // n0x0e35 c0x0000 (---------------)  + I building
+-	0x002cbec7, // n0x0e36 c0x0000 (---------------)  + I burghof
+-	0x00233083, // n0x0e37 c0x0000 (---------------)  + I bus
+-	0x0027d1c6, // n0x0e38 c0x0000 (---------------)  + I bushey
+-	0x002fdc88, // n0x0e39 c0x0000 (---------------)  + I cadaques
+-	0x002c118a, // n0x0e3a c0x0000 (---------------)  + I california
+-	0x0023e749, // n0x0e3b c0x0000 (---------------)  + I cambridge
+-	0x00223183, // n0x0e3c c0x0000 (---------------)  + I can
+-	0x0029ed06, // n0x0e3d c0x0000 (---------------)  + I canada
+-	0x00275cca, // n0x0e3e c0x0000 (---------------)  + I capebreton
+-	0x002ec787, // n0x0e3f c0x0000 (---------------)  + I carrier
+-	0x002ef34a, // n0x0e40 c0x0000 (---------------)  + I cartoonart
+-	0x00228f8e, // n0x0e41 c0x0000 (---------------)  + I casadelamoneda
+-	0x0021e286, // n0x0e42 c0x0000 (---------------)  + I castle
+-	0x00345d07, // n0x0e43 c0x0000 (---------------)  + I castres
+-	0x002543c6, // n0x0e44 c0x0000 (---------------)  + I celtic
+-	0x00240c46, // n0x0e45 c0x0000 (---------------)  + I center
+-	0x0023964b, // n0x0e46 c0x0000 (---------------)  + I chattanooga
+-	0x0023f58a, // n0x0e47 c0x0000 (---------------)  + I cheltenham
+-	0x00244bcd, // n0x0e48 c0x0000 (---------------)  + I chesapeakebay
+-	0x00265347, // n0x0e49 c0x0000 (---------------)  + I chicago
+-	0x0021f7c8, // n0x0e4a c0x0000 (---------------)  + I children
+-	0x0021f7c9, // n0x0e4b c0x0000 (---------------)  + I childrens
+-	0x0021f7cf, // n0x0e4c c0x0000 (---------------)  + I childrensgarden
+-	0x00291b4c, // n0x0e4d c0x0000 (---------------)  + I chiropractic
+-	0x002a9dc9, // n0x0e4e c0x0000 (---------------)  + I chocolate
+-	0x0024864e, // n0x0e4f c0x0000 (---------------)  + I christiansburg
+-	0x002c998a, // n0x0e50 c0x0000 (---------------)  + I cincinnati
+-	0x002efbc6, // n0x0e51 c0x0000 (---------------)  + I cinema
+-	0x003357c6, // n0x0e52 c0x0000 (---------------)  + I circus
+-	0x0022d40c, // n0x0e53 c0x0000 (---------------)  + I civilisation
+-	0x0022d9cc, // n0x0e54 c0x0000 (---------------)  + I civilization
+-	0x0022e048, // n0x0e55 c0x0000 (---------------)  + I civilwar
+-	0x0022e887, // n0x0e56 c0x0000 (---------------)  + I clinton
+-	0x002278c5, // n0x0e57 c0x0000 (---------------)  + I clock
+-	0x002658c4, // n0x0e58 c0x0000 (---------------)  + I coal
+-	0x003165ce, // n0x0e59 c0x0000 (---------------)  + I coastaldefence
+-	0x0020e484, // n0x0e5a c0x0000 (---------------)  + I cody
+-	0x002bf947, // n0x0e5b c0x0000 (---------------)  + I coldwar
+-	0x00252e4a, // n0x0e5c c0x0000 (---------------)  + I collection
+-	0x0024c854, // n0x0e5d c0x0000 (---------------)  + I colonialwilliamsburg
+-	0x00214b4f, // n0x0e5e c0x0000 (---------------)  + I coloradoplateau
+-	0x0021ccc8, // n0x0e5f c0x0000 (---------------)  + I columbia
+-	0x00232f48, // n0x0e60 c0x0000 (---------------)  + I columbus
+-	0x00285acd, // n0x0e61 c0x0000 (---------------)  + I communication
+-	0x00285ace, // n0x0e62 c0x0000 (---------------)  + I communications
+-	0x002c57c9, // n0x0e63 c0x0000 (---------------)  + I community
+-	0x00234388, // n0x0e64 c0x0000 (---------------)  + I computer
+-	0x0023438f, // n0x0e65 c0x0000 (---------------)  + I computerhistory
+-	0x0023a20c, // n0x0e66 c0x0000 (---------------)  + I contemporary
+-	0x0023a20f, // n0x0e67 c0x0000 (---------------)  + I contemporaryart
+-	0x0023aac7, // n0x0e68 c0x0000 (---------------)  + I convent
+-	0x0023b5ca, // n0x0e69 c0x0000 (---------------)  + I copenhagen
+-	0x0023c9cb, // n0x0e6a c0x0000 (---------------)  + I corporation
+-	0x0023cc88, // n0x0e6b c0x0000 (---------------)  + I corvette
+-	0x0023da87, // n0x0e6c c0x0000 (---------------)  + I costume
+-	0x0033594d, // n0x0e6d c0x0000 (---------------)  + I countryestate
+-	0x0023dfc6, // n0x0e6e c0x0000 (---------------)  + I county
+-	0x0026b986, // n0x0e6f c0x0000 (---------------)  + I crafts
+-	0x0023eac9, // n0x0e70 c0x0000 (---------------)  + I cranbrook
+-	0x002c1e08, // n0x0e71 c0x0000 (---------------)  + I creation
+-	0x00240a48, // n0x0e72 c0x0000 (---------------)  + I cultural
+-	0x00240a4e, // n0x0e73 c0x0000 (---------------)  + I culturalcenter
+-	0x0020b747, // n0x0e74 c0x0000 (---------------)  + I culture
+-	0x002c7b85, // n0x0e75 c0x0000 (---------------)  + I cyber
+-	0x00241245, // n0x0e76 c0x0000 (---------------)  + I cymru
+-	0x00203944, // n0x0e77 c0x0000 (---------------)  + I dali
+-	0x002624c6, // n0x0e78 c0x0000 (---------------)  + I dallas
+-	0x00293948, // n0x0e79 c0x0000 (---------------)  + I database
+-	0x00283d03, // n0x0e7a c0x0000 (---------------)  + I ddr
+-	0x0023be0e, // n0x0e7b c0x0000 (---------------)  + I decorativearts
+-	0x00335d08, // n0x0e7c c0x0000 (---------------)  + I delaware
+-	0x0026ac8b, // n0x0e7d c0x0000 (---------------)  + I delmenhorst
+-	0x00226507, // n0x0e7e c0x0000 (---------------)  + I denmark
+-	0x0024e445, // n0x0e7f c0x0000 (---------------)  + I depot
+-	0x00229ec6, // n0x0e80 c0x0000 (---------------)  + I design
+-	0x00294107, // n0x0e81 c0x0000 (---------------)  + I detroit
+-	0x002c2fc8, // n0x0e82 c0x0000 (---------------)  + I dinosaur
+-	0x002aeb49, // n0x0e83 c0x0000 (---------------)  + I discovery
+-	0x0021ad05, // n0x0e84 c0x0000 (---------------)  + I dolls
+-	0x00272948, // n0x0e85 c0x0000 (---------------)  + I donostia
+-	0x002ebc86, // n0x0e86 c0x0000 (---------------)  + I durham
+-	0x00275aca, // n0x0e87 c0x0000 (---------------)  + I eastafrica
+-	0x003164c9, // n0x0e88 c0x0000 (---------------)  + I eastcoast
+-	0x002ef5c9, // n0x0e89 c0x0000 (---------------)  + I education
+-	0x002ef5cb, // n0x0e8a c0x0000 (---------------)  + I educational
+-	0x00211b48, // n0x0e8b c0x0000 (---------------)  + I egyptian
+-	0x00299c09, // n0x0e8c c0x0000 (---------------)  + I eisenbahn
+-	0x00336f86, // n0x0e8d c0x0000 (---------------)  + I elburg
+-	0x00259aca, // n0x0e8e c0x0000 (---------------)  + I elvendrell
+-	0x003184ca, // n0x0e8f c0x0000 (---------------)  + I embroidery
+-	0x0031898c, // n0x0e90 c0x0000 (---------------)  + I encyclopedic
+-	0x0020eb07, // n0x0e91 c0x0000 (---------------)  + I england
+-	0x00340c4a, // n0x0e92 c0x0000 (---------------)  + I entomology
+-	0x00283e8b, // n0x0e93 c0x0000 (---------------)  + I environment
+-	0x00283e99, // n0x0e94 c0x0000 (---------------)  + I environmentalconservation
+-	0x00319a08, // n0x0e95 c0x0000 (---------------)  + I epilepsy
+-	0x00346145, // n0x0e96 c0x0000 (---------------)  + I essex
+-	0x002b5d86, // n0x0e97 c0x0000 (---------------)  + I estate
+-	0x0022a809, // n0x0e98 c0x0000 (---------------)  + I ethnology
+-	0x0021bb46, // n0x0e99 c0x0000 (---------------)  + I exeter
+-	0x0033fd8a, // n0x0e9a c0x0000 (---------------)  + I exhibition
+-	0x00309546, // n0x0e9b c0x0000 (---------------)  + I family
+-	0x00201284, // n0x0e9c c0x0000 (---------------)  + I farm
+-	0x0033520d, // n0x0e9d c0x0000 (---------------)  + I farmequipment
+-	0x002bb287, // n0x0e9e c0x0000 (---------------)  + I farmers
+-	0x00201289, // n0x0e9f c0x0000 (---------------)  + I farmstead
+-	0x00241485, // n0x0ea0 c0x0000 (---------------)  + I field
+-	0x002415c8, // n0x0ea1 c0x0000 (---------------)  + I figueres
+-	0x00242449, // n0x0ea2 c0x0000 (---------------)  + I filatelia
+-	0x00242684, // n0x0ea3 c0x0000 (---------------)  + I film
+-	0x00242a87, // n0x0ea4 c0x0000 (---------------)  + I fineart
+-	0x00242a88, // n0x0ea5 c0x0000 (---------------)  + I finearts
+-	0x00243007, // n0x0ea6 c0x0000 (---------------)  + I finland
+-	0x00323d88, // n0x0ea7 c0x0000 (---------------)  + I flanders
+-	0x00246707, // n0x0ea8 c0x0000 (---------------)  + I florida
+-	0x00249645, // n0x0ea9 c0x0000 (---------------)  + I force
+-	0x0024ae8c, // n0x0eaa c0x0000 (---------------)  + I fortmissoula
+-	0x0024b889, // n0x0eab c0x0000 (---------------)  + I fortworth
+-	0x0034254a, // n0x0eac c0x0000 (---------------)  + I foundation
+-	0x00334649, // n0x0ead c0x0000 (---------------)  + I francaise
+-	0x0021d1c9, // n0x0eae c0x0000 (---------------)  + I frankfurt
+-	0x0032364c, // n0x0eaf c0x0000 (---------------)  + I franziskaner
+-	0x00207f8b, // n0x0eb0 c0x0000 (---------------)  + I freemasonry
+-	0x0024ea08, // n0x0eb1 c0x0000 (---------------)  + I freiburg
+-	0x0024fec8, // n0x0eb2 c0x0000 (---------------)  + I fribourg
+-	0x00250584, // n0x0eb3 c0x0000 (---------------)  + I frog
+-	0x00270448, // n0x0eb4 c0x0000 (---------------)  + I fundacio
+-	0x00270cc9, // n0x0eb5 c0x0000 (---------------)  + I furniture
+-	0x0023a5c7, // n0x0eb6 c0x0000 (---------------)  + I gallery
+-	0x002163c6, // n0x0eb7 c0x0000 (---------------)  + I garden
+-	0x00292607, // n0x0eb8 c0x0000 (---------------)  + I gateway
+-	0x002b0ec9, // n0x0eb9 c0x0000 (---------------)  + I geelvinck
+-	0x002c0f8b, // n0x0eba c0x0000 (---------------)  + I gemological
+-	0x00327087, // n0x0ebb c0x0000 (---------------)  + I geology
+-	0x0023e907, // n0x0ebc c0x0000 (---------------)  + I georgia
+-	0x0020e9c7, // n0x0ebd c0x0000 (---------------)  + I giessen
+-	0x0021e504, // n0x0ebe c0x0000 (---------------)  + I glas
+-	0x0021e505, // n0x0ebf c0x0000 (---------------)  + I glass
+-	0x002a7485, // n0x0ec0 c0x0000 (---------------)  + I gorge
+-	0x002fe94b, // n0x0ec1 c0x0000 (---------------)  + I grandrapids
+-	0x00337e04, // n0x0ec2 c0x0000 (---------------)  + I graz
+-	0x00278b88, // n0x0ec3 c0x0000 (---------------)  + I guernsey
+-	0x0027234a, // n0x0ec4 c0x0000 (---------------)  + I halloffame
+-	0x002ebd47, // n0x0ec5 c0x0000 (---------------)  + I hamburg
+-	0x00331c87, // n0x0ec6 c0x0000 (---------------)  + I handson
+-	0x00279ad2, // n0x0ec7 c0x0000 (---------------)  + I harvestcelebration
+-	0x0027c8c6, // n0x0ec8 c0x0000 (---------------)  + I hawaii
+-	0x00246b06, // n0x0ec9 c0x0000 (---------------)  + I health
+-	0x0022534e, // n0x0eca c0x0000 (---------------)  + I heimatunduhren
+-	0x002d46c6, // n0x0ecb c0x0000 (---------------)  + I hellas
+-	0x00347c08, // n0x0ecc c0x0000 (---------------)  + I helsinki
+-	0x002f354f, // n0x0ecd c0x0000 (---------------)  + I hembygdsforbund
+-	0x00318308, // n0x0ece c0x0000 (---------------)  + I heritage
+-	0x00275508, // n0x0ecf c0x0000 (---------------)  + I histoire
+-	0x002bde4a, // n0x0ed0 c0x0000 (---------------)  + I historical
+-	0x002bde51, // n0x0ed1 c0x0000 (---------------)  + I historicalsociety
+-	0x0028c8ce, // n0x0ed2 c0x0000 (---------------)  + I historichouses
+-	0x00201bca, // n0x0ed3 c0x0000 (---------------)  + I historisch
+-	0x00201bcc, // n0x0ed4 c0x0000 (---------------)  + I historisches
+-	0x00234587, // n0x0ed5 c0x0000 (---------------)  + I history
+-	0x00234590, // n0x0ed6 c0x0000 (---------------)  + I historyofscience
+-	0x00209888, // n0x0ed7 c0x0000 (---------------)  + I horology
+-	0x0028cac5, // n0x0ed8 c0x0000 (---------------)  + I house
+-	0x00294e0a, // n0x0ed9 c0x0000 (---------------)  + I humanities
+-	0x0020c54c, // n0x0eda c0x0000 (---------------)  + I illustration
+-	0x002dfc0d, // n0x0edb c0x0000 (---------------)  + I imageandsound
+-	0x002051c6, // n0x0edc c0x0000 (---------------)  + I indian
+-	0x002051c7, // n0x0edd c0x0000 (---------------)  + I indiana
+-	0x002051cc, // n0x0ede c0x0000 (---------------)  + I indianapolis
+-	0x0020c0cc, // n0x0edf c0x0000 (---------------)  + I indianmarket
+-	0x0021754c, // n0x0ee0 c0x0000 (---------------)  + I intelligence
+-	0x002b52cb, // n0x0ee1 c0x0000 (---------------)  + I interactive
+-	0x00271b04, // n0x0ee2 c0x0000 (---------------)  + I iraq
+-	0x00283f44, // n0x0ee3 c0x0000 (---------------)  + I iron
+-	0x00330a49, // n0x0ee4 c0x0000 (---------------)  + I isleofman
+-	0x00301d47, // n0x0ee5 c0x0000 (---------------)  + I jamison
+-	0x00253889, // n0x0ee6 c0x0000 (---------------)  + I jefferson
+-	0x002e81c9, // n0x0ee7 c0x0000 (---------------)  + I jerusalem
+-	0x0031acc7, // n0x0ee8 c0x0000 (---------------)  + I jewelry
+-	0x00348d06, // n0x0ee9 c0x0000 (---------------)  + I jewish
+-	0x00348d09, // n0x0eea c0x0000 (---------------)  + I jewishart
+-	0x00297783, // n0x0eeb c0x0000 (---------------)  + I jfk
+-	0x0021680a, // n0x0eec c0x0000 (---------------)  + I journalism
+-	0x00230047, // n0x0eed c0x0000 (---------------)  + I judaica
+-	0x00207b4b, // n0x0eee c0x0000 (---------------)  + I judygarland
+-	0x00244a4a, // n0x0eef c0x0000 (---------------)  + I juedisches
+-	0x0030a744, // n0x0ef0 c0x0000 (---------------)  + I juif
+-	0x00315cc6, // n0x0ef1 c0x0000 (---------------)  + I karate
+-	0x0029d9c9, // n0x0ef2 c0x0000 (---------------)  + I karikatur
+-	0x00211f84, // n0x0ef3 c0x0000 (---------------)  + I kids
+-	0x0021354a, // n0x0ef4 c0x0000 (---------------)  + I koebenhavn
+-	0x00295705, // n0x0ef5 c0x0000 (---------------)  + I koeln
+-	0x002a63c5, // n0x0ef6 c0x0000 (---------------)  + I kunst
+-	0x002a63cd, // n0x0ef7 c0x0000 (---------------)  + I kunstsammlung
+-	0x002a670e, // n0x0ef8 c0x0000 (---------------)  + I kunstunddesign
+-	0x002f7845, // n0x0ef9 c0x0000 (---------------)  + I labor
+-	0x00339b86, // n0x0efa c0x0000 (---------------)  + I labour
+-	0x00250187, // n0x0efb c0x0000 (---------------)  + I lajolla
+-	0x002782ca, // n0x0efc c0x0000 (---------------)  + I lancashire
+-	0x0021ec86, // n0x0efd c0x0000 (---------------)  + I landes
+-	0x002f4704, // n0x0efe c0x0000 (---------------)  + I lans
+-	0x002e2887, // n0x0eff c0x0000 (---------------)  + I larsson
+-	0x0022eecb, // n0x0f00 c0x0000 (---------------)  + I lewismiller
+-	0x0034d7c7, // n0x0f01 c0x0000 (---------------)  + I lincoln
+-	0x0033f284, // n0x0f02 c0x0000 (---------------)  + I linz
+-	0x0032f006, // n0x0f03 c0x0000 (---------------)  + I living
+-	0x0032f00d, // n0x0f04 c0x0000 (---------------)  + I livinghistory
+-	0x0025250c, // n0x0f05 c0x0000 (---------------)  + I localhistory
+-	0x002b4d86, // n0x0f06 c0x0000 (---------------)  + I london
+-	0x0020a08a, // n0x0f07 c0x0000 (---------------)  + I losangeles
+-	0x00212ac6, // n0x0f08 c0x0000 (---------------)  + I louvre
+-	0x0033f888, // n0x0f09 c0x0000 (---------------)  + I loyalist
+-	0x0028a847, // n0x0f0a c0x0000 (---------------)  + I lucerne
+-	0x002387ca, // n0x0f0b c0x0000 (---------------)  + I luxembourg
+-	0x0023c2c6, // n0x0f0c c0x0000 (---------------)  + I luzern
+-	0x002628c3, // n0x0f0d c0x0000 (---------------)  + I mad
+-	0x002628c6, // n0x0f0e c0x0000 (---------------)  + I madrid
+-	0x002fdb08, // n0x0f0f c0x0000 (---------------)  + I mallorca
+-	0x002829ca, // n0x0f10 c0x0000 (---------------)  + I manchester
+-	0x00269bc7, // n0x0f11 c0x0000 (---------------)  + I mansion
+-	0x00269bc8, // n0x0f12 c0x0000 (---------------)  + I mansions
+-	0x00202d04, // n0x0f13 c0x0000 (---------------)  + I manx
+-	0x00239447, // n0x0f14 c0x0000 (---------------)  + I marburg
+-	0x0024f5c8, // n0x0f15 c0x0000 (---------------)  + I maritime
+-	0x00249308, // n0x0f16 c0x0000 (---------------)  + I maritimo
+-	0x00280908, // n0x0f17 c0x0000 (---------------)  + I maryland
+-	0x0028ad8a, // n0x0f18 c0x0000 (---------------)  + I marylhurst
+-	0x0023dbc5, // n0x0f19 c0x0000 (---------------)  + I media
+-	0x00247ac7, // n0x0f1a c0x0000 (---------------)  + I medical
+-	0x0027ff13, // n0x0f1b c0x0000 (---------------)  + I medizinhistorisches
+-	0x002d6086, // n0x0f1c c0x0000 (---------------)  + I meeres
+-	0x00346d08, // n0x0f1d c0x0000 (---------------)  + I memorial
+-	0x002dcec9, // n0x0f1e c0x0000 (---------------)  + I mesaverde
+-	0x00238bc8, // n0x0f1f c0x0000 (---------------)  + I michigan
+-	0x00284e4b, // n0x0f20 c0x0000 (---------------)  + I midatlantic
+-	0x002bd508, // n0x0f21 c0x0000 (---------------)  + I military
+-	0x0022f004, // n0x0f22 c0x0000 (---------------)  + I mill
+-	0x002f2546, // n0x0f23 c0x0000 (---------------)  + I miners
+-	0x002d7a06, // n0x0f24 c0x0000 (---------------)  + I mining
+-	0x002cb689, // n0x0f25 c0x0000 (---------------)  + I minnesota
+-	0x002b1f47, // n0x0f26 c0x0000 (---------------)  + I missile
+-	0x0024af88, // n0x0f27 c0x0000 (---------------)  + I missoula
+-	0x0028c746, // n0x0f28 c0x0000 (---------------)  + I modern
+-	0x00285604, // n0x0f29 c0x0000 (---------------)  + I moma
+-	0x002b3fc5, // n0x0f2a c0x0000 (---------------)  + I money
+-	0x002b4248, // n0x0f2b c0x0000 (---------------)  + I monmouth
+-	0x002b4b8a, // n0x0f2c c0x0000 (---------------)  + I monticello
+-	0x002b5b88, // n0x0f2d c0x0000 (---------------)  + I montreal
+-	0x002b99c6, // n0x0f2e c0x0000 (---------------)  + I moscow
+-	0x002830ca, // n0x0f2f c0x0000 (---------------)  + I motorcycle
+-	0x00278f08, // n0x0f30 c0x0000 (---------------)  + I muenchen
+-	0x002bd8c8, // n0x0f31 c0x0000 (---------------)  + I muenster
+-	0x002c1408, // n0x0f32 c0x0000 (---------------)  + I mulhouse
+-	0x002c2286, // n0x0f33 c0x0000 (---------------)  + I muncie
+-	0x002c4606, // n0x0f34 c0x0000 (---------------)  + I museet
+-	0x0034034c, // n0x0f35 c0x0000 (---------------)  + I museumcenter
+-	0x002c4950, // n0x0f36 c0x0000 (---------------)  + I museumvereniging
+-	0x002b5985, // n0x0f37 c0x0000 (---------------)  + I music
+-	0x0021e748, // n0x0f38 c0x0000 (---------------)  + I national
+-	0x002c9b10, // n0x0f39 c0x0000 (---------------)  + I nationalfirearms
+-	0x00318110, // n0x0f3a c0x0000 (---------------)  + I nationalheritage
+-	0x00319d8e, // n0x0f3b c0x0000 (---------------)  + I nativeamerican
+-	0x0033ffce, // n0x0f3c c0x0000 (---------------)  + I naturalhistory
+-	0x0033ffd4, // n0x0f3d c0x0000 (---------------)  + I naturalhistorymuseum
+-	0x0034d94f, // n0x0f3e c0x0000 (---------------)  + I naturalsciences
+-	0x0034dd06, // n0x0f3f c0x0000 (---------------)  + I nature
+-	0x00201a91, // n0x0f40 c0x0000 (---------------)  + I naturhistorisches
+-	0x00208e53, // n0x0f41 c0x0000 (---------------)  + I natuurwetenschappen
+-	0x002092c8, // n0x0f42 c0x0000 (---------------)  + I naumburg
+-	0x0020be45, // n0x0f43 c0x0000 (---------------)  + I naval
+-	0x002fb108, // n0x0f44 c0x0000 (---------------)  + I nebraska
+-	0x002b1745, // n0x0f45 c0x0000 (---------------)  + I neues
+-	0x00308b4c, // n0x0f46 c0x0000 (---------------)  + I newhampshire
+-	0x00224309, // n0x0f47 c0x0000 (---------------)  + I newjersey
+-	0x002bf789, // n0x0f48 c0x0000 (---------------)  + I newmexico
+-	0x00292387, // n0x0f49 c0x0000 (---------------)  + I newport
+-	0x00307609, // n0x0f4a c0x0000 (---------------)  + I newspaper
+-	0x0023d487, // n0x0f4b c0x0000 (---------------)  + I newyork
+-	0x002dc946, // n0x0f4c c0x0000 (---------------)  + I niepce
+-	0x00214407, // n0x0f4d c0x0000 (---------------)  + I norfolk
+-	0x00206105, // n0x0f4e c0x0000 (---------------)  + I north
+-	0x0023c403, // n0x0f4f c0x0000 (---------------)  + I nrw
+-	0x00203649, // n0x0f50 c0x0000 (---------------)  + I nuernberg
+-	0x00279509, // n0x0f51 c0x0000 (---------------)  + I nuremberg
+-	0x00217943, // n0x0f52 c0x0000 (---------------)  + I nyc
+-	0x002cd884, // n0x0f53 c0x0000 (---------------)  + I nyny
+-	0x002004cd, // n0x0f54 c0x0000 (---------------)  + I oceanographic
+-	0x00200bcf, // n0x0f55 c0x0000 (---------------)  + I oceanographique
+-	0x0029bdc5, // n0x0f56 c0x0000 (---------------)  + I omaha
+-	0x002fb006, // n0x0f57 c0x0000 (---------------)  + I online
+-	0x0022f387, // n0x0f58 c0x0000 (---------------)  + I ontario
+-	0x0023f9c7, // n0x0f59 c0x0000 (---------------)  + I openair
+-	0x0031f946, // n0x0f5a c0x0000 (---------------)  + I oregon
+-	0x0031f94b, // n0x0f5b c0x0000 (---------------)  + I oregontrail
+-	0x0028e2c5, // n0x0f5c c0x0000 (---------------)  + I otago
+-	0x00203406, // n0x0f5d c0x0000 (---------------)  + I oxford
+-	0x00261307, // n0x0f5e c0x0000 (---------------)  + I pacific
+-	0x00286109, // n0x0f5f c0x0000 (---------------)  + I paderborn
+-	0x0033e806, // n0x0f60 c0x0000 (---------------)  + I palace
+-	0x00211285, // n0x0f61 c0x0000 (---------------)  + I paleo
+-	0x0030e04b, // n0x0f62 c0x0000 (---------------)  + I palmsprings
+-	0x0023a946, // n0x0f63 c0x0000 (---------------)  + I panama
+-	0x00309c05, // n0x0f64 c0x0000 (---------------)  + I paris
+-	0x002c6008, // n0x0f65 c0x0000 (---------------)  + I pasadena
+-	0x002c7a08, // n0x0f66 c0x0000 (---------------)  + I pharmacy
+-	0x002c830c, // n0x0f67 c0x0000 (---------------)  + I philadelphia
+-	0x002c8310, // n0x0f68 c0x0000 (---------------)  + I philadelphiaarea
+-	0x002c89c9, // n0x0f69 c0x0000 (---------------)  + I philately
+-	0x002c8c07, // n0x0f6a c0x0000 (---------------)  + I phoenix
+-	0x002ca1cb, // n0x0f6b c0x0000 (---------------)  + I photography
+-	0x002caf86, // n0x0f6c c0x0000 (---------------)  + I pilots
+-	0x002cbd8a, // n0x0f6d c0x0000 (---------------)  + I pittsburgh
+-	0x002cc48b, // n0x0f6e c0x0000 (---------------)  + I planetarium
+-	0x002ccc8a, // n0x0f6f c0x0000 (---------------)  + I plantation
+-	0x002ccf06, // n0x0f70 c0x0000 (---------------)  + I plants
+-	0x002cd385, // n0x0f71 c0x0000 (---------------)  + I plaza
+-	0x0022f806, // n0x0f72 c0x0000 (---------------)  + I portal
+-	0x002a7b88, // n0x0f73 c0x0000 (---------------)  + I portland
+-	0x0029244a, // n0x0f74 c0x0000 (---------------)  + I portlligat
+-	0x0028575c, // n0x0f75 c0x0000 (---------------)  + I posts-and-telecommunications
+-	0x002cfe8c, // n0x0f76 c0x0000 (---------------)  + I preservation
+-	0x002d0188, // n0x0f77 c0x0000 (---------------)  + I presidio
+-	0x003460c5, // n0x0f78 c0x0000 (---------------)  + I press
+-	0x002d1b07, // n0x0f79 c0x0000 (---------------)  + I project
+-	0x0029ebc6, // n0x0f7a c0x0000 (---------------)  + I public
+-	0x00345a05, // n0x0f7b c0x0000 (---------------)  + I pubol
+-	0x00200ec6, // n0x0f7c c0x0000 (---------------)  + I quebec
+-	0x0031fb08, // n0x0f7d c0x0000 (---------------)  + I railroad
+-	0x00297187, // n0x0f7e c0x0000 (---------------)  + I railway
+-	0x002ceac8, // n0x0f7f c0x0000 (---------------)  + I research
+-	0x00345e0a, // n0x0f80 c0x0000 (---------------)  + I resistance
+-	0x00331e8c, // n0x0f81 c0x0000 (---------------)  + I riodejaneiro
+-	0x0032b449, // n0x0f82 c0x0000 (---------------)  + I rochester
+-	0x00240187, // n0x0f83 c0x0000 (---------------)  + I rockart
+-	0x0029bd84, // n0x0f84 c0x0000 (---------------)  + I roma
+-	0x00241306, // n0x0f85 c0x0000 (---------------)  + I russia
+-	0x0027508a, // n0x0f86 c0x0000 (---------------)  + I saintlouis
+-	0x002e82c5, // n0x0f87 c0x0000 (---------------)  + I salem
+-	0x0024178c, // n0x0f88 c0x0000 (---------------)  + I salvadordali
+-	0x00242c48, // n0x0f89 c0x0000 (---------------)  + I salzburg
+-	0x002f8d88, // n0x0f8a c0x0000 (---------------)  + I sandiego
+-	0x0024c5cc, // n0x0f8b c0x0000 (---------------)  + I sanfrancisco
+-	0x00263d4c, // n0x0f8c c0x0000 (---------------)  + I santabarbara
+-	0x00269d89, // n0x0f8d c0x0000 (---------------)  + I santacruz
+-	0x0026bac7, // n0x0f8e c0x0000 (---------------)  + I santafe
+-	0x002c9ecc, // n0x0f8f c0x0000 (---------------)  + I saskatchewan
+-	0x002d7304, // n0x0f90 c0x0000 (---------------)  + I satx
+-	0x002980ca, // n0x0f91 c0x0000 (---------------)  + I savannahga
+-	0x0026380c, // n0x0f92 c0x0000 (---------------)  + I schlesisches
+-	0x0027a4cb, // n0x0f93 c0x0000 (---------------)  + I schoenbrunn
+-	0x002ba20b, // n0x0f94 c0x0000 (---------------)  + I schokoladen
+-	0x002baa06, // n0x0f95 c0x0000 (---------------)  + I school
+-	0x002c3f87, // n0x0f96 c0x0000 (---------------)  + I schweiz
+-	0x002089c7, // n0x0f97 c0x0000 (---------------)  + I science
+-	0x002347cf, // n0x0f98 c0x0000 (---------------)  + I science-fiction
+-	0x002eced1, // n0x0f99 c0x0000 (---------------)  + I scienceandhistory
+-	0x002089d2, // n0x0f9a c0x0000 (---------------)  + I scienceandindustry
+-	0x002c734d, // n0x0f9b c0x0000 (---------------)  + I sciencecenter
+-	0x002c734e, // n0x0f9c c0x0000 (---------------)  + I sciencecenters
+-	0x002c768e, // n0x0f9d c0x0000 (---------------)  + I sciencehistory
+-	0x0034db08, // n0x0f9e c0x0000 (---------------)  + I sciences
+-	0x0034db12, // n0x0f9f c0x0000 (---------------)  + I sciencesnaturelles
+-	0x0021eb88, // n0x0fa0 c0x0000 (---------------)  + I scotland
+-	0x002f2fc7, // n0x0fa1 c0x0000 (---------------)  + I seaport
+-	0x00254e8a, // n0x0fa2 c0x0000 (---------------)  + I settlement
+-	0x0020da48, // n0x0fa3 c0x0000 (---------------)  + I settlers
+-	0x002d4685, // n0x0fa4 c0x0000 (---------------)  + I shell
+-	0x002d4e0a, // n0x0fa5 c0x0000 (---------------)  + I sherbrooke
+-	0x0020ad87, // n0x0fa6 c0x0000 (---------------)  + I sibenik
+-	0x0031edc4, // n0x0fa7 c0x0000 (---------------)  + I silk
+-	0x00202203, // n0x0fa8 c0x0000 (---------------)  + I ski
+-	0x0023e545, // n0x0fa9 c0x0000 (---------------)  + I skole
+-	0x002be0c7, // n0x0faa c0x0000 (---------------)  + I society
+-	0x002d1d87, // n0x0fab c0x0000 (---------------)  + I sologne
+-	0x002dfe0e, // n0x0fac c0x0000 (---------------)  + I soundandvision
+-	0x002e444d, // n0x0fad c0x0000 (---------------)  + I southcarolina
+-	0x002e4a89, // n0x0fae c0x0000 (---------------)  + I southwest
+-	0x002e5285, // n0x0faf c0x0000 (---------------)  + I space
+-	0x002e6d03, // n0x0fb0 c0x0000 (---------------)  + I spy
+-	0x002e6f46, // n0x0fb1 c0x0000 (---------------)  + I square
+-	0x00255a45, // n0x0fb2 c0x0000 (---------------)  + I stadt
+-	0x00228a48, // n0x0fb3 c0x0000 (---------------)  + I stalbans
+-	0x002d4bc9, // n0x0fb4 c0x0000 (---------------)  + I starnberg
+-	0x002b5dc5, // n0x0fb5 c0x0000 (---------------)  + I state
+-	0x00335b4f, // n0x0fb6 c0x0000 (---------------)  + I stateofdelaware
+-	0x002a4f07, // n0x0fb7 c0x0000 (---------------)  + I station
+-	0x002c1845, // n0x0fb8 c0x0000 (---------------)  + I steam
+-	0x00290d4a, // n0x0fb9 c0x0000 (---------------)  + I steiermark
+-	0x002e8e46, // n0x0fba c0x0000 (---------------)  + I stjohn
+-	0x002e9389, // n0x0fbb c0x0000 (---------------)  + I stockholm
+-	0x002ea0cc, // n0x0fbc c0x0000 (---------------)  + I stpetersburg
+-	0x002ea849, // n0x0fbd c0x0000 (---------------)  + I stuttgart
+-	0x0025d106, // n0x0fbe c0x0000 (---------------)  + I suisse
+-	0x0027214c, // n0x0fbf c0x0000 (---------------)  + I surgeonshall
+-	0x00300006, // n0x0fc0 c0x0000 (---------------)  + I surrey
+-	0x002ec408, // n0x0fc1 c0x0000 (---------------)  + I svizzera
+-	0x0026c7c6, // n0x0fc2 c0x0000 (---------------)  + I sweden
+-	0x0025cf46, // n0x0fc3 c0x0000 (---------------)  + I sydney
+-	0x00324084, // n0x0fc4 c0x0000 (---------------)  + I tank
+-	0x00230fc3, // n0x0fc5 c0x0000 (---------------)  + I tcm
+-	0x002e8bca, // n0x0fc6 c0x0000 (---------------)  + I technology
+-	0x002d0dd1, // n0x0fc7 c0x0000 (---------------)  + I telekommunikation
+-	0x0023b10a, // n0x0fc8 c0x0000 (---------------)  + I television
+-	0x0023ce05, // n0x0fc9 c0x0000 (---------------)  + I texas
+-	0x0023f147, // n0x0fca c0x0000 (---------------)  + I textile
+-	0x00229487, // n0x0fcb c0x0000 (---------------)  + I theater
+-	0x0024f6c4, // n0x0fcc c0x0000 (---------------)  + I time
+-	0x0024f6cb, // n0x0fcd c0x0000 (---------------)  + I timekeeping
+-	0x002f9f08, // n0x0fce c0x0000 (---------------)  + I topology
+-	0x002a3ac6, // n0x0fcf c0x0000 (---------------)  + I torino
+-	0x0024e1c5, // n0x0fd0 c0x0000 (---------------)  + I touch
+-	0x0023c8c4, // n0x0fd1 c0x0000 (---------------)  + I town
+-	0x002d4209, // n0x0fd2 c0x0000 (---------------)  + I transport
+-	0x0031c184, // n0x0fd3 c0x0000 (---------------)  + I tree
+-	0x002686c7, // n0x0fd4 c0x0000 (---------------)  + I trolley
+-	0x002d3745, // n0x0fd5 c0x0000 (---------------)  + I trust
+-	0x002d3747, // n0x0fd6 c0x0000 (---------------)  + I trustee
+-	0x00225585, // n0x0fd7 c0x0000 (---------------)  + I uhren
+-	0x00203f83, // n0x0fd8 c0x0000 (---------------)  + I ulm
+-	0x002f2e88, // n0x0fd9 c0x0000 (---------------)  + I undersea
+-	0x00209b8a, // n0x0fda c0x0000 (---------------)  + I university
+-	0x002159c3, // n0x0fdb c0x0000 (---------------)  + I usa
+-	0x002330ca, // n0x0fdc c0x0000 (---------------)  + I usantiques
+-	0x00230806, // n0x0fdd c0x0000 (---------------)  + I usarts
+-	0x003358cf, // n0x0fde c0x0000 (---------------)  + I uscountryestate
+-	0x00314f49, // n0x0fdf c0x0000 (---------------)  + I usculture
+-	0x0023bd90, // n0x0fe0 c0x0000 (---------------)  + I usdecorativearts
+-	0x002d67c8, // n0x0fe1 c0x0000 (---------------)  + I usgarden
+-	0x002b9c49, // n0x0fe2 c0x0000 (---------------)  + I ushistory
+-	0x0027ea07, // n0x0fe3 c0x0000 (---------------)  + I ushuaia
+-	0x0032ef8f, // n0x0fe4 c0x0000 (---------------)  + I uslivinghistory
+-	0x0022c944, // n0x0fe5 c0x0000 (---------------)  + I utah
+-	0x00257404, // n0x0fe6 c0x0000 (---------------)  + I uvic
+-	0x00219546, // n0x0fe7 c0x0000 (---------------)  + I valley
+-	0x002a24c6, // n0x0fe8 c0x0000 (---------------)  + I vantaa
+-	0x002eb68a, // n0x0fe9 c0x0000 (---------------)  + I versailles
+-	0x002e7246, // n0x0fea c0x0000 (---------------)  + I viking
+-	0x00307d07, // n0x0feb c0x0000 (---------------)  + I village
+-	0x002f0748, // n0x0fec c0x0000 (---------------)  + I virginia
+-	0x002f0947, // n0x0fed c0x0000 (---------------)  + I virtual
+-	0x002f0b07, // n0x0fee c0x0000 (---------------)  + I virtuel
+-	0x002f6e8a, // n0x0fef c0x0000 (---------------)  + I vlaanderen
+-	0x002f2ccb, // n0x0ff0 c0x0000 (---------------)  + I volkenkunde
+-	0x00205885, // n0x0ff1 c0x0000 (---------------)  + I wales
+-	0x00208608, // n0x0ff2 c0x0000 (---------------)  + I wallonie
+-	0x00203c43, // n0x0ff3 c0x0000 (---------------)  + I war
+-	0x002bfbcc, // n0x0ff4 c0x0000 (---------------)  + I washingtondc
+-	0x002efecf, // n0x0ff5 c0x0000 (---------------)  + I watch-and-clock
+-	0x002276cd, // n0x0ff6 c0x0000 (---------------)  + I watchandclock
+-	0x002e4bc7, // n0x0ff7 c0x0000 (---------------)  + I western
+-	0x002311c9, // n0x0ff8 c0x0000 (---------------)  + I westfalen
+-	0x0022bb47, // n0x0ff9 c0x0000 (---------------)  + I whaling
+-	0x0022be08, // n0x0ffa c0x0000 (---------------)  + I wildlife
+-	0x0024ca4c, // n0x0ffb c0x0000 (---------------)  + I williamsburg
+-	0x0028a688, // n0x0ffc c0x0000 (---------------)  + I windmill
+-	0x00303fc8, // n0x0ffd c0x0000 (---------------)  + I workshop
+-	0x002d73ce, // n0x0ffe c0x0000 (---------------)  + I xn--9dbhblg6di
+-	0x002fc594, // n0x0fff c0x0000 (---------------)  + I xn--comunicaes-v6a2o
+-	0x002fcaa4, // n0x1000 c0x0000 (---------------)  + I xn--correios-e-telecomunicaes-ghc29a
+-	0x003097ca, // n0x1001 c0x0000 (---------------)  + I xn--h1aegh
+-	0x0031c28b, // n0x1002 c0x0000 (---------------)  + I xn--lns-qla
+-	0x0023d544, // n0x1003 c0x0000 (---------------)  + I york
+-	0x0023d549, // n0x1004 c0x0000 (---------------)  + I yorkshire
+-	0x002dd448, // n0x1005 c0x0000 (---------------)  + I yosemite
+-	0x00296585, // n0x1006 c0x0000 (---------------)  + I youth
+-	0x00335f4a, // n0x1007 c0x0000 (---------------)  + I zoological
+-	0x00234e87, // n0x1008 c0x0000 (---------------)  + I zoology
+-	0x00228d84, // n0x1009 c0x0000 (---------------)  + I aero
+-	0x0030c243, // n0x100a c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x100b c0x0000 (---------------)  + I com
+-	0x0023ae84, // n0x100c c0x0000 (---------------)  + I coop
+-	0x002df843, // n0x100d c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x100e c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x100f c0x0000 (---------------)  + I info
+-	0x00217543, // n0x1010 c0x0000 (---------------)  + I int
+-	0x0022f003, // n0x1011 c0x0000 (---------------)  + I mil
+-	0x002c4946, // n0x1012 c0x0000 (---------------)  + I museum
+-	0x00202f04, // n0x1013 c0x0000 (---------------)  + I name
+-	0x00214843, // n0x1014 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1015 c0x0000 (---------------)  + I org
+-	0x002d1383, // n0x1016 c0x0000 (---------------)  + I pro
+-	0x00206c42, // n0x1017 c0x0000 (---------------)  + I ac
+-	0x0030c243, // n0x1018 c0x0000 (---------------)  + I biz
+-	0x0020d642, // n0x1019 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x101a c0x0000 (---------------)  + I com
+-	0x0023ae84, // n0x101b c0x0000 (---------------)  + I coop
+-	0x002df843, // n0x101c c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x101d c0x0000 (---------------)  + I gov
+-	0x00217543, // n0x101e c0x0000 (---------------)  + I int
+-	0x002c4946, // n0x101f c0x0000 (---------------)  + I museum
+-	0x00214843, // n0x1020 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1021 c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x1022 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x1023 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1024 c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x1025 c0x0000 (---------------)  + I gob
+-	0x00214843, // n0x1026 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1027 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x1028 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1029 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x102a c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x102b c0x0000 (---------------)  + I mil
+-	0x00202f04, // n0x102c c0x0000 (---------------)  + I name
+-	0x00214843, // n0x102d c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x102e c0x0000 (---------------)  + I org
+-	0x00693848, // n0x102f c0x0001 (---------------)  ! I teledata
+-	0x00201002, // n0x1030 c0x0000 (---------------)  + I ca
+-	0x00206842, // n0x1031 c0x0000 (---------------)  + I cc
+-	0x0020d642, // n0x1032 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x1033 c0x0000 (---------------)  + I com
+-	0x00201482, // n0x1034 c0x0000 (---------------)  + I dr
+-	0x002027c2, // n0x1035 c0x0000 (---------------)  + I in
+-	0x00210e04, // n0x1036 c0x0000 (---------------)  + I info
+-	0x00303304, // n0x1037 c0x0000 (---------------)  + I mobi
+-	0x00329482, // n0x1038 c0x0000 (---------------)  + I mx
+-	0x00202f04, // n0x1039 c0x0000 (---------------)  + I name
+-	0x00200a82, // n0x103a c0x0000 (---------------)  + I or
+-	0x0023e983, // n0x103b c0x0000 (---------------)  + I org
+-	0x002d1383, // n0x103c c0x0000 (---------------)  + I pro
+-	0x002baa06, // n0x103d c0x0000 (---------------)  + I school
+-	0x00281802, // n0x103e c0x0000 (---------------)  + I tv
+-	0x00201f42, // n0x103f c0x0000 (---------------)  + I us
+-	0x0021ba82, // n0x1040 c0x0000 (---------------)  + I ws
+-	0x31646d03, // n0x1041 c0x00c5 (n0x1043-n0x1044)  o I her
+-	0x31a00803, // n0x1042 c0x00c6 (n0x1044-n0x1045)  o I his
+-	0x00049786, // n0x1043 c0x0000 (---------------)  +   forgot
+-	0x00049786, // n0x1044 c0x0000 (---------------)  +   forgot
+-	0x002072c4, // n0x1045 c0x0000 (---------------)  + I asso
+-	0x00006f4c, // n0x1046 c0x0000 (---------------)  +   at-band-camp
+-	0x00005c07, // n0x1047 c0x0000 (---------------)  +   blogdns
+-	0x0001f2c8, // n0x1048 c0x0000 (---------------)  +   broke-it
+-	0x00097e8a, // n0x1049 c0x0000 (---------------)  +   buyshouses
+-	0x0002f1ca, // n0x104a c0x0000 (---------------)  +   cloudfront
+-	0x000357c8, // n0x104b c0x0000 (---------------)  +   dnsalias
+-	0x00062ac7, // n0x104c c0x0000 (---------------)  +   dnsdojo
+-	0x00015687, // n0x104d c0x0000 (---------------)  +   does-it
+-	0x00106f09, // n0x104e c0x0000 (---------------)  +   dontexist
+-	0x0000e508, // n0x104f c0x0000 (---------------)  +   dynalias
+-	0x0004a489, // n0x1050 c0x0000 (---------------)  +   dynathome
+-	0x00092c4d, // n0x1051 c0x0000 (---------------)  +   endofinternet
+-	0x00051e47, // n0x1052 c0x0000 (---------------)  +   from-az
+-	0x00052d07, // n0x1053 c0x0000 (---------------)  +   from-co
+-	0x00058b47, // n0x1054 c0x0000 (---------------)  +   from-la
+-	0x00060447, // n0x1055 c0x0000 (---------------)  +   from-ny
+-	0x00079382, // n0x1056 c0x0000 (---------------)  +   gb
+-	0x00146387, // n0x1057 c0x0000 (---------------)  +   gets-it
+-	0x0003f74c, // n0x1058 c0x0000 (---------------)  +   ham-radio-op
+-	0x0000ee47, // n0x1059 c0x0000 (---------------)  +   homeftp
+-	0x0012b286, // n0x105a c0x0000 (---------------)  +   homeip
+-	0x0008fcc9, // n0x105b c0x0000 (---------------)  +   homelinux
+-	0x00090148, // n0x105c c0x0000 (---------------)  +   homeunix
+-	0x0002b002, // n0x105d c0x0000 (---------------)  +   hu
+-	0x001071cb, // n0x105e c0x0000 (---------------)  +   in-the-band
+-	0x00054949, // n0x105f c0x0000 (---------------)  +   is-a-chef
+-	0x0005c709, // n0x1060 c0x0000 (---------------)  +   is-a-geek
+-	0x0008e588, // n0x1061 c0x0000 (---------------)  +   isa-geek
+-	0x00097b42, // n0x1062 c0x0000 (---------------)  +   jp
+-	0x00026bc9, // n0x1063 c0x0000 (---------------)  +   kicks-ass
+-	0x00013e4d, // n0x1064 c0x0000 (---------------)  +   office-on-the
+-	0x000ce747, // n0x1065 c0x0000 (---------------)  +   podzone
+-	0x000cd04d, // n0x1066 c0x0000 (---------------)  +   scrapper-site
+-	0x0000da42, // n0x1067 c0x0000 (---------------)  +   se
+-	0x00109ac6, // n0x1068 c0x0000 (---------------)  +   selfip
+-	0x000c1588, // n0x1069 c0x0000 (---------------)  +   sells-it
+-	0x000edb88, // n0x106a c0x0000 (---------------)  +   servebbs
+-	0x000f2688, // n0x106b c0x0000 (---------------)  +   serveftp
+-	0x00046c08, // n0x106c c0x0000 (---------------)  +   thruhere
+-	0x00001902, // n0x106d c0x0000 (---------------)  +   uk
+-	0x000141c6, // n0x106e c0x0000 (---------------)  +   webhop
+-	0x00001142, // n0x106f c0x0000 (---------------)  +   za
+-	0x00230884, // n0x1070 c0x0000 (---------------)  + I arts
+-	0x0020d643, // n0x1071 c0x0000 (---------------)  + I com
+-	0x00243504, // n0x1072 c0x0000 (---------------)  + I firm
+-	0x00210e04, // n0x1073 c0x0000 (---------------)  + I info
+-	0x00214843, // n0x1074 c0x0000 (---------------)  + I net
+-	0x0024cec5, // n0x1075 c0x0000 (---------------)  + I other
+-	0x00210803, // n0x1076 c0x0000 (---------------)  + I per
+-	0x002c1d83, // n0x1077 c0x0000 (---------------)  + I rec
+-	0x002e9c05, // n0x1078 c0x0000 (---------------)  + I store
+-	0x00205e43, // n0x1079 c0x0000 (---------------)  + I web
+-	0x00206c42, // n0x107a c0x0000 (---------------)  + I ac
+-	0x0020d643, // n0x107b c0x0000 (---------------)  + I com
+-	0x002df843, // n0x107c c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x107d c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x107e c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x107f c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x1080 c0x0000 (---------------)  +   blogspot
+-	0x002248c2, // n0x1081 c0x0000 (---------------)  + I bv
+-	0x0000d642, // n0x1082 c0x0000 (---------------)  +   co
+-	0x33606502, // n0x1083 c0x00cd (n0x1359-n0x135a)  + I aa
+-	0x002301c8, // n0x1084 c0x0000 (---------------)  + I aarborte
+-	0x00222e86, // n0x1085 c0x0000 (---------------)  + I aejrie
+-	0x002a8906, // n0x1086 c0x0000 (---------------)  + I afjord
+-	0x00222807, // n0x1087 c0x0000 (---------------)  + I agdenes
+-	0x33a07a02, // n0x1088 c0x00ce (n0x135a-n0x135b)  + I ah
+-	0x33f14dc8, // n0x1089 c0x00cf (n0x135b-n0x135c)  o I akershus
+-	0x0022690a, // n0x108a c0x0000 (---------------)  + I aknoluokta
+-	0x00201588, // n0x108b c0x0000 (---------------)  + I akrehamn
+-	0x00203982, // n0x108c c0x0000 (---------------)  + I al
+-	0x00207989, // n0x108d c0x0000 (---------------)  + I alaheadju
+-	0x002058c7, // n0x108e c0x0000 (---------------)  + I alesund
+-	0x00216346, // n0x108f c0x0000 (---------------)  + I algard
+-	0x00265949, // n0x1090 c0x0000 (---------------)  + I alstahaug
+-	0x00247c04, // n0x1091 c0x0000 (---------------)  + I alta
+-	0x00207586, // n0x1092 c0x0000 (---------------)  + I alvdal
+-	0x002b15c4, // n0x1093 c0x0000 (---------------)  + I amli
+-	0x00203d04, // n0x1094 c0x0000 (---------------)  + I amot
+-	0x0024aac9, // n0x1095 c0x0000 (---------------)  + I andasuolo
+-	0x00202586, // n0x1096 c0x0000 (---------------)  + I andebu
+-	0x00239f05, // n0x1097 c0x0000 (---------------)  + I andoy
+-	0x0025cb05, // n0x1098 c0x0000 (---------------)  + I ardal
+-	0x002665c7, // n0x1099 c0x0000 (---------------)  + I aremark
+-	0x002e7007, // n0x109a c0x0000 (---------------)  + I arendal
+-	0x0025ca44, // n0x109b c0x0000 (---------------)  + I arna
+-	0x00222a46, // n0x109c c0x0000 (---------------)  + I aseral
+-	0x00267805, // n0x109d c0x0000 (---------------)  + I asker
+-	0x002d47c5, // n0x109e c0x0000 (---------------)  + I askim
+-	0x003382c5, // n0x109f c0x0000 (---------------)  + I askoy
+-	0x00227f87, // n0x10a0 c0x0000 (---------------)  + I askvoll
+-	0x00226345, // n0x10a1 c0x0000 (---------------)  + I asnes
+-	0x00317f09, // n0x10a2 c0x0000 (---------------)  + I audnedaln
+-	0x00214e85, // n0x10a3 c0x0000 (---------------)  + I aukra
+-	0x002c3104, // n0x10a4 c0x0000 (---------------)  + I aure
+-	0x00202487, // n0x10a5 c0x0000 (---------------)  + I aurland
+-	0x002ae80e, // n0x10a6 c0x0000 (---------------)  + I aurskog-holand
+-	0x00225e89, // n0x10a7 c0x0000 (---------------)  + I austevoll
+-	0x00225209, // n0x10a8 c0x0000 (---------------)  + I austrheim
+-	0x00232806, // n0x10a9 c0x0000 (---------------)  + I averoy
+-	0x00301bc8, // n0x10aa c0x0000 (---------------)  + I badaddja
+-	0x002e85cb, // n0x10ab c0x0000 (---------------)  + I bahcavuotna
+-	0x00288e8c, // n0x10ac c0x0000 (---------------)  + I bahccavuotna
+-	0x00250406, // n0x10ad c0x0000 (---------------)  + I baidar
+-	0x00329d47, // n0x10ae c0x0000 (---------------)  + I bajddar
+-	0x00224945, // n0x10af c0x0000 (---------------)  + I balat
+-	0x00236c0a, // n0x10b0 c0x0000 (---------------)  + I balestrand
+-	0x00293b49, // n0x10b1 c0x0000 (---------------)  + I ballangen
+-	0x002e5a49, // n0x10b2 c0x0000 (---------------)  + I balsfjord
+-	0x002fd606, // n0x10b3 c0x0000 (---------------)  + I bamble
+-	0x002ebbc5, // n0x10b4 c0x0000 (---------------)  + I bardu
+-	0x00310945, // n0x10b5 c0x0000 (---------------)  + I barum
+-	0x0033e5c9, // n0x10b6 c0x0000 (---------------)  + I batsfjord
+-	0x00224b4b, // n0x10b7 c0x0000 (---------------)  + I bearalvahki
+-	0x0024d586, // n0x10b8 c0x0000 (---------------)  + I beardu
+-	0x002185c6, // n0x10b9 c0x0000 (---------------)  + I beiarn
+-	0x00203784, // n0x10ba c0x0000 (---------------)  + I berg
+-	0x00245506, // n0x10bb c0x0000 (---------------)  + I bergen
+-	0x002c7c08, // n0x10bc c0x0000 (---------------)  + I berlevag
+-	0x00206e46, // n0x10bd c0x0000 (---------------)  + I bievat
+-	0x00262406, // n0x10be c0x0000 (---------------)  + I bindal
+-	0x0020f648, // n0x10bf c0x0000 (---------------)  + I birkenes
+-	0x002100c7, // n0x10c0 c0x0000 (---------------)  + I bjarkoy
+-	0x002105c9, // n0x10c1 c0x0000 (---------------)  + I bjerkreim
+-	0x00210945, // n0x10c2 c0x0000 (---------------)  + I bjugn
+-	0x0003c708, // n0x10c3 c0x0000 (---------------)  +   blogspot
+-	0x002a3344, // n0x10c4 c0x0000 (---------------)  + I bodo
+-	0x002be444, // n0x10c5 c0x0000 (---------------)  + I bokn
+-	0x00212c45, // n0x10c6 c0x0000 (---------------)  + I bomlo
+-	0x0021a3c9, // n0x10c7 c0x0000 (---------------)  + I bremanger
+-	0x00221007, // n0x10c8 c0x0000 (---------------)  + I bronnoy
+-	0x0022100b, // n0x10c9 c0x0000 (---------------)  + I bronnoysund
+-	0x0022170a, // n0x10ca c0x0000 (---------------)  + I brumunddal
+-	0x00224245, // n0x10cb c0x0000 (---------------)  + I bryne
+-	0x34202682, // n0x10cc c0x00d0 (n0x135c-n0x135d)  + I bu
+-	0x00244907, // n0x10cd c0x0000 (---------------)  + I budejju
+-	0x346bf548, // n0x10ce c0x00d1 (n0x135d-n0x135e)  o I buskerud
+-	0x00213b07, // n0x10cf c0x0000 (---------------)  + I bygland
+-	0x002c9505, // n0x10d0 c0x0000 (---------------)  + I bykle
+-	0x0025230a, // n0x10d1 c0x0000 (---------------)  + I cahcesuolo
+-	0x0000d642, // n0x10d2 c0x0000 (---------------)  +   co
+-	0x0021530b, // n0x10d3 c0x0000 (---------------)  + I davvenjarga
+-	0x002a2e4a, // n0x10d4 c0x0000 (---------------)  + I davvesiida
+-	0x00203546, // n0x10d5 c0x0000 (---------------)  + I deatnu
+-	0x0024e443, // n0x10d6 c0x0000 (---------------)  + I dep
+-	0x002d76cd, // n0x10d7 c0x0000 (---------------)  + I dielddanuorri
+-	0x0023780c, // n0x10d8 c0x0000 (---------------)  + I divtasvuodna
+-	0x002bbc0d, // n0x10d9 c0x0000 (---------------)  + I divttasvuotna
+-	0x00304485, // n0x10da c0x0000 (---------------)  + I donna
+-	0x00324b85, // n0x10db c0x0000 (---------------)  + I dovre
+-	0x00283d47, // n0x10dc c0x0000 (---------------)  + I drammen
+-	0x0033f089, // n0x10dd c0x0000 (---------------)  + I drangedal
+-	0x00201486, // n0x10de c0x0000 (---------------)  + I drobak
+-	0x0025e085, // n0x10df c0x0000 (---------------)  + I dyroy
+-	0x002a9548, // n0x10e0 c0x0000 (---------------)  + I egersund
+-	0x002791c3, // n0x10e1 c0x0000 (---------------)  + I eid
+-	0x0031b488, // n0x10e2 c0x0000 (---------------)  + I eidfjord
+-	0x002791c8, // n0x10e3 c0x0000 (---------------)  + I eidsberg
+-	0x002acc87, // n0x10e4 c0x0000 (---------------)  + I eidskog
+-	0x002fb408, // n0x10e5 c0x0000 (---------------)  + I eidsvoll
+-	0x00252ac9, // n0x10e6 c0x0000 (---------------)  + I eigersund
+-	0x0022b687, // n0x10e7 c0x0000 (---------------)  + I elverum
+-	0x0020b1c7, // n0x10e8 c0x0000 (---------------)  + I enebakk
+-	0x002b0b48, // n0x10e9 c0x0000 (---------------)  + I engerdal
+-	0x002e7944, // n0x10ea c0x0000 (---------------)  + I etne
+-	0x002e7947, // n0x10eb c0x0000 (---------------)  + I etnedal
+-	0x0020ab88, // n0x10ec c0x0000 (---------------)  + I evenassi
+-	0x00213906, // n0x10ed c0x0000 (---------------)  + I evenes
+-	0x0033e94f, // n0x10ee c0x0000 (---------------)  + I evje-og-hornnes
+-	0x00303c87, // n0x10ef c0x0000 (---------------)  + I farsund
+-	0x00254b46, // n0x10f0 c0x0000 (---------------)  + I fauske
+-	0x0022bf85, // n0x10f1 c0x0000 (---------------)  + I fedje
+-	0x002cda03, // n0x10f2 c0x0000 (---------------)  + I fet
+-	0x0031ffc7, // n0x10f3 c0x0000 (---------------)  + I fetsund
+-	0x0032fbc3, // n0x10f4 c0x0000 (---------------)  + I fhs
+-	0x002431c6, // n0x10f5 c0x0000 (---------------)  + I finnoy
+-	0x00244446, // n0x10f6 c0x0000 (---------------)  + I fitjar
+-	0x00244f06, // n0x10f7 c0x0000 (---------------)  + I fjaler
+-	0x0027c6c5, // n0x10f8 c0x0000 (---------------)  + I fjell
+-	0x00255943, // n0x10f9 c0x0000 (---------------)  + I fla
+-	0x00255948, // n0x10fa c0x0000 (---------------)  + I flakstad
+-	0x0032da09, // n0x10fb c0x0000 (---------------)  + I flatanger
+-	0x0024514b, // n0x10fc c0x0000 (---------------)  + I flekkefjord
+-	0x00245408, // n0x10fd c0x0000 (---------------)  + I flesberg
+-	0x002463c5, // n0x10fe c0x0000 (---------------)  + I flora
+-	0x002468c5, // n0x10ff c0x0000 (---------------)  + I floro
+-	0x34b30b82, // n0x1100 c0x00d2 (n0x135e-n0x135f)  + I fm
+-	0x002144c9, // n0x1101 c0x0000 (---------------)  + I folkebibl
+-	0x00247147, // n0x1102 c0x0000 (---------------)  + I folldal
+-	0x00203485, // n0x1103 c0x0000 (---------------)  + I forde
+-	0x0024a9c7, // n0x1104 c0x0000 (---------------)  + I forsand
+-	0x0024c486, // n0x1105 c0x0000 (---------------)  + I fosnes
+-	0x00320805, // n0x1106 c0x0000 (---------------)  + I frana
+-	0x0024d00b, // n0x1107 c0x0000 (---------------)  + I fredrikstad
+-	0x0024ea04, // n0x1108 c0x0000 (---------------)  + I frei
+-	0x00250585, // n0x1109 c0x0000 (---------------)  + I frogn
+-	0x002506c7, // n0x110a c0x0000 (---------------)  + I froland
+-	0x00267d46, // n0x110b c0x0000 (---------------)  + I frosta
+-	0x00268005, // n0x110c c0x0000 (---------------)  + I froya
+-	0x00270647, // n0x110d c0x0000 (---------------)  + I fuoisku
+-	0x00270a07, // n0x110e c0x0000 (---------------)  + I fuossko
+-	0x002def44, // n0x110f c0x0000 (---------------)  + I fusa
+-	0x0027404a, // n0x1110 c0x0000 (---------------)  + I fylkesbibl
+-	0x002742c8, // n0x1111 c0x0000 (---------------)  + I fyresdal
+-	0x002e8889, // n0x1112 c0x0000 (---------------)  + I gaivuotna
+-	0x00215545, // n0x1113 c0x0000 (---------------)  + I galsa
+-	0x0021b4c6, // n0x1114 c0x0000 (---------------)  + I gamvik
+-	0x002c7dca, // n0x1115 c0x0000 (---------------)  + I gangaviika
+-	0x002c80c6, // n0x1116 c0x0000 (---------------)  + I gaular
+-	0x00255f07, // n0x1117 c0x0000 (---------------)  + I gausdal
+-	0x00340fcd, // n0x1118 c0x0000 (---------------)  + I giehtavuoatna
+-	0x002af2c9, // n0x1119 c0x0000 (---------------)  + I gildeskal
+-	0x00325605, // n0x111a c0x0000 (---------------)  + I giske
+-	0x003370c7, // n0x111b c0x0000 (---------------)  + I gjemnes
+-	0x00346b48, // n0x111c c0x0000 (---------------)  + I gjerdrum
+-	0x00202848, // n0x111d c0x0000 (---------------)  + I gjerstad
+-	0x00203847, // n0x111e c0x0000 (---------------)  + I gjesdal
+-	0x00209486, // n0x111f c0x0000 (---------------)  + I gjovik
+-	0x00264e87, // n0x1120 c0x0000 (---------------)  + I gloppen
+-	0x002e5d03, // n0x1121 c0x0000 (---------------)  + I gol
+-	0x002fe944, // n0x1122 c0x0000 (---------------)  + I gran
+-	0x00301505, // n0x1123 c0x0000 (---------------)  + I grane
+-	0x0031db87, // n0x1124 c0x0000 (---------------)  + I granvin
+-	0x00333b09, // n0x1125 c0x0000 (---------------)  + I gratangen
+-	0x00242e08, // n0x1126 c0x0000 (---------------)  + I grimstad
+-	0x0024cd05, // n0x1127 c0x0000 (---------------)  + I grong
+-	0x0024fc44, // n0x1128 c0x0000 (---------------)  + I grue
+-	0x002d8185, // n0x1129 c0x0000 (---------------)  + I gulen
+-	0x00276b8d, // n0x112a c0x0000 (---------------)  + I guovdageaidnu
+-	0x00201682, // n0x112b c0x0000 (---------------)  + I ha
+-	0x0029be86, // n0x112c c0x0000 (---------------)  + I habmer
+-	0x00309a06, // n0x112d c0x0000 (---------------)  + I hadsel
+-	0x00320f4a, // n0x112e c0x0000 (---------------)  + I hagebostad
+-	0x00274e46, // n0x112f c0x0000 (---------------)  + I halden
+-	0x00274fc5, // n0x1130 c0x0000 (---------------)  + I halsa
+-	0x002a85c5, // n0x1131 c0x0000 (---------------)  + I hamar
+-	0x002a85c7, // n0x1132 c0x0000 (---------------)  + I hamaroy
+-	0x0027590c, // n0x1133 c0x0000 (---------------)  + I hammarfeasta
+-	0x00241b4a, // n0x1134 c0x0000 (---------------)  + I hammerfest
+-	0x00278746, // n0x1135 c0x0000 (---------------)  + I hapmir
+-	0x002b1505, // n0x1136 c0x0000 (---------------)  + I haram
+-	0x00279106, // n0x1137 c0x0000 (---------------)  + I hareid
+-	0x00279907, // n0x1138 c0x0000 (---------------)  + I harstad
+-	0x0027a906, // n0x1139 c0x0000 (---------------)  + I hasvik
+-	0x0027c5cc, // n0x113a c0x0000 (---------------)  + I hattfjelldal
+-	0x00265a89, // n0x113b c0x0000 (---------------)  + I haugesund
+-	0x34e48487, // n0x113c c0x00d3 (n0x135f-n0x1362)  o I hedmark
+-	0x00263c05, // n0x113d c0x0000 (---------------)  + I hemne
+-	0x00263c06, // n0x113e c0x0000 (---------------)  + I hemnes
+-	0x0027d848, // n0x113f c0x0000 (---------------)  + I hemsedal
+-	0x002a2105, // n0x1140 c0x0000 (---------------)  + I herad
+-	0x0028f005, // n0x1141 c0x0000 (---------------)  + I hitra
+-	0x0028f488, // n0x1142 c0x0000 (---------------)  + I hjartdal
+-	0x0028f68a, // n0x1143 c0x0000 (---------------)  + I hjelmeland
+-	0x35263882, // n0x1144 c0x00d4 (n0x1362-n0x1363)  + I hl
+-	0x3568ad42, // n0x1145 c0x00d5 (n0x1363-n0x1364)  + I hm
+-	0x0031f2c5, // n0x1146 c0x0000 (---------------)  + I hobol
+-	0x002bfec3, // n0x1147 c0x0000 (---------------)  + I hof
+-	0x0032a748, // n0x1148 c0x0000 (---------------)  + I hokksund
+-	0x0022a303, // n0x1149 c0x0000 (---------------)  + I hol
+-	0x0028f904, // n0x114a c0x0000 (---------------)  + I hole
+-	0x002e94cb, // n0x114b c0x0000 (---------------)  + I holmestrand
+-	0x0022a308, // n0x114c c0x0000 (---------------)  + I holtalen
+-	0x0023dd48, // n0x114d c0x0000 (---------------)  + I honefoss
+-	0x35a37609, // n0x114e c0x00d6 (n0x1364-n0x1365)  o I hordaland
+-	0x00292909, // n0x114f c0x0000 (---------------)  + I hornindal
+-	0x00292b46, // n0x1150 c0x0000 (---------------)  + I horten
+-	0x00293d88, // n0x1151 c0x0000 (---------------)  + I hoyanger
+-	0x00293f89, // n0x1152 c0x0000 (---------------)  + I hoylandet
+-	0x00295846, // n0x1153 c0x0000 (---------------)  + I hurdal
+-	0x002959c5, // n0x1154 c0x0000 (---------------)  + I hurum
+-	0x00331586, // n0x1155 c0x0000 (---------------)  + I hvaler
+-	0x002cdb49, // n0x1156 c0x0000 (---------------)  + I hyllestad
+-	0x002afd07, // n0x1157 c0x0000 (---------------)  + I ibestad
+-	0x00289dc6, // n0x1158 c0x0000 (---------------)  + I idrett
+-	0x002ecb47, // n0x1159 c0x0000 (---------------)  + I inderoy
+-	0x002bba87, // n0x115a c0x0000 (---------------)  + I iveland
+-	0x00278b04, // n0x115b c0x0000 (---------------)  + I ivgu
+-	0x35e19ec9, // n0x115c c0x00d7 (n0x1365-n0x1366)  + I jan-mayen
+-	0x0025f388, // n0x115d c0x0000 (---------------)  + I jessheim
+-	0x00314cc8, // n0x115e c0x0000 (---------------)  + I jevnaker
+-	0x002cf887, // n0x115f c0x0000 (---------------)  + I jolster
+-	0x002b3706, // n0x1160 c0x0000 (---------------)  + I jondal
+-	0x0024bbc9, // n0x1161 c0x0000 (---------------)  + I jorpeland
+-	0x002a88c7, // n0x1162 c0x0000 (---------------)  + I kafjord
+-	0x002f224a, // n0x1163 c0x0000 (---------------)  + I karasjohka
+-	0x002f4348, // n0x1164 c0x0000 (---------------)  + I karasjok
+-	0x002279c7, // n0x1165 c0x0000 (---------------)  + I karlsoy
+-	0x002bcd86, // n0x1166 c0x0000 (---------------)  + I karmoy
+-	0x0030dbca, // n0x1167 c0x0000 (---------------)  + I kautokeino
+-	0x0025ba88, // n0x1168 c0x0000 (---------------)  + I kirkenes
+-	0x00297dc5, // n0x1169 c0x0000 (---------------)  + I klabu
+-	0x00223f45, // n0x116a c0x0000 (---------------)  + I klepp
+-	0x002cc2c7, // n0x116b c0x0000 (---------------)  + I kommune
+-	0x002ec1c9, // n0x116c c0x0000 (---------------)  + I kongsberg
+-	0x002f024b, // n0x116d c0x0000 (---------------)  + I kongsvinger
+-	0x00297c08, // n0x116e c0x0000 (---------------)  + I kopervik
+-	0x00214f09, // n0x116f c0x0000 (---------------)  + I kraanghke
+-	0x0029f707, // n0x1170 c0x0000 (---------------)  + I kragero
+-	0x002a184c, // n0x1171 c0x0000 (---------------)  + I kristiansand
+-	0x002a1ccc, // n0x1172 c0x0000 (---------------)  + I kristiansund
+-	0x002a1fca, // n0x1173 c0x0000 (---------------)  + I krodsherad
+-	0x002a224c, // n0x1174 c0x0000 (---------------)  + I krokstadelva
+-	0x002abb48, // n0x1175 c0x0000 (---------------)  + I kvafjord
+-	0x002abd48, // n0x1176 c0x0000 (---------------)  + I kvalsund
+-	0x002abf44, // n0x1177 c0x0000 (---------------)  + I kvam
+-	0x002ac409, // n0x1178 c0x0000 (---------------)  + I kvanangen
+-	0x002ac649, // n0x1179 c0x0000 (---------------)  + I kvinesdal
+-	0x002ac88a, // n0x117a c0x0000 (---------------)  + I kvinnherad
+-	0x002acb09, // n0x117b c0x0000 (---------------)  + I kviteseid
+-	0x002ace47, // n0x117c c0x0000 (---------------)  + I kvitsoy
+-	0x002064cc, // n0x117d c0x0000 (---------------)  + I laakesvuemie
+-	0x00258c86, // n0x117e c0x0000 (---------------)  + I lahppi
+-	0x002a5708, // n0x117f c0x0000 (---------------)  + I langevag
+-	0x002c8186, // n0x1180 c0x0000 (---------------)  + I lardal
+-	0x0031c4c6, // n0x1181 c0x0000 (---------------)  + I larvik
+-	0x00325507, // n0x1182 c0x0000 (---------------)  + I lavagis
+-	0x00326508, // n0x1183 c0x0000 (---------------)  + I lavangen
+-	0x002fd70b, // n0x1184 c0x0000 (---------------)  + I leangaviika
+-	0x002c95c7, // n0x1185 c0x0000 (---------------)  + I lebesby
+-	0x002832c9, // n0x1186 c0x0000 (---------------)  + I leikanger
+-	0x0028b149, // n0x1187 c0x0000 (---------------)  + I leirfjord
+-	0x00303407, // n0x1188 c0x0000 (---------------)  + I leirvik
+-	0x00261b04, // n0x1189 c0x0000 (---------------)  + I leka
+-	0x002ce147, // n0x118a c0x0000 (---------------)  + I leksvik
+-	0x002e7186, // n0x118b c0x0000 (---------------)  + I lenvik
+-	0x00244fc6, // n0x118c c0x0000 (---------------)  + I lerdal
+-	0x00223985, // n0x118d c0x0000 (---------------)  + I lesja
+-	0x002ea648, // n0x118e c0x0000 (---------------)  + I levanger
+-	0x002b1644, // n0x118f c0x0000 (---------------)  + I lier
+-	0x002b1646, // n0x1190 c0x0000 (---------------)  + I lierne
+-	0x00241a0b, // n0x1191 c0x0000 (---------------)  + I lillehammer
+-	0x002f8c49, // n0x1192 c0x0000 (---------------)  + I lillesand
+-	0x00237386, // n0x1193 c0x0000 (---------------)  + I lindas
+-	0x0034cc09, // n0x1194 c0x0000 (---------------)  + I lindesnes
+-	0x00212d06, // n0x1195 c0x0000 (---------------)  + I loabat
+-	0x0024ac88, // n0x1196 c0x0000 (---------------)  + I lodingen
+-	0x002f7d83, // n0x1197 c0x0000 (---------------)  + I lom
+-	0x00211405, // n0x1198 c0x0000 (---------------)  + I loppa
+-	0x002cddc9, // n0x1199 c0x0000 (---------------)  + I lorenskog
+-	0x0020bf45, // n0x119a c0x0000 (---------------)  + I loten
+-	0x002e1cc4, // n0x119b c0x0000 (---------------)  + I lund
+-	0x00267346, // n0x119c c0x0000 (---------------)  + I lunner
+-	0x00336185, // n0x119d c0x0000 (---------------)  + I luroy
+-	0x0034a586, // n0x119e c0x0000 (---------------)  + I luster
+-	0x002f3987, // n0x119f c0x0000 (---------------)  + I lyngdal
+-	0x00309646, // n0x11a0 c0x0000 (---------------)  + I lyngen
+-	0x0028170b, // n0x11a1 c0x0000 (---------------)  + I malatvuopmi
+-	0x002599c7, // n0x11a2 c0x0000 (---------------)  + I malselv
+-	0x00218306, // n0x11a3 c0x0000 (---------------)  + I malvik
+-	0x00330bc6, // n0x11a4 c0x0000 (---------------)  + I mandal
+-	0x00266686, // n0x11a5 c0x0000 (---------------)  + I marker
+-	0x0025ca09, // n0x11a6 c0x0000 (---------------)  + I marnardal
+-	0x00295d8a, // n0x11a7 c0x0000 (---------------)  + I masfjorden
+-	0x002912c5, // n0x11a8 c0x0000 (---------------)  + I masoy
+-	0x002b858d, // n0x11a9 c0x0000 (---------------)  + I matta-varjjat
+-	0x0028f786, // n0x11aa c0x0000 (---------------)  + I meland
+-	0x00277e86, // n0x11ab c0x0000 (---------------)  + I meldal
+-	0x0023bc86, // n0x11ac c0x0000 (---------------)  + I melhus
+-	0x0033f805, // n0x11ad c0x0000 (---------------)  + I meloy
+-	0x00286447, // n0x11ae c0x0000 (---------------)  + I meraker
+-	0x0026f087, // n0x11af c0x0000 (---------------)  + I midsund
+-	0x0027f8ce, // n0x11b0 c0x0000 (---------------)  + I midtre-gauldal
+-	0x0022f003, // n0x11b1 c0x0000 (---------------)  + I mil
+-	0x002b36c9, // n0x11b2 c0x0000 (---------------)  + I mjondalen
+-	0x0028bd49, // n0x11b3 c0x0000 (---------------)  + I mo-i-rana
+-	0x00237007, // n0x11b4 c0x0000 (---------------)  + I moareke
+-	0x00249487, // n0x11b5 c0x0000 (---------------)  + I modalen
+-	0x0029e385, // n0x11b6 c0x0000 (---------------)  + I modum
+-	0x0020d6c5, // n0x11b7 c0x0000 (---------------)  + I molde
+-	0x3634c88f, // n0x11b8 c0x00d8 (n0x1366-n0x1368)  o I more-og-romsdal
+-	0x002b9e87, // n0x11b9 c0x0000 (---------------)  + I mosjoen
+-	0x002ba048, // n0x11ba c0x0000 (---------------)  + I moskenes
+-	0x002ba944, // n0x11bb c0x0000 (---------------)  + I moss
+-	0x002bad06, // n0x11bc c0x0000 (---------------)  + I mosvik
+-	0x366412c2, // n0x11bd c0x00d9 (n0x1368-n0x1369)  + I mr
+-	0x002c2506, // n0x11be c0x0000 (---------------)  + I muosat
+-	0x002c4946, // n0x11bf c0x0000 (---------------)  + I museum
+-	0x0034128e, // n0x11c0 c0x0000 (---------------)  + I naamesjevuemie
+-	0x0031b2ca, // n0x11c1 c0x0000 (---------------)  + I namdalseid
+-	0x00289fc6, // n0x11c2 c0x0000 (---------------)  + I namsos
+-	0x0027acca, // n0x11c3 c0x0000 (---------------)  + I namsskogan
+-	0x0025efc9, // n0x11c4 c0x0000 (---------------)  + I nannestad
+-	0x003342c5, // n0x11c5 c0x0000 (---------------)  + I naroy
+-	0x00230b08, // n0x11c6 c0x0000 (---------------)  + I narviika
+-	0x002313c6, // n0x11c7 c0x0000 (---------------)  + I narvik
+-	0x00209ec8, // n0x11c8 c0x0000 (---------------)  + I naustdal
+-	0x0020ca48, // n0x11c9 c0x0000 (---------------)  + I navuotna
+-	0x0028ba4b, // n0x11ca c0x0000 (---------------)  + I nedre-eiker
+-	0x00222905, // n0x11cb c0x0000 (---------------)  + I nesna
+-	0x002263c8, // n0x11cc c0x0000 (---------------)  + I nesodden
+-	0x0020f78c, // n0x11cd c0x0000 (---------------)  + I nesoddtangen
+-	0x002139c7, // n0x11ce c0x0000 (---------------)  + I nesseby
+-	0x0033ec46, // n0x11cf c0x0000 (---------------)  + I nesset
+-	0x00234b48, // n0x11d0 c0x0000 (---------------)  + I nissedal
+-	0x00207808, // n0x11d1 c0x0000 (---------------)  + I nittedal
+-	0x36a3ba42, // n0x11d2 c0x00da (n0x1369-n0x136a)  + I nl
+-	0x0023648b, // n0x11d3 c0x0000 (---------------)  + I nord-aurdal
+-	0x003384c9, // n0x11d4 c0x0000 (---------------)  + I nord-fron
+-	0x002a4809, // n0x11d5 c0x0000 (---------------)  + I nord-odal
+-	0x00237207, // n0x11d6 c0x0000 (---------------)  + I norddal
+-	0x00233688, // n0x11d7 c0x0000 (---------------)  + I nordkapp
+-	0x36e12688, // n0x11d8 c0x00db (n0x136a-n0x136e)  o I nordland
+-	0x00318d4b, // n0x11d9 c0x0000 (---------------)  + I nordre-land
+-	0x00239909, // n0x11da c0x0000 (---------------)  + I nordreisa
+-	0x002c020d, // n0x11db c0x0000 (---------------)  + I nore-og-uvdal
+-	0x0020d208, // n0x11dc c0x0000 (---------------)  + I notodden
+-	0x00286888, // n0x11dd c0x0000 (---------------)  + I notteroy
+-	0x37200242, // n0x11de c0x00dc (n0x136e-n0x136f)  + I nt
+-	0x00310044, // n0x11df c0x0000 (---------------)  + I odda
+-	0x37613e42, // n0x11e0 c0x00dd (n0x136f-n0x1370)  + I of
+-	0x00348186, // n0x11e1 c0x0000 (---------------)  + I oksnes
+-	0x37a053c2, // n0x11e2 c0x00de (n0x1370-n0x1371)  + I ol
+-	0x002e1e0a, // n0x11e3 c0x0000 (---------------)  + I omasvuotna
+-	0x00304146, // n0x11e4 c0x0000 (---------------)  + I oppdal
+-	0x0022de48, // n0x11e5 c0x0000 (---------------)  + I oppegard
+-	0x00223bc8, // n0x11e6 c0x0000 (---------------)  + I orkanger
+-	0x0023f346, // n0x11e7 c0x0000 (---------------)  + I orkdal
+-	0x00261046, // n0x11e8 c0x0000 (---------------)  + I orland
+-	0x002d24c6, // n0x11e9 c0x0000 (---------------)  + I orskog
+-	0x0026ae45, // n0x11ea c0x0000 (---------------)  + I orsta
+-	0x0023d204, // n0x11eb c0x0000 (---------------)  + I osen
+-	0x37e11384, // n0x11ec c0x00df (n0x1371-n0x1372)  + I oslo
+-	0x0020cd86, // n0x11ed c0x0000 (---------------)  + I osoyro
+-	0x002b0947, // n0x11ee c0x0000 (---------------)  + I osteroy
+-	0x382de047, // n0x11ef c0x00e0 (n0x1372-n0x1373)  o I ostfold
+-	0x0027be4b, // n0x11f0 c0x0000 (---------------)  + I ostre-toten
+-	0x00278109, // n0x11f1 c0x0000 (---------------)  + I overhalla
+-	0x00324bca, // n0x11f2 c0x0000 (---------------)  + I ovre-eiker
+-	0x002a8704, // n0x11f3 c0x0000 (---------------)  + I oyer
+-	0x00225788, // n0x11f4 c0x0000 (---------------)  + I oygarden
+-	0x00289b8d, // n0x11f5 c0x0000 (---------------)  + I oystre-slidre
+-	0x002cf449, // n0x11f6 c0x0000 (---------------)  + I porsanger
+-	0x002cf688, // n0x11f7 c0x0000 (---------------)  + I porsangu
+-	0x002cfa49, // n0x11f8 c0x0000 (---------------)  + I porsgrunn
+-	0x002d1204, // n0x11f9 c0x0000 (---------------)  + I priv
+-	0x002556c4, // n0x11fa c0x0000 (---------------)  + I rade
+-	0x0026db05, // n0x11fb c0x0000 (---------------)  + I radoy
+-	0x0022fe0b, // n0x11fc c0x0000 (---------------)  + I rahkkeravju
+-	0x0022a286, // n0x11fd c0x0000 (---------------)  + I raholt
+-	0x002a5345, // n0x11fe c0x0000 (---------------)  + I raisa
+-	0x002514c9, // n0x11ff c0x0000 (---------------)  + I rakkestad
+-	0x00222b08, // n0x1200 c0x0000 (---------------)  + I ralingen
+-	0x00289f44, // n0x1201 c0x0000 (---------------)  + I rana
+-	0x00236d89, // n0x1202 c0x0000 (---------------)  + I randaberg
+-	0x00289645, // n0x1203 c0x0000 (---------------)  + I rauma
+-	0x002e7048, // n0x1204 c0x0000 (---------------)  + I rendalen
+-	0x002447c7, // n0x1205 c0x0000 (---------------)  + I rennebu
+-	0x00225608, // n0x1206 c0x0000 (---------------)  + I rennesoy
+-	0x0029dbc6, // n0x1207 c0x0000 (---------------)  + I rindal
+-	0x00217ac7, // n0x1208 c0x0000 (---------------)  + I ringebu
+-	0x0025b389, // n0x1209 c0x0000 (---------------)  + I ringerike
+-	0x0030e1c9, // n0x120a c0x0000 (---------------)  + I ringsaker
+-	0x00309c85, // n0x120b c0x0000 (---------------)  + I risor
+-	0x002620c5, // n0x120c c0x0000 (---------------)  + I rissa
+-	0x38602502, // n0x120d c0x00e1 (n0x1373-n0x1374)  + I rl
+-	0x002c2ec4, // n0x120e c0x0000 (---------------)  + I roan
+-	0x002a6f45, // n0x120f c0x0000 (---------------)  + I rodoy
+-	0x00302bc6, // n0x1210 c0x0000 (---------------)  + I rollag
+-	0x002d2f05, // n0x1211 c0x0000 (---------------)  + I romsa
+-	0x00276f07, // n0x1212 c0x0000 (---------------)  + I romskog
+-	0x0023e445, // n0x1213 c0x0000 (---------------)  + I roros
+-	0x00267d84, // n0x1214 c0x0000 (---------------)  + I rost
+-	0x002b0a46, // n0x1215 c0x0000 (---------------)  + I royken
+-	0x002328c7, // n0x1216 c0x0000 (---------------)  + I royrvik
+-	0x00285306, // n0x1217 c0x0000 (---------------)  + I ruovat
+-	0x0023a705, // n0x1218 c0x0000 (---------------)  + I rygge
+-	0x0023b888, // n0x1219 c0x0000 (---------------)  + I salangen
+-	0x0023bac5, // n0x121a c0x0000 (---------------)  + I salat
+-	0x0023c147, // n0x121b c0x0000 (---------------)  + I saltdal
+-	0x00249989, // n0x121c c0x0000 (---------------)  + I samnanger
+-	0x002a1a4a, // n0x121d c0x0000 (---------------)  + I sandefjord
+-	0x00274b47, // n0x121e c0x0000 (---------------)  + I sandnes
+-	0x00274b4c, // n0x121f c0x0000 (---------------)  + I sandnessjoen
+-	0x00239ec6, // n0x1220 c0x0000 (---------------)  + I sandoy
+-	0x0028cc09, // n0x1221 c0x0000 (---------------)  + I sarpsborg
+-	0x002da645, // n0x1222 c0x0000 (---------------)  + I sauda
+-	0x002eb8c8, // n0x1223 c0x0000 (---------------)  + I sauherad
+-	0x002234c3, // n0x1224 c0x0000 (---------------)  + I sel
+-	0x00336f45, // n0x1225 c0x0000 (---------------)  + I selbu
+-	0x0030a605, // n0x1226 c0x0000 (---------------)  + I selje
+-	0x0033ef07, // n0x1227 c0x0000 (---------------)  + I seljord
+-	0x38a31c02, // n0x1228 c0x00e2 (n0x1374-n0x1375)  + I sf
+-	0x0021a947, // n0x1229 c0x0000 (---------------)  + I siellak
+-	0x002e0ac6, // n0x122a c0x0000 (---------------)  + I sigdal
+-	0x00219e06, // n0x122b c0x0000 (---------------)  + I siljan
+-	0x002e14c6, // n0x122c c0x0000 (---------------)  + I sirdal
+-	0x00207746, // n0x122d c0x0000 (---------------)  + I skanit
+-	0x0030b988, // n0x122e c0x0000 (---------------)  + I skanland
+-	0x002fb245, // n0x122f c0x0000 (---------------)  + I skaun
+-	0x00254c07, // n0x1230 c0x0000 (---------------)  + I skedsmo
+-	0x00254c0d, // n0x1231 c0x0000 (---------------)  + I skedsmokorset
+-	0x00202203, // n0x1232 c0x0000 (---------------)  + I ski
+-	0x00233c45, // n0x1233 c0x0000 (---------------)  + I skien
+-	0x00290b07, // n0x1234 c0x0000 (---------------)  + I skierva
+-	0x002c1a08, // n0x1235 c0x0000 (---------------)  + I skiptvet
+-	0x00226845, // n0x1236 c0x0000 (---------------)  + I skjak
+-	0x00289a08, // n0x1237 c0x0000 (---------------)  + I skjervoy
+-	0x00253786, // n0x1238 c0x0000 (---------------)  + I skodje
+-	0x002d3a87, // n0x1239 c0x0000 (---------------)  + I slattum
+-	0x002500c5, // n0x123a c0x0000 (---------------)  + I smola
+-	0x00222986, // n0x123b c0x0000 (---------------)  + I snaase
+-	0x00228c05, // n0x123c c0x0000 (---------------)  + I snasa
+-	0x0025de4a, // n0x123d c0x0000 (---------------)  + I snillfjord
+-	0x002aaa86, // n0x123e c0x0000 (---------------)  + I snoasa
+-	0x00272ec7, // n0x123f c0x0000 (---------------)  + I sogndal
+-	0x002a7705, // n0x1240 c0x0000 (---------------)  + I sogne
+-	0x002de2c7, // n0x1241 c0x0000 (---------------)  + I sokndal
+-	0x002b89c4, // n0x1242 c0x0000 (---------------)  + I sola
+-	0x002e1c46, // n0x1243 c0x0000 (---------------)  + I solund
+-	0x002e2205, // n0x1244 c0x0000 (---------------)  + I somna
+-	0x00221dcb, // n0x1245 c0x0000 (---------------)  + I sondre-land
+-	0x00301e49, // n0x1246 c0x0000 (---------------)  + I songdalen
+-	0x00257d8a, // n0x1247 c0x0000 (---------------)  + I sor-aurdal
+-	0x00309d08, // n0x1248 c0x0000 (---------------)  + I sor-fron
+-	0x002e2a48, // n0x1249 c0x0000 (---------------)  + I sor-odal
+-	0x002e2c4c, // n0x124a c0x0000 (---------------)  + I sor-varanger
+-	0x002e2f47, // n0x124b c0x0000 (---------------)  + I sorfold
+-	0x002e3108, // n0x124c c0x0000 (---------------)  + I sorreisa
+-	0x002e3fc8, // n0x124d c0x0000 (---------------)  + I sortland
+-	0x002e41c5, // n0x124e c0x0000 (---------------)  + I sorum
+-	0x002e678a, // n0x124f c0x0000 (---------------)  + I spjelkavik
+-	0x002e6d09, // n0x1250 c0x0000 (---------------)  + I spydeberg
+-	0x38e01382, // n0x1251 c0x00e3 (n0x1375-n0x1376)  + I st
+-	0x002c0e86, // n0x1252 c0x0000 (---------------)  + I stange
+-	0x0028af84, // n0x1253 c0x0000 (---------------)  + I stat
+-	0x0028af89, // n0x1254 c0x0000 (---------------)  + I stathelle
+-	0x002d3489, // n0x1255 c0x0000 (---------------)  + I stavanger
+-	0x0025bf07, // n0x1256 c0x0000 (---------------)  + I stavern
+-	0x002cb287, // n0x1257 c0x0000 (---------------)  + I steigen
+-	0x002e8049, // n0x1258 c0x0000 (---------------)  + I steinkjer
+-	0x002e8fc8, // n0x1259 c0x0000 (---------------)  + I stjordal
+-	0x002e8fcf, // n0x125a c0x0000 (---------------)  + I stjordalshalsen
+-	0x00298c06, // n0x125b c0x0000 (---------------)  + I stokke
+-	0x002e978b, // n0x125c c0x0000 (---------------)  + I stor-elvdal
+-	0x002e9a45, // n0x125d c0x0000 (---------------)  + I stord
+-	0x002e9a47, // n0x125e c0x0000 (---------------)  + I stordal
+-	0x002e9e89, // n0x125f c0x0000 (---------------)  + I storfjord
+-	0x00236d06, // n0x1260 c0x0000 (---------------)  + I strand
+-	0x00236d07, // n0x1261 c0x0000 (---------------)  + I stranda
+-	0x00208d45, // n0x1262 c0x0000 (---------------)  + I stryn
+-	0x002355c4, // n0x1263 c0x0000 (---------------)  + I sula
+-	0x00207486, // n0x1264 c0x0000 (---------------)  + I suldal
+-	0x00205984, // n0x1265 c0x0000 (---------------)  + I sund
+-	0x002aa3c7, // n0x1266 c0x0000 (---------------)  + I sunndal
+-	0x002d29c8, // n0x1267 c0x0000 (---------------)  + I surnadal
+-	0x392ebac8, // n0x1268 c0x00e4 (n0x1376-n0x1377)  + I svalbard
+-	0x002ebf05, // n0x1269 c0x0000 (---------------)  + I sveio
+-	0x002ec047, // n0x126a c0x0000 (---------------)  + I svelvik
+-	0x0028d389, // n0x126b c0x0000 (---------------)  + I sykkylven
+-	0x00232d44, // n0x126c c0x0000 (---------------)  + I tana
+-	0x002e6b08, // n0x126d c0x0000 (---------------)  + I tananger
+-	0x396a9f88, // n0x126e c0x00e5 (n0x1377-n0x1379)  o I telemark
+-	0x0024f6c4, // n0x126f c0x0000 (---------------)  + I time
+-	0x00238608, // n0x1270 c0x0000 (---------------)  + I tingvoll
+-	0x002bc284, // n0x1271 c0x0000 (---------------)  + I tinn
+-	0x0023ac49, // n0x1272 c0x0000 (---------------)  + I tjeldsund
+-	0x0023bbc5, // n0x1273 c0x0000 (---------------)  + I tjome
+-	0x39a3a842, // n0x1274 c0x00e6 (n0x1379-n0x137a)  + I tm
+-	0x00298c45, // n0x1275 c0x0000 (---------------)  + I tokke
+-	0x0021b405, // n0x1276 c0x0000 (---------------)  + I tolga
+-	0x003065c8, // n0x1277 c0x0000 (---------------)  + I tonsberg
+-	0x0024e847, // n0x1278 c0x0000 (---------------)  + I torsken
+-	0x39e08d82, // n0x1279 c0x00e7 (n0x137a-n0x137b)  + I tr
+-	0x00289f05, // n0x127a c0x0000 (---------------)  + I trana
+-	0x00291806, // n0x127b c0x0000 (---------------)  + I tranby
+-	0x002a9106, // n0x127c c0x0000 (---------------)  + I tranoy
+-	0x002c2e88, // n0x127d c0x0000 (---------------)  + I troandin
+-	0x002c4748, // n0x127e c0x0000 (---------------)  + I trogstad
+-	0x002d2ec6, // n0x127f c0x0000 (---------------)  + I tromsa
+-	0x002d1c86, // n0x1280 c0x0000 (---------------)  + I tromso
+-	0x00241f49, // n0x1281 c0x0000 (---------------)  + I trondheim
+-	0x0031ed06, // n0x1282 c0x0000 (---------------)  + I trysil
+-	0x00343e0b, // n0x1283 c0x0000 (---------------)  + I tvedestrand
+-	0x0034a485, // n0x1284 c0x0000 (---------------)  + I tydal
+-	0x0020d986, // n0x1285 c0x0000 (---------------)  + I tynset
+-	0x0023e0c8, // n0x1286 c0x0000 (---------------)  + I tysfjord
+-	0x002be206, // n0x1287 c0x0000 (---------------)  + I tysnes
+-	0x002c5986, // n0x1288 c0x0000 (---------------)  + I tysvar
+-	0x002e7dca, // n0x1289 c0x0000 (---------------)  + I ullensaker
+-	0x0034690a, // n0x128a c0x0000 (---------------)  + I ullensvang
+-	0x0025e205, // n0x128b c0x0000 (---------------)  + I ulvik
+-	0x00328e87, // n0x128c c0x0000 (---------------)  + I unjarga
+-	0x00265e06, // n0x128d c0x0000 (---------------)  + I utsira
+-	0x3a206f02, // n0x128e c0x00e8 (n0x137b-n0x137c)  + I va
+-	0x00290c47, // n0x128f c0x0000 (---------------)  + I vaapste
+-	0x002663c5, // n0x1290 c0x0000 (---------------)  + I vadso
+-	0x002c7d44, // n0x1291 c0x0000 (---------------)  + I vaga
+-	0x002c7d45, // n0x1292 c0x0000 (---------------)  + I vagan
+-	0x002a5846, // n0x1293 c0x0000 (---------------)  + I vagsoy
+-	0x0028df47, // n0x1294 c0x0000 (---------------)  + I vaksdal
+-	0x00219545, // n0x1295 c0x0000 (---------------)  + I valle
+-	0x002d3544, // n0x1296 c0x0000 (---------------)  + I vang
+-	0x002115c8, // n0x1297 c0x0000 (---------------)  + I vanylven
+-	0x002c5a45, // n0x1298 c0x0000 (---------------)  + I vardo
+-	0x002eaac7, // n0x1299 c0x0000 (---------------)  + I varggat
+-	0x00346645, // n0x129a c0x0000 (---------------)  + I varoy
+-	0x0025dd85, // n0x129b c0x0000 (---------------)  + I vefsn
+-	0x002b5504, // n0x129c c0x0000 (---------------)  + I vega
+-	0x002b5509, // n0x129d c0x0000 (---------------)  + I vegarshei
+-	0x00267648, // n0x129e c0x0000 (---------------)  + I vennesla
+-	0x002eac86, // n0x129f c0x0000 (---------------)  + I verdal
+-	0x00282246, // n0x12a0 c0x0000 (---------------)  + I verran
+-	0x00297886, // n0x12a1 c0x0000 (---------------)  + I vestby
+-	0x3a6e1988, // n0x12a2 c0x00e9 (n0x137c-n0x137d)  o I vestfold
+-	0x002e7b87, // n0x12a3 c0x0000 (---------------)  + I vestnes
+-	0x002ed64d, // n0x12a4 c0x0000 (---------------)  + I vestre-slidre
+-	0x002edf8c, // n0x12a5 c0x0000 (---------------)  + I vestre-toten
+-	0x002ee609, // n0x12a6 c0x0000 (---------------)  + I vestvagoy
+-	0x002ee849, // n0x12a7 c0x0000 (---------------)  + I vevelstad
+-	0x3ab15602, // n0x12a8 c0x00ea (n0x137d-n0x137e)  + I vf
+-	0x00348ac3, // n0x12a9 c0x0000 (---------------)  + I vgs
+-	0x00209543, // n0x12aa c0x0000 (---------------)  + I vik
+-	0x002329c5, // n0x12ab c0x0000 (---------------)  + I vikna
+-	0x0031dc8a, // n0x12ac c0x0000 (---------------)  + I vindafjord
+-	0x002fb846, // n0x12ad c0x0000 (---------------)  + I voagat
+-	0x00215245, // n0x12ae c0x0000 (---------------)  + I volda
+-	0x002f3ec4, // n0x12af c0x0000 (---------------)  + I voss
+-	0x002f3ecb, // n0x12b0 c0x0000 (---------------)  + I vossevangen
+-	0x002e0f4c, // n0x12b1 c0x0000 (---------------)  + I xn--andy-ira
+-	0x002ed34c, // n0x12b2 c0x0000 (---------------)  + I xn--asky-ira
+-	0x0034c255, // n0x12b3 c0x0000 (---------------)  + I xn--aurskog-hland-jnb
+-	0x0034e78d, // n0x12b4 c0x0000 (---------------)  + I xn--avery-yua
+-	0x002f4b8f, // n0x12b5 c0x0000 (---------------)  + I xn--bdddj-mrabd
+-	0x002f4f52, // n0x12b6 c0x0000 (---------------)  + I xn--bearalvhki-y4a
+-	0x002f53cf, // n0x12b7 c0x0000 (---------------)  + I xn--berlevg-jxa
+-	0x002f5792, // n0x12b8 c0x0000 (---------------)  + I xn--bhcavuotna-s4a
+-	0x002f5c13, // n0x12b9 c0x0000 (---------------)  + I xn--bhccavuotna-k7a
+-	0x002f60cd, // n0x12ba c0x0000 (---------------)  + I xn--bidr-5nac
+-	0x002f668d, // n0x12bb c0x0000 (---------------)  + I xn--bievt-0qa
+-	0x002f69ce, // n0x12bc c0x0000 (---------------)  + I xn--bjarky-fya
+-	0x002f710e, // n0x12bd c0x0000 (---------------)  + I xn--bjddar-pta
+-	0x002f760c, // n0x12be c0x0000 (---------------)  + I xn--blt-elab
+-	0x002f798c, // n0x12bf c0x0000 (---------------)  + I xn--bmlo-gra
+-	0x002f840b, // n0x12c0 c0x0000 (---------------)  + I xn--bod-2na
+-	0x002f90ce, // n0x12c1 c0x0000 (---------------)  + I xn--brnny-wuac
+-	0x002fa7d2, // n0x12c2 c0x0000 (---------------)  + I xn--brnnysund-m8ac
+-	0x002fb60c, // n0x12c3 c0x0000 (---------------)  + I xn--brum-voa
+-	0x002fb9d0, // n0x12c4 c0x0000 (---------------)  + I xn--btsfjord-9za
+-	0x002fe292, // n0x12c5 c0x0000 (---------------)  + I xn--davvenjrga-y4a
+-	0x002fe70c, // n0x12c6 c0x0000 (---------------)  + I xn--dnna-gra
+-	0x002fef0d, // n0x12c7 c0x0000 (---------------)  + I xn--drbak-wua
+-	0x002ff24c, // n0x12c8 c0x0000 (---------------)  + I xn--dyry-ira
+-	0x002ff551, // n0x12c9 c0x0000 (---------------)  + I xn--eveni-0qa01ga
+-	0x002ff98d, // n0x12ca c0x0000 (---------------)  + I xn--finny-yua
+-	0x003006cd, // n0x12cb c0x0000 (---------------)  + I xn--fjord-lra
+-	0x00300a0a, // n0x12cc c0x0000 (---------------)  + I xn--fl-zia
+-	0x00300c8c, // n0x12cd c0x0000 (---------------)  + I xn--flor-jra
+-	0x003012cc, // n0x12ce c0x0000 (---------------)  + I xn--frde-gra
+-	0x0030164c, // n0x12cf c0x0000 (---------------)  + I xn--frna-woa
+-	0x0030208c, // n0x12d0 c0x0000 (---------------)  + I xn--frya-hra
+-	0x00305413, // n0x12d1 c0x0000 (---------------)  + I xn--ggaviika-8ya47h
+-	0x00305b90, // n0x12d2 c0x0000 (---------------)  + I xn--gildeskl-g0a
+-	0x00305f90, // n0x12d3 c0x0000 (---------------)  + I xn--givuotna-8ya
+-	0x003067cd, // n0x12d4 c0x0000 (---------------)  + I xn--gjvik-wua
+-	0x00306b0c, // n0x12d5 c0x0000 (---------------)  + I xn--gls-elac
+-	0x00309389, // n0x12d6 c0x0000 (---------------)  + I xn--h-2fa
+-	0x0030aa0d, // n0x12d7 c0x0000 (---------------)  + I xn--hbmer-xqa
+-	0x0030ad53, // n0x12d8 c0x0000 (---------------)  + I xn--hcesuolo-7ya35b
+-	0x0030d151, // n0x12d9 c0x0000 (---------------)  + I xn--hgebostad-g3a
+-	0x0030d593, // n0x12da c0x0000 (---------------)  + I xn--hmmrfeasta-s4ac
+-	0x0030e40f, // n0x12db c0x0000 (---------------)  + I xn--hnefoss-q1a
+-	0x0030e7cc, // n0x12dc c0x0000 (---------------)  + I xn--hobl-ira
+-	0x0030eacf, // n0x12dd c0x0000 (---------------)  + I xn--holtlen-hxa
+-	0x0030ee8d, // n0x12de c0x0000 (---------------)  + I xn--hpmir-xqa
+-	0x0030f1cf, // n0x12df c0x0000 (---------------)  + I xn--hyanger-q1a
+-	0x0030f590, // n0x12e0 c0x0000 (---------------)  + I xn--hylandet-54a
+-	0x0030f98e, // n0x12e1 c0x0000 (---------------)  + I xn--indery-fya
+-	0x00310f8e, // n0x12e2 c0x0000 (---------------)  + I xn--jlster-bya
+-	0x00311b10, // n0x12e3 c0x0000 (---------------)  + I xn--jrpeland-54a
+-	0x00311f0d, // n0x12e4 c0x0000 (---------------)  + I xn--karmy-yua
+-	0x0031224e, // n0x12e5 c0x0000 (---------------)  + I xn--kfjord-iua
+-	0x003125cc, // n0x12e6 c0x0000 (---------------)  + I xn--klbu-woa
+-	0x003128d3, // n0x12e7 c0x0000 (---------------)  + I xn--koluokta-7ya57h
+-	0x003133ce, // n0x12e8 c0x0000 (---------------)  + I xn--krager-gya
+-	0x00313c50, // n0x12e9 c0x0000 (---------------)  + I xn--kranghke-b0a
+-	0x00314051, // n0x12ea c0x0000 (---------------)  + I xn--krdsherad-m8a
+-	0x0031448f, // n0x12eb c0x0000 (---------------)  + I xn--krehamn-dxa
+-	0x00314853, // n0x12ec c0x0000 (---------------)  + I xn--krjohka-hwab49j
+-	0x0031518d, // n0x12ed c0x0000 (---------------)  + I xn--ksnes-uua
+-	0x003154cf, // n0x12ee c0x0000 (---------------)  + I xn--kvfjord-nxa
+-	0x0031588e, // n0x12ef c0x0000 (---------------)  + I xn--kvitsy-fya
+-	0x00315e50, // n0x12f0 c0x0000 (---------------)  + I xn--kvnangen-k0a
+-	0x00316249, // n0x12f1 c0x0000 (---------------)  + I xn--l-1fa
+-	0x00316950, // n0x12f2 c0x0000 (---------------)  + I xn--laheadju-7ya
+-	0x00316f4f, // n0x12f3 c0x0000 (---------------)  + I xn--langevg-jxa
+-	0x003175cf, // n0x12f4 c0x0000 (---------------)  + I xn--ldingen-q1a
+-	0x00317992, // n0x12f5 c0x0000 (---------------)  + I xn--leagaviika-52b
+-	0x0031a5ce, // n0x12f6 c0x0000 (---------------)  + I xn--lesund-hua
+-	0x0031ae8d, // n0x12f7 c0x0000 (---------------)  + I xn--lgrd-poac
+-	0x0031b68d, // n0x12f8 c0x0000 (---------------)  + I xn--lhppi-xqa
+-	0x0031b9cd, // n0x12f9 c0x0000 (---------------)  + I xn--linds-pra
+-	0x0031ca0d, // n0x12fa c0x0000 (---------------)  + I xn--loabt-0qa
+-	0x0031cd4d, // n0x12fb c0x0000 (---------------)  + I xn--lrdal-sra
+-	0x0031d090, // n0x12fc c0x0000 (---------------)  + I xn--lrenskog-54a
+-	0x0031d48b, // n0x12fd c0x0000 (---------------)  + I xn--lt-liac
+-	0x0031d94c, // n0x12fe c0x0000 (---------------)  + I xn--lten-gra
+-	0x0031df0c, // n0x12ff c0x0000 (---------------)  + I xn--lury-ira
+-	0x0031e20c, // n0x1300 c0x0000 (---------------)  + I xn--mely-ira
+-	0x0031e50e, // n0x1301 c0x0000 (---------------)  + I xn--merker-kua
+-	0x003241d0, // n0x1302 c0x0000 (---------------)  + I xn--mjndalen-64a
+-	0x00324e52, // n0x1303 c0x0000 (---------------)  + I xn--mlatvuopmi-s4a
+-	0x003252cb, // n0x1304 c0x0000 (---------------)  + I xn--mli-tla
+-	0x0032574e, // n0x1305 c0x0000 (---------------)  + I xn--mlselv-iua
+-	0x00325ace, // n0x1306 c0x0000 (---------------)  + I xn--moreke-jua
+-	0x00325e4e, // n0x1307 c0x0000 (---------------)  + I xn--mosjen-eya
+-	0x003262cb, // n0x1308 c0x0000 (---------------)  + I xn--mot-tla
+-	0x3af26716, // n0x1309 c0x00eb (n0x137e-n0x1380)  o I xn--mre-og-romsdal-qqb
+-	0x0032750d, // n0x130a c0x0000 (---------------)  + I xn--msy-ula0h
+-	0x00328094, // n0x130b c0x0000 (---------------)  + I xn--mtta-vrjjat-k7af
+-	0x0032904d, // n0x130c c0x0000 (---------------)  + I xn--muost-0qa
+-	0x00329895, // n0x130d c0x0000 (---------------)  + I xn--nmesjevuemie-tcba
+-	0x0032a94d, // n0x130e c0x0000 (---------------)  + I xn--nry-yla5g
+-	0x0032ac8f, // n0x130f c0x0000 (---------------)  + I xn--nttery-byae
+-	0x0032b68f, // n0x1310 c0x0000 (---------------)  + I xn--nvuotna-hwa
+-	0x0032dc4f, // n0x1311 c0x0000 (---------------)  + I xn--oppegrd-ixa
+-	0x0032e00e, // n0x1312 c0x0000 (---------------)  + I xn--ostery-fya
+-	0x0032e58d, // n0x1313 c0x0000 (---------------)  + I xn--osyro-wua
+-	0x0032f7d1, // n0x1314 c0x0000 (---------------)  + I xn--porsgu-sta26f
+-	0x0032fe0c, // n0x1315 c0x0000 (---------------)  + I xn--rady-ira
+-	0x0033010c, // n0x1316 c0x0000 (---------------)  + I xn--rdal-poa
+-	0x0033040b, // n0x1317 c0x0000 (---------------)  + I xn--rde-ula
+-	0x003306cc, // n0x1318 c0x0000 (---------------)  + I xn--rdy-0nab
+-	0x00330d4f, // n0x1319 c0x0000 (---------------)  + I xn--rennesy-v1a
+-	0x00331112, // n0x131a c0x0000 (---------------)  + I xn--rhkkervju-01af
+-	0x0033170d, // n0x131b c0x0000 (---------------)  + I xn--rholt-mra
+-	0x0033218c, // n0x131c c0x0000 (---------------)  + I xn--risa-5na
+-	0x00332b4c, // n0x131d c0x0000 (---------------)  + I xn--risr-ira
+-	0x00332e4d, // n0x131e c0x0000 (---------------)  + I xn--rland-uua
+-	0x0033318f, // n0x131f c0x0000 (---------------)  + I xn--rlingen-mxa
+-	0x0033354e, // n0x1320 c0x0000 (---------------)  + I xn--rmskog-bya
+-	0x003338cc, // n0x1321 c0x0000 (---------------)  + I xn--rros-gra
+-	0x00333d4d, // n0x1322 c0x0000 (---------------)  + I xn--rskog-uua
+-	0x0033408b, // n0x1323 c0x0000 (---------------)  + I xn--rst-0na
+-	0x0033440c, // n0x1324 c0x0000 (---------------)  + I xn--rsta-fra
+-	0x0033498d, // n0x1325 c0x0000 (---------------)  + I xn--ryken-vua
+-	0x00334cce, // n0x1326 c0x0000 (---------------)  + I xn--ryrvik-bya
+-	0x00335049, // n0x1327 c0x0000 (---------------)  + I xn--s-1fa
+-	0x00336a53, // n0x1328 c0x0000 (---------------)  + I xn--sandnessjen-ogb
+-	0x0033754d, // n0x1329 c0x0000 (---------------)  + I xn--sandy-yua
+-	0x0033788d, // n0x132a c0x0000 (---------------)  + I xn--seral-lra
+-	0x00337bcc, // n0x132b c0x0000 (---------------)  + I xn--sgne-gra
+-	0x00337f0e, // n0x132c c0x0000 (---------------)  + I xn--skierv-uta
+-	0x0033870f, // n0x132d c0x0000 (---------------)  + I xn--skjervy-v1a
+-	0x00338acc, // n0x132e c0x0000 (---------------)  + I xn--skjk-soa
+-	0x00338dcd, // n0x132f c0x0000 (---------------)  + I xn--sknit-yqa
+-	0x0033910f, // n0x1330 c0x0000 (---------------)  + I xn--sknland-fxa
+-	0x003394cc, // n0x1331 c0x0000 (---------------)  + I xn--slat-5na
+-	0x0033994c, // n0x1332 c0x0000 (---------------)  + I xn--slt-elab
+-	0x00339d0c, // n0x1333 c0x0000 (---------------)  + I xn--smla-hra
+-	0x0033a00c, // n0x1334 c0x0000 (---------------)  + I xn--smna-gra
+-	0x0033a30d, // n0x1335 c0x0000 (---------------)  + I xn--snase-nra
+-	0x0033a652, // n0x1336 c0x0000 (---------------)  + I xn--sndre-land-0cb
+-	0x0033ab0c, // n0x1337 c0x0000 (---------------)  + I xn--snes-poa
+-	0x0033ae0c, // n0x1338 c0x0000 (---------------)  + I xn--snsa-roa
+-	0x0033b111, // n0x1339 c0x0000 (---------------)  + I xn--sr-aurdal-l8a
+-	0x0033b54f, // n0x133a c0x0000 (---------------)  + I xn--sr-fron-q1a
+-	0x0033b90f, // n0x133b c0x0000 (---------------)  + I xn--sr-odal-q1a
+-	0x0033bcd3, // n0x133c c0x0000 (---------------)  + I xn--sr-varanger-ggb
+-	0x0033c38e, // n0x133d c0x0000 (---------------)  + I xn--srfold-bya
+-	0x0033c70f, // n0x133e c0x0000 (---------------)  + I xn--srreisa-q1a
+-	0x0033cacc, // n0x133f c0x0000 (---------------)  + I xn--srum-gra
+-	0x3b33cdce, // n0x1340 c0x00ec (n0x1380-n0x1381)  o I xn--stfold-9xa
+-	0x0033d14f, // n0x1341 c0x0000 (---------------)  + I xn--stjrdal-s1a
+-	0x0033d516, // n0x1342 c0x0000 (---------------)  + I xn--stjrdalshalsen-sqb
+-	0x0033e192, // n0x1343 c0x0000 (---------------)  + I xn--stre-toten-zcb
+-	0x0034064c, // n0x1344 c0x0000 (---------------)  + I xn--tjme-hra
+-	0x003427cf, // n0x1345 c0x0000 (---------------)  + I xn--tnsberg-q1a
+-	0x00342b8d, // n0x1346 c0x0000 (---------------)  + I xn--trany-yua
+-	0x00342ecf, // n0x1347 c0x0000 (---------------)  + I xn--trgstad-r1a
+-	0x0034328c, // n0x1348 c0x0000 (---------------)  + I xn--trna-woa
+-	0x0034358d, // n0x1349 c0x0000 (---------------)  + I xn--troms-zua
+-	0x003438cd, // n0x134a c0x0000 (---------------)  + I xn--tysvr-vra
+-	0x0034438e, // n0x134b c0x0000 (---------------)  + I xn--unjrga-rta
+-	0x0034488c, // n0x134c c0x0000 (---------------)  + I xn--vads-jra
+-	0x00344b8c, // n0x134d c0x0000 (---------------)  + I xn--vard-jra
+-	0x00344e90, // n0x134e c0x0000 (---------------)  + I xn--vegrshei-c0a
+-	0x00345291, // n0x134f c0x0000 (---------------)  + I xn--vestvgy-ixa6o
+-	0x003456cb, // n0x1350 c0x0000 (---------------)  + I xn--vg-yiab
+-	0x003486cc, // n0x1351 c0x0000 (---------------)  + I xn--vgan-qoa
+-	0x003489ce, // n0x1352 c0x0000 (---------------)  + I xn--vgsy-qoa0j
+-	0x00349411, // n0x1353 c0x0000 (---------------)  + I xn--vre-eiker-k8a
+-	0x0034984e, // n0x1354 c0x0000 (---------------)  + I xn--vrggt-xqad
+-	0x00349bcd, // n0x1355 c0x0000 (---------------)  + I xn--vry-yla5g
+-	0x0034b30b, // n0x1356 c0x0000 (---------------)  + I xn--yer-zna
+-	0x0034bb8f, // n0x1357 c0x0000 (---------------)  + I xn--ygarden-p1a
+-	0x0034d254, // n0x1358 c0x0000 (---------------)  + I xn--ystre-slidre-ujb
+-	0x0023c7c2, // n0x1359 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x135a c0x0000 (---------------)  + I gs
+-	0x0020f783, // n0x135b c0x0000 (---------------)  + I nes
+-	0x0023c7c2, // n0x135c c0x0000 (---------------)  + I gs
+-	0x0020f783, // n0x135d c0x0000 (---------------)  + I nes
+-	0x0023c7c2, // n0x135e c0x0000 (---------------)  + I gs
+-	0x00208982, // n0x135f c0x0000 (---------------)  + I os
+-	0x003315c5, // n0x1360 c0x0000 (---------------)  + I valer
+-	0x0034910c, // n0x1361 c0x0000 (---------------)  + I xn--vler-qoa
+-	0x0023c7c2, // n0x1362 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x1363 c0x0000 (---------------)  + I gs
+-	0x00208982, // n0x1364 c0x0000 (---------------)  + I os
+-	0x0023c7c2, // n0x1365 c0x0000 (---------------)  + I gs
+-	0x0029aac5, // n0x1366 c0x0000 (---------------)  + I heroy
+-	0x002a1a45, // n0x1367 c0x0000 (---------------)  + I sande
+-	0x0023c7c2, // n0x1368 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x1369 c0x0000 (---------------)  + I gs
+-	0x002033c2, // n0x136a c0x0000 (---------------)  + I bo
+-	0x0029aac5, // n0x136b c0x0000 (---------------)  + I heroy
+-	0x0034ed49, // n0x136c c0x0000 (---------------)  + I xn--b-5ga
+-	0x0030ce4c, // n0x136d c0x0000 (---------------)  + I xn--hery-ira
+-	0x0023c7c2, // n0x136e c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x136f c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x1370 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x1371 c0x0000 (---------------)  + I gs
+-	0x003315c5, // n0x1372 c0x0000 (---------------)  + I valer
+-	0x0023c7c2, // n0x1373 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x1374 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x1375 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x1376 c0x0000 (---------------)  + I gs
+-	0x002033c2, // n0x1377 c0x0000 (---------------)  + I bo
+-	0x0034ed49, // n0x1378 c0x0000 (---------------)  + I xn--b-5ga
+-	0x0023c7c2, // n0x1379 c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x137a c0x0000 (---------------)  + I gs
+-	0x0023c7c2, // n0x137b c0x0000 (---------------)  + I gs
+-	0x002a1a45, // n0x137c c0x0000 (---------------)  + I sande
+-	0x0023c7c2, // n0x137d c0x0000 (---------------)  + I gs
+-	0x002a1a45, // n0x137e c0x0000 (---------------)  + I sande
+-	0x0030ce4c, // n0x137f c0x0000 (---------------)  + I xn--hery-ira
+-	0x0034910c, // n0x1380 c0x0000 (---------------)  + I xn--vler-qoa
+-	0x0030c243, // n0x1381 c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x1382 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1383 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x1384 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x1385 c0x0000 (---------------)  + I info
+-	0x00214843, // n0x1386 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1387 c0x0000 (---------------)  + I org
+-	0x000bb348, // n0x1388 c0x0000 (---------------)  +   merseine
+-	0x000f2544, // n0x1389 c0x0000 (---------------)  +   mine
+-	0x0011eb48, // n0x138a c0x0000 (---------------)  +   shacknet
+-	0x3c20d642, // n0x138b c0x00f0 (n0x138c-n0x138d)  o I co
+-	0x0003c708, // n0x138c c0x0000 (---------------)  +   blogspot
+-	0x0063dbca, // n0x138d c0x0001 (---------------)  ! I mediaphone
+-	0x0060d3c6, // n0x138e c0x0001 (---------------)  ! I nawras
+-	0x0060d3cd, // n0x138f c0x0001 (---------------)  ! I nawrastelecom
+-	0x0070320a, // n0x1390 c0x0001 (---------------)  ! I omanmobile
+-	0x00685648, // n0x1391 c0x0001 (---------------)  ! I omanpost
+-	0x006d0cc7, // n0x1392 c0x0001 (---------------)  ! I omantel
+-	0x0073f54c, // n0x1393 c0x0001 (---------------)  ! I rakpetroleum
+-	0x0066c647, // n0x1394 c0x0001 (---------------)  ! I siemens
+-	0x00653a08, // n0x1395 c0x0001 (---------------)  ! I songfest
+-	0x006b5dcc, // n0x1396 c0x0001 (---------------)  ! I statecouncil
+-	0x000138c2, // n0x1397 c0x0000 (---------------)  +   ae
+-	0x00005c07, // n0x1398 c0x0000 (---------------)  +   blogdns
+-	0x000c87c8, // n0x1399 c0x0000 (---------------)  +   blogsite
+-	0x0011f352, // n0x139a c0x0000 (---------------)  +   boldlygoingnowhere
+-	0x000357c8, // n0x139b c0x0000 (---------------)  +   dnsalias
+-	0x00062ac7, // n0x139c c0x0000 (---------------)  +   dnsdojo
+-	0x000a33cb, // n0x139d c0x0000 (---------------)  +   doesntexist
+-	0x00106f09, // n0x139e c0x0000 (---------------)  +   dontexist
+-	0x000356c7, // n0x139f c0x0000 (---------------)  +   doomdns
+-	0x00062a06, // n0x13a0 c0x0000 (---------------)  +   dvrdns
+-	0x0000e508, // n0x13a1 c0x0000 (---------------)  +   dynalias
+-	0x3cc04a46, // n0x13a2 c0x00f3 (n0x13cc-n0x13ce)  +   dyndns
+-	0x00092c4d, // n0x13a3 c0x0000 (---------------)  +   endofinternet
+-	0x0002a490, // n0x13a4 c0x0000 (---------------)  +   endoftheinternet
+-	0x0005a747, // n0x13a5 c0x0000 (---------------)  +   from-me
+-	0x0007bcc9, // n0x13a6 c0x0000 (---------------)  +   game-host
+-	0x00049846, // n0x13a7 c0x0000 (---------------)  +   gotdns
+-	0x0003ef4a, // n0x13a8 c0x0000 (---------------)  +   hobby-site
+-	0x00071247, // n0x13a9 c0x0000 (---------------)  +   homedns
+-	0x0000ee47, // n0x13aa c0x0000 (---------------)  +   homeftp
+-	0x0008fcc9, // n0x13ab c0x0000 (---------------)  +   homelinux
+-	0x00090148, // n0x13ac c0x0000 (---------------)  +   homeunix
+-	0x0003198e, // n0x13ad c0x0000 (---------------)  +   is-a-bruinsfan
+-	0x0002304e, // n0x13ae c0x0000 (---------------)  +   is-a-candidate
+-	0x0005428f, // n0x13af c0x0000 (---------------)  +   is-a-celticsfan
+-	0x00054949, // n0x13b0 c0x0000 (---------------)  +   is-a-chef
+-	0x0005c709, // n0x13b1 c0x0000 (---------------)  +   is-a-geek
+-	0x0006cecb, // n0x13b2 c0x0000 (---------------)  +   is-a-knight
+-	0x0008868f, // n0x13b3 c0x0000 (---------------)  +   is-a-linux-user
+-	0x0011c70c, // n0x13b4 c0x0000 (---------------)  +   is-a-patsfan
+-	0x000a5d8b, // n0x13b5 c0x0000 (---------------)  +   is-a-soxfan
+-	0x00142488, // n0x13b6 c0x0000 (---------------)  +   is-found
+-	0x000ddf47, // n0x13b7 c0x0000 (---------------)  +   is-lost
+-	0x000e76c8, // n0x13b8 c0x0000 (---------------)  +   is-saved
+-	0x001019cb, // n0x13b9 c0x0000 (---------------)  +   is-very-bad
+-	0x00107acc, // n0x13ba c0x0000 (---------------)  +   is-very-evil
+-	0x0010fdcc, // n0x13bb c0x0000 (---------------)  +   is-very-good
+-	0x0011038c, // n0x13bc c0x0000 (---------------)  +   is-very-nice
+-	0x0011be8d, // n0x13bd c0x0000 (---------------)  +   is-very-sweet
+-	0x0008e588, // n0x13be c0x0000 (---------------)  +   isa-geek
+-	0x00026bc9, // n0x13bf c0x0000 (---------------)  +   kicks-ass
+-	0x001295cb, // n0x13c0 c0x0000 (---------------)  +   misconfused
+-	0x000ce747, // n0x13c1 c0x0000 (---------------)  +   podzone
+-	0x000c864a, // n0x13c2 c0x0000 (---------------)  +   readmyblog
+-	0x00109ac6, // n0x13c3 c0x0000 (---------------)  +   selfip
+-	0x0012b04d, // n0x13c4 c0x0000 (---------------)  +   sellsyourhome
+-	0x000edb88, // n0x13c5 c0x0000 (---------------)  +   servebbs
+-	0x000f2688, // n0x13c6 c0x0000 (---------------)  +   serveftp
+-	0x000f8789, // n0x13c7 c0x0000 (---------------)  +   servegame
+-	0x000ea3cc, // n0x13c8 c0x0000 (---------------)  +   stuff-4-sale
+-	0x00001f42, // n0x13c9 c0x0000 (---------------)  +   us
+-	0x000141c6, // n0x13ca c0x0000 (---------------)  +   webhop
+-	0x00001142, // n0x13cb c0x0000 (---------------)  +   za
+-	0x00000482, // n0x13cc c0x0000 (---------------)  +   go
+-	0x0000ee44, // n0x13cd c0x0000 (---------------)  +   home
+-	0x00203383, // n0x13ce c0x0000 (---------------)  + I abo
+-	0x00206c42, // n0x13cf c0x0000 (---------------)  + I ac
+-	0x0020d643, // n0x13d0 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x13d1 c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x13d2 c0x0000 (---------------)  + I gob
+-	0x002027c3, // n0x13d3 c0x0000 (---------------)  + I ing
+-	0x0023dbc3, // n0x13d4 c0x0000 (---------------)  + I med
+-	0x00214843, // n0x13d5 c0x0000 (---------------)  + I net
+-	0x00216583, // n0x13d6 c0x0000 (---------------)  + I nom
+-	0x0023e983, // n0x13d7 c0x0000 (---------------)  + I org
+-	0x002e1643, // n0x13d8 c0x0000 (---------------)  + I sld
+-	0x0020d643, // n0x13d9 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x13da c0x0000 (---------------)  + I edu
+-	0x00265483, // n0x13db c0x0000 (---------------)  + I gob
+-	0x0022f003, // n0x13dc c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x13dd c0x0000 (---------------)  + I net
+-	0x00216583, // n0x13de c0x0000 (---------------)  + I nom
+-	0x0023e983, // n0x13df c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x13e0 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x13e1 c0x0000 (---------------)  + I edu
+-	0x0023e983, // n0x13e2 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x13e3 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x13e4 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x13e5 c0x0000 (---------------)  + I gov
+-	0x00200781, // n0x13e6 c0x0000 (---------------)  + I i
+-	0x0022f003, // n0x13e7 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x13e8 c0x0000 (---------------)  + I net
+-	0x00200443, // n0x13e9 c0x0000 (---------------)  + I ngo
+-	0x0023e983, // n0x13ea c0x0000 (---------------)  + I org
+-	0x0030c243, // n0x13eb c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x13ec c0x0000 (---------------)  + I com
+-	0x002df843, // n0x13ed c0x0000 (---------------)  + I edu
+-	0x002724c3, // n0x13ee c0x0000 (---------------)  + I fam
+-	0x00265483, // n0x13ef c0x0000 (---------------)  + I gob
+-	0x002cd6c3, // n0x13f0 c0x0000 (---------------)  + I gok
+-	0x00260ac3, // n0x13f1 c0x0000 (---------------)  + I gon
+-	0x0020cf83, // n0x13f2 c0x0000 (---------------)  + I gop
+-	0x0021fc83, // n0x13f3 c0x0000 (---------------)  + I gos
+-	0x00218d43, // n0x13f4 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x13f5 c0x0000 (---------------)  + I info
+-	0x00214843, // n0x13f6 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x13f7 c0x0000 (---------------)  + I org
+-	0x00205e43, // n0x13f8 c0x0000 (---------------)  + I web
+-	0x0022ec45, // n0x13f9 c0x0000 (---------------)  + I 6bone
+-	0x002292c4, // n0x13fa c0x0000 (---------------)  + I agro
+-	0x00250443, // n0x13fb c0x0000 (---------------)  + I aid
+-	0x0020e343, // n0x13fc c0x0000 (---------------)  + I art
+-	0x00285403, // n0x13fd c0x0000 (---------------)  + I atm
+-	0x002c0b48, // n0x13fe c0x0000 (---------------)  + I augustow
+-	0x002bb8c4, // n0x13ff c0x0000 (---------------)  + I auto
+-	0x002512ca, // n0x1400 c0x0000 (---------------)  + I babia-gora
+-	0x00283b06, // n0x1401 c0x0000 (---------------)  + I bedzin
+-	0x00202187, // n0x1402 c0x0000 (---------------)  + I beskidy
+-	0x0021ce0a, // n0x1403 c0x0000 (---------------)  + I bialowieza
+-	0x00298ac9, // n0x1404 c0x0000 (---------------)  + I bialystok
+-	0x00205747, // n0x1405 c0x0000 (---------------)  + I bielawa
+-	0x0020690a, // n0x1406 c0x0000 (---------------)  + I bieszczady
+-	0x0030c243, // n0x1407 c0x0000 (---------------)  + I biz
+-	0x00345a8b, // n0x1408 c0x0000 (---------------)  + I boleslawiec
+-	0x002c9709, // n0x1409 c0x0000 (---------------)  + I bydgoszcz
+-	0x0025e445, // n0x140a c0x0000 (---------------)  + I bytom
+-	0x002c2347, // n0x140b c0x0000 (---------------)  + I cieszyn
+-	0x0000d642, // n0x140c c0x0000 (---------------)  +   co
+-	0x0020d643, // n0x140d c0x0000 (---------------)  + I com
+-	0x002ae147, // n0x140e c0x0000 (---------------)  + I czeladz
+-	0x00221a45, // n0x140f c0x0000 (---------------)  + I czest
+-	0x002e5c49, // n0x1410 c0x0000 (---------------)  + I dlugoleka
+-	0x002df843, // n0x1411 c0x0000 (---------------)  + I edu
+-	0x00222706, // n0x1412 c0x0000 (---------------)  + I elblag
+-	0x002e6843, // n0x1413 c0x0000 (---------------)  + I elk
+-	0x002e0b43, // n0x1414 c0x0000 (---------------)  + I gda
+-	0x002f3286, // n0x1415 c0x0000 (---------------)  + I gdansk
+-	0x00227e46, // n0x1416 c0x0000 (---------------)  + I gdynia
+-	0x00224087, // n0x1417 c0x0000 (---------------)  + I gliwice
+-	0x0022bcc6, // n0x1418 c0x0000 (---------------)  + I glogow
+-	0x00238a05, // n0x1419 c0x0000 (---------------)  + I gmina
+-	0x00229fc7, // n0x141a c0x0000 (---------------)  + I gniezno
+-	0x002f8f07, // n0x141b c0x0000 (---------------)  + I gorlice
+-	0x3ea18d43, // n0x141c c0x00fa (n0x14a4-n0x14ad)  + I gov
+-	0x002f7bc7, // n0x141d c0x0000 (---------------)  + I grajewo
+-	0x00250083, // n0x141e c0x0000 (---------------)  + I gsm
+-	0x00229705, // n0x141f c0x0000 (---------------)  + I ilawa
+-	0x00210e04, // n0x1420 c0x0000 (---------------)  + I info
+-	0x0026e543, // n0x1421 c0x0000 (---------------)  + I irc
+-	0x00313a48, // n0x1422 c0x0000 (---------------)  + I jaworzno
+-	0x0022c04c, // n0x1423 c0x0000 (---------------)  + I jelenia-gora
+-	0x00297a05, // n0x1424 c0x0000 (---------------)  + I jgora
+-	0x002a4586, // n0x1425 c0x0000 (---------------)  + I kalisz
+-	0x002ae007, // n0x1426 c0x0000 (---------------)  + I karpacz
+-	0x00240247, // n0x1427 c0x0000 (---------------)  + I kartuzy
+-	0x0025e307, // n0x1428 c0x0000 (---------------)  + I kaszuby
+-	0x002aa148, // n0x1429 c0x0000 (---------------)  + I katowice
+-	0x0033668f, // n0x142a c0x0000 (---------------)  + I kazimierz-dolny
+-	0x00237145, // n0x142b c0x0000 (---------------)  + I kepno
+-	0x003046c7, // n0x142c c0x0000 (---------------)  + I ketrzyn
+-	0x002e4787, // n0x142d c0x0000 (---------------)  + I klodzko
+-	0x0028fa4a, // n0x142e c0x0000 (---------------)  + I kobierzyce
+-	0x002a9389, // n0x142f c0x0000 (---------------)  + I kolobrzeg
+-	0x002f33c5, // n0x1430 c0x0000 (---------------)  + I konin
+-	0x002f450a, // n0x1431 c0x0000 (---------------)  + I konskowola
+-	0x002a03c6, // n0x1432 c0x0000 (---------------)  + I krakow
+-	0x002aa7c5, // n0x1433 c0x0000 (---------------)  + I kutno
+-	0x002b8b84, // n0x1434 c0x0000 (---------------)  + I lapy
+-	0x0023f286, // n0x1435 c0x0000 (---------------)  + I lebork
+-	0x0023e607, // n0x1436 c0x0000 (---------------)  + I legnica
+-	0x00228107, // n0x1437 c0x0000 (---------------)  + I lezajsk
+-	0x00226088, // n0x1438 c0x0000 (---------------)  + I limanowa
+-	0x002fa405, // n0x1439 c0x0000 (---------------)  + I lomza
+-	0x00221946, // n0x143a c0x0000 (---------------)  + I lowicz
+-	0x00262385, // n0x143b c0x0000 (---------------)  + I lubin
+-	0x002c0505, // n0x143c c0x0000 (---------------)  + I lukow
+-	0x00212a04, // n0x143d c0x0000 (---------------)  + I mail
+-	0x00223ac7, // n0x143e c0x0000 (---------------)  + I malbork
+-	0x0030b7ca, // n0x143f c0x0000 (---------------)  + I malopolska
+-	0x0021b988, // n0x1440 c0x0000 (---------------)  + I mazowsze
+-	0x002e5846, // n0x1441 c0x0000 (---------------)  + I mazury
+-	0x0022b805, // n0x1442 c0x0000 (---------------)  + I mbone
+-	0x0023dbc3, // n0x1443 c0x0000 (---------------)  + I med
+-	0x0023dbc5, // n0x1444 c0x0000 (---------------)  + I media
+-	0x002d4b06, // n0x1445 c0x0000 (---------------)  + I miasta
+-	0x00206706, // n0x1446 c0x0000 (---------------)  + I mielec
+-	0x00341546, // n0x1447 c0x0000 (---------------)  + I mielno
+-	0x0022f003, // n0x1448 c0x0000 (---------------)  + I mil
+-	0x00331987, // n0x1449 c0x0000 (---------------)  + I mragowo
+-	0x002e4705, // n0x144a c0x0000 (---------------)  + I naklo
+-	0x00214843, // n0x144b c0x0000 (---------------)  + I net
+-	0x00200443, // n0x144c c0x0000 (---------------)  + I ngo
+-	0x0020874d, // n0x144d c0x0000 (---------------)  + I nieruchomosci
+-	0x00216583, // n0x144e c0x0000 (---------------)  + I nom
+-	0x00226188, // n0x144f c0x0000 (---------------)  + I nowaruda
+-	0x002cd904, // n0x1450 c0x0000 (---------------)  + I nysa
+-	0x0026b105, // n0x1451 c0x0000 (---------------)  + I olawa
+-	0x0028f946, // n0x1452 c0x0000 (---------------)  + I olecko
+-	0x002bab06, // n0x1453 c0x0000 (---------------)  + I olkusz
+-	0x0020d887, // n0x1454 c0x0000 (---------------)  + I olsztyn
+-	0x002142c7, // n0x1455 c0x0000 (---------------)  + I opoczno
+-	0x00300545, // n0x1456 c0x0000 (---------------)  + I opole
+-	0x0023e983, // n0x1457 c0x0000 (---------------)  + I org
+-	0x00224707, // n0x1458 c0x0000 (---------------)  + I ostroda
+-	0x002619c9, // n0x1459 c0x0000 (---------------)  + I ostroleka
+-	0x00303a49, // n0x145a c0x0000 (---------------)  + I ostrowiec
+-	0x0030de0a, // n0x145b c0x0000 (---------------)  + I ostrowwlkp
+-	0x002dca02, // n0x145c c0x0000 (---------------)  + I pc
+-	0x002296c4, // n0x145d c0x0000 (---------------)  + I pila
+-	0x002cb584, // n0x145e c0x0000 (---------------)  + I pisz
+-	0x002ce007, // n0x145f c0x0000 (---------------)  + I podhale
+-	0x002ce448, // n0x1460 c0x0000 (---------------)  + I podlasie
+-	0x0033fb89, // n0x1461 c0x0000 (---------------)  + I polkowice
+-	0x00233b09, // n0x1462 c0x0000 (---------------)  + I pomorskie
+-	0x002cef47, // n0x1463 c0x0000 (---------------)  + I pomorze
+-	0x00204f86, // n0x1464 c0x0000 (---------------)  + I powiat
+-	0x002cfd06, // n0x1465 c0x0000 (---------------)  + I poznan
+-	0x002d1204, // n0x1466 c0x0000 (---------------)  + I priv
+-	0x002d138a, // n0x1467 c0x0000 (---------------)  + I prochowice
+-	0x002d2188, // n0x1468 c0x0000 (---------------)  + I pruszkow
+-	0x002d2389, // n0x1469 c0x0000 (---------------)  + I przeworsk
+-	0x0028ea46, // n0x146a c0x0000 (---------------)  + I pulawy
+-	0x0029c305, // n0x146b c0x0000 (---------------)  + I radom
+-	0x0021b848, // n0x146c c0x0000 (---------------)  + I rawa-maz
+-	0x002b5c8a, // n0x146d c0x0000 (---------------)  + I realestate
+-	0x00259c43, // n0x146e c0x0000 (---------------)  + I rel
+-	0x00252786, // n0x146f c0x0000 (---------------)  + I rybnik
+-	0x002cf047, // n0x1470 c0x0000 (---------------)  + I rzeszow
+-	0x003480c5, // n0x1471 c0x0000 (---------------)  + I sanok
+-	0x002cd7c5, // n0x1472 c0x0000 (---------------)  + I sejny
+-	0x003461c3, // n0x1473 c0x0000 (---------------)  + I sex
+-	0x003040c4, // n0x1474 c0x0000 (---------------)  + I shop
+-	0x002ce587, // n0x1475 c0x0000 (---------------)  + I siedlce
+-	0x00223f05, // n0x1476 c0x0000 (---------------)  + I sklep
+-	0x00270b07, // n0x1477 c0x0000 (---------------)  + I skoczow
+-	0x00267785, // n0x1478 c0x0000 (---------------)  + I slask
+-	0x002e17c6, // n0x1479 c0x0000 (---------------)  + I slupsk
+-	0x002e2705, // n0x147a c0x0000 (---------------)  + I sopot
+-	0x0028a083, // n0x147b c0x0000 (---------------)  + I sos
+-	0x0028a089, // n0x147c c0x0000 (---------------)  + I sosnowiec
+-	0x0026aecc, // n0x147d c0x0000 (---------------)  + I stalowa-wola
+-	0x0029f40c, // n0x147e c0x0000 (---------------)  + I starachowice
+-	0x00267e08, // n0x147f c0x0000 (---------------)  + I stargard
+-	0x002d6ec7, // n0x1480 c0x0000 (---------------)  + I suwalki
+-	0x002ec608, // n0x1481 c0x0000 (---------------)  + I swidnica
+-	0x002ec94a, // n0x1482 c0x0000 (---------------)  + I swiebodzin
+-	0x002ecd0b, // n0x1483 c0x0000 (---------------)  + I swinoujscie
+-	0x002c9848, // n0x1484 c0x0000 (---------------)  + I szczecin
+-	0x002a4688, // n0x1485 c0x0000 (---------------)  + I szczytno
+-	0x00224f06, // n0x1486 c0x0000 (---------------)  + I szkola
+-	0x002050c5, // n0x1487 c0x0000 (---------------)  + I targi
+-	0x0021194a, // n0x1488 c0x0000 (---------------)  + I tarnobrzeg
+-	0x00234245, // n0x1489 c0x0000 (---------------)  + I tgory
+-	0x0023a842, // n0x148a c0x0000 (---------------)  + I tm
+-	0x002b2c47, // n0x148b c0x0000 (---------------)  + I tourism
+-	0x002ddac6, // n0x148c c0x0000 (---------------)  + I travel
+-	0x0020b805, // n0x148d c0x0000 (---------------)  + I turek
+-	0x002e5589, // n0x148e c0x0000 (---------------)  + I turystyka
+-	0x002cda85, // n0x148f c0x0000 (---------------)  + I tychy
+-	0x0027d586, // n0x1490 c0x0000 (---------------)  + I usenet
+-	0x0029b445, // n0x1491 c0x0000 (---------------)  + I ustka
+-	0x0024d949, // n0x1492 c0x0000 (---------------)  + I walbrzych
+-	0x0022e186, // n0x1493 c0x0000 (---------------)  + I warmia
+-	0x002bfa48, // n0x1494 c0x0000 (---------------)  + I warszawa
+-	0x0028a603, // n0x1495 c0x0000 (---------------)  + I waw
+-	0x00231086, // n0x1496 c0x0000 (---------------)  + I wegrow
+-	0x00267286, // n0x1497 c0x0000 (---------------)  + I wielun
+-	0x002c0605, // n0x1498 c0x0000 (---------------)  + I wlocl
+-	0x002c0609, // n0x1499 c0x0000 (---------------)  + I wloclawek
+-	0x00268a89, // n0x149a c0x0000 (---------------)  + I wodzislaw
+-	0x002f7d07, // n0x149b c0x0000 (---------------)  + I wolomin
+-	0x002404c4, // n0x149c c0x0000 (---------------)  + I wroc
+-	0x002404c7, // n0x149d c0x0000 (---------------)  + I wroclaw
+-	0x00233a09, // n0x149e c0x0000 (---------------)  + I zachpomor
+-	0x0021d005, // n0x149f c0x0000 (---------------)  + I zagan
+-	0x0023d308, // n0x14a0 c0x0000 (---------------)  + I zakopane
+-	0x00201145, // n0x14a1 c0x0000 (---------------)  + I zarow
+-	0x002ae2c5, // n0x14a2 c0x0000 (---------------)  + I zgora
+-	0x00214909, // n0x14a3 c0x0000 (---------------)  + I zgorzelec
+-	0x0020d002, // n0x14a4 c0x0000 (---------------)  + I pa
+-	0x00200a42, // n0x14a5 c0x0000 (---------------)  + I po
+-	0x00200882, // n0x14a6 c0x0000 (---------------)  + I so
+-	0x002ba542, // n0x14a7 c0x0000 (---------------)  + I sr
+-	0x002688c9, // n0x14a8 c0x0000 (---------------)  + I starostwo
+-	0x00202b82, // n0x14a9 c0x0000 (---------------)  + I ug
+-	0x00209342, // n0x14aa c0x0000 (---------------)  + I um
+-	0x00204f44, // n0x14ab c0x0000 (---------------)  + I upow
+-	0x0023ed02, // n0x14ac c0x0000 (---------------)  + I uw
+-	0x0020d642, // n0x14ad c0x0000 (---------------)  + I co
+-	0x002df843, // n0x14ae c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x14af c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x14b0 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x14b1 c0x0000 (---------------)  + I org
+-	0x00206c42, // n0x14b2 c0x0000 (---------------)  + I ac
+-	0x0030c243, // n0x14b3 c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x14b4 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x14b5 c0x0000 (---------------)  + I edu
+-	0x00202043, // n0x14b6 c0x0000 (---------------)  + I est
+-	0x00218d43, // n0x14b7 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x14b8 c0x0000 (---------------)  + I info
+-	0x00268b84, // n0x14b9 c0x0000 (---------------)  + I isla
+-	0x00202f04, // n0x14ba c0x0000 (---------------)  + I name
+-	0x00214843, // n0x14bb c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x14bc c0x0000 (---------------)  + I org
+-	0x002d1383, // n0x14bd c0x0000 (---------------)  + I pro
+-	0x002d1884, // n0x14be c0x0000 (---------------)  + I prof
+-	0x00290503, // n0x14bf c0x0000 (---------------)  + I aca
+-	0x00218003, // n0x14c0 c0x0000 (---------------)  + I bar
+-	0x002860c3, // n0x14c1 c0x0000 (---------------)  + I cpa
+-	0x00204883, // n0x14c2 c0x0000 (---------------)  + I eng
+-	0x00279843, // n0x14c3 c0x0000 (---------------)  + I jur
+-	0x00205803, // n0x14c4 c0x0000 (---------------)  + I law
+-	0x0023dbc3, // n0x14c5 c0x0000 (---------------)  + I med
+-	0x0020d643, // n0x14c6 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x14c7 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x14c8 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x14c9 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x14ca c0x0000 (---------------)  + I org
+-	0x002cdd83, // n0x14cb c0x0000 (---------------)  + I plo
+-	0x002f1383, // n0x14cc c0x0000 (---------------)  + I sec
+-	0x0003c708, // n0x14cd c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x14ce c0x0000 (---------------)  + I com
+-	0x002df843, // n0x14cf c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x14d0 c0x0000 (---------------)  + I gov
+-	0x00217543, // n0x14d1 c0x0000 (---------------)  + I int
+-	0x00214843, // n0x14d2 c0x0000 (---------------)  + I net
+-	0x0025af84, // n0x14d3 c0x0000 (---------------)  + I nome
+-	0x0023e983, // n0x14d4 c0x0000 (---------------)  + I org
+-	0x0029ebc4, // n0x14d5 c0x0000 (---------------)  + I publ
+-	0x002c0a85, // n0x14d6 c0x0000 (---------------)  + I belau
+-	0x0020d642, // n0x14d7 c0x0000 (---------------)  + I co
+-	0x00207902, // n0x14d8 c0x0000 (---------------)  + I ed
+-	0x00200482, // n0x14d9 c0x0000 (---------------)  + I go
+-	0x00203e82, // n0x14da c0x0000 (---------------)  + I ne
+-	0x00200a82, // n0x14db c0x0000 (---------------)  + I or
+-	0x0020d643, // n0x14dc c0x0000 (---------------)  + I com
+-	0x0023ae84, // n0x14dd c0x0000 (---------------)  + I coop
+-	0x002df843, // n0x14de c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x14df c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x14e0 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x14e1 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x14e2 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x14e3 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x14e4 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x14e5 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x14e6 c0x0000 (---------------)  + I mil
+-	0x00202f04, // n0x14e7 c0x0000 (---------------)  + I name
+-	0x00214843, // n0x14e8 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x14e9 c0x0000 (---------------)  + I org
+-	0x00201d83, // n0x14ea c0x0000 (---------------)  + I sch
+-	0x002072c4, // n0x14eb c0x0000 (---------------)  + I asso
+-	0x0003c708, // n0x14ec c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x14ed c0x0000 (---------------)  + I com
+-	0x00216583, // n0x14ee c0x0000 (---------------)  + I nom
+-	0x00230884, // n0x14ef c0x0000 (---------------)  + I arts
+-	0x0003c708, // n0x14f0 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x14f1 c0x0000 (---------------)  + I com
+-	0x00243504, // n0x14f2 c0x0000 (---------------)  + I firm
+-	0x00210e04, // n0x14f3 c0x0000 (---------------)  + I info
+-	0x00216583, // n0x14f4 c0x0000 (---------------)  + I nom
+-	0x00200242, // n0x14f5 c0x0000 (---------------)  + I nt
+-	0x0023e983, // n0x14f6 c0x0000 (---------------)  + I org
+-	0x002c1d83, // n0x14f7 c0x0000 (---------------)  + I rec
+-	0x002e9c05, // n0x14f8 c0x0000 (---------------)  + I store
+-	0x0023a842, // n0x14f9 c0x0000 (---------------)  + I tm
+-	0x00240643, // n0x14fa c0x0000 (---------------)  + I www
+-	0x00206c42, // n0x14fb c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x14fc c0x0000 (---------------)  + I co
+-	0x002df843, // n0x14fd c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x14fe c0x0000 (---------------)  + I gov
+-	0x002027c2, // n0x14ff c0x0000 (---------------)  + I in
+-	0x0023e983, // n0x1500 c0x0000 (---------------)  + I org
+-	0x00206c42, // n0x1501 c0x0000 (---------------)  + I ac
+-	0x00206ac7, // n0x1502 c0x0000 (---------------)  + I adygeya
+-	0x002eb045, // n0x1503 c0x0000 (---------------)  + I altai
+-	0x00276304, // n0x1504 c0x0000 (---------------)  + I amur
+-	0x002c1906, // n0x1505 c0x0000 (---------------)  + I amursk
+-	0x0022660b, // n0x1506 c0x0000 (---------------)  + I arkhangelsk
+-	0x0024b489, // n0x1507 c0x0000 (---------------)  + I astrakhan
+-	0x002a44c6, // n0x1508 c0x0000 (---------------)  + I baikal
+-	0x0033c149, // n0x1509 c0x0000 (---------------)  + I bashkiria
+-	0x002a6e08, // n0x150a c0x0000 (---------------)  + I belgorod
+-	0x0020e243, // n0x150b c0x0000 (---------------)  + I bir
+-	0x00223dc7, // n0x150c c0x0000 (---------------)  + I bryansk
+-	0x00258948, // n0x150d c0x0000 (---------------)  + I buryatia
+-	0x0033aa43, // n0x150e c0x0000 (---------------)  + I cbg
+-	0x0023f584, // n0x150f c0x0000 (---------------)  + I chel
+-	0x0025354b, // n0x1510 c0x0000 (---------------)  + I chelyabinsk
+-	0x0028a285, // n0x1511 c0x0000 (---------------)  + I chita
+-	0x0033dd08, // n0x1512 c0x0000 (---------------)  + I chukotka
+-	0x0031d709, // n0x1513 c0x0000 (---------------)  + I chuvashia
+-	0x00231003, // n0x1514 c0x0000 (---------------)  + I cmw
+-	0x0020d643, // n0x1515 c0x0000 (---------------)  + I com
+-	0x002c0d88, // n0x1516 c0x0000 (---------------)  + I dagestan
+-	0x0024d687, // n0x1517 c0x0000 (---------------)  + I dudinka
+-	0x0022b906, // n0x1518 c0x0000 (---------------)  + I e-burg
+-	0x002df843, // n0x1519 c0x0000 (---------------)  + I edu
+-	0x00316407, // n0x151a c0x0000 (---------------)  + I fareast
+-	0x00218d43, // n0x151b c0x0000 (---------------)  + I gov
+-	0x0024ef06, // n0x151c c0x0000 (---------------)  + I grozny
+-	0x00217543, // n0x151d c0x0000 (---------------)  + I int
+-	0x00278847, // n0x151e c0x0000 (---------------)  + I irkutsk
+-	0x00264987, // n0x151f c0x0000 (---------------)  + I ivanovo
+-	0x002c40c7, // n0x1520 c0x0000 (---------------)  + I izhevsk
+-	0x00223a45, // n0x1521 c0x0000 (---------------)  + I jamal
+-	0x00210103, // n0x1522 c0x0000 (---------------)  + I jar
+-	0x002a54cb, // n0x1523 c0x0000 (---------------)  + I joshkar-ola
+-	0x00231508, // n0x1524 c0x0000 (---------------)  + I k-uralsk
+-	0x002af448, // n0x1525 c0x0000 (---------------)  + I kalmykia
+-	0x002e5e06, // n0x1526 c0x0000 (---------------)  + I kaluga
+-	0x002d8909, // n0x1527 c0x0000 (---------------)  + I kamchatka
+-	0x002b10c7, // n0x1528 c0x0000 (---------------)  + I karelia
+-	0x002f16c5, // n0x1529 c0x0000 (---------------)  + I kazan
+-	0x00248604, // n0x152a c0x0000 (---------------)  + I kchr
+-	0x002150c8, // n0x152b c0x0000 (---------------)  + I kemerovo
+-	0x0025ffca, // n0x152c c0x0000 (---------------)  + I khabarovsk
+-	0x00260209, // n0x152d c0x0000 (---------------)  + I khakassia
+-	0x00297803, // n0x152e c0x0000 (---------------)  + I khv
+-	0x0026d945, // n0x152f c0x0000 (---------------)  + I kirov
+-	0x002a07c3, // n0x1530 c0x0000 (---------------)  + I kms
+-	0x002dc586, // n0x1531 c0x0000 (---------------)  + I koenig
+-	0x002c28c4, // n0x1532 c0x0000 (---------------)  + I komi
+-	0x0029bc88, // n0x1533 c0x0000 (---------------)  + I kostroma
+-	0x002a054b, // n0x1534 c0x0000 (---------------)  + I krasnoyarsk
+-	0x00274545, // n0x1535 c0x0000 (---------------)  + I kuban
+-	0x002a6b86, // n0x1536 c0x0000 (---------------)  + I kurgan
+-	0x002a9285, // n0x1537 c0x0000 (---------------)  + I kursk
+-	0x002a9a08, // n0x1538 c0x0000 (---------------)  + I kustanai
+-	0x002aa907, // n0x1539 c0x0000 (---------------)  + I kuzbass
+-	0x00346ec7, // n0x153a c0x0000 (---------------)  + I lipetsk
+-	0x00341c87, // n0x153b c0x0000 (---------------)  + I magadan
+-	0x00236188, // n0x153c c0x0000 (---------------)  + I magnitka
+-	0x0021c304, // n0x153d c0x0000 (---------------)  + I mari
+-	0x0021c307, // n0x153e c0x0000 (---------------)  + I mari-el
+-	0x00323986, // n0x153f c0x0000 (---------------)  + I marine
+-	0x0022f003, // n0x1540 c0x0000 (---------------)  + I mil
+-	0x002b7408, // n0x1541 c0x0000 (---------------)  + I mordovia
+-	0x002ba4c6, // n0x1542 c0x0000 (---------------)  + I mosreg
+-	0x00276f83, // n0x1543 c0x0000 (---------------)  + I msk
+-	0x002c2708, // n0x1544 c0x0000 (---------------)  + I murmansk
+-	0x002c5285, // n0x1545 c0x0000 (---------------)  + I mytis
+-	0x002e22c8, // n0x1546 c0x0000 (---------------)  + I nakhodka
+-	0x002ef7c7, // n0x1547 c0x0000 (---------------)  + I nalchik
+-	0x00214843, // n0x1548 c0x0000 (---------------)  + I net
+-	0x00324103, // n0x1549 c0x0000 (---------------)  + I nkz
+-	0x00278084, // n0x154a c0x0000 (---------------)  + I nnov
+-	0x002ade87, // n0x154b c0x0000 (---------------)  + I norilsk
+-	0x00216003, // n0x154c c0x0000 (---------------)  + I nov
+-	0x00264a4b, // n0x154d c0x0000 (---------------)  + I novosibirsk
+-	0x00216b43, // n0x154e c0x0000 (---------------)  + I nsk
+-	0x00276f44, // n0x154f c0x0000 (---------------)  + I omsk
+-	0x002e9c88, // n0x1550 c0x0000 (---------------)  + I orenburg
+-	0x0023e983, // n0x1551 c0x0000 (---------------)  + I org
+-	0x00298385, // n0x1552 c0x0000 (---------------)  + I oryol
+-	0x0023e505, // n0x1553 c0x0000 (---------------)  + I oskol
+-	0x0020d006, // n0x1554 c0x0000 (---------------)  + I palana
+-	0x00264f85, // n0x1555 c0x0000 (---------------)  + I penza
+-	0x002c5644, // n0x1556 c0x0000 (---------------)  + I perm
+-	0x00203f02, // n0x1557 c0x0000 (---------------)  + I pp
+-	0x002e1885, // n0x1558 c0x0000 (---------------)  + I pskov
+-	0x002d2bc3, // n0x1559 c0x0000 (---------------)  + I ptz
+-	0x002b8c0a, // n0x155a c0x0000 (---------------)  + I pyatigorsk
+-	0x002186c3, // n0x155b c0x0000 (---------------)  + I rnd
+-	0x00289849, // n0x155c c0x0000 (---------------)  + I rubtsovsk
+-	0x0021c006, // n0x155d c0x0000 (---------------)  + I ryazan
+-	0x00336448, // n0x155e c0x0000 (---------------)  + I sakhalin
+-	0x00279fc6, // n0x155f c0x0000 (---------------)  + I samara
+-	0x002820c7, // n0x1560 c0x0000 (---------------)  + I saratov
+-	0x002e0c48, // n0x1561 c0x0000 (---------------)  + I simbirsk
+-	0x00216a08, // n0x1562 c0x0000 (---------------)  + I smolensk
+-	0x002e1b83, // n0x1563 c0x0000 (---------------)  + I snz
+-	0x002e59c3, // n0x1564 c0x0000 (---------------)  + I spb
+-	0x0033fa09, // n0x1565 c0x0000 (---------------)  + I stavropol
+-	0x002ee683, // n0x1566 c0x0000 (---------------)  + I stv
+-	0x002b3a86, // n0x1567 c0x0000 (---------------)  + I surgut
+-	0x00319b86, // n0x1568 c0x0000 (---------------)  + I syzran
+-	0x00346506, // n0x1569 c0x0000 (---------------)  + I tambov
+-	0x0021d3c9, // n0x156a c0x0000 (---------------)  + I tatarstan
+-	0x0023c544, // n0x156b c0x0000 (---------------)  + I test
+-	0x0024f543, // n0x156c c0x0000 (---------------)  + I tom
+-	0x002b3cc5, // n0x156d c0x0000 (---------------)  + I tomsk
+-	0x00230909, // n0x156e c0x0000 (---------------)  + I tsaritsyn
+-	0x00234d83, // n0x156f c0x0000 (---------------)  + I tsk
+-	0x002e2804, // n0x1570 c0x0000 (---------------)  + I tula
+-	0x002eaa44, // n0x1571 c0x0000 (---------------)  + I tuva
+-	0x002eac44, // n0x1572 c0x0000 (---------------)  + I tver
+-	0x00209d86, // n0x1573 c0x0000 (---------------)  + I tyumen
+-	0x0022b103, // n0x1574 c0x0000 (---------------)  + I udm
+-	0x0022b108, // n0x1575 c0x0000 (---------------)  + I udmurtia
+-	0x0024b0c8, // n0x1576 c0x0000 (---------------)  + I ulan-ude
+-	0x0025fe86, // n0x1577 c0x0000 (---------------)  + I vdonsk
+-	0x002f14cb, // n0x1578 c0x0000 (---------------)  + I vladikavkaz
+-	0x002f1808, // n0x1579 c0x0000 (---------------)  + I vladimir
+-	0x002f1e8b, // n0x157a c0x0000 (---------------)  + I vladivostok
+-	0x002f2a89, // n0x157b c0x0000 (---------------)  + I volgograd
+-	0x002f3187, // n0x157c c0x0000 (---------------)  + I vologda
+-	0x002f3b48, // n0x157d c0x0000 (---------------)  + I voronezh
+-	0x002f4183, // n0x157e c0x0000 (---------------)  + I vrn
+-	0x002f4246, // n0x157f c0x0000 (---------------)  + I vyatka
+-	0x0030cc87, // n0x1580 c0x0000 (---------------)  + I yakutia
+-	0x00281685, // n0x1581 c0x0000 (---------------)  + I yamal
+-	0x002f6cc9, // n0x1582 c0x0000 (---------------)  + I yaroslavl
+-	0x00227b4d, // n0x1583 c0x0000 (---------------)  + I yekaterinburg
+-	0x00336291, // n0x1584 c0x0000 (---------------)  + I yuzhno-sakhalinsk
+-	0x0022c385, // n0x1585 c0x0000 (---------------)  + I zgrad
+-	0x00206c42, // n0x1586 c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x1587 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x1588 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1589 c0x0000 (---------------)  + I edu
+-	0x00257384, // n0x158a c0x0000 (---------------)  + I gouv
+-	0x00218d43, // n0x158b c0x0000 (---------------)  + I gov
+-	0x00217543, // n0x158c c0x0000 (---------------)  + I int
+-	0x0022f003, // n0x158d c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x158e c0x0000 (---------------)  + I net
+-	0x0020d643, // n0x158f c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1590 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x1591 c0x0000 (---------------)  + I gov
+-	0x0023dbc3, // n0x1592 c0x0000 (---------------)  + I med
+-	0x00214843, // n0x1593 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1594 c0x0000 (---------------)  + I org
+-	0x0029b083, // n0x1595 c0x0000 (---------------)  + I pub
+-	0x00201d83, // n0x1596 c0x0000 (---------------)  + I sch
+-	0x0020d643, // n0x1597 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1598 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x1599 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x159a c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x159b c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x159c c0x0000 (---------------)  + I com
+-	0x002df843, // n0x159d c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x159e c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x159f c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x15a0 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x15a1 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x15a2 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x15a3 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x15a4 c0x0000 (---------------)  + I info
+-	0x0023dbc3, // n0x15a5 c0x0000 (---------------)  + I med
+-	0x00214843, // n0x15a6 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x15a7 c0x0000 (---------------)  + I org
+-	0x00281802, // n0x15a8 c0x0000 (---------------)  + I tv
+-	0x00200181, // n0x15a9 c0x0000 (---------------)  + I a
+-	0x00206c42, // n0x15aa c0x0000 (---------------)  + I ac
+-	0x00200001, // n0x15ab c0x0000 (---------------)  + I b
+-	0x002f4c82, // n0x15ac c0x0000 (---------------)  + I bd
+-	0x0003c708, // n0x15ad c0x0000 (---------------)  +   blogspot
+-	0x002192c5, // n0x15ae c0x0000 (---------------)  + I brand
+-	0x00200501, // n0x15af c0x0000 (---------------)  + I c
+-	0x00201481, // n0x15b0 c0x0000 (---------------)  + I d
+-	0x00200041, // n0x15b1 c0x0000 (---------------)  + I e
+-	0x00201281, // n0x15b2 c0x0000 (---------------)  + I f
+-	0x0032fbc2, // n0x15b3 c0x0000 (---------------)  + I fh
+-	0x0032fbc4, // n0x15b4 c0x0000 (---------------)  + I fhsk
+-	0x00331543, // n0x15b5 c0x0000 (---------------)  + I fhv
+-	0x00200481, // n0x15b6 c0x0000 (---------------)  + I g
+-	0x00200741, // n0x15b7 c0x0000 (---------------)  + I h
+-	0x00200781, // n0x15b8 c0x0000 (---------------)  + I i
+-	0x00200301, // n0x15b9 c0x0000 (---------------)  + I k
+-	0x002bae47, // n0x15ba c0x0000 (---------------)  + I komforb
+-	0x002c424f, // n0x15bb c0x0000 (---------------)  + I kommunalforbund
+-	0x002e0e06, // n0x15bc c0x0000 (---------------)  + I komvux
+-	0x00202541, // n0x15bd c0x0000 (---------------)  + I l
+-	0x002502c6, // n0x15be c0x0000 (---------------)  + I lanbib
+-	0x00201341, // n0x15bf c0x0000 (---------------)  + I m
+-	0x002000c1, // n0x15c0 c0x0000 (---------------)  + I n
+-	0x0020174e, // n0x15c1 c0x0000 (---------------)  + I naturbruksgymn
+-	0x002002c1, // n0x15c2 c0x0000 (---------------)  + I o
+-	0x0023e983, // n0x15c3 c0x0000 (---------------)  + I org
+-	0x00200701, // n0x15c4 c0x0000 (---------------)  + I p
+-	0x002c5b85, // n0x15c5 c0x0000 (---------------)  + I parti
+-	0x00203f02, // n0x15c6 c0x0000 (---------------)  + I pp
+-	0x003460c5, // n0x15c7 c0x0000 (---------------)  + I press
+-	0x00200081, // n0x15c8 c0x0000 (---------------)  + I r
+-	0x00200881, // n0x15c9 c0x0000 (---------------)  + I s
+-	0x0023dec4, // n0x15ca c0x0000 (---------------)  + I sshn
+-	0x00200141, // n0x15cb c0x0000 (---------------)  + I t
+-	0x0023a842, // n0x15cc c0x0000 (---------------)  + I tm
+-	0x00200f01, // n0x15cd c0x0000 (---------------)  + I u
+-	0x00201241, // n0x15ce c0x0000 (---------------)  + I w
+-	0x00202dc1, // n0x15cf c0x0000 (---------------)  + I x
+-	0x00200341, // n0x15d0 c0x0000 (---------------)  + I y
+-	0x00201141, // n0x15d1 c0x0000 (---------------)  + I z
+-	0x0003c708, // n0x15d2 c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x15d3 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x15d4 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x15d5 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x15d6 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x15d7 c0x0000 (---------------)  + I org
+-	0x00210803, // n0x15d8 c0x0000 (---------------)  + I per
+-	0x0020d643, // n0x15d9 c0x0000 (---------------)  + I com
+-	0x00218d43, // n0x15da c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x15db c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x15dc c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x15dd c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x15de c0x0000 (---------------)  +   blogspot
+-	0x0020d643, // n0x15df c0x0000 (---------------)  + I com
+-	0x002df843, // n0x15e0 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x15e1 c0x0000 (---------------)  + I gov
+-	0x00214843, // n0x15e2 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x15e3 c0x0000 (---------------)  + I org
+-	0x0020e343, // n0x15e4 c0x0000 (---------------)  + I art
+-	0x0020d643, // n0x15e5 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x15e6 c0x0000 (---------------)  + I edu
+-	0x00257384, // n0x15e7 c0x0000 (---------------)  + I gouv
+-	0x0023e983, // n0x15e8 c0x0000 (---------------)  + I org
+-	0x0029a085, // n0x15e9 c0x0000 (---------------)  + I perso
+-	0x00209b84, // n0x15ea c0x0000 (---------------)  + I univ
+-	0x0020d643, // n0x15eb c0x0000 (---------------)  + I com
+-	0x00214843, // n0x15ec c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x15ed c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x15ee c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x15ef c0x0000 (---------------)  + I com
+-	0x00235509, // n0x15f0 c0x0000 (---------------)  + I consulado
+-	0x002df843, // n0x15f1 c0x0000 (---------------)  + I edu
+-	0x0022d1c9, // n0x15f2 c0x0000 (---------------)  + I embaixada
+-	0x00218d43, // n0x15f3 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x15f4 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x15f5 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x15f6 c0x0000 (---------------)  + I org
+-	0x002d0388, // n0x15f7 c0x0000 (---------------)  + I principe
+-	0x00277d47, // n0x15f8 c0x0000 (---------------)  + I saotome
+-	0x002e9c05, // n0x15f9 c0x0000 (---------------)  + I store
+-	0x00218d43, // n0x15fa c0x0000 (---------------)  + I gov
+-	0x0020d643, // n0x15fb c0x0000 (---------------)  + I com
+-	0x002df843, // n0x15fc c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x15fd c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x15fe c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x15ff c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1600 c0x0000 (---------------)  + I org
+-	0x00206c42, // n0x1601 c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x1602 c0x0000 (---------------)  + I co
+-	0x0023e983, // n0x1603 c0x0000 (---------------)  + I org
+-	0x0003c708, // n0x1604 c0x0000 (---------------)  +   blogspot
+-	0x00206c42, // n0x1605 c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x1606 c0x0000 (---------------)  + I co
+-	0x00200482, // n0x1607 c0x0000 (---------------)  + I go
+-	0x002027c2, // n0x1608 c0x0000 (---------------)  + I in
+-	0x00206702, // n0x1609 c0x0000 (---------------)  + I mi
+-	0x00214843, // n0x160a c0x0000 (---------------)  + I net
+-	0x00200a82, // n0x160b c0x0000 (---------------)  + I or
+-	0x00206c42, // n0x160c c0x0000 (---------------)  + I ac
+-	0x0030c243, // n0x160d c0x0000 (---------------)  + I biz
+-	0x0020d642, // n0x160e c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x160f c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1610 c0x0000 (---------------)  + I edu
+-	0x00200482, // n0x1611 c0x0000 (---------------)  + I go
+-	0x00218d43, // n0x1612 c0x0000 (---------------)  + I gov
+-	0x00217543, // n0x1613 c0x0000 (---------------)  + I int
+-	0x0022f003, // n0x1614 c0x0000 (---------------)  + I mil
+-	0x00202f04, // n0x1615 c0x0000 (---------------)  + I name
+-	0x00214843, // n0x1616 c0x0000 (---------------)  + I net
+-	0x00211783, // n0x1617 c0x0000 (---------------)  + I nic
+-	0x0023e983, // n0x1618 c0x0000 (---------------)  + I org
+-	0x0023c544, // n0x1619 c0x0000 (---------------)  + I test
+-	0x00205e43, // n0x161a c0x0000 (---------------)  + I web
+-	0x00218d43, // n0x161b c0x0000 (---------------)  + I gov
+-	0x0020d642, // n0x161c c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x161d c0x0000 (---------------)  + I com
+-	0x002df843, // n0x161e c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x161f c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x1620 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x1621 c0x0000 (---------------)  + I net
+-	0x00216583, // n0x1622 c0x0000 (---------------)  + I nom
+-	0x0023e983, // n0x1623 c0x0000 (---------------)  + I org
+-	0x00230e47, // n0x1624 c0x0000 (---------------)  + I agrinet
+-	0x0020d643, // n0x1625 c0x0000 (---------------)  + I com
+-	0x0030a4c7, // n0x1626 c0x0000 (---------------)  + I defense
+-	0x002e7846, // n0x1627 c0x0000 (---------------)  + I edunet
+-	0x00209083, // n0x1628 c0x0000 (---------------)  + I ens
+-	0x00242a83, // n0x1629 c0x0000 (---------------)  + I fin
+-	0x00218d43, // n0x162a c0x0000 (---------------)  + I gov
+-	0x002051c3, // n0x162b c0x0000 (---------------)  + I ind
+-	0x00210e04, // n0x162c c0x0000 (---------------)  + I info
+-	0x00275104, // n0x162d c0x0000 (---------------)  + I intl
+-	0x002c5706, // n0x162e c0x0000 (---------------)  + I mincom
+-	0x00201743, // n0x162f c0x0000 (---------------)  + I nat
+-	0x00214843, // n0x1630 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1631 c0x0000 (---------------)  + I org
+-	0x0029a085, // n0x1632 c0x0000 (---------------)  + I perso
+-	0x00200084, // n0x1633 c0x0000 (---------------)  + I rnrt
+-	0x00278c43, // n0x1634 c0x0000 (---------------)  + I rns
+-	0x002794c3, // n0x1635 c0x0000 (---------------)  + I rnu
+-	0x002b2c47, // n0x1636 c0x0000 (---------------)  + I tourism
+-	0x00244745, // n0x1637 c0x0000 (---------------)  + I turen
+-	0x0020d643, // n0x1638 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x1639 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x163a c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x163b c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x163c c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x163d c0x0000 (---------------)  + I org
+-	0x47e08ac2, // n0x163e c0x011f (n0x1640-n0x1641)  o I nc
+-	0x00611783, // n0x163f c0x0001 (---------------)  ! I nic
+-	0x00218d43, // n0x1640 c0x0000 (---------------)  + I gov
+-	0x00228d84, // n0x1641 c0x0000 (---------------)  + I aero
+-	0x0030c243, // n0x1642 c0x0000 (---------------)  + I biz
+-	0x0020d642, // n0x1643 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x1644 c0x0000 (---------------)  + I com
+-	0x0023ae84, // n0x1645 c0x0000 (---------------)  + I coop
+-	0x002df843, // n0x1646 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x1647 c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x1648 c0x0000 (---------------)  + I info
+-	0x00217543, // n0x1649 c0x0000 (---------------)  + I int
+-	0x003422c4, // n0x164a c0x0000 (---------------)  + I jobs
+-	0x00303304, // n0x164b c0x0000 (---------------)  + I mobi
+-	0x002c4946, // n0x164c c0x0000 (---------------)  + I museum
+-	0x00202f04, // n0x164d c0x0000 (---------------)  + I name
+-	0x00214843, // n0x164e c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x164f c0x0000 (---------------)  + I org
+-	0x002d1383, // n0x1650 c0x0000 (---------------)  + I pro
+-	0x002ddac6, // n0x1651 c0x0000 (---------------)  + I travel
+-	0x0004740b, // n0x1652 c0x0000 (---------------)  +   better-than
+-	0x00004a46, // n0x1653 c0x0000 (---------------)  +   dyndns
+-	0x0001400a, // n0x1654 c0x0000 (---------------)  +   on-the-web
+-	0x00131aca, // n0x1655 c0x0000 (---------------)  +   worse-than
+-	0x0003c708, // n0x1656 c0x0000 (---------------)  +   blogspot
+-	0x00262344, // n0x1657 c0x0000 (---------------)  + I club
+-	0x0020d643, // n0x1658 c0x0000 (---------------)  + I com
+-	0x0030c204, // n0x1659 c0x0000 (---------------)  + I ebiz
+-	0x002df843, // n0x165a c0x0000 (---------------)  + I edu
+-	0x0027bcc4, // n0x165b c0x0000 (---------------)  + I game
+-	0x00218d43, // n0x165c c0x0000 (---------------)  + I gov
+-	0x002629c3, // n0x165d c0x0000 (---------------)  + I idv
+-	0x0022f003, // n0x165e c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x165f c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x1660 c0x0000 (---------------)  + I org
+-	0x002fd38b, // n0x1661 c0x0000 (---------------)  + I xn--czrw28b
+-	0x00343c0a, // n0x1662 c0x0000 (---------------)  + I xn--uc0atv
+-	0x0034e24c, // n0x1663 c0x0000 (---------------)  + I xn--zf0ao64a
+-	0x00206c42, // n0x1664 c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x1665 c0x0000 (---------------)  + I co
+-	0x00200482, // n0x1666 c0x0000 (---------------)  + I go
+-	0x002937c5, // n0x1667 c0x0000 (---------------)  + I hotel
+-	0x00210e04, // n0x1668 c0x0000 (---------------)  + I info
+-	0x00202f82, // n0x1669 c0x0000 (---------------)  + I me
+-	0x0022f003, // n0x166a c0x0000 (---------------)  + I mil
+-	0x00303304, // n0x166b c0x0000 (---------------)  + I mobi
+-	0x00203e82, // n0x166c c0x0000 (---------------)  + I ne
+-	0x00200a82, // n0x166d c0x0000 (---------------)  + I or
+-	0x00201d82, // n0x166e c0x0000 (---------------)  + I sc
+-	0x00281802, // n0x166f c0x0000 (---------------)  + I tv
+-	0x002ab0c9, // n0x1670 c0x0000 (---------------)  + I cherkassy
+-	0x0025cdc8, // n0x1671 c0x0000 (---------------)  + I cherkasy
+-	0x00261489, // n0x1672 c0x0000 (---------------)  + I chernigov
+-	0x002647c9, // n0x1673 c0x0000 (---------------)  + I chernihiv
+-	0x0026c44a, // n0x1674 c0x0000 (---------------)  + I chernivtsi
+-	0x0028d18a, // n0x1675 c0x0000 (---------------)  + I chernovtsy
+-	0x00226c42, // n0x1676 c0x0000 (---------------)  + I ck
+-	0x00231842, // n0x1677 c0x0000 (---------------)  + I cn
+-	0x0020d642, // n0x1678 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x1679 c0x0000 (---------------)  + I com
+-	0x00234182, // n0x167a c0x0000 (---------------)  + I cr
+-	0x00240706, // n0x167b c0x0000 (---------------)  + I crimea
+-	0x00317442, // n0x167c c0x0000 (---------------)  + I cv
+-	0x00204b02, // n0x167d c0x0000 (---------------)  + I dn
+-	0x0030bb4e, // n0x167e c0x0000 (---------------)  + I dnepropetrovsk
+-	0x00318fce, // n0x167f c0x0000 (---------------)  + I dnipropetrovsk
+-	0x0026c2c7, // n0x1680 c0x0000 (---------------)  + I dominic
+-	0x002b4e47, // n0x1681 c0x0000 (---------------)  + I donetsk
+-	0x002cdd42, // n0x1682 c0x0000 (---------------)  + I dp
+-	0x002df843, // n0x1683 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x1684 c0x0000 (---------------)  + I gov
+-	0x00208442, // n0x1685 c0x0000 (---------------)  + I if
+-	0x002027c2, // n0x1686 c0x0000 (---------------)  + I in
+-	0x002907cf, // n0x1687 c0x0000 (---------------)  + I ivano-frankivsk
+-	0x00226682, // n0x1688 c0x0000 (---------------)  + I kh
+-	0x002789c7, // n0x1689 c0x0000 (---------------)  + I kharkiv
+-	0x0027aa47, // n0x168a c0x0000 (---------------)  + I kharkov
+-	0x0028e747, // n0x168b c0x0000 (---------------)  + I kherson
+-	0x00290f8c, // n0x168c c0x0000 (---------------)  + I khmelnitskiy
+-	0x002eb38c, // n0x168d c0x0000 (---------------)  + I khmelnytskyi
+-	0x0020ab04, // n0x168e c0x0000 (---------------)  + I kiev
+-	0x0026d94a, // n0x168f c0x0000 (---------------)  + I kirovograd
+-	0x002a07c2, // n0x1690 c0x0000 (---------------)  + I km
+-	0x002015c2, // n0x1691 c0x0000 (---------------)  + I kr
+-	0x002a2644, // n0x1692 c0x0000 (---------------)  + I krym
+-	0x00201942, // n0x1693 c0x0000 (---------------)  + I ks
+-	0x00228002, // n0x1694 c0x0000 (---------------)  + I kv
+-	0x002eb5c4, // n0x1695 c0x0000 (---------------)  + I kyiv
+-	0x00216382, // n0x1696 c0x0000 (---------------)  + I lg
+-	0x0020b7c2, // n0x1697 c0x0000 (---------------)  + I lt
+-	0x002e5e87, // n0x1698 c0x0000 (---------------)  + I lugansk
+-	0x00234d05, // n0x1699 c0x0000 (---------------)  + I lutsk
+-	0x002075c2, // n0x169a c0x0000 (---------------)  + I lv
+-	0x0023f484, // n0x169b c0x0000 (---------------)  + I lviv
+-	0x003246c2, // n0x169c c0x0000 (---------------)  + I mk
+-	0x00290648, // n0x169d c0x0000 (---------------)  + I mykolaiv
+-	0x00214843, // n0x169e c0x0000 (---------------)  + I net
+-	0x00213788, // n0x169f c0x0000 (---------------)  + I nikolaev
+-	0x00206d82, // n0x16a0 c0x0000 (---------------)  + I od
+-	0x002c3905, // n0x16a1 c0x0000 (---------------)  + I odesa
+-	0x0032a546, // n0x16a2 c0x0000 (---------------)  + I odessa
+-	0x0023e983, // n0x16a3 c0x0000 (---------------)  + I org
+-	0x0020c3c2, // n0x16a4 c0x0000 (---------------)  + I pl
+-	0x002ce907, // n0x16a5 c0x0000 (---------------)  + I poltava
+-	0x00203f02, // n0x16a6 c0x0000 (---------------)  + I pp
+-	0x002d1245, // n0x16a7 c0x0000 (---------------)  + I rivne
+-	0x00200ac5, // n0x16a8 c0x0000 (---------------)  + I rovno
+-	0x002214c2, // n0x16a9 c0x0000 (---------------)  + I rv
+-	0x0023c6c2, // n0x16aa c0x0000 (---------------)  + I sb
+-	0x002f9dca, // n0x16ab c0x0000 (---------------)  + I sebastopol
+-	0x003003ca, // n0x16ac c0x0000 (---------------)  + I sevastopol
+-	0x00216a02, // n0x16ad c0x0000 (---------------)  + I sm
+-	0x0029cdc4, // n0x16ae c0x0000 (---------------)  + I sumy
+-	0x002013c2, // n0x16af c0x0000 (---------------)  + I te
+-	0x00229588, // n0x16b0 c0x0000 (---------------)  + I ternopil
+-	0x0023c302, // n0x16b1 c0x0000 (---------------)  + I uz
+-	0x00269f48, // n0x16b2 c0x0000 (---------------)  + I uzhgorod
+-	0x002ef207, // n0x16b3 c0x0000 (---------------)  + I vinnica
+-	0x002f0509, // n0x16b4 c0x0000 (---------------)  + I vinnytsia
+-	0x00200b42, // n0x16b5 c0x0000 (---------------)  + I vn
+-	0x002f3905, // n0x16b6 c0x0000 (---------------)  + I volyn
+-	0x002eb005, // n0x16b7 c0x0000 (---------------)  + I yalta
+-	0x0025758b, // n0x16b8 c0x0000 (---------------)  + I zaporizhzhe
+-	0x002fa4cc, // n0x16b9 c0x0000 (---------------)  + I zaporizhzhia
+-	0x002f3cc8, // n0x16ba c0x0000 (---------------)  + I zhitomir
+-	0x00251fc8, // n0x16bb c0x0000 (---------------)  + I zhytomyr
+-	0x002d2c42, // n0x16bc c0x0000 (---------------)  + I zp
+-	0x0020d942, // n0x16bd c0x0000 (---------------)  + I zt
+-	0x00206c42, // n0x16be c0x0000 (---------------)  + I ac
+-	0x0020d642, // n0x16bf c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x16c0 c0x0000 (---------------)  + I com
+-	0x00200482, // n0x16c1 c0x0000 (---------------)  + I go
+-	0x00203e82, // n0x16c2 c0x0000 (---------------)  + I ne
+-	0x00200a82, // n0x16c3 c0x0000 (---------------)  + I or
+-	0x0023e983, // n0x16c4 c0x0000 (---------------)  + I org
+-	0x00201d82, // n0x16c5 c0x0000 (---------------)  + I sc
+-	0x00605582, // n0x16c6 c0x0001 (---------------)  ! I bl
+-	0x0061bccf, // n0x16c7 c0x0001 (---------------)  ! I british-library
+-	0x49e0d642, // n0x16c8 c0x0127 (n0x16d1-n0x16d2)  o I co
+-	0x0068f283, // n0x16c9 c0x0001 (---------------)  ! I jet
+-	0x00649483, // n0x16ca c0x0001 (---------------)  ! I mod
+-	0x0061e759, // n0x16cb c0x0001 (---------------)  ! I national-library-scotland
+-	0x006226c3, // n0x16cc c0x0001 (---------------)  ! I nel
+-	0x00611783, // n0x16cd c0x0001 (---------------)  ! I nic
+-	0x0063ba43, // n0x16ce c0x0001 (---------------)  ! I nls
+-	0x006d2c8a, // n0x16cf c0x0001 (---------------)  ! I parliament
+-	0x01601d83, // n0x16d0 c0x0005 (---------------)* o I sch
+-	0x0003c708, // n0x16d1 c0x0000 (---------------)  +   blogspot
+-	0x4a601582, // n0x16d2 c0x0129 (n0x1711-n0x1714)  + I ak
+-	0x4aa03982, // n0x16d3 c0x012a (n0x1714-n0x1717)  + I al
+-	0x4ae00182, // n0x16d4 c0x012b (n0x1717-n0x171a)  + I ar
+-	0x4b202c02, // n0x16d5 c0x012c (n0x171a-n0x171d)  + I as
+-	0x4b616d42, // n0x16d6 c0x012d (n0x171d-n0x1720)  + I az
+-	0x4ba01002, // n0x16d7 c0x012e (n0x1720-n0x1723)  + I ca
+-	0x4be0d642, // n0x16d8 c0x012f (n0x1723-n0x1726)  + I co
+-	0x4c234a42, // n0x16d9 c0x0130 (n0x1726-n0x1729)  + I ct
+-	0x4c61e242, // n0x16da c0x0131 (n0x1729-n0x172c)  + I dc
+-	0x4ca02602, // n0x16db c0x0132 (n0x172c-n0x172f)  + I de
+-	0x002ec6c3, // n0x16dc c0x0000 (---------------)  + I dni
+-	0x0022bf83, // n0x16dd c0x0000 (---------------)  + I fed
+-	0x4ce45142, // n0x16de c0x0133 (n0x172f-n0x1732)  + I fl
+-	0x4d202bc2, // n0x16df c0x0134 (n0x1732-n0x1735)  + I ga
+-	0x4d609b42, // n0x16e0 c0x0135 (n0x1735-n0x1738)  + I gu
+-	0x4da00742, // n0x16e1 c0x0136 (n0x1738-n0x173a)  + I hi
+-	0x4de05042, // n0x16e2 c0x0137 (n0x173a-n0x173d)  + I ia
+-	0x4e202282, // n0x16e3 c0x0138 (n0x173d-n0x1740)  + I id
+-	0x4e602702, // n0x16e4 c0x0139 (n0x1740-n0x1743)  + I il
+-	0x4ea027c2, // n0x16e5 c0x013a (n0x1743-n0x1746)  + I in
+-	0x000c9445, // n0x16e6 c0x0000 (---------------)  +   is-by
+-	0x0022d543, // n0x16e7 c0x0000 (---------------)  + I isa
+-	0x00211f84, // n0x16e8 c0x0000 (---------------)  + I kids
+-	0x4ee01942, // n0x16e9 c0x013b (n0x1746-n0x1749)  + I ks
+-	0x4f200302, // n0x16ea c0x013c (n0x1749-n0x174c)  + I ky
+-	0x4f602542, // n0x16eb c0x013d (n0x174c-n0x174f)  + I la
+-	0x000a7c8b, // n0x16ec c0x0000 (---------------)  +   land-4-sale
+-	0x4fa02d02, // n0x16ed c0x013e (n0x174f-n0x1752)  + I ma
+-	0x50211042, // n0x16ee c0x0140 (n0x1755-n0x1758)  + I md
+-	0x50602f82, // n0x16ef c0x0141 (n0x1758-n0x175b)  + I me
+-	0x50a06702, // n0x16f0 c0x0142 (n0x175b-n0x175e)  + I mi
+-	0x50e01702, // n0x16f1 c0x0143 (n0x175e-n0x1761)  + I mn
+-	0x51203d42, // n0x16f2 c0x0144 (n0x1761-n0x1764)  + I mo
+-	0x51601342, // n0x16f3 c0x0145 (n0x1764-n0x1767)  + I ms
+-	0x51a5c502, // n0x16f4 c0x0146 (n0x1767-n0x176a)  + I mt
+-	0x51e08ac2, // n0x16f5 c0x0147 (n0x176a-n0x176d)  + I nc
+-	0x522025c2, // n0x16f6 c0x0148 (n0x176d-n0x1770)  + I nd
+-	0x52603e82, // n0x16f7 c0x0149 (n0x1770-n0x1773)  + I ne
+-	0x52a13682, // n0x16f8 c0x014a (n0x1773-n0x1776)  + I nh
+-	0x52e15442, // n0x16f9 c0x014b (n0x1776-n0x1779)  + I nj
+-	0x5320c202, // n0x16fa c0x014c (n0x1779-n0x177c)  + I nm
+-	0x00228bc3, // n0x16fb c0x0000 (---------------)  + I nsn
+-	0x5363ab42, // n0x16fc c0x014d (n0x177c-n0x177f)  + I nv
+-	0x53a11642, // n0x16fd c0x014e (n0x177f-n0x1782)  + I ny
+-	0x53e03b42, // n0x16fe c0x014f (n0x1782-n0x1785)  + I oh
+-	0x542002c2, // n0x16ff c0x0150 (n0x1785-n0x1788)  + I ok
+-	0x54600a82, // n0x1700 c0x0151 (n0x1788-n0x178b)  + I or
+-	0x54a0d002, // n0x1701 c0x0152 (n0x178b-n0x178e)  + I pa
+-	0x54e61ec2, // n0x1702 c0x0153 (n0x178e-n0x1791)  + I pr
+-	0x55201d02, // n0x1703 c0x0154 (n0x1791-n0x1794)  + I ri
+-	0x55601d82, // n0x1704 c0x0155 (n0x1794-n0x1797)  + I sc
+-	0x55a03902, // n0x1705 c0x0156 (n0x1797-n0x179a)  + I sd
+-	0x000ea3cc, // n0x1706 c0x0000 (---------------)  +   stuff-4-sale
+-	0x55e03602, // n0x1707 c0x0157 (n0x179a-n0x179d)  + I tn
+-	0x56264502, // n0x1708 c0x0158 (n0x179d-n0x17a0)  + I tx
+-	0x5660a6c2, // n0x1709 c0x0159 (n0x17a0-n0x17a3)  + I ut
+-	0x56a06f02, // n0x170a c0x015a (n0x17a3-n0x17a6)  + I va
+-	0x56e09542, // n0x170b c0x015b (n0x17a6-n0x17a9)  + I vi
+-	0x57237882, // n0x170c c0x015c (n0x17a9-n0x17ac)  + I vt
+-	0x57603102, // n0x170d c0x015d (n0x17ac-n0x17af)  + I wa
+-	0x57a05002, // n0x170e c0x015e (n0x17af-n0x17b2)  + I wi
+-	0x57e67602, // n0x170f c0x015f (n0x17b2-n0x17b5)  + I wv
+-	0x5823d502, // n0x1710 c0x0160 (n0x17b5-n0x17b8)  + I wy
+-	0x00206842, // n0x1711 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1712 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1713 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1714 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1715 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1716 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1717 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1718 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1719 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x171a c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x171b c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x171c c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x171d c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x171e c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x171f c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1720 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1721 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1722 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1723 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1724 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1725 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1726 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1727 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1728 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1729 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x172a c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x172b c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x172c c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x172d c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x172e c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x172f c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1730 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1731 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1732 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1733 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1734 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1735 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1736 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1737 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1738 c0x0000 (---------------)  + I cc
+-	0x0021bec3, // n0x1739 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x173a c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x173b c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x173c c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x173d c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x173e c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x173f c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1740 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1741 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1742 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1743 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1744 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1745 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1746 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1747 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1748 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1749 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x174a c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x174b c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x174c c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x174d c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x174e c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x174f c0x0000 (---------------)  + I cc
+-	0x4fe316c3, // n0x1750 c0x013f (n0x1752-n0x1755)  + I k12
+-	0x0021bec3, // n0x1751 c0x0000 (---------------)  + I lib
+-	0x0030a184, // n0x1752 c0x0000 (---------------)  + I chtr
+-	0x0032b3c6, // n0x1753 c0x0000 (---------------)  + I paroch
+-	0x002d36c3, // n0x1754 c0x0000 (---------------)  + I pvt
+-	0x00206842, // n0x1755 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1756 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1757 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1758 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1759 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x175a c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x175b c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x175c c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x175d c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x175e c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x175f c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1760 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1761 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1762 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1763 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1764 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1765 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1766 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1767 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1768 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1769 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x176a c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x176b c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x176c c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x176d c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x176e c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x176f c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1770 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1771 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1772 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1773 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1774 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1775 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1776 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1777 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1778 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1779 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x177a c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x177b c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x177c c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x177d c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x177e c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x177f c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1780 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1781 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1782 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1783 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1784 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1785 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1786 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1787 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1788 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1789 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x178a c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x178b c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x178c c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x178d c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x178e c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x178f c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1790 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1791 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1792 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1793 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1794 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1795 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1796 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x1797 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x1798 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x1799 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x179a c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x179b c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x179c c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x179d c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x179e c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x179f c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17a0 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17a1 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17a2 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17a3 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17a4 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17a5 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17a6 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17a7 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17a8 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17a9 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17aa c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17ab c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17ac c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17ad c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17ae c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17af c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17b0 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17b1 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17b2 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17b3 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17b4 c0x0000 (---------------)  + I lib
+-	0x00206842, // n0x17b5 c0x0000 (---------------)  + I cc
+-	0x002316c3, // n0x17b6 c0x0000 (---------------)  + I k12
+-	0x0021bec3, // n0x17b7 c0x0000 (---------------)  + I lib
+-	0x0020d643, // n0x17b8 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x17b9 c0x0000 (---------------)  + I edu
+-	0x00236b83, // n0x17ba c0x0000 (---------------)  + I gub
+-	0x0022f003, // n0x17bb c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x17bc c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x17bd c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x17be c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x17bf c0x0000 (---------------)  + I com
+-	0x00214843, // n0x17c0 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x17c1 c0x0000 (---------------)  + I org
+-	0x0020d643, // n0x17c2 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x17c3 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x17c4 c0x0000 (---------------)  + I gov
+-	0x0022f003, // n0x17c5 c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x17c6 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x17c7 c0x0000 (---------------)  + I org
+-	0x0020d642, // n0x17c8 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x17c9 c0x0000 (---------------)  + I com
+-	0x002bd803, // n0x17ca c0x0000 (---------------)  + I e12
+-	0x002df843, // n0x17cb c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x17cc c0x0000 (---------------)  + I gov
+-	0x00210e04, // n0x17cd c0x0000 (---------------)  + I info
+-	0x0022f003, // n0x17ce c0x0000 (---------------)  + I mil
+-	0x00214843, // n0x17cf c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x17d0 c0x0000 (---------------)  + I org
+-	0x00205e43, // n0x17d1 c0x0000 (---------------)  + I web
+-	0x0020d642, // n0x17d2 c0x0000 (---------------)  + I co
+-	0x0020d643, // n0x17d3 c0x0000 (---------------)  + I com
+-	0x002316c3, // n0x17d4 c0x0000 (---------------)  + I k12
+-	0x00214843, // n0x17d5 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x17d6 c0x0000 (---------------)  + I org
+-	0x00206c42, // n0x17d7 c0x0000 (---------------)  + I ac
+-	0x0030c243, // n0x17d8 c0x0000 (---------------)  + I biz
+-	0x0020d643, // n0x17d9 c0x0000 (---------------)  + I com
+-	0x002df843, // n0x17da c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x17db c0x0000 (---------------)  + I gov
+-	0x00246b06, // n0x17dc c0x0000 (---------------)  + I health
+-	0x00210e04, // n0x17dd c0x0000 (---------------)  + I info
+-	0x00217543, // n0x17de c0x0000 (---------------)  + I int
+-	0x00202f04, // n0x17df c0x0000 (---------------)  + I name
+-	0x00214843, // n0x17e0 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x17e1 c0x0000 (---------------)  + I org
+-	0x002d1383, // n0x17e2 c0x0000 (---------------)  + I pro
+-	0x0020d643, // n0x17e3 c0x0000 (---------------)  + I com
+-	0x00004a46, // n0x17e4 c0x0000 (---------------)  +   dyndns
+-	0x002df843, // n0x17e5 c0x0000 (---------------)  + I edu
+-	0x00218d43, // n0x17e6 c0x0000 (---------------)  + I gov
+-	0x0009ce46, // n0x17e7 c0x0000 (---------------)  +   mypets
+-	0x00214843, // n0x17e8 c0x0000 (---------------)  + I net
+-	0x0023e983, // n0x17e9 c0x0000 (---------------)  + I org
+-}
+-
+-// children is the list of nodes' children, the parent's wildcard bit and the
+-// parent's node type. If a node has no children then their children index
+-// will be in the range [0, 6), depending on the wildcard bit and node type.
+-//
+-// The layout within the uint32, from MSB to LSB, is:
+-//	[ 1 bits] unused
+-//	[ 1 bits] wildcard bit
+-//	[ 2 bits] node type
+-//	[14 bits] high nodes index (exclusive) of children
+-//	[14 bits] low nodes index (inclusive) of children
+-var children = [...]uint32{
+-	0x00000000, // c0x0000 (---------------)  +
+-	0x10000000, // c0x0001 (---------------)  !
+-	0x20000000, // c0x0002 (---------------)  o
+-	0x40000000, // c0x0003 (---------------)* +
+-	0x50000000, // c0x0004 (---------------)* !
+-	0x60000000, // c0x0005 (---------------)* o
+-	0x004f0136, // c0x0006 (n0x0136-n0x013c)  +
+-	0x004f413c, // c0x0007 (n0x013c-n0x013d)  +
+-	0x0051013d, // c0x0008 (n0x013d-n0x0144)  +
+-	0x00674144, // c0x0009 (n0x0144-n0x019d)  +
+-	0x0068819d, // c0x000a (n0x019d-n0x01a2)  +
+-	0x0069c1a2, // c0x000b (n0x01a2-n0x01a7)  +
+-	0x006ac1a7, // c0x000c (n0x01a7-n0x01ab)  +
+-	0x006c41ab, // c0x000d (n0x01ab-n0x01b1)  +
+-	0x006d41b1, // c0x000e (n0x01b1-n0x01b5)  +
+-	0x006ec1b5, // c0x000f (n0x01b5-n0x01bb)  +
+-	0x607141bb, // c0x0010 (n0x01bb-n0x01c5)* o
+-	0x207181c5, // c0x0011 (n0x01c5-n0x01c6)  o
+-	0x207301c6, // c0x0012 (n0x01c6-n0x01cc)  o
+-	0x007341cc, // c0x0013 (n0x01cc-n0x01cd)  +
+-	0x007501cd, // c0x0014 (n0x01cd-n0x01d4)  +
+-	0x007541d4, // c0x0015 (n0x01d4-n0x01d5)  +
+-	0x2079c1d5, // c0x0016 (n0x01d5-n0x01e7)  o
+-	0x007a01e7, // c0x0017 (n0x01e7-n0x01e8)  +
+-	0x007c01e8, // c0x0018 (n0x01e8-n0x01f0)  +
+-	0x007dc1f0, // c0x0019 (n0x01f0-n0x01f7)  +
+-	0x007e01f7, // c0x001a (n0x01f7-n0x01f8)  +
+-	0x008101f8, // c0x001b (n0x01f8-n0x0204)  +
+-	0x00838204, // c0x001c (n0x0204-n0x020e)  +
+-	0x0085820e, // c0x001d (n0x020e-n0x0216)  +
+-	0x00860216, // c0x001e (n0x0216-n0x0218)  +
+-	0x00864218, // c0x001f (n0x0218-n0x0219)  +
+-	0x008f4219, // c0x0020 (n0x0219-n0x023d)  +
+-	0x0090823d, // c0x0021 (n0x023d-n0x0242)  +
+-	0x0091c242, // c0x0022 (n0x0242-n0x0247)  +
+-	0x00938247, // c0x0023 (n0x0247-n0x024e)  +
+-	0x0094824e, // c0x0024 (n0x024e-n0x0252)  +
+-	0x0095c252, // c0x0025 (n0x0252-n0x0257)  +
+-	0x00980257, // c0x0026 (n0x0257-n0x0260)  +
+-	0x00a94260, // c0x0027 (n0x0260-n0x02a5)  +
+-	0x00a982a5, // c0x0028 (n0x02a5-n0x02a6)  +
+-	0x00aac2a6, // c0x0029 (n0x02a6-n0x02ab)  +
+-	0x00ac02ab, // c0x002a (n0x02ab-n0x02b0)  +
+-	0x00ac82b0, // c0x002b (n0x02b0-n0x02b2)  +
+-	0x00ad82b2, // c0x002c (n0x02b2-n0x02b6)  +
+-	0x00aec2b6, // c0x002d (n0x02b6-n0x02bb)  +
+-	0x00b302bb, // c0x002e (n0x02bb-n0x02cc)  +
+-	0x00b402cc, // c0x002f (n0x02cc-n0x02d0)  +
+-	0x00b442d0, // c0x0030 (n0x02d0-n0x02d1)  +
+-	0x00b482d1, // c0x0031 (n0x02d1-n0x02d2)  +
+-	0x00b4c2d2, // c0x0032 (n0x02d2-n0x02d3)  +
+-	0x00b882d3, // c0x0033 (n0x02d3-n0x02e2)  +
+-	0x60b8c2e2, // c0x0034 (n0x02e2-n0x02e3)* o
+-	0x00b9c2e3, // c0x0035 (n0x02e3-n0x02e7)  +
+-	0x00ba02e7, // c0x0036 (n0x02e7-n0x02e8)  +
+-	0x00c502e8, // c0x0037 (n0x02e8-n0x0314)  +
+-	0x00c84314, // c0x0038 (n0x0314-n0x0321)  +
+-	0x00f54321, // c0x0039 (n0x0321-n0x03d5)  +
+-	0x20fa43d5, // c0x003a (n0x03d5-n0x03e9)  o
+-	0x00fc03e9, // c0x003b (n0x03e9-n0x03f0)  +
+-	0x00fd83f0, // c0x003c (n0x03f0-n0x03f6)  +
+-	0x00fdc3f6, // c0x003d (n0x03f6-n0x03f7)  +
+-	0x00fec3f7, // c0x003e (n0x03f7-n0x03fb)  +
+-	0x00ff43fb, // c0x003f (n0x03fb-n0x03fd)  +
+-	0x00ff83fd, // c0x0040 (n0x03fd-n0x03fe)  +
+-	0x010183fe, // c0x0041 (n0x03fe-n0x0406)  +
+-	0x0101c406, // c0x0042 (n0x0406-n0x0407)  +
+-	0x01030407, // c0x0043 (n0x0407-n0x040c)  +
+-	0x0105840c, // c0x0044 (n0x040c-n0x0416)  +
+-	0x01078416, // c0x0045 (n0x0416-n0x041e)  +
+-	0x010a841e, // c0x0046 (n0x041e-n0x042a)  +
+-	0x010d042a, // c0x0047 (n0x042a-n0x0434)  +
+-	0x010f4434, // c0x0048 (n0x0434-n0x043d)  +
+-	0x0110843d, // c0x0049 (n0x043d-n0x0442)  +
+-	0x0110c442, // c0x004a (n0x0442-n0x0443)  +
+-	0x01118443, // c0x004b (n0x0443-n0x0446)  +
+-	0x01178446, // c0x004c (n0x0446-n0x045e)  +
+-	0x0119445e, // c0x004d (n0x045e-n0x0465)  +
+-	0x011a8465, // c0x004e (n0x0465-n0x046a)  +
+-	0x011bc46a, // c0x004f (n0x046a-n0x046f)  +
+-	0x011d446f, // c0x0050 (n0x046f-n0x0475)  +
+-	0x211ec475, // c0x0051 (n0x0475-n0x047b)  o
+-	0x0120447b, // c0x0052 (n0x047b-n0x0481)  +
+-	0x0121c481, // c0x0053 (n0x0481-n0x0487)  +
+-	0x01238487, // c0x0054 (n0x0487-n0x048e)  +
+-	0x0124448e, // c0x0055 (n0x048e-n0x0491)  +
+-	0x0129c491, // c0x0056 (n0x0491-n0x04a7)  +
+-	0x012b44a7, // c0x0057 (n0x04a7-n0x04ad)  +
+-	0x012c44ad, // c0x0058 (n0x04ad-n0x04b1)  +
+-	0x013084b1, // c0x0059 (n0x04b1-n0x04c2)  +
+-	0x013884c2, // c0x005a (n0x04c2-n0x04e2)  +
+-	0x013b04e2, // c0x005b (n0x04e2-n0x04ec)  +
+-	0x013b84ec, // c0x005c (n0x04ec-n0x04ee)  +
+-	0x613bc4ee, // c0x005d (n0x04ee-n0x04ef)* o
+-	0x213c04ef, // c0x005e (n0x04ef-n0x04f0)  o
+-	0x013d84f0, // c0x005f (n0x04f0-n0x04f6)  +
+-	0x013e04f6, // c0x0060 (n0x04f6-n0x04f8)  +
+-	0x014144f8, // c0x0061 (n0x04f8-n0x0505)  +
+-	0x0143c505, // c0x0062 (n0x0505-n0x050f)  +
+-	0x0144050f, // c0x0063 (n0x050f-n0x0510)  +
+-	0x01448510, // c0x0064 (n0x0510-n0x0512)  +
+-	0x01460512, // c0x0065 (n0x0512-n0x0518)  +
+-	0x01484518, // c0x0066 (n0x0518-n0x0521)  +
+-	0x0149c521, // c0x0067 (n0x0521-n0x0527)  +
+-	0x018f4527, // c0x0068 (n0x0527-n0x063d)  +
+-	0x0190863d, // c0x0069 (n0x063d-n0x0642)  +
+-	0x01928642, // c0x006a (n0x0642-n0x064a)  +
+-	0x01a2864a, // c0x006b (n0x064a-n0x068a)  +
+-	0x01afc68a, // c0x006c (n0x068a-n0x06bf)  +
+-	0x01b6c6bf, // c0x006d (n0x06bf-n0x06db)  +
+-	0x01bc46db, // c0x006e (n0x06db-n0x06f1)  +
+-	0x01cac6f1, // c0x006f (n0x06f1-n0x072b)  +
+-	0x01d0472b, // c0x0070 (n0x072b-n0x0741)  +
+-	0x01d40741, // c0x0071 (n0x0741-n0x0750)  +
+-	0x01e3c750, // c0x0072 (n0x0750-n0x078f)  +
+-	0x01f0878f, // c0x0073 (n0x078f-n0x07c2)  +
+-	0x01fa07c2, // c0x0074 (n0x07c2-n0x07e8)  +
+-	0x020307e8, // c0x0075 (n0x07e8-n0x080c)  +
+-	0x0209480c, // c0x0076 (n0x080c-n0x0825)  +
+-	0x022cc825, // c0x0077 (n0x0825-n0x08b3)  +
+-	0x023848b3, // c0x0078 (n0x08b3-n0x08e1)  +
+-	0x024508e1, // c0x0079 (n0x08e1-n0x0914)  +
+-	0x0249c914, // c0x007a (n0x0914-n0x0927)  +
+-	0x02528927, // c0x007b (n0x0927-n0x094a)  +
+-	0x0256494a, // c0x007c (n0x094a-n0x0959)  +
+-	0x025b4959, // c0x007d (n0x0959-n0x096d)  +
+-	0x0262c96d, // c0x007e (n0x096d-n0x098b)  +
+-	0x6263098b, // c0x007f (n0x098b-n0x098c)* o
+-	0x6263498c, // c0x0080 (n0x098c-n0x098d)* o
+-	0x6263898d, // c0x0081 (n0x098d-n0x098e)* o
+-	0x026b498e, // c0x0082 (n0x098e-n0x09ad)  +
+-	0x0271c9ad, // c0x0083 (n0x09ad-n0x09c7)  +
+-	0x027989c7, // c0x0084 (n0x09c7-n0x09e6)  +
+-	0x028109e6, // c0x0085 (n0x09e6-n0x0a04)  +
+-	0x02894a04, // c0x0086 (n0x0a04-n0x0a25)  +
+-	0x02900a25, // c0x0087 (n0x0a25-n0x0a40)  +
+-	0x02a2ca40, // c0x0088 (n0x0a40-n0x0a8b)  +
+-	0x02a84a8b, // c0x0089 (n0x0a8b-n0x0aa1)  +
+-	0x62a88aa1, // c0x008a (n0x0aa1-n0x0aa2)* o
+-	0x02b20aa2, // c0x008b (n0x0aa2-n0x0ac8)  +
+-	0x02ba8ac8, // c0x008c (n0x0ac8-n0x0aea)  +
+-	0x02bf4aea, // c0x008d (n0x0aea-n0x0afd)  +
+-	0x02c5cafd, // c0x008e (n0x0afd-n0x0b17)  +
+-	0x02d04b17, // c0x008f (n0x0b17-n0x0b41)  +
+-	0x02dccb41, // c0x0090 (n0x0b41-n0x0b73)  +
+-	0x02e34b73, // c0x0091 (n0x0b73-n0x0b8d)  +
+-	0x02f48b8d, // c0x0092 (n0x0b8d-n0x0bd2)  +
+-	0x62f4cbd2, // c0x0093 (n0x0bd2-n0x0bd3)* o
+-	0x62f50bd3, // c0x0094 (n0x0bd3-n0x0bd4)* o
+-	0x02facbd4, // c0x0095 (n0x0bd4-n0x0beb)  +
+-	0x03008beb, // c0x0096 (n0x0beb-n0x0c02)  +
+-	0x03098c02, // c0x0097 (n0x0c02-n0x0c26)  +
+-	0x03114c26, // c0x0098 (n0x0c26-n0x0c45)  +
+-	0x03158c45, // c0x0099 (n0x0c45-n0x0c56)  +
+-	0x0323cc56, // c0x009a (n0x0c56-n0x0c8f)  +
+-	0x03270c8f, // c0x009b (n0x0c8f-n0x0c9c)  +
+-	0x032d0c9c, // c0x009c (n0x0c9c-n0x0cb4)  +
+-	0x03344cb4, // c0x009d (n0x0cb4-n0x0cd1)  +
+-	0x033cccd1, // c0x009e (n0x0cd1-n0x0cf3)  +
+-	0x0340ccf3, // c0x009f (n0x0cf3-n0x0d03)  +
+-	0x0347cd03, // c0x00a0 (n0x0d03-n0x0d1f)  +
+-	0x63480d1f, // c0x00a1 (n0x0d1f-n0x0d20)* o
+-	0x03498d20, // c0x00a2 (n0x0d20-n0x0d26)  +
+-	0x034b4d26, // c0x00a3 (n0x0d26-n0x0d2d)  +
+-	0x034f8d2d, // c0x00a4 (n0x0d2d-n0x0d3e)  +
+-	0x03508d3e, // c0x00a5 (n0x0d3e-n0x0d42)  +
+-	0x23520d42, // c0x00a6 (n0x0d42-n0x0d48)  o
+-	0x03598d48, // c0x00a7 (n0x0d48-n0x0d66)  +
+-	0x035acd66, // c0x00a8 (n0x0d66-n0x0d6b)  +
+-	0x035c4d6b, // c0x00a9 (n0x0d6b-n0x0d71)  +
+-	0x035e8d71, // c0x00aa (n0x0d71-n0x0d7a)  +
+-	0x235fcd7a, // c0x00ab (n0x0d7a-n0x0d7f)  o
+-	0x03614d7f, // c0x00ac (n0x0d7f-n0x0d85)  +
+-	0x0364cd85, // c0x00ad (n0x0d85-n0x0d93)  +
+-	0x23660d93, // c0x00ae (n0x0d93-n0x0d98)  o
+-	0x03668d98, // c0x00af (n0x0d98-n0x0d9a)  +
+-	0x0366cd9a, // c0x00b0 (n0x0d9a-n0x0d9b)  +
+-	0x03690d9b, // c0x00b1 (n0x0d9b-n0x0da4)  +
+-	0x036b4da4, // c0x00b2 (n0x0da4-n0x0dad)  +
+-	0x036ccdad, // c0x00b3 (n0x0dad-n0x0db3)  +
+-	0x036d4db3, // c0x00b4 (n0x0db3-n0x0db5)  +
+-	0x036f4db5, // c0x00b5 (n0x0db5-n0x0dbd)  +
+-	0x03714dbd, // c0x00b6 (n0x0dbd-n0x0dc5)  +
+-	0x03730dc5, // c0x00b7 (n0x0dc5-n0x0dcc)  +
+-	0x0374cdcc, // c0x00b8 (n0x0dcc-n0x0dd3)  +
+-	0x0375cdd3, // c0x00b9 (n0x0dd3-n0x0dd7)  +
+-	0x03770dd7, // c0x00ba (n0x0dd7-n0x0ddc)  +
+-	0x03778ddc, // c0x00bb (n0x0ddc-n0x0dde)  +
+-	0x03794dde, // c0x00bc (n0x0dde-n0x0de5)  +
+-	0x04024de5, // c0x00bd (n0x0de5-n0x1009)  +
+-	0x0405d009, // c0x00be (n0x1009-n0x1017)  +
+-	0x04089017, // c0x00bf (n0x1017-n0x1022)  +
+-	0x040a1022, // c0x00c0 (n0x1022-n0x1028)  +
+-	0x040bd028, // c0x00c1 (n0x1028-n0x102f)  +
+-	0x640c102f, // c0x00c2 (n0x102f-n0x1030)* o
+-	0x04105030, // c0x00c3 (n0x1030-n0x1041)  +
+-	0x0410d041, // c0x00c4 (n0x1041-n0x1043)  +
+-	0x24111043, // c0x00c5 (n0x1043-n0x1044)  o
+-	0x24115044, // c0x00c6 (n0x1044-n0x1045)  o
+-	0x04119045, // c0x00c7 (n0x1045-n0x1046)  +
+-	0x041c1046, // c0x00c8 (n0x1046-n0x1070)  +
+-	0x041e9070, // c0x00c9 (n0x1070-n0x107a)  +
+-	0x2420107a, // c0x00ca (n0x107a-n0x1080)  o
+-	0x0420d080, // c0x00cb (n0x1080-n0x1083)  +
+-	0x04d65083, // c0x00cc (n0x1083-n0x1359)  +
+-	0x04d69359, // c0x00cd (n0x1359-n0x135a)  +
+-	0x04d6d35a, // c0x00ce (n0x135a-n0x135b)  +
+-	0x24d7135b, // c0x00cf (n0x135b-n0x135c)  o
+-	0x04d7535c, // c0x00d0 (n0x135c-n0x135d)  +
+-	0x24d7935d, // c0x00d1 (n0x135d-n0x135e)  o
+-	0x04d7d35e, // c0x00d2 (n0x135e-n0x135f)  +
+-	0x24d8935f, // c0x00d3 (n0x135f-n0x1362)  o
+-	0x04d8d362, // c0x00d4 (n0x1362-n0x1363)  +
+-	0x04d91363, // c0x00d5 (n0x1363-n0x1364)  +
+-	0x24d95364, // c0x00d6 (n0x1364-n0x1365)  o
+-	0x04d99365, // c0x00d7 (n0x1365-n0x1366)  +
+-	0x24da1366, // c0x00d8 (n0x1366-n0x1368)  o
+-	0x04da5368, // c0x00d9 (n0x1368-n0x1369)  +
+-	0x04da9369, // c0x00da (n0x1369-n0x136a)  +
+-	0x24db936a, // c0x00db (n0x136a-n0x136e)  o
+-	0x04dbd36e, // c0x00dc (n0x136e-n0x136f)  +
+-	0x04dc136f, // c0x00dd (n0x136f-n0x1370)  +
+-	0x04dc5370, // c0x00de (n0x1370-n0x1371)  +
+-	0x04dc9371, // c0x00df (n0x1371-n0x1372)  +
+-	0x24dcd372, // c0x00e0 (n0x1372-n0x1373)  o
+-	0x04dd1373, // c0x00e1 (n0x1373-n0x1374)  +
+-	0x04dd5374, // c0x00e2 (n0x1374-n0x1375)  +
+-	0x04dd9375, // c0x00e3 (n0x1375-n0x1376)  +
+-	0x04ddd376, // c0x00e4 (n0x1376-n0x1377)  +
+-	0x24de5377, // c0x00e5 (n0x1377-n0x1379)  o
+-	0x04de9379, // c0x00e6 (n0x1379-n0x137a)  +
+-	0x04ded37a, // c0x00e7 (n0x137a-n0x137b)  +
+-	0x04df137b, // c0x00e8 (n0x137b-n0x137c)  +
+-	0x24df537c, // c0x00e9 (n0x137c-n0x137d)  o
+-	0x04df937d, // c0x00ea (n0x137d-n0x137e)  +
+-	0x24e0137e, // c0x00eb (n0x137e-n0x1380)  o
+-	0x24e05380, // c0x00ec (n0x1380-n0x1381)  o
+-	0x04e21381, // c0x00ed (n0x1381-n0x1388)  +
+-	0x04e2d388, // c0x00ee (n0x1388-n0x138b)  +
+-	0x64e3138b, // c0x00ef (n0x138b-n0x138c)* o
+-	0x24e3538c, // c0x00f0 (n0x138c-n0x138d)  o
+-	0x64e5d38d, // c0x00f1 (n0x138d-n0x1397)* o
+-	0x04f31397, // c0x00f2 (n0x1397-n0x13cc)  +
+-	0x04f393cc, // c0x00f3 (n0x13cc-n0x13ce)  +
+-	0x04f653ce, // c0x00f4 (n0x13ce-n0x13d9)  +
+-	0x04f813d9, // c0x00f5 (n0x13d9-n0x13e0)  +
+-	0x04f8d3e0, // c0x00f6 (n0x13e0-n0x13e3)  +
+-	0x04fad3e3, // c0x00f7 (n0x13e3-n0x13eb)  +
+-	0x04fe53eb, // c0x00f8 (n0x13eb-n0x13f9)  +
+-	0x052913f9, // c0x00f9 (n0x13f9-n0x14a4)  +
+-	0x052b54a4, // c0x00fa (n0x14a4-n0x14ad)  +
+-	0x052c94ad, // c0x00fb (n0x14ad-n0x14b2)  +
+-	0x052fd4b2, // c0x00fc (n0x14b2-n0x14bf)  +
+-	0x053194bf, // c0x00fd (n0x14bf-n0x14c6)  +
+-	0x053354c6, // c0x00fe (n0x14c6-n0x14cd)  +
+-	0x053594cd, // c0x00ff (n0x14cd-n0x14d6)  +
+-	0x053714d6, // c0x0100 (n0x14d6-n0x14dc)  +
+-	0x0538d4dc, // c0x0101 (n0x14dc-n0x14e3)  +
+-	0x053ad4e3, // c0x0102 (n0x14e3-n0x14eb)  +
+-	0x053bd4eb, // c0x0103 (n0x14eb-n0x14ef)  +
+-	0x053ed4ef, // c0x0104 (n0x14ef-n0x14fb)  +
+-	0x054054fb, // c0x0105 (n0x14fb-n0x1501)  +
+-	0x05619501, // c0x0106 (n0x1501-n0x1586)  +
+-	0x0563d586, // c0x0107 (n0x1586-n0x158f)  +
+-	0x0565d58f, // c0x0108 (n0x158f-n0x1597)  +
+-	0x05671597, // c0x0109 (n0x1597-n0x159c)  +
+-	0x0568559c, // c0x010a (n0x159c-n0x15a1)  +
+-	0x056a55a1, // c0x010b (n0x15a1-n0x15a9)  +
+-	0x057495a9, // c0x010c (n0x15a9-n0x15d2)  +
+-	0x057655d2, // c0x010d (n0x15d2-n0x15d9)  +
+-	0x057795d9, // c0x010e (n0x15d9-n0x15de)  +
+-	0x0577d5de, // c0x010f (n0x15de-n0x15df)  +
+-	0x057915df, // c0x0110 (n0x15df-n0x15e4)  +
+-	0x057ad5e4, // c0x0111 (n0x15e4-n0x15eb)  +
+-	0x057b95eb, // c0x0112 (n0x15eb-n0x15ee)  +
+-	0x057e95ee, // c0x0113 (n0x15ee-n0x15fa)  +
+-	0x057ed5fa, // c0x0114 (n0x15fa-n0x15fb)  +
+-	0x058055fb, // c0x0115 (n0x15fb-n0x1601)  +
+-	0x05811601, // c0x0116 (n0x1601-n0x1604)  +
+-	0x05815604, // c0x0117 (n0x1604-n0x1605)  +
+-	0x05831605, // c0x0118 (n0x1605-n0x160c)  +
+-	0x0586d60c, // c0x0119 (n0x160c-n0x161b)  +
+-	0x0587161b, // c0x011a (n0x161b-n0x161c)  +
+-	0x0589161c, // c0x011b (n0x161c-n0x1624)  +
+-	0x058e1624, // c0x011c (n0x1624-n0x1638)  +
+-	0x058f9638, // c0x011d (n0x1638-n0x163e)  +
+-	0x6590163e, // c0x011e (n0x163e-n0x1640)* o
+-	0x25905640, // c0x011f (n0x1640-n0x1641)  o
+-	0x05949641, // c0x0120 (n0x1641-n0x1652)  +
+-	0x05959652, // c0x0121 (n0x1652-n0x1656)  +
+-	0x05991656, // c0x0122 (n0x1656-n0x1664)  +
+-	0x259c1664, // c0x0123 (n0x1664-n0x1670)  o
+-	0x05af9670, // c0x0124 (n0x1670-n0x16be)  +
+-	0x05b196be, // c0x0125 (n0x16be-n0x16c6)  +
+-	0x65b456c6, // c0x0126 (n0x16c6-n0x16d1)* o
+-	0x25b496d1, // c0x0127 (n0x16d1-n0x16d2)  o
+-	0x05c456d2, // c0x0128 (n0x16d2-n0x1711)  +
+-	0x05c51711, // c0x0129 (n0x1711-n0x1714)  +
+-	0x05c5d714, // c0x012a (n0x1714-n0x1717)  +
+-	0x05c69717, // c0x012b (n0x1717-n0x171a)  +
+-	0x05c7571a, // c0x012c (n0x171a-n0x171d)  +
+-	0x05c8171d, // c0x012d (n0x171d-n0x1720)  +
+-	0x05c8d720, // c0x012e (n0x1720-n0x1723)  +
+-	0x05c99723, // c0x012f (n0x1723-n0x1726)  +
+-	0x05ca5726, // c0x0130 (n0x1726-n0x1729)  +
+-	0x05cb1729, // c0x0131 (n0x1729-n0x172c)  +
+-	0x05cbd72c, // c0x0132 (n0x172c-n0x172f)  +
+-	0x05cc972f, // c0x0133 (n0x172f-n0x1732)  +
+-	0x05cd5732, // c0x0134 (n0x1732-n0x1735)  +
+-	0x05ce1735, // c0x0135 (n0x1735-n0x1738)  +
+-	0x05ce9738, // c0x0136 (n0x1738-n0x173a)  +
+-	0x05cf573a, // c0x0137 (n0x173a-n0x173d)  +
+-	0x05d0173d, // c0x0138 (n0x173d-n0x1740)  +
+-	0x05d0d740, // c0x0139 (n0x1740-n0x1743)  +
+-	0x05d19743, // c0x013a (n0x1743-n0x1746)  +
+-	0x05d25746, // c0x013b (n0x1746-n0x1749)  +
+-	0x05d31749, // c0x013c (n0x1749-n0x174c)  +
+-	0x05d3d74c, // c0x013d (n0x174c-n0x174f)  +
+-	0x05d4974f, // c0x013e (n0x174f-n0x1752)  +
+-	0x05d55752, // c0x013f (n0x1752-n0x1755)  +
+-	0x05d61755, // c0x0140 (n0x1755-n0x1758)  +
+-	0x05d6d758, // c0x0141 (n0x1758-n0x175b)  +
+-	0x05d7975b, // c0x0142 (n0x175b-n0x175e)  +
+-	0x05d8575e, // c0x0143 (n0x175e-n0x1761)  +
+-	0x05d91761, // c0x0144 (n0x1761-n0x1764)  +
+-	0x05d9d764, // c0x0145 (n0x1764-n0x1767)  +
+-	0x05da9767, // c0x0146 (n0x1767-n0x176a)  +
+-	0x05db576a, // c0x0147 (n0x176a-n0x176d)  +
+-	0x05dc176d, // c0x0148 (n0x176d-n0x1770)  +
+-	0x05dcd770, // c0x0149 (n0x1770-n0x1773)  +
+-	0x05dd9773, // c0x014a (n0x1773-n0x1776)  +
+-	0x05de5776, // c0x014b (n0x1776-n0x1779)  +
+-	0x05df1779, // c0x014c (n0x1779-n0x177c)  +
+-	0x05dfd77c, // c0x014d (n0x177c-n0x177f)  +
+-	0x05e0977f, // c0x014e (n0x177f-n0x1782)  +
+-	0x05e15782, // c0x014f (n0x1782-n0x1785)  +
+-	0x05e21785, // c0x0150 (n0x1785-n0x1788)  +
+-	0x05e2d788, // c0x0151 (n0x1788-n0x178b)  +
+-	0x05e3978b, // c0x0152 (n0x178b-n0x178e)  +
+-	0x05e4578e, // c0x0153 (n0x178e-n0x1791)  +
+-	0x05e51791, // c0x0154 (n0x1791-n0x1794)  +
+-	0x05e5d794, // c0x0155 (n0x1794-n0x1797)  +
+-	0x05e69797, // c0x0156 (n0x1797-n0x179a)  +
+-	0x05e7579a, // c0x0157 (n0x179a-n0x179d)  +
+-	0x05e8179d, // c0x0158 (n0x179d-n0x17a0)  +
+-	0x05e8d7a0, // c0x0159 (n0x17a0-n0x17a3)  +
+-	0x05e997a3, // c0x015a (n0x17a3-n0x17a6)  +
+-	0x05ea57a6, // c0x015b (n0x17a6-n0x17a9)  +
+-	0x05eb17a9, // c0x015c (n0x17a9-n0x17ac)  +
+-	0x05ebd7ac, // c0x015d (n0x17ac-n0x17af)  +
+-	0x05ec97af, // c0x015e (n0x17af-n0x17b2)  +
+-	0x05ed57b2, // c0x015f (n0x17b2-n0x17b5)  +
+-	0x05ee17b5, // c0x0160 (n0x17b5-n0x17b8)  +
+-	0x05ef97b8, // c0x0161 (n0x17b8-n0x17be)  +
+-	0x05f097be, // c0x0162 (n0x17be-n0x17c2)  +
+-	0x05f217c2, // c0x0163 (n0x17c2-n0x17c8)  +
+-	0x05f497c8, // c0x0164 (n0x17c8-n0x17d2)  +
+-	0x05f5d7d2, // c0x0165 (n0x17d2-n0x17d7)  +
+-	0x05f8d7d7, // c0x0166 (n0x17d7-n0x17e3)  +
+-	0x05fa97e3, // c0x0167 (n0x17e3-n0x17ea)  +
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/table_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/table_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/publicsuffix/table_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/publicsuffix/table_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,12226 +0,0 @@
+-// generated by go run gen.go; DO NOT EDIT
+-
+-package publicsuffix
+-
+-var rules = [...]string{
+-	"ac",
+-	"com.ac",
+-	"edu.ac",
+-	"gov.ac",
+-	"net.ac",
+-	"mil.ac",
+-	"org.ac",
+-	"ad",
+-	"nom.ad",
+-	"ae",
+-	"co.ae",
+-	"net.ae",
+-	"org.ae",
+-	"sch.ae",
+-	"ac.ae",
+-	"gov.ae",
+-	"mil.ae",
+-	"aero",
+-	"accident-investigation.aero",
+-	"accident-prevention.aero",
+-	"aerobatic.aero",
+-	"aeroclub.aero",
+-	"aerodrome.aero",
+-	"agents.aero",
+-	"aircraft.aero",
+-	"airline.aero",
+-	"airport.aero",
+-	"air-surveillance.aero",
+-	"airtraffic.aero",
+-	"air-traffic-control.aero",
+-	"ambulance.aero",
+-	"amusement.aero",
+-	"association.aero",
+-	"author.aero",
+-	"ballooning.aero",
+-	"broker.aero",
+-	"caa.aero",
+-	"cargo.aero",
+-	"catering.aero",
+-	"certification.aero",
+-	"championship.aero",
+-	"charter.aero",
+-	"civilaviation.aero",
+-	"club.aero",
+-	"conference.aero",
+-	"consultant.aero",
+-	"consulting.aero",
+-	"control.aero",
+-	"council.aero",
+-	"crew.aero",
+-	"design.aero",
+-	"dgca.aero",
+-	"educator.aero",
+-	"emergency.aero",
+-	"engine.aero",
+-	"engineer.aero",
+-	"entertainment.aero",
+-	"equipment.aero",
+-	"exchange.aero",
+-	"express.aero",
+-	"federation.aero",
+-	"flight.aero",
+-	"freight.aero",
+-	"fuel.aero",
+-	"gliding.aero",
+-	"government.aero",
+-	"groundhandling.aero",
+-	"group.aero",
+-	"hanggliding.aero",
+-	"homebuilt.aero",
+-	"insurance.aero",
+-	"journal.aero",
+-	"journalist.aero",
+-	"leasing.aero",
+-	"logistics.aero",
+-	"magazine.aero",
+-	"maintenance.aero",
+-	"marketplace.aero",
+-	"media.aero",
+-	"microlight.aero",
+-	"modelling.aero",
+-	"navigation.aero",
+-	"parachuting.aero",
+-	"paragliding.aero",
+-	"passenger-association.aero",
+-	"pilot.aero",
+-	"press.aero",
+-	"production.aero",
+-	"recreation.aero",
+-	"repbody.aero",
+-	"res.aero",
+-	"research.aero",
+-	"rotorcraft.aero",
+-	"safety.aero",
+-	"scientist.aero",
+-	"services.aero",
+-	"show.aero",
+-	"skydiving.aero",
+-	"software.aero",
+-	"student.aero",
+-	"taxi.aero",
+-	"trader.aero",
+-	"trading.aero",
+-	"trainer.aero",
+-	"union.aero",
+-	"workinggroup.aero",
+-	"works.aero",
+-	"af",
+-	"gov.af",
+-	"com.af",
+-	"org.af",
+-	"net.af",
+-	"edu.af",
+-	"ag",
+-	"com.ag",
+-	"org.ag",
+-	"net.ag",
+-	"co.ag",
+-	"nom.ag",
+-	"ai",
+-	"off.ai",
+-	"com.ai",
+-	"net.ai",
+-	"org.ai",
+-	"al",
+-	"com.al",
+-	"edu.al",
+-	"gov.al",
+-	"mil.al",
+-	"net.al",
+-	"org.al",
+-	"am",
+-	"an",
+-	"com.an",
+-	"net.an",
+-	"org.an",
+-	"edu.an",
+-	"ao",
+-	"ed.ao",
+-	"gv.ao",
+-	"og.ao",
+-	"co.ao",
+-	"pb.ao",
+-	"it.ao",
+-	"aq",
+-	"*.ar",
+-	"!congresodelalengua3.ar",
+-	"!educ.ar",
+-	"!gobiernoelectronico.ar",
+-	"!mecon.ar",
+-	"!nacion.ar",
+-	"!nic.ar",
+-	"!promocion.ar",
+-	"!retina.ar",
+-	"!uba.ar",
+-	"e164.arpa",
+-	"in-addr.arpa",
+-	"ip6.arpa",
+-	"iris.arpa",
+-	"uri.arpa",
+-	"urn.arpa",
+-	"as",
+-	"gov.as",
+-	"asia",
+-	"at",
+-	"ac.at",
+-	"co.at",
+-	"gv.at",
+-	"or.at",
+-	"com.au",
+-	"net.au",
+-	"org.au",
+-	"edu.au",
+-	"gov.au",
+-	"asn.au",
+-	"id.au",
+-	"info.au",
+-	"conf.au",
+-	"oz.au",
+-	"act.au",
+-	"nsw.au",
+-	"nt.au",
+-	"qld.au",
+-	"sa.au",
+-	"tas.au",
+-	"vic.au",
+-	"wa.au",
+-	"act.edu.au",
+-	"nsw.edu.au",
+-	"nt.edu.au",
+-	"qld.edu.au",
+-	"sa.edu.au",
+-	"tas.edu.au",
+-	"vic.edu.au",
+-	"wa.edu.au",
+-	"act.gov.au",
+-	"nt.gov.au",
+-	"qld.gov.au",
+-	"sa.gov.au",
+-	"tas.gov.au",
+-	"vic.gov.au",
+-	"wa.gov.au",
+-	"aw",
+-	"com.aw",
+-	"ax",
+-	"az",
+-	"com.az",
+-	"net.az",
+-	"int.az",
+-	"gov.az",
+-	"org.az",
+-	"edu.az",
+-	"info.az",
+-	"pp.az",
+-	"mil.az",
+-	"name.az",
+-	"pro.az",
+-	"biz.az",
+-	"ba",
+-	"org.ba",
+-	"net.ba",
+-	"edu.ba",
+-	"gov.ba",
+-	"mil.ba",
+-	"unsa.ba",
+-	"unbi.ba",
+-	"co.ba",
+-	"com.ba",
+-	"rs.ba",
+-	"bb",
+-	"biz.bb",
+-	"com.bb",
+-	"edu.bb",
+-	"gov.bb",
+-	"info.bb",
+-	"net.bb",
+-	"org.bb",
+-	"store.bb",
+-	"*.bd",
+-	"be",
+-	"ac.be",
+-	"bf",
+-	"gov.bf",
+-	"bg",
+-	"a.bg",
+-	"b.bg",
+-	"c.bg",
+-	"d.bg",
+-	"e.bg",
+-	"f.bg",
+-	"g.bg",
+-	"h.bg",
+-	"i.bg",
+-	"j.bg",
+-	"k.bg",
+-	"l.bg",
+-	"m.bg",
+-	"n.bg",
+-	"o.bg",
+-	"p.bg",
+-	"q.bg",
+-	"r.bg",
+-	"s.bg",
+-	"t.bg",
+-	"u.bg",
+-	"v.bg",
+-	"w.bg",
+-	"x.bg",
+-	"y.bg",
+-	"z.bg",
+-	"0.bg",
+-	"1.bg",
+-	"2.bg",
+-	"3.bg",
+-	"4.bg",
+-	"5.bg",
+-	"6.bg",
+-	"7.bg",
+-	"8.bg",
+-	"9.bg",
+-	"bh",
+-	"com.bh",
+-	"edu.bh",
+-	"net.bh",
+-	"org.bh",
+-	"gov.bh",
+-	"bi",
+-	"co.bi",
+-	"com.bi",
+-	"edu.bi",
+-	"or.bi",
+-	"org.bi",
+-	"biz",
+-	"bj",
+-	"asso.bj",
+-	"barreau.bj",
+-	"gouv.bj",
+-	"bm",
+-	"com.bm",
+-	"edu.bm",
+-	"gov.bm",
+-	"net.bm",
+-	"org.bm",
+-	"*.bn",
+-	"bo",
+-	"com.bo",
+-	"edu.bo",
+-	"gov.bo",
+-	"gob.bo",
+-	"int.bo",
+-	"org.bo",
+-	"net.bo",
+-	"mil.bo",
+-	"tv.bo",
+-	"br",
+-	"adm.br",
+-	"adv.br",
+-	"agr.br",
+-	"am.br",
+-	"arq.br",
+-	"art.br",
+-	"ato.br",
+-	"b.br",
+-	"bio.br",
+-	"blog.br",
+-	"bmd.br",
+-	"cim.br",
+-	"cng.br",
+-	"cnt.br",
+-	"com.br",
+-	"coop.br",
+-	"ecn.br",
+-	"eco.br",
+-	"edu.br",
+-	"emp.br",
+-	"eng.br",
+-	"esp.br",
+-	"etc.br",
+-	"eti.br",
+-	"far.br",
+-	"flog.br",
+-	"fm.br",
+-	"fnd.br",
+-	"fot.br",
+-	"fst.br",
+-	"g12.br",
+-	"ggf.br",
+-	"gov.br",
+-	"imb.br",
+-	"ind.br",
+-	"inf.br",
+-	"jor.br",
+-	"jus.br",
+-	"leg.br",
+-	"lel.br",
+-	"mat.br",
+-	"med.br",
+-	"mil.br",
+-	"mus.br",
+-	"net.br",
+-	"nom.br",
+-	"not.br",
+-	"ntr.br",
+-	"odo.br",
+-	"org.br",
+-	"ppg.br",
+-	"pro.br",
+-	"psc.br",
+-	"psi.br",
+-	"qsl.br",
+-	"radio.br",
+-	"rec.br",
+-	"slg.br",
+-	"srv.br",
+-	"taxi.br",
+-	"teo.br",
+-	"tmp.br",
+-	"trd.br",
+-	"tur.br",
+-	"tv.br",
+-	"vet.br",
+-	"vlog.br",
+-	"wiki.br",
+-	"zlg.br",
+-	"bs",
+-	"com.bs",
+-	"net.bs",
+-	"org.bs",
+-	"edu.bs",
+-	"gov.bs",
+-	"bt",
+-	"com.bt",
+-	"edu.bt",
+-	"gov.bt",
+-	"net.bt",
+-	"org.bt",
+-	"bw",
+-	"co.bw",
+-	"org.bw",
+-	"by",
+-	"gov.by",
+-	"mil.by",
+-	"com.by",
+-	"of.by",
+-	"bz",
+-	"com.bz",
+-	"net.bz",
+-	"org.bz",
+-	"edu.bz",
+-	"gov.bz",
+-	"ca",
+-	"ab.ca",
+-	"bc.ca",
+-	"mb.ca",
+-	"nb.ca",
+-	"nf.ca",
+-	"nl.ca",
+-	"ns.ca",
+-	"nt.ca",
+-	"nu.ca",
+-	"on.ca",
+-	"pe.ca",
+-	"qc.ca",
+-	"sk.ca",
+-	"yk.ca",
+-	"gc.ca",
+-	"cat",
+-	"cc",
+-	"cd",
+-	"gov.cd",
+-	"cf",
+-	"cg",
+-	"ch",
+-	"ci",
+-	"org.ci",
+-	"or.ci",
+-	"com.ci",
+-	"co.ci",
+-	"edu.ci",
+-	"ed.ci",
+-	"ac.ci",
+-	"net.ci",
+-	"go.ci",
+-	"asso.ci",
+-	"xn--aroport-bya.ci",
+-	"int.ci",
+-	"presse.ci",
+-	"md.ci",
+-	"gouv.ci",
+-	"*.ck",
+-	"!www.ck",
+-	"cl",
+-	"gov.cl",
+-	"gob.cl",
+-	"co.cl",
+-	"mil.cl",
+-	"cm",
+-	"gov.cm",
+-	"cn",
+-	"ac.cn",
+-	"com.cn",
+-	"edu.cn",
+-	"gov.cn",
+-	"net.cn",
+-	"org.cn",
+-	"mil.cn",
+-	"xn--55qx5d.cn",
+-	"xn--io0a7i.cn",
+-	"xn--od0alg.cn",
+-	"ah.cn",
+-	"bj.cn",
+-	"cq.cn",
+-	"fj.cn",
+-	"gd.cn",
+-	"gs.cn",
+-	"gz.cn",
+-	"gx.cn",
+-	"ha.cn",
+-	"hb.cn",
+-	"he.cn",
+-	"hi.cn",
+-	"hl.cn",
+-	"hn.cn",
+-	"jl.cn",
+-	"js.cn",
+-	"jx.cn",
+-	"ln.cn",
+-	"nm.cn",
+-	"nx.cn",
+-	"qh.cn",
+-	"sc.cn",
+-	"sd.cn",
+-	"sh.cn",
+-	"sn.cn",
+-	"sx.cn",
+-	"tj.cn",
+-	"xj.cn",
+-	"xz.cn",
+-	"yn.cn",
+-	"zj.cn",
+-	"hk.cn",
+-	"mo.cn",
+-	"tw.cn",
+-	"co",
+-	"arts.co",
+-	"com.co",
+-	"edu.co",
+-	"firm.co",
+-	"gov.co",
+-	"info.co",
+-	"int.co",
+-	"mil.co",
+-	"net.co",
+-	"nom.co",
+-	"org.co",
+-	"rec.co",
+-	"web.co",
+-	"com",
+-	"coop",
+-	"cr",
+-	"ac.cr",
+-	"co.cr",
+-	"ed.cr",
+-	"fi.cr",
+-	"go.cr",
+-	"or.cr",
+-	"sa.cr",
+-	"cu",
+-	"com.cu",
+-	"edu.cu",
+-	"org.cu",
+-	"net.cu",
+-	"gov.cu",
+-	"inf.cu",
+-	"cv",
+-	"cw",
+-	"com.cw",
+-	"edu.cw",
+-	"net.cw",
+-	"org.cw",
+-	"cx",
+-	"gov.cx",
+-	"*.cy",
+-	"cz",
+-	"de",
+-	"dj",
+-	"dk",
+-	"dm",
+-	"com.dm",
+-	"net.dm",
+-	"org.dm",
+-	"edu.dm",
+-	"gov.dm",
+-	"do",
+-	"art.do",
+-	"com.do",
+-	"edu.do",
+-	"gob.do",
+-	"gov.do",
+-	"mil.do",
+-	"net.do",
+-	"org.do",
+-	"sld.do",
+-	"web.do",
+-	"dz",
+-	"com.dz",
+-	"org.dz",
+-	"net.dz",
+-	"gov.dz",
+-	"edu.dz",
+-	"asso.dz",
+-	"pol.dz",
+-	"art.dz",
+-	"ec",
+-	"com.ec",
+-	"info.ec",
+-	"net.ec",
+-	"fin.ec",
+-	"k12.ec",
+-	"med.ec",
+-	"pro.ec",
+-	"org.ec",
+-	"edu.ec",
+-	"gov.ec",
+-	"gob.ec",
+-	"mil.ec",
+-	"edu",
+-	"ee",
+-	"edu.ee",
+-	"gov.ee",
+-	"riik.ee",
+-	"lib.ee",
+-	"med.ee",
+-	"com.ee",
+-	"pri.ee",
+-	"aip.ee",
+-	"org.ee",
+-	"fie.ee",
+-	"eg",
+-	"com.eg",
+-	"edu.eg",
+-	"eun.eg",
+-	"gov.eg",
+-	"mil.eg",
+-	"name.eg",
+-	"net.eg",
+-	"org.eg",
+-	"sci.eg",
+-	"*.er",
+-	"es",
+-	"com.es",
+-	"nom.es",
+-	"org.es",
+-	"gob.es",
+-	"edu.es",
+-	"*.et",
+-	"eu",
+-	"fi",
+-	"aland.fi",
+-	"*.fj",
+-	"*.fk",
+-	"fm",
+-	"fo",
+-	"fr",
+-	"com.fr",
+-	"asso.fr",
+-	"nom.fr",
+-	"prd.fr",
+-	"presse.fr",
+-	"tm.fr",
+-	"aeroport.fr",
+-	"assedic.fr",
+-	"avocat.fr",
+-	"avoues.fr",
+-	"cci.fr",
+-	"chambagri.fr",
+-	"chirurgiens-dentistes.fr",
+-	"experts-comptables.fr",
+-	"geometre-expert.fr",
+-	"gouv.fr",
+-	"greta.fr",
+-	"huissier-justice.fr",
+-	"medecin.fr",
+-	"notaires.fr",
+-	"pharmacien.fr",
+-	"port.fr",
+-	"veterinaire.fr",
+-	"ga",
+-	"gd",
+-	"ge",
+-	"com.ge",
+-	"edu.ge",
+-	"gov.ge",
+-	"org.ge",
+-	"mil.ge",
+-	"net.ge",
+-	"pvt.ge",
+-	"gf",
+-	"gg",
+-	"co.gg",
+-	"org.gg",
+-	"net.gg",
+-	"sch.gg",
+-	"gov.gg",
+-	"gh",
+-	"com.gh",
+-	"edu.gh",
+-	"gov.gh",
+-	"org.gh",
+-	"mil.gh",
+-	"gi",
+-	"com.gi",
+-	"ltd.gi",
+-	"gov.gi",
+-	"mod.gi",
+-	"edu.gi",
+-	"org.gi",
+-	"gl",
+-	"gm",
+-	"ac.gn",
+-	"com.gn",
+-	"edu.gn",
+-	"gov.gn",
+-	"org.gn",
+-	"net.gn",
+-	"gov",
+-	"gp",
+-	"com.gp",
+-	"net.gp",
+-	"mobi.gp",
+-	"edu.gp",
+-	"org.gp",
+-	"asso.gp",
+-	"gq",
+-	"gr",
+-	"com.gr",
+-	"edu.gr",
+-	"net.gr",
+-	"org.gr",
+-	"gov.gr",
+-	"gs",
+-	"gt",
+-	"com.gt",
+-	"edu.gt",
+-	"gob.gt",
+-	"ind.gt",
+-	"mil.gt",
+-	"net.gt",
+-	"org.gt",
+-	"*.gu",
+-	"gw",
+-	"gy",
+-	"co.gy",
+-	"com.gy",
+-	"net.gy",
+-	"hk",
+-	"com.hk",
+-	"edu.hk",
+-	"gov.hk",
+-	"idv.hk",
+-	"net.hk",
+-	"org.hk",
+-	"xn--55qx5d.hk",
+-	"xn--wcvs22d.hk",
+-	"xn--lcvr32d.hk",
+-	"xn--mxtq1m.hk",
+-	"xn--gmqw5a.hk",
+-	"xn--ciqpn.hk",
+-	"xn--gmq050i.hk",
+-	"xn--zf0avx.hk",
+-	"xn--io0a7i.hk",
+-	"xn--mk0axi.hk",
+-	"xn--od0alg.hk",
+-	"xn--od0aq3b.hk",
+-	"xn--tn0ag.hk",
+-	"xn--uc0atv.hk",
+-	"xn--uc0ay4a.hk",
+-	"hm",
+-	"hn",
+-	"com.hn",
+-	"edu.hn",
+-	"org.hn",
+-	"net.hn",
+-	"mil.hn",
+-	"gob.hn",
+-	"hr",
+-	"iz.hr",
+-	"from.hr",
+-	"name.hr",
+-	"com.hr",
+-	"ht",
+-	"com.ht",
+-	"shop.ht",
+-	"firm.ht",
+-	"info.ht",
+-	"adult.ht",
+-	"net.ht",
+-	"pro.ht",
+-	"org.ht",
+-	"med.ht",
+-	"art.ht",
+-	"coop.ht",
+-	"pol.ht",
+-	"asso.ht",
+-	"edu.ht",
+-	"rel.ht",
+-	"gouv.ht",
+-	"perso.ht",
+-	"hu",
+-	"co.hu",
+-	"info.hu",
+-	"org.hu",
+-	"priv.hu",
+-	"sport.hu",
+-	"tm.hu",
+-	"2000.hu",
+-	"agrar.hu",
+-	"bolt.hu",
+-	"casino.hu",
+-	"city.hu",
+-	"erotica.hu",
+-	"erotika.hu",
+-	"film.hu",
+-	"forum.hu",
+-	"games.hu",
+-	"hotel.hu",
+-	"ingatlan.hu",
+-	"jogasz.hu",
+-	"konyvelo.hu",
+-	"lakas.hu",
+-	"media.hu",
+-	"news.hu",
+-	"reklam.hu",
+-	"sex.hu",
+-	"shop.hu",
+-	"suli.hu",
+-	"szex.hu",
+-	"tozsde.hu",
+-	"utazas.hu",
+-	"video.hu",
+-	"id",
+-	"ac.id",
+-	"biz.id",
+-	"co.id",
+-	"go.id",
+-	"mil.id",
+-	"my.id",
+-	"net.id",
+-	"or.id",
+-	"sch.id",
+-	"web.id",
+-	"ie",
+-	"gov.ie",
+-	"*.il",
+-	"im",
+-	"co.im",
+-	"ltd.co.im",
+-	"plc.co.im",
+-	"net.im",
+-	"gov.im",
+-	"org.im",
+-	"nic.im",
+-	"ac.im",
+-	"in",
+-	"co.in",
+-	"firm.in",
+-	"net.in",
+-	"org.in",
+-	"gen.in",
+-	"ind.in",
+-	"nic.in",
+-	"ac.in",
+-	"edu.in",
+-	"res.in",
+-	"gov.in",
+-	"mil.in",
+-	"info",
+-	"int",
+-	"eu.int",
+-	"io",
+-	"com.io",
+-	"iq",
+-	"gov.iq",
+-	"edu.iq",
+-	"mil.iq",
+-	"com.iq",
+-	"org.iq",
+-	"net.iq",
+-	"ir",
+-	"ac.ir",
+-	"co.ir",
+-	"gov.ir",
+-	"id.ir",
+-	"net.ir",
+-	"org.ir",
+-	"sch.ir",
+-	"xn--mgba3a4f16a.ir",
+-	"xn--mgba3a4fra.ir",
+-	"is",
+-	"net.is",
+-	"com.is",
+-	"edu.is",
+-	"gov.is",
+-	"org.is",
+-	"int.is",
+-	"it",
+-	"gov.it",
+-	"edu.it",
+-	"agrigento.it",
+-	"ag.it",
+-	"alessandria.it",
+-	"al.it",
+-	"ancona.it",
+-	"an.it",
+-	"aosta.it",
+-	"aoste.it",
+-	"ao.it",
+-	"arezzo.it",
+-	"ar.it",
+-	"ascoli-piceno.it",
+-	"ascolipiceno.it",
+-	"ap.it",
+-	"asti.it",
+-	"at.it",
+-	"avellino.it",
+-	"av.it",
+-	"bari.it",
+-	"ba.it",
+-	"andria-barletta-trani.it",
+-	"andriabarlettatrani.it",
+-	"trani-barletta-andria.it",
+-	"tranibarlettaandria.it",
+-	"barletta-trani-andria.it",
+-	"barlettatraniandria.it",
+-	"andria-trani-barletta.it",
+-	"andriatranibarletta.it",
+-	"trani-andria-barletta.it",
+-	"traniandriabarletta.it",
+-	"bt.it",
+-	"belluno.it",
+-	"bl.it",
+-	"benevento.it",
+-	"bn.it",
+-	"bergamo.it",
+-	"bg.it",
+-	"biella.it",
+-	"bi.it",
+-	"bologna.it",
+-	"bo.it",
+-	"bolzano.it",
+-	"bozen.it",
+-	"balsan.it",
+-	"alto-adige.it",
+-	"altoadige.it",
+-	"suedtirol.it",
+-	"bz.it",
+-	"brescia.it",
+-	"bs.it",
+-	"brindisi.it",
+-	"br.it",
+-	"cagliari.it",
+-	"ca.it",
+-	"caltanissetta.it",
+-	"cl.it",
+-	"campobasso.it",
+-	"cb.it",
+-	"carboniaiglesias.it",
+-	"carbonia-iglesias.it",
+-	"iglesias-carbonia.it",
+-	"iglesiascarbonia.it",
+-	"ci.it",
+-	"caserta.it",
+-	"ce.it",
+-	"catania.it",
+-	"ct.it",
+-	"catanzaro.it",
+-	"cz.it",
+-	"chieti.it",
+-	"ch.it",
+-	"como.it",
+-	"co.it",
+-	"cosenza.it",
+-	"cs.it",
+-	"cremona.it",
+-	"cr.it",
+-	"crotone.it",
+-	"kr.it",
+-	"cuneo.it",
+-	"cn.it",
+-	"dell-ogliastra.it",
+-	"dellogliastra.it",
+-	"ogliastra.it",
+-	"og.it",
+-	"enna.it",
+-	"en.it",
+-	"ferrara.it",
+-	"fe.it",
+-	"fermo.it",
+-	"fm.it",
+-	"firenze.it",
+-	"florence.it",
+-	"fi.it",
+-	"foggia.it",
+-	"fg.it",
+-	"forli-cesena.it",
+-	"forlicesena.it",
+-	"cesena-forli.it",
+-	"cesenaforli.it",
+-	"fc.it",
+-	"frosinone.it",
+-	"fr.it",
+-	"genova.it",
+-	"genoa.it",
+-	"ge.it",
+-	"gorizia.it",
+-	"go.it",
+-	"grosseto.it",
+-	"gr.it",
+-	"imperia.it",
+-	"im.it",
+-	"isernia.it",
+-	"is.it",
+-	"laquila.it",
+-	"aquila.it",
+-	"aq.it",
+-	"la-spezia.it",
+-	"laspezia.it",
+-	"sp.it",
+-	"latina.it",
+-	"lt.it",
+-	"lecce.it",
+-	"le.it",
+-	"lecco.it",
+-	"lc.it",
+-	"livorno.it",
+-	"li.it",
+-	"lodi.it",
+-	"lo.it",
+-	"lucca.it",
+-	"lu.it",
+-	"macerata.it",
+-	"mc.it",
+-	"mantova.it",
+-	"mn.it",
+-	"massa-carrara.it",
+-	"massacarrara.it",
+-	"carrara-massa.it",
+-	"carraramassa.it",
+-	"ms.it",
+-	"matera.it",
+-	"mt.it",
+-	"medio-campidano.it",
+-	"mediocampidano.it",
+-	"campidano-medio.it",
+-	"campidanomedio.it",
+-	"vs.it",
+-	"messina.it",
+-	"me.it",
+-	"milano.it",
+-	"milan.it",
+-	"mi.it",
+-	"modena.it",
+-	"mo.it",
+-	"monza.it",
+-	"monza-brianza.it",
+-	"monzabrianza.it",
+-	"monzaebrianza.it",
+-	"monzaedellabrianza.it",
+-	"monza-e-della-brianza.it",
+-	"mb.it",
+-	"napoli.it",
+-	"naples.it",
+-	"na.it",
+-	"novara.it",
+-	"no.it",
+-	"nuoro.it",
+-	"nu.it",
+-	"oristano.it",
+-	"or.it",
+-	"padova.it",
+-	"padua.it",
+-	"pd.it",
+-	"palermo.it",
+-	"pa.it",
+-	"parma.it",
+-	"pr.it",
+-	"pavia.it",
+-	"pv.it",
+-	"perugia.it",
+-	"pg.it",
+-	"pescara.it",
+-	"pe.it",
+-	"pesaro-urbino.it",
+-	"pesarourbino.it",
+-	"urbino-pesaro.it",
+-	"urbinopesaro.it",
+-	"pu.it",
+-	"piacenza.it",
+-	"pc.it",
+-	"pisa.it",
+-	"pi.it",
+-	"pistoia.it",
+-	"pt.it",
+-	"pordenone.it",
+-	"pn.it",
+-	"potenza.it",
+-	"pz.it",
+-	"prato.it",
+-	"po.it",
+-	"ragusa.it",
+-	"rg.it",
+-	"ravenna.it",
+-	"ra.it",
+-	"reggio-calabria.it",
+-	"reggiocalabria.it",
+-	"rc.it",
+-	"reggio-emilia.it",
+-	"reggioemilia.it",
+-	"re.it",
+-	"rieti.it",
+-	"ri.it",
+-	"rimini.it",
+-	"rn.it",
+-	"roma.it",
+-	"rome.it",
+-	"rm.it",
+-	"rovigo.it",
+-	"ro.it",
+-	"salerno.it",
+-	"sa.it",
+-	"sassari.it",
+-	"ss.it",
+-	"savona.it",
+-	"sv.it",
+-	"siena.it",
+-	"si.it",
+-	"siracusa.it",
+-	"sr.it",
+-	"sondrio.it",
+-	"so.it",
+-	"taranto.it",
+-	"ta.it",
+-	"tempio-olbia.it",
+-	"tempioolbia.it",
+-	"olbia-tempio.it",
+-	"olbiatempio.it",
+-	"ot.it",
+-	"teramo.it",
+-	"te.it",
+-	"terni.it",
+-	"tr.it",
+-	"torino.it",
+-	"turin.it",
+-	"to.it",
+-	"trapani.it",
+-	"tp.it",
+-	"trento.it",
+-	"trentino.it",
+-	"tn.it",
+-	"treviso.it",
+-	"tv.it",
+-	"trieste.it",
+-	"ts.it",
+-	"udine.it",
+-	"ud.it",
+-	"varese.it",
+-	"va.it",
+-	"venezia.it",
+-	"venice.it",
+-	"ve.it",
+-	"verbania.it",
+-	"vb.it",
+-	"vercelli.it",
+-	"vc.it",
+-	"verona.it",
+-	"vr.it",
+-	"vibo-valentia.it",
+-	"vibovalentia.it",
+-	"vv.it",
+-	"vicenza.it",
+-	"vi.it",
+-	"viterbo.it",
+-	"vt.it",
+-	"je",
+-	"co.je",
+-	"org.je",
+-	"net.je",
+-	"sch.je",
+-	"gov.je",
+-	"*.jm",
+-	"jo",
+-	"com.jo",
+-	"org.jo",
+-	"net.jo",
+-	"edu.jo",
+-	"sch.jo",
+-	"gov.jo",
+-	"mil.jo",
+-	"name.jo",
+-	"jobs",
+-	"jp",
+-	"ac.jp",
+-	"ad.jp",
+-	"co.jp",
+-	"ed.jp",
+-	"go.jp",
+-	"gr.jp",
+-	"lg.jp",
+-	"ne.jp",
+-	"or.jp",
+-	"aichi.jp",
+-	"akita.jp",
+-	"aomori.jp",
+-	"chiba.jp",
+-	"ehime.jp",
+-	"fukui.jp",
+-	"fukuoka.jp",
+-	"fukushima.jp",
+-	"gifu.jp",
+-	"gunma.jp",
+-	"hiroshima.jp",
+-	"hokkaido.jp",
+-	"hyogo.jp",
+-	"ibaraki.jp",
+-	"ishikawa.jp",
+-	"iwate.jp",
+-	"kagawa.jp",
+-	"kagoshima.jp",
+-	"kanagawa.jp",
+-	"kochi.jp",
+-	"kumamoto.jp",
+-	"kyoto.jp",
+-	"mie.jp",
+-	"miyagi.jp",
+-	"miyazaki.jp",
+-	"nagano.jp",
+-	"nagasaki.jp",
+-	"nara.jp",
+-	"niigata.jp",
+-	"oita.jp",
+-	"okayama.jp",
+-	"okinawa.jp",
+-	"osaka.jp",
+-	"saga.jp",
+-	"saitama.jp",
+-	"shiga.jp",
+-	"shimane.jp",
+-	"shizuoka.jp",
+-	"tochigi.jp",
+-	"tokushima.jp",
+-	"tokyo.jp",
+-	"tottori.jp",
+-	"toyama.jp",
+-	"wakayama.jp",
+-	"yamagata.jp",
+-	"yamaguchi.jp",
+-	"yamanashi.jp",
+-	"*.kawasaki.jp",
+-	"*.kitakyushu.jp",
+-	"*.kobe.jp",
+-	"*.nagoya.jp",
+-	"*.sapporo.jp",
+-	"*.sendai.jp",
+-	"*.yokohama.jp",
+-	"!city.kawasaki.jp",
+-	"!city.kitakyushu.jp",
+-	"!city.kobe.jp",
+-	"!city.nagoya.jp",
+-	"!city.sapporo.jp",
+-	"!city.sendai.jp",
+-	"!city.yokohama.jp",
+-	"aisai.aichi.jp",
+-	"ama.aichi.jp",
+-	"anjo.aichi.jp",
+-	"asuke.aichi.jp",
+-	"chiryu.aichi.jp",
+-	"chita.aichi.jp",
+-	"fuso.aichi.jp",
+-	"gamagori.aichi.jp",
+-	"handa.aichi.jp",
+-	"hazu.aichi.jp",
+-	"hekinan.aichi.jp",
+-	"higashiura.aichi.jp",
+-	"ichinomiya.aichi.jp",
+-	"inazawa.aichi.jp",
+-	"inuyama.aichi.jp",
+-	"isshiki.aichi.jp",
+-	"iwakura.aichi.jp",
+-	"kanie.aichi.jp",
+-	"kariya.aichi.jp",
+-	"kasugai.aichi.jp",
+-	"kira.aichi.jp",
+-	"kiyosu.aichi.jp",
+-	"komaki.aichi.jp",
+-	"konan.aichi.jp",
+-	"kota.aichi.jp",
+-	"mihama.aichi.jp",
+-	"miyoshi.aichi.jp",
+-	"nagakute.aichi.jp",
+-	"nishio.aichi.jp",
+-	"nisshin.aichi.jp",
+-	"obu.aichi.jp",
+-	"oguchi.aichi.jp",
+-	"oharu.aichi.jp",
+-	"okazaki.aichi.jp",
+-	"owariasahi.aichi.jp",
+-	"seto.aichi.jp",
+-	"shikatsu.aichi.jp",
+-	"shinshiro.aichi.jp",
+-	"shitara.aichi.jp",
+-	"tahara.aichi.jp",
+-	"takahama.aichi.jp",
+-	"tobishima.aichi.jp",
+-	"toei.aichi.jp",
+-	"togo.aichi.jp",
+-	"tokai.aichi.jp",
+-	"tokoname.aichi.jp",
+-	"toyoake.aichi.jp",
+-	"toyohashi.aichi.jp",
+-	"toyokawa.aichi.jp",
+-	"toyone.aichi.jp",
+-	"toyota.aichi.jp",
+-	"tsushima.aichi.jp",
+-	"yatomi.aichi.jp",
+-	"akita.akita.jp",
+-	"daisen.akita.jp",
+-	"fujisato.akita.jp",
+-	"gojome.akita.jp",
+-	"hachirogata.akita.jp",
+-	"happou.akita.jp",
+-	"higashinaruse.akita.jp",
+-	"honjo.akita.jp",
+-	"honjyo.akita.jp",
+-	"ikawa.akita.jp",
+-	"kamikoani.akita.jp",
+-	"kamioka.akita.jp",
+-	"katagami.akita.jp",
+-	"kazuno.akita.jp",
+-	"kitaakita.akita.jp",
+-	"kosaka.akita.jp",
+-	"kyowa.akita.jp",
+-	"misato.akita.jp",
+-	"mitane.akita.jp",
+-	"moriyoshi.akita.jp",
+-	"nikaho.akita.jp",
+-	"noshiro.akita.jp",
+-	"odate.akita.jp",
+-	"oga.akita.jp",
+-	"ogata.akita.jp",
+-	"semboku.akita.jp",
+-	"yokote.akita.jp",
+-	"yurihonjo.akita.jp",
+-	"aomori.aomori.jp",
+-	"gonohe.aomori.jp",
+-	"hachinohe.aomori.jp",
+-	"hashikami.aomori.jp",
+-	"hiranai.aomori.jp",
+-	"hirosaki.aomori.jp",
+-	"itayanagi.aomori.jp",
+-	"kuroishi.aomori.jp",
+-	"misawa.aomori.jp",
+-	"mutsu.aomori.jp",
+-	"nakadomari.aomori.jp",
+-	"noheji.aomori.jp",
+-	"oirase.aomori.jp",
+-	"owani.aomori.jp",
+-	"rokunohe.aomori.jp",
+-	"sannohe.aomori.jp",
+-	"shichinohe.aomori.jp",
+-	"shingo.aomori.jp",
+-	"takko.aomori.jp",
+-	"towada.aomori.jp",
+-	"tsugaru.aomori.jp",
+-	"tsuruta.aomori.jp",
+-	"abiko.chiba.jp",
+-	"asahi.chiba.jp",
+-	"chonan.chiba.jp",
+-	"chosei.chiba.jp",
+-	"choshi.chiba.jp",
+-	"chuo.chiba.jp",
+-	"funabashi.chiba.jp",
+-	"futtsu.chiba.jp",
+-	"hanamigawa.chiba.jp",
+-	"ichihara.chiba.jp",
+-	"ichikawa.chiba.jp",
+-	"ichinomiya.chiba.jp",
+-	"inzai.chiba.jp",
+-	"isumi.chiba.jp",
+-	"kamagaya.chiba.jp",
+-	"kamogawa.chiba.jp",
+-	"kashiwa.chiba.jp",
+-	"katori.chiba.jp",
+-	"katsuura.chiba.jp",
+-	"kimitsu.chiba.jp",
+-	"kisarazu.chiba.jp",
+-	"kozaki.chiba.jp",
+-	"kujukuri.chiba.jp",
+-	"kyonan.chiba.jp",
+-	"matsudo.chiba.jp",
+-	"midori.chiba.jp",
+-	"mihama.chiba.jp",
+-	"minamiboso.chiba.jp",
+-	"mobara.chiba.jp",
+-	"mutsuzawa.chiba.jp",
+-	"nagara.chiba.jp",
+-	"nagareyama.chiba.jp",
+-	"narashino.chiba.jp",
+-	"narita.chiba.jp",
+-	"noda.chiba.jp",
+-	"oamishirasato.chiba.jp",
+-	"omigawa.chiba.jp",
+-	"onjuku.chiba.jp",
+-	"otaki.chiba.jp",
+-	"sakae.chiba.jp",
+-	"sakura.chiba.jp",
+-	"shimofusa.chiba.jp",
+-	"shirako.chiba.jp",
+-	"shiroi.chiba.jp",
+-	"shisui.chiba.jp",
+-	"sodegaura.chiba.jp",
+-	"sosa.chiba.jp",
+-	"tako.chiba.jp",
+-	"tateyama.chiba.jp",
+-	"togane.chiba.jp",
+-	"tohnosho.chiba.jp",
+-	"tomisato.chiba.jp",
+-	"urayasu.chiba.jp",
+-	"yachimata.chiba.jp",
+-	"yachiyo.chiba.jp",
+-	"yokaichiba.chiba.jp",
+-	"yokoshibahikari.chiba.jp",
+-	"yotsukaido.chiba.jp",
+-	"ainan.ehime.jp",
+-	"honai.ehime.jp",
+-	"ikata.ehime.jp",
+-	"imabari.ehime.jp",
+-	"iyo.ehime.jp",
+-	"kamijima.ehime.jp",
+-	"kihoku.ehime.jp",
+-	"kumakogen.ehime.jp",
+-	"masaki.ehime.jp",
+-	"matsuno.ehime.jp",
+-	"matsuyama.ehime.jp",
+-	"namikata.ehime.jp",
+-	"niihama.ehime.jp",
+-	"ozu.ehime.jp",
+-	"saijo.ehime.jp",
+-	"seiyo.ehime.jp",
+-	"shikokuchuo.ehime.jp",
+-	"tobe.ehime.jp",
+-	"toon.ehime.jp",
+-	"uchiko.ehime.jp",
+-	"uwajima.ehime.jp",
+-	"yawatahama.ehime.jp",
+-	"echizen.fukui.jp",
+-	"eiheiji.fukui.jp",
+-	"fukui.fukui.jp",
+-	"ikeda.fukui.jp",
+-	"katsuyama.fukui.jp",
+-	"mihama.fukui.jp",
+-	"minamiechizen.fukui.jp",
+-	"obama.fukui.jp",
+-	"ohi.fukui.jp",
+-	"ono.fukui.jp",
+-	"sabae.fukui.jp",
+-	"sakai.fukui.jp",
+-	"takahama.fukui.jp",
+-	"tsuruga.fukui.jp",
+-	"wakasa.fukui.jp",
+-	"ashiya.fukuoka.jp",
+-	"buzen.fukuoka.jp",
+-	"chikugo.fukuoka.jp",
+-	"chikuho.fukuoka.jp",
+-	"chikujo.fukuoka.jp",
+-	"chikushino.fukuoka.jp",
+-	"chikuzen.fukuoka.jp",
+-	"chuo.fukuoka.jp",
+-	"dazaifu.fukuoka.jp",
+-	"fukuchi.fukuoka.jp",
+-	"hakata.fukuoka.jp",
+-	"higashi.fukuoka.jp",
+-	"hirokawa.fukuoka.jp",
+-	"hisayama.fukuoka.jp",
+-	"iizuka.fukuoka.jp",
+-	"inatsuki.fukuoka.jp",
+-	"kaho.fukuoka.jp",
+-	"kasuga.fukuoka.jp",
+-	"kasuya.fukuoka.jp",
+-	"kawara.fukuoka.jp",
+-	"keisen.fukuoka.jp",
+-	"koga.fukuoka.jp",
+-	"kurate.fukuoka.jp",
+-	"kurogi.fukuoka.jp",
+-	"kurume.fukuoka.jp",
+-	"minami.fukuoka.jp",
+-	"miyako.fukuoka.jp",
+-	"miyama.fukuoka.jp",
+-	"miyawaka.fukuoka.jp",
+-	"mizumaki.fukuoka.jp",
+-	"munakata.fukuoka.jp",
+-	"nakagawa.fukuoka.jp",
+-	"nakama.fukuoka.jp",
+-	"nishi.fukuoka.jp",
+-	"nogata.fukuoka.jp",
+-	"ogori.fukuoka.jp",
+-	"okagaki.fukuoka.jp",
+-	"okawa.fukuoka.jp",
+-	"oki.fukuoka.jp",
+-	"omuta.fukuoka.jp",
+-	"onga.fukuoka.jp",
+-	"onojo.fukuoka.jp",
+-	"oto.fukuoka.jp",
+-	"saigawa.fukuoka.jp",
+-	"sasaguri.fukuoka.jp",
+-	"shingu.fukuoka.jp",
+-	"shinyoshitomi.fukuoka.jp",
+-	"shonai.fukuoka.jp",
+-	"soeda.fukuoka.jp",
+-	"sue.fukuoka.jp",
+-	"tachiarai.fukuoka.jp",
+-	"tagawa.fukuoka.jp",
+-	"takata.fukuoka.jp",
+-	"toho.fukuoka.jp",
+-	"toyotsu.fukuoka.jp",
+-	"tsuiki.fukuoka.jp",
+-	"ukiha.fukuoka.jp",
+-	"umi.fukuoka.jp",
+-	"usui.fukuoka.jp",
+-	"yamada.fukuoka.jp",
+-	"yame.fukuoka.jp",
+-	"yanagawa.fukuoka.jp",
+-	"yukuhashi.fukuoka.jp",
+-	"aizubange.fukushima.jp",
+-	"aizumisato.fukushima.jp",
+-	"aizuwakamatsu.fukushima.jp",
+-	"asakawa.fukushima.jp",
+-	"bandai.fukushima.jp",
+-	"date.fukushima.jp",
+-	"fukushima.fukushima.jp",
+-	"furudono.fukushima.jp",
+-	"futaba.fukushima.jp",
+-	"hanawa.fukushima.jp",
+-	"higashi.fukushima.jp",
+-	"hirata.fukushima.jp",
+-	"hirono.fukushima.jp",
+-	"iitate.fukushima.jp",
+-	"inawashiro.fukushima.jp",
+-	"ishikawa.fukushima.jp",
+-	"iwaki.fukushima.jp",
+-	"izumizaki.fukushima.jp",
+-	"kagamiishi.fukushima.jp",
+-	"kaneyama.fukushima.jp",
+-	"kawamata.fukushima.jp",
+-	"kitakata.fukushima.jp",
+-	"kitashiobara.fukushima.jp",
+-	"koori.fukushima.jp",
+-	"koriyama.fukushima.jp",
+-	"kunimi.fukushima.jp",
+-	"miharu.fukushima.jp",
+-	"mishima.fukushima.jp",
+-	"namie.fukushima.jp",
+-	"nango.fukushima.jp",
+-	"nishiaizu.fukushima.jp",
+-	"nishigo.fukushima.jp",
+-	"okuma.fukushima.jp",
+-	"omotego.fukushima.jp",
+-	"ono.fukushima.jp",
+-	"otama.fukushima.jp",
+-	"samegawa.fukushima.jp",
+-	"shimogo.fukushima.jp",
+-	"shirakawa.fukushima.jp",
+-	"showa.fukushima.jp",
+-	"soma.fukushima.jp",
+-	"sukagawa.fukushima.jp",
+-	"taishin.fukushima.jp",
+-	"tamakawa.fukushima.jp",
+-	"tanagura.fukushima.jp",
+-	"tenei.fukushima.jp",
+-	"yabuki.fukushima.jp",
+-	"yamato.fukushima.jp",
+-	"yamatsuri.fukushima.jp",
+-	"yanaizu.fukushima.jp",
+-	"yugawa.fukushima.jp",
+-	"anpachi.gifu.jp",
+-	"ena.gifu.jp",
+-	"gifu.gifu.jp",
+-	"ginan.gifu.jp",
+-	"godo.gifu.jp",
+-	"gujo.gifu.jp",
+-	"hashima.gifu.jp",
+-	"hichiso.gifu.jp",
+-	"hida.gifu.jp",
+-	"higashishirakawa.gifu.jp",
+-	"ibigawa.gifu.jp",
+-	"ikeda.gifu.jp",
+-	"kakamigahara.gifu.jp",
+-	"kani.gifu.jp",
+-	"kasahara.gifu.jp",
+-	"kasamatsu.gifu.jp",
+-	"kawaue.gifu.jp",
+-	"kitagata.gifu.jp",
+-	"mino.gifu.jp",
+-	"minokamo.gifu.jp",
+-	"mitake.gifu.jp",
+-	"mizunami.gifu.jp",
+-	"motosu.gifu.jp",
+-	"nakatsugawa.gifu.jp",
+-	"ogaki.gifu.jp",
+-	"sakahogi.gifu.jp",
+-	"seki.gifu.jp",
+-	"sekigahara.gifu.jp",
+-	"shirakawa.gifu.jp",
+-	"tajimi.gifu.jp",
+-	"takayama.gifu.jp",
+-	"tarui.gifu.jp",
+-	"toki.gifu.jp",
+-	"tomika.gifu.jp",
+-	"wanouchi.gifu.jp",
+-	"yamagata.gifu.jp",
+-	"yaotsu.gifu.jp",
+-	"yoro.gifu.jp",
+-	"annaka.gunma.jp",
+-	"chiyoda.gunma.jp",
+-	"fujioka.gunma.jp",
+-	"higashiagatsuma.gunma.jp",
+-	"isesaki.gunma.jp",
+-	"itakura.gunma.jp",
+-	"kanna.gunma.jp",
+-	"kanra.gunma.jp",
+-	"katashina.gunma.jp",
+-	"kawaba.gunma.jp",
+-	"kiryu.gunma.jp",
+-	"kusatsu.gunma.jp",
+-	"maebashi.gunma.jp",
+-	"meiwa.gunma.jp",
+-	"midori.gunma.jp",
+-	"minakami.gunma.jp",
+-	"naganohara.gunma.jp",
+-	"nakanojo.gunma.jp",
+-	"nanmoku.gunma.jp",
+-	"numata.gunma.jp",
+-	"oizumi.gunma.jp",
+-	"ora.gunma.jp",
+-	"ota.gunma.jp",
+-	"shibukawa.gunma.jp",
+-	"shimonita.gunma.jp",
+-	"shinto.gunma.jp",
+-	"showa.gunma.jp",
+-	"takasaki.gunma.jp",
+-	"takayama.gunma.jp",
+-	"tamamura.gunma.jp",
+-	"tatebayashi.gunma.jp",
+-	"tomioka.gunma.jp",
+-	"tsukiyono.gunma.jp",
+-	"tsumagoi.gunma.jp",
+-	"ueno.gunma.jp",
+-	"yoshioka.gunma.jp",
+-	"asaminami.hiroshima.jp",
+-	"daiwa.hiroshima.jp",
+-	"etajima.hiroshima.jp",
+-	"fuchu.hiroshima.jp",
+-	"fukuyama.hiroshima.jp",
+-	"hatsukaichi.hiroshima.jp",
+-	"higashihiroshima.hiroshima.jp",
+-	"hongo.hiroshima.jp",
+-	"jinsekikogen.hiroshima.jp",
+-	"kaita.hiroshima.jp",
+-	"kui.hiroshima.jp",
+-	"kumano.hiroshima.jp",
+-	"kure.hiroshima.jp",
+-	"mihara.hiroshima.jp",
+-	"miyoshi.hiroshima.jp",
+-	"naka.hiroshima.jp",
+-	"onomichi.hiroshima.jp",
+-	"osakikamijima.hiroshima.jp",
+-	"otake.hiroshima.jp",
+-	"saka.hiroshima.jp",
+-	"sera.hiroshima.jp",
+-	"seranishi.hiroshima.jp",
+-	"shinichi.hiroshima.jp",
+-	"shobara.hiroshima.jp",
+-	"takehara.hiroshima.jp",
+-	"abashiri.hokkaido.jp",
+-	"abira.hokkaido.jp",
+-	"aibetsu.hokkaido.jp",
+-	"akabira.hokkaido.jp",
+-	"akkeshi.hokkaido.jp",
+-	"asahikawa.hokkaido.jp",
+-	"ashibetsu.hokkaido.jp",
+-	"ashoro.hokkaido.jp",
+-	"assabu.hokkaido.jp",
+-	"atsuma.hokkaido.jp",
+-	"bibai.hokkaido.jp",
+-	"biei.hokkaido.jp",
+-	"bifuka.hokkaido.jp",
+-	"bihoro.hokkaido.jp",
+-	"biratori.hokkaido.jp",
+-	"chippubetsu.hokkaido.jp",
+-	"chitose.hokkaido.jp",
+-	"date.hokkaido.jp",
+-	"ebetsu.hokkaido.jp",
+-	"embetsu.hokkaido.jp",
+-	"eniwa.hokkaido.jp",
+-	"erimo.hokkaido.jp",
+-	"esan.hokkaido.jp",
+-	"esashi.hokkaido.jp",
+-	"fukagawa.hokkaido.jp",
+-	"fukushima.hokkaido.jp",
+-	"furano.hokkaido.jp",
+-	"furubira.hokkaido.jp",
+-	"haboro.hokkaido.jp",
+-	"hakodate.hokkaido.jp",
+-	"hamatonbetsu.hokkaido.jp",
+-	"hidaka.hokkaido.jp",
+-	"higashikagura.hokkaido.jp",
+-	"higashikawa.hokkaido.jp",
+-	"hiroo.hokkaido.jp",
+-	"hokuryu.hokkaido.jp",
+-	"hokuto.hokkaido.jp",
+-	"honbetsu.hokkaido.jp",
+-	"horokanai.hokkaido.jp",
+-	"horonobe.hokkaido.jp",
+-	"ikeda.hokkaido.jp",
+-	"imakane.hokkaido.jp",
+-	"ishikari.hokkaido.jp",
+-	"iwamizawa.hokkaido.jp",
+-	"iwanai.hokkaido.jp",
+-	"kamifurano.hokkaido.jp",
+-	"kamikawa.hokkaido.jp",
+-	"kamishihoro.hokkaido.jp",
+-	"kamisunagawa.hokkaido.jp",
+-	"kamoenai.hokkaido.jp",
+-	"kayabe.hokkaido.jp",
+-	"kembuchi.hokkaido.jp",
+-	"kikonai.hokkaido.jp",
+-	"kimobetsu.hokkaido.jp",
+-	"kitahiroshima.hokkaido.jp",
+-	"kitami.hokkaido.jp",
+-	"kiyosato.hokkaido.jp",
+-	"koshimizu.hokkaido.jp",
+-	"kunneppu.hokkaido.jp",
+-	"kuriyama.hokkaido.jp",
+-	"kuromatsunai.hokkaido.jp",
+-	"kushiro.hokkaido.jp",
+-	"kutchan.hokkaido.jp",
+-	"kyowa.hokkaido.jp",
+-	"mashike.hokkaido.jp",
+-	"matsumae.hokkaido.jp",
+-	"mikasa.hokkaido.jp",
+-	"minamifurano.hokkaido.jp",
+-	"mombetsu.hokkaido.jp",
+-	"moseushi.hokkaido.jp",
+-	"mukawa.hokkaido.jp",
+-	"muroran.hokkaido.jp",
+-	"naie.hokkaido.jp",
+-	"nakagawa.hokkaido.jp",
+-	"nakasatsunai.hokkaido.jp",
+-	"nakatombetsu.hokkaido.jp",
+-	"nanae.hokkaido.jp",
+-	"nanporo.hokkaido.jp",
+-	"nayoro.hokkaido.jp",
+-	"nemuro.hokkaido.jp",
+-	"niikappu.hokkaido.jp",
+-	"niki.hokkaido.jp",
+-	"nishiokoppe.hokkaido.jp",
+-	"noboribetsu.hokkaido.jp",
+-	"numata.hokkaido.jp",
+-	"obihiro.hokkaido.jp",
+-	"obira.hokkaido.jp",
+-	"oketo.hokkaido.jp",
+-	"okoppe.hokkaido.jp",
+-	"otaru.hokkaido.jp",
+-	"otobe.hokkaido.jp",
+-	"otofuke.hokkaido.jp",
+-	"otoineppu.hokkaido.jp",
+-	"oumu.hokkaido.jp",
+-	"ozora.hokkaido.jp",
+-	"pippu.hokkaido.jp",
+-	"rankoshi.hokkaido.jp",
+-	"rebun.hokkaido.jp",
+-	"rikubetsu.hokkaido.jp",
+-	"rishiri.hokkaido.jp",
+-	"rishirifuji.hokkaido.jp",
+-	"saroma.hokkaido.jp",
+-	"sarufutsu.hokkaido.jp",
+-	"shakotan.hokkaido.jp",
+-	"shari.hokkaido.jp",
+-	"shibecha.hokkaido.jp",
+-	"shibetsu.hokkaido.jp",
+-	"shikabe.hokkaido.jp",
+-	"shikaoi.hokkaido.jp",
+-	"shimamaki.hokkaido.jp",
+-	"shimizu.hokkaido.jp",
+-	"shimokawa.hokkaido.jp",
+-	"shinshinotsu.hokkaido.jp",
+-	"shintoku.hokkaido.jp",
+-	"shiranuka.hokkaido.jp",
+-	"shiraoi.hokkaido.jp",
+-	"shiriuchi.hokkaido.jp",
+-	"sobetsu.hokkaido.jp",
+-	"sunagawa.hokkaido.jp",
+-	"taiki.hokkaido.jp",
+-	"takasu.hokkaido.jp",
+-	"takikawa.hokkaido.jp",
+-	"takinoue.hokkaido.jp",
+-	"teshikaga.hokkaido.jp",
+-	"tobetsu.hokkaido.jp",
+-	"tohma.hokkaido.jp",
+-	"tomakomai.hokkaido.jp",
+-	"tomari.hokkaido.jp",
+-	"toya.hokkaido.jp",
+-	"toyako.hokkaido.jp",
+-	"toyotomi.hokkaido.jp",
+-	"toyoura.hokkaido.jp",
+-	"tsubetsu.hokkaido.jp",
+-	"tsukigata.hokkaido.jp",
+-	"urakawa.hokkaido.jp",
+-	"urausu.hokkaido.jp",
+-	"uryu.hokkaido.jp",
+-	"utashinai.hokkaido.jp",
+-	"wakkanai.hokkaido.jp",
+-	"wassamu.hokkaido.jp",
+-	"yakumo.hokkaido.jp",
+-	"yoichi.hokkaido.jp",
+-	"aioi.hyogo.jp",
+-	"akashi.hyogo.jp",
+-	"ako.hyogo.jp",
+-	"amagasaki.hyogo.jp",
+-	"aogaki.hyogo.jp",
+-	"asago.hyogo.jp",
+-	"ashiya.hyogo.jp",
+-	"awaji.hyogo.jp",
+-	"fukusaki.hyogo.jp",
+-	"goshiki.hyogo.jp",
+-	"harima.hyogo.jp",
+-	"himeji.hyogo.jp",
+-	"ichikawa.hyogo.jp",
+-	"inagawa.hyogo.jp",
+-	"itami.hyogo.jp",
+-	"kakogawa.hyogo.jp",
+-	"kamigori.hyogo.jp",
+-	"kamikawa.hyogo.jp",
+-	"kasai.hyogo.jp",
+-	"kasuga.hyogo.jp",
+-	"kawanishi.hyogo.jp",
+-	"miki.hyogo.jp",
+-	"minamiawaji.hyogo.jp",
+-	"nishinomiya.hyogo.jp",
+-	"nishiwaki.hyogo.jp",
+-	"ono.hyogo.jp",
+-	"sanda.hyogo.jp",
+-	"sannan.hyogo.jp",
+-	"sasayama.hyogo.jp",
+-	"sayo.hyogo.jp",
+-	"shingu.hyogo.jp",
+-	"shinonsen.hyogo.jp",
+-	"shiso.hyogo.jp",
+-	"sumoto.hyogo.jp",
+-	"taishi.hyogo.jp",
+-	"taka.hyogo.jp",
+-	"takarazuka.hyogo.jp",
+-	"takasago.hyogo.jp",
+-	"takino.hyogo.jp",
+-	"tamba.hyogo.jp",
+-	"tatsuno.hyogo.jp",
+-	"toyooka.hyogo.jp",
+-	"yabu.hyogo.jp",
+-	"yashiro.hyogo.jp",
+-	"yoka.hyogo.jp",
+-	"yokawa.hyogo.jp",
+-	"ami.ibaraki.jp",
+-	"asahi.ibaraki.jp",
+-	"bando.ibaraki.jp",
+-	"chikusei.ibaraki.jp",
+-	"daigo.ibaraki.jp",
+-	"fujishiro.ibaraki.jp",
+-	"hitachi.ibaraki.jp",
+-	"hitachinaka.ibaraki.jp",
+-	"hitachiomiya.ibaraki.jp",
+-	"hitachiota.ibaraki.jp",
+-	"ibaraki.ibaraki.jp",
+-	"ina.ibaraki.jp",
+-	"inashiki.ibaraki.jp",
+-	"itako.ibaraki.jp",
+-	"iwama.ibaraki.jp",
+-	"joso.ibaraki.jp",
+-	"kamisu.ibaraki.jp",
+-	"kasama.ibaraki.jp",
+-	"kashima.ibaraki.jp",
+-	"kasumigaura.ibaraki.jp",
+-	"koga.ibaraki.jp",
+-	"miho.ibaraki.jp",
+-	"mito.ibaraki.jp",
+-	"moriya.ibaraki.jp",
+-	"naka.ibaraki.jp",
+-	"namegata.ibaraki.jp",
+-	"oarai.ibaraki.jp",
+-	"ogawa.ibaraki.jp",
+-	"omitama.ibaraki.jp",
+-	"ryugasaki.ibaraki.jp",
+-	"sakai.ibaraki.jp",
+-	"sakuragawa.ibaraki.jp",
+-	"shimodate.ibaraki.jp",
+-	"shimotsuma.ibaraki.jp",
+-	"shirosato.ibaraki.jp",
+-	"sowa.ibaraki.jp",
+-	"suifu.ibaraki.jp",
+-	"takahagi.ibaraki.jp",
+-	"tamatsukuri.ibaraki.jp",
+-	"tokai.ibaraki.jp",
+-	"tomobe.ibaraki.jp",
+-	"tone.ibaraki.jp",
+-	"toride.ibaraki.jp",
+-	"tsuchiura.ibaraki.jp",
+-	"tsukuba.ibaraki.jp",
+-	"uchihara.ibaraki.jp",
+-	"ushiku.ibaraki.jp",
+-	"yachiyo.ibaraki.jp",
+-	"yamagata.ibaraki.jp",
+-	"yawara.ibaraki.jp",
+-	"yuki.ibaraki.jp",
+-	"anamizu.ishikawa.jp",
+-	"hakui.ishikawa.jp",
+-	"hakusan.ishikawa.jp",
+-	"kaga.ishikawa.jp",
+-	"kahoku.ishikawa.jp",
+-	"kanazawa.ishikawa.jp",
+-	"kawakita.ishikawa.jp",
+-	"komatsu.ishikawa.jp",
+-	"nakanoto.ishikawa.jp",
+-	"nanao.ishikawa.jp",
+-	"nomi.ishikawa.jp",
+-	"nonoichi.ishikawa.jp",
+-	"noto.ishikawa.jp",
+-	"shika.ishikawa.jp",
+-	"suzu.ishikawa.jp",
+-	"tsubata.ishikawa.jp",
+-	"tsurugi.ishikawa.jp",
+-	"uchinada.ishikawa.jp",
+-	"wajima.ishikawa.jp",
+-	"fudai.iwate.jp",
+-	"fujisawa.iwate.jp",
+-	"hanamaki.iwate.jp",
+-	"hiraizumi.iwate.jp",
+-	"hirono.iwate.jp",
+-	"ichinohe.iwate.jp",
+-	"ichinoseki.iwate.jp",
+-	"iwaizumi.iwate.jp",
+-	"iwate.iwate.jp",
+-	"joboji.iwate.jp",
+-	"kamaishi.iwate.jp",
+-	"kanegasaki.iwate.jp",
+-	"karumai.iwate.jp",
+-	"kawai.iwate.jp",
+-	"kitakami.iwate.jp",
+-	"kuji.iwate.jp",
+-	"kunohe.iwate.jp",
+-	"kuzumaki.iwate.jp",
+-	"miyako.iwate.jp",
+-	"mizusawa.iwate.jp",
+-	"morioka.iwate.jp",
+-	"ninohe.iwate.jp",
+-	"noda.iwate.jp",
+-	"ofunato.iwate.jp",
+-	"oshu.iwate.jp",
+-	"otsuchi.iwate.jp",
+-	"rikuzentakata.iwate.jp",
+-	"shiwa.iwate.jp",
+-	"shizukuishi.iwate.jp",
+-	"sumita.iwate.jp",
+-	"takizawa.iwate.jp",
+-	"tanohata.iwate.jp",
+-	"tono.iwate.jp",
+-	"yahaba.iwate.jp",
+-	"yamada.iwate.jp",
+-	"ayagawa.kagawa.jp",
+-	"higashikagawa.kagawa.jp",
+-	"kanonji.kagawa.jp",
+-	"kotohira.kagawa.jp",
+-	"manno.kagawa.jp",
+-	"marugame.kagawa.jp",
+-	"mitoyo.kagawa.jp",
+-	"naoshima.kagawa.jp",
+-	"sanuki.kagawa.jp",
+-	"tadotsu.kagawa.jp",
+-	"takamatsu.kagawa.jp",
+-	"tonosho.kagawa.jp",
+-	"uchinomi.kagawa.jp",
+-	"utazu.kagawa.jp",
+-	"zentsuji.kagawa.jp",
+-	"akune.kagoshima.jp",
+-	"amami.kagoshima.jp",
+-	"hioki.kagoshima.jp",
+-	"isa.kagoshima.jp",
+-	"isen.kagoshima.jp",
+-	"izumi.kagoshima.jp",
+-	"kagoshima.kagoshima.jp",
+-	"kanoya.kagoshima.jp",
+-	"kawanabe.kagoshima.jp",
+-	"kinko.kagoshima.jp",
+-	"kouyama.kagoshima.jp",
+-	"makurazaki.kagoshima.jp",
+-	"matsumoto.kagoshima.jp",
+-	"minamitane.kagoshima.jp",
+-	"nakatane.kagoshima.jp",
+-	"nishinoomote.kagoshima.jp",
+-	"satsumasendai.kagoshima.jp",
+-	"soo.kagoshima.jp",
+-	"tarumizu.kagoshima.jp",
+-	"yusui.kagoshima.jp",
+-	"aikawa.kanagawa.jp",
+-	"atsugi.kanagawa.jp",
+-	"ayase.kanagawa.jp",
+-	"chigasaki.kanagawa.jp",
+-	"ebina.kanagawa.jp",
+-	"fujisawa.kanagawa.jp",
+-	"hadano.kanagawa.jp",
+-	"hakone.kanagawa.jp",
+-	"hiratsuka.kanagawa.jp",
+-	"isehara.kanagawa.jp",
+-	"kaisei.kanagawa.jp",
+-	"kamakura.kanagawa.jp",
+-	"kiyokawa.kanagawa.jp",
+-	"matsuda.kanagawa.jp",
+-	"minamiashigara.kanagawa.jp",
+-	"miura.kanagawa.jp",
+-	"nakai.kanagawa.jp",
+-	"ninomiya.kanagawa.jp",
+-	"odawara.kanagawa.jp",
+-	"oi.kanagawa.jp",
+-	"oiso.kanagawa.jp",
+-	"sagamihara.kanagawa.jp",
+-	"samukawa.kanagawa.jp",
+-	"tsukui.kanagawa.jp",
+-	"yamakita.kanagawa.jp",
+-	"yamato.kanagawa.jp",
+-	"yokosuka.kanagawa.jp",
+-	"yugawara.kanagawa.jp",
+-	"zama.kanagawa.jp",
+-	"zushi.kanagawa.jp",
+-	"aki.kochi.jp",
+-	"geisei.kochi.jp",
+-	"hidaka.kochi.jp",
+-	"higashitsuno.kochi.jp",
+-	"ino.kochi.jp",
+-	"kagami.kochi.jp",
+-	"kami.kochi.jp",
+-	"kitagawa.kochi.jp",
+-	"kochi.kochi.jp",
+-	"mihara.kochi.jp",
+-	"motoyama.kochi.jp",
+-	"muroto.kochi.jp",
+-	"nahari.kochi.jp",
+-	"nakamura.kochi.jp",
+-	"nankoku.kochi.jp",
+-	"nishitosa.kochi.jp",
+-	"niyodogawa.kochi.jp",
+-	"ochi.kochi.jp",
+-	"okawa.kochi.jp",
+-	"otoyo.kochi.jp",
+-	"otsuki.kochi.jp",
+-	"sakawa.kochi.jp",
+-	"sukumo.kochi.jp",
+-	"susaki.kochi.jp",
+-	"tosa.kochi.jp",
+-	"tosashimizu.kochi.jp",
+-	"toyo.kochi.jp",
+-	"tsuno.kochi.jp",
+-	"umaji.kochi.jp",
+-	"yasuda.kochi.jp",
+-	"yusuhara.kochi.jp",
+-	"amakusa.kumamoto.jp",
+-	"arao.kumamoto.jp",
+-	"aso.kumamoto.jp",
+-	"choyo.kumamoto.jp",
+-	"gyokuto.kumamoto.jp",
+-	"hitoyoshi.kumamoto.jp",
+-	"kamiamakusa.kumamoto.jp",
+-	"kashima.kumamoto.jp",
+-	"kikuchi.kumamoto.jp",
+-	"kosa.kumamoto.jp",
+-	"kumamoto.kumamoto.jp",
+-	"mashiki.kumamoto.jp",
+-	"mifune.kumamoto.jp",
+-	"minamata.kumamoto.jp",
+-	"minamioguni.kumamoto.jp",
+-	"nagasu.kumamoto.jp",
+-	"nishihara.kumamoto.jp",
+-	"oguni.kumamoto.jp",
+-	"ozu.kumamoto.jp",
+-	"sumoto.kumamoto.jp",
+-	"takamori.kumamoto.jp",
+-	"uki.kumamoto.jp",
+-	"uto.kumamoto.jp",
+-	"yamaga.kumamoto.jp",
+-	"yamato.kumamoto.jp",
+-	"yatsushiro.kumamoto.jp",
+-	"ayabe.kyoto.jp",
+-	"fukuchiyama.kyoto.jp",
+-	"higashiyama.kyoto.jp",
+-	"ide.kyoto.jp",
+-	"ine.kyoto.jp",
+-	"joyo.kyoto.jp",
+-	"kameoka.kyoto.jp",
+-	"kamo.kyoto.jp",
+-	"kita.kyoto.jp",
+-	"kizu.kyoto.jp",
+-	"kumiyama.kyoto.jp",
+-	"kyotamba.kyoto.jp",
+-	"kyotanabe.kyoto.jp",
+-	"kyotango.kyoto.jp",
+-	"maizuru.kyoto.jp",
+-	"minami.kyoto.jp",
+-	"minamiyamashiro.kyoto.jp",
+-	"miyazu.kyoto.jp",
+-	"muko.kyoto.jp",
+-	"nagaokakyo.kyoto.jp",
+-	"nakagyo.kyoto.jp",
+-	"nantan.kyoto.jp",
+-	"oyamazaki.kyoto.jp",
+-	"sakyo.kyoto.jp",
+-	"seika.kyoto.jp",
+-	"tanabe.kyoto.jp",
+-	"uji.kyoto.jp",
+-	"ujitawara.kyoto.jp",
+-	"wazuka.kyoto.jp",
+-	"yamashina.kyoto.jp",
+-	"yawata.kyoto.jp",
+-	"asahi.mie.jp",
+-	"inabe.mie.jp",
+-	"ise.mie.jp",
+-	"kameyama.mie.jp",
+-	"kawagoe.mie.jp",
+-	"kiho.mie.jp",
+-	"kisosaki.mie.jp",
+-	"kiwa.mie.jp",
+-	"komono.mie.jp",
+-	"kumano.mie.jp",
+-	"kuwana.mie.jp",
+-	"matsusaka.mie.jp",
+-	"meiwa.mie.jp",
+-	"mihama.mie.jp",
+-	"minamiise.mie.jp",
+-	"misugi.mie.jp",
+-	"miyama.mie.jp",
+-	"nabari.mie.jp",
+-	"shima.mie.jp",
+-	"suzuka.mie.jp",
+-	"tado.mie.jp",
+-	"taiki.mie.jp",
+-	"taki.mie.jp",
+-	"tamaki.mie.jp",
+-	"toba.mie.jp",
+-	"tsu.mie.jp",
+-	"udono.mie.jp",
+-	"ureshino.mie.jp",
+-	"watarai.mie.jp",
+-	"yokkaichi.mie.jp",
+-	"furukawa.miyagi.jp",
+-	"higashimatsushima.miyagi.jp",
+-	"ishinomaki.miyagi.jp",
+-	"iwanuma.miyagi.jp",
+-	"kakuda.miyagi.jp",
+-	"kami.miyagi.jp",
+-	"kawasaki.miyagi.jp",
+-	"kesennuma.miyagi.jp",
+-	"marumori.miyagi.jp",
+-	"matsushima.miyagi.jp",
+-	"minamisanriku.miyagi.jp",
+-	"misato.miyagi.jp",
+-	"murata.miyagi.jp",
+-	"natori.miyagi.jp",
+-	"ogawara.miyagi.jp",
+-	"ohira.miyagi.jp",
+-	"onagawa.miyagi.jp",
+-	"osaki.miyagi.jp",
+-	"rifu.miyagi.jp",
+-	"semine.miyagi.jp",
+-	"shibata.miyagi.jp",
+-	"shichikashuku.miyagi.jp",
+-	"shikama.miyagi.jp",
+-	"shiogama.miyagi.jp",
+-	"shiroishi.miyagi.jp",
+-	"tagajo.miyagi.jp",
+-	"taiwa.miyagi.jp",
+-	"tome.miyagi.jp",
+-	"tomiya.miyagi.jp",
+-	"wakuya.miyagi.jp",
+-	"watari.miyagi.jp",
+-	"yamamoto.miyagi.jp",
+-	"zao.miyagi.jp",
+-	"aya.miyazaki.jp",
+-	"ebino.miyazaki.jp",
+-	"gokase.miyazaki.jp",
+-	"hyuga.miyazaki.jp",
+-	"kadogawa.miyazaki.jp",
+-	"kawaminami.miyazaki.jp",
+-	"kijo.miyazaki.jp",
+-	"kitagawa.miyazaki.jp",
+-	"kitakata.miyazaki.jp",
+-	"kitaura.miyazaki.jp",
+-	"kobayashi.miyazaki.jp",
+-	"kunitomi.miyazaki.jp",
+-	"kushima.miyazaki.jp",
+-	"mimata.miyazaki.jp",
+-	"miyakonojo.miyazaki.jp",
+-	"miyazaki.miyazaki.jp",
+-	"morotsuka.miyazaki.jp",
+-	"nichinan.miyazaki.jp",
+-	"nishimera.miyazaki.jp",
+-	"nobeoka.miyazaki.jp",
+-	"saito.miyazaki.jp",
+-	"shiiba.miyazaki.jp",
+-	"shintomi.miyazaki.jp",
+-	"takaharu.miyazaki.jp",
+-	"takanabe.miyazaki.jp",
+-	"takazaki.miyazaki.jp",
+-	"tsuno.miyazaki.jp",
+-	"achi.nagano.jp",
+-	"agematsu.nagano.jp",
+-	"anan.nagano.jp",
+-	"aoki.nagano.jp",
+-	"asahi.nagano.jp",
+-	"azumino.nagano.jp",
+-	"chikuhoku.nagano.jp",
+-	"chikuma.nagano.jp",
+-	"chino.nagano.jp",
+-	"fujimi.nagano.jp",
+-	"hakuba.nagano.jp",
+-	"hara.nagano.jp",
+-	"hiraya.nagano.jp",
+-	"iida.nagano.jp",
+-	"iijima.nagano.jp",
+-	"iiyama.nagano.jp",
+-	"iizuna.nagano.jp",
+-	"ikeda.nagano.jp",
+-	"ikusaka.nagano.jp",
+-	"ina.nagano.jp",
+-	"karuizawa.nagano.jp",
+-	"kawakami.nagano.jp",
+-	"kiso.nagano.jp",
+-	"kisofukushima.nagano.jp",
+-	"kitaaiki.nagano.jp",
+-	"komagane.nagano.jp",
+-	"komoro.nagano.jp",
+-	"matsukawa.nagano.jp",
+-	"matsumoto.nagano.jp",
+-	"miasa.nagano.jp",
+-	"minamiaiki.nagano.jp",
+-	"minamimaki.nagano.jp",
+-	"minamiminowa.nagano.jp",
+-	"minowa.nagano.jp",
+-	"miyada.nagano.jp",
+-	"miyota.nagano.jp",
+-	"mochizuki.nagano.jp",
+-	"nagano.nagano.jp",
+-	"nagawa.nagano.jp",
+-	"nagiso.nagano.jp",
+-	"nakagawa.nagano.jp",
+-	"nakano.nagano.jp",
+-	"nozawaonsen.nagano.jp",
+-	"obuse.nagano.jp",
+-	"ogawa.nagano.jp",
+-	"okaya.nagano.jp",
+-	"omachi.nagano.jp",
+-	"omi.nagano.jp",
+-	"ookuwa.nagano.jp",
+-	"ooshika.nagano.jp",
+-	"otaki.nagano.jp",
+-	"otari.nagano.jp",
+-	"sakae.nagano.jp",
+-	"sakaki.nagano.jp",
+-	"saku.nagano.jp",
+-	"sakuho.nagano.jp",
+-	"shimosuwa.nagano.jp",
+-	"shinanomachi.nagano.jp",
+-	"shiojiri.nagano.jp",
+-	"suwa.nagano.jp",
+-	"suzaka.nagano.jp",
+-	"takagi.nagano.jp",
+-	"takamori.nagano.jp",
+-	"takayama.nagano.jp",
+-	"tateshina.nagano.jp",
+-	"tatsuno.nagano.jp",
+-	"togakushi.nagano.jp",
+-	"togura.nagano.jp",
+-	"tomi.nagano.jp",
+-	"ueda.nagano.jp",
+-	"wada.nagano.jp",
+-	"yamagata.nagano.jp",
+-	"yamanouchi.nagano.jp",
+-	"yasaka.nagano.jp",
+-	"yasuoka.nagano.jp",
+-	"chijiwa.nagasaki.jp",
+-	"futsu.nagasaki.jp",
+-	"goto.nagasaki.jp",
+-	"hasami.nagasaki.jp",
+-	"hirado.nagasaki.jp",
+-	"iki.nagasaki.jp",
+-	"isahaya.nagasaki.jp",
+-	"kawatana.nagasaki.jp",
+-	"kuchinotsu.nagasaki.jp",
+-	"matsuura.nagasaki.jp",
+-	"nagasaki.nagasaki.jp",
+-	"obama.nagasaki.jp",
+-	"omura.nagasaki.jp",
+-	"oseto.nagasaki.jp",
+-	"saikai.nagasaki.jp",
+-	"sasebo.nagasaki.jp",
+-	"seihi.nagasaki.jp",
+-	"shimabara.nagasaki.jp",
+-	"shinkamigoto.nagasaki.jp",
+-	"togitsu.nagasaki.jp",
+-	"tsushima.nagasaki.jp",
+-	"unzen.nagasaki.jp",
+-	"ando.nara.jp",
+-	"gose.nara.jp",
+-	"heguri.nara.jp",
+-	"higashiyoshino.nara.jp",
+-	"ikaruga.nara.jp",
+-	"ikoma.nara.jp",
+-	"kamikitayama.nara.jp",
+-	"kanmaki.nara.jp",
+-	"kashiba.nara.jp",
+-	"kashihara.nara.jp",
+-	"katsuragi.nara.jp",
+-	"kawai.nara.jp",
+-	"kawakami.nara.jp",
+-	"kawanishi.nara.jp",
+-	"koryo.nara.jp",
+-	"kurotaki.nara.jp",
+-	"mitsue.nara.jp",
+-	"miyake.nara.jp",
+-	"nara.nara.jp",
+-	"nosegawa.nara.jp",
+-	"oji.nara.jp",
+-	"ouda.nara.jp",
+-	"oyodo.nara.jp",
+-	"sakurai.nara.jp",
+-	"sango.nara.jp",
+-	"shimoichi.nara.jp",
+-	"shimokitayama.nara.jp",
+-	"shinjo.nara.jp",
+-	"soni.nara.jp",
+-	"takatori.nara.jp",
+-	"tawaramoto.nara.jp",
+-	"tenkawa.nara.jp",
+-	"tenri.nara.jp",
+-	"uda.nara.jp",
+-	"yamatokoriyama.nara.jp",
+-	"yamatotakada.nara.jp",
+-	"yamazoe.nara.jp",
+-	"yoshino.nara.jp",
+-	"aga.niigata.jp",
+-	"agano.niigata.jp",
+-	"gosen.niigata.jp",
+-	"itoigawa.niigata.jp",
+-	"izumozaki.niigata.jp",
+-	"joetsu.niigata.jp",
+-	"kamo.niigata.jp",
+-	"kariwa.niigata.jp",
+-	"kashiwazaki.niigata.jp",
+-	"minamiuonuma.niigata.jp",
+-	"mitsuke.niigata.jp",
+-	"muika.niigata.jp",
+-	"murakami.niigata.jp",
+-	"myoko.niigata.jp",
+-	"nagaoka.niigata.jp",
+-	"niigata.niigata.jp",
+-	"ojiya.niigata.jp",
+-	"omi.niigata.jp",
+-	"sado.niigata.jp",
+-	"sanjo.niigata.jp",
+-	"seiro.niigata.jp",
+-	"seirou.niigata.jp",
+-	"sekikawa.niigata.jp",
+-	"shibata.niigata.jp",
+-	"tagami.niigata.jp",
+-	"tainai.niigata.jp",
+-	"tochio.niigata.jp",
+-	"tokamachi.niigata.jp",
+-	"tsubame.niigata.jp",
+-	"tsunan.niigata.jp",
+-	"uonuma.niigata.jp",
+-	"yahiko.niigata.jp",
+-	"yoita.niigata.jp",
+-	"yuzawa.niigata.jp",
+-	"beppu.oita.jp",
+-	"bungoono.oita.jp",
+-	"bungotakada.oita.jp",
+-	"hasama.oita.jp",
+-	"hiji.oita.jp",
+-	"himeshima.oita.jp",
+-	"hita.oita.jp",
+-	"kamitsue.oita.jp",
+-	"kokonoe.oita.jp",
+-	"kuju.oita.jp",
+-	"kunisaki.oita.jp",
+-	"kusu.oita.jp",
+-	"oita.oita.jp",
+-	"saiki.oita.jp",
+-	"taketa.oita.jp",
+-	"tsukumi.oita.jp",
+-	"usa.oita.jp",
+-	"usuki.oita.jp",
+-	"yufu.oita.jp",
+-	"akaiwa.okayama.jp",
+-	"asakuchi.okayama.jp",
+-	"bizen.okayama.jp",
+-	"hayashima.okayama.jp",
+-	"ibara.okayama.jp",
+-	"kagamino.okayama.jp",
+-	"kasaoka.okayama.jp",
+-	"kibichuo.okayama.jp",
+-	"kumenan.okayama.jp",
+-	"kurashiki.okayama.jp",
+-	"maniwa.okayama.jp",
+-	"misaki.okayama.jp",
+-	"nagi.okayama.jp",
+-	"niimi.okayama.jp",
+-	"nishiawakura.okayama.jp",
+-	"okayama.okayama.jp",
+-	"satosho.okayama.jp",
+-	"setouchi.okayama.jp",
+-	"shinjo.okayama.jp",
+-	"shoo.okayama.jp",
+-	"soja.okayama.jp",
+-	"takahashi.okayama.jp",
+-	"tamano.okayama.jp",
+-	"tsuyama.okayama.jp",
+-	"wake.okayama.jp",
+-	"yakage.okayama.jp",
+-	"aguni.okinawa.jp",
+-	"ginowan.okinawa.jp",
+-	"ginoza.okinawa.jp",
+-	"gushikami.okinawa.jp",
+-	"haebaru.okinawa.jp",
+-	"higashi.okinawa.jp",
+-	"hirara.okinawa.jp",
+-	"iheya.okinawa.jp",
+-	"ishigaki.okinawa.jp",
+-	"ishikawa.okinawa.jp",
+-	"itoman.okinawa.jp",
+-	"izena.okinawa.jp",
+-	"kadena.okinawa.jp",
+-	"kin.okinawa.jp",
+-	"kitadaito.okinawa.jp",
+-	"kitanakagusuku.okinawa.jp",
+-	"kumejima.okinawa.jp",
+-	"kunigami.okinawa.jp",
+-	"minamidaito.okinawa.jp",
+-	"motobu.okinawa.jp",
+-	"nago.okinawa.jp",
+-	"naha.okinawa.jp",
+-	"nakagusuku.okinawa.jp",
+-	"nakijin.okinawa.jp",
+-	"nanjo.okinawa.jp",
+-	"nishihara.okinawa.jp",
+-	"ogimi.okinawa.jp",
+-	"okinawa.okinawa.jp",
+-	"onna.okinawa.jp",
+-	"shimoji.okinawa.jp",
+-	"taketomi.okinawa.jp",
+-	"tarama.okinawa.jp",
+-	"tokashiki.okinawa.jp",
+-	"tomigusuku.okinawa.jp",
+-	"tonaki.okinawa.jp",
+-	"urasoe.okinawa.jp",
+-	"uruma.okinawa.jp",
+-	"yaese.okinawa.jp",
+-	"yomitan.okinawa.jp",
+-	"yonabaru.okinawa.jp",
+-	"yonaguni.okinawa.jp",
+-	"zamami.okinawa.jp",
+-	"abeno.osaka.jp",
+-	"chihayaakasaka.osaka.jp",
+-	"chuo.osaka.jp",
+-	"daito.osaka.jp",
+-	"fujiidera.osaka.jp",
+-	"habikino.osaka.jp",
+-	"hannan.osaka.jp",
+-	"higashiosaka.osaka.jp",
+-	"higashisumiyoshi.osaka.jp",
+-	"higashiyodogawa.osaka.jp",
+-	"hirakata.osaka.jp",
+-	"ibaraki.osaka.jp",
+-	"ikeda.osaka.jp",
+-	"izumi.osaka.jp",
+-	"izumiotsu.osaka.jp",
+-	"izumisano.osaka.jp",
+-	"kadoma.osaka.jp",
+-	"kaizuka.osaka.jp",
+-	"kanan.osaka.jp",
+-	"kashiwara.osaka.jp",
+-	"katano.osaka.jp",
+-	"kawachinagano.osaka.jp",
+-	"kishiwada.osaka.jp",
+-	"kita.osaka.jp",
+-	"kumatori.osaka.jp",
+-	"matsubara.osaka.jp",
+-	"minato.osaka.jp",
+-	"minoh.osaka.jp",
+-	"misaki.osaka.jp",
+-	"moriguchi.osaka.jp",
+-	"neyagawa.osaka.jp",
+-	"nishi.osaka.jp",
+-	"nose.osaka.jp",
+-	"osakasayama.osaka.jp",
+-	"sakai.osaka.jp",
+-	"sayama.osaka.jp",
+-	"sennan.osaka.jp",
+-	"settsu.osaka.jp",
+-	"shijonawate.osaka.jp",
+-	"shimamoto.osaka.jp",
+-	"suita.osaka.jp",
+-	"tadaoka.osaka.jp",
+-	"taishi.osaka.jp",
+-	"tajiri.osaka.jp",
+-	"takaishi.osaka.jp",
+-	"takatsuki.osaka.jp",
+-	"tondabayashi.osaka.jp",
+-	"toyonaka.osaka.jp",
+-	"toyono.osaka.jp",
+-	"yao.osaka.jp",
+-	"ariake.saga.jp",
+-	"arita.saga.jp",
+-	"fukudomi.saga.jp",
+-	"genkai.saga.jp",
+-	"hamatama.saga.jp",
+-	"hizen.saga.jp",
+-	"imari.saga.jp",
+-	"kamimine.saga.jp",
+-	"kanzaki.saga.jp",
+-	"karatsu.saga.jp",
+-	"kashima.saga.jp",
+-	"kitagata.saga.jp",
+-	"kitahata.saga.jp",
+-	"kiyama.saga.jp",
+-	"kouhoku.saga.jp",
+-	"kyuragi.saga.jp",
+-	"nishiarita.saga.jp",
+-	"ogi.saga.jp",
+-	"omachi.saga.jp",
+-	"ouchi.saga.jp",
+-	"saga.saga.jp",
+-	"shiroishi.saga.jp",
+-	"taku.saga.jp",
+-	"tara.saga.jp",
+-	"tosu.saga.jp",
+-	"yoshinogari.saga.jp",
+-	"arakawa.saitama.jp",
+-	"asaka.saitama.jp",
+-	"chichibu.saitama.jp",
+-	"fujimi.saitama.jp",
+-	"fujimino.saitama.jp",
+-	"fukaya.saitama.jp",
+-	"hanno.saitama.jp",
+-	"hanyu.saitama.jp",
+-	"hasuda.saitama.jp",
+-	"hatogaya.saitama.jp",
+-	"hatoyama.saitama.jp",
+-	"hidaka.saitama.jp",
+-	"higashichichibu.saitama.jp",
+-	"higashimatsuyama.saitama.jp",
+-	"honjo.saitama.jp",
+-	"ina.saitama.jp",
+-	"iruma.saitama.jp",
+-	"iwatsuki.saitama.jp",
+-	"kamiizumi.saitama.jp",
+-	"kamikawa.saitama.jp",
+-	"kamisato.saitama.jp",
+-	"kasukabe.saitama.jp",
+-	"kawagoe.saitama.jp",
+-	"kawaguchi.saitama.jp",
+-	"kawajima.saitama.jp",
+-	"kazo.saitama.jp",
+-	"kitamoto.saitama.jp",
+-	"koshigaya.saitama.jp",
+-	"kounosu.saitama.jp",
+-	"kuki.saitama.jp",
+-	"kumagaya.saitama.jp",
+-	"matsubushi.saitama.jp",
+-	"minano.saitama.jp",
+-	"misato.saitama.jp",
+-	"miyashiro.saitama.jp",
+-	"miyoshi.saitama.jp",
+-	"moroyama.saitama.jp",
+-	"nagatoro.saitama.jp",
+-	"namegawa.saitama.jp",
+-	"niiza.saitama.jp",
+-	"ogano.saitama.jp",
+-	"ogawa.saitama.jp",
+-	"ogose.saitama.jp",
+-	"okegawa.saitama.jp",
+-	"omiya.saitama.jp",
+-	"otaki.saitama.jp",
+-	"ranzan.saitama.jp",
+-	"ryokami.saitama.jp",
+-	"saitama.saitama.jp",
+-	"sakado.saitama.jp",
+-	"satte.saitama.jp",
+-	"sayama.saitama.jp",
+-	"shiki.saitama.jp",
+-	"shiraoka.saitama.jp",
+-	"soka.saitama.jp",
+-	"sugito.saitama.jp",
+-	"toda.saitama.jp",
+-	"tokigawa.saitama.jp",
+-	"tokorozawa.saitama.jp",
+-	"tsurugashima.saitama.jp",
+-	"urawa.saitama.jp",
+-	"warabi.saitama.jp",
+-	"yashio.saitama.jp",
+-	"yokoze.saitama.jp",
+-	"yono.saitama.jp",
+-	"yorii.saitama.jp",
+-	"yoshida.saitama.jp",
+-	"yoshikawa.saitama.jp",
+-	"yoshimi.saitama.jp",
+-	"aisho.shiga.jp",
+-	"gamo.shiga.jp",
+-	"higashiomi.shiga.jp",
+-	"hikone.shiga.jp",
+-	"koka.shiga.jp",
+-	"konan.shiga.jp",
+-	"kosei.shiga.jp",
+-	"koto.shiga.jp",
+-	"kusatsu.shiga.jp",
+-	"maibara.shiga.jp",
+-	"moriyama.shiga.jp",
+-	"nagahama.shiga.jp",
+-	"nishiazai.shiga.jp",
+-	"notogawa.shiga.jp",
+-	"omihachiman.shiga.jp",
+-	"otsu.shiga.jp",
+-	"ritto.shiga.jp",
+-	"ryuoh.shiga.jp",
+-	"takashima.shiga.jp",
+-	"takatsuki.shiga.jp",
+-	"torahime.shiga.jp",
+-	"toyosato.shiga.jp",
+-	"yasu.shiga.jp",
+-	"akagi.shimane.jp",
+-	"ama.shimane.jp",
+-	"gotsu.shimane.jp",
+-	"hamada.shimane.jp",
+-	"higashiizumo.shimane.jp",
+-	"hikawa.shimane.jp",
+-	"hikimi.shimane.jp",
+-	"izumo.shimane.jp",
+-	"kakinoki.shimane.jp",
+-	"masuda.shimane.jp",
+-	"matsue.shimane.jp",
+-	"misato.shimane.jp",
+-	"nishinoshima.shimane.jp",
+-	"ohda.shimane.jp",
+-	"okinoshima.shimane.jp",
+-	"okuizumo.shimane.jp",
+-	"shimane.shimane.jp",
+-	"tamayu.shimane.jp",
+-	"tsuwano.shimane.jp",
+-	"unnan.shimane.jp",
+-	"yakumo.shimane.jp",
+-	"yasugi.shimane.jp",
+-	"yatsuka.shimane.jp",
+-	"arai.shizuoka.jp",
+-	"atami.shizuoka.jp",
+-	"fuji.shizuoka.jp",
+-	"fujieda.shizuoka.jp",
+-	"fujikawa.shizuoka.jp",
+-	"fujinomiya.shizuoka.jp",
+-	"fukuroi.shizuoka.jp",
+-	"gotemba.shizuoka.jp",
+-	"haibara.shizuoka.jp",
+-	"hamamatsu.shizuoka.jp",
+-	"higashiizu.shizuoka.jp",
+-	"ito.shizuoka.jp",
+-	"iwata.shizuoka.jp",
+-	"izu.shizuoka.jp",
+-	"izunokuni.shizuoka.jp",
+-	"kakegawa.shizuoka.jp",
+-	"kannami.shizuoka.jp",
+-	"kawanehon.shizuoka.jp",
+-	"kawazu.shizuoka.jp",
+-	"kikugawa.shizuoka.jp",
+-	"kosai.shizuoka.jp",
+-	"makinohara.shizuoka.jp",
+-	"matsuzaki.shizuoka.jp",
+-	"minamiizu.shizuoka.jp",
+-	"mishima.shizuoka.jp",
+-	"morimachi.shizuoka.jp",
+-	"nishiizu.shizuoka.jp",
+-	"numazu.shizuoka.jp",
+-	"omaezaki.shizuoka.jp",
+-	"shimada.shizuoka.jp",
+-	"shimizu.shizuoka.jp",
+-	"shimoda.shizuoka.jp",
+-	"shizuoka.shizuoka.jp",
+-	"susono.shizuoka.jp",
+-	"yaizu.shizuoka.jp",
+-	"yoshida.shizuoka.jp",
+-	"ashikaga.tochigi.jp",
+-	"bato.tochigi.jp",
+-	"haga.tochigi.jp",
+-	"ichikai.tochigi.jp",
+-	"iwafune.tochigi.jp",
+-	"kaminokawa.tochigi.jp",
+-	"kanuma.tochigi.jp",
+-	"karasuyama.tochigi.jp",
+-	"kuroiso.tochigi.jp",
+-	"mashiko.tochigi.jp",
+-	"mibu.tochigi.jp",
+-	"moka.tochigi.jp",
+-	"motegi.tochigi.jp",
+-	"nasu.tochigi.jp",
+-	"nasushiobara.tochigi.jp",
+-	"nikko.tochigi.jp",
+-	"nishikata.tochigi.jp",
+-	"nogi.tochigi.jp",
+-	"ohira.tochigi.jp",
+-	"ohtawara.tochigi.jp",
+-	"oyama.tochigi.jp",
+-	"sakura.tochigi.jp",
+-	"sano.tochigi.jp",
+-	"shimotsuke.tochigi.jp",
+-	"shioya.tochigi.jp",
+-	"takanezawa.tochigi.jp",
+-	"tochigi.tochigi.jp",
+-	"tsuga.tochigi.jp",
+-	"ujiie.tochigi.jp",
+-	"utsunomiya.tochigi.jp",
+-	"yaita.tochigi.jp",
+-	"aizumi.tokushima.jp",
+-	"anan.tokushima.jp",
+-	"ichiba.tokushima.jp",
+-	"itano.tokushima.jp",
+-	"kainan.tokushima.jp",
+-	"komatsushima.tokushima.jp",
+-	"matsushige.tokushima.jp",
+-	"mima.tokushima.jp",
+-	"minami.tokushima.jp",
+-	"miyoshi.tokushima.jp",
+-	"mugi.tokushima.jp",
+-	"nakagawa.tokushima.jp",
+-	"naruto.tokushima.jp",
+-	"sanagochi.tokushima.jp",
+-	"shishikui.tokushima.jp",
+-	"tokushima.tokushima.jp",
+-	"wajiki.tokushima.jp",
+-	"adachi.tokyo.jp",
+-	"akiruno.tokyo.jp",
+-	"akishima.tokyo.jp",
+-	"aogashima.tokyo.jp",
+-	"arakawa.tokyo.jp",
+-	"bunkyo.tokyo.jp",
+-	"chiyoda.tokyo.jp",
+-	"chofu.tokyo.jp",
+-	"chuo.tokyo.jp",
+-	"edogawa.tokyo.jp",
+-	"fuchu.tokyo.jp",
+-	"fussa.tokyo.jp",
+-	"hachijo.tokyo.jp",
+-	"hachioji.tokyo.jp",
+-	"hamura.tokyo.jp",
+-	"higashikurume.tokyo.jp",
+-	"higashimurayama.tokyo.jp",
+-	"higashiyamato.tokyo.jp",
+-	"hino.tokyo.jp",
+-	"hinode.tokyo.jp",
+-	"hinohara.tokyo.jp",
+-	"inagi.tokyo.jp",
+-	"itabashi.tokyo.jp",
+-	"katsushika.tokyo.jp",
+-	"kita.tokyo.jp",
+-	"kiyose.tokyo.jp",
+-	"kodaira.tokyo.jp",
+-	"koganei.tokyo.jp",
+-	"kokubunji.tokyo.jp",
+-	"komae.tokyo.jp",
+-	"koto.tokyo.jp",
+-	"kouzushima.tokyo.jp",
+-	"kunitachi.tokyo.jp",
+-	"machida.tokyo.jp",
+-	"meguro.tokyo.jp",
+-	"minato.tokyo.jp",
+-	"mitaka.tokyo.jp",
+-	"mizuho.tokyo.jp",
+-	"musashimurayama.tokyo.jp",
+-	"musashino.tokyo.jp",
+-	"nakano.tokyo.jp",
+-	"nerima.tokyo.jp",
+-	"ogasawara.tokyo.jp",
+-	"okutama.tokyo.jp",
+-	"ome.tokyo.jp",
+-	"oshima.tokyo.jp",
+-	"ota.tokyo.jp",
+-	"setagaya.tokyo.jp",
+-	"shibuya.tokyo.jp",
+-	"shinagawa.tokyo.jp",
+-	"shinjuku.tokyo.jp",
+-	"suginami.tokyo.jp",
+-	"sumida.tokyo.jp",
+-	"tachikawa.tokyo.jp",
+-	"taito.tokyo.jp",
+-	"tama.tokyo.jp",
+-	"toshima.tokyo.jp",
+-	"chizu.tottori.jp",
+-	"hino.tottori.jp",
+-	"kawahara.tottori.jp",
+-	"koge.tottori.jp",
+-	"kotoura.tottori.jp",
+-	"misasa.tottori.jp",
+-	"nanbu.tottori.jp",
+-	"nichinan.tottori.jp",
+-	"sakaiminato.tottori.jp",
+-	"tottori.tottori.jp",
+-	"wakasa.tottori.jp",
+-	"yazu.tottori.jp",
+-	"yonago.tottori.jp",
+-	"asahi.toyama.jp",
+-	"fuchu.toyama.jp",
+-	"fukumitsu.toyama.jp",
+-	"funahashi.toyama.jp",
+-	"himi.toyama.jp",
+-	"imizu.toyama.jp",
+-	"inami.toyama.jp",
+-	"johana.toyama.jp",
+-	"kamiichi.toyama.jp",
+-	"kurobe.toyama.jp",
+-	"nakaniikawa.toyama.jp",
+-	"namerikawa.toyama.jp",
+-	"nanto.toyama.jp",
+-	"nyuzen.toyama.jp",
+-	"oyabe.toyama.jp",
+-	"taira.toyama.jp",
+-	"takaoka.toyama.jp",
+-	"tateyama.toyama.jp",
+-	"toga.toyama.jp",
+-	"tonami.toyama.jp",
+-	"toyama.toyama.jp",
+-	"unazuki.toyama.jp",
+-	"uozu.toyama.jp",
+-	"yamada.toyama.jp",
+-	"arida.wakayama.jp",
+-	"aridagawa.wakayama.jp",
+-	"gobo.wakayama.jp",
+-	"hashimoto.wakayama.jp",
+-	"hidaka.wakayama.jp",
+-	"hirogawa.wakayama.jp",
+-	"inami.wakayama.jp",
+-	"iwade.wakayama.jp",
+-	"kainan.wakayama.jp",
+-	"kamitonda.wakayama.jp",
+-	"katsuragi.wakayama.jp",
+-	"kimino.wakayama.jp",
+-	"kinokawa.wakayama.jp",
+-	"kitayama.wakayama.jp",
+-	"koya.wakayama.jp",
+-	"koza.wakayama.jp",
+-	"kozagawa.wakayama.jp",
+-	"kudoyama.wakayama.jp",
+-	"kushimoto.wakayama.jp",
+-	"mihama.wakayama.jp",
+-	"misato.wakayama.jp",
+-	"nachikatsuura.wakayama.jp",
+-	"shingu.wakayama.jp",
+-	"shirahama.wakayama.jp",
+-	"taiji.wakayama.jp",
+-	"tanabe.wakayama.jp",
+-	"wakayama.wakayama.jp",
+-	"yuasa.wakayama.jp",
+-	"yura.wakayama.jp",
+-	"asahi.yamagata.jp",
+-	"funagata.yamagata.jp",
+-	"higashine.yamagata.jp",
+-	"iide.yamagata.jp",
+-	"kahoku.yamagata.jp",
+-	"kaminoyama.yamagata.jp",
+-	"kaneyama.yamagata.jp",
+-	"kawanishi.yamagata.jp",
+-	"mamurogawa.yamagata.jp",
+-	"mikawa.yamagata.jp",
+-	"murayama.yamagata.jp",
+-	"nagai.yamagata.jp",
+-	"nakayama.yamagata.jp",
+-	"nanyo.yamagata.jp",
+-	"nishikawa.yamagata.jp",
+-	"obanazawa.yamagata.jp",
+-	"oe.yamagata.jp",
+-	"oguni.yamagata.jp",
+-	"ohkura.yamagata.jp",
+-	"oishida.yamagata.jp",
+-	"sagae.yamagata.jp",
+-	"sakata.yamagata.jp",
+-	"sakegawa.yamagata.jp",
+-	"shinjo.yamagata.jp",
+-	"shirataka.yamagata.jp",
+-	"shonai.yamagata.jp",
+-	"takahata.yamagata.jp",
+-	"tendo.yamagata.jp",
+-	"tozawa.yamagata.jp",
+-	"tsuruoka.yamagata.jp",
+-	"yamagata.yamagata.jp",
+-	"yamanobe.yamagata.jp",
+-	"yonezawa.yamagata.jp",
+-	"yuza.yamagata.jp",
+-	"abu.yamaguchi.jp",
+-	"hagi.yamaguchi.jp",
+-	"hikari.yamaguchi.jp",
+-	"hofu.yamaguchi.jp",
+-	"iwakuni.yamaguchi.jp",
+-	"kudamatsu.yamaguchi.jp",
+-	"mitou.yamaguchi.jp",
+-	"nagato.yamaguchi.jp",
+-	"oshima.yamaguchi.jp",
+-	"shimonoseki.yamaguchi.jp",
+-	"shunan.yamaguchi.jp",
+-	"tabuse.yamaguchi.jp",
+-	"tokuyama.yamaguchi.jp",
+-	"toyota.yamaguchi.jp",
+-	"ube.yamaguchi.jp",
+-	"yuu.yamaguchi.jp",
+-	"chuo.yamanashi.jp",
+-	"doshi.yamanashi.jp",
+-	"fuefuki.yamanashi.jp",
+-	"fujikawa.yamanashi.jp",
+-	"fujikawaguchiko.yamanashi.jp",
+-	"fujiyoshida.yamanashi.jp",
+-	"hayakawa.yamanashi.jp",
+-	"hokuto.yamanashi.jp",
+-	"ichikawamisato.yamanashi.jp",
+-	"kai.yamanashi.jp",
+-	"kofu.yamanashi.jp",
+-	"koshu.yamanashi.jp",
+-	"kosuge.yamanashi.jp",
+-	"minami-alps.yamanashi.jp",
+-	"minobu.yamanashi.jp",
+-	"nakamichi.yamanashi.jp",
+-	"nanbu.yamanashi.jp",
+-	"narusawa.yamanashi.jp",
+-	"nirasaki.yamanashi.jp",
+-	"nishikatsura.yamanashi.jp",
+-	"oshino.yamanashi.jp",
+-	"otsuki.yamanashi.jp",
+-	"showa.yamanashi.jp",
+-	"tabayama.yamanashi.jp",
+-	"tsuru.yamanashi.jp",
+-	"uenohara.yamanashi.jp",
+-	"yamanakako.yamanashi.jp",
+-	"yamanashi.yamanashi.jp",
+-	"*.ke",
+-	"kg",
+-	"org.kg",
+-	"net.kg",
+-	"com.kg",
+-	"edu.kg",
+-	"gov.kg",
+-	"mil.kg",
+-	"*.kh",
+-	"ki",
+-	"edu.ki",
+-	"biz.ki",
+-	"net.ki",
+-	"org.ki",
+-	"gov.ki",
+-	"info.ki",
+-	"com.ki",
+-	"km",
+-	"org.km",
+-	"nom.km",
+-	"gov.km",
+-	"prd.km",
+-	"tm.km",
+-	"edu.km",
+-	"mil.km",
+-	"ass.km",
+-	"com.km",
+-	"coop.km",
+-	"asso.km",
+-	"presse.km",
+-	"medecin.km",
+-	"notaires.km",
+-	"pharmaciens.km",
+-	"veterinaire.km",
+-	"gouv.km",
+-	"kn",
+-	"net.kn",
+-	"org.kn",
+-	"edu.kn",
+-	"gov.kn",
+-	"com.kp",
+-	"edu.kp",
+-	"gov.kp",
+-	"org.kp",
+-	"rep.kp",
+-	"tra.kp",
+-	"kr",
+-	"ac.kr",
+-	"co.kr",
+-	"es.kr",
+-	"go.kr",
+-	"hs.kr",
+-	"kg.kr",
+-	"mil.kr",
+-	"ms.kr",
+-	"ne.kr",
+-	"or.kr",
+-	"pe.kr",
+-	"re.kr",
+-	"sc.kr",
+-	"busan.kr",
+-	"chungbuk.kr",
+-	"chungnam.kr",
+-	"daegu.kr",
+-	"daejeon.kr",
+-	"gangwon.kr",
+-	"gwangju.kr",
+-	"gyeongbuk.kr",
+-	"gyeonggi.kr",
+-	"gyeongnam.kr",
+-	"incheon.kr",
+-	"jeju.kr",
+-	"jeonbuk.kr",
+-	"jeonnam.kr",
+-	"seoul.kr",
+-	"ulsan.kr",
+-	"*.kw",
+-	"ky",
+-	"edu.ky",
+-	"gov.ky",
+-	"com.ky",
+-	"org.ky",
+-	"net.ky",
+-	"kz",
+-	"org.kz",
+-	"edu.kz",
+-	"net.kz",
+-	"gov.kz",
+-	"mil.kz",
+-	"com.kz",
+-	"la",
+-	"int.la",
+-	"net.la",
+-	"info.la",
+-	"edu.la",
+-	"gov.la",
+-	"per.la",
+-	"com.la",
+-	"org.la",
+-	"com.lb",
+-	"edu.lb",
+-	"gov.lb",
+-	"net.lb",
+-	"org.lb",
+-	"lc",
+-	"com.lc",
+-	"net.lc",
+-	"co.lc",
+-	"org.lc",
+-	"edu.lc",
+-	"gov.lc",
+-	"li",
+-	"lk",
+-	"gov.lk",
+-	"sch.lk",
+-	"net.lk",
+-	"int.lk",
+-	"com.lk",
+-	"org.lk",
+-	"edu.lk",
+-	"ngo.lk",
+-	"soc.lk",
+-	"web.lk",
+-	"ltd.lk",
+-	"assn.lk",
+-	"grp.lk",
+-	"hotel.lk",
+-	"com.lr",
+-	"edu.lr",
+-	"gov.lr",
+-	"org.lr",
+-	"net.lr",
+-	"ls",
+-	"co.ls",
+-	"org.ls",
+-	"lt",
+-	"gov.lt",
+-	"lu",
+-	"lv",
+-	"com.lv",
+-	"edu.lv",
+-	"gov.lv",
+-	"org.lv",
+-	"mil.lv",
+-	"id.lv",
+-	"net.lv",
+-	"asn.lv",
+-	"conf.lv",
+-	"ly",
+-	"com.ly",
+-	"net.ly",
+-	"gov.ly",
+-	"plc.ly",
+-	"edu.ly",
+-	"sch.ly",
+-	"med.ly",
+-	"org.ly",
+-	"id.ly",
+-	"ma",
+-	"co.ma",
+-	"net.ma",
+-	"gov.ma",
+-	"org.ma",
+-	"ac.ma",
+-	"press.ma",
+-	"mc",
+-	"tm.mc",
+-	"asso.mc",
+-	"md",
+-	"me",
+-	"co.me",
+-	"net.me",
+-	"org.me",
+-	"edu.me",
+-	"ac.me",
+-	"gov.me",
+-	"its.me",
+-	"priv.me",
+-	"mg",
+-	"org.mg",
+-	"nom.mg",
+-	"gov.mg",
+-	"prd.mg",
+-	"tm.mg",
+-	"edu.mg",
+-	"mil.mg",
+-	"com.mg",
+-	"mh",
+-	"mil",
+-	"mk",
+-	"com.mk",
+-	"org.mk",
+-	"net.mk",
+-	"edu.mk",
+-	"gov.mk",
+-	"inf.mk",
+-	"name.mk",
+-	"ml",
+-	"com.ml",
+-	"edu.ml",
+-	"gouv.ml",
+-	"gov.ml",
+-	"net.ml",
+-	"org.ml",
+-	"presse.ml",
+-	"*.mm",
+-	"mn",
+-	"gov.mn",
+-	"edu.mn",
+-	"org.mn",
+-	"mo",
+-	"com.mo",
+-	"net.mo",
+-	"org.mo",
+-	"edu.mo",
+-	"gov.mo",
+-	"mobi",
+-	"mp",
+-	"mq",
+-	"mr",
+-	"gov.mr",
+-	"ms",
+-	"*.mt",
+-	"mu",
+-	"com.mu",
+-	"net.mu",
+-	"org.mu",
+-	"gov.mu",
+-	"ac.mu",
+-	"co.mu",
+-	"or.mu",
+-	"museum",
+-	"academy.museum",
+-	"agriculture.museum",
+-	"air.museum",
+-	"airguard.museum",
+-	"alabama.museum",
+-	"alaska.museum",
+-	"amber.museum",
+-	"ambulance.museum",
+-	"american.museum",
+-	"americana.museum",
+-	"americanantiques.museum",
+-	"americanart.museum",
+-	"amsterdam.museum",
+-	"and.museum",
+-	"annefrank.museum",
+-	"anthro.museum",
+-	"anthropology.museum",
+-	"antiques.museum",
+-	"aquarium.museum",
+-	"arboretum.museum",
+-	"archaeological.museum",
+-	"archaeology.museum",
+-	"architecture.museum",
+-	"art.museum",
+-	"artanddesign.museum",
+-	"artcenter.museum",
+-	"artdeco.museum",
+-	"arteducation.museum",
+-	"artgallery.museum",
+-	"arts.museum",
+-	"artsandcrafts.museum",
+-	"asmatart.museum",
+-	"assassination.museum",
+-	"assisi.museum",
+-	"association.museum",
+-	"astronomy.museum",
+-	"atlanta.museum",
+-	"austin.museum",
+-	"australia.museum",
+-	"automotive.museum",
+-	"aviation.museum",
+-	"axis.museum",
+-	"badajoz.museum",
+-	"baghdad.museum",
+-	"bahn.museum",
+-	"bale.museum",
+-	"baltimore.museum",
+-	"barcelona.museum",
+-	"baseball.museum",
+-	"basel.museum",
+-	"baths.museum",
+-	"bauern.museum",
+-	"beauxarts.museum",
+-	"beeldengeluid.museum",
+-	"bellevue.museum",
+-	"bergbau.museum",
+-	"berkeley.museum",
+-	"berlin.museum",
+-	"bern.museum",
+-	"bible.museum",
+-	"bilbao.museum",
+-	"bill.museum",
+-	"birdart.museum",
+-	"birthplace.museum",
+-	"bonn.museum",
+-	"boston.museum",
+-	"botanical.museum",
+-	"botanicalgarden.museum",
+-	"botanicgarden.museum",
+-	"botany.museum",
+-	"brandywinevalley.museum",
+-	"brasil.museum",
+-	"bristol.museum",
+-	"british.museum",
+-	"britishcolumbia.museum",
+-	"broadcast.museum",
+-	"brunel.museum",
+-	"brussel.museum",
+-	"brussels.museum",
+-	"bruxelles.museum",
+-	"building.museum",
+-	"burghof.museum",
+-	"bus.museum",
+-	"bushey.museum",
+-	"cadaques.museum",
+-	"california.museum",
+-	"cambridge.museum",
+-	"can.museum",
+-	"canada.museum",
+-	"capebreton.museum",
+-	"carrier.museum",
+-	"cartoonart.museum",
+-	"casadelamoneda.museum",
+-	"castle.museum",
+-	"castres.museum",
+-	"celtic.museum",
+-	"center.museum",
+-	"chattanooga.museum",
+-	"cheltenham.museum",
+-	"chesapeakebay.museum",
+-	"chicago.museum",
+-	"children.museum",
+-	"childrens.museum",
+-	"childrensgarden.museum",
+-	"chiropractic.museum",
+-	"chocolate.museum",
+-	"christiansburg.museum",
+-	"cincinnati.museum",
+-	"cinema.museum",
+-	"circus.museum",
+-	"civilisation.museum",
+-	"civilization.museum",
+-	"civilwar.museum",
+-	"clinton.museum",
+-	"clock.museum",
+-	"coal.museum",
+-	"coastaldefence.museum",
+-	"cody.museum",
+-	"coldwar.museum",
+-	"collection.museum",
+-	"colonialwilliamsburg.museum",
+-	"coloradoplateau.museum",
+-	"columbia.museum",
+-	"columbus.museum",
+-	"communication.museum",
+-	"communications.museum",
+-	"community.museum",
+-	"computer.museum",
+-	"computerhistory.museum",
+-	"xn--comunicaes-v6a2o.museum",
+-	"contemporary.museum",
+-	"contemporaryart.museum",
+-	"convent.museum",
+-	"copenhagen.museum",
+-	"corporation.museum",
+-	"xn--correios-e-telecomunicaes-ghc29a.museum",
+-	"corvette.museum",
+-	"costume.museum",
+-	"countryestate.museum",
+-	"county.museum",
+-	"crafts.museum",
+-	"cranbrook.museum",
+-	"creation.museum",
+-	"cultural.museum",
+-	"culturalcenter.museum",
+-	"culture.museum",
+-	"cyber.museum",
+-	"cymru.museum",
+-	"dali.museum",
+-	"dallas.museum",
+-	"database.museum",
+-	"ddr.museum",
+-	"decorativearts.museum",
+-	"delaware.museum",
+-	"delmenhorst.museum",
+-	"denmark.museum",
+-	"depot.museum",
+-	"design.museum",
+-	"detroit.museum",
+-	"dinosaur.museum",
+-	"discovery.museum",
+-	"dolls.museum",
+-	"donostia.museum",
+-	"durham.museum",
+-	"eastafrica.museum",
+-	"eastcoast.museum",
+-	"education.museum",
+-	"educational.museum",
+-	"egyptian.museum",
+-	"eisenbahn.museum",
+-	"elburg.museum",
+-	"elvendrell.museum",
+-	"embroidery.museum",
+-	"encyclopedic.museum",
+-	"england.museum",
+-	"entomology.museum",
+-	"environment.museum",
+-	"environmentalconservation.museum",
+-	"epilepsy.museum",
+-	"essex.museum",
+-	"estate.museum",
+-	"ethnology.museum",
+-	"exeter.museum",
+-	"exhibition.museum",
+-	"family.museum",
+-	"farm.museum",
+-	"farmequipment.museum",
+-	"farmers.museum",
+-	"farmstead.museum",
+-	"field.museum",
+-	"figueres.museum",
+-	"filatelia.museum",
+-	"film.museum",
+-	"fineart.museum",
+-	"finearts.museum",
+-	"finland.museum",
+-	"flanders.museum",
+-	"florida.museum",
+-	"force.museum",
+-	"fortmissoula.museum",
+-	"fortworth.museum",
+-	"foundation.museum",
+-	"francaise.museum",
+-	"frankfurt.museum",
+-	"franziskaner.museum",
+-	"freemasonry.museum",
+-	"freiburg.museum",
+-	"fribourg.museum",
+-	"frog.museum",
+-	"fundacio.museum",
+-	"furniture.museum",
+-	"gallery.museum",
+-	"garden.museum",
+-	"gateway.museum",
+-	"geelvinck.museum",
+-	"gemological.museum",
+-	"geology.museum",
+-	"georgia.museum",
+-	"giessen.museum",
+-	"glas.museum",
+-	"glass.museum",
+-	"gorge.museum",
+-	"grandrapids.museum",
+-	"graz.museum",
+-	"guernsey.museum",
+-	"halloffame.museum",
+-	"hamburg.museum",
+-	"handson.museum",
+-	"harvestcelebration.museum",
+-	"hawaii.museum",
+-	"health.museum",
+-	"heimatunduhren.museum",
+-	"hellas.museum",
+-	"helsinki.museum",
+-	"hembygdsforbund.museum",
+-	"heritage.museum",
+-	"histoire.museum",
+-	"historical.museum",
+-	"historicalsociety.museum",
+-	"historichouses.museum",
+-	"historisch.museum",
+-	"historisches.museum",
+-	"history.museum",
+-	"historyofscience.museum",
+-	"horology.museum",
+-	"house.museum",
+-	"humanities.museum",
+-	"illustration.museum",
+-	"imageandsound.museum",
+-	"indian.museum",
+-	"indiana.museum",
+-	"indianapolis.museum",
+-	"indianmarket.museum",
+-	"intelligence.museum",
+-	"interactive.museum",
+-	"iraq.museum",
+-	"iron.museum",
+-	"isleofman.museum",
+-	"jamison.museum",
+-	"jefferson.museum",
+-	"jerusalem.museum",
+-	"jewelry.museum",
+-	"jewish.museum",
+-	"jewishart.museum",
+-	"jfk.museum",
+-	"journalism.museum",
+-	"judaica.museum",
+-	"judygarland.museum",
+-	"juedisches.museum",
+-	"juif.museum",
+-	"karate.museum",
+-	"karikatur.museum",
+-	"kids.museum",
+-	"koebenhavn.museum",
+-	"koeln.museum",
+-	"kunst.museum",
+-	"kunstsammlung.museum",
+-	"kunstunddesign.museum",
+-	"labor.museum",
+-	"labour.museum",
+-	"lajolla.museum",
+-	"lancashire.museum",
+-	"landes.museum",
+-	"lans.museum",
+-	"xn--lns-qla.museum",
+-	"larsson.museum",
+-	"lewismiller.museum",
+-	"lincoln.museum",
+-	"linz.museum",
+-	"living.museum",
+-	"livinghistory.museum",
+-	"localhistory.museum",
+-	"london.museum",
+-	"losangeles.museum",
+-	"louvre.museum",
+-	"loyalist.museum",
+-	"lucerne.museum",
+-	"luxembourg.museum",
+-	"luzern.museum",
+-	"mad.museum",
+-	"madrid.museum",
+-	"mallorca.museum",
+-	"manchester.museum",
+-	"mansion.museum",
+-	"mansions.museum",
+-	"manx.museum",
+-	"marburg.museum",
+-	"maritime.museum",
+-	"maritimo.museum",
+-	"maryland.museum",
+-	"marylhurst.museum",
+-	"media.museum",
+-	"medical.museum",
+-	"medizinhistorisches.museum",
+-	"meeres.museum",
+-	"memorial.museum",
+-	"mesaverde.museum",
+-	"michigan.museum",
+-	"midatlantic.museum",
+-	"military.museum",
+-	"mill.museum",
+-	"miners.museum",
+-	"mining.museum",
+-	"minnesota.museum",
+-	"missile.museum",
+-	"missoula.museum",
+-	"modern.museum",
+-	"moma.museum",
+-	"money.museum",
+-	"monmouth.museum",
+-	"monticello.museum",
+-	"montreal.museum",
+-	"moscow.museum",
+-	"motorcycle.museum",
+-	"muenchen.museum",
+-	"muenster.museum",
+-	"mulhouse.museum",
+-	"muncie.museum",
+-	"museet.museum",
+-	"museumcenter.museum",
+-	"museumvereniging.museum",
+-	"music.museum",
+-	"national.museum",
+-	"nationalfirearms.museum",
+-	"nationalheritage.museum",
+-	"nativeamerican.museum",
+-	"naturalhistory.museum",
+-	"naturalhistorymuseum.museum",
+-	"naturalsciences.museum",
+-	"nature.museum",
+-	"naturhistorisches.museum",
+-	"natuurwetenschappen.museum",
+-	"naumburg.museum",
+-	"naval.museum",
+-	"nebraska.museum",
+-	"neues.museum",
+-	"newhampshire.museum",
+-	"newjersey.museum",
+-	"newmexico.museum",
+-	"newport.museum",
+-	"newspaper.museum",
+-	"newyork.museum",
+-	"niepce.museum",
+-	"norfolk.museum",
+-	"north.museum",
+-	"nrw.museum",
+-	"nuernberg.museum",
+-	"nuremberg.museum",
+-	"nyc.museum",
+-	"nyny.museum",
+-	"oceanographic.museum",
+-	"oceanographique.museum",
+-	"omaha.museum",
+-	"online.museum",
+-	"ontario.museum",
+-	"openair.museum",
+-	"oregon.museum",
+-	"oregontrail.museum",
+-	"otago.museum",
+-	"oxford.museum",
+-	"pacific.museum",
+-	"paderborn.museum",
+-	"palace.museum",
+-	"paleo.museum",
+-	"palmsprings.museum",
+-	"panama.museum",
+-	"paris.museum",
+-	"pasadena.museum",
+-	"pharmacy.museum",
+-	"philadelphia.museum",
+-	"philadelphiaarea.museum",
+-	"philately.museum",
+-	"phoenix.museum",
+-	"photography.museum",
+-	"pilots.museum",
+-	"pittsburgh.museum",
+-	"planetarium.museum",
+-	"plantation.museum",
+-	"plants.museum",
+-	"plaza.museum",
+-	"portal.museum",
+-	"portland.museum",
+-	"portlligat.museum",
+-	"posts-and-telecommunications.museum",
+-	"preservation.museum",
+-	"presidio.museum",
+-	"press.museum",
+-	"project.museum",
+-	"public.museum",
+-	"pubol.museum",
+-	"quebec.museum",
+-	"railroad.museum",
+-	"railway.museum",
+-	"research.museum",
+-	"resistance.museum",
+-	"riodejaneiro.museum",
+-	"rochester.museum",
+-	"rockart.museum",
+-	"roma.museum",
+-	"russia.museum",
+-	"saintlouis.museum",
+-	"salem.museum",
+-	"salvadordali.museum",
+-	"salzburg.museum",
+-	"sandiego.museum",
+-	"sanfrancisco.museum",
+-	"santabarbara.museum",
+-	"santacruz.museum",
+-	"santafe.museum",
+-	"saskatchewan.museum",
+-	"satx.museum",
+-	"savannahga.museum",
+-	"schlesisches.museum",
+-	"schoenbrunn.museum",
+-	"schokoladen.museum",
+-	"school.museum",
+-	"schweiz.museum",
+-	"science.museum",
+-	"scienceandhistory.museum",
+-	"scienceandindustry.museum",
+-	"sciencecenter.museum",
+-	"sciencecenters.museum",
+-	"science-fiction.museum",
+-	"sciencehistory.museum",
+-	"sciences.museum",
+-	"sciencesnaturelles.museum",
+-	"scotland.museum",
+-	"seaport.museum",
+-	"settlement.museum",
+-	"settlers.museum",
+-	"shell.museum",
+-	"sherbrooke.museum",
+-	"sibenik.museum",
+-	"silk.museum",
+-	"ski.museum",
+-	"skole.museum",
+-	"society.museum",
+-	"sologne.museum",
+-	"soundandvision.museum",
+-	"southcarolina.museum",
+-	"southwest.museum",
+-	"space.museum",
+-	"spy.museum",
+-	"square.museum",
+-	"stadt.museum",
+-	"stalbans.museum",
+-	"starnberg.museum",
+-	"state.museum",
+-	"stateofdelaware.museum",
+-	"station.museum",
+-	"steam.museum",
+-	"steiermark.museum",
+-	"stjohn.museum",
+-	"stockholm.museum",
+-	"stpetersburg.museum",
+-	"stuttgart.museum",
+-	"suisse.museum",
+-	"surgeonshall.museum",
+-	"surrey.museum",
+-	"svizzera.museum",
+-	"sweden.museum",
+-	"sydney.museum",
+-	"tank.museum",
+-	"tcm.museum",
+-	"technology.museum",
+-	"telekommunikation.museum",
+-	"television.museum",
+-	"texas.museum",
+-	"textile.museum",
+-	"theater.museum",
+-	"time.museum",
+-	"timekeeping.museum",
+-	"topology.museum",
+-	"torino.museum",
+-	"touch.museum",
+-	"town.museum",
+-	"transport.museum",
+-	"tree.museum",
+-	"trolley.museum",
+-	"trust.museum",
+-	"trustee.museum",
+-	"uhren.museum",
+-	"ulm.museum",
+-	"undersea.museum",
+-	"university.museum",
+-	"usa.museum",
+-	"usantiques.museum",
+-	"usarts.museum",
+-	"uscountryestate.museum",
+-	"usculture.museum",
+-	"usdecorativearts.museum",
+-	"usgarden.museum",
+-	"ushistory.museum",
+-	"ushuaia.museum",
+-	"uslivinghistory.museum",
+-	"utah.museum",
+-	"uvic.museum",
+-	"valley.museum",
+-	"vantaa.museum",
+-	"versailles.museum",
+-	"viking.museum",
+-	"village.museum",
+-	"virginia.museum",
+-	"virtual.museum",
+-	"virtuel.museum",
+-	"vlaanderen.museum",
+-	"volkenkunde.museum",
+-	"wales.museum",
+-	"wallonie.museum",
+-	"war.museum",
+-	"washingtondc.museum",
+-	"watchandclock.museum",
+-	"watch-and-clock.museum",
+-	"western.museum",
+-	"westfalen.museum",
+-	"whaling.museum",
+-	"wildlife.museum",
+-	"williamsburg.museum",
+-	"windmill.museum",
+-	"workshop.museum",
+-	"york.museum",
+-	"yorkshire.museum",
+-	"yosemite.museum",
+-	"youth.museum",
+-	"zoological.museum",
+-	"zoology.museum",
+-	"xn--9dbhblg6di.museum",
+-	"xn--h1aegh.museum",
+-	"mv",
+-	"aero.mv",
+-	"biz.mv",
+-	"com.mv",
+-	"coop.mv",
+-	"edu.mv",
+-	"gov.mv",
+-	"info.mv",
+-	"int.mv",
+-	"mil.mv",
+-	"museum.mv",
+-	"name.mv",
+-	"net.mv",
+-	"org.mv",
+-	"pro.mv",
+-	"mw",
+-	"ac.mw",
+-	"biz.mw",
+-	"co.mw",
+-	"com.mw",
+-	"coop.mw",
+-	"edu.mw",
+-	"gov.mw",
+-	"int.mw",
+-	"museum.mw",
+-	"net.mw",
+-	"org.mw",
+-	"mx",
+-	"com.mx",
+-	"org.mx",
+-	"gob.mx",
+-	"edu.mx",
+-	"net.mx",
+-	"my",
+-	"com.my",
+-	"net.my",
+-	"org.my",
+-	"gov.my",
+-	"edu.my",
+-	"mil.my",
+-	"name.my",
+-	"*.mz",
+-	"!teledata.mz",
+-	"na",
+-	"info.na",
+-	"pro.na",
+-	"name.na",
+-	"school.na",
+-	"or.na",
+-	"dr.na",
+-	"us.na",
+-	"mx.na",
+-	"ca.na",
+-	"in.na",
+-	"cc.na",
+-	"tv.na",
+-	"ws.na",
+-	"mobi.na",
+-	"co.na",
+-	"com.na",
+-	"org.na",
+-	"name",
+-	"nc",
+-	"asso.nc",
+-	"ne",
+-	"net",
+-	"nf",
+-	"com.nf",
+-	"net.nf",
+-	"per.nf",
+-	"rec.nf",
+-	"web.nf",
+-	"arts.nf",
+-	"firm.nf",
+-	"info.nf",
+-	"other.nf",
+-	"store.nf",
+-	"ac.ng",
+-	"com.ng",
+-	"edu.ng",
+-	"gov.ng",
+-	"net.ng",
+-	"org.ng",
+-	"*.ni",
+-	"nl",
+-	"bv.nl",
+-	"no",
+-	"fhs.no",
+-	"vgs.no",
+-	"fylkesbibl.no",
+-	"folkebibl.no",
+-	"museum.no",
+-	"idrett.no",
+-	"priv.no",
+-	"mil.no",
+-	"stat.no",
+-	"dep.no",
+-	"kommune.no",
+-	"herad.no",
+-	"aa.no",
+-	"ah.no",
+-	"bu.no",
+-	"fm.no",
+-	"hl.no",
+-	"hm.no",
+-	"jan-mayen.no",
+-	"mr.no",
+-	"nl.no",
+-	"nt.no",
+-	"of.no",
+-	"ol.no",
+-	"oslo.no",
+-	"rl.no",
+-	"sf.no",
+-	"st.no",
+-	"svalbard.no",
+-	"tm.no",
+-	"tr.no",
+-	"va.no",
+-	"vf.no",
+-	"gs.aa.no",
+-	"gs.ah.no",
+-	"gs.bu.no",
+-	"gs.fm.no",
+-	"gs.hl.no",
+-	"gs.hm.no",
+-	"gs.jan-mayen.no",
+-	"gs.mr.no",
+-	"gs.nl.no",
+-	"gs.nt.no",
+-	"gs.of.no",
+-	"gs.ol.no",
+-	"gs.oslo.no",
+-	"gs.rl.no",
+-	"gs.sf.no",
+-	"gs.st.no",
+-	"gs.svalbard.no",
+-	"gs.tm.no",
+-	"gs.tr.no",
+-	"gs.va.no",
+-	"gs.vf.no",
+-	"akrehamn.no",
+-	"xn--krehamn-dxa.no",
+-	"algard.no",
+-	"xn--lgrd-poac.no",
+-	"arna.no",
+-	"brumunddal.no",
+-	"bryne.no",
+-	"bronnoysund.no",
+-	"xn--brnnysund-m8ac.no",
+-	"drobak.no",
+-	"xn--drbak-wua.no",
+-	"egersund.no",
+-	"fetsund.no",
+-	"floro.no",
+-	"xn--flor-jra.no",
+-	"fredrikstad.no",
+-	"hokksund.no",
+-	"honefoss.no",
+-	"xn--hnefoss-q1a.no",
+-	"jessheim.no",
+-	"jorpeland.no",
+-	"xn--jrpeland-54a.no",
+-	"kirkenes.no",
+-	"kopervik.no",
+-	"krokstadelva.no",
+-	"langevag.no",
+-	"xn--langevg-jxa.no",
+-	"leirvik.no",
+-	"mjondalen.no",
+-	"xn--mjndalen-64a.no",
+-	"mo-i-rana.no",
+-	"mosjoen.no",
+-	"xn--mosjen-eya.no",
+-	"nesoddtangen.no",
+-	"orkanger.no",
+-	"osoyro.no",
+-	"xn--osyro-wua.no",
+-	"raholt.no",
+-	"xn--rholt-mra.no",
+-	"sandnessjoen.no",
+-	"xn--sandnessjen-ogb.no",
+-	"skedsmokorset.no",
+-	"slattum.no",
+-	"spjelkavik.no",
+-	"stathelle.no",
+-	"stavern.no",
+-	"stjordalshalsen.no",
+-	"xn--stjrdalshalsen-sqb.no",
+-	"tananger.no",
+-	"tranby.no",
+-	"vossevangen.no",
+-	"afjord.no",
+-	"xn--fjord-lra.no",
+-	"agdenes.no",
+-	"al.no",
+-	"xn--l-1fa.no",
+-	"alesund.no",
+-	"xn--lesund-hua.no",
+-	"alstahaug.no",
+-	"alta.no",
+-	"xn--lt-liac.no",
+-	"alaheadju.no",
+-	"xn--laheadju-7ya.no",
+-	"alvdal.no",
+-	"amli.no",
+-	"xn--mli-tla.no",
+-	"amot.no",
+-	"xn--mot-tla.no",
+-	"andebu.no",
+-	"andoy.no",
+-	"xn--andy-ira.no",
+-	"andasuolo.no",
+-	"ardal.no",
+-	"xn--rdal-poa.no",
+-	"aremark.no",
+-	"arendal.no",
+-	"xn--s-1fa.no",
+-	"aseral.no",
+-	"xn--seral-lra.no",
+-	"asker.no",
+-	"askim.no",
+-	"askvoll.no",
+-	"askoy.no",
+-	"xn--asky-ira.no",
+-	"asnes.no",
+-	"xn--snes-poa.no",
+-	"audnedaln.no",
+-	"aukra.no",
+-	"aure.no",
+-	"aurland.no",
+-	"aurskog-holand.no",
+-	"xn--aurskog-hland-jnb.no",
+-	"austevoll.no",
+-	"austrheim.no",
+-	"averoy.no",
+-	"xn--avery-yua.no",
+-	"balestrand.no",
+-	"ballangen.no",
+-	"balat.no",
+-	"xn--blt-elab.no",
+-	"balsfjord.no",
+-	"bahccavuotna.no",
+-	"xn--bhccavuotna-k7a.no",
+-	"bamble.no",
+-	"bardu.no",
+-	"beardu.no",
+-	"beiarn.no",
+-	"bajddar.no",
+-	"xn--bjddar-pta.no",
+-	"baidar.no",
+-	"xn--bidr-5nac.no",
+-	"berg.no",
+-	"bergen.no",
+-	"berlevag.no",
+-	"xn--berlevg-jxa.no",
+-	"bearalvahki.no",
+-	"xn--bearalvhki-y4a.no",
+-	"bindal.no",
+-	"birkenes.no",
+-	"bjarkoy.no",
+-	"xn--bjarky-fya.no",
+-	"bjerkreim.no",
+-	"bjugn.no",
+-	"bodo.no",
+-	"xn--bod-2na.no",
+-	"badaddja.no",
+-	"xn--bdddj-mrabd.no",
+-	"budejju.no",
+-	"bokn.no",
+-	"bremanger.no",
+-	"bronnoy.no",
+-	"xn--brnny-wuac.no",
+-	"bygland.no",
+-	"bykle.no",
+-	"barum.no",
+-	"xn--brum-voa.no",
+-	"bo.telemark.no",
+-	"xn--b-5ga.telemark.no",
+-	"bo.nordland.no",
+-	"xn--b-5ga.nordland.no",
+-	"bievat.no",
+-	"xn--bievt-0qa.no",
+-	"bomlo.no",
+-	"xn--bmlo-gra.no",
+-	"batsfjord.no",
+-	"xn--btsfjord-9za.no",
+-	"bahcavuotna.no",
+-	"xn--bhcavuotna-s4a.no",
+-	"dovre.no",
+-	"drammen.no",
+-	"drangedal.no",
+-	"dyroy.no",
+-	"xn--dyry-ira.no",
+-	"donna.no",
+-	"xn--dnna-gra.no",
+-	"eid.no",
+-	"eidfjord.no",
+-	"eidsberg.no",
+-	"eidskog.no",
+-	"eidsvoll.no",
+-	"eigersund.no",
+-	"elverum.no",
+-	"enebakk.no",
+-	"engerdal.no",
+-	"etne.no",
+-	"etnedal.no",
+-	"evenes.no",
+-	"evenassi.no",
+-	"xn--eveni-0qa01ga.no",
+-	"evje-og-hornnes.no",
+-	"farsund.no",
+-	"fauske.no",
+-	"fuossko.no",
+-	"fuoisku.no",
+-	"fedje.no",
+-	"fet.no",
+-	"finnoy.no",
+-	"xn--finny-yua.no",
+-	"fitjar.no",
+-	"fjaler.no",
+-	"fjell.no",
+-	"flakstad.no",
+-	"flatanger.no",
+-	"flekkefjord.no",
+-	"flesberg.no",
+-	"flora.no",
+-	"fla.no",
+-	"xn--fl-zia.no",
+-	"folldal.no",
+-	"forsand.no",
+-	"fosnes.no",
+-	"frei.no",
+-	"frogn.no",
+-	"froland.no",
+-	"frosta.no",
+-	"frana.no",
+-	"xn--frna-woa.no",
+-	"froya.no",
+-	"xn--frya-hra.no",
+-	"fusa.no",
+-	"fyresdal.no",
+-	"forde.no",
+-	"xn--frde-gra.no",
+-	"gamvik.no",
+-	"gangaviika.no",
+-	"xn--ggaviika-8ya47h.no",
+-	"gaular.no",
+-	"gausdal.no",
+-	"gildeskal.no",
+-	"xn--gildeskl-g0a.no",
+-	"giske.no",
+-	"gjemnes.no",
+-	"gjerdrum.no",
+-	"gjerstad.no",
+-	"gjesdal.no",
+-	"gjovik.no",
+-	"xn--gjvik-wua.no",
+-	"gloppen.no",
+-	"gol.no",
+-	"gran.no",
+-	"grane.no",
+-	"granvin.no",
+-	"gratangen.no",
+-	"grimstad.no",
+-	"grong.no",
+-	"kraanghke.no",
+-	"xn--kranghke-b0a.no",
+-	"grue.no",
+-	"gulen.no",
+-	"hadsel.no",
+-	"halden.no",
+-	"halsa.no",
+-	"hamar.no",
+-	"hamaroy.no",
+-	"habmer.no",
+-	"xn--hbmer-xqa.no",
+-	"hapmir.no",
+-	"xn--hpmir-xqa.no",
+-	"hammerfest.no",
+-	"hammarfeasta.no",
+-	"xn--hmmrfeasta-s4ac.no",
+-	"haram.no",
+-	"hareid.no",
+-	"harstad.no",
+-	"hasvik.no",
+-	"aknoluokta.no",
+-	"xn--koluokta-7ya57h.no",
+-	"hattfjelldal.no",
+-	"aarborte.no",
+-	"haugesund.no",
+-	"hemne.no",
+-	"hemnes.no",
+-	"hemsedal.no",
+-	"heroy.more-og-romsdal.no",
+-	"xn--hery-ira.xn--mre-og-romsdal-qqb.no",
+-	"heroy.nordland.no",
+-	"xn--hery-ira.nordland.no",
+-	"hitra.no",
+-	"hjartdal.no",
+-	"hjelmeland.no",
+-	"hobol.no",
+-	"xn--hobl-ira.no",
+-	"hof.no",
+-	"hol.no",
+-	"hole.no",
+-	"holmestrand.no",
+-	"holtalen.no",
+-	"xn--holtlen-hxa.no",
+-	"hornindal.no",
+-	"horten.no",
+-	"hurdal.no",
+-	"hurum.no",
+-	"hvaler.no",
+-	"hyllestad.no",
+-	"hagebostad.no",
+-	"xn--hgebostad-g3a.no",
+-	"hoyanger.no",
+-	"xn--hyanger-q1a.no",
+-	"hoylandet.no",
+-	"xn--hylandet-54a.no",
+-	"ha.no",
+-	"xn--h-2fa.no",
+-	"ibestad.no",
+-	"inderoy.no",
+-	"xn--indery-fya.no",
+-	"iveland.no",
+-	"jevnaker.no",
+-	"jondal.no",
+-	"jolster.no",
+-	"xn--jlster-bya.no",
+-	"karasjok.no",
+-	"karasjohka.no",
+-	"xn--krjohka-hwab49j.no",
+-	"karlsoy.no",
+-	"galsa.no",
+-	"xn--gls-elac.no",
+-	"karmoy.no",
+-	"xn--karmy-yua.no",
+-	"kautokeino.no",
+-	"guovdageaidnu.no",
+-	"klepp.no",
+-	"klabu.no",
+-	"xn--klbu-woa.no",
+-	"kongsberg.no",
+-	"kongsvinger.no",
+-	"kragero.no",
+-	"xn--krager-gya.no",
+-	"kristiansand.no",
+-	"kristiansund.no",
+-	"krodsherad.no",
+-	"xn--krdsherad-m8a.no",
+-	"kvalsund.no",
+-	"rahkkeravju.no",
+-	"xn--rhkkervju-01af.no",
+-	"kvam.no",
+-	"kvinesdal.no",
+-	"kvinnherad.no",
+-	"kviteseid.no",
+-	"kvitsoy.no",
+-	"xn--kvitsy-fya.no",
+-	"kvafjord.no",
+-	"xn--kvfjord-nxa.no",
+-	"giehtavuoatna.no",
+-	"kvanangen.no",
+-	"xn--kvnangen-k0a.no",
+-	"navuotna.no",
+-	"xn--nvuotna-hwa.no",
+-	"kafjord.no",
+-	"xn--kfjord-iua.no",
+-	"gaivuotna.no",
+-	"xn--givuotna-8ya.no",
+-	"larvik.no",
+-	"lavangen.no",
+-	"lavagis.no",
+-	"loabat.no",
+-	"xn--loabt-0qa.no",
+-	"lebesby.no",
+-	"davvesiida.no",
+-	"leikanger.no",
+-	"leirfjord.no",
+-	"leka.no",
+-	"leksvik.no",
+-	"lenvik.no",
+-	"leangaviika.no",
+-	"xn--leagaviika-52b.no",
+-	"lesja.no",
+-	"levanger.no",
+-	"lier.no",
+-	"lierne.no",
+-	"lillehammer.no",
+-	"lillesand.no",
+-	"lindesnes.no",
+-	"lindas.no",
+-	"xn--linds-pra.no",
+-	"lom.no",
+-	"loppa.no",
+-	"lahppi.no",
+-	"xn--lhppi-xqa.no",
+-	"lund.no",
+-	"lunner.no",
+-	"luroy.no",
+-	"xn--lury-ira.no",
+-	"luster.no",
+-	"lyngdal.no",
+-	"lyngen.no",
+-	"ivgu.no",
+-	"lardal.no",
+-	"lerdal.no",
+-	"xn--lrdal-sra.no",
+-	"lodingen.no",
+-	"xn--ldingen-q1a.no",
+-	"lorenskog.no",
+-	"xn--lrenskog-54a.no",
+-	"loten.no",
+-	"xn--lten-gra.no",
+-	"malvik.no",
+-	"masoy.no",
+-	"xn--msy-ula0h.no",
+-	"muosat.no",
+-	"xn--muost-0qa.no",
+-	"mandal.no",
+-	"marker.no",
+-	"marnardal.no",
+-	"masfjorden.no",
+-	"meland.no",
+-	"meldal.no",
+-	"melhus.no",
+-	"meloy.no",
+-	"xn--mely-ira.no",
+-	"meraker.no",
+-	"xn--merker-kua.no",
+-	"moareke.no",
+-	"xn--moreke-jua.no",
+-	"midsund.no",
+-	"midtre-gauldal.no",
+-	"modalen.no",
+-	"modum.no",
+-	"molde.no",
+-	"moskenes.no",
+-	"moss.no",
+-	"mosvik.no",
+-	"malselv.no",
+-	"xn--mlselv-iua.no",
+-	"malatvuopmi.no",
+-	"xn--mlatvuopmi-s4a.no",
+-	"namdalseid.no",
+-	"aejrie.no",
+-	"namsos.no",
+-	"namsskogan.no",
+-	"naamesjevuemie.no",
+-	"xn--nmesjevuemie-tcba.no",
+-	"laakesvuemie.no",
+-	"nannestad.no",
+-	"narvik.no",
+-	"narviika.no",
+-	"naustdal.no",
+-	"nedre-eiker.no",
+-	"nes.akershus.no",
+-	"nes.buskerud.no",
+-	"nesna.no",
+-	"nesodden.no",
+-	"nesseby.no",
+-	"unjarga.no",
+-	"xn--unjrga-rta.no",
+-	"nesset.no",
+-	"nissedal.no",
+-	"nittedal.no",
+-	"nord-aurdal.no",
+-	"nord-fron.no",
+-	"nord-odal.no",
+-	"norddal.no",
+-	"nordkapp.no",
+-	"davvenjarga.no",
+-	"xn--davvenjrga-y4a.no",
+-	"nordre-land.no",
+-	"nordreisa.no",
+-	"raisa.no",
+-	"xn--risa-5na.no",
+-	"nore-og-uvdal.no",
+-	"notodden.no",
+-	"naroy.no",
+-	"xn--nry-yla5g.no",
+-	"notteroy.no",
+-	"xn--nttery-byae.no",
+-	"odda.no",
+-	"oksnes.no",
+-	"xn--ksnes-uua.no",
+-	"oppdal.no",
+-	"oppegard.no",
+-	"xn--oppegrd-ixa.no",
+-	"orkdal.no",
+-	"orland.no",
+-	"xn--rland-uua.no",
+-	"orskog.no",
+-	"xn--rskog-uua.no",
+-	"orsta.no",
+-	"xn--rsta-fra.no",
+-	"os.hedmark.no",
+-	"os.hordaland.no",
+-	"osen.no",
+-	"osteroy.no",
+-	"xn--ostery-fya.no",
+-	"ostre-toten.no",
+-	"xn--stre-toten-zcb.no",
+-	"overhalla.no",
+-	"ovre-eiker.no",
+-	"xn--vre-eiker-k8a.no",
+-	"oyer.no",
+-	"xn--yer-zna.no",
+-	"oygarden.no",
+-	"xn--ygarden-p1a.no",
+-	"oystre-slidre.no",
+-	"xn--ystre-slidre-ujb.no",
+-	"porsanger.no",
+-	"porsangu.no",
+-	"xn--porsgu-sta26f.no",
+-	"porsgrunn.no",
+-	"radoy.no",
+-	"xn--rady-ira.no",
+-	"rakkestad.no",
+-	"rana.no",
+-	"ruovat.no",
+-	"randaberg.no",
+-	"rauma.no",
+-	"rendalen.no",
+-	"rennebu.no",
+-	"rennesoy.no",
+-	"xn--rennesy-v1a.no",
+-	"rindal.no",
+-	"ringebu.no",
+-	"ringerike.no",
+-	"ringsaker.no",
+-	"rissa.no",
+-	"risor.no",
+-	"xn--risr-ira.no",
+-	"roan.no",
+-	"rollag.no",
+-	"rygge.no",
+-	"ralingen.no",
+-	"xn--rlingen-mxa.no",
+-	"rodoy.no",
+-	"xn--rdy-0nab.no",
+-	"romskog.no",
+-	"xn--rmskog-bya.no",
+-	"roros.no",
+-	"xn--rros-gra.no",
+-	"rost.no",
+-	"xn--rst-0na.no",
+-	"royken.no",
+-	"xn--ryken-vua.no",
+-	"royrvik.no",
+-	"xn--ryrvik-bya.no",
+-	"rade.no",
+-	"xn--rde-ula.no",
+-	"salangen.no",
+-	"siellak.no",
+-	"saltdal.no",
+-	"salat.no",
+-	"xn--slt-elab.no",
+-	"xn--slat-5na.no",
+-	"samnanger.no",
+-	"sande.more-og-romsdal.no",
+-	"sande.xn--mre-og-romsdal-qqb.no",
+-	"sande.vestfold.no",
+-	"sandefjord.no",
+-	"sandnes.no",
+-	"sandoy.no",
+-	"xn--sandy-yua.no",
+-	"sarpsborg.no",
+-	"sauda.no",
+-	"sauherad.no",
+-	"sel.no",
+-	"selbu.no",
+-	"selje.no",
+-	"seljord.no",
+-	"sigdal.no",
+-	"siljan.no",
+-	"sirdal.no",
+-	"skaun.no",
+-	"skedsmo.no",
+-	"ski.no",
+-	"skien.no",
+-	"skiptvet.no",
+-	"skjervoy.no",
+-	"xn--skjervy-v1a.no",
+-	"skierva.no",
+-	"xn--skierv-uta.no",
+-	"skjak.no",
+-	"xn--skjk-soa.no",
+-	"skodje.no",
+-	"skanland.no",
+-	"xn--sknland-fxa.no",
+-	"skanit.no",
+-	"xn--sknit-yqa.no",
+-	"smola.no",
+-	"xn--smla-hra.no",
+-	"snillfjord.no",
+-	"snasa.no",
+-	"xn--snsa-roa.no",
+-	"snoasa.no",
+-	"snaase.no",
+-	"xn--snase-nra.no",
+-	"sogndal.no",
+-	"sokndal.no",
+-	"sola.no",
+-	"solund.no",
+-	"songdalen.no",
+-	"sortland.no",
+-	"spydeberg.no",
+-	"stange.no",
+-	"stavanger.no",
+-	"steigen.no",
+-	"steinkjer.no",
+-	"stjordal.no",
+-	"xn--stjrdal-s1a.no",
+-	"stokke.no",
+-	"stor-elvdal.no",
+-	"stord.no",
+-	"stordal.no",
+-	"storfjord.no",
+-	"omasvuotna.no",
+-	"strand.no",
+-	"stranda.no",
+-	"stryn.no",
+-	"sula.no",
+-	"suldal.no",
+-	"sund.no",
+-	"sunndal.no",
+-	"surnadal.no",
+-	"sveio.no",
+-	"svelvik.no",
+-	"sykkylven.no",
+-	"sogne.no",
+-	"xn--sgne-gra.no",
+-	"somna.no",
+-	"xn--smna-gra.no",
+-	"sondre-land.no",
+-	"xn--sndre-land-0cb.no",
+-	"sor-aurdal.no",
+-	"xn--sr-aurdal-l8a.no",
+-	"sor-fron.no",
+-	"xn--sr-fron-q1a.no",
+-	"sor-odal.no",
+-	"xn--sr-odal-q1a.no",
+-	"sor-varanger.no",
+-	"xn--sr-varanger-ggb.no",
+-	"matta-varjjat.no",
+-	"xn--mtta-vrjjat-k7af.no",
+-	"sorfold.no",
+-	"xn--srfold-bya.no",
+-	"sorreisa.no",
+-	"xn--srreisa-q1a.no",
+-	"sorum.no",
+-	"xn--srum-gra.no",
+-	"tana.no",
+-	"deatnu.no",
+-	"time.no",
+-	"tingvoll.no",
+-	"tinn.no",
+-	"tjeldsund.no",
+-	"dielddanuorri.no",
+-	"tjome.no",
+-	"xn--tjme-hra.no",
+-	"tokke.no",
+-	"tolga.no",
+-	"torsken.no",
+-	"tranoy.no",
+-	"xn--trany-yua.no",
+-	"tromso.no",
+-	"xn--troms-zua.no",
+-	"tromsa.no",
+-	"romsa.no",
+-	"trondheim.no",
+-	"troandin.no",
+-	"trysil.no",
+-	"trana.no",
+-	"xn--trna-woa.no",
+-	"trogstad.no",
+-	"xn--trgstad-r1a.no",
+-	"tvedestrand.no",
+-	"tydal.no",
+-	"tynset.no",
+-	"tysfjord.no",
+-	"divtasvuodna.no",
+-	"divttasvuotna.no",
+-	"tysnes.no",
+-	"tysvar.no",
+-	"xn--tysvr-vra.no",
+-	"tonsberg.no",
+-	"xn--tnsberg-q1a.no",
+-	"ullensaker.no",
+-	"ullensvang.no",
+-	"ulvik.no",
+-	"utsira.no",
+-	"vadso.no",
+-	"xn--vads-jra.no",
+-	"cahcesuolo.no",
+-	"xn--hcesuolo-7ya35b.no",
+-	"vaksdal.no",
+-	"valle.no",
+-	"vang.no",
+-	"vanylven.no",
+-	"vardo.no",
+-	"xn--vard-jra.no",
+-	"varggat.no",
+-	"xn--vrggt-xqad.no",
+-	"vefsn.no",
+-	"vaapste.no",
+-	"vega.no",
+-	"vegarshei.no",
+-	"xn--vegrshei-c0a.no",
+-	"vennesla.no",
+-	"verdal.no",
+-	"verran.no",
+-	"vestby.no",
+-	"vestnes.no",
+-	"vestre-slidre.no",
+-	"vestre-toten.no",
+-	"vestvagoy.no",
+-	"xn--vestvgy-ixa6o.no",
+-	"vevelstad.no",
+-	"vik.no",
+-	"vikna.no",
+-	"vindafjord.no",
+-	"volda.no",
+-	"voss.no",
+-	"varoy.no",
+-	"xn--vry-yla5g.no",
+-	"vagan.no",
+-	"xn--vgan-qoa.no",
+-	"voagat.no",
+-	"vagsoy.no",
+-	"xn--vgsy-qoa0j.no",
+-	"vaga.no",
+-	"xn--vg-yiab.no",
+-	"valer.ostfold.no",
+-	"xn--vler-qoa.xn--stfold-9xa.no",
+-	"valer.hedmark.no",
+-	"xn--vler-qoa.hedmark.no",
+-	"*.np",
+-	"nr",
+-	"biz.nr",
+-	"info.nr",
+-	"gov.nr",
+-	"edu.nr",
+-	"org.nr",
+-	"net.nr",
+-	"com.nr",
+-	"nu",
+-	"*.nz",
+-	"*.om",
+-	"!mediaphone.om",
+-	"!nawrastelecom.om",
+-	"!nawras.om",
+-	"!omanmobile.om",
+-	"!omanpost.om",
+-	"!omantel.om",
+-	"!rakpetroleum.om",
+-	"!siemens.om",
+-	"!songfest.om",
+-	"!statecouncil.om",
+-	"org",
+-	"pa",
+-	"ac.pa",
+-	"gob.pa",
+-	"com.pa",
+-	"org.pa",
+-	"sld.pa",
+-	"edu.pa",
+-	"net.pa",
+-	"ing.pa",
+-	"abo.pa",
+-	"med.pa",
+-	"nom.pa",
+-	"pe",
+-	"edu.pe",
+-	"gob.pe",
+-	"nom.pe",
+-	"mil.pe",
+-	"org.pe",
+-	"com.pe",
+-	"net.pe",
+-	"pf",
+-	"com.pf",
+-	"org.pf",
+-	"edu.pf",
+-	"*.pg",
+-	"ph",
+-	"com.ph",
+-	"net.ph",
+-	"org.ph",
+-	"gov.ph",
+-	"edu.ph",
+-	"ngo.ph",
+-	"mil.ph",
+-	"i.ph",
+-	"pk",
+-	"com.pk",
+-	"net.pk",
+-	"edu.pk",
+-	"org.pk",
+-	"fam.pk",
+-	"biz.pk",
+-	"web.pk",
+-	"gov.pk",
+-	"gob.pk",
+-	"gok.pk",
+-	"gon.pk",
+-	"gop.pk",
+-	"gos.pk",
+-	"info.pk",
+-	"pl",
+-	"aid.pl",
+-	"agro.pl",
+-	"atm.pl",
+-	"auto.pl",
+-	"biz.pl",
+-	"com.pl",
+-	"edu.pl",
+-	"gmina.pl",
+-	"gsm.pl",
+-	"info.pl",
+-	"mail.pl",
+-	"miasta.pl",
+-	"media.pl",
+-	"mil.pl",
+-	"net.pl",
+-	"nieruchomosci.pl",
+-	"nom.pl",
+-	"org.pl",
+-	"pc.pl",
+-	"powiat.pl",
+-	"priv.pl",
+-	"realestate.pl",
+-	"rel.pl",
+-	"sex.pl",
+-	"shop.pl",
+-	"sklep.pl",
+-	"sos.pl",
+-	"szkola.pl",
+-	"targi.pl",
+-	"tm.pl",
+-	"tourism.pl",
+-	"travel.pl",
+-	"turystyka.pl",
+-	"6bone.pl",
+-	"art.pl",
+-	"mbone.pl",
+-	"gov.pl",
+-	"uw.gov.pl",
+-	"um.gov.pl",
+-	"ug.gov.pl",
+-	"upow.gov.pl",
+-	"starostwo.gov.pl",
+-	"so.gov.pl",
+-	"sr.gov.pl",
+-	"po.gov.pl",
+-	"pa.gov.pl",
+-	"ngo.pl",
+-	"irc.pl",
+-	"usenet.pl",
+-	"augustow.pl",
+-	"babia-gora.pl",
+-	"bedzin.pl",
+-	"beskidy.pl",
+-	"bialowieza.pl",
+-	"bialystok.pl",
+-	"bielawa.pl",
+-	"bieszczady.pl",
+-	"boleslawiec.pl",
+-	"bydgoszcz.pl",
+-	"bytom.pl",
+-	"cieszyn.pl",
+-	"czeladz.pl",
+-	"czest.pl",
+-	"dlugoleka.pl",
+-	"elblag.pl",
+-	"elk.pl",
+-	"glogow.pl",
+-	"gniezno.pl",
+-	"gorlice.pl",
+-	"grajewo.pl",
+-	"ilawa.pl",
+-	"jaworzno.pl",
+-	"jelenia-gora.pl",
+-	"jgora.pl",
+-	"kalisz.pl",
+-	"kazimierz-dolny.pl",
+-	"karpacz.pl",
+-	"kartuzy.pl",
+-	"kaszuby.pl",
+-	"katowice.pl",
+-	"kepno.pl",
+-	"ketrzyn.pl",
+-	"klodzko.pl",
+-	"kobierzyce.pl",
+-	"kolobrzeg.pl",
+-	"konin.pl",
+-	"konskowola.pl",
+-	"kutno.pl",
+-	"lapy.pl",
+-	"lebork.pl",
+-	"legnica.pl",
+-	"lezajsk.pl",
+-	"limanowa.pl",
+-	"lomza.pl",
+-	"lowicz.pl",
+-	"lubin.pl",
+-	"lukow.pl",
+-	"malbork.pl",
+-	"malopolska.pl",
+-	"mazowsze.pl",
+-	"mazury.pl",
+-	"mielec.pl",
+-	"mielno.pl",
+-	"mragowo.pl",
+-	"naklo.pl",
+-	"nowaruda.pl",
+-	"nysa.pl",
+-	"olawa.pl",
+-	"olecko.pl",
+-	"olkusz.pl",
+-	"olsztyn.pl",
+-	"opoczno.pl",
+-	"opole.pl",
+-	"ostroda.pl",
+-	"ostroleka.pl",
+-	"ostrowiec.pl",
+-	"ostrowwlkp.pl",
+-	"pila.pl",
+-	"pisz.pl",
+-	"podhale.pl",
+-	"podlasie.pl",
+-	"polkowice.pl",
+-	"pomorze.pl",
+-	"pomorskie.pl",
+-	"prochowice.pl",
+-	"pruszkow.pl",
+-	"przeworsk.pl",
+-	"pulawy.pl",
+-	"radom.pl",
+-	"rawa-maz.pl",
+-	"rybnik.pl",
+-	"rzeszow.pl",
+-	"sanok.pl",
+-	"sejny.pl",
+-	"siedlce.pl",
+-	"slask.pl",
+-	"slupsk.pl",
+-	"sosnowiec.pl",
+-	"stalowa-wola.pl",
+-	"skoczow.pl",
+-	"starachowice.pl",
+-	"stargard.pl",
+-	"suwalki.pl",
+-	"swidnica.pl",
+-	"swiebodzin.pl",
+-	"swinoujscie.pl",
+-	"szczecin.pl",
+-	"szczytno.pl",
+-	"tarnobrzeg.pl",
+-	"tgory.pl",
+-	"turek.pl",
+-	"tychy.pl",
+-	"ustka.pl",
+-	"walbrzych.pl",
+-	"warmia.pl",
+-	"warszawa.pl",
+-	"waw.pl",
+-	"wegrow.pl",
+-	"wielun.pl",
+-	"wlocl.pl",
+-	"wloclawek.pl",
+-	"wodzislaw.pl",
+-	"wolomin.pl",
+-	"wroclaw.pl",
+-	"zachpomor.pl",
+-	"zagan.pl",
+-	"zarow.pl",
+-	"zgora.pl",
+-	"zgorzelec.pl",
+-	"gda.pl",
+-	"gdansk.pl",
+-	"gdynia.pl",
+-	"med.pl",
+-	"sopot.pl",
+-	"gliwice.pl",
+-	"krakow.pl",
+-	"poznan.pl",
+-	"wroc.pl",
+-	"zakopane.pl",
+-	"pm",
+-	"pn",
+-	"gov.pn",
+-	"co.pn",
+-	"org.pn",
+-	"edu.pn",
+-	"net.pn",
+-	"post",
+-	"pr",
+-	"com.pr",
+-	"net.pr",
+-	"org.pr",
+-	"gov.pr",
+-	"edu.pr",
+-	"isla.pr",
+-	"pro.pr",
+-	"biz.pr",
+-	"info.pr",
+-	"name.pr",
+-	"est.pr",
+-	"prof.pr",
+-	"ac.pr",
+-	"pro",
+-	"aca.pro",
+-	"bar.pro",
+-	"cpa.pro",
+-	"jur.pro",
+-	"law.pro",
+-	"med.pro",
+-	"eng.pro",
+-	"ps",
+-	"edu.ps",
+-	"gov.ps",
+-	"sec.ps",
+-	"plo.ps",
+-	"com.ps",
+-	"org.ps",
+-	"net.ps",
+-	"pt",
+-	"net.pt",
+-	"gov.pt",
+-	"org.pt",
+-	"edu.pt",
+-	"int.pt",
+-	"publ.pt",
+-	"com.pt",
+-	"nome.pt",
+-	"pw",
+-	"co.pw",
+-	"ne.pw",
+-	"or.pw",
+-	"ed.pw",
+-	"go.pw",
+-	"belau.pw",
+-	"py",
+-	"com.py",
+-	"coop.py",
+-	"edu.py",
+-	"gov.py",
+-	"mil.py",
+-	"net.py",
+-	"org.py",
+-	"qa",
+-	"com.qa",
+-	"edu.qa",
+-	"gov.qa",
+-	"mil.qa",
+-	"name.qa",
+-	"net.qa",
+-	"org.qa",
+-	"sch.qa",
+-	"re",
+-	"com.re",
+-	"asso.re",
+-	"nom.re",
+-	"ro",
+-	"com.ro",
+-	"org.ro",
+-	"tm.ro",
+-	"nt.ro",
+-	"nom.ro",
+-	"info.ro",
+-	"rec.ro",
+-	"arts.ro",
+-	"firm.ro",
+-	"store.ro",
+-	"www.ro",
+-	"rs",
+-	"co.rs",
+-	"org.rs",
+-	"edu.rs",
+-	"ac.rs",
+-	"gov.rs",
+-	"in.rs",
+-	"ru",
+-	"ac.ru",
+-	"com.ru",
+-	"edu.ru",
+-	"int.ru",
+-	"net.ru",
+-	"org.ru",
+-	"pp.ru",
+-	"adygeya.ru",
+-	"altai.ru",
+-	"amur.ru",
+-	"arkhangelsk.ru",
+-	"astrakhan.ru",
+-	"bashkiria.ru",
+-	"belgorod.ru",
+-	"bir.ru",
+-	"bryansk.ru",
+-	"buryatia.ru",
+-	"cbg.ru",
+-	"chel.ru",
+-	"chelyabinsk.ru",
+-	"chita.ru",
+-	"chukotka.ru",
+-	"chuvashia.ru",
+-	"dagestan.ru",
+-	"dudinka.ru",
+-	"e-burg.ru",
+-	"grozny.ru",
+-	"irkutsk.ru",
+-	"ivanovo.ru",
+-	"izhevsk.ru",
+-	"jar.ru",
+-	"joshkar-ola.ru",
+-	"kalmykia.ru",
+-	"kaluga.ru",
+-	"kamchatka.ru",
+-	"karelia.ru",
+-	"kazan.ru",
+-	"kchr.ru",
+-	"kemerovo.ru",
+-	"khabarovsk.ru",
+-	"khakassia.ru",
+-	"khv.ru",
+-	"kirov.ru",
+-	"koenig.ru",
+-	"komi.ru",
+-	"kostroma.ru",
+-	"krasnoyarsk.ru",
+-	"kuban.ru",
+-	"kurgan.ru",
+-	"kursk.ru",
+-	"lipetsk.ru",
+-	"magadan.ru",
+-	"mari.ru",
+-	"mari-el.ru",
+-	"marine.ru",
+-	"mordovia.ru",
+-	"mosreg.ru",
+-	"msk.ru",
+-	"murmansk.ru",
+-	"nalchik.ru",
+-	"nnov.ru",
+-	"nov.ru",
+-	"novosibirsk.ru",
+-	"nsk.ru",
+-	"omsk.ru",
+-	"orenburg.ru",
+-	"oryol.ru",
+-	"palana.ru",
+-	"penza.ru",
+-	"perm.ru",
+-	"pskov.ru",
+-	"ptz.ru",
+-	"rnd.ru",
+-	"ryazan.ru",
+-	"sakhalin.ru",
+-	"samara.ru",
+-	"saratov.ru",
+-	"simbirsk.ru",
+-	"smolensk.ru",
+-	"spb.ru",
+-	"stavropol.ru",
+-	"stv.ru",
+-	"surgut.ru",
+-	"tambov.ru",
+-	"tatarstan.ru",
+-	"tom.ru",
+-	"tomsk.ru",
+-	"tsaritsyn.ru",
+-	"tsk.ru",
+-	"tula.ru",
+-	"tuva.ru",
+-	"tver.ru",
+-	"tyumen.ru",
+-	"udm.ru",
+-	"udmurtia.ru",
+-	"ulan-ude.ru",
+-	"vladikavkaz.ru",
+-	"vladimir.ru",
+-	"vladivostok.ru",
+-	"volgograd.ru",
+-	"vologda.ru",
+-	"voronezh.ru",
+-	"vrn.ru",
+-	"vyatka.ru",
+-	"yakutia.ru",
+-	"yamal.ru",
+-	"yaroslavl.ru",
+-	"yekaterinburg.ru",
+-	"yuzhno-sakhalinsk.ru",
+-	"amursk.ru",
+-	"baikal.ru",
+-	"cmw.ru",
+-	"fareast.ru",
+-	"jamal.ru",
+-	"kms.ru",
+-	"k-uralsk.ru",
+-	"kustanai.ru",
+-	"kuzbass.ru",
+-	"magnitka.ru",
+-	"mytis.ru",
+-	"nakhodka.ru",
+-	"nkz.ru",
+-	"norilsk.ru",
+-	"oskol.ru",
+-	"pyatigorsk.ru",
+-	"rubtsovsk.ru",
+-	"snz.ru",
+-	"syzran.ru",
+-	"vdonsk.ru",
+-	"zgrad.ru",
+-	"gov.ru",
+-	"mil.ru",
+-	"test.ru",
+-	"rw",
+-	"gov.rw",
+-	"net.rw",
+-	"edu.rw",
+-	"ac.rw",
+-	"com.rw",
+-	"co.rw",
+-	"int.rw",
+-	"mil.rw",
+-	"gouv.rw",
+-	"sa",
+-	"com.sa",
+-	"net.sa",
+-	"org.sa",
+-	"gov.sa",
+-	"med.sa",
+-	"pub.sa",
+-	"edu.sa",
+-	"sch.sa",
+-	"sb",
+-	"com.sb",
+-	"edu.sb",
+-	"gov.sb",
+-	"net.sb",
+-	"org.sb",
+-	"sc",
+-	"com.sc",
+-	"gov.sc",
+-	"net.sc",
+-	"org.sc",
+-	"edu.sc",
+-	"sd",
+-	"com.sd",
+-	"net.sd",
+-	"org.sd",
+-	"edu.sd",
+-	"med.sd",
+-	"tv.sd",
+-	"gov.sd",
+-	"info.sd",
+-	"se",
+-	"a.se",
+-	"ac.se",
+-	"b.se",
+-	"bd.se",
+-	"brand.se",
+-	"c.se",
+-	"d.se",
+-	"e.se",
+-	"f.se",
+-	"fh.se",
+-	"fhsk.se",
+-	"fhv.se",
+-	"g.se",
+-	"h.se",
+-	"i.se",
+-	"k.se",
+-	"komforb.se",
+-	"kommunalforbund.se",
+-	"komvux.se",
+-	"l.se",
+-	"lanbib.se",
+-	"m.se",
+-	"n.se",
+-	"naturbruksgymn.se",
+-	"o.se",
+-	"org.se",
+-	"p.se",
+-	"parti.se",
+-	"pp.se",
+-	"press.se",
+-	"r.se",
+-	"s.se",
+-	"sshn.se",
+-	"t.se",
+-	"tm.se",
+-	"u.se",
+-	"w.se",
+-	"x.se",
+-	"y.se",
+-	"z.se",
+-	"sg",
+-	"com.sg",
+-	"net.sg",
+-	"org.sg",
+-	"gov.sg",
+-	"edu.sg",
+-	"per.sg",
+-	"sh",
+-	"com.sh",
+-	"net.sh",
+-	"gov.sh",
+-	"org.sh",
+-	"mil.sh",
+-	"si",
+-	"sk",
+-	"sl",
+-	"com.sl",
+-	"net.sl",
+-	"edu.sl",
+-	"gov.sl",
+-	"org.sl",
+-	"sm",
+-	"sn",
+-	"art.sn",
+-	"com.sn",
+-	"edu.sn",
+-	"gouv.sn",
+-	"org.sn",
+-	"perso.sn",
+-	"univ.sn",
+-	"so",
+-	"com.so",
+-	"net.so",
+-	"org.so",
+-	"sr",
+-	"st",
+-	"co.st",
+-	"com.st",
+-	"consulado.st",
+-	"edu.st",
+-	"embaixada.st",
+-	"gov.st",
+-	"mil.st",
+-	"net.st",
+-	"org.st",
+-	"principe.st",
+-	"saotome.st",
+-	"store.st",
+-	"su",
+-	"*.sv",
+-	"sx",
+-	"gov.sx",
+-	"sy",
+-	"edu.sy",
+-	"gov.sy",
+-	"net.sy",
+-	"mil.sy",
+-	"com.sy",
+-	"org.sy",
+-	"sz",
+-	"co.sz",
+-	"ac.sz",
+-	"org.sz",
+-	"tc",
+-	"td",
+-	"tel",
+-	"tf",
+-	"tg",
+-	"th",
+-	"ac.th",
+-	"co.th",
+-	"go.th",
+-	"in.th",
+-	"mi.th",
+-	"net.th",
+-	"or.th",
+-	"tj",
+-	"ac.tj",
+-	"biz.tj",
+-	"co.tj",
+-	"com.tj",
+-	"edu.tj",
+-	"go.tj",
+-	"gov.tj",
+-	"int.tj",
+-	"mil.tj",
+-	"name.tj",
+-	"net.tj",
+-	"nic.tj",
+-	"org.tj",
+-	"test.tj",
+-	"web.tj",
+-	"tk",
+-	"tl",
+-	"gov.tl",
+-	"tm",
+-	"com.tm",
+-	"co.tm",
+-	"org.tm",
+-	"net.tm",
+-	"nom.tm",
+-	"gov.tm",
+-	"mil.tm",
+-	"edu.tm",
+-	"tn",
+-	"com.tn",
+-	"ens.tn",
+-	"fin.tn",
+-	"gov.tn",
+-	"ind.tn",
+-	"intl.tn",
+-	"nat.tn",
+-	"net.tn",
+-	"org.tn",
+-	"info.tn",
+-	"perso.tn",
+-	"tourism.tn",
+-	"edunet.tn",
+-	"rnrt.tn",
+-	"rns.tn",
+-	"rnu.tn",
+-	"mincom.tn",
+-	"agrinet.tn",
+-	"defense.tn",
+-	"turen.tn",
+-	"to",
+-	"com.to",
+-	"gov.to",
+-	"net.to",
+-	"org.to",
+-	"edu.to",
+-	"mil.to",
+-	"*.tr",
+-	"!nic.tr",
+-	"gov.nc.tr",
+-	"travel",
+-	"tt",
+-	"co.tt",
+-	"com.tt",
+-	"org.tt",
+-	"net.tt",
+-	"biz.tt",
+-	"info.tt",
+-	"pro.tt",
+-	"int.tt",
+-	"coop.tt",
+-	"jobs.tt",
+-	"mobi.tt",
+-	"travel.tt",
+-	"museum.tt",
+-	"aero.tt",
+-	"name.tt",
+-	"gov.tt",
+-	"edu.tt",
+-	"tv",
+-	"tw",
+-	"edu.tw",
+-	"gov.tw",
+-	"mil.tw",
+-	"com.tw",
+-	"net.tw",
+-	"org.tw",
+-	"idv.tw",
+-	"game.tw",
+-	"ebiz.tw",
+-	"club.tw",
+-	"xn--zf0ao64a.tw",
+-	"xn--uc0atv.tw",
+-	"xn--czrw28b.tw",
+-	"ac.tz",
+-	"co.tz",
+-	"go.tz",
+-	"hotel.tz",
+-	"info.tz",
+-	"me.tz",
+-	"mil.tz",
+-	"mobi.tz",
+-	"ne.tz",
+-	"or.tz",
+-	"sc.tz",
+-	"tv.tz",
+-	"ua",
+-	"com.ua",
+-	"edu.ua",
+-	"gov.ua",
+-	"in.ua",
+-	"net.ua",
+-	"org.ua",
+-	"cherkassy.ua",
+-	"cherkasy.ua",
+-	"chernigov.ua",
+-	"chernihiv.ua",
+-	"chernivtsi.ua",
+-	"chernovtsy.ua",
+-	"ck.ua",
+-	"cn.ua",
+-	"cr.ua",
+-	"crimea.ua",
+-	"cv.ua",
+-	"dn.ua",
+-	"dnepropetrovsk.ua",
+-	"dnipropetrovsk.ua",
+-	"dominic.ua",
+-	"donetsk.ua",
+-	"dp.ua",
+-	"if.ua",
+-	"ivano-frankivsk.ua",
+-	"kh.ua",
+-	"kharkiv.ua",
+-	"kharkov.ua",
+-	"kherson.ua",
+-	"khmelnitskiy.ua",
+-	"khmelnytskyi.ua",
+-	"kiev.ua",
+-	"kirovograd.ua",
+-	"km.ua",
+-	"kr.ua",
+-	"krym.ua",
+-	"ks.ua",
+-	"kv.ua",
+-	"kyiv.ua",
+-	"lg.ua",
+-	"lt.ua",
+-	"lugansk.ua",
+-	"lutsk.ua",
+-	"lv.ua",
+-	"lviv.ua",
+-	"mk.ua",
+-	"mykolaiv.ua",
+-	"nikolaev.ua",
+-	"od.ua",
+-	"odesa.ua",
+-	"odessa.ua",
+-	"pl.ua",
+-	"poltava.ua",
+-	"rivne.ua",
+-	"rovno.ua",
+-	"rv.ua",
+-	"sb.ua",
+-	"sebastopol.ua",
+-	"sevastopol.ua",
+-	"sm.ua",
+-	"sumy.ua",
+-	"te.ua",
+-	"ternopil.ua",
+-	"uz.ua",
+-	"uzhgorod.ua",
+-	"vinnica.ua",
+-	"vinnytsia.ua",
+-	"vn.ua",
+-	"volyn.ua",
+-	"yalta.ua",
+-	"zaporizhzhe.ua",
+-	"zaporizhzhia.ua",
+-	"zhitomir.ua",
+-	"zhytomyr.ua",
+-	"zp.ua",
+-	"zt.ua",
+-	"co.ua",
+-	"pp.ua",
+-	"ug",
+-	"co.ug",
+-	"or.ug",
+-	"ac.ug",
+-	"sc.ug",
+-	"go.ug",
+-	"ne.ug",
+-	"com.ug",
+-	"org.ug",
+-	"*.uk",
+-	"*.sch.uk",
+-	"!bl.uk",
+-	"!british-library.uk",
+-	"!jet.uk",
+-	"!mod.uk",
+-	"!national-library-scotland.uk",
+-	"!nel.uk",
+-	"!nic.uk",
+-	"!nls.uk",
+-	"!parliament.uk",
+-	"us",
+-	"dni.us",
+-	"fed.us",
+-	"isa.us",
+-	"kids.us",
+-	"nsn.us",
+-	"ak.us",
+-	"al.us",
+-	"ar.us",
+-	"as.us",
+-	"az.us",
+-	"ca.us",
+-	"co.us",
+-	"ct.us",
+-	"dc.us",
+-	"de.us",
+-	"fl.us",
+-	"ga.us",
+-	"gu.us",
+-	"hi.us",
+-	"ia.us",
+-	"id.us",
+-	"il.us",
+-	"in.us",
+-	"ks.us",
+-	"ky.us",
+-	"la.us",
+-	"ma.us",
+-	"md.us",
+-	"me.us",
+-	"mi.us",
+-	"mn.us",
+-	"mo.us",
+-	"ms.us",
+-	"mt.us",
+-	"nc.us",
+-	"nd.us",
+-	"ne.us",
+-	"nh.us",
+-	"nj.us",
+-	"nm.us",
+-	"nv.us",
+-	"ny.us",
+-	"oh.us",
+-	"ok.us",
+-	"or.us",
+-	"pa.us",
+-	"pr.us",
+-	"ri.us",
+-	"sc.us",
+-	"sd.us",
+-	"tn.us",
+-	"tx.us",
+-	"ut.us",
+-	"vi.us",
+-	"vt.us",
+-	"va.us",
+-	"wa.us",
+-	"wi.us",
+-	"wv.us",
+-	"wy.us",
+-	"k12.ak.us",
+-	"k12.al.us",
+-	"k12.ar.us",
+-	"k12.as.us",
+-	"k12.az.us",
+-	"k12.ca.us",
+-	"k12.co.us",
+-	"k12.ct.us",
+-	"k12.dc.us",
+-	"k12.de.us",
+-	"k12.fl.us",
+-	"k12.ga.us",
+-	"k12.gu.us",
+-	"k12.ia.us",
+-	"k12.id.us",
+-	"k12.il.us",
+-	"k12.in.us",
+-	"k12.ks.us",
+-	"k12.ky.us",
+-	"k12.la.us",
+-	"k12.ma.us",
+-	"k12.md.us",
+-	"k12.me.us",
+-	"k12.mi.us",
+-	"k12.mn.us",
+-	"k12.mo.us",
+-	"k12.ms.us",
+-	"k12.mt.us",
+-	"k12.nc.us",
+-	"k12.nd.us",
+-	"k12.ne.us",
+-	"k12.nh.us",
+-	"k12.nj.us",
+-	"k12.nm.us",
+-	"k12.nv.us",
+-	"k12.ny.us",
+-	"k12.oh.us",
+-	"k12.ok.us",
+-	"k12.or.us",
+-	"k12.pa.us",
+-	"k12.pr.us",
+-	"k12.ri.us",
+-	"k12.sc.us",
+-	"k12.sd.us",
+-	"k12.tn.us",
+-	"k12.tx.us",
+-	"k12.ut.us",
+-	"k12.vi.us",
+-	"k12.vt.us",
+-	"k12.va.us",
+-	"k12.wa.us",
+-	"k12.wi.us",
+-	"k12.wv.us",
+-	"k12.wy.us",
+-	"cc.ak.us",
+-	"cc.al.us",
+-	"cc.ar.us",
+-	"cc.as.us",
+-	"cc.az.us",
+-	"cc.ca.us",
+-	"cc.co.us",
+-	"cc.ct.us",
+-	"cc.dc.us",
+-	"cc.de.us",
+-	"cc.fl.us",
+-	"cc.ga.us",
+-	"cc.gu.us",
+-	"cc.hi.us",
+-	"cc.ia.us",
+-	"cc.id.us",
+-	"cc.il.us",
+-	"cc.in.us",
+-	"cc.ks.us",
+-	"cc.ky.us",
+-	"cc.la.us",
+-	"cc.ma.us",
+-	"cc.md.us",
+-	"cc.me.us",
+-	"cc.mi.us",
+-	"cc.mn.us",
+-	"cc.mo.us",
+-	"cc.ms.us",
+-	"cc.mt.us",
+-	"cc.nc.us",
+-	"cc.nd.us",
+-	"cc.ne.us",
+-	"cc.nh.us",
+-	"cc.nj.us",
+-	"cc.nm.us",
+-	"cc.nv.us",
+-	"cc.ny.us",
+-	"cc.oh.us",
+-	"cc.ok.us",
+-	"cc.or.us",
+-	"cc.pa.us",
+-	"cc.pr.us",
+-	"cc.ri.us",
+-	"cc.sc.us",
+-	"cc.sd.us",
+-	"cc.tn.us",
+-	"cc.tx.us",
+-	"cc.ut.us",
+-	"cc.vi.us",
+-	"cc.vt.us",
+-	"cc.va.us",
+-	"cc.wa.us",
+-	"cc.wi.us",
+-	"cc.wv.us",
+-	"cc.wy.us",
+-	"lib.ak.us",
+-	"lib.al.us",
+-	"lib.ar.us",
+-	"lib.as.us",
+-	"lib.az.us",
+-	"lib.ca.us",
+-	"lib.co.us",
+-	"lib.ct.us",
+-	"lib.dc.us",
+-	"lib.de.us",
+-	"lib.fl.us",
+-	"lib.ga.us",
+-	"lib.gu.us",
+-	"lib.hi.us",
+-	"lib.ia.us",
+-	"lib.id.us",
+-	"lib.il.us",
+-	"lib.in.us",
+-	"lib.ks.us",
+-	"lib.ky.us",
+-	"lib.la.us",
+-	"lib.ma.us",
+-	"lib.md.us",
+-	"lib.me.us",
+-	"lib.mi.us",
+-	"lib.mn.us",
+-	"lib.mo.us",
+-	"lib.ms.us",
+-	"lib.mt.us",
+-	"lib.nc.us",
+-	"lib.nd.us",
+-	"lib.ne.us",
+-	"lib.nh.us",
+-	"lib.nj.us",
+-	"lib.nm.us",
+-	"lib.nv.us",
+-	"lib.ny.us",
+-	"lib.oh.us",
+-	"lib.ok.us",
+-	"lib.or.us",
+-	"lib.pa.us",
+-	"lib.pr.us",
+-	"lib.ri.us",
+-	"lib.sc.us",
+-	"lib.sd.us",
+-	"lib.tn.us",
+-	"lib.tx.us",
+-	"lib.ut.us",
+-	"lib.vi.us",
+-	"lib.vt.us",
+-	"lib.va.us",
+-	"lib.wa.us",
+-	"lib.wi.us",
+-	"lib.wv.us",
+-	"lib.wy.us",
+-	"pvt.k12.ma.us",
+-	"chtr.k12.ma.us",
+-	"paroch.k12.ma.us",
+-	"uy",
+-	"com.uy",
+-	"edu.uy",
+-	"gub.uy",
+-	"mil.uy",
+-	"net.uy",
+-	"org.uy",
+-	"uz",
+-	"co.uz",
+-	"com.uz",
+-	"net.uz",
+-	"org.uz",
+-	"va",
+-	"vc",
+-	"com.vc",
+-	"net.vc",
+-	"org.vc",
+-	"gov.vc",
+-	"mil.vc",
+-	"edu.vc",
+-	"ve",
+-	"co.ve",
+-	"com.ve",
+-	"e12.ve",
+-	"edu.ve",
+-	"gov.ve",
+-	"info.ve",
+-	"mil.ve",
+-	"net.ve",
+-	"org.ve",
+-	"web.ve",
+-	"vg",
+-	"vi",
+-	"co.vi",
+-	"com.vi",
+-	"k12.vi",
+-	"net.vi",
+-	"org.vi",
+-	"vn",
+-	"com.vn",
+-	"net.vn",
+-	"org.vn",
+-	"edu.vn",
+-	"gov.vn",
+-	"int.vn",
+-	"ac.vn",
+-	"biz.vn",
+-	"info.vn",
+-	"name.vn",
+-	"pro.vn",
+-	"health.vn",
+-	"vu",
+-	"wf",
+-	"ws",
+-	"com.ws",
+-	"net.ws",
+-	"org.ws",
+-	"gov.ws",
+-	"edu.ws",
+-	"yt",
+-	"xn--mgbaam7a8h",
+-	"xn--54b7fta0cc",
+-	"xn--fiqs8s",
+-	"xn--fiqz9s",
+-	"xn--lgbbat1ad8j",
+-	"xn--wgbh1c",
+-	"xn--node",
+-	"xn--j6w193g",
+-	"xn--h2brj9c",
+-	"xn--mgbbh1a71e",
+-	"xn--fpcrj9c3d",
+-	"xn--gecrj9c",
+-	"xn--s9brj9c",
+-	"xn--45brj9c",
+-	"xn--xkc2dl3a5ee0h",
+-	"xn--mgba3a4f16a",
+-	"xn--mgba3a4fra",
+-	"xn--mgbayh7gpa",
+-	"xn--3e0b707e",
+-	"xn--fzc2c9e2c",
+-	"xn--xkc2al3hye2a",
+-	"xn--mgbc0a9azcg",
+-	"xn--mgb9awbf",
+-	"xn--ygbi2ammx",
+-	"xn--90a3ac",
+-	"xn--p1ai",
+-	"xn--wgbl6a",
+-	"xn--mgberp4a5d4ar",
+-	"xn--mgberp4a5d4a87g",
+-	"xn--mgbqly7c0a67fbc",
+-	"xn--mgbqly7cvafr",
+-	"xn--ogbpf8fl",
+-	"xn--mgbtf8fl",
+-	"xn--yfro4i67o",
+-	"xn--clchc0ea0b2g2a9gcd",
+-	"xn--o3cw4h",
+-	"xn--pgbs0dh",
+-	"xn--kpry57d",
+-	"xn--kprw13d",
+-	"xn--nnx388a",
+-	"xn--j1amh",
+-	"xn--mgb2ddes",
+-	"xxx",
+-	"*.ye",
+-	"*.za",
+-	"*.zm",
+-	"*.zw",
+-	"cloudfront.net",
+-	"elasticbeanstalk.com",
+-	"elb.amazonaws.com",
+-	"s3.amazonaws.com",
+-	"s3-us-west-2.amazonaws.com",
+-	"s3-us-west-1.amazonaws.com",
+-	"s3-eu-west-1.amazonaws.com",
+-	"s3-ap-southeast-1.amazonaws.com",
+-	"s3-ap-southeast-2.amazonaws.com",
+-	"s3-ap-northeast-1.amazonaws.com",
+-	"s3-sa-east-1.amazonaws.com",
+-	"s3-us-gov-west-1.amazonaws.com",
+-	"s3-fips-us-gov-west-1.amazonaws.com",
+-	"s3-website-us-east-1.amazonaws.com",
+-	"s3-website-us-west-2.amazonaws.com",
+-	"s3-website-us-west-1.amazonaws.com",
+-	"s3-website-eu-west-1.amazonaws.com",
+-	"s3-website-ap-southeast-1.amazonaws.com",
+-	"s3-website-ap-southeast-2.amazonaws.com",
+-	"s3-website-ap-northeast-1.amazonaws.com",
+-	"s3-website-sa-east-1.amazonaws.com",
+-	"s3-website-us-gov-west-1.amazonaws.com",
+-	"betainabox.com",
+-	"ae.org",
+-	"ar.com",
+-	"br.com",
+-	"cn.com",
+-	"com.de",
+-	"de.com",
+-	"eu.com",
+-	"gb.com",
+-	"gb.net",
+-	"gr.com",
+-	"hu.com",
+-	"hu.net",
+-	"jp.net",
+-	"jpn.com",
+-	"kr.com",
+-	"no.com",
+-	"qc.com",
+-	"ru.com",
+-	"sa.com",
+-	"se.com",
+-	"se.net",
+-	"uk.com",
+-	"uk.net",
+-	"us.com",
+-	"us.org",
+-	"uy.com",
+-	"za.com",
+-	"c.la",
+-	"co.ca",
+-	"co.nl",
+-	"co.no",
+-	"dreamhosters.com",
+-	"dyndns-at-home.com",
+-	"dyndns-at-work.com",
+-	"dyndns-blog.com",
+-	"dyndns-free.com",
+-	"dyndns-home.com",
+-	"dyndns-ip.com",
+-	"dyndns-mail.com",
+-	"dyndns-office.com",
+-	"dyndns-pics.com",
+-	"dyndns-remote.com",
+-	"dyndns-server.com",
+-	"dyndns-web.com",
+-	"dyndns-wiki.com",
+-	"dyndns-work.com",
+-	"dyndns.biz",
+-	"dyndns.info",
+-	"dyndns.org",
+-	"dyndns.tv",
+-	"at-band-camp.net",
+-	"ath.cx",
+-	"barrel-of-knowledge.info",
+-	"barrell-of-knowledge.info",
+-	"better-than.tv",
+-	"blogdns.com",
+-	"blogdns.net",
+-	"blogdns.org",
+-	"blogsite.org",
+-	"boldlygoingnowhere.org",
+-	"broke-it.net",
+-	"buyshouses.net",
+-	"cechire.com",
+-	"dnsalias.com",
+-	"dnsalias.net",
+-	"dnsalias.org",
+-	"dnsdojo.com",
+-	"dnsdojo.net",
+-	"dnsdojo.org",
+-	"does-it.net",
+-	"doesntexist.com",
+-	"doesntexist.org",
+-	"dontexist.com",
+-	"dontexist.net",
+-	"dontexist.org",
+-	"doomdns.com",
+-	"doomdns.org",
+-	"dvrdns.org",
+-	"dyn-o-saur.com",
+-	"dynalias.com",
+-	"dynalias.net",
+-	"dynalias.org",
+-	"dynathome.net",
+-	"dyndns.ws",
+-	"endofinternet.net",
+-	"endofinternet.org",
+-	"endoftheinternet.org",
+-	"est-a-la-maison.com",
+-	"est-a-la-masion.com",
+-	"est-le-patron.com",
+-	"est-mon-blogueur.com",
+-	"for-better.biz",
+-	"for-more.biz",
+-	"for-our.info",
+-	"for-some.biz",
+-	"for-the.biz",
+-	"forgot.her.name",
+-	"forgot.his.name",
+-	"from-ak.com",
+-	"from-al.com",
+-	"from-ar.com",
+-	"from-az.net",
+-	"from-ca.com",
+-	"from-co.net",
+-	"from-ct.com",
+-	"from-dc.com",
+-	"from-de.com",
+-	"from-fl.com",
+-	"from-ga.com",
+-	"from-hi.com",
+-	"from-ia.com",
+-	"from-id.com",
+-	"from-il.com",
+-	"from-in.com",
+-	"from-ks.com",
+-	"from-ky.com",
+-	"from-la.net",
+-	"from-ma.com",
+-	"from-md.com",
+-	"from-me.org",
+-	"from-mi.com",
+-	"from-mn.com",
+-	"from-mo.com",
+-	"from-ms.com",
+-	"from-mt.com",
+-	"from-nc.com",
+-	"from-nd.com",
+-	"from-ne.com",
+-	"from-nh.com",
+-	"from-nj.com",
+-	"from-nm.com",
+-	"from-nv.com",
+-	"from-ny.net",
+-	"from-oh.com",
+-	"from-ok.com",
+-	"from-or.com",
+-	"from-pa.com",
+-	"from-pr.com",
+-	"from-ri.com",
+-	"from-sc.com",
+-	"from-sd.com",
+-	"from-tn.com",
+-	"from-tx.com",
+-	"from-ut.com",
+-	"from-va.com",
+-	"from-vt.com",
+-	"from-wa.com",
+-	"from-wi.com",
+-	"from-wv.com",
+-	"from-wy.com",
+-	"ftpaccess.cc",
+-	"fuettertdasnetz.de",
+-	"game-host.org",
+-	"game-server.cc",
+-	"getmyip.com",
+-	"gets-it.net",
+-	"go.dyndns.org",
+-	"gotdns.com",
+-	"gotdns.org",
+-	"groks-the.info",
+-	"groks-this.info",
+-	"ham-radio-op.net",
+-	"here-for-more.info",
+-	"hobby-site.com",
+-	"hobby-site.org",
+-	"home.dyndns.org",
+-	"homedns.org",
+-	"homeftp.net",
+-	"homeftp.org",
+-	"homeip.net",
+-	"homelinux.com",
+-	"homelinux.net",
+-	"homelinux.org",
+-	"homeunix.com",
+-	"homeunix.net",
+-	"homeunix.org",
+-	"iamallama.com",
+-	"in-the-band.net",
+-	"is-a-anarchist.com",
+-	"is-a-blogger.com",
+-	"is-a-bookkeeper.com",
+-	"is-a-bruinsfan.org",
+-	"is-a-bulls-fan.com",
+-	"is-a-candidate.org",
+-	"is-a-caterer.com",
+-	"is-a-celticsfan.org",
+-	"is-a-chef.com",
+-	"is-a-chef.net",
+-	"is-a-chef.org",
+-	"is-a-conservative.com",
+-	"is-a-cpa.com",
+-	"is-a-cubicle-slave.com",
+-	"is-a-democrat.com",
+-	"is-a-designer.com",
+-	"is-a-doctor.com",
+-	"is-a-financialadvisor.com",
+-	"is-a-geek.com",
+-	"is-a-geek.net",
+-	"is-a-geek.org",
+-	"is-a-green.com",
+-	"is-a-guru.com",
+-	"is-a-hard-worker.com",
+-	"is-a-hunter.com",
+-	"is-a-knight.org",
+-	"is-a-landscaper.com",
+-	"is-a-lawyer.com",
+-	"is-a-liberal.com",
+-	"is-a-libertarian.com",
+-	"is-a-linux-user.org",
+-	"is-a-llama.com",
+-	"is-a-musician.com",
+-	"is-a-nascarfan.com",
+-	"is-a-nurse.com",
+-	"is-a-painter.com",
+-	"is-a-patsfan.org",
+-	"is-a-personaltrainer.com",
+-	"is-a-photographer.com",
+-	"is-a-player.com",
+-	"is-a-republican.com",
+-	"is-a-rockstar.com",
+-	"is-a-socialist.com",
+-	"is-a-soxfan.org",
+-	"is-a-student.com",
+-	"is-a-teacher.com",
+-	"is-a-techie.com",
+-	"is-a-therapist.com",
+-	"is-an-accountant.com",
+-	"is-an-actor.com",
+-	"is-an-actress.com",
+-	"is-an-anarchist.com",
+-	"is-an-artist.com",
+-	"is-an-engineer.com",
+-	"is-an-entertainer.com",
+-	"is-by.us",
+-	"is-certified.com",
+-	"is-found.org",
+-	"is-gone.com",
+-	"is-into-anime.com",
+-	"is-into-cars.com",
+-	"is-into-cartoons.com",
+-	"is-into-games.com",
+-	"is-leet.com",
+-	"is-lost.org",
+-	"is-not-certified.com",
+-	"is-saved.org",
+-	"is-slick.com",
+-	"is-uberleet.com",
+-	"is-very-bad.org",
+-	"is-very-evil.org",
+-	"is-very-good.org",
+-	"is-very-nice.org",
+-	"is-very-sweet.org",
+-	"is-with-theband.com",
+-	"isa-geek.com",
+-	"isa-geek.net",
+-	"isa-geek.org",
+-	"isa-hockeynut.com",
+-	"issmarterthanyou.com",
+-	"isteingeek.de",
+-	"istmein.de",
+-	"kicks-ass.net",
+-	"kicks-ass.org",
+-	"knowsitall.info",
+-	"land-4-sale.us",
+-	"lebtimnetz.de",
+-	"leitungsen.de",
+-	"likes-pie.com",
+-	"likescandy.com",
+-	"merseine.nu",
+-	"mine.nu",
+-	"misconfused.org",
+-	"mypets.ws",
+-	"myphotos.cc",
+-	"neat-url.com",
+-	"office-on-the.net",
+-	"on-the-web.tv",
+-	"podzone.net",
+-	"podzone.org",
+-	"readmyblog.org",
+-	"saves-the-whales.com",
+-	"scrapper-site.net",
+-	"scrapping.cc",
+-	"selfip.biz",
+-	"selfip.com",
+-	"selfip.info",
+-	"selfip.net",
+-	"selfip.org",
+-	"sells-for-less.com",
+-	"sells-for-u.com",
+-	"sells-it.net",
+-	"sellsyourhome.org",
+-	"servebbs.com",
+-	"servebbs.net",
+-	"servebbs.org",
+-	"serveftp.net",
+-	"serveftp.org",
+-	"servegame.org",
+-	"shacknet.nu",
+-	"simple-url.com",
+-	"space-to-rent.com",
+-	"stuff-4-sale.org",
+-	"stuff-4-sale.us",
+-	"teaches-yoga.com",
+-	"thruhere.net",
+-	"traeumtgerade.de",
+-	"webhop.biz",
+-	"webhop.info",
+-	"webhop.net",
+-	"webhop.org",
+-	"worse-than.tv",
+-	"writesthisblog.com",
+-	"github.io",
+-	"appspot.com",
+-	"blogspot.be",
+-	"blogspot.bj",
+-	"blogspot.ca",
+-	"blogspot.cf",
+-	"blogspot.ch",
+-	"blogspot.co.at",
+-	"blogspot.co.il",
+-	"blogspot.co.nz",
+-	"blogspot.co.uk",
+-	"blogspot.com",
+-	"blogspot.com.ar",
+-	"blogspot.com.au",
+-	"blogspot.com.br",
+-	"blogspot.com.es",
+-	"blogspot.cv",
+-	"blogspot.cz",
+-	"blogspot.de",
+-	"blogspot.dk",
+-	"blogspot.fi",
+-	"blogspot.fr",
+-	"blogspot.gr",
+-	"blogspot.hk",
+-	"blogspot.hu",
+-	"blogspot.ie",
+-	"blogspot.in",
+-	"blogspot.it",
+-	"blogspot.jp",
+-	"blogspot.kr",
+-	"blogspot.mr",
+-	"blogspot.mx",
+-	"blogspot.nl",
+-	"blogspot.no",
+-	"blogspot.pt",
+-	"blogspot.re",
+-	"blogspot.ro",
+-	"blogspot.se",
+-	"blogspot.sg",
+-	"blogspot.sk",
+-	"blogspot.td",
+-	"blogspot.tw",
+-	"codespot.com",
+-	"googleapis.com",
+-	"googlecode.com",
+-	"iki.fi",
+-	"biz.at",
+-	"info.at",
+-	"co.pl",
+-	"nyc.mn",
+-	"operaunite.com",
+-	"rhcloud.com",
+-	"priv.at",
+-	"za.net",
+-	"za.org",
+-}
+-
+-var nodeLabels = [...]string{
+-	"ac",
+-	"ad",
+-	"ae",
+-	"aero",
+-	"af",
+-	"ag",
+-	"ai",
+-	"al",
+-	"am",
+-	"an",
+-	"ao",
+-	"aq",
+-	"ar",
+-	"arpa",
+-	"as",
+-	"asia",
+-	"at",
+-	"au",
+-	"aw",
+-	"ax",
+-	"az",
+-	"ba",
+-	"bb",
+-	"bd",
+-	"be",
+-	"bf",
+-	"bg",
+-	"bh",
+-	"bi",
+-	"biz",
+-	"bj",
+-	"bm",
+-	"bn",
+-	"bo",
+-	"br",
+-	"bs",
+-	"bt",
+-	"bw",
+-	"by",
+-	"bz",
+-	"ca",
+-	"cat",
+-	"cc",
+-	"cd",
+-	"cf",
+-	"cg",
+-	"ch",
+-	"ci",
+-	"ck",
+-	"cl",
+-	"cm",
+-	"cn",
+-	"co",
+-	"com",
+-	"coop",
+-	"cr",
+-	"cu",
+-	"cv",
+-	"cw",
+-	"cx",
+-	"cy",
+-	"cz",
+-	"de",
+-	"dj",
+-	"dk",
+-	"dm",
+-	"do",
+-	"dz",
+-	"ec",
+-	"edu",
+-	"ee",
+-	"eg",
+-	"er",
+-	"es",
+-	"et",
+-	"eu",
+-	"fi",
+-	"fj",
+-	"fk",
+-	"fm",
+-	"fo",
+-	"fr",
+-	"ga",
+-	"gd",
+-	"ge",
+-	"gf",
+-	"gg",
+-	"gh",
+-	"gi",
+-	"gl",
+-	"gm",
+-	"gn",
+-	"gov",
+-	"gp",
+-	"gq",
+-	"gr",
+-	"gs",
+-	"gt",
+-	"gu",
+-	"gw",
+-	"gy",
+-	"hk",
+-	"hm",
+-	"hn",
+-	"hr",
+-	"ht",
+-	"hu",
+-	"id",
+-	"ie",
+-	"il",
+-	"im",
+-	"in",
+-	"info",
+-	"int",
+-	"io",
+-	"iq",
+-	"ir",
+-	"is",
+-	"it",
+-	"je",
+-	"jm",
+-	"jo",
+-	"jobs",
+-	"jp",
+-	"ke",
+-	"kg",
+-	"kh",
+-	"ki",
+-	"km",
+-	"kn",
+-	"kp",
+-	"kr",
+-	"kw",
+-	"ky",
+-	"kz",
+-	"la",
+-	"lb",
+-	"lc",
+-	"li",
+-	"lk",
+-	"lr",
+-	"ls",
+-	"lt",
+-	"lu",
+-	"lv",
+-	"ly",
+-	"ma",
+-	"mc",
+-	"md",
+-	"me",
+-	"mg",
+-	"mh",
+-	"mil",
+-	"mk",
+-	"ml",
+-	"mm",
+-	"mn",
+-	"mo",
+-	"mobi",
+-	"mp",
+-	"mq",
+-	"mr",
+-	"ms",
+-	"mt",
+-	"mu",
+-	"museum",
+-	"mv",
+-	"mw",
+-	"mx",
+-	"my",
+-	"mz",
+-	"na",
+-	"name",
+-	"nc",
+-	"ne",
+-	"net",
+-	"nf",
+-	"ng",
+-	"ni",
+-	"nl",
+-	"no",
+-	"np",
+-	"nr",
+-	"nu",
+-	"nz",
+-	"om",
+-	"org",
+-	"pa",
+-	"pe",
+-	"pf",
+-	"pg",
+-	"ph",
+-	"pk",
+-	"pl",
+-	"pm",
+-	"pn",
+-	"post",
+-	"pr",
+-	"pro",
+-	"ps",
+-	"pt",
+-	"pw",
+-	"py",
+-	"qa",
+-	"re",
+-	"ro",
+-	"rs",
+-	"ru",
+-	"rw",
+-	"sa",
+-	"sb",
+-	"sc",
+-	"sd",
+-	"se",
+-	"sg",
+-	"sh",
+-	"si",
+-	"sk",
+-	"sl",
+-	"sm",
+-	"sn",
+-	"so",
+-	"sr",
+-	"st",
+-	"su",
+-	"sv",
+-	"sx",
+-	"sy",
+-	"sz",
+-	"tc",
+-	"td",
+-	"tel",
+-	"tf",
+-	"tg",
+-	"th",
+-	"tj",
+-	"tk",
+-	"tl",
+-	"tm",
+-	"tn",
+-	"to",
+-	"tr",
+-	"travel",
+-	"tt",
+-	"tv",
+-	"tw",
+-	"tz",
+-	"ua",
+-	"ug",
+-	"uk",
+-	"us",
+-	"uy",
+-	"uz",
+-	"va",
+-	"vc",
+-	"ve",
+-	"vg",
+-	"vi",
+-	"vn",
+-	"vu",
+-	"wf",
+-	"ws",
+-	"xn--3e0b707e",
+-	"xn--45brj9c",
+-	"xn--54b7fta0cc",
+-	"xn--90a3ac",
+-	"xn--clchc0ea0b2g2a9gcd",
+-	"xn--fiqs8s",
+-	"xn--fiqz9s",
+-	"xn--fpcrj9c3d",
+-	"xn--fzc2c9e2c",
+-	"xn--gecrj9c",
+-	"xn--h2brj9c",
+-	"xn--j1amh",
+-	"xn--j6w193g",
+-	"xn--kprw13d",
+-	"xn--kpry57d",
+-	"xn--lgbbat1ad8j",
+-	"xn--mgb2ddes",
+-	"xn--mgb9awbf",
+-	"xn--mgba3a4f16a",
+-	"xn--mgba3a4fra",
+-	"xn--mgbaam7a8h",
+-	"xn--mgbayh7gpa",
+-	"xn--mgbbh1a71e",
+-	"xn--mgbc0a9azcg",
+-	"xn--mgberp4a5d4a87g",
+-	"xn--mgberp4a5d4ar",
+-	"xn--mgbqly7c0a67fbc",
+-	"xn--mgbqly7cvafr",
+-	"xn--mgbtf8fl",
+-	"xn--nnx388a",
+-	"xn--node",
+-	"xn--o3cw4h",
+-	"xn--ogbpf8fl",
+-	"xn--p1ai",
+-	"xn--pgbs0dh",
+-	"xn--s9brj9c",
+-	"xn--wgbh1c",
+-	"xn--wgbl6a",
+-	"xn--xkc2al3hye2a",
+-	"xn--xkc2dl3a5ee0h",
+-	"xn--yfro4i67o",
+-	"xn--ygbi2ammx",
+-	"xxx",
+-	"ye",
+-	"yt",
+-	"za",
+-	"zm",
+-	"zw",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"nom",
+-	"ac",
+-	"co",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"sch",
+-	"accident-investigation",
+-	"accident-prevention",
+-	"aerobatic",
+-	"aeroclub",
+-	"aerodrome",
+-	"agents",
+-	"air-surveillance",
+-	"air-traffic-control",
+-	"aircraft",
+-	"airline",
+-	"airport",
+-	"airtraffic",
+-	"ambulance",
+-	"amusement",
+-	"association",
+-	"author",
+-	"ballooning",
+-	"broker",
+-	"caa",
+-	"cargo",
+-	"catering",
+-	"certification",
+-	"championship",
+-	"charter",
+-	"civilaviation",
+-	"club",
+-	"conference",
+-	"consultant",
+-	"consulting",
+-	"control",
+-	"council",
+-	"crew",
+-	"design",
+-	"dgca",
+-	"educator",
+-	"emergency",
+-	"engine",
+-	"engineer",
+-	"entertainment",
+-	"equipment",
+-	"exchange",
+-	"express",
+-	"federation",
+-	"flight",
+-	"freight",
+-	"fuel",
+-	"gliding",
+-	"government",
+-	"groundhandling",
+-	"group",
+-	"hanggliding",
+-	"homebuilt",
+-	"insurance",
+-	"journal",
+-	"journalist",
+-	"leasing",
+-	"logistics",
+-	"magazine",
+-	"maintenance",
+-	"marketplace",
+-	"media",
+-	"microlight",
+-	"modelling",
+-	"navigation",
+-	"parachuting",
+-	"paragliding",
+-	"passenger-association",
+-	"pilot",
+-	"press",
+-	"production",
+-	"recreation",
+-	"repbody",
+-	"res",
+-	"research",
+-	"rotorcraft",
+-	"safety",
+-	"scientist",
+-	"services",
+-	"show",
+-	"skydiving",
+-	"software",
+-	"student",
+-	"taxi",
+-	"trader",
+-	"trading",
+-	"trainer",
+-	"union",
+-	"workinggroup",
+-	"works",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"co",
+-	"com",
+-	"net",
+-	"nom",
+-	"org",
+-	"com",
+-	"net",
+-	"off",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"net",
+-	"org",
+-	"co",
+-	"ed",
+-	"gv",
+-	"it",
+-	"og",
+-	"pb",
+-	"com",
+-	"congresodelalengua3",
+-	"educ",
+-	"gobiernoelectronico",
+-	"mecon",
+-	"nacion",
+-	"nic",
+-	"promocion",
+-	"retina",
+-	"uba",
+-	"blogspot",
+-	"e164",
+-	"in-addr",
+-	"ip6",
+-	"iris",
+-	"uri",
+-	"urn",
+-	"gov",
+-	"ac",
+-	"biz",
+-	"co",
+-	"gv",
+-	"info",
+-	"or",
+-	"priv",
+-	"blogspot",
+-	"act",
+-	"asn",
+-	"com",
+-	"conf",
+-	"edu",
+-	"gov",
+-	"id",
+-	"info",
+-	"net",
+-	"nsw",
+-	"nt",
+-	"org",
+-	"oz",
+-	"qld",
+-	"sa",
+-	"tas",
+-	"vic",
+-	"wa",
+-	"blogspot",
+-	"act",
+-	"nsw",
+-	"nt",
+-	"qld",
+-	"sa",
+-	"tas",
+-	"vic",
+-	"wa",
+-	"act",
+-	"nt",
+-	"qld",
+-	"sa",
+-	"tas",
+-	"vic",
+-	"wa",
+-	"com",
+-	"biz",
+-	"com",
+-	"edu",
+-	"gov",
+-	"info",
+-	"int",
+-	"mil",
+-	"name",
+-	"net",
+-	"org",
+-	"pp",
+-	"pro",
+-	"co",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"rs",
+-	"unbi",
+-	"unsa",
+-	"biz",
+-	"com",
+-	"edu",
+-	"gov",
+-	"info",
+-	"net",
+-	"org",
+-	"store",
+-	"ac",
+-	"blogspot",
+-	"gov",
+-	"0",
+-	"1",
+-	"2",
+-	"3",
+-	"4",
+-	"5",
+-	"6",
+-	"7",
+-	"8",
+-	"9",
+-	"a",
+-	"b",
+-	"c",
+-	"d",
+-	"e",
+-	"f",
+-	"g",
+-	"h",
+-	"i",
+-	"j",
+-	"k",
+-	"l",
+-	"m",
+-	"n",
+-	"o",
+-	"p",
+-	"q",
+-	"r",
+-	"s",
+-	"t",
+-	"u",
+-	"v",
+-	"w",
+-	"x",
+-	"y",
+-	"z",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"co",
+-	"com",
+-	"edu",
+-	"or",
+-	"org",
+-	"dyndns",
+-	"for-better",
+-	"for-more",
+-	"for-some",
+-	"for-the",
+-	"selfip",
+-	"webhop",
+-	"asso",
+-	"barreau",
+-	"blogspot",
+-	"gouv",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gob",
+-	"gov",
+-	"int",
+-	"mil",
+-	"net",
+-	"org",
+-	"tv",
+-	"adm",
+-	"adv",
+-	"agr",
+-	"am",
+-	"arq",
+-	"art",
+-	"ato",
+-	"b",
+-	"bio",
+-	"blog",
+-	"bmd",
+-	"cim",
+-	"cng",
+-	"cnt",
+-	"com",
+-	"coop",
+-	"ecn",
+-	"eco",
+-	"edu",
+-	"emp",
+-	"eng",
+-	"esp",
+-	"etc",
+-	"eti",
+-	"far",
+-	"flog",
+-	"fm",
+-	"fnd",
+-	"fot",
+-	"fst",
+-	"g12",
+-	"ggf",
+-	"gov",
+-	"imb",
+-	"ind",
+-	"inf",
+-	"jor",
+-	"jus",
+-	"leg",
+-	"lel",
+-	"mat",
+-	"med",
+-	"mil",
+-	"mus",
+-	"net",
+-	"nom",
+-	"not",
+-	"ntr",
+-	"odo",
+-	"org",
+-	"ppg",
+-	"pro",
+-	"psc",
+-	"psi",
+-	"qsl",
+-	"radio",
+-	"rec",
+-	"slg",
+-	"srv",
+-	"taxi",
+-	"teo",
+-	"tmp",
+-	"trd",
+-	"tur",
+-	"tv",
+-	"vet",
+-	"vlog",
+-	"wiki",
+-	"zlg",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"co",
+-	"org",
+-	"com",
+-	"gov",
+-	"mil",
+-	"of",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"ab",
+-	"bc",
+-	"blogspot",
+-	"co",
+-	"gc",
+-	"mb",
+-	"nb",
+-	"nf",
+-	"nl",
+-	"ns",
+-	"nt",
+-	"nu",
+-	"on",
+-	"pe",
+-	"qc",
+-	"sk",
+-	"yk",
+-	"ftpaccess",
+-	"game-server",
+-	"myphotos",
+-	"scrapping",
+-	"gov",
+-	"blogspot",
+-	"blogspot",
+-	"ac",
+-	"asso",
+-	"co",
+-	"com",
+-	"ed",
+-	"edu",
+-	"go",
+-	"gouv",
+-	"int",
+-	"md",
+-	"net",
+-	"or",
+-	"org",
+-	"presse",
+-	"xn--aroport-bya",
+-	"www",
+-	"co",
+-	"gob",
+-	"gov",
+-	"mil",
+-	"gov",
+-	"ac",
+-	"ah",
+-	"bj",
+-	"com",
+-	"cq",
+-	"edu",
+-	"fj",
+-	"gd",
+-	"gov",
+-	"gs",
+-	"gx",
+-	"gz",
+-	"ha",
+-	"hb",
+-	"he",
+-	"hi",
+-	"hk",
+-	"hl",
+-	"hn",
+-	"jl",
+-	"js",
+-	"jx",
+-	"ln",
+-	"mil",
+-	"mo",
+-	"net",
+-	"nm",
+-	"nx",
+-	"org",
+-	"qh",
+-	"sc",
+-	"sd",
+-	"sh",
+-	"sn",
+-	"sx",
+-	"tj",
+-	"tw",
+-	"xj",
+-	"xn--55qx5d",
+-	"xn--io0a7i",
+-	"xn--od0alg",
+-	"xz",
+-	"yn",
+-	"zj",
+-	"arts",
+-	"com",
+-	"edu",
+-	"firm",
+-	"gov",
+-	"info",
+-	"int",
+-	"mil",
+-	"net",
+-	"nom",
+-	"org",
+-	"rec",
+-	"web",
+-	"amazonaws",
+-	"appspot",
+-	"ar",
+-	"betainabox",
+-	"blogdns",
+-	"blogspot",
+-	"br",
+-	"cechire",
+-	"cn",
+-	"codespot",
+-	"de",
+-	"dnsalias",
+-	"dnsdojo",
+-	"doesntexist",
+-	"dontexist",
+-	"doomdns",
+-	"dreamhosters",
+-	"dyn-o-saur",
+-	"dynalias",
+-	"dyndns-at-home",
+-	"dyndns-at-work",
+-	"dyndns-blog",
+-	"dyndns-free",
+-	"dyndns-home",
+-	"dyndns-ip",
+-	"dyndns-mail",
+-	"dyndns-office",
+-	"dyndns-pics",
+-	"dyndns-remote",
+-	"dyndns-server",
+-	"dyndns-web",
+-	"dyndns-wiki",
+-	"dyndns-work",
+-	"elasticbeanstalk",
+-	"est-a-la-maison",
+-	"est-a-la-masion",
+-	"est-le-patron",
+-	"est-mon-blogueur",
+-	"eu",
+-	"from-ak",
+-	"from-al",
+-	"from-ar",
+-	"from-ca",
+-	"from-ct",
+-	"from-dc",
+-	"from-de",
+-	"from-fl",
+-	"from-ga",
+-	"from-hi",
+-	"from-ia",
+-	"from-id",
+-	"from-il",
+-	"from-in",
+-	"from-ks",
+-	"from-ky",
+-	"from-ma",
+-	"from-md",
+-	"from-mi",
+-	"from-mn",
+-	"from-mo",
+-	"from-ms",
+-	"from-mt",
+-	"from-nc",
+-	"from-nd",
+-	"from-ne",
+-	"from-nh",
+-	"from-nj",
+-	"from-nm",
+-	"from-nv",
+-	"from-oh",
+-	"from-ok",
+-	"from-or",
+-	"from-pa",
+-	"from-pr",
+-	"from-ri",
+-	"from-sc",
+-	"from-sd",
+-	"from-tn",
+-	"from-tx",
+-	"from-ut",
+-	"from-va",
+-	"from-vt",
+-	"from-wa",
+-	"from-wi",
+-	"from-wv",
+-	"from-wy",
+-	"gb",
+-	"getmyip",
+-	"googleapis",
+-	"googlecode",
+-	"gotdns",
+-	"gr",
+-	"hobby-site",
+-	"homelinux",
+-	"homeunix",
+-	"hu",
+-	"iamallama",
+-	"is-a-anarchist",
+-	"is-a-blogger",
+-	"is-a-bookkeeper",
+-	"is-a-bulls-fan",
+-	"is-a-caterer",
+-	"is-a-chef",
+-	"is-a-conservative",
+-	"is-a-cpa",
+-	"is-a-cubicle-slave",
+-	"is-a-democrat",
+-	"is-a-designer",
+-	"is-a-doctor",
+-	"is-a-financialadvisor",
+-	"is-a-geek",
+-	"is-a-green",
+-	"is-a-guru",
+-	"is-a-hard-worker",
+-	"is-a-hunter",
+-	"is-a-landscaper",
+-	"is-a-lawyer",
+-	"is-a-liberal",
+-	"is-a-libertarian",
+-	"is-a-llama",
+-	"is-a-musician",
+-	"is-a-nascarfan",
+-	"is-a-nurse",
+-	"is-a-painter",
+-	"is-a-personaltrainer",
+-	"is-a-photographer",
+-	"is-a-player",
+-	"is-a-republican",
+-	"is-a-rockstar",
+-	"is-a-socialist",
+-	"is-a-student",
+-	"is-a-teacher",
+-	"is-a-techie",
+-	"is-a-therapist",
+-	"is-an-accountant",
+-	"is-an-actor",
+-	"is-an-actress",
+-	"is-an-anarchist",
+-	"is-an-artist",
+-	"is-an-engineer",
+-	"is-an-entertainer",
+-	"is-certified",
+-	"is-gone",
+-	"is-into-anime",
+-	"is-into-cars",
+-	"is-into-cartoons",
+-	"is-into-games",
+-	"is-leet",
+-	"is-not-certified",
+-	"is-slick",
+-	"is-uberleet",
+-	"is-with-theband",
+-	"isa-geek",
+-	"isa-hockeynut",
+-	"issmarterthanyou",
+-	"jpn",
+-	"kr",
+-	"likes-pie",
+-	"likescandy",
+-	"neat-url",
+-	"no",
+-	"operaunite",
+-	"qc",
+-	"rhcloud",
+-	"ru",
+-	"sa",
+-	"saves-the-whales",
+-	"se",
+-	"selfip",
+-	"sells-for-less",
+-	"sells-for-u",
+-	"servebbs",
+-	"simple-url",
+-	"space-to-rent",
+-	"teaches-yoga",
+-	"uk",
+-	"us",
+-	"uy",
+-	"writesthisblog",
+-	"za",
+-	"elb",
+-	"s3",
+-	"s3-ap-northeast-1",
+-	"s3-ap-southeast-1",
+-	"s3-ap-southeast-2",
+-	"s3-eu-west-1",
+-	"s3-fips-us-gov-west-1",
+-	"s3-sa-east-1",
+-	"s3-us-gov-west-1",
+-	"s3-us-west-1",
+-	"s3-us-west-2",
+-	"s3-website-ap-northeast-1",
+-	"s3-website-ap-southeast-1",
+-	"s3-website-ap-southeast-2",
+-	"s3-website-eu-west-1",
+-	"s3-website-sa-east-1",
+-	"s3-website-us-east-1",
+-	"s3-website-us-gov-west-1",
+-	"s3-website-us-west-1",
+-	"s3-website-us-west-2",
+-	"ac",
+-	"co",
+-	"ed",
+-	"fi",
+-	"go",
+-	"or",
+-	"sa",
+-	"com",
+-	"edu",
+-	"gov",
+-	"inf",
+-	"net",
+-	"org",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"net",
+-	"org",
+-	"ath",
+-	"gov",
+-	"blogspot",
+-	"blogspot",
+-	"com",
+-	"fuettertdasnetz",
+-	"isteingeek",
+-	"istmein",
+-	"lebtimnetz",
+-	"leitungsen",
+-	"traeumtgerade",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"art",
+-	"com",
+-	"edu",
+-	"gob",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"sld",
+-	"web",
+-	"art",
+-	"asso",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"pol",
+-	"com",
+-	"edu",
+-	"fin",
+-	"gob",
+-	"gov",
+-	"info",
+-	"k12",
+-	"med",
+-	"mil",
+-	"net",
+-	"org",
+-	"pro",
+-	"aip",
+-	"com",
+-	"edu",
+-	"fie",
+-	"gov",
+-	"lib",
+-	"med",
+-	"org",
+-	"pri",
+-	"riik",
+-	"com",
+-	"edu",
+-	"eun",
+-	"gov",
+-	"mil",
+-	"name",
+-	"net",
+-	"org",
+-	"sci",
+-	"com",
+-	"edu",
+-	"gob",
+-	"nom",
+-	"org",
+-	"blogspot",
+-	"aland",
+-	"blogspot",
+-	"iki",
+-	"aeroport",
+-	"assedic",
+-	"asso",
+-	"avocat",
+-	"avoues",
+-	"blogspot",
+-	"cci",
+-	"chambagri",
+-	"chirurgiens-dentistes",
+-	"com",
+-	"experts-comptables",
+-	"geometre-expert",
+-	"gouv",
+-	"greta",
+-	"huissier-justice",
+-	"medecin",
+-	"nom",
+-	"notaires",
+-	"pharmacien",
+-	"port",
+-	"prd",
+-	"presse",
+-	"tm",
+-	"veterinaire",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"pvt",
+-	"co",
+-	"gov",
+-	"net",
+-	"org",
+-	"sch",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"ltd",
+-	"mod",
+-	"org",
+-	"ac",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"asso",
+-	"com",
+-	"edu",
+-	"mobi",
+-	"net",
+-	"org",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gob",
+-	"ind",
+-	"mil",
+-	"net",
+-	"org",
+-	"co",
+-	"com",
+-	"net",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gov",
+-	"idv",
+-	"net",
+-	"org",
+-	"xn--55qx5d",
+-	"xn--ciqpn",
+-	"xn--gmq050i",
+-	"xn--gmqw5a",
+-	"xn--io0a7i",
+-	"xn--lcvr32d",
+-	"xn--mk0axi",
+-	"xn--mxtq1m",
+-	"xn--od0alg",
+-	"xn--od0aq3b",
+-	"xn--tn0ag",
+-	"xn--uc0atv",
+-	"xn--uc0ay4a",
+-	"xn--wcvs22d",
+-	"xn--zf0avx",
+-	"com",
+-	"edu",
+-	"gob",
+-	"mil",
+-	"net",
+-	"org",
+-	"com",
+-	"from",
+-	"iz",
+-	"name",
+-	"adult",
+-	"art",
+-	"asso",
+-	"com",
+-	"coop",
+-	"edu",
+-	"firm",
+-	"gouv",
+-	"info",
+-	"med",
+-	"net",
+-	"org",
+-	"perso",
+-	"pol",
+-	"pro",
+-	"rel",
+-	"shop",
+-	"2000",
+-	"agrar",
+-	"blogspot",
+-	"bolt",
+-	"casino",
+-	"city",
+-	"co",
+-	"erotica",
+-	"erotika",
+-	"film",
+-	"forum",
+-	"games",
+-	"hotel",
+-	"info",
+-	"ingatlan",
+-	"jogasz",
+-	"konyvelo",
+-	"lakas",
+-	"media",
+-	"news",
+-	"org",
+-	"priv",
+-	"reklam",
+-	"sex",
+-	"shop",
+-	"sport",
+-	"suli",
+-	"szex",
+-	"tm",
+-	"tozsde",
+-	"utazas",
+-	"video",
+-	"ac",
+-	"biz",
+-	"co",
+-	"go",
+-	"mil",
+-	"my",
+-	"net",
+-	"or",
+-	"sch",
+-	"web",
+-	"blogspot",
+-	"gov",
+-	"co",
+-	"blogspot",
+-	"ac",
+-	"co",
+-	"gov",
+-	"net",
+-	"nic",
+-	"org",
+-	"ltd",
+-	"plc",
+-	"ac",
+-	"blogspot",
+-	"co",
+-	"edu",
+-	"firm",
+-	"gen",
+-	"gov",
+-	"ind",
+-	"mil",
+-	"net",
+-	"nic",
+-	"org",
+-	"res",
+-	"barrel-of-knowledge",
+-	"barrell-of-knowledge",
+-	"dyndns",
+-	"for-our",
+-	"groks-the",
+-	"groks-this",
+-	"here-for-more",
+-	"knowsitall",
+-	"selfip",
+-	"webhop",
+-	"eu",
+-	"com",
+-	"github",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"ac",
+-	"co",
+-	"gov",
+-	"id",
+-	"net",
+-	"org",
+-	"sch",
+-	"xn--mgba3a4f16a",
+-	"xn--mgba3a4fra",
+-	"com",
+-	"edu",
+-	"gov",
+-	"int",
+-	"net",
+-	"org",
+-	"ag",
+-	"agrigento",
+-	"al",
+-	"alessandria",
+-	"alto-adige",
+-	"altoadige",
+-	"an",
+-	"ancona",
+-	"andria-barletta-trani",
+-	"andria-trani-barletta",
+-	"andriabarlettatrani",
+-	"andriatranibarletta",
+-	"ao",
+-	"aosta",
+-	"aoste",
+-	"ap",
+-	"aq",
+-	"aquila",
+-	"ar",
+-	"arezzo",
+-	"ascoli-piceno",
+-	"ascolipiceno",
+-	"asti",
+-	"at",
+-	"av",
+-	"avellino",
+-	"ba",
+-	"balsan",
+-	"bari",
+-	"barletta-trani-andria",
+-	"barlettatraniandria",
+-	"belluno",
+-	"benevento",
+-	"bergamo",
+-	"bg",
+-	"bi",
+-	"biella",
+-	"bl",
+-	"blogspot",
+-	"bn",
+-	"bo",
+-	"bologna",
+-	"bolzano",
+-	"bozen",
+-	"br",
+-	"brescia",
+-	"brindisi",
+-	"bs",
+-	"bt",
+-	"bz",
+-	"ca",
+-	"cagliari",
+-	"caltanissetta",
+-	"campidano-medio",
+-	"campidanomedio",
+-	"campobasso",
+-	"carbonia-iglesias",
+-	"carboniaiglesias",
+-	"carrara-massa",
+-	"carraramassa",
+-	"caserta",
+-	"catania",
+-	"catanzaro",
+-	"cb",
+-	"ce",
+-	"cesena-forli",
+-	"cesenaforli",
+-	"ch",
+-	"chieti",
+-	"ci",
+-	"cl",
+-	"cn",
+-	"co",
+-	"como",
+-	"cosenza",
+-	"cr",
+-	"cremona",
+-	"crotone",
+-	"cs",
+-	"ct",
+-	"cuneo",
+-	"cz",
+-	"dell-ogliastra",
+-	"dellogliastra",
+-	"edu",
+-	"en",
+-	"enna",
+-	"fc",
+-	"fe",
+-	"fermo",
+-	"ferrara",
+-	"fg",
+-	"fi",
+-	"firenze",
+-	"florence",
+-	"fm",
+-	"foggia",
+-	"forli-cesena",
+-	"forlicesena",
+-	"fr",
+-	"frosinone",
+-	"ge",
+-	"genoa",
+-	"genova",
+-	"go",
+-	"gorizia",
+-	"gov",
+-	"gr",
+-	"grosseto",
+-	"iglesias-carbonia",
+-	"iglesiascarbonia",
+-	"im",
+-	"imperia",
+-	"is",
+-	"isernia",
+-	"kr",
+-	"la-spezia",
+-	"laquila",
+-	"laspezia",
+-	"latina",
+-	"lc",
+-	"le",
+-	"lecce",
+-	"lecco",
+-	"li",
+-	"livorno",
+-	"lo",
+-	"lodi",
+-	"lt",
+-	"lu",
+-	"lucca",
+-	"macerata",
+-	"mantova",
+-	"massa-carrara",
+-	"massacarrara",
+-	"matera",
+-	"mb",
+-	"mc",
+-	"me",
+-	"medio-campidano",
+-	"mediocampidano",
+-	"messina",
+-	"mi",
+-	"milan",
+-	"milano",
+-	"mn",
+-	"mo",
+-	"modena",
+-	"monza",
+-	"monza-brianza",
+-	"monza-e-della-brianza",
+-	"monzabrianza",
+-	"monzaebrianza",
+-	"monzaedellabrianza",
+-	"ms",
+-	"mt",
+-	"na",
+-	"naples",
+-	"napoli",
+-	"no",
+-	"novara",
+-	"nu",
+-	"nuoro",
+-	"og",
+-	"ogliastra",
+-	"olbia-tempio",
+-	"olbiatempio",
+-	"or",
+-	"oristano",
+-	"ot",
+-	"pa",
+-	"padova",
+-	"padua",
+-	"palermo",
+-	"parma",
+-	"pavia",
+-	"pc",
+-	"pd",
+-	"pe",
+-	"perugia",
+-	"pesaro-urbino",
+-	"pesarourbino",
+-	"pescara",
+-	"pg",
+-	"pi",
+-	"piacenza",
+-	"pisa",
+-	"pistoia",
+-	"pn",
+-	"po",
+-	"pordenone",
+-	"potenza",
+-	"pr",
+-	"prato",
+-	"pt",
+-	"pu",
+-	"pv",
+-	"pz",
+-	"ra",
+-	"ragusa",
+-	"ravenna",
+-	"rc",
+-	"re",
+-	"reggio-calabria",
+-	"reggio-emilia",
+-	"reggiocalabria",
+-	"reggioemilia",
+-	"rg",
+-	"ri",
+-	"rieti",
+-	"rimini",
+-	"rm",
+-	"rn",
+-	"ro",
+-	"roma",
+-	"rome",
+-	"rovigo",
+-	"sa",
+-	"salerno",
+-	"sassari",
+-	"savona",
+-	"si",
+-	"siena",
+-	"siracusa",
+-	"so",
+-	"sondrio",
+-	"sp",
+-	"sr",
+-	"ss",
+-	"suedtirol",
+-	"sv",
+-	"ta",
+-	"taranto",
+-	"te",
+-	"tempio-olbia",
+-	"tempioolbia",
+-	"teramo",
+-	"terni",
+-	"tn",
+-	"to",
+-	"torino",
+-	"tp",
+-	"tr",
+-	"trani-andria-barletta",
+-	"trani-barletta-andria",
+-	"traniandriabarletta",
+-	"tranibarlettaandria",
+-	"trapani",
+-	"trentino",
+-	"trento",
+-	"treviso",
+-	"trieste",
+-	"ts",
+-	"turin",
+-	"tv",
+-	"ud",
+-	"udine",
+-	"urbino-pesaro",
+-	"urbinopesaro",
+-	"va",
+-	"varese",
+-	"vb",
+-	"vc",
+-	"ve",
+-	"venezia",
+-	"venice",
+-	"verbania",
+-	"vercelli",
+-	"verona",
+-	"vi",
+-	"vibo-valentia",
+-	"vibovalentia",
+-	"vicenza",
+-	"viterbo",
+-	"vr",
+-	"vs",
+-	"vt",
+-	"vv",
+-	"co",
+-	"gov",
+-	"net",
+-	"org",
+-	"sch",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"name",
+-	"net",
+-	"org",
+-	"sch",
+-	"ac",
+-	"ad",
+-	"aichi",
+-	"akita",
+-	"aomori",
+-	"blogspot",
+-	"chiba",
+-	"co",
+-	"ed",
+-	"ehime",
+-	"fukui",
+-	"fukuoka",
+-	"fukushima",
+-	"gifu",
+-	"go",
+-	"gr",
+-	"gunma",
+-	"hiroshima",
+-	"hokkaido",
+-	"hyogo",
+-	"ibaraki",
+-	"ishikawa",
+-	"iwate",
+-	"kagawa",
+-	"kagoshima",
+-	"kanagawa",
+-	"kawasaki",
+-	"kitakyushu",
+-	"kobe",
+-	"kochi",
+-	"kumamoto",
+-	"kyoto",
+-	"lg",
+-	"mie",
+-	"miyagi",
+-	"miyazaki",
+-	"nagano",
+-	"nagasaki",
+-	"nagoya",
+-	"nara",
+-	"ne",
+-	"niigata",
+-	"oita",
+-	"okayama",
+-	"okinawa",
+-	"or",
+-	"osaka",
+-	"saga",
+-	"saitama",
+-	"sapporo",
+-	"sendai",
+-	"shiga",
+-	"shimane",
+-	"shizuoka",
+-	"tochigi",
+-	"tokushima",
+-	"tokyo",
+-	"tottori",
+-	"toyama",
+-	"wakayama",
+-	"yamagata",
+-	"yamaguchi",
+-	"yamanashi",
+-	"yokohama",
+-	"aisai",
+-	"ama",
+-	"anjo",
+-	"asuke",
+-	"chiryu",
+-	"chita",
+-	"fuso",
+-	"gamagori",
+-	"handa",
+-	"hazu",
+-	"hekinan",
+-	"higashiura",
+-	"ichinomiya",
+-	"inazawa",
+-	"inuyama",
+-	"isshiki",
+-	"iwakura",
+-	"kanie",
+-	"kariya",
+-	"kasugai",
+-	"kira",
+-	"kiyosu",
+-	"komaki",
+-	"konan",
+-	"kota",
+-	"mihama",
+-	"miyoshi",
+-	"nagakute",
+-	"nishio",
+-	"nisshin",
+-	"obu",
+-	"oguchi",
+-	"oharu",
+-	"okazaki",
+-	"owariasahi",
+-	"seto",
+-	"shikatsu",
+-	"shinshiro",
+-	"shitara",
+-	"tahara",
+-	"takahama",
+-	"tobishima",
+-	"toei",
+-	"togo",
+-	"tokai",
+-	"tokoname",
+-	"toyoake",
+-	"toyohashi",
+-	"toyokawa",
+-	"toyone",
+-	"toyota",
+-	"tsushima",
+-	"yatomi",
+-	"akita",
+-	"daisen",
+-	"fujisato",
+-	"gojome",
+-	"hachirogata",
+-	"happou",
+-	"higashinaruse",
+-	"honjo",
+-	"honjyo",
+-	"ikawa",
+-	"kamikoani",
+-	"kamioka",
+-	"katagami",
+-	"kazuno",
+-	"kitaakita",
+-	"kosaka",
+-	"kyowa",
+-	"misato",
+-	"mitane",
+-	"moriyoshi",
+-	"nikaho",
+-	"noshiro",
+-	"odate",
+-	"oga",
+-	"ogata",
+-	"semboku",
+-	"yokote",
+-	"yurihonjo",
+-	"aomori",
+-	"gonohe",
+-	"hachinohe",
+-	"hashikami",
+-	"hiranai",
+-	"hirosaki",
+-	"itayanagi",
+-	"kuroishi",
+-	"misawa",
+-	"mutsu",
+-	"nakadomari",
+-	"noheji",
+-	"oirase",
+-	"owani",
+-	"rokunohe",
+-	"sannohe",
+-	"shichinohe",
+-	"shingo",
+-	"takko",
+-	"towada",
+-	"tsugaru",
+-	"tsuruta",
+-	"abiko",
+-	"asahi",
+-	"chonan",
+-	"chosei",
+-	"choshi",
+-	"chuo",
+-	"funabashi",
+-	"futtsu",
+-	"hanamigawa",
+-	"ichihara",
+-	"ichikawa",
+-	"ichinomiya",
+-	"inzai",
+-	"isumi",
+-	"kamagaya",
+-	"kamogawa",
+-	"kashiwa",
+-	"katori",
+-	"katsuura",
+-	"kimitsu",
+-	"kisarazu",
+-	"kozaki",
+-	"kujukuri",
+-	"kyonan",
+-	"matsudo",
+-	"midori",
+-	"mihama",
+-	"minamiboso",
+-	"mobara",
+-	"mutsuzawa",
+-	"nagara",
+-	"nagareyama",
+-	"narashino",
+-	"narita",
+-	"noda",
+-	"oamishirasato",
+-	"omigawa",
+-	"onjuku",
+-	"otaki",
+-	"sakae",
+-	"sakura",
+-	"shimofusa",
+-	"shirako",
+-	"shiroi",
+-	"shisui",
+-	"sodegaura",
+-	"sosa",
+-	"tako",
+-	"tateyama",
+-	"togane",
+-	"tohnosho",
+-	"tomisato",
+-	"urayasu",
+-	"yachimata",
+-	"yachiyo",
+-	"yokaichiba",
+-	"yokoshibahikari",
+-	"yotsukaido",
+-	"ainan",
+-	"honai",
+-	"ikata",
+-	"imabari",
+-	"iyo",
+-	"kamijima",
+-	"kihoku",
+-	"kumakogen",
+-	"masaki",
+-	"matsuno",
+-	"matsuyama",
+-	"namikata",
+-	"niihama",
+-	"ozu",
+-	"saijo",
+-	"seiyo",
+-	"shikokuchuo",
+-	"tobe",
+-	"toon",
+-	"uchiko",
+-	"uwajima",
+-	"yawatahama",
+-	"echizen",
+-	"eiheiji",
+-	"fukui",
+-	"ikeda",
+-	"katsuyama",
+-	"mihama",
+-	"minamiechizen",
+-	"obama",
+-	"ohi",
+-	"ono",
+-	"sabae",
+-	"sakai",
+-	"takahama",
+-	"tsuruga",
+-	"wakasa",
+-	"ashiya",
+-	"buzen",
+-	"chikugo",
+-	"chikuho",
+-	"chikujo",
+-	"chikushino",
+-	"chikuzen",
+-	"chuo",
+-	"dazaifu",
+-	"fukuchi",
+-	"hakata",
+-	"higashi",
+-	"hirokawa",
+-	"hisayama",
+-	"iizuka",
+-	"inatsuki",
+-	"kaho",
+-	"kasuga",
+-	"kasuya",
+-	"kawara",
+-	"keisen",
+-	"koga",
+-	"kurate",
+-	"kurogi",
+-	"kurume",
+-	"minami",
+-	"miyako",
+-	"miyama",
+-	"miyawaka",
+-	"mizumaki",
+-	"munakata",
+-	"nakagawa",
+-	"nakama",
+-	"nishi",
+-	"nogata",
+-	"ogori",
+-	"okagaki",
+-	"okawa",
+-	"oki",
+-	"omuta",
+-	"onga",
+-	"onojo",
+-	"oto",
+-	"saigawa",
+-	"sasaguri",
+-	"shingu",
+-	"shinyoshitomi",
+-	"shonai",
+-	"soeda",
+-	"sue",
+-	"tachiarai",
+-	"tagawa",
+-	"takata",
+-	"toho",
+-	"toyotsu",
+-	"tsuiki",
+-	"ukiha",
+-	"umi",
+-	"usui",
+-	"yamada",
+-	"yame",
+-	"yanagawa",
+-	"yukuhashi",
+-	"aizubange",
+-	"aizumisato",
+-	"aizuwakamatsu",
+-	"asakawa",
+-	"bandai",
+-	"date",
+-	"fukushima",
+-	"furudono",
+-	"futaba",
+-	"hanawa",
+-	"higashi",
+-	"hirata",
+-	"hirono",
+-	"iitate",
+-	"inawashiro",
+-	"ishikawa",
+-	"iwaki",
+-	"izumizaki",
+-	"kagamiishi",
+-	"kaneyama",
+-	"kawamata",
+-	"kitakata",
+-	"kitashiobara",
+-	"koori",
+-	"koriyama",
+-	"kunimi",
+-	"miharu",
+-	"mishima",
+-	"namie",
+-	"nango",
+-	"nishiaizu",
+-	"nishigo",
+-	"okuma",
+-	"omotego",
+-	"ono",
+-	"otama",
+-	"samegawa",
+-	"shimogo",
+-	"shirakawa",
+-	"showa",
+-	"soma",
+-	"sukagawa",
+-	"taishin",
+-	"tamakawa",
+-	"tanagura",
+-	"tenei",
+-	"yabuki",
+-	"yamato",
+-	"yamatsuri",
+-	"yanaizu",
+-	"yugawa",
+-	"anpachi",
+-	"ena",
+-	"gifu",
+-	"ginan",
+-	"godo",
+-	"gujo",
+-	"hashima",
+-	"hichiso",
+-	"hida",
+-	"higashishirakawa",
+-	"ibigawa",
+-	"ikeda",
+-	"kakamigahara",
+-	"kani",
+-	"kasahara",
+-	"kasamatsu",
+-	"kawaue",
+-	"kitagata",
+-	"mino",
+-	"minokamo",
+-	"mitake",
+-	"mizunami",
+-	"motosu",
+-	"nakatsugawa",
+-	"ogaki",
+-	"sakahogi",
+-	"seki",
+-	"sekigahara",
+-	"shirakawa",
+-	"tajimi",
+-	"takayama",
+-	"tarui",
+-	"toki",
+-	"tomika",
+-	"wanouchi",
+-	"yamagata",
+-	"yaotsu",
+-	"yoro",
+-	"annaka",
+-	"chiyoda",
+-	"fujioka",
+-	"higashiagatsuma",
+-	"isesaki",
+-	"itakura",
+-	"kanna",
+-	"kanra",
+-	"katashina",
+-	"kawaba",
+-	"kiryu",
+-	"kusatsu",
+-	"maebashi",
+-	"meiwa",
+-	"midori",
+-	"minakami",
+-	"naganohara",
+-	"nakanojo",
+-	"nanmoku",
+-	"numata",
+-	"oizumi",
+-	"ora",
+-	"ota",
+-	"shibukawa",
+-	"shimonita",
+-	"shinto",
+-	"showa",
+-	"takasaki",
+-	"takayama",
+-	"tamamura",
+-	"tatebayashi",
+-	"tomioka",
+-	"tsukiyono",
+-	"tsumagoi",
+-	"ueno",
+-	"yoshioka",
+-	"asaminami",
+-	"daiwa",
+-	"etajima",
+-	"fuchu",
+-	"fukuyama",
+-	"hatsukaichi",
+-	"higashihiroshima",
+-	"hongo",
+-	"jinsekikogen",
+-	"kaita",
+-	"kui",
+-	"kumano",
+-	"kure",
+-	"mihara",
+-	"miyoshi",
+-	"naka",
+-	"onomichi",
+-	"osakikamijima",
+-	"otake",
+-	"saka",
+-	"sera",
+-	"seranishi",
+-	"shinichi",
+-	"shobara",
+-	"takehara",
+-	"abashiri",
+-	"abira",
+-	"aibetsu",
+-	"akabira",
+-	"akkeshi",
+-	"asahikawa",
+-	"ashibetsu",
+-	"ashoro",
+-	"assabu",
+-	"atsuma",
+-	"bibai",
+-	"biei",
+-	"bifuka",
+-	"bihoro",
+-	"biratori",
+-	"chippubetsu",
+-	"chitose",
+-	"date",
+-	"ebetsu",
+-	"embetsu",
+-	"eniwa",
+-	"erimo",
+-	"esan",
+-	"esashi",
+-	"fukagawa",
+-	"fukushima",
+-	"furano",
+-	"furubira",
+-	"haboro",
+-	"hakodate",
+-	"hamatonbetsu",
+-	"hidaka",
+-	"higashikagura",
+-	"higashikawa",
+-	"hiroo",
+-	"hokuryu",
+-	"hokuto",
+-	"honbetsu",
+-	"horokanai",
+-	"horonobe",
+-	"ikeda",
+-	"imakane",
+-	"ishikari",
+-	"iwamizawa",
+-	"iwanai",
+-	"kamifurano",
+-	"kamikawa",
+-	"kamishihoro",
+-	"kamisunagawa",
+-	"kamoenai",
+-	"kayabe",
+-	"kembuchi",
+-	"kikonai",
+-	"kimobetsu",
+-	"kitahiroshima",
+-	"kitami",
+-	"kiyosato",
+-	"koshimizu",
+-	"kunneppu",
+-	"kuriyama",
+-	"kuromatsunai",
+-	"kushiro",
+-	"kutchan",
+-	"kyowa",
+-	"mashike",
+-	"matsumae",
+-	"mikasa",
+-	"minamifurano",
+-	"mombetsu",
+-	"moseushi",
+-	"mukawa",
+-	"muroran",
+-	"naie",
+-	"nakagawa",
+-	"nakasatsunai",
+-	"nakatombetsu",
+-	"nanae",
+-	"nanporo",
+-	"nayoro",
+-	"nemuro",
+-	"niikappu",
+-	"niki",
+-	"nishiokoppe",
+-	"noboribetsu",
+-	"numata",
+-	"obihiro",
+-	"obira",
+-	"oketo",
+-	"okoppe",
+-	"otaru",
+-	"otobe",
+-	"otofuke",
+-	"otoineppu",
+-	"oumu",
+-	"ozora",
+-	"pippu",
+-	"rankoshi",
+-	"rebun",
+-	"rikubetsu",
+-	"rishiri",
+-	"rishirifuji",
+-	"saroma",
+-	"sarufutsu",
+-	"shakotan",
+-	"shari",
+-	"shibecha",
+-	"shibetsu",
+-	"shikabe",
+-	"shikaoi",
+-	"shimamaki",
+-	"shimizu",
+-	"shimokawa",
+-	"shinshinotsu",
+-	"shintoku",
+-	"shiranuka",
+-	"shiraoi",
+-	"shiriuchi",
+-	"sobetsu",
+-	"sunagawa",
+-	"taiki",
+-	"takasu",
+-	"takikawa",
+-	"takinoue",
+-	"teshikaga",
+-	"tobetsu",
+-	"tohma",
+-	"tomakomai",
+-	"tomari",
+-	"toya",
+-	"toyako",
+-	"toyotomi",
+-	"toyoura",
+-	"tsubetsu",
+-	"tsukigata",
+-	"urakawa",
+-	"urausu",
+-	"uryu",
+-	"utashinai",
+-	"wakkanai",
+-	"wassamu",
+-	"yakumo",
+-	"yoichi",
+-	"aioi",
+-	"akashi",
+-	"ako",
+-	"amagasaki",
+-	"aogaki",
+-	"asago",
+-	"ashiya",
+-	"awaji",
+-	"fukusaki",
+-	"goshiki",
+-	"harima",
+-	"himeji",
+-	"ichikawa",
+-	"inagawa",
+-	"itami",
+-	"kakogawa",
+-	"kamigori",
+-	"kamikawa",
+-	"kasai",
+-	"kasuga",
+-	"kawanishi",
+-	"miki",
+-	"minamiawaji",
+-	"nishinomiya",
+-	"nishiwaki",
+-	"ono",
+-	"sanda",
+-	"sannan",
+-	"sasayama",
+-	"sayo",
+-	"shingu",
+-	"shinonsen",
+-	"shiso",
+-	"sumoto",
+-	"taishi",
+-	"taka",
+-	"takarazuka",
+-	"takasago",
+-	"takino",
+-	"tamba",
+-	"tatsuno",
+-	"toyooka",
+-	"yabu",
+-	"yashiro",
+-	"yoka",
+-	"yokawa",
+-	"ami",
+-	"asahi",
+-	"bando",
+-	"chikusei",
+-	"daigo",
+-	"fujishiro",
+-	"hitachi",
+-	"hitachinaka",
+-	"hitachiomiya",
+-	"hitachiota",
+-	"ibaraki",
+-	"ina",
+-	"inashiki",
+-	"itako",
+-	"iwama",
+-	"joso",
+-	"kamisu",
+-	"kasama",
+-	"kashima",
+-	"kasumigaura",
+-	"koga",
+-	"miho",
+-	"mito",
+-	"moriya",
+-	"naka",
+-	"namegata",
+-	"oarai",
+-	"ogawa",
+-	"omitama",
+-	"ryugasaki",
+-	"sakai",
+-	"sakuragawa",
+-	"shimodate",
+-	"shimotsuma",
+-	"shirosato",
+-	"sowa",
+-	"suifu",
+-	"takahagi",
+-	"tamatsukuri",
+-	"tokai",
+-	"tomobe",
+-	"tone",
+-	"toride",
+-	"tsuchiura",
+-	"tsukuba",
+-	"uchihara",
+-	"ushiku",
+-	"yachiyo",
+-	"yamagata",
+-	"yawara",
+-	"yuki",
+-	"anamizu",
+-	"hakui",
+-	"hakusan",
+-	"kaga",
+-	"kahoku",
+-	"kanazawa",
+-	"kawakita",
+-	"komatsu",
+-	"nakanoto",
+-	"nanao",
+-	"nomi",
+-	"nonoichi",
+-	"noto",
+-	"shika",
+-	"suzu",
+-	"tsubata",
+-	"tsurugi",
+-	"uchinada",
+-	"wajima",
+-	"fudai",
+-	"fujisawa",
+-	"hanamaki",
+-	"hiraizumi",
+-	"hirono",
+-	"ichinohe",
+-	"ichinoseki",
+-	"iwaizumi",
+-	"iwate",
+-	"joboji",
+-	"kamaishi",
+-	"kanegasaki",
+-	"karumai",
+-	"kawai",
+-	"kitakami",
+-	"kuji",
+-	"kunohe",
+-	"kuzumaki",
+-	"miyako",
+-	"mizusawa",
+-	"morioka",
+-	"ninohe",
+-	"noda",
+-	"ofunato",
+-	"oshu",
+-	"otsuchi",
+-	"rikuzentakata",
+-	"shiwa",
+-	"shizukuishi",
+-	"sumita",
+-	"takizawa",
+-	"tanohata",
+-	"tono",
+-	"yahaba",
+-	"yamada",
+-	"ayagawa",
+-	"higashikagawa",
+-	"kanonji",
+-	"kotohira",
+-	"manno",
+-	"marugame",
+-	"mitoyo",
+-	"naoshima",
+-	"sanuki",
+-	"tadotsu",
+-	"takamatsu",
+-	"tonosho",
+-	"uchinomi",
+-	"utazu",
+-	"zentsuji",
+-	"akune",
+-	"amami",
+-	"hioki",
+-	"isa",
+-	"isen",
+-	"izumi",
+-	"kagoshima",
+-	"kanoya",
+-	"kawanabe",
+-	"kinko",
+-	"kouyama",
+-	"makurazaki",
+-	"matsumoto",
+-	"minamitane",
+-	"nakatane",
+-	"nishinoomote",
+-	"satsumasendai",
+-	"soo",
+-	"tarumizu",
+-	"yusui",
+-	"aikawa",
+-	"atsugi",
+-	"ayase",
+-	"chigasaki",
+-	"ebina",
+-	"fujisawa",
+-	"hadano",
+-	"hakone",
+-	"hiratsuka",
+-	"isehara",
+-	"kaisei",
+-	"kamakura",
+-	"kiyokawa",
+-	"matsuda",
+-	"minamiashigara",
+-	"miura",
+-	"nakai",
+-	"ninomiya",
+-	"odawara",
+-	"oi",
+-	"oiso",
+-	"sagamihara",
+-	"samukawa",
+-	"tsukui",
+-	"yamakita",
+-	"yamato",
+-	"yokosuka",
+-	"yugawara",
+-	"zama",
+-	"zushi",
+-	"city",
+-	"city",
+-	"city",
+-	"aki",
+-	"geisei",
+-	"hidaka",
+-	"higashitsuno",
+-	"ino",
+-	"kagami",
+-	"kami",
+-	"kitagawa",
+-	"kochi",
+-	"mihara",
+-	"motoyama",
+-	"muroto",
+-	"nahari",
+-	"nakamura",
+-	"nankoku",
+-	"nishitosa",
+-	"niyodogawa",
+-	"ochi",
+-	"okawa",
+-	"otoyo",
+-	"otsuki",
+-	"sakawa",
+-	"sukumo",
+-	"susaki",
+-	"tosa",
+-	"tosashimizu",
+-	"toyo",
+-	"tsuno",
+-	"umaji",
+-	"yasuda",
+-	"yusuhara",
+-	"amakusa",
+-	"arao",
+-	"aso",
+-	"choyo",
+-	"gyokuto",
+-	"hitoyoshi",
+-	"kamiamakusa",
+-	"kashima",
+-	"kikuchi",
+-	"kosa",
+-	"kumamoto",
+-	"mashiki",
+-	"mifune",
+-	"minamata",
+-	"minamioguni",
+-	"nagasu",
+-	"nishihara",
+-	"oguni",
+-	"ozu",
+-	"sumoto",
+-	"takamori",
+-	"uki",
+-	"uto",
+-	"yamaga",
+-	"yamato",
+-	"yatsushiro",
+-	"ayabe",
+-	"fukuchiyama",
+-	"higashiyama",
+-	"ide",
+-	"ine",
+-	"joyo",
+-	"kameoka",
+-	"kamo",
+-	"kita",
+-	"kizu",
+-	"kumiyama",
+-	"kyotamba",
+-	"kyotanabe",
+-	"kyotango",
+-	"maizuru",
+-	"minami",
+-	"minamiyamashiro",
+-	"miyazu",
+-	"muko",
+-	"nagaokakyo",
+-	"nakagyo",
+-	"nantan",
+-	"oyamazaki",
+-	"sakyo",
+-	"seika",
+-	"tanabe",
+-	"uji",
+-	"ujitawara",
+-	"wazuka",
+-	"yamashina",
+-	"yawata",
+-	"asahi",
+-	"inabe",
+-	"ise",
+-	"kameyama",
+-	"kawagoe",
+-	"kiho",
+-	"kisosaki",
+-	"kiwa",
+-	"komono",
+-	"kumano",
+-	"kuwana",
+-	"matsusaka",
+-	"meiwa",
+-	"mihama",
+-	"minamiise",
+-	"misugi",
+-	"miyama",
+-	"nabari",
+-	"shima",
+-	"suzuka",
+-	"tado",
+-	"taiki",
+-	"taki",
+-	"tamaki",
+-	"toba",
+-	"tsu",
+-	"udono",
+-	"ureshino",
+-	"watarai",
+-	"yokkaichi",
+-	"furukawa",
+-	"higashimatsushima",
+-	"ishinomaki",
+-	"iwanuma",
+-	"kakuda",
+-	"kami",
+-	"kawasaki",
+-	"kesennuma",
+-	"marumori",
+-	"matsushima",
+-	"minamisanriku",
+-	"misato",
+-	"murata",
+-	"natori",
+-	"ogawara",
+-	"ohira",
+-	"onagawa",
+-	"osaki",
+-	"rifu",
+-	"semine",
+-	"shibata",
+-	"shichikashuku",
+-	"shikama",
+-	"shiogama",
+-	"shiroishi",
+-	"tagajo",
+-	"taiwa",
+-	"tome",
+-	"tomiya",
+-	"wakuya",
+-	"watari",
+-	"yamamoto",
+-	"zao",
+-	"aya",
+-	"ebino",
+-	"gokase",
+-	"hyuga",
+-	"kadogawa",
+-	"kawaminami",
+-	"kijo",
+-	"kitagawa",
+-	"kitakata",
+-	"kitaura",
+-	"kobayashi",
+-	"kunitomi",
+-	"kushima",
+-	"mimata",
+-	"miyakonojo",
+-	"miyazaki",
+-	"morotsuka",
+-	"nichinan",
+-	"nishimera",
+-	"nobeoka",
+-	"saito",
+-	"shiiba",
+-	"shintomi",
+-	"takaharu",
+-	"takanabe",
+-	"takazaki",
+-	"tsuno",
+-	"achi",
+-	"agematsu",
+-	"anan",
+-	"aoki",
+-	"asahi",
+-	"azumino",
+-	"chikuhoku",
+-	"chikuma",
+-	"chino",
+-	"fujimi",
+-	"hakuba",
+-	"hara",
+-	"hiraya",
+-	"iida",
+-	"iijima",
+-	"iiyama",
+-	"iizuna",
+-	"ikeda",
+-	"ikusaka",
+-	"ina",
+-	"karuizawa",
+-	"kawakami",
+-	"kiso",
+-	"kisofukushima",
+-	"kitaaiki",
+-	"komagane",
+-	"komoro",
+-	"matsukawa",
+-	"matsumoto",
+-	"miasa",
+-	"minamiaiki",
+-	"minamimaki",
+-	"minamiminowa",
+-	"minowa",
+-	"miyada",
+-	"miyota",
+-	"mochizuki",
+-	"nagano",
+-	"nagawa",
+-	"nagiso",
+-	"nakagawa",
+-	"nakano",
+-	"nozawaonsen",
+-	"obuse",
+-	"ogawa",
+-	"okaya",
+-	"omachi",
+-	"omi",
+-	"ookuwa",
+-	"ooshika",
+-	"otaki",
+-	"otari",
+-	"sakae",
+-	"sakaki",
+-	"saku",
+-	"sakuho",
+-	"shimosuwa",
+-	"shinanomachi",
+-	"shiojiri",
+-	"suwa",
+-	"suzaka",
+-	"takagi",
+-	"takamori",
+-	"takayama",
+-	"tateshina",
+-	"tatsuno",
+-	"togakushi",
+-	"togura",
+-	"tomi",
+-	"ueda",
+-	"wada",
+-	"yamagata",
+-	"yamanouchi",
+-	"yasaka",
+-	"yasuoka",
+-	"chijiwa",
+-	"futsu",
+-	"goto",
+-	"hasami",
+-	"hirado",
+-	"iki",
+-	"isahaya",
+-	"kawatana",
+-	"kuchinotsu",
+-	"matsuura",
+-	"nagasaki",
+-	"obama",
+-	"omura",
+-	"oseto",
+-	"saikai",
+-	"sasebo",
+-	"seihi",
+-	"shimabara",
+-	"shinkamigoto",
+-	"togitsu",
+-	"tsushima",
+-	"unzen",
+-	"city",
+-	"ando",
+-	"gose",
+-	"heguri",
+-	"higashiyoshino",
+-	"ikaruga",
+-	"ikoma",
+-	"kamikitayama",
+-	"kanmaki",
+-	"kashiba",
+-	"kashihara",
+-	"katsuragi",
+-	"kawai",
+-	"kawakami",
+-	"kawanishi",
+-	"koryo",
+-	"kurotaki",
+-	"mitsue",
+-	"miyake",
+-	"nara",
+-	"nosegawa",
+-	"oji",
+-	"ouda",
+-	"oyodo",
+-	"sakurai",
+-	"sango",
+-	"shimoichi",
+-	"shimokitayama",
+-	"shinjo",
+-	"soni",
+-	"takatori",
+-	"tawaramoto",
+-	"tenkawa",
+-	"tenri",
+-	"uda",
+-	"yamatokoriyama",
+-	"yamatotakada",
+-	"yamazoe",
+-	"yoshino",
+-	"aga",
+-	"agano",
+-	"gosen",
+-	"itoigawa",
+-	"izumozaki",
+-	"joetsu",
+-	"kamo",
+-	"kariwa",
+-	"kashiwazaki",
+-	"minamiuonuma",
+-	"mitsuke",
+-	"muika",
+-	"murakami",
+-	"myoko",
+-	"nagaoka",
+-	"niigata",
+-	"ojiya",
+-	"omi",
+-	"sado",
+-	"sanjo",
+-	"seiro",
+-	"seirou",
+-	"sekikawa",
+-	"shibata",
+-	"tagami",
+-	"tainai",
+-	"tochio",
+-	"tokamachi",
+-	"tsubame",
+-	"tsunan",
+-	"uonuma",
+-	"yahiko",
+-	"yoita",
+-	"yuzawa",
+-	"beppu",
+-	"bungoono",
+-	"bungotakada",
+-	"hasama",
+-	"hiji",
+-	"himeshima",
+-	"hita",
+-	"kamitsue",
+-	"kokonoe",
+-	"kuju",
+-	"kunisaki",
+-	"kusu",
+-	"oita",
+-	"saiki",
+-	"taketa",
+-	"tsukumi",
+-	"usa",
+-	"usuki",
+-	"yufu",
+-	"akaiwa",
+-	"asakuchi",
+-	"bizen",
+-	"hayashima",
+-	"ibara",
+-	"kagamino",
+-	"kasaoka",
+-	"kibichuo",
+-	"kumenan",
+-	"kurashiki",
+-	"maniwa",
+-	"misaki",
+-	"nagi",
+-	"niimi",
+-	"nishiawakura",
+-	"okayama",
+-	"satosho",
+-	"setouchi",
+-	"shinjo",
+-	"shoo",
+-	"soja",
+-	"takahashi",
+-	"tamano",
+-	"tsuyama",
+-	"wake",
+-	"yakage",
+-	"aguni",
+-	"ginowan",
+-	"ginoza",
+-	"gushikami",
+-	"haebaru",
+-	"higashi",
+-	"hirara",
+-	"iheya",
+-	"ishigaki",
+-	"ishikawa",
+-	"itoman",
+-	"izena",
+-	"kadena",
+-	"kin",
+-	"kitadaito",
+-	"kitanakagusuku",
+-	"kumejima",
+-	"kunigami",
+-	"minamidaito",
+-	"motobu",
+-	"nago",
+-	"naha",
+-	"nakagusuku",
+-	"nakijin",
+-	"nanjo",
+-	"nishihara",
+-	"ogimi",
+-	"okinawa",
+-	"onna",
+-	"shimoji",
+-	"taketomi",
+-	"tarama",
+-	"tokashiki",
+-	"tomigusuku",
+-	"tonaki",
+-	"urasoe",
+-	"uruma",
+-	"yaese",
+-	"yomitan",
+-	"yonabaru",
+-	"yonaguni",
+-	"zamami",
+-	"abeno",
+-	"chihayaakasaka",
+-	"chuo",
+-	"daito",
+-	"fujiidera",
+-	"habikino",
+-	"hannan",
+-	"higashiosaka",
+-	"higashisumiyoshi",
+-	"higashiyodogawa",
+-	"hirakata",
+-	"ibaraki",
+-	"ikeda",
+-	"izumi",
+-	"izumiotsu",
+-	"izumisano",
+-	"kadoma",
+-	"kaizuka",
+-	"kanan",
+-	"kashiwara",
+-	"katano",
+-	"kawachinagano",
+-	"kishiwada",
+-	"kita",
+-	"kumatori",
+-	"matsubara",
+-	"minato",
+-	"minoh",
+-	"misaki",
+-	"moriguchi",
+-	"neyagawa",
+-	"nishi",
+-	"nose",
+-	"osakasayama",
+-	"sakai",
+-	"sayama",
+-	"sennan",
+-	"settsu",
+-	"shijonawate",
+-	"shimamoto",
+-	"suita",
+-	"tadaoka",
+-	"taishi",
+-	"tajiri",
+-	"takaishi",
+-	"takatsuki",
+-	"tondabayashi",
+-	"toyonaka",
+-	"toyono",
+-	"yao",
+-	"ariake",
+-	"arita",
+-	"fukudomi",
+-	"genkai",
+-	"hamatama",
+-	"hizen",
+-	"imari",
+-	"kamimine",
+-	"kanzaki",
+-	"karatsu",
+-	"kashima",
+-	"kitagata",
+-	"kitahata",
+-	"kiyama",
+-	"kouhoku",
+-	"kyuragi",
+-	"nishiarita",
+-	"ogi",
+-	"omachi",
+-	"ouchi",
+-	"saga",
+-	"shiroishi",
+-	"taku",
+-	"tara",
+-	"tosu",
+-	"yoshinogari",
+-	"arakawa",
+-	"asaka",
+-	"chichibu",
+-	"fujimi",
+-	"fujimino",
+-	"fukaya",
+-	"hanno",
+-	"hanyu",
+-	"hasuda",
+-	"hatogaya",
+-	"hatoyama",
+-	"hidaka",
+-	"higashichichibu",
+-	"higashimatsuyama",
+-	"honjo",
+-	"ina",
+-	"iruma",
+-	"iwatsuki",
+-	"kamiizumi",
+-	"kamikawa",
+-	"kamisato",
+-	"kasukabe",
+-	"kawagoe",
+-	"kawaguchi",
+-	"kawajima",
+-	"kazo",
+-	"kitamoto",
+-	"koshigaya",
+-	"kounosu",
+-	"kuki",
+-	"kumagaya",
+-	"matsubushi",
+-	"minano",
+-	"misato",
+-	"miyashiro",
+-	"miyoshi",
+-	"moroyama",
+-	"nagatoro",
+-	"namegawa",
+-	"niiza",
+-	"ogano",
+-	"ogawa",
+-	"ogose",
+-	"okegawa",
+-	"omiya",
+-	"otaki",
+-	"ranzan",
+-	"ryokami",
+-	"saitama",
+-	"sakado",
+-	"satte",
+-	"sayama",
+-	"shiki",
+-	"shiraoka",
+-	"soka",
+-	"sugito",
+-	"toda",
+-	"tokigawa",
+-	"tokorozawa",
+-	"tsurugashima",
+-	"urawa",
+-	"warabi",
+-	"yashio",
+-	"yokoze",
+-	"yono",
+-	"yorii",
+-	"yoshida",
+-	"yoshikawa",
+-	"yoshimi",
+-	"city",
+-	"city",
+-	"aisho",
+-	"gamo",
+-	"higashiomi",
+-	"hikone",
+-	"koka",
+-	"konan",
+-	"kosei",
+-	"koto",
+-	"kusatsu",
+-	"maibara",
+-	"moriyama",
+-	"nagahama",
+-	"nishiazai",
+-	"notogawa",
+-	"omihachiman",
+-	"otsu",
+-	"ritto",
+-	"ryuoh",
+-	"takashima",
+-	"takatsuki",
+-	"torahime",
+-	"toyosato",
+-	"yasu",
+-	"akagi",
+-	"ama",
+-	"gotsu",
+-	"hamada",
+-	"higashiizumo",
+-	"hikawa",
+-	"hikimi",
+-	"izumo",
+-	"kakinoki",
+-	"masuda",
+-	"matsue",
+-	"misato",
+-	"nishinoshima",
+-	"ohda",
+-	"okinoshima",
+-	"okuizumo",
+-	"shimane",
+-	"tamayu",
+-	"tsuwano",
+-	"unnan",
+-	"yakumo",
+-	"yasugi",
+-	"yatsuka",
+-	"arai",
+-	"atami",
+-	"fuji",
+-	"fujieda",
+-	"fujikawa",
+-	"fujinomiya",
+-	"fukuroi",
+-	"gotemba",
+-	"haibara",
+-	"hamamatsu",
+-	"higashiizu",
+-	"ito",
+-	"iwata",
+-	"izu",
+-	"izunokuni",
+-	"kakegawa",
+-	"kannami",
+-	"kawanehon",
+-	"kawazu",
+-	"kikugawa",
+-	"kosai",
+-	"makinohara",
+-	"matsuzaki",
+-	"minamiizu",
+-	"mishima",
+-	"morimachi",
+-	"nishiizu",
+-	"numazu",
+-	"omaezaki",
+-	"shimada",
+-	"shimizu",
+-	"shimoda",
+-	"shizuoka",
+-	"susono",
+-	"yaizu",
+-	"yoshida",
+-	"ashikaga",
+-	"bato",
+-	"haga",
+-	"ichikai",
+-	"iwafune",
+-	"kaminokawa",
+-	"kanuma",
+-	"karasuyama",
+-	"kuroiso",
+-	"mashiko",
+-	"mibu",
+-	"moka",
+-	"motegi",
+-	"nasu",
+-	"nasushiobara",
+-	"nikko",
+-	"nishikata",
+-	"nogi",
+-	"ohira",
+-	"ohtawara",
+-	"oyama",
+-	"sakura",
+-	"sano",
+-	"shimotsuke",
+-	"shioya",
+-	"takanezawa",
+-	"tochigi",
+-	"tsuga",
+-	"ujiie",
+-	"utsunomiya",
+-	"yaita",
+-	"aizumi",
+-	"anan",
+-	"ichiba",
+-	"itano",
+-	"kainan",
+-	"komatsushima",
+-	"matsushige",
+-	"mima",
+-	"minami",
+-	"miyoshi",
+-	"mugi",
+-	"nakagawa",
+-	"naruto",
+-	"sanagochi",
+-	"shishikui",
+-	"tokushima",
+-	"wajiki",
+-	"adachi",
+-	"akiruno",
+-	"akishima",
+-	"aogashima",
+-	"arakawa",
+-	"bunkyo",
+-	"chiyoda",
+-	"chofu",
+-	"chuo",
+-	"edogawa",
+-	"fuchu",
+-	"fussa",
+-	"hachijo",
+-	"hachioji",
+-	"hamura",
+-	"higashikurume",
+-	"higashimurayama",
+-	"higashiyamato",
+-	"hino",
+-	"hinode",
+-	"hinohara",
+-	"inagi",
+-	"itabashi",
+-	"katsushika",
+-	"kita",
+-	"kiyose",
+-	"kodaira",
+-	"koganei",
+-	"kokubunji",
+-	"komae",
+-	"koto",
+-	"kouzushima",
+-	"kunitachi",
+-	"machida",
+-	"meguro",
+-	"minato",
+-	"mitaka",
+-	"mizuho",
+-	"musashimurayama",
+-	"musashino",
+-	"nakano",
+-	"nerima",
+-	"ogasawara",
+-	"okutama",
+-	"ome",
+-	"oshima",
+-	"ota",
+-	"setagaya",
+-	"shibuya",
+-	"shinagawa",
+-	"shinjuku",
+-	"suginami",
+-	"sumida",
+-	"tachikawa",
+-	"taito",
+-	"tama",
+-	"toshima",
+-	"chizu",
+-	"hino",
+-	"kawahara",
+-	"koge",
+-	"kotoura",
+-	"misasa",
+-	"nanbu",
+-	"nichinan",
+-	"sakaiminato",
+-	"tottori",
+-	"wakasa",
+-	"yazu",
+-	"yonago",
+-	"asahi",
+-	"fuchu",
+-	"fukumitsu",
+-	"funahashi",
+-	"himi",
+-	"imizu",
+-	"inami",
+-	"johana",
+-	"kamiichi",
+-	"kurobe",
+-	"nakaniikawa",
+-	"namerikawa",
+-	"nanto",
+-	"nyuzen",
+-	"oyabe",
+-	"taira",
+-	"takaoka",
+-	"tateyama",
+-	"toga",
+-	"tonami",
+-	"toyama",
+-	"unazuki",
+-	"uozu",
+-	"yamada",
+-	"arida",
+-	"aridagawa",
+-	"gobo",
+-	"hashimoto",
+-	"hidaka",
+-	"hirogawa",
+-	"inami",
+-	"iwade",
+-	"kainan",
+-	"kamitonda",
+-	"katsuragi",
+-	"kimino",
+-	"kinokawa",
+-	"kitayama",
+-	"koya",
+-	"koza",
+-	"kozagawa",
+-	"kudoyama",
+-	"kushimoto",
+-	"mihama",
+-	"misato",
+-	"nachikatsuura",
+-	"shingu",
+-	"shirahama",
+-	"taiji",
+-	"tanabe",
+-	"wakayama",
+-	"yuasa",
+-	"yura",
+-	"asahi",
+-	"funagata",
+-	"higashine",
+-	"iide",
+-	"kahoku",
+-	"kaminoyama",
+-	"kaneyama",
+-	"kawanishi",
+-	"mamurogawa",
+-	"mikawa",
+-	"murayama",
+-	"nagai",
+-	"nakayama",
+-	"nanyo",
+-	"nishikawa",
+-	"obanazawa",
+-	"oe",
+-	"oguni",
+-	"ohkura",
+-	"oishida",
+-	"sagae",
+-	"sakata",
+-	"sakegawa",
+-	"shinjo",
+-	"shirataka",
+-	"shonai",
+-	"takahata",
+-	"tendo",
+-	"tozawa",
+-	"tsuruoka",
+-	"yamagata",
+-	"yamanobe",
+-	"yonezawa",
+-	"yuza",
+-	"abu",
+-	"hagi",
+-	"hikari",
+-	"hofu",
+-	"iwakuni",
+-	"kudamatsu",
+-	"mitou",
+-	"nagato",
+-	"oshima",
+-	"shimonoseki",
+-	"shunan",
+-	"tabuse",
+-	"tokuyama",
+-	"toyota",
+-	"ube",
+-	"yuu",
+-	"chuo",
+-	"doshi",
+-	"fuefuki",
+-	"fujikawa",
+-	"fujikawaguchiko",
+-	"fujiyoshida",
+-	"hayakawa",
+-	"hokuto",
+-	"ichikawamisato",
+-	"kai",
+-	"kofu",
+-	"koshu",
+-	"kosuge",
+-	"minami-alps",
+-	"minobu",
+-	"nakamichi",
+-	"nanbu",
+-	"narusawa",
+-	"nirasaki",
+-	"nishikatsura",
+-	"oshino",
+-	"otsuki",
+-	"showa",
+-	"tabayama",
+-	"tsuru",
+-	"uenohara",
+-	"yamanakako",
+-	"yamanashi",
+-	"city",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"biz",
+-	"com",
+-	"edu",
+-	"gov",
+-	"info",
+-	"net",
+-	"org",
+-	"ass",
+-	"asso",
+-	"com",
+-	"coop",
+-	"edu",
+-	"gouv",
+-	"gov",
+-	"medecin",
+-	"mil",
+-	"nom",
+-	"notaires",
+-	"org",
+-	"pharmaciens",
+-	"prd",
+-	"presse",
+-	"tm",
+-	"veterinaire",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"org",
+-	"rep",
+-	"tra",
+-	"ac",
+-	"blogspot",
+-	"busan",
+-	"chungbuk",
+-	"chungnam",
+-	"co",
+-	"daegu",
+-	"daejeon",
+-	"es",
+-	"gangwon",
+-	"go",
+-	"gwangju",
+-	"gyeongbuk",
+-	"gyeonggi",
+-	"gyeongnam",
+-	"hs",
+-	"incheon",
+-	"jeju",
+-	"jeonbuk",
+-	"jeonnam",
+-	"kg",
+-	"mil",
+-	"ms",
+-	"ne",
+-	"or",
+-	"pe",
+-	"re",
+-	"sc",
+-	"seoul",
+-	"ulsan",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"c",
+-	"com",
+-	"edu",
+-	"gov",
+-	"info",
+-	"int",
+-	"net",
+-	"org",
+-	"per",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"co",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"assn",
+-	"com",
+-	"edu",
+-	"gov",
+-	"grp",
+-	"hotel",
+-	"int",
+-	"ltd",
+-	"net",
+-	"ngo",
+-	"org",
+-	"sch",
+-	"soc",
+-	"web",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"co",
+-	"org",
+-	"gov",
+-	"asn",
+-	"com",
+-	"conf",
+-	"edu",
+-	"gov",
+-	"id",
+-	"mil",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"id",
+-	"med",
+-	"net",
+-	"org",
+-	"plc",
+-	"sch",
+-	"ac",
+-	"co",
+-	"gov",
+-	"net",
+-	"org",
+-	"press",
+-	"asso",
+-	"tm",
+-	"ac",
+-	"co",
+-	"edu",
+-	"gov",
+-	"its",
+-	"net",
+-	"org",
+-	"priv",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"nom",
+-	"org",
+-	"prd",
+-	"tm",
+-	"com",
+-	"edu",
+-	"gov",
+-	"inf",
+-	"name",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gouv",
+-	"gov",
+-	"net",
+-	"org",
+-	"presse",
+-	"edu",
+-	"gov",
+-	"nyc",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"blogspot",
+-	"gov",
+-	"ac",
+-	"co",
+-	"com",
+-	"gov",
+-	"net",
+-	"or",
+-	"org",
+-	"academy",
+-	"agriculture",
+-	"air",
+-	"airguard",
+-	"alabama",
+-	"alaska",
+-	"amber",
+-	"ambulance",
+-	"american",
+-	"americana",
+-	"americanantiques",
+-	"americanart",
+-	"amsterdam",
+-	"and",
+-	"annefrank",
+-	"anthro",
+-	"anthropology",
+-	"antiques",
+-	"aquarium",
+-	"arboretum",
+-	"archaeological",
+-	"archaeology",
+-	"architecture",
+-	"art",
+-	"artanddesign",
+-	"artcenter",
+-	"artdeco",
+-	"arteducation",
+-	"artgallery",
+-	"arts",
+-	"artsandcrafts",
+-	"asmatart",
+-	"assassination",
+-	"assisi",
+-	"association",
+-	"astronomy",
+-	"atlanta",
+-	"austin",
+-	"australia",
+-	"automotive",
+-	"aviation",
+-	"axis",
+-	"badajoz",
+-	"baghdad",
+-	"bahn",
+-	"bale",
+-	"baltimore",
+-	"barcelona",
+-	"baseball",
+-	"basel",
+-	"baths",
+-	"bauern",
+-	"beauxarts",
+-	"beeldengeluid",
+-	"bellevue",
+-	"bergbau",
+-	"berkeley",
+-	"berlin",
+-	"bern",
+-	"bible",
+-	"bilbao",
+-	"bill",
+-	"birdart",
+-	"birthplace",
+-	"bonn",
+-	"boston",
+-	"botanical",
+-	"botanicalgarden",
+-	"botanicgarden",
+-	"botany",
+-	"brandywinevalley",
+-	"brasil",
+-	"bristol",
+-	"british",
+-	"britishcolumbia",
+-	"broadcast",
+-	"brunel",
+-	"brussel",
+-	"brussels",
+-	"bruxelles",
+-	"building",
+-	"burghof",
+-	"bus",
+-	"bushey",
+-	"cadaques",
+-	"california",
+-	"cambridge",
+-	"can",
+-	"canada",
+-	"capebreton",
+-	"carrier",
+-	"cartoonart",
+-	"casadelamoneda",
+-	"castle",
+-	"castres",
+-	"celtic",
+-	"center",
+-	"chattanooga",
+-	"cheltenham",
+-	"chesapeakebay",
+-	"chicago",
+-	"children",
+-	"childrens",
+-	"childrensgarden",
+-	"chiropractic",
+-	"chocolate",
+-	"christiansburg",
+-	"cincinnati",
+-	"cinema",
+-	"circus",
+-	"civilisation",
+-	"civilization",
+-	"civilwar",
+-	"clinton",
+-	"clock",
+-	"coal",
+-	"coastaldefence",
+-	"cody",
+-	"coldwar",
+-	"collection",
+-	"colonialwilliamsburg",
+-	"coloradoplateau",
+-	"columbia",
+-	"columbus",
+-	"communication",
+-	"communications",
+-	"community",
+-	"computer",
+-	"computerhistory",
+-	"contemporary",
+-	"contemporaryart",
+-	"convent",
+-	"copenhagen",
+-	"corporation",
+-	"corvette",
+-	"costume",
+-	"countryestate",
+-	"county",
+-	"crafts",
+-	"cranbrook",
+-	"creation",
+-	"cultural",
+-	"culturalcenter",
+-	"culture",
+-	"cyber",
+-	"cymru",
+-	"dali",
+-	"dallas",
+-	"database",
+-	"ddr",
+-	"decorativearts",
+-	"delaware",
+-	"delmenhorst",
+-	"denmark",
+-	"depot",
+-	"design",
+-	"detroit",
+-	"dinosaur",
+-	"discovery",
+-	"dolls",
+-	"donostia",
+-	"durham",
+-	"eastafrica",
+-	"eastcoast",
+-	"education",
+-	"educational",
+-	"egyptian",
+-	"eisenbahn",
+-	"elburg",
+-	"elvendrell",
+-	"embroidery",
+-	"encyclopedic",
+-	"england",
+-	"entomology",
+-	"environment",
+-	"environmentalconservation",
+-	"epilepsy",
+-	"essex",
+-	"estate",
+-	"ethnology",
+-	"exeter",
+-	"exhibition",
+-	"family",
+-	"farm",
+-	"farmequipment",
+-	"farmers",
+-	"farmstead",
+-	"field",
+-	"figueres",
+-	"filatelia",
+-	"film",
+-	"fineart",
+-	"finearts",
+-	"finland",
+-	"flanders",
+-	"florida",
+-	"force",
+-	"fortmissoula",
+-	"fortworth",
+-	"foundation",
+-	"francaise",
+-	"frankfurt",
+-	"franziskaner",
+-	"freemasonry",
+-	"freiburg",
+-	"fribourg",
+-	"frog",
+-	"fundacio",
+-	"furniture",
+-	"gallery",
+-	"garden",
+-	"gateway",
+-	"geelvinck",
+-	"gemological",
+-	"geology",
+-	"georgia",
+-	"giessen",
+-	"glas",
+-	"glass",
+-	"gorge",
+-	"grandrapids",
+-	"graz",
+-	"guernsey",
+-	"halloffame",
+-	"hamburg",
+-	"handson",
+-	"harvestcelebration",
+-	"hawaii",
+-	"health",
+-	"heimatunduhren",
+-	"hellas",
+-	"helsinki",
+-	"hembygdsforbund",
+-	"heritage",
+-	"histoire",
+-	"historical",
+-	"historicalsociety",
+-	"historichouses",
+-	"historisch",
+-	"historisches",
+-	"history",
+-	"historyofscience",
+-	"horology",
+-	"house",
+-	"humanities",
+-	"illustration",
+-	"imageandsound",
+-	"indian",
+-	"indiana",
+-	"indianapolis",
+-	"indianmarket",
+-	"intelligence",
+-	"interactive",
+-	"iraq",
+-	"iron",
+-	"isleofman",
+-	"jamison",
+-	"jefferson",
+-	"jerusalem",
+-	"jewelry",
+-	"jewish",
+-	"jewishart",
+-	"jfk",
+-	"journalism",
+-	"judaica",
+-	"judygarland",
+-	"juedisches",
+-	"juif",
+-	"karate",
+-	"karikatur",
+-	"kids",
+-	"koebenhavn",
+-	"koeln",
+-	"kunst",
+-	"kunstsammlung",
+-	"kunstunddesign",
+-	"labor",
+-	"labour",
+-	"lajolla",
+-	"lancashire",
+-	"landes",
+-	"lans",
+-	"larsson",
+-	"lewismiller",
+-	"lincoln",
+-	"linz",
+-	"living",
+-	"livinghistory",
+-	"localhistory",
+-	"london",
+-	"losangeles",
+-	"louvre",
+-	"loyalist",
+-	"lucerne",
+-	"luxembourg",
+-	"luzern",
+-	"mad",
+-	"madrid",
+-	"mallorca",
+-	"manchester",
+-	"mansion",
+-	"mansions",
+-	"manx",
+-	"marburg",
+-	"maritime",
+-	"maritimo",
+-	"maryland",
+-	"marylhurst",
+-	"media",
+-	"medical",
+-	"medizinhistorisches",
+-	"meeres",
+-	"memorial",
+-	"mesaverde",
+-	"michigan",
+-	"midatlantic",
+-	"military",
+-	"mill",
+-	"miners",
+-	"mining",
+-	"minnesota",
+-	"missile",
+-	"missoula",
+-	"modern",
+-	"moma",
+-	"money",
+-	"monmouth",
+-	"monticello",
+-	"montreal",
+-	"moscow",
+-	"motorcycle",
+-	"muenchen",
+-	"muenster",
+-	"mulhouse",
+-	"muncie",
+-	"museet",
+-	"museumcenter",
+-	"museumvereniging",
+-	"music",
+-	"national",
+-	"nationalfirearms",
+-	"nationalheritage",
+-	"nativeamerican",
+-	"naturalhistory",
+-	"naturalhistorymuseum",
+-	"naturalsciences",
+-	"nature",
+-	"naturhistorisches",
+-	"natuurwetenschappen",
+-	"naumburg",
+-	"naval",
+-	"nebraska",
+-	"neues",
+-	"newhampshire",
+-	"newjersey",
+-	"newmexico",
+-	"newport",
+-	"newspaper",
+-	"newyork",
+-	"niepce",
+-	"norfolk",
+-	"north",
+-	"nrw",
+-	"nuernberg",
+-	"nuremberg",
+-	"nyc",
+-	"nyny",
+-	"oceanographic",
+-	"oceanographique",
+-	"omaha",
+-	"online",
+-	"ontario",
+-	"openair",
+-	"oregon",
+-	"oregontrail",
+-	"otago",
+-	"oxford",
+-	"pacific",
+-	"paderborn",
+-	"palace",
+-	"paleo",
+-	"palmsprings",
+-	"panama",
+-	"paris",
+-	"pasadena",
+-	"pharmacy",
+-	"philadelphia",
+-	"philadelphiaarea",
+-	"philately",
+-	"phoenix",
+-	"photography",
+-	"pilots",
+-	"pittsburgh",
+-	"planetarium",
+-	"plantation",
+-	"plants",
+-	"plaza",
+-	"portal",
+-	"portland",
+-	"portlligat",
+-	"posts-and-telecommunications",
+-	"preservation",
+-	"presidio",
+-	"press",
+-	"project",
+-	"public",
+-	"pubol",
+-	"quebec",
+-	"railroad",
+-	"railway",
+-	"research",
+-	"resistance",
+-	"riodejaneiro",
+-	"rochester",
+-	"rockart",
+-	"roma",
+-	"russia",
+-	"saintlouis",
+-	"salem",
+-	"salvadordali",
+-	"salzburg",
+-	"sandiego",
+-	"sanfrancisco",
+-	"santabarbara",
+-	"santacruz",
+-	"santafe",
+-	"saskatchewan",
+-	"satx",
+-	"savannahga",
+-	"schlesisches",
+-	"schoenbrunn",
+-	"schokoladen",
+-	"school",
+-	"schweiz",
+-	"science",
+-	"science-fiction",
+-	"scienceandhistory",
+-	"scienceandindustry",
+-	"sciencecenter",
+-	"sciencecenters",
+-	"sciencehistory",
+-	"sciences",
+-	"sciencesnaturelles",
+-	"scotland",
+-	"seaport",
+-	"settlement",
+-	"settlers",
+-	"shell",
+-	"sherbrooke",
+-	"sibenik",
+-	"silk",
+-	"ski",
+-	"skole",
+-	"society",
+-	"sologne",
+-	"soundandvision",
+-	"southcarolina",
+-	"southwest",
+-	"space",
+-	"spy",
+-	"square",
+-	"stadt",
+-	"stalbans",
+-	"starnberg",
+-	"state",
+-	"stateofdelaware",
+-	"station",
+-	"steam",
+-	"steiermark",
+-	"stjohn",
+-	"stockholm",
+-	"stpetersburg",
+-	"stuttgart",
+-	"suisse",
+-	"surgeonshall",
+-	"surrey",
+-	"svizzera",
+-	"sweden",
+-	"sydney",
+-	"tank",
+-	"tcm",
+-	"technology",
+-	"telekommunikation",
+-	"television",
+-	"texas",
+-	"textile",
+-	"theater",
+-	"time",
+-	"timekeeping",
+-	"topology",
+-	"torino",
+-	"touch",
+-	"town",
+-	"transport",
+-	"tree",
+-	"trolley",
+-	"trust",
+-	"trustee",
+-	"uhren",
+-	"ulm",
+-	"undersea",
+-	"university",
+-	"usa",
+-	"usantiques",
+-	"usarts",
+-	"uscountryestate",
+-	"usculture",
+-	"usdecorativearts",
+-	"usgarden",
+-	"ushistory",
+-	"ushuaia",
+-	"uslivinghistory",
+-	"utah",
+-	"uvic",
+-	"valley",
+-	"vantaa",
+-	"versailles",
+-	"viking",
+-	"village",
+-	"virginia",
+-	"virtual",
+-	"virtuel",
+-	"vlaanderen",
+-	"volkenkunde",
+-	"wales",
+-	"wallonie",
+-	"war",
+-	"washingtondc",
+-	"watch-and-clock",
+-	"watchandclock",
+-	"western",
+-	"westfalen",
+-	"whaling",
+-	"wildlife",
+-	"williamsburg",
+-	"windmill",
+-	"workshop",
+-	"xn--9dbhblg6di",
+-	"xn--comunicaes-v6a2o",
+-	"xn--correios-e-telecomunicaes-ghc29a",
+-	"xn--h1aegh",
+-	"xn--lns-qla",
+-	"york",
+-	"yorkshire",
+-	"yosemite",
+-	"youth",
+-	"zoological",
+-	"zoology",
+-	"aero",
+-	"biz",
+-	"com",
+-	"coop",
+-	"edu",
+-	"gov",
+-	"info",
+-	"int",
+-	"mil",
+-	"museum",
+-	"name",
+-	"net",
+-	"org",
+-	"pro",
+-	"ac",
+-	"biz",
+-	"co",
+-	"com",
+-	"coop",
+-	"edu",
+-	"gov",
+-	"int",
+-	"museum",
+-	"net",
+-	"org",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gob",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"name",
+-	"net",
+-	"org",
+-	"teledata",
+-	"ca",
+-	"cc",
+-	"co",
+-	"com",
+-	"dr",
+-	"in",
+-	"info",
+-	"mobi",
+-	"mx",
+-	"name",
+-	"or",
+-	"org",
+-	"pro",
+-	"school",
+-	"tv",
+-	"us",
+-	"ws",
+-	"her",
+-	"his",
+-	"forgot",
+-	"forgot",
+-	"asso",
+-	"at-band-camp",
+-	"blogdns",
+-	"broke-it",
+-	"buyshouses",
+-	"cloudfront",
+-	"dnsalias",
+-	"dnsdojo",
+-	"does-it",
+-	"dontexist",
+-	"dynalias",
+-	"dynathome",
+-	"endofinternet",
+-	"from-az",
+-	"from-co",
+-	"from-la",
+-	"from-ny",
+-	"gb",
+-	"gets-it",
+-	"ham-radio-op",
+-	"homeftp",
+-	"homeip",
+-	"homelinux",
+-	"homeunix",
+-	"hu",
+-	"in-the-band",
+-	"is-a-chef",
+-	"is-a-geek",
+-	"isa-geek",
+-	"jp",
+-	"kicks-ass",
+-	"office-on-the",
+-	"podzone",
+-	"scrapper-site",
+-	"se",
+-	"selfip",
+-	"sells-it",
+-	"servebbs",
+-	"serveftp",
+-	"thruhere",
+-	"uk",
+-	"webhop",
+-	"za",
+-	"arts",
+-	"com",
+-	"firm",
+-	"info",
+-	"net",
+-	"other",
+-	"per",
+-	"rec",
+-	"store",
+-	"web",
+-	"ac",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"blogspot",
+-	"bv",
+-	"co",
+-	"aa",
+-	"aarborte",
+-	"aejrie",
+-	"afjord",
+-	"agdenes",
+-	"ah",
+-	"akershus",
+-	"aknoluokta",
+-	"akrehamn",
+-	"al",
+-	"alaheadju",
+-	"alesund",
+-	"algard",
+-	"alstahaug",
+-	"alta",
+-	"alvdal",
+-	"amli",
+-	"amot",
+-	"andasuolo",
+-	"andebu",
+-	"andoy",
+-	"ardal",
+-	"aremark",
+-	"arendal",
+-	"arna",
+-	"aseral",
+-	"asker",
+-	"askim",
+-	"askoy",
+-	"askvoll",
+-	"asnes",
+-	"audnedaln",
+-	"aukra",
+-	"aure",
+-	"aurland",
+-	"aurskog-holand",
+-	"austevoll",
+-	"austrheim",
+-	"averoy",
+-	"badaddja",
+-	"bahcavuotna",
+-	"bahccavuotna",
+-	"baidar",
+-	"bajddar",
+-	"balat",
+-	"balestrand",
+-	"ballangen",
+-	"balsfjord",
+-	"bamble",
+-	"bardu",
+-	"barum",
+-	"batsfjord",
+-	"bearalvahki",
+-	"beardu",
+-	"beiarn",
+-	"berg",
+-	"bergen",
+-	"berlevag",
+-	"bievat",
+-	"bindal",
+-	"birkenes",
+-	"bjarkoy",
+-	"bjerkreim",
+-	"bjugn",
+-	"blogspot",
+-	"bodo",
+-	"bokn",
+-	"bomlo",
+-	"bremanger",
+-	"bronnoy",
+-	"bronnoysund",
+-	"brumunddal",
+-	"bryne",
+-	"bu",
+-	"budejju",
+-	"buskerud",
+-	"bygland",
+-	"bykle",
+-	"cahcesuolo",
+-	"co",
+-	"davvenjarga",
+-	"davvesiida",
+-	"deatnu",
+-	"dep",
+-	"dielddanuorri",
+-	"divtasvuodna",
+-	"divttasvuotna",
+-	"donna",
+-	"dovre",
+-	"drammen",
+-	"drangedal",
+-	"drobak",
+-	"dyroy",
+-	"egersund",
+-	"eid",
+-	"eidfjord",
+-	"eidsberg",
+-	"eidskog",
+-	"eidsvoll",
+-	"eigersund",
+-	"elverum",
+-	"enebakk",
+-	"engerdal",
+-	"etne",
+-	"etnedal",
+-	"evenassi",
+-	"evenes",
+-	"evje-og-hornnes",
+-	"farsund",
+-	"fauske",
+-	"fedje",
+-	"fet",
+-	"fetsund",
+-	"fhs",
+-	"finnoy",
+-	"fitjar",
+-	"fjaler",
+-	"fjell",
+-	"fla",
+-	"flakstad",
+-	"flatanger",
+-	"flekkefjord",
+-	"flesberg",
+-	"flora",
+-	"floro",
+-	"fm",
+-	"folkebibl",
+-	"folldal",
+-	"forde",
+-	"forsand",
+-	"fosnes",
+-	"frana",
+-	"fredrikstad",
+-	"frei",
+-	"frogn",
+-	"froland",
+-	"frosta",
+-	"froya",
+-	"fuoisku",
+-	"fuossko",
+-	"fusa",
+-	"fylkesbibl",
+-	"fyresdal",
+-	"gaivuotna",
+-	"galsa",
+-	"gamvik",
+-	"gangaviika",
+-	"gaular",
+-	"gausdal",
+-	"giehtavuoatna",
+-	"gildeskal",
+-	"giske",
+-	"gjemnes",
+-	"gjerdrum",
+-	"gjerstad",
+-	"gjesdal",
+-	"gjovik",
+-	"gloppen",
+-	"gol",
+-	"gran",
+-	"grane",
+-	"granvin",
+-	"gratangen",
+-	"grimstad",
+-	"grong",
+-	"grue",
+-	"gulen",
+-	"guovdageaidnu",
+-	"ha",
+-	"habmer",
+-	"hadsel",
+-	"hagebostad",
+-	"halden",
+-	"halsa",
+-	"hamar",
+-	"hamaroy",
+-	"hammarfeasta",
+-	"hammerfest",
+-	"hapmir",
+-	"haram",
+-	"hareid",
+-	"harstad",
+-	"hasvik",
+-	"hattfjelldal",
+-	"haugesund",
+-	"hedmark",
+-	"hemne",
+-	"hemnes",
+-	"hemsedal",
+-	"herad",
+-	"hitra",
+-	"hjartdal",
+-	"hjelmeland",
+-	"hl",
+-	"hm",
+-	"hobol",
+-	"hof",
+-	"hokksund",
+-	"hol",
+-	"hole",
+-	"holmestrand",
+-	"holtalen",
+-	"honefoss",
+-	"hordaland",
+-	"hornindal",
+-	"horten",
+-	"hoyanger",
+-	"hoylandet",
+-	"hurdal",
+-	"hurum",
+-	"hvaler",
+-	"hyllestad",
+-	"ibestad",
+-	"idrett",
+-	"inderoy",
+-	"iveland",
+-	"ivgu",
+-	"jan-mayen",
+-	"jessheim",
+-	"jevnaker",
+-	"jolster",
+-	"jondal",
+-	"jorpeland",
+-	"kafjord",
+-	"karasjohka",
+-	"karasjok",
+-	"karlsoy",
+-	"karmoy",
+-	"kautokeino",
+-	"kirkenes",
+-	"klabu",
+-	"klepp",
+-	"kommune",
+-	"kongsberg",
+-	"kongsvinger",
+-	"kopervik",
+-	"kraanghke",
+-	"kragero",
+-	"kristiansand",
+-	"kristiansund",
+-	"krodsherad",
+-	"krokstadelva",
+-	"kvafjord",
+-	"kvalsund",
+-	"kvam",
+-	"kvanangen",
+-	"kvinesdal",
+-	"kvinnherad",
+-	"kviteseid",
+-	"kvitsoy",
+-	"laakesvuemie",
+-	"lahppi",
+-	"langevag",
+-	"lardal",
+-	"larvik",
+-	"lavagis",
+-	"lavangen",
+-	"leangaviika",
+-	"lebesby",
+-	"leikanger",
+-	"leirfjord",
+-	"leirvik",
+-	"leka",
+-	"leksvik",
+-	"lenvik",
+-	"lerdal",
+-	"lesja",
+-	"levanger",
+-	"lier",
+-	"lierne",
+-	"lillehammer",
+-	"lillesand",
+-	"lindas",
+-	"lindesnes",
+-	"loabat",
+-	"lodingen",
+-	"lom",
+-	"loppa",
+-	"lorenskog",
+-	"loten",
+-	"lund",
+-	"lunner",
+-	"luroy",
+-	"luster",
+-	"lyngdal",
+-	"lyngen",
+-	"malatvuopmi",
+-	"malselv",
+-	"malvik",
+-	"mandal",
+-	"marker",
+-	"marnardal",
+-	"masfjorden",
+-	"masoy",
+-	"matta-varjjat",
+-	"meland",
+-	"meldal",
+-	"melhus",
+-	"meloy",
+-	"meraker",
+-	"midsund",
+-	"midtre-gauldal",
+-	"mil",
+-	"mjondalen",
+-	"mo-i-rana",
+-	"moareke",
+-	"modalen",
+-	"modum",
+-	"molde",
+-	"more-og-romsdal",
+-	"mosjoen",
+-	"moskenes",
+-	"moss",
+-	"mosvik",
+-	"mr",
+-	"muosat",
+-	"museum",
+-	"naamesjevuemie",
+-	"namdalseid",
+-	"namsos",
+-	"namsskogan",
+-	"nannestad",
+-	"naroy",
+-	"narviika",
+-	"narvik",
+-	"naustdal",
+-	"navuotna",
+-	"nedre-eiker",
+-	"nesna",
+-	"nesodden",
+-	"nesoddtangen",
+-	"nesseby",
+-	"nesset",
+-	"nissedal",
+-	"nittedal",
+-	"nl",
+-	"nord-aurdal",
+-	"nord-fron",
+-	"nord-odal",
+-	"norddal",
+-	"nordkapp",
+-	"nordland",
+-	"nordre-land",
+-	"nordreisa",
+-	"nore-og-uvdal",
+-	"notodden",
+-	"notteroy",
+-	"nt",
+-	"odda",
+-	"of",
+-	"oksnes",
+-	"ol",
+-	"omasvuotna",
+-	"oppdal",
+-	"oppegard",
+-	"orkanger",
+-	"orkdal",
+-	"orland",
+-	"orskog",
+-	"orsta",
+-	"osen",
+-	"oslo",
+-	"osoyro",
+-	"osteroy",
+-	"ostfold",
+-	"ostre-toten",
+-	"overhalla",
+-	"ovre-eiker",
+-	"oyer",
+-	"oygarden",
+-	"oystre-slidre",
+-	"porsanger",
+-	"porsangu",
+-	"porsgrunn",
+-	"priv",
+-	"rade",
+-	"radoy",
+-	"rahkkeravju",
+-	"raholt",
+-	"raisa",
+-	"rakkestad",
+-	"ralingen",
+-	"rana",
+-	"randaberg",
+-	"rauma",
+-	"rendalen",
+-	"rennebu",
+-	"rennesoy",
+-	"rindal",
+-	"ringebu",
+-	"ringerike",
+-	"ringsaker",
+-	"risor",
+-	"rissa",
+-	"rl",
+-	"roan",
+-	"rodoy",
+-	"rollag",
+-	"romsa",
+-	"romskog",
+-	"roros",
+-	"rost",
+-	"royken",
+-	"royrvik",
+-	"ruovat",
+-	"rygge",
+-	"salangen",
+-	"salat",
+-	"saltdal",
+-	"samnanger",
+-	"sandefjord",
+-	"sandnes",
+-	"sandnessjoen",
+-	"sandoy",
+-	"sarpsborg",
+-	"sauda",
+-	"sauherad",
+-	"sel",
+-	"selbu",
+-	"selje",
+-	"seljord",
+-	"sf",
+-	"siellak",
+-	"sigdal",
+-	"siljan",
+-	"sirdal",
+-	"skanit",
+-	"skanland",
+-	"skaun",
+-	"skedsmo",
+-	"skedsmokorset",
+-	"ski",
+-	"skien",
+-	"skierva",
+-	"skiptvet",
+-	"skjak",
+-	"skjervoy",
+-	"skodje",
+-	"slattum",
+-	"smola",
+-	"snaase",
+-	"snasa",
+-	"snillfjord",
+-	"snoasa",
+-	"sogndal",
+-	"sogne",
+-	"sokndal",
+-	"sola",
+-	"solund",
+-	"somna",
+-	"sondre-land",
+-	"songdalen",
+-	"sor-aurdal",
+-	"sor-fron",
+-	"sor-odal",
+-	"sor-varanger",
+-	"sorfold",
+-	"sorreisa",
+-	"sortland",
+-	"sorum",
+-	"spjelkavik",
+-	"spydeberg",
+-	"st",
+-	"stange",
+-	"stat",
+-	"stathelle",
+-	"stavanger",
+-	"stavern",
+-	"steigen",
+-	"steinkjer",
+-	"stjordal",
+-	"stjordalshalsen",
+-	"stokke",
+-	"stor-elvdal",
+-	"stord",
+-	"stordal",
+-	"storfjord",
+-	"strand",
+-	"stranda",
+-	"stryn",
+-	"sula",
+-	"suldal",
+-	"sund",
+-	"sunndal",
+-	"surnadal",
+-	"svalbard",
+-	"sveio",
+-	"svelvik",
+-	"sykkylven",
+-	"tana",
+-	"tananger",
+-	"telemark",
+-	"time",
+-	"tingvoll",
+-	"tinn",
+-	"tjeldsund",
+-	"tjome",
+-	"tm",
+-	"tokke",
+-	"tolga",
+-	"tonsberg",
+-	"torsken",
+-	"tr",
+-	"trana",
+-	"tranby",
+-	"tranoy",
+-	"troandin",
+-	"trogstad",
+-	"tromsa",
+-	"tromso",
+-	"trondheim",
+-	"trysil",
+-	"tvedestrand",
+-	"tydal",
+-	"tynset",
+-	"tysfjord",
+-	"tysnes",
+-	"tysvar",
+-	"ullensaker",
+-	"ullensvang",
+-	"ulvik",
+-	"unjarga",
+-	"utsira",
+-	"va",
+-	"vaapste",
+-	"vadso",
+-	"vaga",
+-	"vagan",
+-	"vagsoy",
+-	"vaksdal",
+-	"valle",
+-	"vang",
+-	"vanylven",
+-	"vardo",
+-	"varggat",
+-	"varoy",
+-	"vefsn",
+-	"vega",
+-	"vegarshei",
+-	"vennesla",
+-	"verdal",
+-	"verran",
+-	"vestby",
+-	"vestfold",
+-	"vestnes",
+-	"vestre-slidre",
+-	"vestre-toten",
+-	"vestvagoy",
+-	"vevelstad",
+-	"vf",
+-	"vgs",
+-	"vik",
+-	"vikna",
+-	"vindafjord",
+-	"voagat",
+-	"volda",
+-	"voss",
+-	"vossevangen",
+-	"xn--andy-ira",
+-	"xn--asky-ira",
+-	"xn--aurskog-hland-jnb",
+-	"xn--avery-yua",
+-	"xn--bdddj-mrabd",
+-	"xn--bearalvhki-y4a",
+-	"xn--berlevg-jxa",
+-	"xn--bhcavuotna-s4a",
+-	"xn--bhccavuotna-k7a",
+-	"xn--bidr-5nac",
+-	"xn--bievt-0qa",
+-	"xn--bjarky-fya",
+-	"xn--bjddar-pta",
+-	"xn--blt-elab",
+-	"xn--bmlo-gra",
+-	"xn--bod-2na",
+-	"xn--brnny-wuac",
+-	"xn--brnnysund-m8ac",
+-	"xn--brum-voa",
+-	"xn--btsfjord-9za",
+-	"xn--davvenjrga-y4a",
+-	"xn--dnna-gra",
+-	"xn--drbak-wua",
+-	"xn--dyry-ira",
+-	"xn--eveni-0qa01ga",
+-	"xn--finny-yua",
+-	"xn--fjord-lra",
+-	"xn--fl-zia",
+-	"xn--flor-jra",
+-	"xn--frde-gra",
+-	"xn--frna-woa",
+-	"xn--frya-hra",
+-	"xn--ggaviika-8ya47h",
+-	"xn--gildeskl-g0a",
+-	"xn--givuotna-8ya",
+-	"xn--gjvik-wua",
+-	"xn--gls-elac",
+-	"xn--h-2fa",
+-	"xn--hbmer-xqa",
+-	"xn--hcesuolo-7ya35b",
+-	"xn--hgebostad-g3a",
+-	"xn--hmmrfeasta-s4ac",
+-	"xn--hnefoss-q1a",
+-	"xn--hobl-ira",
+-	"xn--holtlen-hxa",
+-	"xn--hpmir-xqa",
+-	"xn--hyanger-q1a",
+-	"xn--hylandet-54a",
+-	"xn--indery-fya",
+-	"xn--jlster-bya",
+-	"xn--jrpeland-54a",
+-	"xn--karmy-yua",
+-	"xn--kfjord-iua",
+-	"xn--klbu-woa",
+-	"xn--koluokta-7ya57h",
+-	"xn--krager-gya",
+-	"xn--kranghke-b0a",
+-	"xn--krdsherad-m8a",
+-	"xn--krehamn-dxa",
+-	"xn--krjohka-hwab49j",
+-	"xn--ksnes-uua",
+-	"xn--kvfjord-nxa",
+-	"xn--kvitsy-fya",
+-	"xn--kvnangen-k0a",
+-	"xn--l-1fa",
+-	"xn--laheadju-7ya",
+-	"xn--langevg-jxa",
+-	"xn--ldingen-q1a",
+-	"xn--leagaviika-52b",
+-	"xn--lesund-hua",
+-	"xn--lgrd-poac",
+-	"xn--lhppi-xqa",
+-	"xn--linds-pra",
+-	"xn--loabt-0qa",
+-	"xn--lrdal-sra",
+-	"xn--lrenskog-54a",
+-	"xn--lt-liac",
+-	"xn--lten-gra",
+-	"xn--lury-ira",
+-	"xn--mely-ira",
+-	"xn--merker-kua",
+-	"xn--mjndalen-64a",
+-	"xn--mlatvuopmi-s4a",
+-	"xn--mli-tla",
+-	"xn--mlselv-iua",
+-	"xn--moreke-jua",
+-	"xn--mosjen-eya",
+-	"xn--mot-tla",
+-	"xn--mre-og-romsdal-qqb",
+-	"xn--msy-ula0h",
+-	"xn--mtta-vrjjat-k7af",
+-	"xn--muost-0qa",
+-	"xn--nmesjevuemie-tcba",
+-	"xn--nry-yla5g",
+-	"xn--nttery-byae",
+-	"xn--nvuotna-hwa",
+-	"xn--oppegrd-ixa",
+-	"xn--ostery-fya",
+-	"xn--osyro-wua",
+-	"xn--porsgu-sta26f",
+-	"xn--rady-ira",
+-	"xn--rdal-poa",
+-	"xn--rde-ula",
+-	"xn--rdy-0nab",
+-	"xn--rennesy-v1a",
+-	"xn--rhkkervju-01af",
+-	"xn--rholt-mra",
+-	"xn--risa-5na",
+-	"xn--risr-ira",
+-	"xn--rland-uua",
+-	"xn--rlingen-mxa",
+-	"xn--rmskog-bya",
+-	"xn--rros-gra",
+-	"xn--rskog-uua",
+-	"xn--rst-0na",
+-	"xn--rsta-fra",
+-	"xn--ryken-vua",
+-	"xn--ryrvik-bya",
+-	"xn--s-1fa",
+-	"xn--sandnessjen-ogb",
+-	"xn--sandy-yua",
+-	"xn--seral-lra",
+-	"xn--sgne-gra",
+-	"xn--skierv-uta",
+-	"xn--skjervy-v1a",
+-	"xn--skjk-soa",
+-	"xn--sknit-yqa",
+-	"xn--sknland-fxa",
+-	"xn--slat-5na",
+-	"xn--slt-elab",
+-	"xn--smla-hra",
+-	"xn--smna-gra",
+-	"xn--snase-nra",
+-	"xn--sndre-land-0cb",
+-	"xn--snes-poa",
+-	"xn--snsa-roa",
+-	"xn--sr-aurdal-l8a",
+-	"xn--sr-fron-q1a",
+-	"xn--sr-odal-q1a",
+-	"xn--sr-varanger-ggb",
+-	"xn--srfold-bya",
+-	"xn--srreisa-q1a",
+-	"xn--srum-gra",
+-	"xn--stfold-9xa",
+-	"xn--stjrdal-s1a",
+-	"xn--stjrdalshalsen-sqb",
+-	"xn--stre-toten-zcb",
+-	"xn--tjme-hra",
+-	"xn--tnsberg-q1a",
+-	"xn--trany-yua",
+-	"xn--trgstad-r1a",
+-	"xn--trna-woa",
+-	"xn--troms-zua",
+-	"xn--tysvr-vra",
+-	"xn--unjrga-rta",
+-	"xn--vads-jra",
+-	"xn--vard-jra",
+-	"xn--vegrshei-c0a",
+-	"xn--vestvgy-ixa6o",
+-	"xn--vg-yiab",
+-	"xn--vgan-qoa",
+-	"xn--vgsy-qoa0j",
+-	"xn--vre-eiker-k8a",
+-	"xn--vrggt-xqad",
+-	"xn--vry-yla5g",
+-	"xn--yer-zna",
+-	"xn--ygarden-p1a",
+-	"xn--ystre-slidre-ujb",
+-	"gs",
+-	"gs",
+-	"nes",
+-	"gs",
+-	"nes",
+-	"gs",
+-	"os",
+-	"valer",
+-	"xn--vler-qoa",
+-	"gs",
+-	"gs",
+-	"os",
+-	"gs",
+-	"heroy",
+-	"sande",
+-	"gs",
+-	"gs",
+-	"bo",
+-	"heroy",
+-	"xn--b-5ga",
+-	"xn--hery-ira",
+-	"gs",
+-	"gs",
+-	"gs",
+-	"gs",
+-	"valer",
+-	"gs",
+-	"gs",
+-	"gs",
+-	"gs",
+-	"bo",
+-	"xn--b-5ga",
+-	"gs",
+-	"gs",
+-	"gs",
+-	"sande",
+-	"gs",
+-	"sande",
+-	"xn--hery-ira",
+-	"xn--vler-qoa",
+-	"biz",
+-	"com",
+-	"edu",
+-	"gov",
+-	"info",
+-	"net",
+-	"org",
+-	"merseine",
+-	"mine",
+-	"shacknet",
+-	"co",
+-	"blogspot",
+-	"mediaphone",
+-	"nawras",
+-	"nawrastelecom",
+-	"omanmobile",
+-	"omanpost",
+-	"omantel",
+-	"rakpetroleum",
+-	"siemens",
+-	"songfest",
+-	"statecouncil",
+-	"ae",
+-	"blogdns",
+-	"blogsite",
+-	"boldlygoingnowhere",
+-	"dnsalias",
+-	"dnsdojo",
+-	"doesntexist",
+-	"dontexist",
+-	"doomdns",
+-	"dvrdns",
+-	"dynalias",
+-	"dyndns",
+-	"endofinternet",
+-	"endoftheinternet",
+-	"from-me",
+-	"game-host",
+-	"gotdns",
+-	"hobby-site",
+-	"homedns",
+-	"homeftp",
+-	"homelinux",
+-	"homeunix",
+-	"is-a-bruinsfan",
+-	"is-a-candidate",
+-	"is-a-celticsfan",
+-	"is-a-chef",
+-	"is-a-geek",
+-	"is-a-knight",
+-	"is-a-linux-user",
+-	"is-a-patsfan",
+-	"is-a-soxfan",
+-	"is-found",
+-	"is-lost",
+-	"is-saved",
+-	"is-very-bad",
+-	"is-very-evil",
+-	"is-very-good",
+-	"is-very-nice",
+-	"is-very-sweet",
+-	"isa-geek",
+-	"kicks-ass",
+-	"misconfused",
+-	"podzone",
+-	"readmyblog",
+-	"selfip",
+-	"sellsyourhome",
+-	"servebbs",
+-	"serveftp",
+-	"servegame",
+-	"stuff-4-sale",
+-	"us",
+-	"webhop",
+-	"za",
+-	"go",
+-	"home",
+-	"abo",
+-	"ac",
+-	"com",
+-	"edu",
+-	"gob",
+-	"ing",
+-	"med",
+-	"net",
+-	"nom",
+-	"org",
+-	"sld",
+-	"com",
+-	"edu",
+-	"gob",
+-	"mil",
+-	"net",
+-	"nom",
+-	"org",
+-	"com",
+-	"edu",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"i",
+-	"mil",
+-	"net",
+-	"ngo",
+-	"org",
+-	"biz",
+-	"com",
+-	"edu",
+-	"fam",
+-	"gob",
+-	"gok",
+-	"gon",
+-	"gop",
+-	"gos",
+-	"gov",
+-	"info",
+-	"net",
+-	"org",
+-	"web",
+-	"6bone",
+-	"agro",
+-	"aid",
+-	"art",
+-	"atm",
+-	"augustow",
+-	"auto",
+-	"babia-gora",
+-	"bedzin",
+-	"beskidy",
+-	"bialowieza",
+-	"bialystok",
+-	"bielawa",
+-	"bieszczady",
+-	"biz",
+-	"boleslawiec",
+-	"bydgoszcz",
+-	"bytom",
+-	"cieszyn",
+-	"co",
+-	"com",
+-	"czeladz",
+-	"czest",
+-	"dlugoleka",
+-	"edu",
+-	"elblag",
+-	"elk",
+-	"gda",
+-	"gdansk",
+-	"gdynia",
+-	"gliwice",
+-	"glogow",
+-	"gmina",
+-	"gniezno",
+-	"gorlice",
+-	"gov",
+-	"grajewo",
+-	"gsm",
+-	"ilawa",
+-	"info",
+-	"irc",
+-	"jaworzno",
+-	"jelenia-gora",
+-	"jgora",
+-	"kalisz",
+-	"karpacz",
+-	"kartuzy",
+-	"kaszuby",
+-	"katowice",
+-	"kazimierz-dolny",
+-	"kepno",
+-	"ketrzyn",
+-	"klodzko",
+-	"kobierzyce",
+-	"kolobrzeg",
+-	"konin",
+-	"konskowola",
+-	"krakow",
+-	"kutno",
+-	"lapy",
+-	"lebork",
+-	"legnica",
+-	"lezajsk",
+-	"limanowa",
+-	"lomza",
+-	"lowicz",
+-	"lubin",
+-	"lukow",
+-	"mail",
+-	"malbork",
+-	"malopolska",
+-	"mazowsze",
+-	"mazury",
+-	"mbone",
+-	"med",
+-	"media",
+-	"miasta",
+-	"mielec",
+-	"mielno",
+-	"mil",
+-	"mragowo",
+-	"naklo",
+-	"net",
+-	"ngo",
+-	"nieruchomosci",
+-	"nom",
+-	"nowaruda",
+-	"nysa",
+-	"olawa",
+-	"olecko",
+-	"olkusz",
+-	"olsztyn",
+-	"opoczno",
+-	"opole",
+-	"org",
+-	"ostroda",
+-	"ostroleka",
+-	"ostrowiec",
+-	"ostrowwlkp",
+-	"pc",
+-	"pila",
+-	"pisz",
+-	"podhale",
+-	"podlasie",
+-	"polkowice",
+-	"pomorskie",
+-	"pomorze",
+-	"powiat",
+-	"poznan",
+-	"priv",
+-	"prochowice",
+-	"pruszkow",
+-	"przeworsk",
+-	"pulawy",
+-	"radom",
+-	"rawa-maz",
+-	"realestate",
+-	"rel",
+-	"rybnik",
+-	"rzeszow",
+-	"sanok",
+-	"sejny",
+-	"sex",
+-	"shop",
+-	"siedlce",
+-	"sklep",
+-	"skoczow",
+-	"slask",
+-	"slupsk",
+-	"sopot",
+-	"sos",
+-	"sosnowiec",
+-	"stalowa-wola",
+-	"starachowice",
+-	"stargard",
+-	"suwalki",
+-	"swidnica",
+-	"swiebodzin",
+-	"swinoujscie",
+-	"szczecin",
+-	"szczytno",
+-	"szkola",
+-	"targi",
+-	"tarnobrzeg",
+-	"tgory",
+-	"tm",
+-	"tourism",
+-	"travel",
+-	"turek",
+-	"turystyka",
+-	"tychy",
+-	"usenet",
+-	"ustka",
+-	"walbrzych",
+-	"warmia",
+-	"warszawa",
+-	"waw",
+-	"wegrow",
+-	"wielun",
+-	"wlocl",
+-	"wloclawek",
+-	"wodzislaw",
+-	"wolomin",
+-	"wroc",
+-	"wroclaw",
+-	"zachpomor",
+-	"zagan",
+-	"zakopane",
+-	"zarow",
+-	"zgora",
+-	"zgorzelec",
+-	"pa",
+-	"po",
+-	"so",
+-	"sr",
+-	"starostwo",
+-	"ug",
+-	"um",
+-	"upow",
+-	"uw",
+-	"co",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"ac",
+-	"biz",
+-	"com",
+-	"edu",
+-	"est",
+-	"gov",
+-	"info",
+-	"isla",
+-	"name",
+-	"net",
+-	"org",
+-	"pro",
+-	"prof",
+-	"aca",
+-	"bar",
+-	"cpa",
+-	"eng",
+-	"jur",
+-	"law",
+-	"med",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"plo",
+-	"sec",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gov",
+-	"int",
+-	"net",
+-	"nome",
+-	"org",
+-	"publ",
+-	"belau",
+-	"co",
+-	"ed",
+-	"go",
+-	"ne",
+-	"or",
+-	"com",
+-	"coop",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"name",
+-	"net",
+-	"org",
+-	"sch",
+-	"asso",
+-	"blogspot",
+-	"com",
+-	"nom",
+-	"arts",
+-	"blogspot",
+-	"com",
+-	"firm",
+-	"info",
+-	"nom",
+-	"nt",
+-	"org",
+-	"rec",
+-	"store",
+-	"tm",
+-	"www",
+-	"ac",
+-	"co",
+-	"edu",
+-	"gov",
+-	"in",
+-	"org",
+-	"ac",
+-	"adygeya",
+-	"altai",
+-	"amur",
+-	"amursk",
+-	"arkhangelsk",
+-	"astrakhan",
+-	"baikal",
+-	"bashkiria",
+-	"belgorod",
+-	"bir",
+-	"bryansk",
+-	"buryatia",
+-	"cbg",
+-	"chel",
+-	"chelyabinsk",
+-	"chita",
+-	"chukotka",
+-	"chuvashia",
+-	"cmw",
+-	"com",
+-	"dagestan",
+-	"dudinka",
+-	"e-burg",
+-	"edu",
+-	"fareast",
+-	"gov",
+-	"grozny",
+-	"int",
+-	"irkutsk",
+-	"ivanovo",
+-	"izhevsk",
+-	"jamal",
+-	"jar",
+-	"joshkar-ola",
+-	"k-uralsk",
+-	"kalmykia",
+-	"kaluga",
+-	"kamchatka",
+-	"karelia",
+-	"kazan",
+-	"kchr",
+-	"kemerovo",
+-	"khabarovsk",
+-	"khakassia",
+-	"khv",
+-	"kirov",
+-	"kms",
+-	"koenig",
+-	"komi",
+-	"kostroma",
+-	"krasnoyarsk",
+-	"kuban",
+-	"kurgan",
+-	"kursk",
+-	"kustanai",
+-	"kuzbass",
+-	"lipetsk",
+-	"magadan",
+-	"magnitka",
+-	"mari",
+-	"mari-el",
+-	"marine",
+-	"mil",
+-	"mordovia",
+-	"mosreg",
+-	"msk",
+-	"murmansk",
+-	"mytis",
+-	"nakhodka",
+-	"nalchik",
+-	"net",
+-	"nkz",
+-	"nnov",
+-	"norilsk",
+-	"nov",
+-	"novosibirsk",
+-	"nsk",
+-	"omsk",
+-	"orenburg",
+-	"org",
+-	"oryol",
+-	"oskol",
+-	"palana",
+-	"penza",
+-	"perm",
+-	"pp",
+-	"pskov",
+-	"ptz",
+-	"pyatigorsk",
+-	"rnd",
+-	"rubtsovsk",
+-	"ryazan",
+-	"sakhalin",
+-	"samara",
+-	"saratov",
+-	"simbirsk",
+-	"smolensk",
+-	"snz",
+-	"spb",
+-	"stavropol",
+-	"stv",
+-	"surgut",
+-	"syzran",
+-	"tambov",
+-	"tatarstan",
+-	"test",
+-	"tom",
+-	"tomsk",
+-	"tsaritsyn",
+-	"tsk",
+-	"tula",
+-	"tuva",
+-	"tver",
+-	"tyumen",
+-	"udm",
+-	"udmurtia",
+-	"ulan-ude",
+-	"vdonsk",
+-	"vladikavkaz",
+-	"vladimir",
+-	"vladivostok",
+-	"volgograd",
+-	"vologda",
+-	"voronezh",
+-	"vrn",
+-	"vyatka",
+-	"yakutia",
+-	"yamal",
+-	"yaroslavl",
+-	"yekaterinburg",
+-	"yuzhno-sakhalinsk",
+-	"zgrad",
+-	"ac",
+-	"co",
+-	"com",
+-	"edu",
+-	"gouv",
+-	"gov",
+-	"int",
+-	"mil",
+-	"net",
+-	"com",
+-	"edu",
+-	"gov",
+-	"med",
+-	"net",
+-	"org",
+-	"pub",
+-	"sch",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"info",
+-	"med",
+-	"net",
+-	"org",
+-	"tv",
+-	"a",
+-	"ac",
+-	"b",
+-	"bd",
+-	"blogspot",
+-	"brand",
+-	"c",
+-	"d",
+-	"e",
+-	"f",
+-	"fh",
+-	"fhsk",
+-	"fhv",
+-	"g",
+-	"h",
+-	"i",
+-	"k",
+-	"komforb",
+-	"kommunalforbund",
+-	"komvux",
+-	"l",
+-	"lanbib",
+-	"m",
+-	"n",
+-	"naturbruksgymn",
+-	"o",
+-	"org",
+-	"p",
+-	"parti",
+-	"pp",
+-	"press",
+-	"r",
+-	"s",
+-	"sshn",
+-	"t",
+-	"tm",
+-	"u",
+-	"w",
+-	"x",
+-	"y",
+-	"z",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"per",
+-	"com",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"blogspot",
+-	"com",
+-	"edu",
+-	"gov",
+-	"net",
+-	"org",
+-	"art",
+-	"com",
+-	"edu",
+-	"gouv",
+-	"org",
+-	"perso",
+-	"univ",
+-	"com",
+-	"net",
+-	"org",
+-	"co",
+-	"com",
+-	"consulado",
+-	"edu",
+-	"embaixada",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"principe",
+-	"saotome",
+-	"store",
+-	"gov",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"ac",
+-	"co",
+-	"org",
+-	"blogspot",
+-	"ac",
+-	"co",
+-	"go",
+-	"in",
+-	"mi",
+-	"net",
+-	"or",
+-	"ac",
+-	"biz",
+-	"co",
+-	"com",
+-	"edu",
+-	"go",
+-	"gov",
+-	"int",
+-	"mil",
+-	"name",
+-	"net",
+-	"nic",
+-	"org",
+-	"test",
+-	"web",
+-	"gov",
+-	"co",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"nom",
+-	"org",
+-	"agrinet",
+-	"com",
+-	"defense",
+-	"edunet",
+-	"ens",
+-	"fin",
+-	"gov",
+-	"ind",
+-	"info",
+-	"intl",
+-	"mincom",
+-	"nat",
+-	"net",
+-	"org",
+-	"perso",
+-	"rnrt",
+-	"rns",
+-	"rnu",
+-	"tourism",
+-	"turen",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"nc",
+-	"nic",
+-	"gov",
+-	"aero",
+-	"biz",
+-	"co",
+-	"com",
+-	"coop",
+-	"edu",
+-	"gov",
+-	"info",
+-	"int",
+-	"jobs",
+-	"mobi",
+-	"museum",
+-	"name",
+-	"net",
+-	"org",
+-	"pro",
+-	"travel",
+-	"better-than",
+-	"dyndns",
+-	"on-the-web",
+-	"worse-than",
+-	"blogspot",
+-	"club",
+-	"com",
+-	"ebiz",
+-	"edu",
+-	"game",
+-	"gov",
+-	"idv",
+-	"mil",
+-	"net",
+-	"org",
+-	"xn--czrw28b",
+-	"xn--uc0atv",
+-	"xn--zf0ao64a",
+-	"ac",
+-	"co",
+-	"go",
+-	"hotel",
+-	"info",
+-	"me",
+-	"mil",
+-	"mobi",
+-	"ne",
+-	"or",
+-	"sc",
+-	"tv",
+-	"cherkassy",
+-	"cherkasy",
+-	"chernigov",
+-	"chernihiv",
+-	"chernivtsi",
+-	"chernovtsy",
+-	"ck",
+-	"cn",
+-	"co",
+-	"com",
+-	"cr",
+-	"crimea",
+-	"cv",
+-	"dn",
+-	"dnepropetrovsk",
+-	"dnipropetrovsk",
+-	"dominic",
+-	"donetsk",
+-	"dp",
+-	"edu",
+-	"gov",
+-	"if",
+-	"in",
+-	"ivano-frankivsk",
+-	"kh",
+-	"kharkiv",
+-	"kharkov",
+-	"kherson",
+-	"khmelnitskiy",
+-	"khmelnytskyi",
+-	"kiev",
+-	"kirovograd",
+-	"km",
+-	"kr",
+-	"krym",
+-	"ks",
+-	"kv",
+-	"kyiv",
+-	"lg",
+-	"lt",
+-	"lugansk",
+-	"lutsk",
+-	"lv",
+-	"lviv",
+-	"mk",
+-	"mykolaiv",
+-	"net",
+-	"nikolaev",
+-	"od",
+-	"odesa",
+-	"odessa",
+-	"org",
+-	"pl",
+-	"poltava",
+-	"pp",
+-	"rivne",
+-	"rovno",
+-	"rv",
+-	"sb",
+-	"sebastopol",
+-	"sevastopol",
+-	"sm",
+-	"sumy",
+-	"te",
+-	"ternopil",
+-	"uz",
+-	"uzhgorod",
+-	"vinnica",
+-	"vinnytsia",
+-	"vn",
+-	"volyn",
+-	"yalta",
+-	"zaporizhzhe",
+-	"zaporizhzhia",
+-	"zhitomir",
+-	"zhytomyr",
+-	"zp",
+-	"zt",
+-	"ac",
+-	"co",
+-	"com",
+-	"go",
+-	"ne",
+-	"or",
+-	"org",
+-	"sc",
+-	"bl",
+-	"british-library",
+-	"co",
+-	"jet",
+-	"mod",
+-	"national-library-scotland",
+-	"nel",
+-	"nic",
+-	"nls",
+-	"parliament",
+-	"sch",
+-	"blogspot",
+-	"ak",
+-	"al",
+-	"ar",
+-	"as",
+-	"az",
+-	"ca",
+-	"co",
+-	"ct",
+-	"dc",
+-	"de",
+-	"dni",
+-	"fed",
+-	"fl",
+-	"ga",
+-	"gu",
+-	"hi",
+-	"ia",
+-	"id",
+-	"il",
+-	"in",
+-	"is-by",
+-	"isa",
+-	"kids",
+-	"ks",
+-	"ky",
+-	"la",
+-	"land-4-sale",
+-	"ma",
+-	"md",
+-	"me",
+-	"mi",
+-	"mn",
+-	"mo",
+-	"ms",
+-	"mt",
+-	"nc",
+-	"nd",
+-	"ne",
+-	"nh",
+-	"nj",
+-	"nm",
+-	"nsn",
+-	"nv",
+-	"ny",
+-	"oh",
+-	"ok",
+-	"or",
+-	"pa",
+-	"pr",
+-	"ri",
+-	"sc",
+-	"sd",
+-	"stuff-4-sale",
+-	"tn",
+-	"tx",
+-	"ut",
+-	"va",
+-	"vi",
+-	"vt",
+-	"wa",
+-	"wi",
+-	"wv",
+-	"wy",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"chtr",
+-	"paroch",
+-	"pvt",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"cc",
+-	"k12",
+-	"lib",
+-	"com",
+-	"edu",
+-	"gub",
+-	"mil",
+-	"net",
+-	"org",
+-	"co",
+-	"com",
+-	"net",
+-	"org",
+-	"com",
+-	"edu",
+-	"gov",
+-	"mil",
+-	"net",
+-	"org",
+-	"co",
+-	"com",
+-	"e12",
+-	"edu",
+-	"gov",
+-	"info",
+-	"mil",
+-	"net",
+-	"org",
+-	"web",
+-	"co",
+-	"com",
+-	"k12",
+-	"net",
+-	"org",
+-	"ac",
+-	"biz",
+-	"com",
+-	"edu",
+-	"gov",
+-	"health",
+-	"info",
+-	"int",
+-	"name",
+-	"net",
+-	"org",
+-	"pro",
+-	"com",
+-	"dyndns",
+-	"edu",
+-	"gov",
+-	"mypets",
+-	"net",
+-	"org",
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/README docker-devmapper/vendor/src/code.google.com/p/go.net/README
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/README	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/README	1969-12-31 18:00:00.000000000 -0600
+@@ -1,3 +0,0 @@
+-This repository holds supplementary Go networking libraries.
+-
+-To submit changes to this repository, see http://golang.org/doc/contribute.html.
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/dictionary.go docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/dictionary.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/dictionary.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/dictionary.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,187 +0,0 @@
+-// Copyright 2013 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package spdy
+-
+-// headerDictionary is the dictionary sent to the zlib compressor/decompressor.
+-var headerDictionary = []byte{
+-	0x00, 0x00, 0x00, 0x07, 0x6f, 0x70, 0x74, 0x69,
+-	0x6f, 0x6e, 0x73, 0x00, 0x00, 0x00, 0x04, 0x68,
+-	0x65, 0x61, 0x64, 0x00, 0x00, 0x00, 0x04, 0x70,
+-	0x6f, 0x73, 0x74, 0x00, 0x00, 0x00, 0x03, 0x70,
+-	0x75, 0x74, 0x00, 0x00, 0x00, 0x06, 0x64, 0x65,
+-	0x6c, 0x65, 0x74, 0x65, 0x00, 0x00, 0x00, 0x05,
+-	0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x00, 0x00,
+-	0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x00,
+-	0x00, 0x00, 0x0e, 0x61, 0x63, 0x63, 0x65, 0x70,
+-	0x74, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65,
+-	0x74, 0x00, 0x00, 0x00, 0x0f, 0x61, 0x63, 0x63,
+-	0x65, 0x70, 0x74, 0x2d, 0x65, 0x6e, 0x63, 0x6f,
+-	0x64, 0x69, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x0f,
+-	0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x6c,
+-	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x00,
+-	0x00, 0x00, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70,
+-	0x74, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73,
+-	0x00, 0x00, 0x00, 0x03, 0x61, 0x67, 0x65, 0x00,
+-	0x00, 0x00, 0x05, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
+-	0x00, 0x00, 0x00, 0x0d, 0x61, 0x75, 0x74, 0x68,
+-	0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
+-	0x6e, 0x00, 0x00, 0x00, 0x0d, 0x63, 0x61, 0x63,
+-	0x68, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72,
+-	0x6f, 0x6c, 0x00, 0x00, 0x00, 0x0a, 0x63, 0x6f,
+-	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+-	0x00, 0x00, 0x00, 0x0c, 0x63, 0x6f, 0x6e, 0x74,
+-	0x65, 0x6e, 0x74, 0x2d, 0x62, 0x61, 0x73, 0x65,
+-	0x00, 0x00, 0x00, 0x10, 0x63, 0x6f, 0x6e, 0x74,
+-	0x65, 0x6e, 0x74, 0x2d, 0x65, 0x6e, 0x63, 0x6f,
+-	0x64, 0x69, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x10,
+-	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d,
+-	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
+-	0x00, 0x00, 0x00, 0x0e, 0x63, 0x6f, 0x6e, 0x74,
+-	0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x65, 0x6e, 0x67,
+-	0x74, 0x68, 0x00, 0x00, 0x00, 0x10, 0x63, 0x6f,
+-	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x6f,
+-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00,
+-	0x00, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+-	0x74, 0x2d, 0x6d, 0x64, 0x35, 0x00, 0x00, 0x00,
+-	0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
+-	0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x00,
+-	0x00, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+-	0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x00, 0x00,
+-	0x00, 0x04, 0x64, 0x61, 0x74, 0x65, 0x00, 0x00,
+-	0x00, 0x04, 0x65, 0x74, 0x61, 0x67, 0x00, 0x00,
+-	0x00, 0x06, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74,
+-	0x00, 0x00, 0x00, 0x07, 0x65, 0x78, 0x70, 0x69,
+-	0x72, 0x65, 0x73, 0x00, 0x00, 0x00, 0x04, 0x66,
+-	0x72, 0x6f, 0x6d, 0x00, 0x00, 0x00, 0x04, 0x68,
+-	0x6f, 0x73, 0x74, 0x00, 0x00, 0x00, 0x08, 0x69,
+-	0x66, 0x2d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x00,
+-	0x00, 0x00, 0x11, 0x69, 0x66, 0x2d, 0x6d, 0x6f,
+-	0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2d, 0x73,
+-	0x69, 0x6e, 0x63, 0x65, 0x00, 0x00, 0x00, 0x0d,
+-	0x69, 0x66, 0x2d, 0x6e, 0x6f, 0x6e, 0x65, 0x2d,
+-	0x6d, 0x61, 0x74, 0x63, 0x68, 0x00, 0x00, 0x00,
+-	0x08, 0x69, 0x66, 0x2d, 0x72, 0x61, 0x6e, 0x67,
+-	0x65, 0x00, 0x00, 0x00, 0x13, 0x69, 0x66, 0x2d,
+-	0x75, 0x6e, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
+-	0x65, 0x64, 0x2d, 0x73, 0x69, 0x6e, 0x63, 0x65,
+-	0x00, 0x00, 0x00, 0x0d, 0x6c, 0x61, 0x73, 0x74,
+-	0x2d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65,
+-	0x64, 0x00, 0x00, 0x00, 0x08, 0x6c, 0x6f, 0x63,
+-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00,
+-	0x0c, 0x6d, 0x61, 0x78, 0x2d, 0x66, 0x6f, 0x72,
+-	0x77, 0x61, 0x72, 0x64, 0x73, 0x00, 0x00, 0x00,
+-	0x06, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x00,
+-	0x00, 0x00, 0x12, 0x70, 0x72, 0x6f, 0x78, 0x79,
+-	0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
+-	0x69, 0x63, 0x61, 0x74, 0x65, 0x00, 0x00, 0x00,
+-	0x13, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2d, 0x61,
+-	0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61,
+-	0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x05,
+-	0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x00, 0x00,
+-	0x07, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72,
+-	0x00, 0x00, 0x00, 0x0b, 0x72, 0x65, 0x74, 0x72,
+-	0x79, 0x2d, 0x61, 0x66, 0x74, 0x65, 0x72, 0x00,
+-	0x00, 0x00, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65,
+-	0x72, 0x00, 0x00, 0x00, 0x02, 0x74, 0x65, 0x00,
+-	0x00, 0x00, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6c,
+-	0x65, 0x72, 0x00, 0x00, 0x00, 0x11, 0x74, 0x72,
+-	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2d, 0x65,
+-	0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x00,
+-	0x00, 0x00, 0x07, 0x75, 0x70, 0x67, 0x72, 0x61,
+-	0x64, 0x65, 0x00, 0x00, 0x00, 0x0a, 0x75, 0x73,
+-	0x65, 0x72, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
+-	0x00, 0x00, 0x00, 0x04, 0x76, 0x61, 0x72, 0x79,
+-	0x00, 0x00, 0x00, 0x03, 0x76, 0x69, 0x61, 0x00,
+-	0x00, 0x00, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69,
+-	0x6e, 0x67, 0x00, 0x00, 0x00, 0x10, 0x77, 0x77,
+-	0x77, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
+-	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x00, 0x00,
+-	0x00, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
+-	0x00, 0x00, 0x00, 0x03, 0x67, 0x65, 0x74, 0x00,
+-	0x00, 0x00, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+-	0x73, 0x00, 0x00, 0x00, 0x06, 0x32, 0x30, 0x30,
+-	0x20, 0x4f, 0x4b, 0x00, 0x00, 0x00, 0x07, 0x76,
+-	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x00, 0x00,
+-	0x00, 0x08, 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31,
+-	0x2e, 0x31, 0x00, 0x00, 0x00, 0x03, 0x75, 0x72,
+-	0x6c, 0x00, 0x00, 0x00, 0x06, 0x70, 0x75, 0x62,
+-	0x6c, 0x69, 0x63, 0x00, 0x00, 0x00, 0x0a, 0x73,
+-	0x65, 0x74, 0x2d, 0x63, 0x6f, 0x6f, 0x6b, 0x69,
+-	0x65, 0x00, 0x00, 0x00, 0x0a, 0x6b, 0x65, 0x65,
+-	0x70, 0x2d, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x00,
+-	0x00, 0x00, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69,
+-	0x6e, 0x31, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
+-	0x30, 0x31, 0x32, 0x30, 0x32, 0x32, 0x30, 0x35,
+-	0x32, 0x30, 0x36, 0x33, 0x30, 0x30, 0x33, 0x30,
+-	0x32, 0x33, 0x30, 0x33, 0x33, 0x30, 0x34, 0x33,
+-	0x30, 0x35, 0x33, 0x30, 0x36, 0x33, 0x30, 0x37,
+-	0x34, 0x30, 0x32, 0x34, 0x30, 0x35, 0x34, 0x30,
+-	0x36, 0x34, 0x30, 0x37, 0x34, 0x30, 0x38, 0x34,
+-	0x30, 0x39, 0x34, 0x31, 0x30, 0x34, 0x31, 0x31,
+-	0x34, 0x31, 0x32, 0x34, 0x31, 0x33, 0x34, 0x31,
+-	0x34, 0x34, 0x31, 0x35, 0x34, 0x31, 0x36, 0x34,
+-	0x31, 0x37, 0x35, 0x30, 0x32, 0x35, 0x30, 0x34,
+-	0x35, 0x30, 0x35, 0x32, 0x30, 0x33, 0x20, 0x4e,
+-	0x6f, 0x6e, 0x2d, 0x41, 0x75, 0x74, 0x68, 0x6f,
+-	0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65,
+-	0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+-	0x74, 0x69, 0x6f, 0x6e, 0x32, 0x30, 0x34, 0x20,
+-	0x4e, 0x6f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65,
+-	0x6e, 0x74, 0x33, 0x30, 0x31, 0x20, 0x4d, 0x6f,
+-	0x76, 0x65, 0x64, 0x20, 0x50, 0x65, 0x72, 0x6d,
+-	0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x34,
+-	0x30, 0x30, 0x20, 0x42, 0x61, 0x64, 0x20, 0x52,
+-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x34, 0x30,
+-	0x31, 0x20, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68,
+-	0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x34, 0x30,
+-	0x33, 0x20, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64,
+-	0x64, 0x65, 0x6e, 0x34, 0x30, 0x34, 0x20, 0x4e,
+-	0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64,
+-	0x35, 0x30, 0x30, 0x20, 0x49, 0x6e, 0x74, 0x65,
+-	0x72, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72,
+-	0x76, 0x65, 0x72, 0x20, 0x45, 0x72, 0x72, 0x6f,
+-	0x72, 0x35, 0x30, 0x31, 0x20, 0x4e, 0x6f, 0x74,
+-	0x20, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65,
+-	0x6e, 0x74, 0x65, 0x64, 0x35, 0x30, 0x33, 0x20,
+-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20,
+-	0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
+-	0x62, 0x6c, 0x65, 0x4a, 0x61, 0x6e, 0x20, 0x46,
+-	0x65, 0x62, 0x20, 0x4d, 0x61, 0x72, 0x20, 0x41,
+-	0x70, 0x72, 0x20, 0x4d, 0x61, 0x79, 0x20, 0x4a,
+-	0x75, 0x6e, 0x20, 0x4a, 0x75, 0x6c, 0x20, 0x41,
+-	0x75, 0x67, 0x20, 0x53, 0x65, 0x70, 0x74, 0x20,
+-	0x4f, 0x63, 0x74, 0x20, 0x4e, 0x6f, 0x76, 0x20,
+-	0x44, 0x65, 0x63, 0x20, 0x30, 0x30, 0x3a, 0x30,
+-	0x30, 0x3a, 0x30, 0x30, 0x20, 0x4d, 0x6f, 0x6e,
+-	0x2c, 0x20, 0x54, 0x75, 0x65, 0x2c, 0x20, 0x57,
+-	0x65, 0x64, 0x2c, 0x20, 0x54, 0x68, 0x75, 0x2c,
+-	0x20, 0x46, 0x72, 0x69, 0x2c, 0x20, 0x53, 0x61,
+-	0x74, 0x2c, 0x20, 0x53, 0x75, 0x6e, 0x2c, 0x20,
+-	0x47, 0x4d, 0x54, 0x63, 0x68, 0x75, 0x6e, 0x6b,
+-	0x65, 0x64, 0x2c, 0x74, 0x65, 0x78, 0x74, 0x2f,
+-	0x68, 0x74, 0x6d, 0x6c, 0x2c, 0x69, 0x6d, 0x61,
+-	0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0x2c, 0x69,
+-	0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x67,
+-	0x2c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67,
+-	0x69, 0x66, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69,
+-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+-	0x6d, 0x6c, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69,
+-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+-	0x68, 0x74, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c,
+-	0x2c, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x70, 0x6c,
+-	0x61, 0x69, 0x6e, 0x2c, 0x74, 0x65, 0x78, 0x74,
+-	0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72,
+-	0x69, 0x70, 0x74, 0x2c, 0x70, 0x75, 0x62, 0x6c,
+-	0x69, 0x63, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
+-	0x65, 0x6d, 0x61, 0x78, 0x2d, 0x61, 0x67, 0x65,
+-	0x3d, 0x67, 0x7a, 0x69, 0x70, 0x2c, 0x64, 0x65,
+-	0x66, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x73, 0x64,
+-	0x63, 0x68, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65,
+-	0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x63,
+-	0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x69,
+-	0x73, 0x6f, 0x2d, 0x38, 0x38, 0x35, 0x39, 0x2d,
+-	0x31, 0x2c, 0x75, 0x74, 0x66, 0x2d, 0x2c, 0x2a,
+-	0x2c, 0x65, 0x6e, 0x71, 0x3d, 0x30, 0x2e,
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/read.go docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/read.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/read.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/read.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,348 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package spdy
+-
+-import (
+-	"compress/zlib"
+-	"encoding/binary"
+-	"io"
+-	"net/http"
+-	"strings"
+-)
+-
+-func (frame *SynStreamFrame) read(h ControlFrameHeader, f *Framer) error {
+-	return f.readSynStreamFrame(h, frame)
+-}
+-
+-func (frame *SynReplyFrame) read(h ControlFrameHeader, f *Framer) error {
+-	return f.readSynReplyFrame(h, frame)
+-}
+-
+-func (frame *RstStreamFrame) read(h ControlFrameHeader, f *Framer) error {
+-	frame.CFHeader = h
+-	if err := binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
+-		return err
+-	}
+-	if err := binary.Read(f.r, binary.BigEndian, &frame.Status); err != nil {
+-		return err
+-	}
+-	if frame.Status == 0 {
+-		return &Error{InvalidControlFrame, frame.StreamId}
+-	}
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	return nil
+-}
+-
+-func (frame *SettingsFrame) read(h ControlFrameHeader, f *Framer) error {
+-	frame.CFHeader = h
+-	var numSettings uint32
+-	if err := binary.Read(f.r, binary.BigEndian, &numSettings); err != nil {
+-		return err
+-	}
+-	frame.FlagIdValues = make([]SettingsFlagIdValue, numSettings)
+-	for i := uint32(0); i < numSettings; i++ {
+-		if err := binary.Read(f.r, binary.BigEndian, &frame.FlagIdValues[i].Id); err != nil {
+-			return err
+-		}
+-		frame.FlagIdValues[i].Flag = SettingsFlag((frame.FlagIdValues[i].Id & 0xff000000) >> 24)
+-		frame.FlagIdValues[i].Id &= 0xffffff
+-		if err := binary.Read(f.r, binary.BigEndian, &frame.FlagIdValues[i].Value); err != nil {
+-			return err
+-		}
+-	}
+-	return nil
+-}
+-
+-func (frame *PingFrame) read(h ControlFrameHeader, f *Framer) error {
+-	frame.CFHeader = h
+-	if err := binary.Read(f.r, binary.BigEndian, &frame.Id); err != nil {
+-		return err
+-	}
+-	if frame.Id == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	if frame.CFHeader.Flags != 0 {
+-		return &Error{InvalidControlFrame, StreamId(frame.Id)}
+-	}
+-	return nil
+-}
+-
+-func (frame *GoAwayFrame) read(h ControlFrameHeader, f *Framer) error {
+-	frame.CFHeader = h
+-	if err := binary.Read(f.r, binary.BigEndian, &frame.LastGoodStreamId); err != nil {
+-		return err
+-	}
+-	if frame.CFHeader.Flags != 0 {
+-		return &Error{InvalidControlFrame, frame.LastGoodStreamId}
+-	}
+-	if frame.CFHeader.length != 8 {
+-		return &Error{InvalidControlFrame, frame.LastGoodStreamId}
+-	}
+-	if err := binary.Read(f.r, binary.BigEndian, &frame.Status); err != nil {
+-		return err
+-	}
+-	return nil
+-}
+-
+-func (frame *HeadersFrame) read(h ControlFrameHeader, f *Framer) error {
+-	return f.readHeadersFrame(h, frame)
+-}
+-
+-func (frame *WindowUpdateFrame) read(h ControlFrameHeader, f *Framer) error {
+-	frame.CFHeader = h
+-	if err := binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
+-		return err
+-	}
+-	if frame.CFHeader.Flags != 0 {
+-		return &Error{InvalidControlFrame, frame.StreamId}
+-	}
+-	if frame.CFHeader.length != 8 {
+-		return &Error{InvalidControlFrame, frame.StreamId}
+-	}
+-	if err := binary.Read(f.r, binary.BigEndian, &frame.DeltaWindowSize); err != nil {
+-		return err
+-	}
+-	return nil
+-}
+-
+-func newControlFrame(frameType ControlFrameType) (controlFrame, error) {
+-	ctor, ok := cframeCtor[frameType]
+-	if !ok {
+-		return nil, &Error{Err: InvalidControlFrame}
+-	}
+-	return ctor(), nil
+-}
+-
+-var cframeCtor = map[ControlFrameType]func() controlFrame{
+-	TypeSynStream:    func() controlFrame { return new(SynStreamFrame) },
+-	TypeSynReply:     func() controlFrame { return new(SynReplyFrame) },
+-	TypeRstStream:    func() controlFrame { return new(RstStreamFrame) },
+-	TypeSettings:     func() controlFrame { return new(SettingsFrame) },
+-	TypePing:         func() controlFrame { return new(PingFrame) },
+-	TypeGoAway:       func() controlFrame { return new(GoAwayFrame) },
+-	TypeHeaders:      func() controlFrame { return new(HeadersFrame) },
+-	TypeWindowUpdate: func() controlFrame { return new(WindowUpdateFrame) },
+-}
+-
+-func (f *Framer) uncorkHeaderDecompressor(payloadSize int64) error {
+-	if f.headerDecompressor != nil {
+-		f.headerReader.N = payloadSize
+-		return nil
+-	}
+-	f.headerReader = io.LimitedReader{R: f.r, N: payloadSize}
+-	decompressor, err := zlib.NewReaderDict(&f.headerReader, []byte(headerDictionary))
+-	if err != nil {
+-		return err
+-	}
+-	f.headerDecompressor = decompressor
+-	return nil
+-}
+-
+-// ReadFrame reads SPDY encoded data and returns a decompressed Frame.
+-func (f *Framer) ReadFrame() (Frame, error) {
+-	var firstWord uint32
+-	if err := binary.Read(f.r, binary.BigEndian, &firstWord); err != nil {
+-		return nil, err
+-	}
+-	if firstWord&0x80000000 != 0 {
+-		frameType := ControlFrameType(firstWord & 0xffff)
+-		version := uint16(firstWord >> 16 & 0x7fff)
+-		return f.parseControlFrame(version, frameType)
+-	}
+-	return f.parseDataFrame(StreamId(firstWord & 0x7fffffff))
+-}
+-
+-func (f *Framer) parseControlFrame(version uint16, frameType ControlFrameType) (Frame, error) {
+-	var length uint32
+-	if err := binary.Read(f.r, binary.BigEndian, &length); err != nil {
+-		return nil, err
+-	}
+-	flags := ControlFlags((length & 0xff000000) >> 24)
+-	length &= 0xffffff
+-	header := ControlFrameHeader{version, frameType, flags, length}
+-	cframe, err := newControlFrame(frameType)
+-	if err != nil {
+-		return nil, err
+-	}
+-	if err = cframe.read(header, f); err != nil {
+-		return nil, err
+-	}
+-	return cframe, nil
+-}
+-
+-func parseHeaderValueBlock(r io.Reader, streamId StreamId) (http.Header, error) {
+-	var numHeaders uint32
+-	if err := binary.Read(r, binary.BigEndian, &numHeaders); err != nil {
+-		return nil, err
+-	}
+-	var e error
+-	h := make(http.Header, int(numHeaders))
+-	for i := 0; i < int(numHeaders); i++ {
+-		var length uint32
+-		if err := binary.Read(r, binary.BigEndian, &length); err != nil {
+-			return nil, err
+-		}
+-		nameBytes := make([]byte, length)
+-		if _, err := io.ReadFull(r, nameBytes); err != nil {
+-			return nil, err
+-		}
+-		name := string(nameBytes)
+-		if name != strings.ToLower(name) {
+-			e = &Error{UnlowercasedHeaderName, streamId}
+-			name = strings.ToLower(name)
+-		}
+-		if h[name] != nil {
+-			e = &Error{DuplicateHeaders, streamId}
+-		}
+-		if err := binary.Read(r, binary.BigEndian, &length); err != nil {
+-			return nil, err
+-		}
+-		value := make([]byte, length)
+-		if _, err := io.ReadFull(r, value); err != nil {
+-			return nil, err
+-		}
+-		valueList := strings.Split(string(value), headerValueSeparator)
+-		for _, v := range valueList {
+-			h.Add(name, v)
+-		}
+-	}
+-	if e != nil {
+-		return h, e
+-	}
+-	return h, nil
+-}
+-
+-func (f *Framer) readSynStreamFrame(h ControlFrameHeader, frame *SynStreamFrame) error {
+-	frame.CFHeader = h
+-	var err error
+-	if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
+-		return err
+-	}
+-	if err = binary.Read(f.r, binary.BigEndian, &frame.AssociatedToStreamId); err != nil {
+-		return err
+-	}
+-	if err = binary.Read(f.r, binary.BigEndian, &frame.Priority); err != nil {
+-		return err
+-	}
+-	frame.Priority >>= 5
+-	if err = binary.Read(f.r, binary.BigEndian, &frame.Slot); err != nil {
+-		return err
+-	}
+-	reader := f.r
+-	if !f.headerCompressionDisabled {
+-		err := f.uncorkHeaderDecompressor(int64(h.length - 10))
+-		if err != nil {
+-			return err
+-		}
+-		reader = f.headerDecompressor
+-	}
+-	frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId)
+-	if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) {
+-		err = &Error{WrongCompressedPayloadSize, 0}
+-	}
+-	if err != nil {
+-		return err
+-	}
+-	for h := range frame.Headers {
+-		if invalidReqHeaders[h] {
+-			return &Error{InvalidHeaderPresent, frame.StreamId}
+-		}
+-	}
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	return nil
+-}
+-
+-func (f *Framer) readSynReplyFrame(h ControlFrameHeader, frame *SynReplyFrame) error {
+-	frame.CFHeader = h
+-	var err error
+-	if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
+-		return err
+-	}
+-	reader := f.r
+-	if !f.headerCompressionDisabled {
+-		err := f.uncorkHeaderDecompressor(int64(h.length - 4))
+-		if err != nil {
+-			return err
+-		}
+-		reader = f.headerDecompressor
+-	}
+-	frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId)
+-	if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) {
+-		err = &Error{WrongCompressedPayloadSize, 0}
+-	}
+-	if err != nil {
+-		return err
+-	}
+-	for h := range frame.Headers {
+-		if invalidRespHeaders[h] {
+-			return &Error{InvalidHeaderPresent, frame.StreamId}
+-		}
+-	}
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	return nil
+-}
+-
+-func (f *Framer) readHeadersFrame(h ControlFrameHeader, frame *HeadersFrame) error {
+-	frame.CFHeader = h
+-	var err error
+-	if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
+-		return err
+-	}
+-	reader := f.r
+-	if !f.headerCompressionDisabled {
+-		err := f.uncorkHeaderDecompressor(int64(h.length - 4))
+-		if err != nil {
+-			return err
+-		}
+-		reader = f.headerDecompressor
+-	}
+-	frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId)
+-	if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) {
+-		err = &Error{WrongCompressedPayloadSize, 0}
+-	}
+-	if err != nil {
+-		return err
+-	}
+-	var invalidHeaders map[string]bool
+-	if frame.StreamId%2 == 0 {
+-		invalidHeaders = invalidReqHeaders
+-	} else {
+-		invalidHeaders = invalidRespHeaders
+-	}
+-	for h := range frame.Headers {
+-		if invalidHeaders[h] {
+-			return &Error{InvalidHeaderPresent, frame.StreamId}
+-		}
+-	}
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	return nil
+-}
+-
+-func (f *Framer) parseDataFrame(streamId StreamId) (*DataFrame, error) {
+-	var length uint32
+-	if err := binary.Read(f.r, binary.BigEndian, &length); err != nil {
+-		return nil, err
+-	}
+-	var frame DataFrame
+-	frame.StreamId = streamId
+-	frame.Flags = DataFlags(length >> 24)
+-	length &= 0xffffff
+-	frame.Data = make([]byte, length)
+-	if _, err := io.ReadFull(f.r, frame.Data); err != nil {
+-		return nil, err
+-	}
+-	if frame.StreamId == 0 {
+-		return nil, &Error{ZeroStreamId, 0}
+-	}
+-	return &frame, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/spdy_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/spdy_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/spdy_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/spdy_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,644 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package spdy
+-
+-import (
+-	"bytes"
+-	"compress/zlib"
+-	"encoding/base64"
+-	"io"
+-	"io/ioutil"
+-	"net/http"
+-	"reflect"
+-	"testing"
+-)
+-
+-var HeadersFixture = http.Header{
+-	"Url":     []string{"http://www.google.com/"},
+-	"Method":  []string{"get"},
+-	"Version": []string{"http/1.1"},
+-}
+-
+-func TestHeaderParsing(t *testing.T) {
+-	var headerValueBlockBuf bytes.Buffer
+-	writeHeaderValueBlock(&headerValueBlockBuf, HeadersFixture)
+-	const bogusStreamId = 1
+-	newHeaders, err := parseHeaderValueBlock(&headerValueBlockBuf, bogusStreamId)
+-	if err != nil {
+-		t.Fatal("parseHeaderValueBlock:", err)
+-	}
+-	if !reflect.DeepEqual(HeadersFixture, newHeaders) {
+-		t.Fatal("got: ", newHeaders, "\nwant: ", HeadersFixture)
+-	}
+-}
+-
+-func TestCreateParseSynStreamFrameCompressionDisable(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	// Fixture framer for no compression test.
+-	framer := &Framer{
+-		headerCompressionDisabled: true,
+-		w:         buffer,
+-		headerBuf: new(bytes.Buffer),
+-		r:         buffer,
+-	}
+-	synStreamFrame := SynStreamFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeSynStream,
+-		},
+-		StreamId: 2,
+-		Headers:  HeadersFixture,
+-	}
+-	if err := framer.WriteFrame(&synStreamFrame); err != nil {
+-		t.Fatal("WriteFrame without compression:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame without compression:", err)
+-	}
+-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
+-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
+-	}
+-}
+-
+-func TestCreateParseSynStreamFrameCompressionEnable(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	synStreamFrame := SynStreamFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeSynStream,
+-		},
+-		StreamId: 2,
+-		Headers:  HeadersFixture,
+-	}
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	if err := framer.WriteFrame(&synStreamFrame); err != nil {
+-		t.Fatal("WriteFrame with compression:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame with compression:", err)
+-	}
+-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
+-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
+-	}
+-}
+-
+-func TestCreateParseSynReplyFrameCompressionDisable(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer := &Framer{
+-		headerCompressionDisabled: true,
+-		w:         buffer,
+-		headerBuf: new(bytes.Buffer),
+-		r:         buffer,
+-	}
+-	synReplyFrame := SynReplyFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeSynReply,
+-		},
+-		StreamId: 2,
+-		Headers:  HeadersFixture,
+-	}
+-	if err := framer.WriteFrame(&synReplyFrame); err != nil {
+-		t.Fatal("WriteFrame without compression:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame without compression:", err)
+-	}
+-	parsedSynReplyFrame, ok := frame.(*SynReplyFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(synReplyFrame, *parsedSynReplyFrame) {
+-		t.Fatal("got: ", *parsedSynReplyFrame, "\nwant: ", synReplyFrame)
+-	}
+-}
+-
+-func TestCreateParseSynReplyFrameCompressionEnable(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	synReplyFrame := SynReplyFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeSynReply,
+-		},
+-		StreamId: 2,
+-		Headers:  HeadersFixture,
+-	}
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	if err := framer.WriteFrame(&synReplyFrame); err != nil {
+-		t.Fatal("WriteFrame with compression:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame with compression:", err)
+-	}
+-	parsedSynReplyFrame, ok := frame.(*SynReplyFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(synReplyFrame, *parsedSynReplyFrame) {
+-		t.Fatal("got: ", *parsedSynReplyFrame, "\nwant: ", synReplyFrame)
+-	}
+-}
+-
+-func TestCreateParseRstStream(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	rstStreamFrame := RstStreamFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeRstStream,
+-		},
+-		StreamId: 1,
+-		Status:   InvalidStream,
+-	}
+-	if err := framer.WriteFrame(&rstStreamFrame); err != nil {
+-		t.Fatal("WriteFrame:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame:", err)
+-	}
+-	parsedRstStreamFrame, ok := frame.(*RstStreamFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(rstStreamFrame, *parsedRstStreamFrame) {
+-		t.Fatal("got: ", *parsedRstStreamFrame, "\nwant: ", rstStreamFrame)
+-	}
+-}
+-
+-func TestCreateParseSettings(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	settingsFrame := SettingsFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeSettings,
+-		},
+-		FlagIdValues: []SettingsFlagIdValue{
+-			{FlagSettingsPersistValue, SettingsCurrentCwnd, 10},
+-			{FlagSettingsPersisted, SettingsUploadBandwidth, 1},
+-		},
+-	}
+-	if err := framer.WriteFrame(&settingsFrame); err != nil {
+-		t.Fatal("WriteFrame:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame:", err)
+-	}
+-	parsedSettingsFrame, ok := frame.(*SettingsFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(settingsFrame, *parsedSettingsFrame) {
+-		t.Fatal("got: ", *parsedSettingsFrame, "\nwant: ", settingsFrame)
+-	}
+-}
+-
+-func TestCreateParsePing(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	pingFrame := PingFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypePing,
+-		},
+-		Id: 31337,
+-	}
+-	if err := framer.WriteFrame(&pingFrame); err != nil {
+-		t.Fatal("WriteFrame:", err)
+-	}
+-	if pingFrame.CFHeader.Flags != 0 {
+-		t.Fatal("Incorrect frame type:", pingFrame)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame:", err)
+-	}
+-	parsedPingFrame, ok := frame.(*PingFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if parsedPingFrame.CFHeader.Flags != 0 {
+-		t.Fatal("Parsed incorrect frame type:", parsedPingFrame)
+-	}
+-	if !reflect.DeepEqual(pingFrame, *parsedPingFrame) {
+-		t.Fatal("got: ", *parsedPingFrame, "\nwant: ", pingFrame)
+-	}
+-}
+-
+-func TestCreateParseGoAway(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	goAwayFrame := GoAwayFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeGoAway,
+-		},
+-		LastGoodStreamId: 31337,
+-		Status:           1,
+-	}
+-	if err := framer.WriteFrame(&goAwayFrame); err != nil {
+-		t.Fatal("WriteFrame:", err)
+-	}
+-	if goAwayFrame.CFHeader.Flags != 0 {
+-		t.Fatal("Incorrect frame type:", goAwayFrame)
+-	}
+-	if goAwayFrame.CFHeader.length != 8 {
+-		t.Fatal("Incorrect frame type:", goAwayFrame)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame:", err)
+-	}
+-	parsedGoAwayFrame, ok := frame.(*GoAwayFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if parsedGoAwayFrame.CFHeader.Flags != 0 {
+-		t.Fatal("Incorrect frame type:", parsedGoAwayFrame)
+-	}
+-	if parsedGoAwayFrame.CFHeader.length != 8 {
+-		t.Fatal("Incorrect frame type:", parsedGoAwayFrame)
+-	}
+-	if !reflect.DeepEqual(goAwayFrame, *parsedGoAwayFrame) {
+-		t.Fatal("got: ", *parsedGoAwayFrame, "\nwant: ", goAwayFrame)
+-	}
+-}
+-
+-func TestCreateParseHeadersFrame(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer := &Framer{
+-		headerCompressionDisabled: true,
+-		w:         buffer,
+-		headerBuf: new(bytes.Buffer),
+-		r:         buffer,
+-	}
+-	headersFrame := HeadersFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeHeaders,
+-		},
+-		StreamId: 2,
+-	}
+-	headersFrame.Headers = HeadersFixture
+-	if err := framer.WriteFrame(&headersFrame); err != nil {
+-		t.Fatal("WriteFrame without compression:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame without compression:", err)
+-	}
+-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
+-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
+-	}
+-}
+-
+-func TestCreateParseHeadersFrameCompressionEnable(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	headersFrame := HeadersFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeHeaders,
+-		},
+-		StreamId: 2,
+-	}
+-	headersFrame.Headers = HeadersFixture
+-
+-	framer, err := NewFramer(buffer, buffer)
+-	if err := framer.WriteFrame(&headersFrame); err != nil {
+-		t.Fatal("WriteFrame with compression:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame with compression:", err)
+-	}
+-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
+-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
+-	}
+-}
+-
+-func TestCreateParseWindowUpdateFrame(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	windowUpdateFrame := WindowUpdateFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeWindowUpdate,
+-		},
+-		StreamId:        31337,
+-		DeltaWindowSize: 1,
+-	}
+-	if err := framer.WriteFrame(&windowUpdateFrame); err != nil {
+-		t.Fatal("WriteFrame:", err)
+-	}
+-	if windowUpdateFrame.CFHeader.Flags != 0 {
+-		t.Fatal("Incorrect frame type:", windowUpdateFrame)
+-	}
+-	if windowUpdateFrame.CFHeader.length != 8 {
+-		t.Fatal("Incorrect frame type:", windowUpdateFrame)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame:", err)
+-	}
+-	parsedWindowUpdateFrame, ok := frame.(*WindowUpdateFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if parsedWindowUpdateFrame.CFHeader.Flags != 0 {
+-		t.Fatal("Incorrect frame type:", parsedWindowUpdateFrame)
+-	}
+-	if parsedWindowUpdateFrame.CFHeader.length != 8 {
+-		t.Fatal("Incorrect frame type:", parsedWindowUpdateFrame)
+-	}
+-	if !reflect.DeepEqual(windowUpdateFrame, *parsedWindowUpdateFrame) {
+-		t.Fatal("got: ", *parsedWindowUpdateFrame, "\nwant: ", windowUpdateFrame)
+-	}
+-}
+-
+-func TestCreateParseDataFrame(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	dataFrame := DataFrame{
+-		StreamId: 1,
+-		Data:     []byte{'h', 'e', 'l', 'l', 'o'},
+-	}
+-	if err := framer.WriteFrame(&dataFrame); err != nil {
+-		t.Fatal("WriteFrame:", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame:", err)
+-	}
+-	parsedDataFrame, ok := frame.(*DataFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(dataFrame, *parsedDataFrame) {
+-		t.Fatal("got: ", *parsedDataFrame, "\nwant: ", dataFrame)
+-	}
+-}
+-
+-func TestCompressionContextAcrossFrames(t *testing.T) {
+-	buffer := new(bytes.Buffer)
+-	framer, err := NewFramer(buffer, buffer)
+-	if err != nil {
+-		t.Fatal("Failed to create new framer:", err)
+-	}
+-	headersFrame := HeadersFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeHeaders,
+-		},
+-		StreamId: 2,
+-		Headers:  HeadersFixture,
+-	}
+-	if err := framer.WriteFrame(&headersFrame); err != nil {
+-		t.Fatal("WriteFrame (HEADERS):", err)
+-	}
+-	synStreamFrame := SynStreamFrame{
+-		ControlFrameHeader{
+-			Version,
+-			TypeSynStream,
+-			0, // Flags
+-			0, // length
+-		},
+-		2,   // StreamId
+-		0,   // AssociatedTOStreamID
+-		0,   // Priority
+-		1,   // Slot
+-		nil, // Headers
+-	}
+-	synStreamFrame.Headers = HeadersFixture
+-
+-	if err := framer.WriteFrame(&synStreamFrame); err != nil {
+-		t.Fatal("WriteFrame (SYN_STREAM):", err)
+-	}
+-	frame, err := framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame (HEADERS):", err, buffer.Bytes())
+-	}
+-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
+-	if !ok {
+-		t.Fatalf("expected HeadersFrame; got %T %v", frame, frame)
+-	}
+-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
+-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
+-	}
+-	frame, err = framer.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame (SYN_STREAM):", err, buffer.Bytes())
+-	}
+-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
+-	if !ok {
+-		t.Fatalf("expected SynStreamFrame; got %T %v", frame, frame)
+-	}
+-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
+-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
+-	}
+-}
+-
+-func TestMultipleSPDYFrames(t *testing.T) {
+-	// Initialize the framers.
+-	pr1, pw1 := io.Pipe()
+-	pr2, pw2 := io.Pipe()
+-	writer, err := NewFramer(pw1, pr2)
+-	if err != nil {
+-		t.Fatal("Failed to create writer:", err)
+-	}
+-	reader, err := NewFramer(pw2, pr1)
+-	if err != nil {
+-		t.Fatal("Failed to create reader:", err)
+-	}
+-
+-	// Set up the frames we're actually transferring.
+-	headersFrame := HeadersFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeHeaders,
+-		},
+-		StreamId: 2,
+-		Headers:  HeadersFixture,
+-	}
+-	synStreamFrame := SynStreamFrame{
+-		CFHeader: ControlFrameHeader{
+-			version:   Version,
+-			frameType: TypeSynStream,
+-		},
+-		StreamId: 2,
+-		Headers:  HeadersFixture,
+-	}
+-
+-	// Start the goroutines to write the frames.
+-	go func() {
+-		if err := writer.WriteFrame(&headersFrame); err != nil {
+-			t.Fatal("WriteFrame (HEADERS): ", err)
+-		}
+-		if err := writer.WriteFrame(&synStreamFrame); err != nil {
+-			t.Fatal("WriteFrame (SYN_STREAM): ", err)
+-		}
+-	}()
+-
+-	// Read the frames and verify they look as expected.
+-	frame, err := reader.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame (HEADERS): ", err)
+-	}
+-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type:", frame)
+-	}
+-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
+-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
+-	}
+-	frame, err = reader.ReadFrame()
+-	if err != nil {
+-		t.Fatal("ReadFrame (SYN_STREAM):", err)
+-	}
+-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
+-	if !ok {
+-		t.Fatal("Parsed incorrect frame type.")
+-	}
+-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
+-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
+-	}
+-}
+-
+-func TestReadMalformedZlibHeader(t *testing.T) {
+-	// These were constructed by corrupting the first byte of the zlib
+-	// header after writing.
+-	malformedStructs := map[string]string{
+-		"SynStreamFrame": "gAIAAQAAABgAAAACAAAAAAAAF/nfolGyYmAAAAAA//8=",
+-		"SynReplyFrame":  "gAIAAgAAABQAAAACAAAX+d+iUbJiYAAAAAD//w==",
+-		"HeadersFrame":   "gAIACAAAABQAAAACAAAX+d+iUbJiYAAAAAD//w==",
+-	}
+-	for name, bad := range malformedStructs {
+-		b, err := base64.StdEncoding.DecodeString(bad)
+-		if err != nil {
+-			t.Errorf("Unable to decode base64 encoded frame %s: %v", name, err)
+-		}
+-		buf := bytes.NewBuffer(b)
+-		reader, err := NewFramer(buf, buf)
+-		if err != nil {
+-			t.Fatalf("NewFramer: %v", err)
+-		}
+-		_, err = reader.ReadFrame()
+-		if err != zlib.ErrHeader {
+-			t.Errorf("Frame %s, expected: %#v, actual: %#v", name, zlib.ErrHeader, err)
+-		}
+-	}
+-}
+-
+-// TODO: these tests are too weak for updating SPDY spec. Fix me.
+-
+-type zeroStream struct {
+-	frame   Frame
+-	encoded string
+-}
+-
+-var streamIdZeroFrames = map[string]zeroStream{
+-	"SynStreamFrame": {
+-		&SynStreamFrame{StreamId: 0},
+-		"gAIAAQAAABgAAAAAAAAAAAAAePnfolGyYmAAAAAA//8=",
+-	},
+-	"SynReplyFrame": {
+-		&SynReplyFrame{StreamId: 0},
+-		"gAIAAgAAABQAAAAAAAB4+d+iUbJiYAAAAAD//w==",
+-	},
+-	"RstStreamFrame": {
+-		&RstStreamFrame{StreamId: 0},
+-		"gAIAAwAAAAgAAAAAAAAAAA==",
+-	},
+-	"HeadersFrame": {
+-		&HeadersFrame{StreamId: 0},
+-		"gAIACAAAABQAAAAAAAB4+d+iUbJiYAAAAAD//w==",
+-	},
+-	"DataFrame": {
+-		&DataFrame{StreamId: 0},
+-		"AAAAAAAAAAA=",
+-	},
+-	"PingFrame": {
+-		&PingFrame{Id: 0},
+-		"gAIABgAAAAQAAAAA",
+-	},
+-}
+-
+-func TestNoZeroStreamId(t *testing.T) {
+-	t.Log("skipping") // TODO: update to work with SPDY3
+-	return
+-
+-	for name, f := range streamIdZeroFrames {
+-		b, err := base64.StdEncoding.DecodeString(f.encoded)
+-		if err != nil {
+-			t.Errorf("Unable to decode base64 encoded frame %s: %v", f, err)
+-			continue
+-		}
+-		framer, err := NewFramer(ioutil.Discard, bytes.NewReader(b))
+-		if err != nil {
+-			t.Fatalf("NewFramer: %v", err)
+-		}
+-		err = framer.WriteFrame(f.frame)
+-		checkZeroStreamId(t, name, "WriteFrame", err)
+-
+-		_, err = framer.ReadFrame()
+-		checkZeroStreamId(t, name, "ReadFrame", err)
+-	}
+-}
+-
+-func checkZeroStreamId(t *testing.T, frame string, method string, err error) {
+-	if err == nil {
+-		t.Errorf("%s ZeroStreamId, no error on %s", method, frame)
+-		return
+-	}
+-	eerr, ok := err.(*Error)
+-	if !ok || eerr.Err != ZeroStreamId {
+-		t.Errorf("%s ZeroStreamId, incorrect error %#v, frame %s", method, eerr, frame)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/types.go docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/types.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/types.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/types.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,275 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package spdy implements the SPDY protocol (currently SPDY/3), described in
+-// http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3.
+-package spdy
+-
+-import (
+-	"bytes"
+-	"compress/zlib"
+-	"io"
+-	"net/http"
+-)
+-
+-// Version is the protocol version number that this package implements.
+-const Version = 3
+-
+-// ControlFrameType stores the type field in a control frame header.
+-type ControlFrameType uint16
+-
+-const (
+-	TypeSynStream    ControlFrameType = 0x0001
+-	TypeSynReply                      = 0x0002
+-	TypeRstStream                     = 0x0003
+-	TypeSettings                      = 0x0004
+-	TypePing                          = 0x0006
+-	TypeGoAway                        = 0x0007
+-	TypeHeaders                       = 0x0008
+-	TypeWindowUpdate                  = 0x0009
+-)
+-
+-// ControlFlags are the flags that can be set on a control frame.
+-type ControlFlags uint8
+-
+-const (
+-	ControlFlagFin                   ControlFlags = 0x01
+-	ControlFlagUnidirectional                     = 0x02
+-	ControlFlagSettingsClearSettings              = 0x01
+-)
+-
+-// DataFlags are the flags that can be set on a data frame.
+-type DataFlags uint8
+-
+-const (
+-	DataFlagFin DataFlags = 0x01
+-)
+-
+-// MaxDataLength is the maximum number of bytes that can be stored in one frame.
+-const MaxDataLength = 1<<24 - 1
+-
+-// headerValueSepator separates multiple header values.
+-const headerValueSeparator = "\x00"
+-
+-// Frame is a single SPDY frame in its unpacked in-memory representation. Use
+-// Framer to read and write it.
+-type Frame interface {
+-	write(f *Framer) error
+-}
+-
+-// ControlFrameHeader contains all the fields in a control frame header,
+-// in its unpacked in-memory representation.
+-type ControlFrameHeader struct {
+-	// Note, high bit is the "Control" bit.
+-	version   uint16 // spdy version number
+-	frameType ControlFrameType
+-	Flags     ControlFlags
+-	length    uint32 // length of data field
+-}
+-
+-type controlFrame interface {
+-	Frame
+-	read(h ControlFrameHeader, f *Framer) error
+-}
+-
+-// StreamId represents a 31-bit value identifying the stream.
+-type StreamId uint32
+-
+-// SynStreamFrame is the unpacked, in-memory representation of a SYN_STREAM
+-// frame.
+-type SynStreamFrame struct {
+-	CFHeader             ControlFrameHeader
+-	StreamId             StreamId
+-	AssociatedToStreamId StreamId // stream id for a stream which this stream is associated to
+-	Priority             uint8    // priority of this frame (3-bit)
+-	Slot                 uint8    // index in the server's credential vector of the client certificate
+-	Headers              http.Header
+-}
+-
+-// SynReplyFrame is the unpacked, in-memory representation of a SYN_REPLY frame.
+-type SynReplyFrame struct {
+-	CFHeader ControlFrameHeader
+-	StreamId StreamId
+-	Headers  http.Header
+-}
+-
+-// RstStreamStatus represents the status that led to a RST_STREAM.
+-type RstStreamStatus uint32
+-
+-const (
+-	ProtocolError RstStreamStatus = iota + 1
+-	InvalidStream
+-	RefusedStream
+-	UnsupportedVersion
+-	Cancel
+-	InternalError
+-	FlowControlError
+-	StreamInUse
+-	StreamAlreadyClosed
+-	InvalidCredentials
+-	FrameTooLarge
+-)
+-
+-// RstStreamFrame is the unpacked, in-memory representation of a RST_STREAM
+-// frame.
+-type RstStreamFrame struct {
+-	CFHeader ControlFrameHeader
+-	StreamId StreamId
+-	Status   RstStreamStatus
+-}
+-
+-// SettingsFlag represents a flag in a SETTINGS frame.
+-type SettingsFlag uint8
+-
+-const (
+-	FlagSettingsPersistValue SettingsFlag = 0x1
+-	FlagSettingsPersisted                 = 0x2
+-)
+-
+-// SettingsFlag represents the id of an id/value pair in a SETTINGS frame.
+-type SettingsId uint32
+-
+-const (
+-	SettingsUploadBandwidth SettingsId = iota + 1
+-	SettingsDownloadBandwidth
+-	SettingsRoundTripTime
+-	SettingsMaxConcurrentStreams
+-	SettingsCurrentCwnd
+-	SettingsDownloadRetransRate
+-	SettingsInitialWindowSize
+-	SettingsClientCretificateVectorSize
+-)
+-
+-// SettingsFlagIdValue is the unpacked, in-memory representation of the
+-// combined flag/id/value for a setting in a SETTINGS frame.
+-type SettingsFlagIdValue struct {
+-	Flag  SettingsFlag
+-	Id    SettingsId
+-	Value uint32
+-}
+-
+-// SettingsFrame is the unpacked, in-memory representation of a SPDY
+-// SETTINGS frame.
+-type SettingsFrame struct {
+-	CFHeader     ControlFrameHeader
+-	FlagIdValues []SettingsFlagIdValue
+-}
+-
+-// PingFrame is the unpacked, in-memory representation of a PING frame.
+-type PingFrame struct {
+-	CFHeader ControlFrameHeader
+-	Id       uint32 // unique id for this ping, from server is even, from client is odd.
+-}
+-
+-// GoAwayStatus represents the status in a GoAwayFrame.
+-type GoAwayStatus uint32
+-
+-const (
+-	GoAwayOK GoAwayStatus = iota
+-	GoAwayProtocolError
+-	GoAwayInternalError
+-)
+-
+-// GoAwayFrame is the unpacked, in-memory representation of a GOAWAY frame.
+-type GoAwayFrame struct {
+-	CFHeader         ControlFrameHeader
+-	LastGoodStreamId StreamId // last stream id which was accepted by sender
+-	Status           GoAwayStatus
+-}
+-
+-// HeadersFrame is the unpacked, in-memory representation of a HEADERS frame.
+-type HeadersFrame struct {
+-	CFHeader ControlFrameHeader
+-	StreamId StreamId
+-	Headers  http.Header
+-}
+-
+-// WindowUpdateFrame is the unpacked, in-memory representation of a
+-// WINDOW_UPDATE frame.
+-type WindowUpdateFrame struct {
+-	CFHeader        ControlFrameHeader
+-	StreamId        StreamId
+-	DeltaWindowSize uint32 // additional number of bytes to existing window size
+-}
+-
+-// TODO: Implement credential frame and related methods.
+-
+-// DataFrame is the unpacked, in-memory representation of a DATA frame.
+-type DataFrame struct {
+-	// Note, high bit is the "Control" bit. Should be 0 for data frames.
+-	StreamId StreamId
+-	Flags    DataFlags
+-	Data     []byte // payload data of this frame
+-}
+-
+-// A SPDY specific error.
+-type ErrorCode string
+-
+-const (
+-	UnlowercasedHeaderName     ErrorCode = "header was not lowercased"
+-	DuplicateHeaders                     = "multiple headers with same name"
+-	WrongCompressedPayloadSize           = "compressed payload size was incorrect"
+-	UnknownFrameType                     = "unknown frame type"
+-	InvalidControlFrame                  = "invalid control frame"
+-	InvalidDataFrame                     = "invalid data frame"
+-	InvalidHeaderPresent                 = "frame contained invalid header"
+-	ZeroStreamId                         = "stream id zero is disallowed"
+-)
+-
+-// Error contains both the type of error and additional values. StreamId is 0
+-// if Error is not associated with a stream.
+-type Error struct {
+-	Err      ErrorCode
+-	StreamId StreamId
+-}
+-
+-func (e *Error) Error() string {
+-	return string(e.Err)
+-}
+-
+-var invalidReqHeaders = map[string]bool{
+-	"Connection":        true,
+-	"Host":              true,
+-	"Keep-Alive":        true,
+-	"Proxy-Connection":  true,
+-	"Transfer-Encoding": true,
+-}
+-
+-var invalidRespHeaders = map[string]bool{
+-	"Connection":        true,
+-	"Keep-Alive":        true,
+-	"Proxy-Connection":  true,
+-	"Transfer-Encoding": true,
+-}
+-
+-// Framer handles serializing/deserializing SPDY frames, including compressing/
+-// decompressing payloads.
+-type Framer struct {
+-	headerCompressionDisabled bool
+-	w                         io.Writer
+-	headerBuf                 *bytes.Buffer
+-	headerCompressor          *zlib.Writer
+-	r                         io.Reader
+-	headerReader              io.LimitedReader
+-	headerDecompressor        io.ReadCloser
+-}
+-
+-// NewFramer allocates a new Framer for a given SPDY connection, repesented by
+-// a io.Writer and io.Reader. Note that Framer will read and write individual fields
+-// from/to the Reader and Writer, so the caller should pass in an appropriately
+-// buffered implementation to optimize performance.
+-func NewFramer(w io.Writer, r io.Reader) (*Framer, error) {
+-	compressBuf := new(bytes.Buffer)
+-	compressor, err := zlib.NewWriterLevelDict(compressBuf, zlib.BestCompression, []byte(headerDictionary))
+-	if err != nil {
+-		return nil, err
+-	}
+-	framer := &Framer{
+-		w:                w,
+-		headerBuf:        compressBuf,
+-		headerCompressor: compressor,
+-		r:                r,
+-	}
+-	return framer, nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/write.go docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/write.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/spdy/write.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/spdy/write.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,318 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package spdy
+-
+-import (
+-	"encoding/binary"
+-	"io"
+-	"net/http"
+-	"strings"
+-)
+-
+-func (frame *SynStreamFrame) write(f *Framer) error {
+-	return f.writeSynStreamFrame(frame)
+-}
+-
+-func (frame *SynReplyFrame) write(f *Framer) error {
+-	return f.writeSynReplyFrame(frame)
+-}
+-
+-func (frame *RstStreamFrame) write(f *Framer) (err error) {
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypeRstStream
+-	frame.CFHeader.Flags = 0
+-	frame.CFHeader.length = 8
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
+-		return
+-	}
+-	if frame.Status == 0 {
+-		return &Error{InvalidControlFrame, frame.StreamId}
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil {
+-		return
+-	}
+-	return
+-}
+-
+-func (frame *SettingsFrame) write(f *Framer) (err error) {
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypeSettings
+-	frame.CFHeader.length = uint32(len(frame.FlagIdValues)*8 + 4)
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, uint32(len(frame.FlagIdValues))); err != nil {
+-		return
+-	}
+-	for _, flagIdValue := range frame.FlagIdValues {
+-		flagId := uint32(flagIdValue.Flag)<<24 | uint32(flagIdValue.Id)
+-		if err = binary.Write(f.w, binary.BigEndian, flagId); err != nil {
+-			return
+-		}
+-		if err = binary.Write(f.w, binary.BigEndian, flagIdValue.Value); err != nil {
+-			return
+-		}
+-	}
+-	return
+-}
+-
+-func (frame *PingFrame) write(f *Framer) (err error) {
+-	if frame.Id == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypePing
+-	frame.CFHeader.Flags = 0
+-	frame.CFHeader.length = 4
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.Id); err != nil {
+-		return
+-	}
+-	return
+-}
+-
+-func (frame *GoAwayFrame) write(f *Framer) (err error) {
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypeGoAway
+-	frame.CFHeader.Flags = 0
+-	frame.CFHeader.length = 8
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.LastGoodStreamId); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil {
+-		return
+-	}
+-	return nil
+-}
+-
+-func (frame *HeadersFrame) write(f *Framer) error {
+-	return f.writeHeadersFrame(frame)
+-}
+-
+-func (frame *WindowUpdateFrame) write(f *Framer) (err error) {
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypeWindowUpdate
+-	frame.CFHeader.Flags = 0
+-	frame.CFHeader.length = 8
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.DeltaWindowSize); err != nil {
+-		return
+-	}
+-	return nil
+-}
+-
+-func (frame *DataFrame) write(f *Framer) error {
+-	return f.writeDataFrame(frame)
+-}
+-
+-// WriteFrame writes a frame.
+-func (f *Framer) WriteFrame(frame Frame) error {
+-	return frame.write(f)
+-}
+-
+-func writeControlFrameHeader(w io.Writer, h ControlFrameHeader) error {
+-	if err := binary.Write(w, binary.BigEndian, 0x8000|h.version); err != nil {
+-		return err
+-	}
+-	if err := binary.Write(w, binary.BigEndian, h.frameType); err != nil {
+-		return err
+-	}
+-	flagsAndLength := uint32(h.Flags)<<24 | h.length
+-	if err := binary.Write(w, binary.BigEndian, flagsAndLength); err != nil {
+-		return err
+-	}
+-	return nil
+-}
+-
+-func writeHeaderValueBlock(w io.Writer, h http.Header) (n int, err error) {
+-	n = 0
+-	if err = binary.Write(w, binary.BigEndian, uint32(len(h))); err != nil {
+-		return
+-	}
+-	n += 2
+-	for name, values := range h {
+-		if err = binary.Write(w, binary.BigEndian, uint32(len(name))); err != nil {
+-			return
+-		}
+-		n += 2
+-		name = strings.ToLower(name)
+-		if _, err = io.WriteString(w, name); err != nil {
+-			return
+-		}
+-		n += len(name)
+-		v := strings.Join(values, headerValueSeparator)
+-		if err = binary.Write(w, binary.BigEndian, uint32(len(v))); err != nil {
+-			return
+-		}
+-		n += 2
+-		if _, err = io.WriteString(w, v); err != nil {
+-			return
+-		}
+-		n += len(v)
+-	}
+-	return
+-}
+-
+-func (f *Framer) writeSynStreamFrame(frame *SynStreamFrame) (err error) {
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	// Marshal the headers.
+-	var writer io.Writer = f.headerBuf
+-	if !f.headerCompressionDisabled {
+-		writer = f.headerCompressor
+-	}
+-	if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
+-		return
+-	}
+-	if !f.headerCompressionDisabled {
+-		f.headerCompressor.Flush()
+-	}
+-
+-	// Set ControlFrameHeader.
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypeSynStream
+-	frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 10)
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return err
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
+-		return err
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.AssociatedToStreamId); err != nil {
+-		return err
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.Priority<<5); err != nil {
+-		return err
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.Slot); err != nil {
+-		return err
+-	}
+-	if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil {
+-		return err
+-	}
+-	f.headerBuf.Reset()
+-	return nil
+-}
+-
+-func (f *Framer) writeSynReplyFrame(frame *SynReplyFrame) (err error) {
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	// Marshal the headers.
+-	var writer io.Writer = f.headerBuf
+-	if !f.headerCompressionDisabled {
+-		writer = f.headerCompressor
+-	}
+-	if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
+-		return
+-	}
+-	if !f.headerCompressionDisabled {
+-		f.headerCompressor.Flush()
+-	}
+-
+-	// Set ControlFrameHeader.
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypeSynReply
+-	frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4)
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
+-		return
+-	}
+-	if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil {
+-		return
+-	}
+-	f.headerBuf.Reset()
+-	return
+-}
+-
+-func (f *Framer) writeHeadersFrame(frame *HeadersFrame) (err error) {
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	// Marshal the headers.
+-	var writer io.Writer = f.headerBuf
+-	if !f.headerCompressionDisabled {
+-		writer = f.headerCompressor
+-	}
+-	if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
+-		return
+-	}
+-	if !f.headerCompressionDisabled {
+-		f.headerCompressor.Flush()
+-	}
+-
+-	// Set ControlFrameHeader.
+-	frame.CFHeader.version = Version
+-	frame.CFHeader.frameType = TypeHeaders
+-	frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4)
+-
+-	// Serialize frame to Writer.
+-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
+-		return
+-	}
+-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
+-		return
+-	}
+-	if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil {
+-		return
+-	}
+-	f.headerBuf.Reset()
+-	return
+-}
+-
+-func (f *Framer) writeDataFrame(frame *DataFrame) (err error) {
+-	if frame.StreamId == 0 {
+-		return &Error{ZeroStreamId, 0}
+-	}
+-	if frame.StreamId&0x80000000 != 0 || len(frame.Data) > MaxDataLength {
+-		return &Error{InvalidDataFrame, frame.StreamId}
+-	}
+-
+-	// Serialize frame to Writer.
+-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
+-		return
+-	}
+-	flagsAndLength := uint32(frame.Flags)<<24 | uint32(len(frame.Data))
+-	if err = binary.Write(f.w, binary.BigEndian, flagsAndLength); err != nil {
+-		return
+-	}
+-	if _, err = f.w.Write(frame.Data); err != nil {
+-		return
+-	}
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/client.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/client.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/client.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/client.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,112 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket
+-
+-import (
+-	"bufio"
+-	"crypto/tls"
+-	"io"
+-	"net"
+-	"net/http"
+-	"net/url"
+-)
+-
+-// DialError is an error that occurs while dialling a websocket server.
+-type DialError struct {
+-	*Config
+-	Err error
+-}
+-
+-func (e *DialError) Error() string {
+-	return "websocket.Dial " + e.Config.Location.String() + ": " + e.Err.Error()
+-}
+-
+-// NewConfig creates a new WebSocket config for client connection.
+-func NewConfig(server, origin string) (config *Config, err error) {
+-	config = new(Config)
+-	config.Version = ProtocolVersionHybi13
+-	config.Location, err = url.ParseRequestURI(server)
+-	if err != nil {
+-		return
+-	}
+-	config.Origin, err = url.ParseRequestURI(origin)
+-	if err != nil {
+-		return
+-	}
+-	config.Header = http.Header(make(map[string][]string))
+-	return
+-}
+-
+-// NewClient creates a new WebSocket client connection over rwc.
+-func NewClient(config *Config, rwc io.ReadWriteCloser) (ws *Conn, err error) {
+-	br := bufio.NewReader(rwc)
+-	bw := bufio.NewWriter(rwc)
+-	switch config.Version {
+-	case ProtocolVersionHixie75:
+-		err = hixie75ClientHandshake(config, br, bw)
+-	case ProtocolVersionHixie76, ProtocolVersionHybi00:
+-		err = hixie76ClientHandshake(config, br, bw)
+-	case ProtocolVersionHybi08, ProtocolVersionHybi13:
+-		err = hybiClientHandshake(config, br, bw)
+-	default:
+-		err = ErrBadProtocolVersion
+-	}
+-	if err != nil {
+-		return
+-	}
+-	buf := bufio.NewReadWriter(br, bw)
+-	switch config.Version {
+-	case ProtocolVersionHixie75, ProtocolVersionHixie76, ProtocolVersionHybi00:
+-		ws = newHixieClientConn(config, buf, rwc)
+-	case ProtocolVersionHybi08, ProtocolVersionHybi13:
+-		ws = newHybiClientConn(config, buf, rwc)
+-	}
+-	return
+-}
+-
+-// Dial opens a new client connection to a WebSocket.
+-func Dial(url_, protocol, origin string) (ws *Conn, err error) {
+-	config, err := NewConfig(url_, origin)
+-	if err != nil {
+-		return nil, err
+-	}
+-	if protocol != "" {
+-		config.Protocol = []string{protocol}
+-	}
+-	return DialConfig(config)
+-}
+-
+-// DialConfig opens a new client connection to a WebSocket with a config.
+-func DialConfig(config *Config) (ws *Conn, err error) {
+-	var client net.Conn
+-	if config.Location == nil {
+-		return nil, &DialError{config, ErrBadWebSocketLocation}
+-	}
+-	if config.Origin == nil {
+-		return nil, &DialError{config, ErrBadWebSocketOrigin}
+-	}
+-	switch config.Location.Scheme {
+-	case "ws":
+-		client, err = net.Dial("tcp", config.Location.Host)
+-
+-	case "wss":
+-		client, err = tls.Dial("tcp", config.Location.Host, config.TlsConfig)
+-
+-	default:
+-		err = ErrBadScheme
+-	}
+-	if err != nil {
+-		goto Error
+-	}
+-
+-	ws, err = NewClient(config, client)
+-	if err != nil {
+-		goto Error
+-	}
+-	return
+-
+-Error:
+-	return nil, &DialError{config, err}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/exampledial_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/exampledial_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/exampledial_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/exampledial_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,31 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket_test
+-
+-import (
+-	"fmt"
+-	"log"
+-
+-	"code.google.com/p/go.net/websocket"
+-)
+-
+-// This example demonstrates a trivial client.
+-func ExampleDial() {
+-	origin := "http://localhost/"
+-	url := "ws://localhost:12345/ws"
+-	ws, err := websocket.Dial(url, "", origin)
+-	if err != nil {
+-		log.Fatal(err)
+-	}
+-	if _, err := ws.Write([]byte("hello, world!\n")); err != nil {
+-		log.Fatal(err)
+-	}
+-	var msg = make([]byte, 512)
+-	var n int
+-	if n, err = ws.Read(msg); err != nil {
+-		log.Fatal(err)
+-	}
+-	fmt.Printf("Received: %s.\n", msg[:n])
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/examplehandler_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/examplehandler_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/examplehandler_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/examplehandler_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,26 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket_test
+-
+-import (
+-	"io"
+-	"net/http"
+-
+-	"code.google.com/p/go.net/websocket"
+-)
+-
+-// Echo the data received on the WebSocket.
+-func EchoServer(ws *websocket.Conn) {
+-	io.Copy(ws, ws)
+-}
+-
+-// This example demonstrates a trivial echo server.
+-func ExampleHandler() {
+-	http.Handle("/echo", websocket.Handler(EchoServer))
+-	err := http.ListenAndServe(":12345", nil)
+-	if err != nil {
+-		panic("ListenAndServe: " + err.Error())
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hixie.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hixie.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hixie.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hixie.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,695 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket
+-
+-// This file implements a protocol of Hixie draft version 75 and 76
+-// (draft 76 equals to hybi 00)
+-
+-import (
+-	"bufio"
+-	"bytes"
+-	"crypto/md5"
+-	"encoding/binary"
+-	"fmt"
+-	"io"
+-	"io/ioutil"
+-	"math/rand"
+-	"net/http"
+-	"net/url"
+-	"strconv"
+-	"strings"
+-)
+-
+-// An array of characters to be randomly inserted to construct Sec-WebSocket-Key
+-// value. It holds characters from ranges U+0021 to U+002F and U+003A to U+007E.
+-// See Step 21 in Section 4.1 Opening handshake.
+-// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00#page-22
+-var secKeyRandomChars [0x30 - 0x21 + 0x7F - 0x3A]byte
+-
+-func init() {
+-	i := 0
+-	for ch := byte(0x21); ch < 0x30; ch++ {
+-		secKeyRandomChars[i] = ch
+-		i++
+-	}
+-	for ch := byte(0x3a); ch < 0x7F; ch++ {
+-		secKeyRandomChars[i] = ch
+-		i++
+-	}
+-}
+-
+-type byteReader interface {
+-	ReadByte() (byte, error)
+-}
+-
+-// readHixieLength reads frame length for frame type 0x80-0xFF
+-// as defined in Hixie draft.
+-// See section 4.2 Data framing.
+-// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00#section-4.2
+-func readHixieLength(r byteReader) (length int64, lengthFields []byte, err error) {
+-	for {
+-		c, err := r.ReadByte()
+-		if err != nil {
+-			return 0, nil, err
+-		}
+-		lengthFields = append(lengthFields, c)
+-		length = length*128 + int64(c&0x7f)
+-		if c&0x80 == 0 {
+-			break
+-		}
+-	}
+-	return
+-}
+-
+-// A hixieLengthFrameReader is a reader for frame type 0x80-0xFF
+-// as defined in hixie draft.
+-type hixieLengthFrameReader struct {
+-	reader    io.Reader
+-	FrameType byte
+-	Length    int64
+-	header    *bytes.Buffer
+-	length    int
+-}
+-
+-func (frame *hixieLengthFrameReader) Read(msg []byte) (n int, err error) {
+-	return frame.reader.Read(msg)
+-}
+-
+-func (frame *hixieLengthFrameReader) PayloadType() byte {
+-	if frame.FrameType == '\xff' && frame.Length == 0 {
+-		return CloseFrame
+-	}
+-	return UnknownFrame
+-}
+-
+-func (frame *hixieLengthFrameReader) HeaderReader() io.Reader {
+-	if frame.header == nil {
+-		return nil
+-	}
+-	if frame.header.Len() == 0 {
+-		frame.header = nil
+-		return nil
+-	}
+-	return frame.header
+-}
+-
+-func (frame *hixieLengthFrameReader) TrailerReader() io.Reader { return nil }
+-
+-func (frame *hixieLengthFrameReader) Len() (n int) { return frame.length }
+-
+-// A HixieSentinelFrameReader is a reader for frame type 0x00-0x7F
+-// as defined in hixie draft.
+-type hixieSentinelFrameReader struct {
+-	reader      *bufio.Reader
+-	FrameType   byte
+-	header      *bytes.Buffer
+-	data        []byte
+-	seenTrailer bool
+-	trailer     *bytes.Buffer
+-}
+-
+-func (frame *hixieSentinelFrameReader) Read(msg []byte) (n int, err error) {
+-	if len(frame.data) == 0 {
+-		if frame.seenTrailer {
+-			return 0, io.EOF
+-		}
+-		frame.data, err = frame.reader.ReadSlice('\xff')
+-		if err == nil {
+-			frame.seenTrailer = true
+-			frame.data = frame.data[:len(frame.data)-1] // trim \xff
+-			frame.trailer = bytes.NewBuffer([]byte{0xff})
+-		}
+-	}
+-	n = copy(msg, frame.data)
+-	frame.data = frame.data[n:]
+-	return n, err
+-}
+-
+-func (frame *hixieSentinelFrameReader) PayloadType() byte {
+-	if frame.FrameType == 0 {
+-		return TextFrame
+-	}
+-	return UnknownFrame
+-}
+-
+-func (frame *hixieSentinelFrameReader) HeaderReader() io.Reader {
+-	if frame.header == nil {
+-		return nil
+-	}
+-	if frame.header.Len() == 0 {
+-		frame.header = nil
+-		return nil
+-	}
+-	return frame.header
+-}
+-
+-func (frame *hixieSentinelFrameReader) TrailerReader() io.Reader {
+-	if frame.trailer == nil {
+-		return nil
+-	}
+-	if frame.trailer.Len() == 0 {
+-		frame.trailer = nil
+-		return nil
+-	}
+-	return frame.trailer
+-}
+-
+-func (frame *hixieSentinelFrameReader) Len() int { return -1 }
+-
+-// A HixieFrameReaderFactory creates new frame reader based on its frame type.
+-type hixieFrameReaderFactory struct {
+-	*bufio.Reader
+-}
+-
+-func (buf hixieFrameReaderFactory) NewFrameReader() (r frameReader, err error) {
+-	var header []byte
+-	var b byte
+-	b, err = buf.ReadByte()
+-	if err != nil {
+-		return
+-	}
+-	header = append(header, b)
+-	if b&0x80 == 0x80 {
+-		length, lengthFields, err := readHixieLength(buf.Reader)
+-		if err != nil {
+-			return nil, err
+-		}
+-		if length == 0 {
+-			return nil, io.EOF
+-		}
+-		header = append(header, lengthFields...)
+-		return &hixieLengthFrameReader{
+-			reader:    io.LimitReader(buf.Reader, length),
+-			FrameType: b,
+-			Length:    length,
+-			header:    bytes.NewBuffer(header)}, err
+-	}
+-	return &hixieSentinelFrameReader{
+-		reader:    buf.Reader,
+-		FrameType: b,
+-		header:    bytes.NewBuffer(header)}, err
+-}
+-
+-type hixiFrameWriter struct {
+-	writer *bufio.Writer
+-}
+-
+-func (frame *hixiFrameWriter) Write(msg []byte) (n int, err error) {
+-	frame.writer.WriteByte(0)
+-	frame.writer.Write(msg)
+-	frame.writer.WriteByte(0xff)
+-	err = frame.writer.Flush()
+-	return len(msg), err
+-}
+-
+-func (frame *hixiFrameWriter) Close() error { return nil }
+-
+-type hixiFrameWriterFactory struct {
+-	*bufio.Writer
+-}
+-
+-func (buf hixiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err error) {
+-	if payloadType != TextFrame {
+-		return nil, ErrNotSupported
+-	}
+-	return &hixiFrameWriter{writer: buf.Writer}, nil
+-}
+-
+-type hixiFrameHandler struct {
+-	conn *Conn
+-}
+-
+-func (handler *hixiFrameHandler) HandleFrame(frame frameReader) (r frameReader, err error) {
+-	if header := frame.HeaderReader(); header != nil {
+-		io.Copy(ioutil.Discard, header)
+-	}
+-	if frame.PayloadType() != TextFrame {
+-		io.Copy(ioutil.Discard, frame)
+-		return nil, nil
+-	}
+-	return frame, nil
+-}
+-
+-func (handler *hixiFrameHandler) WriteClose(_ int) (err error) {
+-	handler.conn.wio.Lock()
+-	defer handler.conn.wio.Unlock()
+-	closingFrame := []byte{'\xff', '\x00'}
+-	handler.conn.buf.Write(closingFrame)
+-	return handler.conn.buf.Flush()
+-}
+-
+-// newHixiConn creates a new WebSocket connection speaking hixie draft protocol.
+-func newHixieConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+-	if buf == nil {
+-		br := bufio.NewReader(rwc)
+-		bw := bufio.NewWriter(rwc)
+-		buf = bufio.NewReadWriter(br, bw)
+-	}
+-	ws := &Conn{config: config, request: request, buf: buf, rwc: rwc,
+-		frameReaderFactory: hixieFrameReaderFactory{buf.Reader},
+-		frameWriterFactory: hixiFrameWriterFactory{buf.Writer},
+-		PayloadType:        TextFrame}
+-	ws.frameHandler = &hixiFrameHandler{ws}
+-	return ws
+-}
+-
+-// getChallengeResponse computes the expected response from the
+-// challenge as described in section 5.1 Opening Handshake steps 42 to
+-// 43 of http://www.whatwg.org/specs/web-socket-protocol/
+-func getChallengeResponse(number1, number2 uint32, key3 []byte) (expected []byte, err error) {
+-	// 41. Let /challenge/ be the concatenation of /number_1/, expressed
+-	// a big-endian 32 bit integer, /number_2/, expressed in a big-
+-	// endian 32 bit integer, and the eight bytes of /key_3/ in the
+-	// order they were sent to the wire.
+-	challenge := make([]byte, 16)
+-	binary.BigEndian.PutUint32(challenge[0:], number1)
+-	binary.BigEndian.PutUint32(challenge[4:], number2)
+-	copy(challenge[8:], key3)
+-
+-	// 42. Let /expected/ be the MD5 fingerprint of /challenge/ as a big-
+-	// endian 128 bit string.
+-	h := md5.New()
+-	if _, err = h.Write(challenge); err != nil {
+-		return
+-	}
+-	expected = h.Sum(nil)
+-	return
+-}
+-
+-// Generates handshake key as described in 4.1 Opening handshake step 16 to 22.
+-// cf. http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00
+-func generateKeyNumber() (key string, number uint32) {
+-	// 16.  Let /spaces_n/ be a random integer from 1 to 12 inclusive.
+-	spaces := rand.Intn(12) + 1
+-
+-	// 17. Let /max_n/ be the largest integer not greater than
+-	//     4,294,967,295 divided by /spaces_n/
+-	max := int(4294967295 / uint32(spaces))
+-
+-	// 18. Let /number_n/ be a random integer from 0 to /max_n/ inclusive.
+-	number = uint32(rand.Intn(max + 1))
+-
+-	// 19. Let /product_n/ be the result of multiplying /number_n/ and
+-	//     /spaces_n/ together.
+-	product := number * uint32(spaces)
+-
+-	// 20. Let /key_n/ be a string consisting of /product_n/, expressed
+-	// in base ten using the numerals in the range U+0030 DIGIT ZERO (0)
+-	// to U+0039 DIGIT NINE (9).
+-	key = fmt.Sprintf("%d", product)
+-
+-	// 21. Insert between one and twelve random characters from the ranges
+-	//     U+0021 to U+002F and U+003A to U+007E into /key_n/ at random
+-	//     positions.
+-	n := rand.Intn(12) + 1
+-	for i := 0; i < n; i++ {
+-		pos := rand.Intn(len(key)) + 1
+-		ch := secKeyRandomChars[rand.Intn(len(secKeyRandomChars))]
+-		key = key[0:pos] + string(ch) + key[pos:]
+-	}
+-
+-	// 22. Insert /spaces_n/ U+0020 SPACE characters into /key_n/ at random
+-	//     positions other than the start or end of the string.
+-	for i := 0; i < spaces; i++ {
+-		pos := rand.Intn(len(key)-1) + 1
+-		key = key[0:pos] + " " + key[pos:]
+-	}
+-
+-	return
+-}
+-
+-// Generates handshake key_3 as described in 4.1 Opening handshake step 26.
+-// cf. http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00
+-func generateKey3() (key []byte) {
+-	// 26. Let /key3/ be a string consisting of eight random bytes (or
+-	//  equivalently, a random 64 bit integer encoded in big-endian order).
+-	key = make([]byte, 8)
+-	for i := 0; i < 8; i++ {
+-		key[i] = byte(rand.Intn(256))
+-	}
+-	return
+-}
+-
+-// Client handshake described in (soon obsolete)
+-// draft-ietf-hybi-thewebsocket-protocol-00
+-// (draft-hixie-thewebsocket-protocol-76)
+-func hixie76ClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) {
+-	switch config.Version {
+-	case ProtocolVersionHixie76, ProtocolVersionHybi00:
+-	default:
+-		panic("wrong protocol version.")
+-	}
+-	// 4.1. Opening handshake.
+-	// Step 5.  send a request line.
+-	bw.WriteString("GET " + config.Location.RequestURI() + " HTTP/1.1\r\n")
+-
+-	// Step 6-14. push request headers in fields.
+-	fields := []string{
+-		"Upgrade: WebSocket\r\n",
+-		"Connection: Upgrade\r\n",
+-		"Host: " + config.Location.Host + "\r\n",
+-		"Origin: " + config.Origin.String() + "\r\n",
+-	}
+-	if len(config.Protocol) > 0 {
+-		if len(config.Protocol) != 1 {
+-			return ErrBadWebSocketProtocol
+-		}
+-		fields = append(fields, "Sec-WebSocket-Protocol: "+config.Protocol[0]+"\r\n")
+-	}
+-	// TODO(ukai): Step 15. send cookie if any.
+-
+-	// Step 16-23. generate keys and push Sec-WebSocket-Key<n> in fields.
+-	key1, number1 := generateKeyNumber()
+-	key2, number2 := generateKeyNumber()
+-	if config.handshakeData != nil {
+-		key1 = config.handshakeData["key1"]
+-		n, err := strconv.ParseUint(config.handshakeData["number1"], 10, 32)
+-		if err != nil {
+-			panic(err)
+-		}
+-		number1 = uint32(n)
+-		key2 = config.handshakeData["key2"]
+-		n, err = strconv.ParseUint(config.handshakeData["number2"], 10, 32)
+-		if err != nil {
+-			panic(err)
+-		}
+-		number2 = uint32(n)
+-	}
+-	fields = append(fields, "Sec-WebSocket-Key1: "+key1+"\r\n")
+-	fields = append(fields, "Sec-WebSocket-Key2: "+key2+"\r\n")
+-
+-	// Step 24. shuffle fields and send them out.
+-	for i := 1; i < len(fields); i++ {
+-		j := rand.Intn(i)
+-		fields[i], fields[j] = fields[j], fields[i]
+-	}
+-	for i := 0; i < len(fields); i++ {
+-		bw.WriteString(fields[i])
+-	}
+-	// Step 25. send CRLF.
+-	bw.WriteString("\r\n")
+-
+-	// Step 26. generate 8 bytes random key.
+-	key3 := generateKey3()
+-	if config.handshakeData != nil {
+-		key3 = []byte(config.handshakeData["key3"])
+-	}
+-	// Step 27. send it out.
+-	bw.Write(key3)
+-	if err = bw.Flush(); err != nil {
+-		return
+-	}
+-
+-	// Step 28-29, 32-40. read response from server.
+-	resp, err := http.ReadResponse(br, &http.Request{Method: "GET"})
+-	if err != nil {
+-		return err
+-	}
+-	// Step 30. check response code is 101.
+-	if resp.StatusCode != 101 {
+-		return ErrBadStatus
+-	}
+-
+-	// Step 41. check websocket headers.
+-	if resp.Header.Get("Upgrade") != "WebSocket" ||
+-		strings.ToLower(resp.Header.Get("Connection")) != "upgrade" {
+-		return ErrBadUpgrade
+-	}
+-
+-	if resp.Header.Get("Sec-Websocket-Origin") != config.Origin.String() {
+-		return ErrBadWebSocketOrigin
+-	}
+-
+-	if resp.Header.Get("Sec-Websocket-Location") != config.Location.String() {
+-		return ErrBadWebSocketLocation
+-	}
+-
+-	if len(config.Protocol) > 0 && resp.Header.Get("Sec-Websocket-Protocol") != config.Protocol[0] {
+-		return ErrBadWebSocketProtocol
+-	}
+-
+-	// Step 42-43. get expected data from challenge data.
+-	expected, err := getChallengeResponse(number1, number2, key3)
+-	if err != nil {
+-		return err
+-	}
+-
+-	// Step 44. read 16 bytes from server.
+-	reply := make([]byte, 16)
+-	if _, err = io.ReadFull(br, reply); err != nil {
+-		return err
+-	}
+-
+-	// Step 45. check the reply equals to expected data.
+-	if !bytes.Equal(expected, reply) {
+-		return ErrChallengeResponse
+-	}
+-	// WebSocket connection is established.
+-	return
+-}
+-
+-// Client Handshake described in (soon obsolete)
+-// draft-hixie-thewebsocket-protocol-75.
+-func hixie75ClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) {
+-	if config.Version != ProtocolVersionHixie75 {
+-		panic("wrong protocol version.")
+-	}
+-	bw.WriteString("GET " + config.Location.RequestURI() + " HTTP/1.1\r\n")
+-	bw.WriteString("Upgrade: WebSocket\r\n")
+-	bw.WriteString("Connection: Upgrade\r\n")
+-	bw.WriteString("Host: " + config.Location.Host + "\r\n")
+-	bw.WriteString("Origin: " + config.Origin.String() + "\r\n")
+-	if len(config.Protocol) > 0 {
+-		if len(config.Protocol) != 1 {
+-			return ErrBadWebSocketProtocol
+-		}
+-		bw.WriteString("WebSocket-Protocol: " + config.Protocol[0] + "\r\n")
+-	}
+-	bw.WriteString("\r\n")
+-	bw.Flush()
+-	resp, err := http.ReadResponse(br, &http.Request{Method: "GET"})
+-	if err != nil {
+-		return
+-	}
+-	if resp.Status != "101 Web Socket Protocol Handshake" {
+-		return ErrBadStatus
+-	}
+-	if resp.Header.Get("Upgrade") != "WebSocket" ||
+-		resp.Header.Get("Connection") != "Upgrade" {
+-		return ErrBadUpgrade
+-	}
+-	if resp.Header.Get("Websocket-Origin") != config.Origin.String() {
+-		return ErrBadWebSocketOrigin
+-	}
+-	if resp.Header.Get("Websocket-Location") != config.Location.String() {
+-		return ErrBadWebSocketLocation
+-	}
+-	if len(config.Protocol) > 0 && resp.Header.Get("Websocket-Protocol") != config.Protocol[0] {
+-		return ErrBadWebSocketProtocol
+-	}
+-	return
+-}
+-
+-// newHixieClientConn returns new WebSocket connection speaking hixie draft protocol.
+-func newHixieClientConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser) *Conn {
+-	return newHixieConn(config, buf, rwc, nil)
+-}
+-
+-// Gets key number from Sec-WebSocket-Key<n>: field as described
+-// in 5.2 Sending the server's opening handshake, 4.
+-func getKeyNumber(s string) (r uint32) {
+-	// 4. Let /key-number_n/ be the digits (characters in the range
+-	// U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)) in /key_1/,
+-	// interpreted as a base ten integer, ignoring all other characters
+-	// in /key_n/.
+-	r = 0
+-	for i := 0; i < len(s); i++ {
+-		if s[i] >= '0' && s[i] <= '9' {
+-			r = r*10 + uint32(s[i]) - '0'
+-		}
+-	}
+-	return
+-}
+-
+-// A Hixie76ServerHandshaker performs a server handshake using
+-// hixie draft 76 protocol.
+-type hixie76ServerHandshaker struct {
+-	*Config
+-	challengeResponse []byte
+-}
+-
+-func (c *hixie76ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) {
+-	c.Version = ProtocolVersionHybi00
+-	if req.Method != "GET" {
+-		return http.StatusMethodNotAllowed, ErrBadRequestMethod
+-	}
+-	// HTTP version can be safely ignored.
+-
+-	if strings.ToLower(req.Header.Get("Upgrade")) != "websocket" ||
+-		strings.ToLower(req.Header.Get("Connection")) != "upgrade" {
+-		return http.StatusBadRequest, ErrNotWebSocket
+-	}
+-
+-	// TODO(ukai): check Host
+-	c.Origin, err = url.ParseRequestURI(req.Header.Get("Origin"))
+-	if err != nil {
+-		return http.StatusBadRequest, err
+-	}
+-
+-	key1 := req.Header.Get("Sec-Websocket-Key1")
+-	if key1 == "" {
+-		return http.StatusBadRequest, ErrChallengeResponse
+-	}
+-	key2 := req.Header.Get("Sec-Websocket-Key2")
+-	if key2 == "" {
+-		return http.StatusBadRequest, ErrChallengeResponse
+-	}
+-	key3 := make([]byte, 8)
+-	if _, err := io.ReadFull(buf, key3); err != nil {
+-		return http.StatusBadRequest, ErrChallengeResponse
+-	}
+-
+-	var scheme string
+-	if req.TLS != nil {
+-		scheme = "wss"
+-	} else {
+-		scheme = "ws"
+-	}
+-	c.Location, err = url.ParseRequestURI(scheme + "://" + req.Host + req.URL.RequestURI())
+-	if err != nil {
+-		return http.StatusBadRequest, err
+-	}
+-
+-	// Step 4. get key number in Sec-WebSocket-Key<n> fields.
+-	keyNumber1 := getKeyNumber(key1)
+-	keyNumber2 := getKeyNumber(key2)
+-
+-	// Step 5. get number of spaces in Sec-WebSocket-Key<n> fields.
+-	space1 := uint32(strings.Count(key1, " "))
+-	space2 := uint32(strings.Count(key2, " "))
+-	if space1 == 0 || space2 == 0 {
+-		return http.StatusBadRequest, ErrChallengeResponse
+-	}
+-
+-	// Step 6. key number must be an integral multiple of spaces.
+-	if keyNumber1%space1 != 0 || keyNumber2%space2 != 0 {
+-		return http.StatusBadRequest, ErrChallengeResponse
+-	}
+-
+-	// Step 7. let part be key number divided by spaces.
+-	part1 := keyNumber1 / space1
+-	part2 := keyNumber2 / space2
+-
+-	// Step 8. let challenge be concatenation of part1, part2 and key3.
+-	// Step 9. get MD5 fingerprint of challenge.
+-	c.challengeResponse, err = getChallengeResponse(part1, part2, key3)
+-	if err != nil {
+-		return http.StatusInternalServerError, err
+-	}
+-	protocol := strings.TrimSpace(req.Header.Get("Sec-Websocket-Protocol"))
+-	protocols := strings.Split(protocol, ",")
+-	for i := 0; i < len(protocols); i++ {
+-		c.Protocol = append(c.Protocol, strings.TrimSpace(protocols[i]))
+-	}
+-
+-	return http.StatusSwitchingProtocols, nil
+-}
+-
+-func (c *hixie76ServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) {
+-	if len(c.Protocol) > 0 {
+-		if len(c.Protocol) != 1 {
+-			return ErrBadWebSocketProtocol
+-		}
+-	}
+-
+-	// Step 10. send response status line.
+-	buf.WriteString("HTTP/1.1 101 WebSocket Protocol Handshake\r\n")
+-	// Step 11. send response headers.
+-	buf.WriteString("Upgrade: WebSocket\r\n")
+-	buf.WriteString("Connection: Upgrade\r\n")
+-	buf.WriteString("Sec-WebSocket-Origin: " + c.Origin.String() + "\r\n")
+-	buf.WriteString("Sec-WebSocket-Location: " + c.Location.String() + "\r\n")
+-	if len(c.Protocol) > 0 {
+-		buf.WriteString("Sec-WebSocket-Protocol: " + c.Protocol[0] + "\r\n")
+-	}
+-	// Step 12. send CRLF.
+-	buf.WriteString("\r\n")
+-	// Step 13. send response data.
+-	buf.Write(c.challengeResponse)
+-	return buf.Flush()
+-}
+-
+-func (c *hixie76ServerHandshaker) NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) (conn *Conn) {
+-	return newHixieServerConn(c.Config, buf, rwc, request)
+-}
+-
+-// A hixie75ServerHandshaker performs a server handshake using
+-// hixie draft 75 protocol.
+-type hixie75ServerHandshaker struct {
+-	*Config
+-}
+-
+-func (c *hixie75ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) {
+-	c.Version = ProtocolVersionHixie75
+-	if req.Method != "GET" || req.Proto != "HTTP/1.1" {
+-		return http.StatusMethodNotAllowed, ErrBadRequestMethod
+-	}
+-	if req.Header.Get("Upgrade") != "WebSocket" {
+-		return http.StatusBadRequest, ErrNotWebSocket
+-	}
+-	if req.Header.Get("Connection") != "Upgrade" {
+-		return http.StatusBadRequest, ErrNotWebSocket
+-	}
+-	c.Origin, err = url.ParseRequestURI(strings.TrimSpace(req.Header.Get("Origin")))
+-	if err != nil {
+-		return http.StatusBadRequest, err
+-	}
+-
+-	var scheme string
+-	if req.TLS != nil {
+-		scheme = "wss"
+-	} else {
+-		scheme = "ws"
+-	}
+-	c.Location, err = url.ParseRequestURI(scheme + "://" + req.Host + req.URL.RequestURI())
+-	if err != nil {
+-		return http.StatusBadRequest, err
+-	}
+-	protocol := strings.TrimSpace(req.Header.Get("Websocket-Protocol"))
+-	protocols := strings.Split(protocol, ",")
+-	for i := 0; i < len(protocols); i++ {
+-		c.Protocol = append(c.Protocol, strings.TrimSpace(protocols[i]))
+-	}
+-
+-	return http.StatusSwitchingProtocols, nil
+-}
+-
+-func (c *hixie75ServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) {
+-	if len(c.Protocol) > 0 {
+-		if len(c.Protocol) != 1 {
+-			return ErrBadWebSocketProtocol
+-		}
+-	}
+-
+-	buf.WriteString("HTTP/1.1 101 Web Socket Protocol Handshake\r\n")
+-	buf.WriteString("Upgrade: WebSocket\r\n")
+-	buf.WriteString("Connection: Upgrade\r\n")
+-	buf.WriteString("WebSocket-Origin: " + c.Origin.String() + "\r\n")
+-	buf.WriteString("WebSocket-Location: " + c.Location.String() + "\r\n")
+-	if len(c.Protocol) > 0 {
+-		buf.WriteString("WebSocket-Protocol: " + c.Protocol[0] + "\r\n")
+-	}
+-	buf.WriteString("\r\n")
+-	return buf.Flush()
+-}
+-
+-func (c *hixie75ServerHandshaker) NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) (conn *Conn) {
+-	return newHixieServerConn(c.Config, buf, rwc, request)
+-}
+-
+-// newHixieServerConn returns a new WebSocket connection speaking hixie draft protocol.
+-func newHixieServerConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+-	return newHixieConn(config, buf, rwc, request)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hixie_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hixie_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hixie_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hixie_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,201 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket
+-
+-import (
+-	"bufio"
+-	"bytes"
+-	"fmt"
+-	"io"
+-	"net/http"
+-	"net/url"
+-	"strings"
+-	"testing"
+-)
+-
+-// Test the getChallengeResponse function with values from section
+-// 5.1 of the specification steps 18, 26, and 43 from
+-// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00
+-func TestHixie76Challenge(t *testing.T) {
+-	var part1 uint32 = 777007543
+-	var part2 uint32 = 114997259
+-	key3 := []byte{0x47, 0x30, 0x22, 0x2D, 0x5A, 0x3F, 0x47, 0x58}
+-	expected := []byte("0st3Rl&q-2ZU^weu")
+-
+-	response, err := getChallengeResponse(part1, part2, key3)
+-	if err != nil {
+-		t.Errorf("getChallengeResponse: returned error %v", err)
+-		return
+-	}
+-	if !bytes.Equal(expected, response) {
+-		t.Errorf("getChallengeResponse: expected %q got %q", expected, response)
+-	}
+-}
+-
+-func TestHixie76ClientHandshake(t *testing.T) {
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-	br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 WebSocket Protocol Handshake
+-Upgrade: WebSocket
+-Connection: Upgrade
+-Sec-WebSocket-Origin: http://example.com
+-Sec-WebSocket-Location: ws://example.com/demo
+-Sec-WebSocket-Protocol: sample
+-
+-8jKS'y:G*Co,Wxa-`))
+-
+-	var err error
+-	config := new(Config)
+-	config.Location, err = url.ParseRequestURI("ws://example.com/demo")
+-	if err != nil {
+-		t.Fatal("location url", err)
+-	}
+-	config.Origin, err = url.ParseRequestURI("http://example.com")
+-	if err != nil {
+-		t.Fatal("origin url", err)
+-	}
+-	config.Protocol = append(config.Protocol, "sample")
+-	config.Version = ProtocolVersionHixie76
+-
+-	config.handshakeData = map[string]string{
+-		"key1":    "4 @1  46546xW%0l 1 5",
+-		"number1": "829309203",
+-		"key2":    "12998 5 Y3 1  .P00",
+-		"number2": "259970620",
+-		"key3":    "^n:ds[4U",
+-	}
+-	err = hixie76ClientHandshake(config, br, bw)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	req, err := http.ReadRequest(bufio.NewReader(b))
+-	if err != nil {
+-		t.Fatalf("read request: %v", err)
+-	}
+-	if req.Method != "GET" {
+-		t.Errorf("request method expected GET, but got %q", req.Method)
+-	}
+-	if req.URL.Path != "/demo" {
+-		t.Errorf("request path expected /demo, but got %q", req.URL.Path)
+-	}
+-	if req.Proto != "HTTP/1.1" {
+-		t.Errorf("request proto expected HTTP/1.1, but got %q", req.Proto)
+-	}
+-	if req.Host != "example.com" {
+-		t.Errorf("request Host expected example.com, but got %v", req.Host)
+-	}
+-	var expectedHeader = map[string]string{
+-		"Connection":             "Upgrade",
+-		"Upgrade":                "WebSocket",
+-		"Origin":                 "http://example.com",
+-		"Sec-Websocket-Key1":     config.handshakeData["key1"],
+-		"Sec-Websocket-Key2":     config.handshakeData["key2"],
+-		"Sec-WebSocket-Protocol": config.Protocol[0],
+-	}
+-	for k, v := range expectedHeader {
+-		if req.Header.Get(k) != v {
+-			t.Errorf(fmt.Sprintf("%s expected %q but got %q", k, v, req.Header.Get(k)))
+-		}
+-	}
+-}
+-
+-func TestHixie76ServerHandshake(t *testing.T) {
+-	config := new(Config)
+-	handshaker := &hixie76ServerHandshaker{Config: config}
+-	br := bufio.NewReader(strings.NewReader(`GET /demo HTTP/1.1
+-Host: example.com
+-Connection: Upgrade
+-Sec-WebSocket-Key2: 12998 5 Y3 1  .P00
+-Sec-WebSocket-Protocol: sample
+-Upgrade: WebSocket
+-Sec-WebSocket-Key1: 4 @1  46546xW%0l 1 5
+-Origin: http://example.com
+-
+-^n:ds[4U`))
+-	req, err := http.ReadRequest(br)
+-	if err != nil {
+-		t.Fatal("request", err)
+-	}
+-	code, err := handshaker.ReadHandshake(br, req)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	if code != http.StatusSwitchingProtocols {
+-		t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code)
+-	}
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-
+-	err = handshaker.AcceptHandshake(bw)
+-	if err != nil {
+-		t.Errorf("handshake response failed: %v", err)
+-	}
+-	expectedResponse := strings.Join([]string{
+-		"HTTP/1.1 101 WebSocket Protocol Handshake",
+-		"Upgrade: WebSocket",
+-		"Connection: Upgrade",
+-		"Sec-WebSocket-Origin: http://example.com",
+-		"Sec-WebSocket-Location: ws://example.com/demo",
+-		"Sec-WebSocket-Protocol: sample",
+-		"", ""}, "\r\n") + "8jKS'y:G*Co,Wxa-"
+-	if b.String() != expectedResponse {
+-		t.Errorf("handshake expected %q but got %q", expectedResponse, b.String())
+-	}
+-}
+-
+-func TestHixie76SkipLengthFrame(t *testing.T) {
+-	b := []byte{'\x80', '\x01', 'x', 0, 'h', 'e', 'l', 'l', 'o', '\xff'}
+-	buf := bytes.NewBuffer(b)
+-	br := bufio.NewReader(buf)
+-	bw := bufio.NewWriter(buf)
+-	config := newConfig(t, "/")
+-	ws := newHixieConn(config, bufio.NewReadWriter(br, bw), nil, nil)
+-	msg := make([]byte, 5)
+-	n, err := ws.Read(msg)
+-	if err != nil {
+-		t.Errorf("Read: %v", err)
+-	}
+-	if !bytes.Equal(b[4:9], msg[0:n]) {
+-		t.Errorf("Read: expected %q got %q", b[4:9], msg[0:n])
+-	}
+-}
+-
+-func TestHixie76SkipNoUTF8Frame(t *testing.T) {
+-	b := []byte{'\x01', 'n', '\xff', 0, 'h', 'e', 'l', 'l', 'o', '\xff'}
+-	buf := bytes.NewBuffer(b)
+-	br := bufio.NewReader(buf)
+-	bw := bufio.NewWriter(buf)
+-	config := newConfig(t, "/")
+-	ws := newHixieConn(config, bufio.NewReadWriter(br, bw), nil, nil)
+-	msg := make([]byte, 5)
+-	n, err := ws.Read(msg)
+-	if err != nil {
+-		t.Errorf("Read: %v", err)
+-	}
+-	if !bytes.Equal(b[4:9], msg[0:n]) {
+-		t.Errorf("Read: expected %q got %q", b[4:9], msg[0:n])
+-	}
+-}
+-
+-func TestHixie76ClosingFrame(t *testing.T) {
+-	b := []byte{0, 'h', 'e', 'l', 'l', 'o', '\xff'}
+-	buf := bytes.NewBuffer(b)
+-	br := bufio.NewReader(buf)
+-	bw := bufio.NewWriter(buf)
+-	config := newConfig(t, "/")
+-	ws := newHixieConn(config, bufio.NewReadWriter(br, bw), nil, nil)
+-	msg := make([]byte, 5)
+-	n, err := ws.Read(msg)
+-	if err != nil {
+-		t.Errorf("read: %v", err)
+-	}
+-	if !bytes.Equal(b[1:6], msg[0:n]) {
+-		t.Errorf("Read: expected %q got %q", b[1:6], msg[0:n])
+-	}
+-	n, err = ws.Read(msg)
+-	if err != io.EOF {
+-		t.Errorf("read: %v", err)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hybi.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hybi.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hybi.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hybi.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,580 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket
+-
+-// This file implements a protocol of hybi draft.
+-// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17
+-
+-import (
+-	"bufio"
+-	"bytes"
+-	"crypto/rand"
+-	"crypto/sha1"
+-	"encoding/base64"
+-	"encoding/binary"
+-	"fmt"
+-	"io"
+-	"io/ioutil"
+-	"net/http"
+-	"net/url"
+-	"strings"
+-)
+-
+-const (
+-	websocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
+-
+-	closeStatusNormal            = 1000
+-	closeStatusGoingAway         = 1001
+-	closeStatusProtocolError     = 1002
+-	closeStatusUnsupportedData   = 1003
+-	closeStatusFrameTooLarge     = 1004
+-	closeStatusNoStatusRcvd      = 1005
+-	closeStatusAbnormalClosure   = 1006
+-	closeStatusBadMessageData    = 1007
+-	closeStatusPolicyViolation   = 1008
+-	closeStatusTooBigData        = 1009
+-	closeStatusExtensionMismatch = 1010
+-
+-	maxControlFramePayloadLength = 125
+-)
+-
+-var (
+-	ErrBadMaskingKey         = &ProtocolError{"bad masking key"}
+-	ErrBadPongMessage        = &ProtocolError{"bad pong message"}
+-	ErrBadClosingStatus      = &ProtocolError{"bad closing status"}
+-	ErrUnsupportedExtensions = &ProtocolError{"unsupported extensions"}
+-	ErrNotImplemented        = &ProtocolError{"not implemented"}
+-
+-	handshakeHeader = map[string]bool{
+-		"Host":                   true,
+-		"Upgrade":                true,
+-		"Connection":             true,
+-		"Sec-Websocket-Key":      true,
+-		"Sec-Websocket-Origin":   true,
+-		"Sec-Websocket-Version":  true,
+-		"Sec-Websocket-Protocol": true,
+-		"Sec-Websocket-Accept":   true,
+-	}
+-)
+-
+-// A hybiFrameHeader is a frame header as defined in hybi draft.
+-type hybiFrameHeader struct {
+-	Fin        bool
+-	Rsv        [3]bool
+-	OpCode     byte
+-	Length     int64
+-	MaskingKey []byte
+-
+-	data *bytes.Buffer
+-}
+-
+-// A hybiFrameReader is a reader for hybi frame.
+-type hybiFrameReader struct {
+-	reader io.Reader
+-
+-	header hybiFrameHeader
+-	pos    int64
+-	length int
+-}
+-
+-func (frame *hybiFrameReader) Read(msg []byte) (n int, err error) {
+-	n, err = frame.reader.Read(msg)
+-	if err != nil {
+-		return 0, err
+-	}
+-	if frame.header.MaskingKey != nil {
+-		for i := 0; i < n; i++ {
+-			msg[i] = msg[i] ^ frame.header.MaskingKey[frame.pos%4]
+-			frame.pos++
+-		}
+-	}
+-	return n, err
+-}
+-
+-func (frame *hybiFrameReader) PayloadType() byte { return frame.header.OpCode }
+-
+-func (frame *hybiFrameReader) HeaderReader() io.Reader {
+-	if frame.header.data == nil {
+-		return nil
+-	}
+-	if frame.header.data.Len() == 0 {
+-		return nil
+-	}
+-	return frame.header.data
+-}
+-
+-func (frame *hybiFrameReader) TrailerReader() io.Reader { return nil }
+-
+-func (frame *hybiFrameReader) Len() (n int) { return frame.length }
+-
+-// A hybiFrameReaderFactory creates new frame reader based on its frame type.
+-type hybiFrameReaderFactory struct {
+-	*bufio.Reader
+-}
+-
+-// NewFrameReader reads a frame header from the connection, and creates new reader for the frame.
+-// See Section 5.2 Base Framing protocol for detail.
+-// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17#section-5.2
+-func (buf hybiFrameReaderFactory) NewFrameReader() (frame frameReader, err error) {
+-	hybiFrame := new(hybiFrameReader)
+-	frame = hybiFrame
+-	var header []byte
+-	var b byte
+-	// First byte. FIN/RSV1/RSV2/RSV3/OpCode(4bits)
+-	b, err = buf.ReadByte()
+-	if err != nil {
+-		return
+-	}
+-	header = append(header, b)
+-	hybiFrame.header.Fin = ((header[0] >> 7) & 1) != 0
+-	for i := 0; i < 3; i++ {
+-		j := uint(6 - i)
+-		hybiFrame.header.Rsv[i] = ((header[0] >> j) & 1) != 0
+-	}
+-	hybiFrame.header.OpCode = header[0] & 0x0f
+-
+-	// Second byte. Mask/Payload len(7bits)
+-	b, err = buf.ReadByte()
+-	if err != nil {
+-		return
+-	}
+-	header = append(header, b)
+-	mask := (b & 0x80) != 0
+-	b &= 0x7f
+-	lengthFields := 0
+-	switch {
+-	case b <= 125: // Payload length 7bits.
+-		hybiFrame.header.Length = int64(b)
+-	case b == 126: // Payload length 7+16bits
+-		lengthFields = 2
+-	case b == 127: // Payload length 7+64bits
+-		lengthFields = 8
+-	}
+-	for i := 0; i < lengthFields; i++ {
+-		b, err = buf.ReadByte()
+-		if err != nil {
+-			return
+-		}
+-		header = append(header, b)
+-		hybiFrame.header.Length = hybiFrame.header.Length*256 + int64(b)
+-	}
+-	if mask {
+-		// Masking key. 4 bytes.
+-		for i := 0; i < 4; i++ {
+-			b, err = buf.ReadByte()
+-			if err != nil {
+-				return
+-			}
+-			header = append(header, b)
+-			hybiFrame.header.MaskingKey = append(hybiFrame.header.MaskingKey, b)
+-		}
+-	}
+-	hybiFrame.reader = io.LimitReader(buf.Reader, hybiFrame.header.Length)
+-	hybiFrame.header.data = bytes.NewBuffer(header)
+-	hybiFrame.length = len(header) + int(hybiFrame.header.Length)
+-	return
+-}
+-
+-// A HybiFrameWriter is a writer for hybi frame.
+-type hybiFrameWriter struct {
+-	writer *bufio.Writer
+-
+-	header *hybiFrameHeader
+-}
+-
+-func (frame *hybiFrameWriter) Write(msg []byte) (n int, err error) {
+-	var header []byte
+-	var b byte
+-	if frame.header.Fin {
+-		b |= 0x80
+-	}
+-	for i := 0; i < 3; i++ {
+-		if frame.header.Rsv[i] {
+-			j := uint(6 - i)
+-			b |= 1 << j
+-		}
+-	}
+-	b |= frame.header.OpCode
+-	header = append(header, b)
+-	if frame.header.MaskingKey != nil {
+-		b = 0x80
+-	} else {
+-		b = 0
+-	}
+-	lengthFields := 0
+-	length := len(msg)
+-	switch {
+-	case length <= 125:
+-		b |= byte(length)
+-	case length < 65536:
+-		b |= 126
+-		lengthFields = 2
+-	default:
+-		b |= 127
+-		lengthFields = 8
+-	}
+-	header = append(header, b)
+-	for i := 0; i < lengthFields; i++ {
+-		j := uint((lengthFields - i - 1) * 8)
+-		b = byte((length >> j) & 0xff)
+-		header = append(header, b)
+-	}
+-	if frame.header.MaskingKey != nil {
+-		if len(frame.header.MaskingKey) != 4 {
+-			return 0, ErrBadMaskingKey
+-		}
+-		header = append(header, frame.header.MaskingKey...)
+-		frame.writer.Write(header)
+-		data := make([]byte, length)
+-		for i := range data {
+-			data[i] = msg[i] ^ frame.header.MaskingKey[i%4]
+-		}
+-		frame.writer.Write(data)
+-		err = frame.writer.Flush()
+-		return length, err
+-	}
+-	frame.writer.Write(header)
+-	frame.writer.Write(msg)
+-	err = frame.writer.Flush()
+-	return length, err
+-}
+-
+-func (frame *hybiFrameWriter) Close() error { return nil }
+-
+-type hybiFrameWriterFactory struct {
+-	*bufio.Writer
+-	needMaskingKey bool
+-}
+-
+-func (buf hybiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err error) {
+-	frameHeader := &hybiFrameHeader{Fin: true, OpCode: payloadType}
+-	if buf.needMaskingKey {
+-		frameHeader.MaskingKey, err = generateMaskingKey()
+-		if err != nil {
+-			return nil, err
+-		}
+-	}
+-	return &hybiFrameWriter{writer: buf.Writer, header: frameHeader}, nil
+-}
+-
+-type hybiFrameHandler struct {
+-	conn        *Conn
+-	payloadType byte
+-}
+-
+-func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (r frameReader, err error) {
+-	if handler.conn.IsServerConn() {
+-		// The client MUST mask all frames sent to the server.
+-		if frame.(*hybiFrameReader).header.MaskingKey == nil {
+-			handler.WriteClose(closeStatusProtocolError)
+-			return nil, io.EOF
+-		}
+-	} else {
+-		// The server MUST NOT mask all frames.
+-		if frame.(*hybiFrameReader).header.MaskingKey != nil {
+-			handler.WriteClose(closeStatusProtocolError)
+-			return nil, io.EOF
+-		}
+-	}
+-	if header := frame.HeaderReader(); header != nil {
+-		io.Copy(ioutil.Discard, header)
+-	}
+-	switch frame.PayloadType() {
+-	case ContinuationFrame:
+-		frame.(*hybiFrameReader).header.OpCode = handler.payloadType
+-	case TextFrame, BinaryFrame:
+-		handler.payloadType = frame.PayloadType()
+-	case CloseFrame:
+-		return nil, io.EOF
+-	case PingFrame:
+-		pingMsg := make([]byte, maxControlFramePayloadLength)
+-		n, err := io.ReadFull(frame, pingMsg)
+-		if err != nil && err != io.ErrUnexpectedEOF {
+-			return nil, err
+-		}
+-		io.Copy(ioutil.Discard, frame)
+-		n, err = handler.WritePong(pingMsg[:n])
+-		if err != nil {
+-			return nil, err
+-		}
+-		return nil, nil
+-	case PongFrame:
+-		return nil, ErrNotImplemented
+-	}
+-	return frame, nil
+-}
+-
+-func (handler *hybiFrameHandler) WriteClose(status int) (err error) {
+-	handler.conn.wio.Lock()
+-	defer handler.conn.wio.Unlock()
+-	w, err := handler.conn.frameWriterFactory.NewFrameWriter(CloseFrame)
+-	if err != nil {
+-		return err
+-	}
+-	msg := make([]byte, 2)
+-	binary.BigEndian.PutUint16(msg, uint16(status))
+-	_, err = w.Write(msg)
+-	w.Close()
+-	return err
+-}
+-
+-func (handler *hybiFrameHandler) WritePong(msg []byte) (n int, err error) {
+-	handler.conn.wio.Lock()
+-	defer handler.conn.wio.Unlock()
+-	w, err := handler.conn.frameWriterFactory.NewFrameWriter(PongFrame)
+-	if err != nil {
+-		return 0, err
+-	}
+-	n, err = w.Write(msg)
+-	w.Close()
+-	return n, err
+-}
+-
+-// newHybiConn creates a new WebSocket connection speaking hybi draft protocol.
+-func newHybiConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+-	if buf == nil {
+-		br := bufio.NewReader(rwc)
+-		bw := bufio.NewWriter(rwc)
+-		buf = bufio.NewReadWriter(br, bw)
+-	}
+-	ws := &Conn{config: config, request: request, buf: buf, rwc: rwc,
+-		frameReaderFactory: hybiFrameReaderFactory{buf.Reader},
+-		frameWriterFactory: hybiFrameWriterFactory{
+-			buf.Writer, request == nil},
+-		PayloadType:        TextFrame,
+-		defaultCloseStatus: closeStatusNormal}
+-	ws.frameHandler = &hybiFrameHandler{conn: ws}
+-	return ws
+-}
+-
+-// generateMaskingKey generates a masking key for a frame.
+-func generateMaskingKey() (maskingKey []byte, err error) {
+-	maskingKey = make([]byte, 4)
+-	if _, err = io.ReadFull(rand.Reader, maskingKey); err != nil {
+-		return
+-	}
+-	return
+-}
+-
+-// generateNonce generates a nonce consisting of a randomly selected 16-byte
+-// value that has been base64-encoded.
+-func generateNonce() (nonce []byte) {
+-	key := make([]byte, 16)
+-	if _, err := io.ReadFull(rand.Reader, key); err != nil {
+-		panic(err)
+-	}
+-	nonce = make([]byte, 24)
+-	base64.StdEncoding.Encode(nonce, key)
+-	return
+-}
+-
+-// getNonceAccept computes the base64-encoded SHA-1 of the concatenation of
+-// the nonce ("Sec-WebSocket-Key" value) with the websocket GUID string.
+-func getNonceAccept(nonce []byte) (expected []byte, err error) {
+-	h := sha1.New()
+-	if _, err = h.Write(nonce); err != nil {
+-		return
+-	}
+-	if _, err = h.Write([]byte(websocketGUID)); err != nil {
+-		return
+-	}
+-	expected = make([]byte, 28)
+-	base64.StdEncoding.Encode(expected, h.Sum(nil))
+-	return
+-}
+-
+-func isHybiVersion(version int) bool {
+-	switch version {
+-	case ProtocolVersionHybi08, ProtocolVersionHybi13:
+-		return true
+-	default:
+-	}
+-	return false
+-}
+-
+-// Client handshake described in draft-ietf-hybi-thewebsocket-protocol-17
+-func hybiClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) {
+-	if !isHybiVersion(config.Version) {
+-		panic("wrong protocol version.")
+-	}
+-
+-	bw.WriteString("GET " + config.Location.RequestURI() + " HTTP/1.1\r\n")
+-
+-	bw.WriteString("Host: " + config.Location.Host + "\r\n")
+-	bw.WriteString("Upgrade: websocket\r\n")
+-	bw.WriteString("Connection: Upgrade\r\n")
+-	nonce := generateNonce()
+-	if config.handshakeData != nil {
+-		nonce = []byte(config.handshakeData["key"])
+-	}
+-	bw.WriteString("Sec-WebSocket-Key: " + string(nonce) + "\r\n")
+-	if config.Version == ProtocolVersionHybi13 {
+-		bw.WriteString("Origin: " + strings.ToLower(config.Origin.String()) + "\r\n")
+-	} else if config.Version == ProtocolVersionHybi08 {
+-		bw.WriteString("Sec-WebSocket-Origin: " + strings.ToLower(config.Origin.String()) + "\r\n")
+-	}
+-	bw.WriteString("Sec-WebSocket-Version: " + fmt.Sprintf("%d", config.Version) + "\r\n")
+-	if len(config.Protocol) > 0 {
+-		bw.WriteString("Sec-WebSocket-Protocol: " + strings.Join(config.Protocol, ", ") + "\r\n")
+-	}
+-	// TODO(ukai): send Sec-WebSocket-Extensions.
+-	err = config.Header.WriteSubset(bw, handshakeHeader)
+-	if err != nil {
+-		return err
+-	}
+-
+-	bw.WriteString("\r\n")
+-	if err = bw.Flush(); err != nil {
+-		return err
+-	}
+-
+-	resp, err := http.ReadResponse(br, &http.Request{Method: "GET"})
+-	if err != nil {
+-		return err
+-	}
+-	if resp.StatusCode != 101 {
+-		return ErrBadStatus
+-	}
+-	if strings.ToLower(resp.Header.Get("Upgrade")) != "websocket" ||
+-		strings.ToLower(resp.Header.Get("Connection")) != "upgrade" {
+-		return ErrBadUpgrade
+-	}
+-	expectedAccept, err := getNonceAccept(nonce)
+-	if err != nil {
+-		return err
+-	}
+-	if resp.Header.Get("Sec-WebSocket-Accept") != string(expectedAccept) {
+-		return ErrChallengeResponse
+-	}
+-	if resp.Header.Get("Sec-WebSocket-Extensions") != "" {
+-		return ErrUnsupportedExtensions
+-	}
+-	offeredProtocol := resp.Header.Get("Sec-WebSocket-Protocol")
+-	if offeredProtocol != "" {
+-		protocolMatched := false
+-		for i := 0; i < len(config.Protocol); i++ {
+-			if config.Protocol[i] == offeredProtocol {
+-				protocolMatched = true
+-				break
+-			}
+-		}
+-		if !protocolMatched {
+-			return ErrBadWebSocketProtocol
+-		}
+-		config.Protocol = []string{offeredProtocol}
+-	}
+-
+-	return nil
+-}
+-
+-// newHybiClientConn creates a client WebSocket connection after handshake.
+-func newHybiClientConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser) *Conn {
+-	return newHybiConn(config, buf, rwc, nil)
+-}
+-
+-// A HybiServerHandshaker performs a server handshake using hybi draft protocol.
+-type hybiServerHandshaker struct {
+-	*Config
+-	accept []byte
+-}
+-
+-func (c *hybiServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) {
+-	c.Version = ProtocolVersionHybi13
+-	if req.Method != "GET" {
+-		return http.StatusMethodNotAllowed, ErrBadRequestMethod
+-	}
+-	// HTTP version can be safely ignored.
+-
+-	if strings.ToLower(req.Header.Get("Upgrade")) != "websocket" ||
+-		!strings.Contains(strings.ToLower(req.Header.Get("Connection")), "upgrade") {
+-		return http.StatusBadRequest, ErrNotWebSocket
+-	}
+-
+-	key := req.Header.Get("Sec-Websocket-Key")
+-	if key == "" {
+-		return http.StatusBadRequest, ErrChallengeResponse
+-	}
+-	version := req.Header.Get("Sec-Websocket-Version")
+-	switch version {
+-	case "13":
+-		c.Version = ProtocolVersionHybi13
+-	case "8":
+-		c.Version = ProtocolVersionHybi08
+-	default:
+-		return http.StatusBadRequest, ErrBadWebSocketVersion
+-	}
+-	var scheme string
+-	if req.TLS != nil {
+-		scheme = "wss"
+-	} else {
+-		scheme = "ws"
+-	}
+-	c.Location, err = url.ParseRequestURI(scheme + "://" + req.Host + req.URL.RequestURI())
+-	if err != nil {
+-		return http.StatusBadRequest, err
+-	}
+-	protocol := strings.TrimSpace(req.Header.Get("Sec-Websocket-Protocol"))
+-	if protocol != "" {
+-		protocols := strings.Split(protocol, ",")
+-		for i := 0; i < len(protocols); i++ {
+-			c.Protocol = append(c.Protocol, strings.TrimSpace(protocols[i]))
+-		}
+-	}
+-	c.accept, err = getNonceAccept([]byte(key))
+-	if err != nil {
+-		return http.StatusInternalServerError, err
+-	}
+-	return http.StatusSwitchingProtocols, nil
+-}
+-
+-// Origin parses Origin header in "req".
+-// If origin is "null", returns (nil, nil).
+-func Origin(config *Config, req *http.Request) (*url.URL, error) {
+-	var origin string
+-	switch config.Version {
+-	case ProtocolVersionHybi13:
+-		origin = req.Header.Get("Origin")
+-	case ProtocolVersionHybi08:
+-		origin = req.Header.Get("Sec-Websocket-Origin")
+-	}
+-	if origin == "null" {
+-		return nil, nil
+-	}
+-	return url.ParseRequestURI(origin)
+-}
+-
+-func (c *hybiServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) {
+-	if len(c.Protocol) > 0 {
+-		if len(c.Protocol) != 1 {
+-			// You need choose a Protocol in Handshake func in Server.
+-			return ErrBadWebSocketProtocol
+-		}
+-	}
+-	buf.WriteString("HTTP/1.1 101 Switching Protocols\r\n")
+-	buf.WriteString("Upgrade: websocket\r\n")
+-	buf.WriteString("Connection: Upgrade\r\n")
+-	buf.WriteString("Sec-WebSocket-Accept: " + string(c.accept) + "\r\n")
+-	if len(c.Protocol) > 0 {
+-		buf.WriteString("Sec-WebSocket-Protocol: " + c.Protocol[0] + "\r\n")
+-	}
+-	// TODO(ukai): send Sec-WebSocket-Extensions.
+-	if c.Header != nil {
+-		err := c.Header.WriteSubset(buf, handshakeHeader)
+-		if err != nil {
+-			return err
+-		}
+-	}
+-	buf.WriteString("\r\n")
+-	return buf.Flush()
+-}
+-
+-func (c *hybiServerHandshaker) NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+-	return newHybiServerConn(c.Config, buf, rwc, request)
+-}
+-
+-// newHybiServerConn returns a new WebSocket connection speaking hybi draft protocol.
+-func newHybiServerConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+-	return newHybiConn(config, buf, rwc, request)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hybi_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hybi_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/hybi_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/hybi_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,698 +0,0 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket
+-
+-import (
+-	"bufio"
+-	"bytes"
+-	"fmt"
+-	"io"
+-	"net/http"
+-	"net/url"
+-	"strings"
+-	"testing"
+-)
+-
+-// Test the getNonceAccept function with values in
+-// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17
+-func TestSecWebSocketAccept(t *testing.T) {
+-	nonce := []byte("dGhlIHNhbXBsZSBub25jZQ==")
+-	expected := []byte("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=")
+-	accept, err := getNonceAccept(nonce)
+-	if err != nil {
+-		t.Errorf("getNonceAccept: returned error %v", err)
+-		return
+-	}
+-	if !bytes.Equal(expected, accept) {
+-		t.Errorf("getNonceAccept: expected %q got %q", expected, accept)
+-	}
+-}
+-
+-func TestHybiClientHandshake(t *testing.T) {
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-	br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 Switching Protocols
+-Upgrade: websocket
+-Connection: Upgrade
+-Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
+-Sec-WebSocket-Protocol: chat
+-
+-`))
+-	var err error
+-	config := new(Config)
+-	config.Location, err = url.ParseRequestURI("ws://server.example.com/chat")
+-	if err != nil {
+-		t.Fatal("location url", err)
+-	}
+-	config.Origin, err = url.ParseRequestURI("http://example.com")
+-	if err != nil {
+-		t.Fatal("origin url", err)
+-	}
+-	config.Protocol = append(config.Protocol, "chat")
+-	config.Protocol = append(config.Protocol, "superchat")
+-	config.Version = ProtocolVersionHybi13
+-
+-	config.handshakeData = map[string]string{
+-		"key": "dGhlIHNhbXBsZSBub25jZQ==",
+-	}
+-	err = hybiClientHandshake(config, br, bw)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	req, err := http.ReadRequest(bufio.NewReader(b))
+-	if err != nil {
+-		t.Fatalf("read request: %v", err)
+-	}
+-	if req.Method != "GET" {
+-		t.Errorf("request method expected GET, but got %q", req.Method)
+-	}
+-	if req.URL.Path != "/chat" {
+-		t.Errorf("request path expected /chat, but got %q", req.URL.Path)
+-	}
+-	if req.Proto != "HTTP/1.1" {
+-		t.Errorf("request proto expected HTTP/1.1, but got %q", req.Proto)
+-	}
+-	if req.Host != "server.example.com" {
+-		t.Errorf("request Host expected server.example.com, but got %v", req.Host)
+-	}
+-	var expectedHeader = map[string]string{
+-		"Connection":             "Upgrade",
+-		"Upgrade":                "websocket",
+-		"Sec-Websocket-Key":      config.handshakeData["key"],
+-		"Origin":                 config.Origin.String(),
+-		"Sec-Websocket-Protocol": "chat, superchat",
+-		"Sec-Websocket-Version":  fmt.Sprintf("%d", ProtocolVersionHybi13),
+-	}
+-	for k, v := range expectedHeader {
+-		if req.Header.Get(k) != v {
+-			t.Errorf(fmt.Sprintf("%s expected %q but got %q", k, v, req.Header.Get(k)))
+-		}
+-	}
+-}
+-
+-func TestHybiClientHandshakeWithHeader(t *testing.T) {
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-	br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 Switching Protocols
+-Upgrade: websocket
+-Connection: Upgrade
+-Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
+-Sec-WebSocket-Protocol: chat
+-
+-`))
+-	var err error
+-	config := new(Config)
+-	config.Location, err = url.ParseRequestURI("ws://server.example.com/chat")
+-	if err != nil {
+-		t.Fatal("location url", err)
+-	}
+-	config.Origin, err = url.ParseRequestURI("http://example.com")
+-	if err != nil {
+-		t.Fatal("origin url", err)
+-	}
+-	config.Protocol = append(config.Protocol, "chat")
+-	config.Protocol = append(config.Protocol, "superchat")
+-	config.Version = ProtocolVersionHybi13
+-	config.Header = http.Header(make(map[string][]string))
+-	config.Header.Add("User-Agent", "test")
+-
+-	config.handshakeData = map[string]string{
+-		"key": "dGhlIHNhbXBsZSBub25jZQ==",
+-	}
+-	err = hybiClientHandshake(config, br, bw)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	req, err := http.ReadRequest(bufio.NewReader(b))
+-	if err != nil {
+-		t.Fatalf("read request: %v", err)
+-	}
+-	if req.Method != "GET" {
+-		t.Errorf("request method expected GET, but got %q", req.Method)
+-	}
+-	if req.URL.Path != "/chat" {
+-		t.Errorf("request path expected /chat, but got %q", req.URL.Path)
+-	}
+-	if req.Proto != "HTTP/1.1" {
+-		t.Errorf("request proto expected HTTP/1.1, but got %q", req.Proto)
+-	}
+-	if req.Host != "server.example.com" {
+-		t.Errorf("request Host expected server.example.com, but got %v", req.Host)
+-	}
+-	var expectedHeader = map[string]string{
+-		"Connection":             "Upgrade",
+-		"Upgrade":                "websocket",
+-		"Sec-Websocket-Key":      config.handshakeData["key"],
+-		"Origin":                 config.Origin.String(),
+-		"Sec-Websocket-Protocol": "chat, superchat",
+-		"Sec-Websocket-Version":  fmt.Sprintf("%d", ProtocolVersionHybi13),
+-		"User-Agent":             "test",
+-	}
+-	for k, v := range expectedHeader {
+-		if req.Header.Get(k) != v {
+-			t.Errorf(fmt.Sprintf("%s expected %q but got %q", k, v, req.Header.Get(k)))
+-		}
+-	}
+-}
+-
+-func TestHybiClientHandshakeHybi08(t *testing.T) {
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-	br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 Switching Protocols
+-Upgrade: websocket
+-Connection: Upgrade
+-Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
+-Sec-WebSocket-Protocol: chat
+-
+-`))
+-	var err error
+-	config := new(Config)
+-	config.Location, err = url.ParseRequestURI("ws://server.example.com/chat")
+-	if err != nil {
+-		t.Fatal("location url", err)
+-	}
+-	config.Origin, err = url.ParseRequestURI("http://example.com")
+-	if err != nil {
+-		t.Fatal("origin url", err)
+-	}
+-	config.Protocol = append(config.Protocol, "chat")
+-	config.Protocol = append(config.Protocol, "superchat")
+-	config.Version = ProtocolVersionHybi08
+-
+-	config.handshakeData = map[string]string{
+-		"key": "dGhlIHNhbXBsZSBub25jZQ==",
+-	}
+-	err = hybiClientHandshake(config, br, bw)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	req, err := http.ReadRequest(bufio.NewReader(b))
+-	if err != nil {
+-		t.Fatalf("read request: %v", err)
+-	}
+-	if req.Method != "GET" {
+-		t.Errorf("request method expected GET, but got %q", req.Method)
+-	}
+-	if req.URL.Path != "/chat" {
+-		t.Errorf("request path expected /demo, but got %q", req.URL.Path)
+-	}
+-	if req.Proto != "HTTP/1.1" {
+-		t.Errorf("request proto expected HTTP/1.1, but got %q", req.Proto)
+-	}
+-	if req.Host != "server.example.com" {
+-		t.Errorf("request Host expected example.com, but got %v", req.Host)
+-	}
+-	var expectedHeader = map[string]string{
+-		"Connection":             "Upgrade",
+-		"Upgrade":                "websocket",
+-		"Sec-Websocket-Key":      config.handshakeData["key"],
+-		"Sec-Websocket-Origin":   config.Origin.String(),
+-		"Sec-Websocket-Protocol": "chat, superchat",
+-		"Sec-Websocket-Version":  fmt.Sprintf("%d", ProtocolVersionHybi08),
+-	}
+-	for k, v := range expectedHeader {
+-		if req.Header.Get(k) != v {
+-			t.Errorf(fmt.Sprintf("%s expected %q but got %q", k, v, req.Header.Get(k)))
+-		}
+-	}
+-}
+-
+-func TestHybiServerHandshake(t *testing.T) {
+-	config := new(Config)
+-	handshaker := &hybiServerHandshaker{Config: config}
+-	br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1
+-Host: server.example.com
+-Upgrade: websocket
+-Connection: Upgrade
+-Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
+-Origin: http://example.com
+-Sec-WebSocket-Protocol: chat, superchat
+-Sec-WebSocket-Version: 13
+-
+-`))
+-	req, err := http.ReadRequest(br)
+-	if err != nil {
+-		t.Fatal("request", err)
+-	}
+-	code, err := handshaker.ReadHandshake(br, req)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	if code != http.StatusSwitchingProtocols {
+-		t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code)
+-	}
+-	expectedProtocols := []string{"chat", "superchat"}
+-	if fmt.Sprintf("%v", config.Protocol) != fmt.Sprintf("%v", expectedProtocols) {
+-		t.Errorf("protocol expected %q but got %q", expectedProtocols, config.Protocol)
+-	}
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-
+-	config.Protocol = config.Protocol[:1]
+-
+-	err = handshaker.AcceptHandshake(bw)
+-	if err != nil {
+-		t.Errorf("handshake response failed: %v", err)
+-	}
+-	expectedResponse := strings.Join([]string{
+-		"HTTP/1.1 101 Switching Protocols",
+-		"Upgrade: websocket",
+-		"Connection: Upgrade",
+-		"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=",
+-		"Sec-WebSocket-Protocol: chat",
+-		"", ""}, "\r\n")
+-
+-	if b.String() != expectedResponse {
+-		t.Errorf("handshake expected %q but got %q", expectedResponse, b.String())
+-	}
+-}
+-
+-func TestHybiServerHandshakeNoSubProtocol(t *testing.T) {
+-	config := new(Config)
+-	handshaker := &hybiServerHandshaker{Config: config}
+-	br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1
+-Host: server.example.com
+-Upgrade: websocket
+-Connection: Upgrade
+-Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
+-Origin: http://example.com
+-Sec-WebSocket-Version: 13
+-
+-`))
+-	req, err := http.ReadRequest(br)
+-	if err != nil {
+-		t.Fatal("request", err)
+-	}
+-	code, err := handshaker.ReadHandshake(br, req)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	if code != http.StatusSwitchingProtocols {
+-		t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code)
+-	}
+-	if len(config.Protocol) != 0 {
+-		t.Errorf("len(config.Protocol) expected 0, but got %q", len(config.Protocol))
+-	}
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-
+-	err = handshaker.AcceptHandshake(bw)
+-	if err != nil {
+-		t.Errorf("handshake response failed: %v", err)
+-	}
+-	expectedResponse := strings.Join([]string{
+-		"HTTP/1.1 101 Switching Protocols",
+-		"Upgrade: websocket",
+-		"Connection: Upgrade",
+-		"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=",
+-		"", ""}, "\r\n")
+-
+-	if b.String() != expectedResponse {
+-		t.Errorf("handshake expected %q but got %q", expectedResponse, b.String())
+-	}
+-}
+-
+-func TestHybiServerHandshakeHybi08(t *testing.T) {
+-	config := new(Config)
+-	handshaker := &hybiServerHandshaker{Config: config}
+-	br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1
+-Host: server.example.com
+-Upgrade: websocket
+-Connection: Upgrade
+-Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
+-Sec-WebSocket-Origin: http://example.com
+-Sec-WebSocket-Protocol: chat, superchat
+-Sec-WebSocket-Version: 8
+-
+-`))
+-	req, err := http.ReadRequest(br)
+-	if err != nil {
+-		t.Fatal("request", err)
+-	}
+-	code, err := handshaker.ReadHandshake(br, req)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	if code != http.StatusSwitchingProtocols {
+-		t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code)
+-	}
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-
+-	config.Protocol = []string{"chat"}
+-
+-	err = handshaker.AcceptHandshake(bw)
+-	if err != nil {
+-		t.Errorf("handshake response failed: %v", err)
+-	}
+-	expectedResponse := strings.Join([]string{
+-		"HTTP/1.1 101 Switching Protocols",
+-		"Upgrade: websocket",
+-		"Connection: Upgrade",
+-		"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=",
+-		"Sec-WebSocket-Protocol: chat",
+-		"", ""}, "\r\n")
+-
+-	if b.String() != expectedResponse {
+-		t.Errorf("handshake expected %q but got %q", expectedResponse, b.String())
+-	}
+-}
+-
+-func TestHybiServerHandshakeHybiBadVersion(t *testing.T) {
+-	config := new(Config)
+-	handshaker := &hybiServerHandshaker{Config: config}
+-	br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1
+-Host: server.example.com
+-Upgrade: websocket
+-Connection: Upgrade
+-Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
+-Sec-WebSocket-Origin: http://example.com
+-Sec-WebSocket-Protocol: chat, superchat
+-Sec-WebSocket-Version: 9
+-
+-`))
+-	req, err := http.ReadRequest(br)
+-	if err != nil {
+-		t.Fatal("request", err)
+-	}
+-	code, err := handshaker.ReadHandshake(br, req)
+-	if err != ErrBadWebSocketVersion {
+-		t.Errorf("handshake expected err %q but got %q", ErrBadWebSocketVersion, err)
+-	}
+-	if code != http.StatusBadRequest {
+-		t.Errorf("status expected %q but got %q", http.StatusBadRequest, code)
+-	}
+-}
+-
+-func testHybiFrame(t *testing.T, testHeader, testPayload, testMaskedPayload []byte, frameHeader *hybiFrameHeader) {
+-	b := bytes.NewBuffer([]byte{})
+-	frameWriterFactory := &hybiFrameWriterFactory{bufio.NewWriter(b), false}
+-	w, _ := frameWriterFactory.NewFrameWriter(TextFrame)
+-	w.(*hybiFrameWriter).header = frameHeader
+-	_, err := w.Write(testPayload)
+-	w.Close()
+-	if err != nil {
+-		t.Errorf("Write error %q", err)
+-	}
+-	var expectedFrame []byte
+-	expectedFrame = append(expectedFrame, testHeader...)
+-	expectedFrame = append(expectedFrame, testMaskedPayload...)
+-	if !bytes.Equal(expectedFrame, b.Bytes()) {
+-		t.Errorf("frame expected %q got %q", expectedFrame, b.Bytes())
+-	}
+-	frameReaderFactory := &hybiFrameReaderFactory{bufio.NewReader(b)}
+-	r, err := frameReaderFactory.NewFrameReader()
+-	if err != nil {
+-		t.Errorf("Read error %q", err)
+-	}
+-	if header := r.HeaderReader(); header == nil {
+-		t.Errorf("no header")
+-	} else {
+-		actualHeader := make([]byte, r.Len())
+-		n, err := header.Read(actualHeader)
+-		if err != nil {
+-			t.Errorf("Read header error %q", err)
+-		} else {
+-			if n < len(testHeader) {
+-				t.Errorf("header too short %q got %q", testHeader, actualHeader[:n])
+-			}
+-			if !bytes.Equal(testHeader, actualHeader[:n]) {
+-				t.Errorf("header expected %q got %q", testHeader, actualHeader[:n])
+-			}
+-		}
+-	}
+-	if trailer := r.TrailerReader(); trailer != nil {
+-		t.Errorf("unexpected trailer %q", trailer)
+-	}
+-	frame := r.(*hybiFrameReader)
+-	if frameHeader.Fin != frame.header.Fin ||
+-		frameHeader.OpCode != frame.header.OpCode ||
+-		len(testPayload) != int(frame.header.Length) {
+-		t.Errorf("mismatch %v (%d) vs %v", frameHeader, len(testPayload), frame)
+-	}
+-	payload := make([]byte, len(testPayload))
+-	_, err = r.Read(payload)
+-	if err != nil {
+-		t.Errorf("read %v", err)
+-	}
+-	if !bytes.Equal(testPayload, payload) {
+-		t.Errorf("payload %q vs %q", testPayload, payload)
+-	}
+-}
+-
+-func TestHybiShortTextFrame(t *testing.T) {
+-	frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame}
+-	payload := []byte("hello")
+-	testHybiFrame(t, []byte{0x81, 0x05}, payload, payload, frameHeader)
+-
+-	payload = make([]byte, 125)
+-	testHybiFrame(t, []byte{0x81, 125}, payload, payload, frameHeader)
+-}
+-
+-func TestHybiShortMaskedTextFrame(t *testing.T) {
+-	frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame,
+-		MaskingKey: []byte{0xcc, 0x55, 0x80, 0x20}}
+-	payload := []byte("hello")
+-	maskedPayload := []byte{0xa4, 0x30, 0xec, 0x4c, 0xa3}
+-	header := []byte{0x81, 0x85}
+-	header = append(header, frameHeader.MaskingKey...)
+-	testHybiFrame(t, header, payload, maskedPayload, frameHeader)
+-}
+-
+-func TestHybiShortBinaryFrame(t *testing.T) {
+-	frameHeader := &hybiFrameHeader{Fin: true, OpCode: BinaryFrame}
+-	payload := []byte("hello")
+-	testHybiFrame(t, []byte{0x82, 0x05}, payload, payload, frameHeader)
+-
+-	payload = make([]byte, 125)
+-	testHybiFrame(t, []byte{0x82, 125}, payload, payload, frameHeader)
+-}
+-
+-func TestHybiControlFrame(t *testing.T) {
+-	frameHeader := &hybiFrameHeader{Fin: true, OpCode: PingFrame}
+-	payload := []byte("hello")
+-	testHybiFrame(t, []byte{0x89, 0x05}, payload, payload, frameHeader)
+-
+-	frameHeader = &hybiFrameHeader{Fin: true, OpCode: PongFrame}
+-	testHybiFrame(t, []byte{0x8A, 0x05}, payload, payload, frameHeader)
+-
+-	frameHeader = &hybiFrameHeader{Fin: true, OpCode: CloseFrame}
+-	payload = []byte{0x03, 0xe8} // 1000
+-	testHybiFrame(t, []byte{0x88, 0x02}, payload, payload, frameHeader)
+-}
+-
+-func TestHybiLongFrame(t *testing.T) {
+-	frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame}
+-	payload := make([]byte, 126)
+-	testHybiFrame(t, []byte{0x81, 126, 0x00, 126}, payload, payload, frameHeader)
+-
+-	payload = make([]byte, 65535)
+-	testHybiFrame(t, []byte{0x81, 126, 0xff, 0xff}, payload, payload, frameHeader)
+-
+-	payload = make([]byte, 65536)
+-	testHybiFrame(t, []byte{0x81, 127, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, payload, payload, frameHeader)
+-}
+-
+-func TestHybiClientRead(t *testing.T) {
+-	wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o',
+-		0x89, 0x05, 'h', 'e', 'l', 'l', 'o', // ping
+-		0x81, 0x05, 'w', 'o', 'r', 'l', 'd'}
+-	br := bufio.NewReader(bytes.NewBuffer(wireData))
+-	bw := bufio.NewWriter(bytes.NewBuffer([]byte{}))
+-	conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil)
+-
+-	msg := make([]byte, 512)
+-	n, err := conn.Read(msg)
+-	if err != nil {
+-		t.Errorf("read 1st frame, error %q", err)
+-	}
+-	if n != 5 {
+-		t.Errorf("read 1st frame, expect 5, got %d", n)
+-	}
+-	if !bytes.Equal(wireData[2:7], msg[:n]) {
+-		t.Errorf("read 1st frame %v, got %v", wireData[2:7], msg[:n])
+-	}
+-	n, err = conn.Read(msg)
+-	if err != nil {
+-		t.Errorf("read 2nd frame, error %q", err)
+-	}
+-	if n != 5 {
+-		t.Errorf("read 2nd frame, expect 5, got %d", n)
+-	}
+-	if !bytes.Equal(wireData[16:21], msg[:n]) {
+-		t.Errorf("read 2nd frame %v, got %v", wireData[16:21], msg[:n])
+-	}
+-	n, err = conn.Read(msg)
+-	if err == nil {
+-		t.Errorf("read not EOF")
+-	}
+-	if n != 0 {
+-		t.Errorf("expect read 0, got %d", n)
+-	}
+-}
+-
+-func TestHybiShortRead(t *testing.T) {
+-	wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o',
+-		0x89, 0x05, 'h', 'e', 'l', 'l', 'o', // ping
+-		0x81, 0x05, 'w', 'o', 'r', 'l', 'd'}
+-	br := bufio.NewReader(bytes.NewBuffer(wireData))
+-	bw := bufio.NewWriter(bytes.NewBuffer([]byte{}))
+-	conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil)
+-
+-	step := 0
+-	pos := 0
+-	expectedPos := []int{2, 5, 16, 19}
+-	expectedLen := []int{3, 2, 3, 2}
+-	for {
+-		msg := make([]byte, 3)
+-		n, err := conn.Read(msg)
+-		if step >= len(expectedPos) {
+-			if err == nil {
+-				t.Errorf("read not EOF")
+-			}
+-			if n != 0 {
+-				t.Errorf("expect read 0, got %d", n)
+-			}
+-			return
+-		}
+-		pos = expectedPos[step]
+-		endPos := pos + expectedLen[step]
+-		if err != nil {
+-			t.Errorf("read from %d, got error %q", pos, err)
+-			return
+-		}
+-		if n != endPos-pos {
+-			t.Errorf("read from %d, expect %d, got %d", pos, endPos-pos, n)
+-		}
+-		if !bytes.Equal(wireData[pos:endPos], msg[:n]) {
+-			t.Errorf("read from %d, frame %v, got %v", pos, wireData[pos:endPos], msg[:n])
+-		}
+-		step++
+-	}
+-}
+-
+-func TestHybiServerRead(t *testing.T) {
+-	wireData := []byte{0x81, 0x85, 0xcc, 0x55, 0x80, 0x20,
+-		0xa4, 0x30, 0xec, 0x4c, 0xa3, // hello
+-		0x89, 0x85, 0xcc, 0x55, 0x80, 0x20,
+-		0xa4, 0x30, 0xec, 0x4c, 0xa3, // ping: hello
+-		0x81, 0x85, 0xed, 0x83, 0xb4, 0x24,
+-		0x9a, 0xec, 0xc6, 0x48, 0x89, // world
+-	}
+-	br := bufio.NewReader(bytes.NewBuffer(wireData))
+-	bw := bufio.NewWriter(bytes.NewBuffer([]byte{}))
+-	conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, new(http.Request))
+-
+-	expected := [][]byte{[]byte("hello"), []byte("world")}
+-
+-	msg := make([]byte, 512)
+-	n, err := conn.Read(msg)
+-	if err != nil {
+-		t.Errorf("read 1st frame, error %q", err)
+-	}
+-	if n != 5 {
+-		t.Errorf("read 1st frame, expect 5, got %d", n)
+-	}
+-	if !bytes.Equal(expected[0], msg[:n]) {
+-		t.Errorf("read 1st frame %q, got %q", expected[0], msg[:n])
+-	}
+-
+-	n, err = conn.Read(msg)
+-	if err != nil {
+-		t.Errorf("read 2nd frame, error %q", err)
+-	}
+-	if n != 5 {
+-		t.Errorf("read 2nd frame, expect 5, got %d", n)
+-	}
+-	if !bytes.Equal(expected[1], msg[:n]) {
+-		t.Errorf("read 2nd frame %q, got %q", expected[1], msg[:n])
+-	}
+-
+-	n, err = conn.Read(msg)
+-	if err == nil {
+-		t.Errorf("read not EOF")
+-	}
+-	if n != 0 {
+-		t.Errorf("expect read 0, got %d", n)
+-	}
+-}
+-
+-func TestHybiServerReadWithoutMasking(t *testing.T) {
+-	wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o'}
+-	br := bufio.NewReader(bytes.NewBuffer(wireData))
+-	bw := bufio.NewWriter(bytes.NewBuffer([]byte{}))
+-	conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, new(http.Request))
+-	// server MUST close the connection upon receiving a non-masked frame.
+-	msg := make([]byte, 512)
+-	_, err := conn.Read(msg)
+-	if err != io.EOF {
+-		t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err)
+-	}
+-}
+-
+-func TestHybiClientReadWithMasking(t *testing.T) {
+-	wireData := []byte{0x81, 0x85, 0xcc, 0x55, 0x80, 0x20,
+-		0xa4, 0x30, 0xec, 0x4c, 0xa3, // hello
+-	}
+-	br := bufio.NewReader(bytes.NewBuffer(wireData))
+-	bw := bufio.NewWriter(bytes.NewBuffer([]byte{}))
+-	conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil)
+-
+-	// client MUST close the connection upon receiving a masked frame.
+-	msg := make([]byte, 512)
+-	_, err := conn.Read(msg)
+-	if err != io.EOF {
+-		t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err)
+-	}
+-}
+-
+-// Test the hybiServerHandshaker supports firefox implementation and
+-// checks Connection request header include (but it's not necessary
+-// equal to) "upgrade"
+-func TestHybiServerFirefoxHandshake(t *testing.T) {
+-	config := new(Config)
+-	handshaker := &hybiServerHandshaker{Config: config}
+-	br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1
+-Host: server.example.com
+-Upgrade: websocket
+-Connection: keep-alive, upgrade
+-Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
+-Origin: http://example.com
+-Sec-WebSocket-Protocol: chat, superchat
+-Sec-WebSocket-Version: 13
+-
+-`))
+-	req, err := http.ReadRequest(br)
+-	if err != nil {
+-		t.Fatal("request", err)
+-	}
+-	code, err := handshaker.ReadHandshake(br, req)
+-	if err != nil {
+-		t.Errorf("handshake failed: %v", err)
+-	}
+-	if code != http.StatusSwitchingProtocols {
+-		t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code)
+-	}
+-	b := bytes.NewBuffer([]byte{})
+-	bw := bufio.NewWriter(b)
+-
+-	config.Protocol = []string{"chat"}
+-
+-	err = handshaker.AcceptHandshake(bw)
+-	if err != nil {
+-		t.Errorf("handshake response failed: %v", err)
+-	}
+-	expectedResponse := strings.Join([]string{
+-		"HTTP/1.1 101 Switching Protocols",
+-		"Upgrade: websocket",
+-		"Connection: Upgrade",
+-		"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=",
+-		"Sec-WebSocket-Protocol: chat",
+-		"", ""}, "\r\n")
+-
+-	if b.String() != expectedResponse {
+-		t.Errorf("handshake expected %q but got %q", expectedResponse, b.String())
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/server.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/server.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/server.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/server.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,122 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket
+-
+-import (
+-	"bufio"
+-	"fmt"
+-	"io"
+-	"net/http"
+-)
+-
+-func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Request, config *Config, handshake func(*Config, *http.Request) error) (conn *Conn, err error) {
+-	var hs serverHandshaker = &hybiServerHandshaker{Config: config}
+-	code, err := hs.ReadHandshake(buf.Reader, req)
+-	if err == ErrBadWebSocketVersion {
+-		fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+-		fmt.Fprintf(buf, "Sec-WebSocket-Version: %s\r\n", SupportedProtocolVersion)
+-		buf.WriteString("\r\n")
+-		buf.WriteString(err.Error())
+-		buf.Flush()
+-		return
+-	}
+-	if err != nil {
+-		hs = &hixie76ServerHandshaker{Config: config}
+-		code, err = hs.ReadHandshake(buf.Reader, req)
+-	}
+-	if err != nil {
+-		hs = &hixie75ServerHandshaker{Config: config}
+-		code, err = hs.ReadHandshake(buf.Reader, req)
+-	}
+-	if err != nil {
+-		fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+-		buf.WriteString("\r\n")
+-		buf.WriteString(err.Error())
+-		buf.Flush()
+-		return
+-	}
+-	if handshake != nil {
+-		err = handshake(config, req)
+-		if err != nil {
+-			code = http.StatusForbidden
+-			fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+-			buf.WriteString("\r\n")
+-			buf.Flush()
+-			return
+-		}
+-	}
+-	err = hs.AcceptHandshake(buf.Writer)
+-	if err != nil {
+-		code = http.StatusBadRequest
+-		fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+-		buf.WriteString("\r\n")
+-		buf.Flush()
+-		return
+-	}
+-	conn = hs.NewServerConn(buf, rwc, req)
+-	return
+-}
+-
+-// Server represents a server of a WebSocket.
+-type Server struct {
+-	// Config is a WebSocket configuration for new WebSocket connection.
+-	Config
+-
+-	// Handshake is an optional function in WebSocket handshake.
+-	// For example, you can check, or don't check Origin header.
+-	// Another example, you can select config.Protocol.
+-	Handshake func(*Config, *http.Request) error
+-
+-	// Handler handles a WebSocket connection.
+-	Handler
+-}
+-
+-// ServeHTTP implements the http.Handler interface for a WebSocket
+-func (s Server) ServeHTTP(w http.ResponseWriter, req *http.Request) {
+-	s.serveWebSocket(w, req)
+-}
+-
+-func (s Server) serveWebSocket(w http.ResponseWriter, req *http.Request) {
+-	rwc, buf, err := w.(http.Hijacker).Hijack()
+-	if err != nil {
+-		panic("Hijack failed: " + err.Error())
+-		return
+-	}
+-	// The server should abort the WebSocket connection if it finds
+-	// the client did not send a handshake that matches with protocol
+-	// specification.
+-	defer rwc.Close()
+-	conn, err := newServerConn(rwc, buf, req, &s.Config, s.Handshake)
+-	if err != nil {
+-		return
+-	}
+-	if conn == nil {
+-		panic("unexpected nil conn")
+-	}
+-	s.Handler(conn)
+-}
+-
+-// Handler is a simple interface to a WebSocket browser client.
+-// It checks if Origin header is valid URL by default.
+-// You might want to verify websocket.Conn.Config().Origin in the func.
+-// If you use Server instead of Handler, you could call websocket.Origin and
+-// check the origin in your Handshake func. So, if you want to accept
+-// non-browser client, which doesn't send Origin header, you could use Server
+-//. that doesn't check origin in its Handshake.
+-type Handler func(*Conn)
+-
+-func checkOrigin(config *Config, req *http.Request) (err error) {
+-	config.Origin, err = Origin(config, req)
+-	if err == nil && config.Origin == nil {
+-		return fmt.Errorf("null origin")
+-	}
+-	return err
+-}
+-
+-// ServeHTTP implements the http.Handler interface for a WebSocket
+-func (h Handler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
+-	s := Server{Handler: h, Handshake: checkOrigin}
+-	s.serveWebSocket(w, req)
+-}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/websocket.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/websocket.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/websocket.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/websocket.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,415 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package websocket implements a client and server for the WebSocket protocol
+-// as specified in RFC 6455.
+-package websocket
+-
+-import (
+-	"bufio"
+-	"crypto/tls"
+-	"encoding/json"
+-	"errors"
+-	"io"
+-	"io/ioutil"
+-	"net"
+-	"net/http"
+-	"net/url"
+-	"sync"
+-	"time"
+-)
+-
+-const (
+-	ProtocolVersionHixie75   = -75
+-	ProtocolVersionHixie76   = -76
+-	ProtocolVersionHybi00    = 0
+-	ProtocolVersionHybi08    = 8
+-	ProtocolVersionHybi13    = 13
+-	ProtocolVersionHybi      = ProtocolVersionHybi13
+-	SupportedProtocolVersion = "13, 8"
+-
+-	ContinuationFrame = 0
+-	TextFrame         = 1
+-	BinaryFrame       = 2
+-	CloseFrame        = 8
+-	PingFrame         = 9
+-	PongFrame         = 10
+-	UnknownFrame      = 255
+-)
+-
+-// ProtocolError represents WebSocket protocol errors.
+-type ProtocolError struct {
+-	ErrorString string
+-}
+-
+-func (err *ProtocolError) Error() string { return err.ErrorString }
+-
+-var (
+-	ErrBadProtocolVersion   = &ProtocolError{"bad protocol version"}
+-	ErrBadScheme            = &ProtocolError{"bad scheme"}
+-	ErrBadStatus            = &ProtocolError{"bad status"}
+-	ErrBadUpgrade           = &ProtocolError{"missing or bad upgrade"}
+-	ErrBadWebSocketOrigin   = &ProtocolError{"missing or bad WebSocket-Origin"}
+-	ErrBadWebSocketLocation = &ProtocolError{"missing or bad WebSocket-Location"}
+-	ErrBadWebSocketProtocol = &ProtocolError{"missing or bad WebSocket-Protocol"}
+-	ErrBadWebSocketVersion  = &ProtocolError{"missing or bad WebSocket Version"}
+-	ErrChallengeResponse    = &ProtocolError{"mismatch challenge/response"}
+-	ErrBadFrame             = &ProtocolError{"bad frame"}
+-	ErrBadFrameBoundary     = &ProtocolError{"not on frame boundary"}
+-	ErrNotWebSocket         = &ProtocolError{"not websocket protocol"}
+-	ErrBadRequestMethod     = &ProtocolError{"bad method"}
+-	ErrNotSupported         = &ProtocolError{"not supported"}
+-)
+-
+-// Addr is an implementation of net.Addr for WebSocket.
+-type Addr struct {
+-	*url.URL
+-}
+-
+-// Network returns the network type for a WebSocket, "websocket".
+-func (addr *Addr) Network() string { return "websocket" }
+-
+-// Config is a WebSocket configuration
+-type Config struct {
+-	// A WebSocket server address.
+-	Location *url.URL
+-
+-	// A Websocket client origin.
+-	Origin *url.URL
+-
+-	// WebSocket subprotocols.
+-	Protocol []string
+-
+-	// WebSocket protocol version.
+-	Version int
+-
+-	// TLS config for secure WebSocket (wss).
+-	TlsConfig *tls.Config
+-
+-	// Additional header fields to be sent in WebSocket opening handshake.
+-	Header http.Header
+-
+-	handshakeData map[string]string
+-}
+-
+-// serverHandshaker is an interface to handle WebSocket server side handshake.
+-type serverHandshaker interface {
+-	// ReadHandshake reads handshake request message from client.
+-	// Returns http response code and error if any.
+-	ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error)
+-
+-	// AcceptHandshake accepts the client handshake request and sends
+-	// handshake response back to client.
+-	AcceptHandshake(buf *bufio.Writer) (err error)
+-
+-	// NewServerConn creates a new WebSocket connection.
+-	NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) (conn *Conn)
+-}
+-
+-// frameReader is an interface to read a WebSocket frame.
+-type frameReader interface {
+-	// Reader is to read payload of the frame.
+-	io.Reader
+-
+-	// PayloadType returns payload type.
+-	PayloadType() byte
+-
+-	// HeaderReader returns a reader to read header of the frame.
+-	HeaderReader() io.Reader
+-
+-	// TrailerReader returns a reader to read trailer of the frame.
+-	// If it returns nil, there is no trailer in the frame.
+-	TrailerReader() io.Reader
+-
+-	// Len returns total length of the frame, including header and trailer.
+-	Len() int
+-}
+-
+-// frameReaderFactory is an interface to creates new frame reader.
+-type frameReaderFactory interface {
+-	NewFrameReader() (r frameReader, err error)
+-}
+-
+-// frameWriter is an interface to write a WebSocket frame.
+-type frameWriter interface {
+-	// Writer is to write playload of the frame.
+-	io.WriteCloser
+-}
+-
+-// frameWriterFactory is an interface to create new frame writer.
+-type frameWriterFactory interface {
+-	NewFrameWriter(payloadType byte) (w frameWriter, err error)
+-}
+-
+-type frameHandler interface {
+-	HandleFrame(frame frameReader) (r frameReader, err error)
+-	WriteClose(status int) (err error)
+-}
+-
+-// Conn represents a WebSocket connection.
+-type Conn struct {
+-	config  *Config
+-	request *http.Request
+-
+-	buf *bufio.ReadWriter
+-	rwc io.ReadWriteCloser
+-
+-	rio sync.Mutex
+-	frameReaderFactory
+-	frameReader
+-
+-	wio sync.Mutex
+-	frameWriterFactory
+-
+-	frameHandler
+-	PayloadType        byte
+-	defaultCloseStatus int
+-}
+-
+-// Read implements the io.Reader interface:
+-// it reads data of a frame from the WebSocket connection.
+-// if msg is not large enough for the frame data, it fills the msg and next Read
+-// will read the rest of the frame data.
+-// it reads Text frame or Binary frame.
+-func (ws *Conn) Read(msg []byte) (n int, err error) {
+-	ws.rio.Lock()
+-	defer ws.rio.Unlock()
+-again:
+-	if ws.frameReader == nil {
+-		frame, err := ws.frameReaderFactory.NewFrameReader()
+-		if err != nil {
+-			return 0, err
+-		}
+-		ws.frameReader, err = ws.frameHandler.HandleFrame(frame)
+-		if err != nil {
+-			return 0, err
+-		}
+-		if ws.frameReader == nil {
+-			goto again
+-		}
+-	}
+-	n, err = ws.frameReader.Read(msg)
+-	if err == io.EOF {
+-		if trailer := ws.frameReader.TrailerReader(); trailer != nil {
+-			io.Copy(ioutil.Discard, trailer)
+-		}
+-		ws.frameReader = nil
+-		goto again
+-	}
+-	return n, err
+-}
+-
+-// Write implements the io.Writer interface:
+-// it writes data as a frame to the WebSocket connection.
+-func (ws *Conn) Write(msg []byte) (n int, err error) {
+-	ws.wio.Lock()
+-	defer ws.wio.Unlock()
+-	w, err := ws.frameWriterFactory.NewFrameWriter(ws.PayloadType)
+-	if err != nil {
+-		return 0, err
+-	}
+-	n, err = w.Write(msg)
+-	w.Close()
+-	if err != nil {
+-		return n, err
+-	}
+-	return n, err
+-}
+-
+-// Close implements the io.Closer interface.
+-func (ws *Conn) Close() error {
+-	err := ws.frameHandler.WriteClose(ws.defaultCloseStatus)
+-	if err != nil {
+-		return err
+-	}
+-	return ws.rwc.Close()
+-}
+-
+-func (ws *Conn) IsClientConn() bool { return ws.request == nil }
+-func (ws *Conn) IsServerConn() bool { return ws.request != nil }
+-
+-// LocalAddr returns the WebSocket Origin for the connection for client, or
+-// the WebSocket location for server.
+-func (ws *Conn) LocalAddr() net.Addr {
+-	if ws.IsClientConn() {
+-		return &Addr{ws.config.Origin}
+-	}
+-	return &Addr{ws.config.Location}
+-}
+-
+-// RemoteAddr returns the WebSocket location for the connection for client, or
+-// the Websocket Origin for server.
+-func (ws *Conn) RemoteAddr() net.Addr {
+-	if ws.IsClientConn() {
+-		return &Addr{ws.config.Location}
+-	}
+-	return &Addr{ws.config.Origin}
+-}
+-
+-var errSetDeadline = errors.New("websocket: cannot set deadline: not using a net.Conn")
+-
+-// SetDeadline sets the connection's network read & write deadlines.
+-func (ws *Conn) SetDeadline(t time.Time) error {
+-	if conn, ok := ws.rwc.(net.Conn); ok {
+-		return conn.SetDeadline(t)
+-	}
+-	return errSetDeadline
+-}
+-
+-// SetReadDeadline sets the connection's network read deadline.
+-func (ws *Conn) SetReadDeadline(t time.Time) error {
+-	if conn, ok := ws.rwc.(net.Conn); ok {
+-		return conn.SetReadDeadline(t)
+-	}
+-	return errSetDeadline
+-}
+-
+-// SetWriteDeadline sets the connection's network write deadline.
+-func (ws *Conn) SetWriteDeadline(t time.Time) error {
+-	if conn, ok := ws.rwc.(net.Conn); ok {
+-		return conn.SetWriteDeadline(t)
+-	}
+-	return errSetDeadline
+-}
+-
+-// Config returns the WebSocket config.
+-func (ws *Conn) Config() *Config { return ws.config }
+-
+-// Request returns the http request upgraded to the WebSocket.
+-// It is nil for client side.
+-func (ws *Conn) Request() *http.Request { return ws.request }
+-
+-// Codec represents a symmetric pair of functions that implement a codec.
+-type Codec struct {
+-	Marshal   func(v interface{}) (data []byte, payloadType byte, err error)
+-	Unmarshal func(data []byte, payloadType byte, v interface{}) (err error)
+-}
+-
+-// Send sends v marshaled by cd.Marshal as single frame to ws.
+-func (cd Codec) Send(ws *Conn, v interface{}) (err error) {
+-	data, payloadType, err := cd.Marshal(v)
+-	if err != nil {
+-		return err
+-	}
+-	ws.wio.Lock()
+-	defer ws.wio.Unlock()
+-	w, err := ws.frameWriterFactory.NewFrameWriter(payloadType)
+-	if err != nil {
+-		return err
+-	}
+-	_, err = w.Write(data)
+-	w.Close()
+-	return err
+-}
+-
+-// Receive receives single frame from ws, unmarshaled by cd.Unmarshal and stores in v.
+-func (cd Codec) Receive(ws *Conn, v interface{}) (err error) {
+-	ws.rio.Lock()
+-	defer ws.rio.Unlock()
+-	if ws.frameReader != nil {
+-		_, err = io.Copy(ioutil.Discard, ws.frameReader)
+-		if err != nil {
+-			return err
+-		}
+-		ws.frameReader = nil
+-	}
+-again:
+-	frame, err := ws.frameReaderFactory.NewFrameReader()
+-	if err != nil {
+-		return err
+-	}
+-	frame, err = ws.frameHandler.HandleFrame(frame)
+-	if err != nil {
+-		return err
+-	}
+-	if frame == nil {
+-		goto again
+-	}
+-	payloadType := frame.PayloadType()
+-	data, err := ioutil.ReadAll(frame)
+-	if err != nil {
+-		return err
+-	}
+-	return cd.Unmarshal(data, payloadType, v)
+-}
+-
+-func marshal(v interface{}) (msg []byte, payloadType byte, err error) {
+-	switch data := v.(type) {
+-	case string:
+-		return []byte(data), TextFrame, nil
+-	case []byte:
+-		return data, BinaryFrame, nil
+-	}
+-	return nil, UnknownFrame, ErrNotSupported
+-}
+-
+-func unmarshal(msg []byte, payloadType byte, v interface{}) (err error) {
+-	switch data := v.(type) {
+-	case *string:
+-		*data = string(msg)
+-		return nil
+-	case *[]byte:
+-		*data = msg
+-		return nil
+-	}
+-	return ErrNotSupported
+-}
+-
+-/*
+-Message is a codec to send/receive text/binary data in a frame on WebSocket connection.
+-To send/receive text frame, use string type.
+-To send/receive binary frame, use []byte type.
+-
+-Trivial usage:
+-
+-	import "websocket"
+-
+-	// receive text frame
+-	var message string
+-	websocket.Message.Receive(ws, &message)
+-
+-	// send text frame
+-	message = "hello"
+-	websocket.Message.Send(ws, message)
+-
+-	// receive binary frame
+-	var data []byte
+-	websocket.Message.Receive(ws, &data)
+-
+-	// send binary frame
+-	data = []byte{0, 1, 2}
+-	websocket.Message.Send(ws, data)
+-
+-*/
+-var Message = Codec{marshal, unmarshal}
+-
+-func jsonMarshal(v interface{}) (msg []byte, payloadType byte, err error) {
+-	msg, err = json.Marshal(v)
+-	return msg, TextFrame, err
+-}
+-
+-func jsonUnmarshal(msg []byte, payloadType byte, v interface{}) (err error) {
+-	return json.Unmarshal(msg, v)
+-}
+-
+-/*
+-JSON is a codec to send/receive JSON data in a frame from a WebSocket connection.
+-
+-Trivial usage:
+-
+-	import "websocket"
+-
+-	type T struct {
+-		Msg string
+-		Count int
+-	}
+-
+-	// receive JSON type T
+-	var data T
+-	websocket.JSON.Receive(ws, &data)
+-
+-	// send JSON type T
+-	websocket.JSON.Send(ws, data)
+-*/
+-var JSON = Codec{jsonMarshal, jsonUnmarshal}
+diff -uNr docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/websocket_test.go docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/websocket_test.go
+--- docker-0.6.2/vendor/src/code.google.com/p/go.net/websocket/websocket_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/code.google.com/p/go.net/websocket/websocket_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,327 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package websocket
+-
+-import (
+-	"bytes"
+-	"fmt"
+-	"io"
+-	"log"
+-	"net"
+-	"net/http"
+-	"net/http/httptest"
+-	"net/url"
+-	"strings"
+-	"sync"
+-	"testing"
+-)
+-
+-var serverAddr string
+-var once sync.Once
+-
+-func echoServer(ws *Conn) { io.Copy(ws, ws) }
+-
+-type Count struct {
+-	S string
+-	N int
+-}
+-
+-func countServer(ws *Conn) {
+-	for {
+-		var count Count
+-		err := JSON.Receive(ws, &count)
+-		if err != nil {
+-			return
+-		}
+-		count.N++
+-		count.S = strings.Repeat(count.S, count.N)
+-		err = JSON.Send(ws, count)
+-		if err != nil {
+-			return
+-		}
+-	}
+-}
+-
+-func subProtocolHandshake(config *Config, req *http.Request) error {
+-	for _, proto := range config.Protocol {
+-		if proto == "chat" {
+-			config.Protocol = []string{proto}
+-			return nil
+-		}
+-	}
+-	return ErrBadWebSocketProtocol
+-}
+-
+-func subProtoServer(ws *Conn) {
+-	for _, proto := range ws.Config().Protocol {
+-		io.WriteString(ws, proto)
+-	}
+-}
+-
+-func startServer() {
+-	http.Handle("/echo", Handler(echoServer))
+-	http.Handle("/count", Handler(countServer))
+-	subproto := Server{
+-		Handshake: subProtocolHandshake,
+-		Handler:   Handler(subProtoServer),
+-	}
+-	http.Handle("/subproto", subproto)
+-	server := httptest.NewServer(nil)
+-	serverAddr = server.Listener.Addr().String()
+-	log.Print("Test WebSocket server listening on ", serverAddr)
+-}
+-
+-func newConfig(t *testing.T, path string) *Config {
+-	config, _ := NewConfig(fmt.Sprintf("ws://%s%s", serverAddr, path), "http://localhost")
+-	return config
+-}
+-
+-func TestEcho(t *testing.T) {
+-	once.Do(startServer)
+-
+-	// websocket.Dial()
+-	client, err := net.Dial("tcp", serverAddr)
+-	if err != nil {
+-		t.Fatal("dialing", err)
+-	}
+-	conn, err := NewClient(newConfig(t, "/echo"), client)
+-	if err != nil {
+-		t.Errorf("WebSocket handshake error: %v", err)
+-		return
+-	}
+-
+-	msg := []byte("hello, world\n")
+-	if _, err := conn.Write(msg); err != nil {
+-		t.Errorf("Write: %v", err)
+-	}
+-	var actual_msg = make([]byte, 512)
+-	n, err := conn.Read(actual_msg)
+-	if err != nil {
+-		t.Errorf("Read: %v", err)
+-	}
+-	actual_msg = actual_msg[0:n]
+-	if !bytes.Equal(msg, actual_msg) {
+-		t.Errorf("Echo: expected %q got %q", msg, actual_msg)
+-	}
+-	conn.Close()
+-}
+-
+-func TestAddr(t *testing.T) {
+-	once.Do(startServer)
+-
+-	// websocket.Dial()
+-	client, err := net.Dial("tcp", serverAddr)
+-	if err != nil {
+-		t.Fatal("dialing", err)
+-	}
+-	conn, err := NewClient(newConfig(t, "/echo"), client)
+-	if err != nil {
+-		t.Errorf("WebSocket handshake error: %v", err)
+-		return
+-	}
+-
+-	ra := conn.RemoteAddr().String()
+-	if !strings.HasPrefix(ra, "ws://") || !strings.HasSuffix(ra, "/echo") {
+-		t.Errorf("Bad remote addr: %v", ra)
+-	}
+-	la := conn.LocalAddr().String()
+-	if !strings.HasPrefix(la, "http://") {
+-		t.Errorf("Bad local addr: %v", la)
+-	}
+-	conn.Close()
+-}
+-
+-func TestCount(t *testing.T) {
+-	once.Do(startServer)
+-
+-	// websocket.Dial()
+-	client, err := net.Dial("tcp", serverAddr)
+-	if err != nil {
+-		t.Fatal("dialing", err)
+-	}
+-	conn, err := NewClient(newConfig(t, "/count"), client)
+-	if err != nil {
+-		t.Errorf("WebSocket handshake error: %v", err)
+-		return
+-	}
+-
+-	var count Count
+-	count.S = "hello"
+-	if err := JSON.Send(conn, count); err != nil {
+-		t.Errorf("Write: %v", err)
+-	}
+-	if err := JSON.Receive(conn, &count); err != nil {
+-		t.Errorf("Read: %v", err)
+-	}
+-	if count.N != 1 {
+-		t.Errorf("count: expected %d got %d", 1, count.N)
+-	}
+-	if count.S != "hello" {
+-		t.Errorf("count: expected %q got %q", "hello", count.S)
+-	}
+-	if err := JSON.Send(conn, count); err != nil {
+-		t.Errorf("Write: %v", err)
+-	}
+-	if err := JSON.Receive(conn, &count); err != nil {
+-		t.Errorf("Read: %v", err)
+-	}
+-	if count.N != 2 {
+-		t.Errorf("count: expected %d got %d", 2, count.N)
+-	}
+-	if count.S != "hellohello" {
+-		t.Errorf("count: expected %q got %q", "hellohello", count.S)
+-	}
+-	conn.Close()
+-}
+-
+-func TestWithQuery(t *testing.T) {
+-	once.Do(startServer)
+-
+-	client, err := net.Dial("tcp", serverAddr)
+-	if err != nil {
+-		t.Fatal("dialing", err)
+-	}
+-
+-	config := newConfig(t, "/echo")
+-	config.Location, err = url.ParseRequestURI(fmt.Sprintf("ws://%s/echo?q=v", serverAddr))
+-	if err != nil {
+-		t.Fatal("location url", err)
+-	}
+-
+-	ws, err := NewClient(config, client)
+-	if err != nil {
+-		t.Errorf("WebSocket handshake: %v", err)
+-		return
+-	}
+-	ws.Close()
+-}
+-
+-func testWithProtocol(t *testing.T, subproto []string) (string, error) {
+-	once.Do(startServer)
+-
+-	client, err := net.Dial("tcp", serverAddr)
+-	if err != nil {
+-		t.Fatal("dialing", err)
+-	}
+-
+-	config := newConfig(t, "/subproto")
+-	config.Protocol = subproto
+-
+-	ws, err := NewClient(config, client)
+-	if err != nil {
+-		return "", err
+-	}
+-	msg := make([]byte, 16)
+-	n, err := ws.Read(msg)
+-	if err != nil {
+-		return "", err
+-	}
+-	ws.Close()
+-	return string(msg[:n]), nil
+-}
+-
+-func TestWithProtocol(t *testing.T) {
+-	proto, err := testWithProtocol(t, []string{"chat"})
+-	if err != nil {
+-		t.Errorf("SubProto: unexpected error: %v", err)
+-	}
+-	if proto != "chat" {
+-		t.Errorf("SubProto: expected %q, got %q", "chat", proto)
+-	}
+-}
+-
+-func TestWithTwoProtocol(t *testing.T) {
+-	proto, err := testWithProtocol(t, []string{"test", "chat"})
+-	if err != nil {
+-		t.Errorf("SubProto: unexpected error: %v", err)
+-	}
+-	if proto != "chat" {
+-		t.Errorf("SubProto: expected %q, got %q", "chat", proto)
+-	}
+-}
+-
+-func TestWithBadProtocol(t *testing.T) {
+-	_, err := testWithProtocol(t, []string{"test"})
+-	if err != ErrBadStatus {
+-		t.Errorf("SubProto: expected %q, got %q", ErrBadStatus)
+-	}
+-}
+-
+-func TestHTTP(t *testing.T) {
+-	once.Do(startServer)
+-
+-	// If the client did not send a handshake that matches the protocol
+-	// specification, the server MUST return an HTTP response with an
+-	// appropriate error code (such as 400 Bad Request)
+-	resp, err := http.Get(fmt.Sprintf("http://%s/echo", serverAddr))
+-	if err != nil {
+-		t.Errorf("Get: error %#v", err)
+-		return
+-	}
+-	if resp == nil {
+-		t.Error("Get: resp is null")
+-		return
+-	}
+-	if resp.StatusCode != http.StatusBadRequest {
+-		t.Errorf("Get: expected %q got %q", http.StatusBadRequest, resp.StatusCode)
+-	}
+-}
+-
+-func TestTrailingSpaces(t *testing.T) {
+-	// http://code.google.com/p/go/issues/detail?id=955
+-	// The last runs of this create keys with trailing spaces that should not be
+-	// generated by the client.
+-	once.Do(startServer)
+-	config := newConfig(t, "/echo")
+-	for i := 0; i < 30; i++ {
+-		// body
+-		ws, err := DialConfig(config)
+-		if err != nil {
+-			t.Errorf("Dial #%d failed: %v", i, err)
+-			break
+-		}
+-		ws.Close()
+-	}
+-}
+-
+-func TestSmallBuffer(t *testing.T) {
+-	// http://code.google.com/p/go/issues/detail?id=1145
+-	// Read should be able to handle reading a fragment of a frame.
+-	once.Do(startServer)
+-
+-	// websocket.Dial()
+-	client, err := net.Dial("tcp", serverAddr)
+-	if err != nil {
+-		t.Fatal("dialing", err)
+-	}
+-	conn, err := NewClient(newConfig(t, "/echo"), client)
+-	if err != nil {
+-		t.Errorf("WebSocket handshake error: %v", err)
+-		return
+-	}
+-
+-	msg := []byte("hello, world\n")
+-	if _, err := conn.Write(msg); err != nil {
+-		t.Errorf("Write: %v", err)
+-	}
+-	var small_msg = make([]byte, 8)
+-	n, err := conn.Read(small_msg)
+-	if err != nil {
+-		t.Errorf("Read: %v", err)
+-	}
+-	if !bytes.Equal(msg[:len(small_msg)], small_msg) {
+-		t.Errorf("Echo: expected %q got %q", msg[:len(small_msg)], small_msg)
+-	}
+-	var second_msg = make([]byte, len(msg))
+-	n, err = conn.Read(second_msg)
+-	if err != nil {
+-		t.Errorf("Read: %v", err)
+-	}
+-	second_msg = second_msg[0:n]
+-	if !bytes.Equal(msg[len(small_msg):], second_msg) {
+-		t.Errorf("Echo: expected %q got %q", msg[len(small_msg):], second_msg)
+-	}
+-	conn.Close()
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/common.go docker-devmapper/vendor/src/github.com/dotcloud/tar/common.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/common.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/common.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,310 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package tar implements access to tar archives.
+-// It aims to cover most of the variations, including those produced
+-// by GNU and BSD tars.
+-//
+-// References:
+-//   http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5
+-//   http://www.gnu.org/software/tar/manual/html_node/Standard.html
+-//   http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html
+-package tar
+-
+-import (
+-	"bytes"
+-	"errors"
+-	"fmt"
+-	"os"
+-	"path"
+-	"time"
+-)
+-
+-const (
+-	blockSize = 512
+-
+-	// Types
+-	TypeReg           = '0'    // regular file
+-	TypeRegA          = '\x00' // regular file
+-	TypeLink          = '1'    // hard link
+-	TypeSymlink       = '2'    // symbolic link
+-	TypeChar          = '3'    // character device node
+-	TypeBlock         = '4'    // block device node
+-	TypeDir           = '5'    // directory
+-	TypeFifo          = '6'    // fifo node
+-	TypeCont          = '7'    // reserved
+-	TypeXHeader       = 'x'    // extended header
+-	TypeXGlobalHeader = 'g'    // global extended header
+-	TypeGNULongName   = 'L'    // Next file has a long name
+-	TypeGNULongLink   = 'K'    // Next file symlinks to a file w/ a long name
+-)
+-
+-// A Header represents a single header in a tar archive.
+-// Some fields may not be populated.
+-type Header struct {
+-	Name       string    // name of header file entry
+-	Mode       int64     // permission and mode bits
+-	Uid        int       // user id of owner
+-	Gid        int       // group id of owner
+-	Size       int64     // length in bytes
+-	ModTime    time.Time // modified time
+-	Typeflag   byte      // type of header entry
+-	Linkname   string    // target name of link
+-	Uname      string    // user name of owner
+-	Gname      string    // group name of owner
+-	Devmajor   int64     // major number of character or block device
+-	Devminor   int64     // minor number of character or block device
+-	AccessTime time.Time // access time
+-	ChangeTime time.Time // status change time
+-}
+-
+-// File name constants from the tar spec.
+-const (
+-	fileNameSize       = 100 // Maximum number of bytes in a standard tar name.
+-	fileNamePrefixSize = 155 // Maximum number of ustar extension bytes.
+-)
+-
+-// FileInfo returns an os.FileInfo for the Header.
+-func (h *Header) FileInfo() os.FileInfo {
+-	return headerFileInfo{h}
+-}
+-
+-// headerFileInfo implements os.FileInfo.
+-type headerFileInfo struct {
+-	h *Header
+-}
+-
+-func (fi headerFileInfo) Size() int64        { return fi.h.Size }
+-func (fi headerFileInfo) IsDir() bool        { return fi.Mode().IsDir() }
+-func (fi headerFileInfo) ModTime() time.Time { return fi.h.ModTime }
+-func (fi headerFileInfo) Sys() interface{}   { return fi.h }
+-
+-// Name returns the base name of the file.
+-func (fi headerFileInfo) Name() string {
+-	if fi.IsDir() {
+-		return path.Clean(fi.h.Name)
+-	}
+-	return fi.h.Name
+-}
+-
+-// Mode returns the permission and mode bits for the headerFileInfo.
+-func (fi headerFileInfo) Mode() (mode os.FileMode) {
+-	// Set file permission bits.
+-	mode = os.FileMode(fi.h.Mode).Perm()
+-
+-	// Set setuid, setgid and sticky bits.
+-	if fi.h.Mode&c_ISUID != 0 {
+-		// setuid
+-		mode |= os.ModeSetuid
+-	}
+-	if fi.h.Mode&c_ISGID != 0 {
+-		// setgid
+-		mode |= os.ModeSetgid
+-	}
+-	if fi.h.Mode&c_ISVTX != 0 {
+-		// sticky
+-		mode |= os.ModeSticky
+-	}
+-
+-	// Set file mode bits.
+-	// clear perm, setuid, setgid and sticky bits.
+-	m := os.FileMode(fi.h.Mode) &^ 07777
+-	if m == c_ISDIR {
+-		// directory
+-		mode |= os.ModeDir
+-	}
+-	if m == c_ISFIFO {
+-		// named pipe (FIFO)
+-		mode |= os.ModeNamedPipe
+-	}
+-	if m == c_ISLNK {
+-		// symbolic link
+-		mode |= os.ModeSymlink
+-	}
+-	if m == c_ISBLK {
+-		// device file
+-		mode |= os.ModeDevice
+-	}
+-	if m == c_ISCHR {
+-		// Unix character device
+-		mode |= os.ModeDevice
+-		mode |= os.ModeCharDevice
+-	}
+-	if m == c_ISSOCK {
+-		// Unix domain socket
+-		mode |= os.ModeSocket
+-	}
+-
+-	switch fi.h.Typeflag {
+-	case TypeLink, TypeSymlink:
+-		// hard link, symbolic link
+-		mode |= os.ModeSymlink
+-	case TypeChar:
+-		// character device node
+-		mode |= os.ModeDevice
+-		mode |= os.ModeCharDevice
+-	case TypeBlock:
+-		// block device node
+-		mode |= os.ModeDevice
+-	case TypeDir:
+-		// directory
+-		mode |= os.ModeDir
+-	case TypeFifo:
+-		// fifo node
+-		mode |= os.ModeNamedPipe
+-	}
+-
+-	return mode
+-}
+-
+-// sysStat, if non-nil, populates h from system-dependent fields of fi.
+-var sysStat func(fi os.FileInfo, h *Header) error
+-
+-// Mode constants from the tar spec.
+-const (
+-	c_ISUID  = 04000   // Set uid
+-	c_ISGID  = 02000   // Set gid
+-	c_ISVTX  = 01000   // Save text (sticky bit)
+-	c_ISDIR  = 040000  // Directory
+-	c_ISFIFO = 010000  // FIFO
+-	c_ISREG  = 0100000 // Regular file
+-	c_ISLNK  = 0120000 // Symbolic link
+-	c_ISBLK  = 060000  // Block special file
+-	c_ISCHR  = 020000  // Character special file
+-	c_ISSOCK = 0140000 // Socket
+-)
+-
+-// Keywords for the PAX Extended Header
+-const (
+-	PAX_ATIME    = "atime"
+-	PAX_CHARSET  = "charset"
+-	PAX_COMMENT  = "comment"
+-	PAX_CTIME    = "ctime" // please note that ctime is not a valid pax header.
+-	PAX_GID      = "gid"
+-	PAX_GNAME    = "gname"
+-	PAX_LINKPATH = "linkpath"
+-	PAX_MTIME    = "mtime"
+-	PAX_PATH     = "path"
+-	PAX_SIZE     = "size"
+-	PAX_UID      = "uid"
+-	PAX_UNAME    = "uname"
+-)
+-
+-// FileInfoHeader creates a partially-populated Header from fi.
+-// If fi describes a symlink, FileInfoHeader records link as the link target.
+-// If fi describes a directory, a slash is appended to the name.
+-func FileInfoHeader(fi os.FileInfo, link string) (*Header, error) {
+-	if fi == nil {
+-		return nil, errors.New("tar: FileInfo is nil")
+-	}
+-	fm := fi.Mode()
+-	h := &Header{
+-		Name:    fi.Name(),
+-		ModTime: fi.ModTime(),
+-		Mode:    int64(fm.Perm()), // or'd with c_IS* constants later
+-	}
+-	switch {
+-	case fm.IsRegular():
+-		h.Mode |= c_ISREG
+-		h.Typeflag = TypeReg
+-		h.Size = fi.Size()
+-	case fi.IsDir():
+-		h.Typeflag = TypeDir
+-		h.Mode |= c_ISDIR
+-		h.Name += "/"
+-	case fm&os.ModeSymlink != 0:
+-		h.Typeflag = TypeSymlink
+-		h.Mode |= c_ISLNK
+-		h.Linkname = link
+-	case fm&os.ModeDevice != 0:
+-		if fm&os.ModeCharDevice != 0 {
+-			h.Mode |= c_ISCHR
+-			h.Typeflag = TypeChar
+-		} else {
+-			h.Mode |= c_ISBLK
+-			h.Typeflag = TypeBlock
+-		}
+-	case fm&os.ModeNamedPipe != 0:
+-		h.Typeflag = TypeFifo
+-		h.Mode |= c_ISFIFO
+-	case fm&os.ModeSocket != 0:
+-		h.Mode |= c_ISSOCK
+-	default:
+-		return nil, fmt.Errorf("archive/tar: unknown file mode %v", fm)
+-	}
+-	if fm&os.ModeSetuid != 0 {
+-		h.Mode |= c_ISUID
+-	}
+-	if fm&os.ModeSetgid != 0 {
+-		h.Mode |= c_ISGID
+-	}
+-	if fm&os.ModeSticky != 0 {
+-		h.Mode |= c_ISVTX
+-	}
+-	if sysStat != nil {
+-		return h, sysStat(fi, h)
+-	}
+-	return h, nil
+-}
+-
+-var zeroBlock = make([]byte, blockSize)
+-
+-// POSIX specifies a sum of the unsigned byte values, but the Sun tar uses signed byte values.
+-// We compute and return both.
+-func checksum(header []byte) (unsigned int64, signed int64) {
+-	for i := 0; i < len(header); i++ {
+-		if i == 148 {
+-			// The chksum field (header[148:156]) is special: it should be treated as space bytes.
+-			unsigned += ' ' * 8
+-			signed += ' ' * 8
+-			i += 7
+-			continue
+-		}
+-		unsigned += int64(header[i])
+-		signed += int64(int8(header[i]))
+-	}
+-	return
+-}
+-
+-type slicer []byte
+-
+-func (sp *slicer) next(n int) (b []byte) {
+-	s := *sp
+-	b, *sp = s[0:n], s[n:]
+-	return
+-}
+-
+-func isASCII7Bit(s string) bool {
+-	for _, character := range s {
+-		if (character & 0x7f) != character {
+-			return false
+-		}
+-	}
+-	return true
+-}
+-
+-func stripTo7Bits(s string) string {
+-	var buffer bytes.Buffer
+-	for _, character := range s {
+-		if (character & 0x7f) == character {
+-			buffer.WriteRune(character)
+-		}
+-	}
+-	return buffer.String()
+-}
+-
+-func stripTo7BitsAndShorten(s string, maxLen int) string {
+-	var buffer bytes.Buffer
+-	count := 0
+-	for _, character := range s {
+-		if count == maxLen {
+-			break
+-		}
+-		if (character & 0x7f) == character {
+-			buffer.WriteRune(character)
+-			count++
+-		}
+-	}
+-	return buffer.String()
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/example_test.go docker-devmapper/vendor/src/github.com/dotcloud/tar/example_test.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/example_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/example_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,79 +0,0 @@
+-// Copyright 2013 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package tar_test
+-
+-import (
+-	"archive/tar"
+-	"bytes"
+-	"fmt"
+-	"io"
+-	"log"
+-	"os"
+-)
+-
+-func Example() {
+-	// Create a buffer to write our archive to.
+-	buf := new(bytes.Buffer)
+-
+-	// Create a new tar archive.
+-	tw := tar.NewWriter(buf)
+-
+-	// Add some files to the archive.
+-	var files = []struct {
+-		Name, Body string
+-	}{
+-		{"readme.txt", "This archive contains some text files."},
+-		{"gopher.txt", "Gopher names:\nGeorge\nGeoffrey\nGonzo"},
+-		{"todo.txt", "Get animal handling licence."},
+-	}
+-	for _, file := range files {
+-		hdr := &tar.Header{
+-			Name: file.Name,
+-			Size: int64(len(file.Body)),
+-		}
+-		if err := tw.WriteHeader(hdr); err != nil {
+-			log.Fatalln(err)
+-		}
+-		if _, err := tw.Write([]byte(file.Body)); err != nil {
+-			log.Fatalln(err)
+-		}
+-	}
+-	// Make sure to check the error on Close.
+-	if err := tw.Close(); err != nil {
+-		log.Fatalln(err)
+-	}
+-
+-	// Open the tar archive for reading.
+-	r := bytes.NewReader(buf.Bytes())
+-	tr := tar.NewReader(r)
+-
+-	// Iterate through the files in the archive.
+-	for {
+-		hdr, err := tr.Next()
+-		if err == io.EOF {
+-			// end of tar archive
+-			break
+-		}
+-		if err != nil {
+-			log.Fatalln(err)
+-		}
+-		fmt.Printf("Contents of %s:\n", hdr.Name)
+-		if _, err := io.Copy(os.Stdout, tr); err != nil {
+-			log.Fatalln(err)
+-		}
+-		fmt.Println()
+-	}
+-
+-	// Output:
+-	// Contents of readme.txt:
+-	// This archive contains some text files.
+-	// Contents of gopher.txt:
+-	// Gopher names:
+-	// George
+-	// Geoffrey
+-	// Gonzo
+-	// Contents of todo.txt:
+-	// Get animal handling licence.
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/LICENSE docker-devmapper/vendor/src/github.com/dotcloud/tar/LICENSE
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/LICENSE	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/LICENSE	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-Copyright (c) 2012 The Go Authors. All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions are
+-met:
+-
+-   * Redistributions of source code must retain the above copyright
+-notice, this list of conditions and the following disclaimer.
+-   * Redistributions in binary form must reproduce the above
+-copyright notice, this list of conditions and the following disclaimer
+-in the documentation and/or other materials provided with the
+-distribution.
+-   * Neither the name of Google Inc. nor the names of its
+-contributors may be used to endorse or promote products derived from
+-this software without specific prior written permission.
+-
+-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/reader.go docker-devmapper/vendor/src/github.com/dotcloud/tar/reader.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/reader.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/reader.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,394 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package tar
+-
+-// TODO(dsymonds):
+-//   - pax extensions
+-
+-import (
+-	"bytes"
+-	"errors"
+-	"io"
+-	"io/ioutil"
+-	"os"
+-	"strconv"
+-	"strings"
+-	"time"
+-)
+-
+-var (
+-	ErrHeader = errors.New("archive/tar: invalid tar header")
+-)
+-
+-const maxNanoSecondIntSize = 9
+-
+-// A Reader provides sequential access to the contents of a tar archive.
+-// A tar archive consists of a sequence of files.
+-// The Next method advances to the next file in the archive (including the first),
+-// and then it can be treated as an io.Reader to access the file's data.
+-type Reader struct {
+-	r   io.Reader
+-	err error
+-	nb  int64 // number of unread bytes for current file entry
+-	pad int64 // amount of padding (ignored) after current file entry
+-}
+-
+-// NewReader creates a new Reader reading from r.
+-func NewReader(r io.Reader) *Reader { return &Reader{r: r} }
+-
+-// Next advances to the next entry in the tar archive.
+-func (tr *Reader) Next() (*Header, error) {
+-	var hdr *Header
+-	if tr.err == nil {
+-		tr.skipUnread()
+-	}
+-	if tr.err != nil {
+-		return hdr, tr.err
+-	}
+-	hdr = tr.readHeader()
+-	if hdr == nil {
+-		return hdr, tr.err
+-	}
+-	// Check for PAX/GNU header.
+-	switch hdr.Typeflag {
+-	case TypeXHeader:
+-		//  PAX extended header
+-		headers, err := parsePAX(tr)
+-		if err != nil {
+-			return nil, err
+-		}
+-		// We actually read the whole file,
+-		// but this skips alignment padding
+-		tr.skipUnread()
+-		hdr = tr.readHeader()
+-		mergePAX(hdr, headers)
+-		return hdr, nil
+-	case TypeGNULongName:
+-		// We have a GNU long name header. Its contents are the real file name.
+-		realname, err := ioutil.ReadAll(tr)
+-		if err != nil {
+-			return nil, err
+-		}
+-		hdr, err := tr.Next()
+-		hdr.Name = cString(realname)
+-		return hdr, err
+-	case TypeGNULongLink:
+-		// We have a GNU long link header.
+-		realname, err := ioutil.ReadAll(tr)
+-		if err != nil {
+-			return nil, err
+-		}
+-		hdr, err := tr.Next()
+-		hdr.Linkname = cString(realname)
+-		return hdr, err
+-	}
+-	return hdr, tr.err
+-}
+-
+-// mergePAX merges well known headers according to PAX standard.
+-// In general headers with the same name as those found
+-// in the header struct overwrite those found in the header
+-// struct with higher precision or longer values. Esp. useful
+-// for name and linkname fields.
+-func mergePAX(hdr *Header, headers map[string]string) error {
+-	for k, v := range headers {
+-		switch k {
+-		case PAX_PATH:
+-			hdr.Name = v
+-		case PAX_LINKPATH:
+-			hdr.Linkname = v
+-		case PAX_GNAME:
+-			hdr.Gname = v
+-		case PAX_UNAME:
+-			hdr.Uname = v
+-		case PAX_UID:
+-			uid, err := strconv.ParseInt(v, 10, 0)
+-			if err != nil {
+-				return err
+-			}
+-			hdr.Uid = int(uid)
+-		case PAX_GID:
+-			gid, err := strconv.ParseInt(v, 10, 0)
+-			if err != nil {
+-				return err
+-			}
+-			hdr.Gid = int(gid)
+-		case PAX_ATIME:
+-			t, err := parsePAXTime(v)
+-			if err != nil {
+-				return err
+-			}
+-			hdr.AccessTime = t
+-		case PAX_MTIME:
+-			t, err := parsePAXTime(v)
+-			if err != nil {
+-				return err
+-			}
+-			hdr.ModTime = t
+-		case PAX_CTIME:
+-			t, err := parsePAXTime(v)
+-			if err != nil {
+-				return err
+-			}
+-			hdr.ChangeTime = t
+-		case PAX_SIZE:
+-			size, err := strconv.ParseInt(v, 10, 0)
+-			if err != nil {
+-				return err
+-			}
+-			hdr.Size = int64(size)
+-		}
+-
+-	}
+-	return nil
+-}
+-
+-// parsePAXTime takes a string of the form %d.%d as described in
+-// the PAX specification.
+-func parsePAXTime(t string) (time.Time, error) {
+-	buf := []byte(t)
+-	pos := bytes.IndexByte(buf, '.')
+-	var seconds, nanoseconds int64
+-	var err error
+-	if pos == -1 {
+-		seconds, err = strconv.ParseInt(t, 10, 0)
+-		if err != nil {
+-			return time.Time{}, err
+-		}
+-	} else {
+-		seconds, err = strconv.ParseInt(string(buf[:pos]), 10, 0)
+-		if err != nil {
+-			return time.Time{}, err
+-		}
+-		nano_buf := string(buf[pos+1:])
+-		// Pad as needed before converting to a decimal.
+-		// For example .030 -> .030000000 -> 30000000 nanoseconds
+-		if len(nano_buf) < maxNanoSecondIntSize {
+-			// Right pad
+-			nano_buf += strings.Repeat("0", maxNanoSecondIntSize-len(nano_buf))
+-		} else if len(nano_buf) > maxNanoSecondIntSize {
+-			// Right truncate
+-			nano_buf = nano_buf[:maxNanoSecondIntSize]
+-		}
+-		nanoseconds, err = strconv.ParseInt(string(nano_buf), 10, 0)
+-		if err != nil {
+-			return time.Time{}, err
+-		}
+-	}
+-	ts := time.Unix(seconds, nanoseconds)
+-	return ts, nil
+-}
+-
+-// parsePAX parses PAX headers.
+-// If an extended header (type 'x') is invalid, ErrHeader is returned
+-func parsePAX(r io.Reader) (map[string]string, error) {
+-	buf, err := ioutil.ReadAll(r)
+-	if err != nil {
+-		return nil, err
+-	}
+-	headers := make(map[string]string)
+-	// Each record is constructed as
+-	//     "%d %s=%s\n", length, keyword, value
+-	for len(buf) > 0 {
+-		// or the header was empty to start with.
+-		var sp int
+-		// The size field ends at the first space.
+-		sp = bytes.IndexByte(buf, ' ')
+-		if sp == -1 {
+-			return nil, ErrHeader
+-		}
+-		// Parse the first token as a decimal integer.
+-		n, err := strconv.ParseInt(string(buf[:sp]), 10, 0)
+-		if err != nil {
+-			return nil, ErrHeader
+-		}
+-		// Extract everything between the decimal and the n -1 on the
+-		// beginning to to eat the ' ', -1 on the end to skip the newline.
+-		var record []byte
+-		record, buf = buf[sp+1:n-1], buf[n:]
+-		// The first equals is guaranteed to mark the end of the key.
+-		// Everything else is value.
+-		eq := bytes.IndexByte(record, '=')
+-		if eq == -1 {
+-			return nil, ErrHeader
+-		}
+-		key, value := record[:eq], record[eq+1:]
+-		headers[string(key)] = string(value)
+-	}
+-	return headers, nil
+-}
+-
+-// cString parses bytes as a NUL-terminated C-style string.
+-// If a NUL byte is not found then the whole slice is returned as a string.
+-func cString(b []byte) string {
+-	n := 0
+-	for n < len(b) && b[n] != 0 {
+-		n++
+-	}
+-	return string(b[0:n])
+-}
+-
+-func (tr *Reader) octal(b []byte) int64 {
+-	// Check for binary format first.
+-	if len(b) > 0 && b[0]&0x80 != 0 {
+-		var x int64
+-		for i, c := range b {
+-			if i == 0 {
+-				c &= 0x7f // ignore signal bit in first byte
+-			}
+-			x = x<<8 | int64(c)
+-		}
+-		return x
+-	}
+-
+-	// Removing leading spaces.
+-	for len(b) > 0 && b[0] == ' ' {
+-		b = b[1:]
+-	}
+-	// Removing trailing NULs and spaces.
+-	for len(b) > 0 && (b[len(b)-1] == ' ' || b[len(b)-1] == '\x00') {
+-		b = b[0 : len(b)-1]
+-	}
+-	x, err := strconv.ParseUint(cString(b), 8, 64)
+-	if err != nil {
+-		tr.err = err
+-	}
+-	return int64(x)
+-}
+-
+-// skipUnread skips any unread bytes in the existing file entry, as well as any alignment padding.
+-func (tr *Reader) skipUnread() {
+-	nr := tr.nb + tr.pad // number of bytes to skip
+-	tr.nb, tr.pad = 0, 0
+-	if sr, ok := tr.r.(io.Seeker); ok {
+-		if _, err := sr.Seek(nr, os.SEEK_CUR); err == nil {
+-			return
+-		}
+-	}
+-	_, tr.err = io.CopyN(ioutil.Discard, tr.r, nr)
+-}
+-
+-func (tr *Reader) verifyChecksum(header []byte) bool {
+-	if tr.err != nil {
+-		return false
+-	}
+-
+-	given := tr.octal(header[148:156])
+-	unsigned, signed := checksum(header)
+-	return given == unsigned || given == signed
+-}
+-
+-func (tr *Reader) readHeader() *Header {
+-	header := make([]byte, blockSize)
+-	if _, tr.err = io.ReadFull(tr.r, header); tr.err != nil {
+-		return nil
+-	}
+-
+-	// Two blocks of zero bytes marks the end of the archive.
+-	if bytes.Equal(header, zeroBlock[0:blockSize]) {
+-		if _, tr.err = io.ReadFull(tr.r, header); tr.err != nil {
+-			return nil
+-		}
+-		if bytes.Equal(header, zeroBlock[0:blockSize]) {
+-			tr.err = io.EOF
+-		} else {
+-			tr.err = ErrHeader // zero block and then non-zero block
+-		}
+-		return nil
+-	}
+-
+-	if !tr.verifyChecksum(header) {
+-		tr.err = ErrHeader
+-		return nil
+-	}
+-
+-	// Unpack
+-	hdr := new(Header)
+-	s := slicer(header)
+-
+-	hdr.Name = cString(s.next(100))
+-	hdr.Mode = tr.octal(s.next(8))
+-	hdr.Uid = int(tr.octal(s.next(8)))
+-	hdr.Gid = int(tr.octal(s.next(8)))
+-	hdr.Size = tr.octal(s.next(12))
+-	hdr.ModTime = time.Unix(tr.octal(s.next(12)), 0)
+-	s.next(8) // chksum
+-	hdr.Typeflag = s.next(1)[0]
+-	hdr.Linkname = cString(s.next(100))
+-
+-	// The remainder of the header depends on the value of magic.
+-	// The original (v7) version of tar had no explicit magic field,
+-	// so its magic bytes, like the rest of the block, are NULs.
+-	magic := string(s.next(8)) // contains version field as well.
+-	var format string
+-	switch magic {
+-	case "ustar\x0000": // POSIX tar (1003.1-1988)
+-		if string(header[508:512]) == "tar\x00" {
+-			format = "star"
+-		} else {
+-			format = "posix"
+-		}
+-	case "ustar  \x00": // old GNU tar
+-		format = "gnu"
+-	}
+-
+-	switch format {
+-	case "posix", "gnu", "star":
+-		hdr.Uname = cString(s.next(32))
+-		hdr.Gname = cString(s.next(32))
+-		devmajor := s.next(8)
+-		devminor := s.next(8)
+-		if hdr.Typeflag == TypeChar || hdr.Typeflag == TypeBlock {
+-			hdr.Devmajor = tr.octal(devmajor)
+-			hdr.Devminor = tr.octal(devminor)
+-		}
+-		var prefix string
+-		switch format {
+-		case "posix", "gnu":
+-			prefix = cString(s.next(155))
+-		case "star":
+-			prefix = cString(s.next(131))
+-			hdr.AccessTime = time.Unix(tr.octal(s.next(12)), 0)
+-			hdr.ChangeTime = time.Unix(tr.octal(s.next(12)), 0)
+-		}
+-		if len(prefix) > 0 {
+-			hdr.Name = prefix + "/" + hdr.Name
+-		}
+-	}
+-
+-	if tr.err != nil {
+-		tr.err = ErrHeader
+-		return nil
+-	}
+-
+-	// Maximum value of hdr.Size is 64 GB (12 octal digits),
+-	// so there's no risk of int64 overflowing.
+-	tr.nb = int64(hdr.Size)
+-	tr.pad = -tr.nb & (blockSize - 1) // blockSize is a power of two
+-
+-	return hdr
+-}
+-
+-// Read reads from the current entry in the tar archive.
+-// It returns 0, io.EOF when it reaches the end of that entry,
+-// until Next is called to advance to the next entry.
+-func (tr *Reader) Read(b []byte) (n int, err error) {
+-	if tr.nb == 0 {
+-		// file consumed
+-		return 0, io.EOF
+-	}
+-
+-	if int64(len(b)) > tr.nb {
+-		b = b[0:tr.nb]
+-	}
+-	n, err = tr.r.Read(b)
+-	tr.nb -= int64(n)
+-
+-	if err == io.EOF && tr.nb > 0 {
+-		err = io.ErrUnexpectedEOF
+-	}
+-	tr.err = err
+-	return
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/reader_test.go docker-devmapper/vendor/src/github.com/dotcloud/tar/reader_test.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/reader_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/reader_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,366 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package tar
+-
+-import (
+-	"bytes"
+-	"crypto/md5"
+-	"fmt"
+-	"io"
+-	"os"
+-	"reflect"
+-	"strings"
+-	"testing"
+-	"time"
+-)
+-
+-type untarTest struct {
+-	file    string
+-	headers []*Header
+-	cksums  []string
+-}
+-
+-var gnuTarTest = &untarTest{
+-	file: "testdata/gnu.tar",
+-	headers: []*Header{
+-		{
+-			Name:     "small.txt",
+-			Mode:     0640,
+-			Uid:      73025,
+-			Gid:      5000,
+-			Size:     5,
+-			ModTime:  time.Unix(1244428340, 0),
+-			Typeflag: '0',
+-			Uname:    "dsymonds",
+-			Gname:    "eng",
+-		},
+-		{
+-			Name:     "small2.txt",
+-			Mode:     0640,
+-			Uid:      73025,
+-			Gid:      5000,
+-			Size:     11,
+-			ModTime:  time.Unix(1244436044, 0),
+-			Typeflag: '0',
+-			Uname:    "dsymonds",
+-			Gname:    "eng",
+-		},
+-	},
+-	cksums: []string{
+-		"e38b27eaccb4391bdec553a7f3ae6b2f",
+-		"c65bd2e50a56a2138bf1716f2fd56fe9",
+-	},
+-}
+-
+-var untarTests = []*untarTest{
+-	gnuTarTest,
+-	{
+-		file: "testdata/star.tar",
+-		headers: []*Header{
+-			{
+-				Name:       "small.txt",
+-				Mode:       0640,
+-				Uid:        73025,
+-				Gid:        5000,
+-				Size:       5,
+-				ModTime:    time.Unix(1244592783, 0),
+-				Typeflag:   '0',
+-				Uname:      "dsymonds",
+-				Gname:      "eng",
+-				AccessTime: time.Unix(1244592783, 0),
+-				ChangeTime: time.Unix(1244592783, 0),
+-			},
+-			{
+-				Name:       "small2.txt",
+-				Mode:       0640,
+-				Uid:        73025,
+-				Gid:        5000,
+-				Size:       11,
+-				ModTime:    time.Unix(1244592783, 0),
+-				Typeflag:   '0',
+-				Uname:      "dsymonds",
+-				Gname:      "eng",
+-				AccessTime: time.Unix(1244592783, 0),
+-				ChangeTime: time.Unix(1244592783, 0),
+-			},
+-		},
+-	},
+-	{
+-		file: "testdata/v7.tar",
+-		headers: []*Header{
+-			{
+-				Name:     "small.txt",
+-				Mode:     0444,
+-				Uid:      73025,
+-				Gid:      5000,
+-				Size:     5,
+-				ModTime:  time.Unix(1244593104, 0),
+-				Typeflag: '\x00',
+-			},
+-			{
+-				Name:     "small2.txt",
+-				Mode:     0444,
+-				Uid:      73025,
+-				Gid:      5000,
+-				Size:     11,
+-				ModTime:  time.Unix(1244593104, 0),
+-				Typeflag: '\x00',
+-			},
+-		},
+-	},
+-	{
+-		file: "testdata/pax.tar",
+-		headers: []*Header{
+-			{
+-				Name:       "a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100",
+-				Mode:       0664,
+-				Uid:        1000,
+-				Gid:        1000,
+-				Uname:      "shane",
+-				Gname:      "shane",
+-				Size:       7,
+-				ModTime:    time.Unix(1350244992, 23960108),
+-				ChangeTime: time.Unix(1350244992, 23960108),
+-				AccessTime: time.Unix(1350244992, 23960108),
+-				Typeflag:   TypeReg,
+-			},
+-			{
+-				Name:       "a/b",
+-				Mode:       0777,
+-				Uid:        1000,
+-				Gid:        1000,
+-				Uname:      "shane",
+-				Gname:      "shane",
+-				Size:       0,
+-				ModTime:    time.Unix(1350266320, 910238425),
+-				ChangeTime: time.Unix(1350266320, 910238425),
+-				AccessTime: time.Unix(1350266320, 910238425),
+-				Typeflag:   TypeSymlink,
+-				Linkname:   "123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100",
+-			},
+-		},
+-	},
+-}
+-
+-func TestReader(t *testing.T) {
+-testLoop:
+-	for i, test := range untarTests {
+-		f, err := os.Open(test.file)
+-		if err != nil {
+-			t.Errorf("test %d: Unexpected error: %v", i, err)
+-			continue
+-		}
+-		tr := NewReader(f)
+-		for j, header := range test.headers {
+-			hdr, err := tr.Next()
+-			if err != nil || hdr == nil {
+-				t.Errorf("test %d, entry %d: Didn't get entry: %v", i, j, err)
+-				f.Close()
+-				continue testLoop
+-			}
+-			if *hdr != *header {
+-				t.Errorf("test %d, entry %d: Incorrect header:\nhave %+v\nwant %+v",
+-					i, j, *hdr, *header)
+-			}
+-		}
+-		hdr, err := tr.Next()
+-		if err == io.EOF {
+-			continue testLoop
+-		}
+-		if hdr != nil || err != nil {
+-			t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, hdr, err)
+-		}
+-		f.Close()
+-	}
+-}
+-
+-func TestPartialRead(t *testing.T) {
+-	f, err := os.Open("testdata/gnu.tar")
+-	if err != nil {
+-		t.Fatalf("Unexpected error: %v", err)
+-	}
+-	defer f.Close()
+-
+-	tr := NewReader(f)
+-
+-	// Read the first four bytes; Next() should skip the last byte.
+-	hdr, err := tr.Next()
+-	if err != nil || hdr == nil {
+-		t.Fatalf("Didn't get first file: %v", err)
+-	}
+-	buf := make([]byte, 4)
+-	if _, err := io.ReadFull(tr, buf); err != nil {
+-		t.Fatalf("Unexpected error: %v", err)
+-	}
+-	if expected := []byte("Kilt"); !bytes.Equal(buf, expected) {
+-		t.Errorf("Contents = %v, want %v", buf, expected)
+-	}
+-
+-	// Second file
+-	hdr, err = tr.Next()
+-	if err != nil || hdr == nil {
+-		t.Fatalf("Didn't get second file: %v", err)
+-	}
+-	buf = make([]byte, 6)
+-	if _, err := io.ReadFull(tr, buf); err != nil {
+-		t.Fatalf("Unexpected error: %v", err)
+-	}
+-	if expected := []byte("Google"); !bytes.Equal(buf, expected) {
+-		t.Errorf("Contents = %v, want %v", buf, expected)
+-	}
+-}
+-
+-func TestIncrementalRead(t *testing.T) {
+-	test := gnuTarTest
+-	f, err := os.Open(test.file)
+-	if err != nil {
+-		t.Fatalf("Unexpected error: %v", err)
+-	}
+-	defer f.Close()
+-
+-	tr := NewReader(f)
+-
+-	headers := test.headers
+-	cksums := test.cksums
+-	nread := 0
+-
+-	// loop over all files
+-	for ; ; nread++ {
+-		hdr, err := tr.Next()
+-		if hdr == nil || err == io.EOF {
+-			break
+-		}
+-
+-		// check the header
+-		if *hdr != *headers[nread] {
+-			t.Errorf("Incorrect header:\nhave %+v\nwant %+v",
+-				*hdr, headers[nread])
+-		}
+-
+-		// read file contents in little chunks EOF,
+-		// checksumming all the way
+-		h := md5.New()
+-		rdbuf := make([]uint8, 8)
+-		for {
+-			nr, err := tr.Read(rdbuf)
+-			if err == io.EOF {
+-				break
+-			}
+-			if err != nil {
+-				t.Errorf("Read: unexpected error %v\n", err)
+-				break
+-			}
+-			h.Write(rdbuf[0:nr])
+-		}
+-		// verify checksum
+-		have := fmt.Sprintf("%x", h.Sum(nil))
+-		want := cksums[nread]
+-		if want != have {
+-			t.Errorf("Bad checksum on file %s:\nhave %+v\nwant %+v", hdr.Name, have, want)
+-		}
+-	}
+-	if nread != len(headers) {
+-		t.Errorf("Didn't process all files\nexpected: %d\nprocessed %d\n", len(headers), nread)
+-	}
+-}
+-
+-func TestNonSeekable(t *testing.T) {
+-	test := gnuTarTest
+-	f, err := os.Open(test.file)
+-	if err != nil {
+-		t.Fatalf("Unexpected error: %v", err)
+-	}
+-	defer f.Close()
+-
+-	type readerOnly struct {
+-		io.Reader
+-	}
+-	tr := NewReader(readerOnly{f})
+-	nread := 0
+-
+-	for ; ; nread++ {
+-		_, err := tr.Next()
+-		if err == io.EOF {
+-			break
+-		}
+-		if err != nil {
+-			t.Fatalf("Unexpected error: %v", err)
+-		}
+-	}
+-
+-	if nread != len(test.headers) {
+-		t.Errorf("Didn't process all files\nexpected: %d\nprocessed %d\n", len(test.headers), nread)
+-	}
+-}
+-
+-func TestParsePAXHeader(t *testing.T) {
+-	paxTests := [][3]string{
+-		{"a", "a=name", "10 a=name\n"}, // Test case involving multiple acceptable lengths
+-		{"a", "a=name", "9 a=name\n"},  // Test case involving multiple acceptable length
+-		{"mtime", "mtime=1350244992.023960108", "30 mtime=1350244992.023960108\n"}}
+-	for _, test := range paxTests {
+-		key, expected, raw := test[0], test[1], test[2]
+-		reader := bytes.NewBuffer([]byte(raw))
+-		headers, err := parsePAX(reader)
+-		if err != nil {
+-			t.Errorf("Couldn't parse correctly formatted headers: %v", err)
+-			continue
+-		}
+-		if strings.EqualFold(headers[key], expected) {
+-			t.Errorf("mtime header incorrectly parsed: got %s, wanted %s", headers[key], expected)
+-			continue
+-		}
+-		trailer := make([]byte, 100)
+-		n, err := reader.Read(trailer)
+-		if err != io.EOF || n != 0 {
+-			t.Error("Buffer wasn't consumed")
+-		}
+-	}
+-	badHeader := bytes.NewBuffer([]byte("3 somelongkey="))
+-	if _, err := parsePAX(badHeader); err != ErrHeader {
+-		t.Fatal("Unexpected success when parsing bad header")
+-	}
+-}
+-
+-func TestParsePAXTime(t *testing.T) {
+-	// Some valid PAX time values
+-	timestamps := map[string]time.Time{
+-		"1350244992.023960108":  time.Unix(1350244992, 23960108), // The commoon case
+-		"1350244992.02396010":   time.Unix(1350244992, 23960100), // Lower precision value
+-		"1350244992.0239601089": time.Unix(1350244992, 23960108), // Higher precision value
+-		"1350244992":            time.Unix(1350244992, 0),        // Low precision value
+-	}
+-	for input, expected := range timestamps {
+-		ts, err := parsePAXTime(input)
+-		if err != nil {
+-			t.Fatal(err)
+-		}
+-		if !ts.Equal(expected) {
+-			t.Fatalf("Time parsing failure %s %s", ts, expected)
+-		}
+-	}
+-}
+-
+-func TestMergePAX(t *testing.T) {
+-	hdr := new(Header)
+-	// Test a string, integer, and time based value.
+-	headers := map[string]string{
+-		"path":  "a/b/c",
+-		"uid":   "1000",
+-		"mtime": "1350244992.023960108",
+-	}
+-	err := mergePAX(hdr, headers)
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	want := &Header{
+-		Name:    "a/b/c",
+-		Uid:     1000,
+-		ModTime: time.Unix(1350244992, 23960108),
+-	}
+-	if !reflect.DeepEqual(hdr, want) {
+-		t.Errorf("incorrect merge: got %+v, want %+v", hdr, want)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/README docker-devmapper/vendor/src/github.com/dotcloud/tar/README
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/README	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/README	1969-12-31 18:00:00.000000000 -0600
+@@ -1,3 +0,0 @@
+-This is a fork of the upstream Go [archive/tar](http://golang.org/pkg/archive/tar/) package to add PAX header support.
+-
+-You can monitor the upstream pull request [here](https://codereview.appspot.com/12561043/).
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/stat_atimespec.go docker-devmapper/vendor/src/github.com/dotcloud/tar/stat_atimespec.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/stat_atimespec.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/stat_atimespec.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,20 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build darwin freebsd netbsd
+-
+-package tar
+-
+-import (
+-	"syscall"
+-	"time"
+-)
+-
+-func statAtime(st *syscall.Stat_t) time.Time {
+-	return time.Unix(st.Atimespec.Unix())
+-}
+-
+-func statCtime(st *syscall.Stat_t) time.Time {
+-	return time.Unix(st.Ctimespec.Unix())
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/stat_atim.go docker-devmapper/vendor/src/github.com/dotcloud/tar/stat_atim.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/stat_atim.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/stat_atim.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,20 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build linux openbsd
+-
+-package tar
+-
+-import (
+-	"syscall"
+-	"time"
+-)
+-
+-func statAtime(st *syscall.Stat_t) time.Time {
+-	return time.Unix(st.Atim.Unix())
+-}
+-
+-func statCtime(st *syscall.Stat_t) time.Time {
+-	return time.Unix(st.Ctim.Unix())
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/stat_unix.go docker-devmapper/vendor/src/github.com/dotcloud/tar/stat_unix.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/stat_unix.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/stat_unix.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,32 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build linux darwin freebsd openbsd netbsd
+-
+-package tar
+-
+-import (
+-	"os"
+-	"syscall"
+-)
+-
+-func init() {
+-	sysStat = statUnix
+-}
+-
+-func statUnix(fi os.FileInfo, h *Header) error {
+-	sys, ok := fi.Sys().(*syscall.Stat_t)
+-	if !ok {
+-		return nil
+-	}
+-	h.Uid = int(sys.Uid)
+-	h.Gid = int(sys.Gid)
+-	// TODO(bradfitz): populate username & group.  os/user
+-	// doesn't cache LookupId lookups, and lacks group
+-	// lookup functions.
+-	h.AccessTime = statAtime(sys)
+-	h.ChangeTime = statCtime(sys)
+-	// TODO(bradfitz): major/minor device numbers?
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/tar_test.go docker-devmapper/vendor/src/github.com/dotcloud/tar/tar_test.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/tar_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/tar_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,271 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package tar
+-
+-import (
+-	"bytes"
+-	"io/ioutil"
+-	"os"
+-	"reflect"
+-	"testing"
+-	"time"
+-)
+-
+-func TestFileInfoHeader(t *testing.T) {
+-	fi, err := os.Stat("testdata/small.txt")
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	h, err := FileInfoHeader(fi, "")
+-	if err != nil {
+-		t.Fatalf("FileInfoHeader: %v", err)
+-	}
+-	if g, e := h.Name, "small.txt"; g != e {
+-		t.Errorf("Name = %q; want %q", g, e)
+-	}
+-	if g, e := h.Mode, int64(fi.Mode().Perm())|c_ISREG; g != e {
+-		t.Errorf("Mode = %#o; want %#o", g, e)
+-	}
+-	if g, e := h.Size, int64(5); g != e {
+-		t.Errorf("Size = %v; want %v", g, e)
+-	}
+-	if g, e := h.ModTime, fi.ModTime(); !g.Equal(e) {
+-		t.Errorf("ModTime = %v; want %v", g, e)
+-	}
+-}
+-
+-func TestFileInfoHeaderDir(t *testing.T) {
+-	fi, err := os.Stat("testdata")
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	h, err := FileInfoHeader(fi, "")
+-	if err != nil {
+-		t.Fatalf("FileInfoHeader: %v", err)
+-	}
+-	if g, e := h.Name, "testdata/"; g != e {
+-		t.Errorf("Name = %q; want %q", g, e)
+-	}
+-	// Ignoring c_ISGID for golang.org/issue/4867
+-	if g, e := h.Mode&^c_ISGID, int64(fi.Mode().Perm())|c_ISDIR; g != e {
+-		t.Errorf("Mode = %#o; want %#o", g, e)
+-	}
+-	if g, e := h.Size, int64(0); g != e {
+-		t.Errorf("Size = %v; want %v", g, e)
+-	}
+-	if g, e := h.ModTime, fi.ModTime(); !g.Equal(e) {
+-		t.Errorf("ModTime = %v; want %v", g, e)
+-	}
+-}
+-
+-func TestFileInfoHeaderSymlink(t *testing.T) {
+-	h, err := FileInfoHeader(symlink{}, "some-target")
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	if g, e := h.Name, "some-symlink"; g != e {
+-		t.Errorf("Name = %q; want %q", g, e)
+-	}
+-	if g, e := h.Linkname, "some-target"; g != e {
+-		t.Errorf("Linkname = %q; want %q", g, e)
+-	}
+-}
+-
+-type symlink struct{}
+-
+-func (symlink) Name() string       { return "some-symlink" }
+-func (symlink) Size() int64        { return 0 }
+-func (symlink) Mode() os.FileMode  { return os.ModeSymlink }
+-func (symlink) ModTime() time.Time { return time.Time{} }
+-func (symlink) IsDir() bool        { return false }
+-func (symlink) Sys() interface{}   { return nil }
+-
+-func TestRoundTrip(t *testing.T) {
+-	data := []byte("some file contents")
+-
+-	var b bytes.Buffer
+-	tw := NewWriter(&b)
+-	hdr := &Header{
+-		Name:    "file.txt",
+-		Uid:     1 << 21, // too big for 8 octal digits
+-		Size:    int64(len(data)),
+-		ModTime: time.Now(),
+-	}
+-	// tar only supports second precision.
+-	hdr.ModTime = hdr.ModTime.Add(-time.Duration(hdr.ModTime.Nanosecond()) * time.Nanosecond)
+-	if err := tw.WriteHeader(hdr); err != nil {
+-		t.Fatalf("tw.WriteHeader: %v", err)
+-	}
+-	if _, err := tw.Write(data); err != nil {
+-		t.Fatalf("tw.Write: %v", err)
+-	}
+-	if err := tw.Close(); err != nil {
+-		t.Fatalf("tw.Close: %v", err)
+-	}
+-
+-	// Read it back.
+-	tr := NewReader(&b)
+-	rHdr, err := tr.Next()
+-	if err != nil {
+-		t.Fatalf("tr.Next: %v", err)
+-	}
+-	if !reflect.DeepEqual(rHdr, hdr) {
+-		t.Errorf("Header mismatch.\n got %+v\nwant %+v", rHdr, hdr)
+-	}
+-	rData, err := ioutil.ReadAll(tr)
+-	if err != nil {
+-		t.Fatalf("Read: %v", err)
+-	}
+-	if !bytes.Equal(rData, data) {
+-		t.Errorf("Data mismatch.\n got %q\nwant %q", rData, data)
+-	}
+-}
+-
+-type headerRoundTripTest struct {
+-	h  *Header
+-	fm os.FileMode
+-}
+-
+-func TestHeaderRoundTrip(t *testing.T) {
+-	golden := []headerRoundTripTest{
+-		// regular file.
+-		{
+-			h: &Header{
+-				Name:     "test.txt",
+-				Mode:     0644 | c_ISREG,
+-				Size:     12,
+-				ModTime:  time.Unix(1360600916, 0),
+-				Typeflag: TypeReg,
+-			},
+-			fm: 0644,
+-		},
+-		// hard link.
+-		{
+-			h: &Header{
+-				Name:     "hard.txt",
+-				Mode:     0644 | c_ISLNK,
+-				Size:     0,
+-				ModTime:  time.Unix(1360600916, 0),
+-				Typeflag: TypeLink,
+-			},
+-			fm: 0644 | os.ModeSymlink,
+-		},
+-		// symbolic link.
+-		{
+-			h: &Header{
+-				Name:     "link.txt",
+-				Mode:     0777 | c_ISLNK,
+-				Size:     0,
+-				ModTime:  time.Unix(1360600852, 0),
+-				Typeflag: TypeSymlink,
+-			},
+-			fm: 0777 | os.ModeSymlink,
+-		},
+-		// character device node.
+-		{
+-			h: &Header{
+-				Name:     "dev/null",
+-				Mode:     0666 | c_ISCHR,
+-				Size:     0,
+-				ModTime:  time.Unix(1360578951, 0),
+-				Typeflag: TypeChar,
+-			},
+-			fm: 0666 | os.ModeDevice | os.ModeCharDevice,
+-		},
+-		// block device node.
+-		{
+-			h: &Header{
+-				Name:     "dev/sda",
+-				Mode:     0660 | c_ISBLK,
+-				Size:     0,
+-				ModTime:  time.Unix(1360578954, 0),
+-				Typeflag: TypeBlock,
+-			},
+-			fm: 0660 | os.ModeDevice,
+-		},
+-		// directory.
+-		{
+-			h: &Header{
+-				Name:     "dir/",
+-				Mode:     0755 | c_ISDIR,
+-				Size:     0,
+-				ModTime:  time.Unix(1360601116, 0),
+-				Typeflag: TypeDir,
+-			},
+-			fm: 0755 | os.ModeDir,
+-		},
+-		// fifo node.
+-		{
+-			h: &Header{
+-				Name:     "dev/initctl",
+-				Mode:     0600 | c_ISFIFO,
+-				Size:     0,
+-				ModTime:  time.Unix(1360578949, 0),
+-				Typeflag: TypeFifo,
+-			},
+-			fm: 0600 | os.ModeNamedPipe,
+-		},
+-		// setuid.
+-		{
+-			h: &Header{
+-				Name:     "bin/su",
+-				Mode:     0755 | c_ISREG | c_ISUID,
+-				Size:     23232,
+-				ModTime:  time.Unix(1355405093, 0),
+-				Typeflag: TypeReg,
+-			},
+-			fm: 0755 | os.ModeSetuid,
+-		},
+-		// setguid.
+-		{
+-			h: &Header{
+-				Name:     "group.txt",
+-				Mode:     0750 | c_ISREG | c_ISGID,
+-				Size:     0,
+-				ModTime:  time.Unix(1360602346, 0),
+-				Typeflag: TypeReg,
+-			},
+-			fm: 0750 | os.ModeSetgid,
+-		},
+-		// sticky.
+-		{
+-			h: &Header{
+-				Name:     "sticky.txt",
+-				Mode:     0600 | c_ISREG | c_ISVTX,
+-				Size:     7,
+-				ModTime:  time.Unix(1360602540, 0),
+-				Typeflag: TypeReg,
+-			},
+-			fm: 0600 | os.ModeSticky,
+-		},
+-	}
+-
+-	for i, g := range golden {
+-		fi := g.h.FileInfo()
+-		h2, err := FileInfoHeader(fi, "")
+-		if err != nil {
+-			t.Error(err)
+-			continue
+-		}
+-		if got, want := h2.Name, g.h.Name; got != want {
+-			t.Errorf("i=%d: Name: got %v, want %v", i, got, want)
+-		}
+-		if got, want := h2.Size, g.h.Size; got != want {
+-			t.Errorf("i=%d: Size: got %v, want %v", i, got, want)
+-		}
+-		if got, want := h2.Mode, g.h.Mode; got != want {
+-			t.Errorf("i=%d: Mode: got %o, want %o", i, got, want)
+-		}
+-		if got, want := fi.Mode(), g.fm; got != want {
+-			t.Errorf("i=%d: fi.Mode: got %o, want %o", i, got, want)
+-		}
+-		if got, want := h2.ModTime, g.h.ModTime; got != want {
+-			t.Errorf("i=%d: ModTime: got %v, want %v", i, got, want)
+-		}
+-		if sysh, ok := fi.Sys().(*Header); !ok || sysh != g.h {
+-			t.Errorf("i=%d: Sys didn't return original *Header", i)
+-		}
+-	}
+-}
+Binary files docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/gnu.tar and docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/gnu.tar differ
+Binary files docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/pax.tar and docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/pax.tar differ
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/small2.txt docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/small2.txt
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/small2.txt	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/small2.txt	1969-12-31 18:00:00.000000000 -0600
+@@ -1 +0,0 @@
+-Google.com
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/small.txt docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/small.txt
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/small.txt	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/small.txt	1969-12-31 18:00:00.000000000 -0600
+@@ -1 +0,0 @@
+-Kilts
+\ No newline at end of file
+Binary files docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/star.tar and docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/star.tar differ
+Binary files docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/ustar.tar and docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/ustar.tar differ
+Binary files docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/v7.tar and docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/v7.tar differ
+Binary files docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/writer-big.tar and docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/writer-big.tar differ
+Binary files docker-0.6.2/vendor/src/github.com/dotcloud/tar/testdata/writer.tar and docker-devmapper/vendor/src/github.com/dotcloud/tar/testdata/writer.tar differ
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/writer.go docker-devmapper/vendor/src/github.com/dotcloud/tar/writer.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/writer.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/writer.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,390 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package tar
+-
+-// TODO(dsymonds):
+-// - catch more errors (no first header, etc.)
+-
+-import (
+-	"bytes"
+-	"errors"
+-	"fmt"
+-	"io"
+-	"os"
+-	"path"
+-	"strconv"
+-	"strings"
+-	"time"
+-)
+-
+-var (
+-	ErrWriteTooLong        = errors.New("archive/tar: write too long")
+-	ErrFieldTooLong        = errors.New("archive/tar: header field too long")
+-	ErrWriteAfterClose     = errors.New("archive/tar: write after close")
+-	errNameTooLong         = errors.New("archive/tar: name too long")
+-	errFieldTooLongNoAscii = errors.New("archive/tar: header field too long or contains invalid values")
+-)
+-
+-// A Writer provides sequential writing of a tar archive in POSIX.1 format.
+-// A tar archive consists of a sequence of files.
+-// Call WriteHeader to begin a new file, and then call Write to supply that file's data,
+-// writing at most hdr.Size bytes in total.
+-type Writer struct {
+-	w          io.Writer
+-	err        error
+-	nb         int64 // number of unwritten bytes for current file entry
+-	pad        int64 // amount of padding to write after current file entry
+-	closed     bool
+-	usedBinary bool // whether the binary numeric field extension was used
+-	preferPax  bool // use pax header instead of binary numeric header
+-}
+-
+-// NewWriter creates a new Writer writing to w.
+-func NewWriter(w io.Writer) *Writer { return &Writer{w: w} }
+-
+-// Flush finishes writing the current file (optional).
+-func (tw *Writer) Flush() error {
+-	if tw.nb > 0 {
+-		tw.err = fmt.Errorf("archive/tar: missed writing %d bytes", tw.nb)
+-		return tw.err
+-	}
+-
+-	n := tw.nb + tw.pad
+-	for n > 0 && tw.err == nil {
+-		nr := n
+-		if nr > blockSize {
+-			nr = blockSize
+-		}
+-		var nw int
+-		nw, tw.err = tw.w.Write(zeroBlock[0:nr])
+-		n -= int64(nw)
+-	}
+-	tw.nb = 0
+-	tw.pad = 0
+-	return tw.err
+-}
+-
+-// Write s into b, terminating it with a NUL if there is room.
+-func (tw *Writer) cString(b []byte, s string) {
+-	if len(s) > len(b) {
+-		if tw.err == nil {
+-			tw.err = ErrFieldTooLong
+-		}
+-		return
+-	}
+-	copy(b, s)
+-	if len(s) < len(b) {
+-		b[len(s)] = 0
+-	}
+-}
+-
+-// Write s into b, terminating it with a NUL if there is room. If the value is too long for the field add a paxheader record instead
+-func (tw *Writer) fillHeaderField(b []byte, paxHeader map[string]string, paxKeyword string, s string) {
+-	needsPaxHeader := len(s) > len(b) || !isASCII7Bit(s)
+-	if needsPaxHeader {
+-		paxHeader[paxKeyword] = s
+-		return
+-	}
+-	copy(b, stripTo7BitsAndShorten(s, len(b)))
+-	if len(s) < len(b) {
+-		b[len(s)] = 0
+-	}
+-}
+-
+-// Encode x as an octal ASCII string and write it into b with leading zeros.
+-func (tw *Writer) octal(b []byte, x int64) {
+-	s := strconv.FormatInt(x, 8)
+-	// leading zeros, but leave room for a NUL.
+-	for len(s)+1 < len(b) {
+-		s = "0" + s
+-	}
+-	tw.cString(b, s)
+-}
+-
+-// Write x into b, either as octal or as binary (GNUtar/star extension).
+-func (tw *Writer) numeric(b []byte, x int64) {
+-	// Try octal first.
+-	s := strconv.FormatInt(x, 8)
+-	if len(s) < len(b) {
+-		tw.octal(b, x)
+-		return
+-	}
+-	// Too big: use binary (big-endian).
+-	tw.usedBinary = true
+-	for i := len(b) - 1; x > 0 && i >= 0; i-- {
+-		b[i] = byte(x)
+-		x >>= 8
+-	}
+-	b[0] |= 0x80 // highest bit indicates binary format
+-}
+-
+-// Write x into b, if it is smaller than 2097151. If the value is too long for the field add a paxheader record instead
+-func (tw *Writer) fillNumericHeaderField(b []byte, paxHeader map[string]string, paxKeyword string, x int64) {
+-	if tw.preferPax && x > 2097151 {
+-		s := strconv.FormatInt(x, 10)
+-		paxHeader[paxKeyword] = s
+-		tw.numeric(b, 0)
+-	} else {
+-		tw.numeric(b, x)
+-	}
+-}
+-
+-// Write x into b, if it is smaller than 2097151. If the value is too long for the field add a paxheader record instead
+-func (tw *Writer) fillNumericLongHeaderField(b []byte, paxHeader map[string]string, paxKeyword string, x int64) {
+-	if tw.preferPax && x > 8589934591 {
+-		s := strconv.FormatInt(x, 10)
+-		paxHeader[paxKeyword] = s
+-		tw.numeric(b, 0)
+-	} else {
+-		tw.numeric(b, x)
+-	}
+-}
+-
+-var (
+-	minTime = time.Unix(0, 0)
+-	// There is room for 11 octal digits (33 bits) of mtime.
+-	maxTime = minTime.Add((1<<33 - 1) * time.Second)
+-)
+-
+-// WriteHeader writes hdr and prepares to accept the file's contents.
+-// WriteHeader calls Flush if it is not the first header.
+-// Calling after a Close will return ErrWriteAfterClose.
+-func (tw *Writer) WriteHeader(hdr *Header) error {
+-	return tw.writeHeader(hdr, true)
+-}
+-
+-// WriteHeader writes hdr and prepares to accept the file's contents.
+-// WriteHeader calls Flush if it is not the first header.
+-// Calling after a Close will return ErrWriteAfterClose.
+-//  As this method is called internally by writePax header it allows to
+-// suppress writing the pax header.
+-func (tw *Writer) writeHeader(hdr *Header, allowPax bool) error {
+-	if tw.closed {
+-		return ErrWriteAfterClose
+-	}
+-	if tw.err == nil {
+-		tw.Flush()
+-	}
+-	if tw.err != nil {
+-		return tw.err
+-	}
+-
+-	// a map to hold pax header records, if any are needed
+-	paxHeaderRecords := make(map[string]string)
+-
+-	// TODO(shanemhansen): we might want to use PAX headers for
+-	// subsecond time resolution, but for now let's just capture
+-	// too long fields or non ascii characters
+-
+-	header := make([]byte, blockSize)
+-	s := slicer(header)
+-
+-	// keep a reference to the filename to allow to overwrite it later if we detect that we can use ustar longnames instead of pax
+-	pathHeaderBytes := s.next(fileNameSize)
+-
+-	tw.fillHeaderField(pathHeaderBytes, paxHeaderRecords, PAX_PATH, hdr.Name)
+-
+-	// Handle out of range ModTime carefully.
+-	var modTime int64
+-	if !hdr.ModTime.Before(minTime) && !hdr.ModTime.After(maxTime) {
+-		modTime = hdr.ModTime.Unix()
+-	}
+-
+-	tw.octal(s.next(8), hdr.Mode)                                                   // 100:108
+-	tw.fillNumericHeaderField(s.next(8), paxHeaderRecords, PAX_UID, int64(hdr.Uid)) // 108:116
+-	tw.fillNumericHeaderField(s.next(8), paxHeaderRecords, PAX_GID, int64(hdr.Gid)) // 116:124
+-	tw.fillNumericLongHeaderField(s.next(12), paxHeaderRecords, PAX_SIZE, hdr.Size) // 124:136
+-	tw.numeric(s.next(12), modTime)                                                 // 136:148 --- consider using pax for finer granularity
+-	s.next(8)                                                                       // chksum (148:156)
+-	s.next(1)[0] = hdr.Typeflag                                                     // 156:157
+-
+-	tw.fillHeaderField(s.next(100), paxHeaderRecords, PAX_LINKPATH, hdr.Linkname)
+-
+-	copy(s.next(8), []byte("ustar\x0000"))                                 // 257:265
+-	tw.fillHeaderField(s.next(32), paxHeaderRecords, PAX_UNAME, hdr.Uname) // 265:297
+-	tw.fillHeaderField(s.next(32), paxHeaderRecords, PAX_GNAME, hdr.Gname) // 297:329
+-	tw.numeric(s.next(8), hdr.Devmajor)                                    // 329:337
+-	tw.numeric(s.next(8), hdr.Devminor)                                    // 337:345
+-
+-	// keep a reference to the prefix to allow to overwrite it later if we detect that we can use ustar longnames instead of pax
+-	prefixHeaderBytes := s.next(155)
+-	tw.cString(prefixHeaderBytes, "") // 345:500  prefix
+-
+-	// Use the GNU magic instead of POSIX magic if we used any GNU extensions.
+-	if tw.usedBinary {
+-		copy(header[257:265], []byte("ustar  \x00"))
+-	}
+-
+-	_, paxPathUsed := paxHeaderRecords[PAX_PATH]
+-	// try to use a ustar header when only the name is too long
+-	if !tw.preferPax && len(paxHeaderRecords) == 1 && paxPathUsed {
+-		suffix := hdr.Name
+-		prefix := ""
+-		if len(hdr.Name) > fileNameSize && isASCII7Bit(hdr.Name) {
+-			var err error
+-			prefix, suffix, err = tw.splitUSTARLongName(hdr.Name)
+-			if err == nil {
+-				// ok we can use a ustar long name instead of pax, now correct the fields
+-
+-				// remove the path field from the pax header. this will suppress the pax header
+-				delete(paxHeaderRecords, PAX_PATH)
+-
+-				// update the path fields
+-				tw.cString(pathHeaderBytes, suffix)
+-				tw.cString(prefixHeaderBytes, prefix)
+-
+-				// Use the ustar magic if we used ustar long names.
+-				if len(prefix) > 0 {
+-					copy(header[257:265], []byte("ustar\000"))
+-				}
+-			}
+-		}
+-	}
+-
+-	// The chksum field is terminated by a NUL and a space.
+-	// This is different from the other octal fields.
+-	chksum, _ := checksum(header)
+-	tw.octal(header[148:155], chksum)
+-	header[155] = ' '
+-
+-	if tw.err != nil {
+-		// problem with header; probably integer too big for a field.
+-		return tw.err
+-	}
+-
+-	if len(paxHeaderRecords) > 0 {
+-		if allowPax {
+-			if err := tw.writePAXHeader(hdr, paxHeaderRecords); err != nil {
+-				return err
+-			}
+-		} else {
+-			return errFieldTooLongNoAscii
+-		}
+-	}
+-	tw.nb = int64(hdr.Size)
+-	tw.pad = -tw.nb & (blockSize - 1) // blockSize is a power of two
+-
+-	_, tw.err = tw.w.Write(header)
+-	return tw.err
+-}
+-
+-// writeUSTARLongName splits a USTAR long name hdr.Name.
+-// name must be < 256 characters. errNameTooLong is returned
+-// if hdr.Name can't be split. The splitting heuristic
+-// is compatible with gnu tar.
+-func (tw *Writer) splitUSTARLongName(name string) (prefix, suffix string, err error) {
+-	length := len(name)
+-	if length > fileNamePrefixSize+1 {
+-		length = fileNamePrefixSize + 1
+-	} else if name[length-1] == '/' {
+-		length--
+-	}
+-	i := strings.LastIndex(name[:length], "/")
+-	nlen := length - i - 1
+-	if i <= 0 || nlen > fileNameSize || nlen == 0 {
+-		err = errNameTooLong
+-		return
+-	}
+-	prefix, suffix = name[:i], name[i+1:]
+-	return
+-}
+-
+-// writePaxHeader writes an extended pax header to the
+-// archive.
+-func (tw *Writer) writePAXHeader(hdr *Header, paxHeaderRecords map[string]string) error {
+-	// Prepare extended header
+-	ext := new(Header)
+-	ext.Typeflag = TypeXHeader
+-	// Setting ModTime is required for reader parsing to
+-	// succeed, and seems harmless enough.
+-	ext.ModTime = hdr.ModTime
+-	// The spec asks that we namespace our pseudo files
+-	// with the current pid.
+-	pid := os.Getpid()
+-	dir, file := path.Split(hdr.Name)
+-	fullName := path.Join(dir,
+-		fmt.Sprintf("PaxHeaders.%d", pid), file)
+-
+-	ext.Name = stripTo7BitsAndShorten(fullName, 100)
+-	// Construct the body
+-	var buf bytes.Buffer
+-
+-	for k, v := range paxHeaderRecords {
+-		fmt.Fprint(&buf, paxHeader(k, v))
+-	}
+-
+-	ext.Size = int64(len(buf.Bytes()))
+-	if err := tw.writeHeader(ext, false); err != nil {
+-		return err
+-	}
+-	if _, err := tw.Write(buf.Bytes()); err != nil {
+-		return err
+-	}
+-	if err := tw.Flush(); err != nil {
+-		return err
+-	}
+-	return nil
+-}
+-
+-// paxHeader formats a single pax record, prefixing it with the appropriate length
+-func paxHeader(keyword string, value string) string {
+-
+-	const padding = 3 // Extra padding for space and newline
+-	size := len(keyword) + len(value) + padding
+-	size += len(strconv.Itoa(size))
+-	record := fmt.Sprintf("%d %s=%s\n", size, keyword, value)
+-	if len(record) != size {
+-		// Final adjustment if adding size increased
+-		// the number of digits in size
+-		size = len(record)
+-		record = fmt.Sprintf("%d %s=%s\n", size, keyword, value)
+-	}
+-	return record
+-}
+-
+-// Write writes to the current entry in the tar archive.
+-// Write returns the error ErrWriteTooLong if more than
+-// hdr.Size bytes are written after WriteHeader.
+-func (tw *Writer) Write(b []byte) (n int, err error) {
+-	if tw.closed {
+-		err = ErrWriteTooLong
+-		return
+-	}
+-	overwrite := false
+-	if int64(len(b)) > tw.nb {
+-		b = b[0:tw.nb]
+-		overwrite = true
+-	}
+-	n, err = tw.w.Write(b)
+-	tw.nb -= int64(n)
+-	if err == nil && overwrite {
+-		err = ErrWriteTooLong
+-		return
+-	}
+-	tw.err = err
+-	return
+-}
+-
+-// Close closes the tar archive, flushing any unwritten
+-// data to the underlying writer.
+-func (tw *Writer) Close() error {
+-	if tw.err != nil || tw.closed {
+-		return tw.err
+-	}
+-	tw.Flush()
+-	tw.closed = true
+-	if tw.err != nil {
+-		return tw.err
+-	}
+-
+-	// trailer: two zero blocks
+-	for i := 0; i < 2; i++ {
+-		_, tw.err = tw.w.Write(zeroBlock)
+-		if tw.err != nil {
+-			break
+-		}
+-	}
+-	return tw.err
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/dotcloud/tar/writer_test.go docker-devmapper/vendor/src/github.com/dotcloud/tar/writer_test.go
+--- docker-0.6.2/vendor/src/github.com/dotcloud/tar/writer_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/dotcloud/tar/writer_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,357 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package tar
+-
+-import (
+-	"bytes"
+-	"fmt"
+-	"io"
+-	"io/ioutil"
+-	"os"
+-	"strings"
+-	"testing"
+-	"testing/iotest"
+-	"time"
+-)
+-
+-type writerTestEntry struct {
+-	header   *Header
+-	contents string
+-}
+-
+-type writerTest struct {
+-	file    string // filename of expected output
+-	entries []*writerTestEntry
+-}
+-
+-var writerTests = []*writerTest{
+-	// The writer test file was produced with this command:
+-	// tar (GNU tar) 1.26
+-	//   ln -s small.txt link.txt
+-	//   tar -b 1 --format=ustar -c -f writer.tar small.txt small2.txt link.txt
+-	{
+-		file: "testdata/writer.tar",
+-		entries: []*writerTestEntry{
+-			{
+-				header: &Header{
+-					Name:     "small.txt",
+-					Mode:     0640,
+-					Uid:      73025,
+-					Gid:      5000,
+-					Size:     5,
+-					ModTime:  time.Unix(1246508266, 0),
+-					Typeflag: '0',
+-					Uname:    "dsymonds",
+-					Gname:    "eng",
+-				},
+-				contents: "Kilts",
+-			},
+-			{
+-				header: &Header{
+-					Name:     "small2.txt",
+-					Mode:     0640,
+-					Uid:      73025,
+-					Gid:      5000,
+-					Size:     11,
+-					ModTime:  time.Unix(1245217492, 0),
+-					Typeflag: '0',
+-					Uname:    "dsymonds",
+-					Gname:    "eng",
+-				},
+-				contents: "Google.com\n",
+-			},
+-			{
+-				header: &Header{
+-					Name:     "link.txt",
+-					Mode:     0777,
+-					Uid:      1000,
+-					Gid:      1000,
+-					Size:     0,
+-					ModTime:  time.Unix(1314603082, 0),
+-					Typeflag: '2',
+-					Linkname: "small.txt",
+-					Uname:    "strings",
+-					Gname:    "strings",
+-				},
+-				// no contents
+-			},
+-		},
+-	},
+-	// The truncated test file was produced using these commands:
+-	//   dd if=/dev/zero bs=1048576 count=16384 > /tmp/16gig.txt
+-	//   tar -b 1 -c -f- /tmp/16gig.txt | dd bs=512 count=8 > writer-big.tar
+-	{
+-		file: "testdata/writer-big.tar",
+-		entries: []*writerTestEntry{
+-			{
+-				header: &Header{
+-					Name:     "tmp/16gig.txt",
+-					Mode:     0640,
+-					Uid:      73025,
+-					Gid:      5000,
+-					Size:     16 << 30,
+-					ModTime:  time.Unix(1254699560, 0),
+-					Typeflag: '0',
+-					Uname:    "dsymonds",
+-					Gname:    "eng",
+-				},
+-				// fake contents
+-				contents: strings.Repeat("\x00", 4<<10),
+-			},
+-		},
+-	},
+-	// This file was produced using gnu tar 1.17
+-	// gnutar  -b 4 --format=ustar (longname/)*15 + file.txt
+-	{
+-		file: "testdata/ustar.tar",
+-		entries: []*writerTestEntry{
+-			{
+-				header: &Header{
+-					Name:     strings.Repeat("longname/", 15) + "file.txt",
+-					Mode:     0644,
+-					Uid:      0765,
+-					Gid:      024,
+-					Size:     06,
+-					ModTime:  time.Unix(1360135598, 0),
+-					Typeflag: '0',
+-					Uname:    "shane",
+-					Gname:    "staff",
+-				},
+-				contents: "hello\n",
+-			},
+-		},
+-	},
+-}
+-
+-// Render byte array in a two-character hexadecimal string, spaced for easy visual inspection.
+-func bytestr(offset int, b []byte) string {
+-	const rowLen = 32
+-	s := fmt.Sprintf("%04x ", offset)
+-	for _, ch := range b {
+-		switch {
+-		case '0' <= ch && ch <= '9', 'A' <= ch && ch <= 'Z', 'a' <= ch && ch <= 'z':
+-			s += fmt.Sprintf("  %c", ch)
+-		default:
+-			s += fmt.Sprintf(" %02x", ch)
+-		}
+-	}
+-	return s
+-}
+-
+-// Render a pseudo-diff between two blocks of bytes.
+-func bytediff(a []byte, b []byte) string {
+-	const rowLen = 32
+-	s := fmt.Sprintf("(%d bytes vs. %d bytes)\n", len(a), len(b))
+-	for offset := 0; len(a)+len(b) > 0; offset += rowLen {
+-		na, nb := rowLen, rowLen
+-		if na > len(a) {
+-			na = len(a)
+-		}
+-		if nb > len(b) {
+-			nb = len(b)
+-		}
+-		sa := bytestr(offset, a[0:na])
+-		sb := bytestr(offset, b[0:nb])
+-		if sa != sb {
+-			s += fmt.Sprintf("-%v\n+%v\n", sa, sb)
+-		}
+-		a = a[na:]
+-		b = b[nb:]
+-	}
+-	return s
+-}
+-
+-func TestWriter(t *testing.T) {
+-testLoop:
+-	for i, test := range writerTests {
+-		expected, err := ioutil.ReadFile(test.file)
+-		if err != nil {
+-			t.Errorf("test %d: Unexpected error: %v", i, err)
+-			continue
+-		}
+-
+-		buf := new(bytes.Buffer)
+-		tw := NewWriter(iotest.TruncateWriter(buf, 4<<10)) // only catch the first 4 KB
+-		big := false
+-		for j, entry := range test.entries {
+-			big = big || entry.header.Size > 1<<10
+-			if err := tw.WriteHeader(entry.header); err != nil {
+-				t.Errorf("test %d, entry %d: Failed writing header: %v", i, j, err)
+-				continue testLoop
+-			}
+-			if _, err := io.WriteString(tw, entry.contents); err != nil {
+-				t.Errorf("test %d, entry %d: Failed writing contents: %v", i, j, err)
+-				continue testLoop
+-			}
+-		}
+-		// Only interested in Close failures for the small tests.
+-		if err := tw.Close(); err != nil && !big {
+-			t.Errorf("test %d: Failed closing archive: %v", i, err)
+-			continue testLoop
+-		}
+-
+-		actual := buf.Bytes()
+-		if !bytes.Equal(expected, actual) {
+-			t.Errorf("test %d: Incorrect result: (-=expected, +=actual)\n%v",
+-				i, bytediff(expected, actual))
+-		}
+-		if testing.Short() { // The second test is expensive.
+-			break
+-		}
+-	}
+-}
+-
+-func TestPax(t *testing.T) {
+-	// Create an archive with a large name
+-	fileinfo, err := os.Stat("testdata/small.txt")
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	hdr, err := FileInfoHeader(fileinfo, "")
+-	if err != nil {
+-		t.Fatalf("os.Stat: %v", err)
+-	}
+-	// Force a PAX long name to be written
+-	longName := strings.Repeat("ab", 100)
+-	contents := strings.Repeat(" ", int(hdr.Size))
+-	hdr.Name = longName
+-	var buf bytes.Buffer
+-	writer := NewWriter(&buf)
+-	if err := writer.WriteHeader(hdr); err != nil {
+-		t.Fatal(err)
+-	}
+-	if _, err = writer.Write([]byte(contents)); err != nil {
+-		t.Fatal(err)
+-	}
+-	if err := writer.Close(); err != nil {
+-		t.Fatal(err)
+-	}
+-	// Simple test to make sure PAX extensions are in effect
+-	if !bytes.Contains(buf.Bytes(), []byte("PaxHeaders.")) {
+-		t.Fatal("Expected at least one PAX header to be written.")
+-	}
+-	// Test that we can get a long name back out of the archive.
+-	reader := NewReader(&buf)
+-	hdr, err = reader.Next()
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	if hdr.Name != longName {
+-		t.Fatal("Couldn't recover long file name")
+-	}
+-}
+-
+-func TestPaxSymlink(t *testing.T) {
+-	// Create an archive with a large linkname
+-	fileinfo, err := os.Stat("testdata/small.txt")
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	hdr, err := FileInfoHeader(fileinfo, "")
+-	hdr.Typeflag = TypeSymlink
+-	if err != nil {
+-		t.Fatalf("os.Stat:1 %v", err)
+-	}
+-	// Force a PAX long linkname to be written
+-	longLinkname := strings.Repeat("1234567890/1234567890", 10)
+-	hdr.Linkname = longLinkname
+-
+-	hdr.Size = 0
+-	var buf bytes.Buffer
+-	writer := NewWriter(&buf)
+-	if err := writer.WriteHeader(hdr); err != nil {
+-		t.Fatal(err)
+-	}
+-	if err := writer.Close(); err != nil {
+-		t.Fatal(err)
+-	}
+-	// Simple test to make sure PAX extensions are in effect
+-	if !bytes.Contains(buf.Bytes(), []byte("PaxHeaders.")) {
+-		t.Fatal("Expected at least one PAX header to be written.")
+-	}
+-	// Test that we can get a long name back out of the archive.
+-	reader := NewReader(&buf)
+-	hdr, err = reader.Next()
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	if hdr.Linkname != longLinkname {
+-		t.Fatal("Couldn't recover long link name")
+-	}
+-}
+-
+-func TestPaxNonAscii(t *testing.T) {
+-	// Create an archive with non ascii. These should trigger a pax header
+-	// because pax headers have a defined utf-8 encoding.
+-	fileinfo, err := os.Stat("testdata/small.txt")
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-
+-	hdr, err := FileInfoHeader(fileinfo, "")
+-	if err != nil {
+-		t.Fatalf("os.Stat:1 %v", err)
+-	}
+-
+-	// some sample data
+-	chineseFilename := "文件名"
+-	chineseGroupname := "組"
+-	chineseUsername := "用戶名"
+-
+-	hdr.Name = chineseFilename
+-	hdr.Gname = chineseGroupname
+-	hdr.Uname = chineseUsername
+-
+-	contents := strings.Repeat(" ", int(hdr.Size))
+-
+-	var buf bytes.Buffer
+-	writer := NewWriter(&buf)
+-	if err := writer.WriteHeader(hdr); err != nil {
+-		t.Fatal(err)
+-	}
+-	if _, err = writer.Write([]byte(contents)); err != nil {
+-		t.Fatal(err)
+-	}
+-	if err := writer.Close(); err != nil {
+-		t.Fatal(err)
+-	}
+-	// Simple test to make sure PAX extensions are in effect
+-	if !bytes.Contains(buf.Bytes(), []byte("PaxHeaders.")) {
+-		t.Fatal("Expected at least one PAX header to be written.")
+-	}
+-	// Test that we can get a long name back out of the archive.
+-	reader := NewReader(&buf)
+-	hdr, err = reader.Next()
+-	if err != nil {
+-		t.Fatal(err)
+-	}
+-	if hdr.Name != chineseFilename {
+-		t.Fatal("Couldn't recover unicode name")
+-	}
+-	if hdr.Gname != chineseGroupname {
+-		t.Fatal("Couldn't recover unicode group")
+-	}
+-	if hdr.Uname != chineseUsername {
+-		t.Fatal("Couldn't recover unicode user")
+-	}
+-}
+-
+-func TestPAXHeader(t *testing.T) {
+-	medName := strings.Repeat("CD", 50)
+-	longName := strings.Repeat("AB", 100)
+-	paxTests := [][3]string{
+-		{PAX_PATH, "/etc/hosts", "19 path=/etc/hosts\n"},
+-		{"a", "b", "6 a=b\n"},          // Single digit length
+-		{"a", "names", "11 a=names\n"}, // Test case involving carries
+-		{PAX_PATH, longName, fmt.Sprintf("210 path=%s\n", longName)},
+-		{PAX_PATH, medName, fmt.Sprintf("110 path=%s\n", medName)}}
+-
+-	for _, test := range paxTests {
+-		field, key, expected := test[0], test[1], test[2]
+-		if result := paxHeader(field, key); result != expected {
+-			t.Fatalf("paxHeader: got %s, expected %s", result, expected)
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/context/context.go docker-devmapper/vendor/src/github.com/gorilla/context/context.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/context/context.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/context/context.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,112 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package context
+-
+-import (
+-	"net/http"
+-	"sync"
+-	"time"
+-)
+-
+-var (
+-	mutex sync.Mutex
+-	data  = make(map[*http.Request]map[interface{}]interface{})
+-	datat = make(map[*http.Request]int64)
+-)
+-
+-// Set stores a value for a given key in a given request.
+-func Set(r *http.Request, key, val interface{}) {
+-	mutex.Lock()
+-	defer mutex.Unlock()
+-	if data[r] == nil {
+-		data[r] = make(map[interface{}]interface{})
+-		datat[r] = time.Now().Unix()
+-	}
+-	data[r][key] = val
+-}
+-
+-// Get returns a value stored for a given key in a given request.
+-func Get(r *http.Request, key interface{}) interface{} {
+-	mutex.Lock()
+-	defer mutex.Unlock()
+-	if data[r] != nil {
+-		return data[r][key]
+-	}
+-	return nil
+-}
+-
+-// GetOk returns stored value and presence state like multi-value return of map access.
+-func GetOk(r *http.Request, key interface{}) (interface{}, bool) {
+-	mutex.Lock()
+-	defer mutex.Unlock()
+-	if _, ok := data[r]; ok {
+-		value, ok := data[r][key]
+-		return value, ok
+-	}
+-	return nil, false
+-}
+-
+-// Delete removes a value stored for a given key in a given request.
+-func Delete(r *http.Request, key interface{}) {
+-	mutex.Lock()
+-	defer mutex.Unlock()
+-	if data[r] != nil {
+-		delete(data[r], key)
+-	}
+-}
+-
+-// Clear removes all values stored for a given request.
+-//
+-// This is usually called by a handler wrapper to clean up request
+-// variables at the end of a request lifetime. See ClearHandler().
+-func Clear(r *http.Request) {
+-	mutex.Lock()
+-	defer mutex.Unlock()
+-	clear(r)
+-}
+-
+-// clear is Clear without the lock.
+-func clear(r *http.Request) {
+-	delete(data, r)
+-	delete(datat, r)
+-}
+-
+-// Purge removes request data stored for longer than maxAge, in seconds.
+-// It returns the amount of requests removed.
+-//
+-// If maxAge <= 0, all request data is removed.
+-//
+-// This is only used for sanity check: in case context cleaning was not
+-// properly set some request data can be kept forever, consuming an increasing
+-// amount of memory. In case this is detected, Purge() must be called
+-// periodically until the problem is fixed.
+-func Purge(maxAge int) int {
+-	mutex.Lock()
+-	defer mutex.Unlock()
+-	count := 0
+-	if maxAge <= 0 {
+-		count = len(data)
+-		data = make(map[*http.Request]map[interface{}]interface{})
+-		datat = make(map[*http.Request]int64)
+-	} else {
+-		min := time.Now().Unix() - int64(maxAge)
+-		for r, _ := range data {
+-			if datat[r] < min {
+-				clear(r)
+-				count++
+-			}
+-		}
+-	}
+-	return count
+-}
+-
+-// ClearHandler wraps an http.Handler and clears request values at the end
+-// of a request lifetime.
+-func ClearHandler(h http.Handler) http.Handler {
+-	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+-		defer Clear(r)
+-		h.ServeHTTP(w, r)
+-	})
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/context/context_test.go docker-devmapper/vendor/src/github.com/gorilla/context/context_test.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/context/context_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/context/context_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,66 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package context
+-
+-import (
+-	"net/http"
+-	"testing"
+-)
+-
+-type keyType int
+-
+-const (
+-	key1 keyType = iota
+-	key2
+-)
+-
+-func TestContext(t *testing.T) {
+-	assertEqual := func(val interface{}, exp interface{}) {
+-		if val != exp {
+-			t.Errorf("Expected %v, got %v.", exp, val)
+-		}
+-	}
+-
+-	r, _ := http.NewRequest("GET", "http://localhost:8080/", nil)
+-
+-	// Get()
+-	assertEqual(Get(r, key1), nil)
+-
+-	// Set()
+-	Set(r, key1, "1")
+-	assertEqual(Get(r, key1), "1")
+-	assertEqual(len(data[r]), 1)
+-
+-	Set(r, key2, "2")
+-	assertEqual(Get(r, key2), "2")
+-	assertEqual(len(data[r]), 2)
+-
+-	//GetOk
+-	value, ok := GetOk(r, key1)
+-	assertEqual(value, "1")
+-	assertEqual(ok, true)
+-
+-	value, ok = GetOk(r, "not exists")
+-	assertEqual(value, nil)
+-	assertEqual(ok, false)
+-
+-	Set(r, "nil value", nil)
+-	value, ok = GetOk(r, "nil value")
+-	assertEqual(value, nil)
+-	assertEqual(ok, true)
+-
+-	// Delete()
+-	Delete(r, key1)
+-	assertEqual(Get(r, key1), nil)
+-	assertEqual(len(data[r]), 2)
+-
+-	Delete(r, key2)
+-	assertEqual(Get(r, key2), nil)
+-	assertEqual(len(data[r]), 1)
+-
+-	// Clear()
+-	Clear(r)
+-	assertEqual(len(data), 0)
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/context/doc.go docker-devmapper/vendor/src/github.com/gorilla/context/doc.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/context/doc.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/context/doc.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,82 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-/*
+-Package gorilla/context stores values shared during a request lifetime.
+-
+-For example, a router can set variables extracted from the URL and later
+-application handlers can access those values, or it can be used to store
+-sessions values to be saved at the end of a request. There are several
+-others common uses.
+-
+-The idea was posted by Brad Fitzpatrick to the go-nuts mailing list:
+-
+-	http://groups.google.com/group/golang-nuts/msg/e2d679d303aa5d53
+-
+-Here's the basic usage: first define the keys that you will need. The key
+-type is interface{} so a key can be of any type that supports equality.
+-Here we define a key using a custom int type to avoid name collisions:
+-
+-	package foo
+-
+-	import (
+-		"github.com/gorilla/context"
+-	)
+-
+-	type key int
+-
+-	const MyKey key = 0
+-
+-Then set a variable. Variables are bound to an http.Request object, so you
+-need a request instance to set a value:
+-
+-	context.Set(r, MyKey, "bar")
+-
+-The application can later access the variable using the same key you provided:
+-
+-	func MyHandler(w http.ResponseWriter, r *http.Request) {
+-		// val is "bar".
+-		val := context.Get(r, foo.MyKey)
+-
+-		// returns ("bar", true)
+-		val, ok := context.GetOk(r, foo.MyKey)
+-		// ...
+-	}
+-
+-And that's all about the basic usage. We discuss some other ideas below.
+-
+-Any type can be stored in the context. To enforce a given type, make the key
+-private and wrap Get() and Set() to accept and return values of a specific
+-type:
+-
+-	type key int
+-
+-	const mykey key = 0
+-
+-	// GetMyKey returns a value for this package from the request values.
+-	func GetMyKey(r *http.Request) SomeType {
+-		if rv := context.Get(r, mykey); rv != nil {
+-			return rv.(SomeType)
+-		}
+-		return nil
+-	}
+-
+-	// SetMyKey sets a value for this package in the request values.
+-	func SetMyKey(r *http.Request, val SomeType) {
+-		context.Set(r, mykey, val)
+-	}
+-
+-Variables must be cleared at the end of a request, to remove all values
+-that were stored. This can be done in an http.Handler, after a request was
+-served. Just call Clear() passing the request:
+-
+-	context.Clear(r)
+-
+-...or use ClearHandler(), which conveniently wraps an http.Handler to clear
+-variables at the end of a request lifetime.
+-
+-The Routers from the packages gorilla/mux and gorilla/pat call Clear()
+-so if you are using either of them you don't need to clear the context manually.
+-*/
+-package context
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/context/LICENSE docker-devmapper/vendor/src/github.com/gorilla/context/LICENSE
+--- docker-0.6.2/vendor/src/github.com/gorilla/context/LICENSE	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/context/LICENSE	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-Copyright (c) 2012 Rodrigo Moraes. All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions are
+-met:
+-
+-	 * Redistributions of source code must retain the above copyright
+-notice, this list of conditions and the following disclaimer.
+-	 * Redistributions in binary form must reproduce the above
+-copyright notice, this list of conditions and the following disclaimer
+-in the documentation and/or other materials provided with the
+-distribution.
+-	 * Neither the name of Google Inc. nor the names of its
+-contributors may be used to endorse or promote products derived from
+-this software without specific prior written permission.
+-
+-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/context/README.md docker-devmapper/vendor/src/github.com/gorilla/context/README.md
+--- docker-0.6.2/vendor/src/github.com/gorilla/context/README.md	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/context/README.md	1969-12-31 18:00:00.000000000 -0600
+@@ -1,6 +0,0 @@
+-context
+-=======
+-
+-gorilla/context is a general purpose registry for global request variables.
+-
+-Read the full documentation here: http://www.gorillatoolkit.org/pkg/context
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/bench_test.go docker-devmapper/vendor/src/github.com/gorilla/mux/bench_test.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/bench_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/bench_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,21 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package mux
+-
+-import (
+-	"net/http"
+-	"testing"
+-)
+-
+-func BenchmarkMux(b *testing.B) {
+-	router := new(Router)
+-	handler := func(w http.ResponseWriter, r *http.Request) {}
+-	router.HandleFunc("/v1/{v1}", handler)
+-
+-	request, _ := http.NewRequest("GET", "/v1/anything", nil)
+-	for i := 0; i < b.N; i++ {
+-		router.ServeHTTP(nil, request)
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/doc.go docker-devmapper/vendor/src/github.com/gorilla/mux/doc.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/doc.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/doc.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,199 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-/*
+-Package gorilla/mux implements a request router and dispatcher.
+-
+-The name mux stands for "HTTP request multiplexer". Like the standard
+-http.ServeMux, mux.Router matches incoming requests against a list of
+-registered routes and calls a handler for the route that matches the URL
+-or other conditions. The main features are:
+-
+-	* Requests can be matched based on URL host, path, path prefix, schemes,
+-	  header and query values, HTTP methods or using custom matchers.
+-	* URL hosts and paths can have variables with an optional regular
+-	  expression.
+-	* Registered URLs can be built, or "reversed", which helps maintaining
+-	  references to resources.
+-	* Routes can be used as subrouters: nested routes are only tested if the
+-	  parent route matches. This is useful to define groups of routes that
+-	  share common conditions like a host, a path prefix or other repeated
+-	  attributes. As a bonus, this optimizes request matching.
+-	* It implements the http.Handler interface so it is compatible with the
+-	  standard http.ServeMux.
+-
+-Let's start registering a couple of URL paths and handlers:
+-
+-	func main() {
+-		r := mux.NewRouter()
+-		r.HandleFunc("/", HomeHandler)
+-		r.HandleFunc("/products", ProductsHandler)
+-		r.HandleFunc("/articles", ArticlesHandler)
+-		http.Handle("/", r)
+-	}
+-
+-Here we register three routes mapping URL paths to handlers. This is
+-equivalent to how http.HandleFunc() works: if an incoming request URL matches
+-one of the paths, the corresponding handler is called passing
+-(http.ResponseWriter, *http.Request) as parameters.
+-
+-Paths can have variables. They are defined using the format {name} or
+-{name:pattern}. If a regular expression pattern is not defined, the matched
+-variable will be anything until the next slash. For example:
+-
+-	r := mux.NewRouter()
+-	r.HandleFunc("/products/{key}", ProductHandler)
+-	r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler)
+-	r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler)
+-
+-The names are used to create a map of route variables which can be retrieved
+-calling mux.Vars():
+-
+-	vars := mux.Vars(request)
+-	category := vars["category"]
+-
+-And this is all you need to know about the basic usage. More advanced options
+-are explained below.
+-
+-Routes can also be restricted to a domain or subdomain. Just define a host
+-pattern to be matched. They can also have variables:
+-
+-	r := mux.NewRouter()
+-	// Only matches if domain is "www.domain.com".
+-	r.Host("www.domain.com")
+-	// Matches a dynamic subdomain.
+-	r.Host("{subdomain:[a-z]+}.domain.com")
+-
+-There are several other matchers that can be added. To match path prefixes:
+-
+-	r.PathPrefix("/products/")
+-
+-...or HTTP methods:
+-
+-	r.Methods("GET", "POST")
+-
+-...or URL schemes:
+-
+-	r.Schemes("https")
+-
+-...or header values:
+-
+-	r.Headers("X-Requested-With", "XMLHttpRequest")
+-
+-...or query values:
+-
+-	r.Queries("key", "value")
+-
+-...or to use a custom matcher function:
+-
+-	r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool {
+-		return r.ProtoMajor == 0
+-    })
+-
+-...and finally, it is possible to combine several matchers in a single route:
+-
+-	r.HandleFunc("/products", ProductsHandler).
+-	  Host("www.domain.com").
+-	  Methods("GET").
+-	  Schemes("http")
+-
+-Setting the same matching conditions again and again can be boring, so we have
+-a way to group several routes that share the same requirements.
+-We call it "subrouting".
+-
+-For example, let's say we have several URLs that should only match when the
+-host is "www.domain.com". Create a route for that host and get a "subrouter"
+-from it:
+-
+-	r := mux.NewRouter()
+-	s := r.Host("www.domain.com").Subrouter()
+-
+-Then register routes in the subrouter:
+-
+-	s.HandleFunc("/products/", ProductsHandler)
+-	s.HandleFunc("/products/{key}", ProductHandler)
+-	s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler)
+-
+-The three URL paths we registered above will only be tested if the domain is
+-"www.domain.com", because the subrouter is tested first. This is not
+-only convenient, but also optimizes request matching. You can create
+-subrouters combining any attribute matchers accepted by a route.
+-
+-Subrouters can be used to create domain or path "namespaces": you define
+-subrouters in a central place and then parts of the app can register its
+-paths relatively to a given subrouter.
+-
+-There's one more thing about subroutes. When a subrouter has a path prefix,
+-the inner routes use it as base for their paths:
+-
+-	r := mux.NewRouter()
+-	s := r.PathPrefix("/products").Subrouter()
+-	// "/products/"
+-	s.HandleFunc("/", ProductsHandler)
+-	// "/products/{key}/"
+-	s.HandleFunc("/{key}/", ProductHandler)
+-	// "/products/{key}/details"
+-	s.HandleFunc("/{key}/details"), ProductDetailsHandler)
+-
+-Now let's see how to build registered URLs.
+-
+-Routes can be named. All routes that define a name can have their URLs built,
+-or "reversed". We define a name calling Name() on a route. For example:
+-
+-	r := mux.NewRouter()
+-	r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler).
+-	  Name("article")
+-
+-To build a URL, get the route and call the URL() method, passing a sequence of
+-key/value pairs for the route variables. For the previous route, we would do:
+-
+-	url, err := r.Get("article").URL("category", "technology", "id", "42")
+-
+-...and the result will be a url.URL with the following path:
+-
+-	"/articles/technology/42"
+-
+-This also works for host variables:
+-
+-	r := mux.NewRouter()
+-	r.Host("{subdomain}.domain.com").
+-	  Path("/articles/{category}/{id:[0-9]+}").
+-	  HandlerFunc(ArticleHandler).
+-	  Name("article")
+-
+-	// url.String() will be "http://news.domain.com/articles/technology/42"
+-	url, err := r.Get("article").URL("subdomain", "news",
+-									 "category", "technology",
+-									 "id", "42")
+-
+-All variables defined in the route are required, and their values must
+-conform to the corresponding patterns. These requirements guarantee that a
+-generated URL will always match a registered route -- the only exception is
+-for explicitly defined "build-only" routes which never match.
+-
+-There's also a way to build only the URL host or path for a route:
+-use the methods URLHost() or URLPath() instead. For the previous route,
+-we would do:
+-
+-	// "http://news.domain.com/"
+-	host, err := r.Get("article").URLHost("subdomain", "news")
+-
+-	// "/articles/technology/42"
+-	path, err := r.Get("article").URLPath("category", "technology", "id", "42")
+-
+-And if you use subrouters, host and path defined separately can be built
+-as well:
+-
+-	r := mux.NewRouter()
+-	s := r.Host("{subdomain}.domain.com").Subrouter()
+-	s.Path("/articles/{category}/{id:[0-9]+}").
+-	  HandlerFunc(ArticleHandler).
+-	  Name("article")
+-
+-	// "http://news.domain.com/articles/technology/42"
+-	url, err := r.Get("article").URL("subdomain", "news",
+-									 "category", "technology",
+-									 "id", "42")
+-*/
+-package mux
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/LICENSE docker-devmapper/vendor/src/github.com/gorilla/mux/LICENSE
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/LICENSE	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/LICENSE	1969-12-31 18:00:00.000000000 -0600
+@@ -1,27 +0,0 @@
+-Copyright (c) 2012 Rodrigo Moraes. All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions are
+-met:
+-
+-	 * Redistributions of source code must retain the above copyright
+-notice, this list of conditions and the following disclaimer.
+-	 * Redistributions in binary form must reproduce the above
+-copyright notice, this list of conditions and the following disclaimer
+-in the documentation and/or other materials provided with the
+-distribution.
+-	 * Neither the name of Google Inc. nor the names of its
+-contributors may be used to endorse or promote products derived from
+-this software without specific prior written permission.
+-
+-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/mux.go docker-devmapper/vendor/src/github.com/gorilla/mux/mux.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/mux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/mux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,335 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package mux
+-
+-import (
+-	"fmt"
+-	"net/http"
+-	"path"
+-
+-	"github.com/gorilla/context"
+-)
+-
+-// NewRouter returns a new router instance.
+-func NewRouter() *Router {
+-	return &Router{namedRoutes: make(map[string]*Route)}
+-}
+-
+-// Router registers routes to be matched and dispatches a handler.
+-//
+-// It implements the http.Handler interface, so it can be registered to serve
+-// requests:
+-//
+-//     var router = mux.NewRouter()
+-//
+-//     func main() {
+-//         http.Handle("/", router)
+-//     }
+-//
+-// Or, for Google App Engine, register it in a init() function:
+-//
+-//     func init() {
+-//         http.Handle("/", router)
+-//     }
+-//
+-// This will send all incoming requests to the router.
+-type Router struct {
+-	// Configurable Handler to be used when no route matches.
+-	NotFoundHandler http.Handler
+-	// Parent route, if this is a subrouter.
+-	parent parentRoute
+-	// Routes to be matched, in order.
+-	routes []*Route
+-	// Routes by name for URL building.
+-	namedRoutes map[string]*Route
+-	// See Router.StrictSlash(). This defines the flag for new routes.
+-	strictSlash bool
+-}
+-
+-// Match matches registered routes against the request.
+-func (r *Router) Match(req *http.Request, match *RouteMatch) bool {
+-	for _, route := range r.routes {
+-		if route.Match(req, match) {
+-			return true
+-		}
+-	}
+-	return false
+-}
+-
+-// ServeHTTP dispatches the handler registered in the matched route.
+-//
+-// When there is a match, the route variables can be retrieved calling
+-// mux.Vars(request).
+-func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
+-	// Clean path to canonical form and redirect.
+-	if p := cleanPath(req.URL.Path); p != req.URL.Path {
+-		w.Header().Set("Location", p)
+-		w.WriteHeader(http.StatusMovedPermanently)
+-		return
+-	}
+-	var match RouteMatch
+-	var handler http.Handler
+-	if r.Match(req, &match) {
+-		handler = match.Handler
+-		setVars(req, match.Vars)
+-		setCurrentRoute(req, match.Route)
+-	}
+-	if handler == nil {
+-		if r.NotFoundHandler == nil {
+-			r.NotFoundHandler = http.NotFoundHandler()
+-		}
+-		handler = r.NotFoundHandler
+-	}
+-	defer context.Clear(req)
+-	handler.ServeHTTP(w, req)
+-}
+-
+-// Get returns a route registered with the given name.
+-func (r *Router) Get(name string) *Route {
+-	return r.getNamedRoutes()[name]
+-}
+-
+-// GetRoute returns a route registered with the given name. This method
+-// was renamed to Get() and remains here for backwards compatibility.
+-func (r *Router) GetRoute(name string) *Route {
+-	return r.getNamedRoutes()[name]
+-}
+-
+-// StrictSlash defines the slash behavior for new routes.
+-//
+-// When true, if the route path is "/path/", accessing "/path" will redirect
+-// to the former and vice versa.
+-//
+-// Special case: when a route sets a path prefix, strict slash is
+-// automatically set to false for that route because the redirect behavior
+-// can't be determined for prefixes.
+-func (r *Router) StrictSlash(value bool) *Router {
+-	r.strictSlash = value
+-	return r
+-}
+-
+-// ----------------------------------------------------------------------------
+-// parentRoute
+-// ----------------------------------------------------------------------------
+-
+-// getNamedRoutes returns the map where named routes are registered.
+-func (r *Router) getNamedRoutes() map[string]*Route {
+-	if r.namedRoutes == nil {
+-		if r.parent != nil {
+-			r.namedRoutes = r.parent.getNamedRoutes()
+-		} else {
+-			r.namedRoutes = make(map[string]*Route)
+-		}
+-	}
+-	return r.namedRoutes
+-}
+-
+-// getRegexpGroup returns regexp definitions from the parent route, if any.
+-func (r *Router) getRegexpGroup() *routeRegexpGroup {
+-	if r.parent != nil {
+-		return r.parent.getRegexpGroup()
+-	}
+-	return nil
+-}
+-
+-// ----------------------------------------------------------------------------
+-// Route factories
+-// ----------------------------------------------------------------------------
+-
+-// NewRoute registers an empty route.
+-func (r *Router) NewRoute() *Route {
+-	route := &Route{parent: r, strictSlash: r.strictSlash}
+-	r.routes = append(r.routes, route)
+-	return route
+-}
+-
+-// Handle registers a new route with a matcher for the URL path.
+-// See Route.Path() and Route.Handler().
+-func (r *Router) Handle(path string, handler http.Handler) *Route {
+-	return r.NewRoute().Path(path).Handler(handler)
+-}
+-
+-// HandleFunc registers a new route with a matcher for the URL path.
+-// See Route.Path() and Route.HandlerFunc().
+-func (r *Router) HandleFunc(path string, f func(http.ResponseWriter,
+-	*http.Request)) *Route {
+-	return r.NewRoute().Path(path).HandlerFunc(f)
+-}
+-
+-// Headers registers a new route with a matcher for request header values.
+-// See Route.Headers().
+-func (r *Router) Headers(pairs ...string) *Route {
+-	return r.NewRoute().Headers(pairs...)
+-}
+-
+-// Host registers a new route with a matcher for the URL host.
+-// See Route.Host().
+-func (r *Router) Host(tpl string) *Route {
+-	return r.NewRoute().Host(tpl)
+-}
+-
+-// MatcherFunc registers a new route with a custom matcher function.
+-// See Route.MatcherFunc().
+-func (r *Router) MatcherFunc(f MatcherFunc) *Route {
+-	return r.NewRoute().MatcherFunc(f)
+-}
+-
+-// Methods registers a new route with a matcher for HTTP methods.
+-// See Route.Methods().
+-func (r *Router) Methods(methods ...string) *Route {
+-	return r.NewRoute().Methods(methods...)
+-}
+-
+-// Path registers a new route with a matcher for the URL path.
+-// See Route.Path().
+-func (r *Router) Path(tpl string) *Route {
+-	return r.NewRoute().Path(tpl)
+-}
+-
+-// PathPrefix registers a new route with a matcher for the URL path prefix.
+-// See Route.PathPrefix().
+-func (r *Router) PathPrefix(tpl string) *Route {
+-	return r.NewRoute().PathPrefix(tpl)
+-}
+-
+-// Queries registers a new route with a matcher for URL query values.
+-// See Route.Queries().
+-func (r *Router) Queries(pairs ...string) *Route {
+-	return r.NewRoute().Queries(pairs...)
+-}
+-
+-// Schemes registers a new route with a matcher for URL schemes.
+-// See Route.Schemes().
+-func (r *Router) Schemes(schemes ...string) *Route {
+-	return r.NewRoute().Schemes(schemes...)
+-}
+-
+-// ----------------------------------------------------------------------------
+-// Context
+-// ----------------------------------------------------------------------------
+-
+-// RouteMatch stores information about a matched route.
+-type RouteMatch struct {
+-	Route   *Route
+-	Handler http.Handler
+-	Vars    map[string]string
+-}
+-
+-type contextKey int
+-
+-const (
+-	varsKey contextKey = iota
+-	routeKey
+-)
+-
+-// Vars returns the route variables for the current request, if any.
+-func Vars(r *http.Request) map[string]string {
+-	if rv := context.Get(r, varsKey); rv != nil {
+-		return rv.(map[string]string)
+-	}
+-	return nil
+-}
+-
+-// CurrentRoute returns the matched route for the current request, if any.
+-func CurrentRoute(r *http.Request) *Route {
+-	if rv := context.Get(r, routeKey); rv != nil {
+-		return rv.(*Route)
+-	}
+-	return nil
+-}
+-
+-func setVars(r *http.Request, val interface{}) {
+-	context.Set(r, varsKey, val)
+-}
+-
+-func setCurrentRoute(r *http.Request, val interface{}) {
+-	context.Set(r, routeKey, val)
+-}
+-
+-// ----------------------------------------------------------------------------
+-// Helpers
+-// ----------------------------------------------------------------------------
+-
+-// cleanPath returns the canonical path for p, eliminating . and .. elements.
+-// Borrowed from the net/http package.
+-func cleanPath(p string) string {
+-	if p == "" {
+-		return "/"
+-	}
+-	if p[0] != '/' {
+-		p = "/" + p
+-	}
+-	np := path.Clean(p)
+-	// path.Clean removes trailing slash except for root;
+-	// put the trailing slash back if necessary.
+-	if p[len(p)-1] == '/' && np != "/" {
+-		np += "/"
+-	}
+-	return np
+-}
+-
+-// uniqueVars returns an error if two slices contain duplicated strings.
+-func uniqueVars(s1, s2 []string) error {
+-	for _, v1 := range s1 {
+-		for _, v2 := range s2 {
+-			if v1 == v2 {
+-				return fmt.Errorf("mux: duplicated route variable %q", v2)
+-			}
+-		}
+-	}
+-	return nil
+-}
+-
+-// mapFromPairs converts variadic string parameters to a string map.
+-func mapFromPairs(pairs ...string) (map[string]string, error) {
+-	length := len(pairs)
+-	if length%2 != 0 {
+-		return nil, fmt.Errorf(
+-			"mux: number of parameters must be multiple of 2, got %v", pairs)
+-	}
+-	m := make(map[string]string, length/2)
+-	for i := 0; i < length; i += 2 {
+-		m[pairs[i]] = pairs[i+1]
+-	}
+-	return m, nil
+-}
+-
+-// matchInArray returns true if the given string value is in the array.
+-func matchInArray(arr []string, value string) bool {
+-	for _, v := range arr {
+-		if v == value {
+-			return true
+-		}
+-	}
+-	return false
+-}
+-
+-// matchMap returns true if the given key/value pairs exist in a given map.
+-func matchMap(toCheck map[string]string, toMatch map[string][]string,
+-	canonicalKey bool) bool {
+-	for k, v := range toCheck {
+-		// Check if key exists.
+-		if canonicalKey {
+-			k = http.CanonicalHeaderKey(k)
+-		}
+-		if values := toMatch[k]; values == nil {
+-			return false
+-		} else if v != "" {
+-			// If value was defined as an empty string we only check that the
+-			// key exists. Otherwise we also check for equality.
+-			valueExists := false
+-			for _, value := range values {
+-				if v == value {
+-					valueExists = true
+-					break
+-				}
+-			}
+-			if !valueExists {
+-				return false
+-			}
+-		}
+-	}
+-	return true
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/mux_test.go docker-devmapper/vendor/src/github.com/gorilla/mux/mux_test.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/mux_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/mux_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,723 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package mux
+-
+-import (
+-	"fmt"
+-	"net/http"
+-	"testing"
+-)
+-
+-type routeTest struct {
+-	title       string            // title of the test
+-	route       *Route            // the route being tested
+-	request     *http.Request     // a request to test the route
+-	vars        map[string]string // the expected vars of the match
+-	host        string            // the expected host of the match
+-	path        string            // the expected path of the match
+-	shouldMatch bool              // whether the request is expected to match the route at all
+-}
+-
+-func TestHost(t *testing.T) {
+-	// newRequestHost a new request with a method, url, and host header
+-	newRequestHost := func(method, url, host string) *http.Request {
+-		req, err := http.NewRequest(method, url, nil)
+-		if err != nil {
+-			panic(err)
+-		}
+-		req.Host = host
+-		return req
+-	}
+-
+-	tests := []routeTest{
+-		{
+-			title:       "Host route match",
+-			route:       new(Route).Host("aaa.bbb.ccc"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host route, wrong host in request URL",
+-			route:       new(Route).Host("aaa.bbb.ccc"),
+-			request:     newRequest("GET", "http://aaa.222.ccc/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Host route with port, match",
+-			route:       new(Route).Host("aaa.bbb.ccc:1234"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc:1234/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "aaa.bbb.ccc:1234",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host route with port, wrong port in request URL",
+-			route:       new(Route).Host("aaa.bbb.ccc:1234"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc:9999/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "aaa.bbb.ccc:1234",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Host route, match with host in request header",
+-			route:       new(Route).Host("aaa.bbb.ccc"),
+-			request:     newRequestHost("GET", "/111/222/333", "aaa.bbb.ccc"),
+-			vars:        map[string]string{},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host route, wrong host in request header",
+-			route:       new(Route).Host("aaa.bbb.ccc"),
+-			request:     newRequestHost("GET", "/111/222/333", "aaa.222.ccc"),
+-			vars:        map[string]string{},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-		// BUG {new(Route).Host("aaa.bbb.ccc:1234"), newRequestHost("GET", "/111/222/333", "aaa.bbb.ccc:1234"), map[string]string{}, "aaa.bbb.ccc:1234", "", true},
+-		{
+-			title:       "Host route with port, wrong host in request header",
+-			route:       new(Route).Host("aaa.bbb.ccc:1234"),
+-			request:     newRequestHost("GET", "/111/222/333", "aaa.bbb.ccc:9999"),
+-			vars:        map[string]string{},
+-			host:        "aaa.bbb.ccc:1234",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Host route with pattern, match",
+-			route:       new(Route).Host("aaa.{v1:[a-z]{3}}.ccc"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "bbb"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host route with pattern, wrong host in request URL",
+-			route:       new(Route).Host("aaa.{v1:[a-z]{3}}.ccc"),
+-			request:     newRequest("GET", "http://aaa.222.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "bbb"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Host route with multiple patterns, match",
+-			route:       new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host route with multiple patterns, wrong host in request URL",
+-			route:       new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}"),
+-			request:     newRequest("GET", "http://aaa.222.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-	}
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestPath(t *testing.T) {
+-	tests := []routeTest{
+-		{
+-			title:       "Path route, match",
+-			route:       new(Route).Path("/111/222/333"),
+-			request:     newRequest("GET", "http://localhost/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "/111/222/333",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Path route, wrong path in request in request URL",
+-			route:       new(Route).Path("/111/222/333"),
+-			request:     newRequest("GET", "http://localhost/1/2/3"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "/111/222/333",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Path route with pattern, match",
+-			route:       new(Route).Path("/111/{v1:[0-9]{3}}/333"),
+-			request:     newRequest("GET", "http://localhost/111/222/333"),
+-			vars:        map[string]string{"v1": "222"},
+-			host:        "",
+-			path:        "/111/222/333",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Path route with pattern, URL in request does not match",
+-			route:       new(Route).Path("/111/{v1:[0-9]{3}}/333"),
+-			request:     newRequest("GET", "http://localhost/111/aaa/333"),
+-			vars:        map[string]string{"v1": "222"},
+-			host:        "",
+-			path:        "/111/222/333",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Path route with multiple patterns, match",
+-			route:       new(Route).Path("/{v1:[0-9]{3}}/{v2:[0-9]{3}}/{v3:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://localhost/111/222/333"),
+-			vars:        map[string]string{"v1": "111", "v2": "222", "v3": "333"},
+-			host:        "",
+-			path:        "/111/222/333",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Path route with multiple patterns, URL in request does not match",
+-			route:       new(Route).Path("/{v1:[0-9]{3}}/{v2:[0-9]{3}}/{v3:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://localhost/111/aaa/333"),
+-			vars:        map[string]string{"v1": "111", "v2": "222", "v3": "333"},
+-			host:        "",
+-			path:        "/111/222/333",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestPathPrefix(t *testing.T) {
+-	tests := []routeTest{
+-		{
+-			title:       "PathPrefix route, match",
+-			route:       new(Route).PathPrefix("/111"),
+-			request:     newRequest("GET", "http://localhost/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "/111",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "PathPrefix route, URL prefix in request does not match",
+-			route:       new(Route).PathPrefix("/111"),
+-			request:     newRequest("GET", "http://localhost/1/2/3"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "/111",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "PathPrefix route with pattern, match",
+-			route:       new(Route).PathPrefix("/111/{v1:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://localhost/111/222/333"),
+-			vars:        map[string]string{"v1": "222"},
+-			host:        "",
+-			path:        "/111/222",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "PathPrefix route with pattern, URL prefix in request does not match",
+-			route:       new(Route).PathPrefix("/111/{v1:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://localhost/111/aaa/333"),
+-			vars:        map[string]string{"v1": "222"},
+-			host:        "",
+-			path:        "/111/222",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "PathPrefix route with multiple patterns, match",
+-			route:       new(Route).PathPrefix("/{v1:[0-9]{3}}/{v2:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://localhost/111/222/333"),
+-			vars:        map[string]string{"v1": "111", "v2": "222"},
+-			host:        "",
+-			path:        "/111/222",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "PathPrefix route with multiple patterns, URL prefix in request does not match",
+-			route:       new(Route).PathPrefix("/{v1:[0-9]{3}}/{v2:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://localhost/111/aaa/333"),
+-			vars:        map[string]string{"v1": "111", "v2": "222"},
+-			host:        "",
+-			path:        "/111/222",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestHostPath(t *testing.T) {
+-	tests := []routeTest{
+-		{
+-			title:       "Host and Path route, match",
+-			route:       new(Route).Host("aaa.bbb.ccc").Path("/111/222/333"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host and Path route, wrong host in request URL",
+-			route:       new(Route).Host("aaa.bbb.ccc").Path("/111/222/333"),
+-			request:     newRequest("GET", "http://aaa.222.ccc/111/222/333"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Host and Path route with pattern, match",
+-			route:       new(Route).Host("aaa.{v1:[a-z]{3}}.ccc").Path("/111/{v2:[0-9]{3}}/333"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "bbb", "v2": "222"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "/111/222/333",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host and Path route with pattern, URL in request does not match",
+-			route:       new(Route).Host("aaa.{v1:[a-z]{3}}.ccc").Path("/111/{v2:[0-9]{3}}/333"),
+-			request:     newRequest("GET", "http://aaa.222.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "bbb", "v2": "222"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "/111/222/333",
+-			shouldMatch: false,
+-		},
+-		{
+-			title:       "Host and Path route with multiple patterns, match",
+-			route:       new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}").Path("/{v4:[0-9]{3}}/{v5:[0-9]{3}}/{v6:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc", "v4": "111", "v5": "222", "v6": "333"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "/111/222/333",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Host and Path route with multiple patterns, URL in request does not match",
+-			route:       new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}").Path("/{v4:[0-9]{3}}/{v5:[0-9]{3}}/{v6:[0-9]{3}}"),
+-			request:     newRequest("GET", "http://aaa.222.ccc/111/222/333"),
+-			vars:        map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc", "v4": "111", "v5": "222", "v6": "333"},
+-			host:        "aaa.bbb.ccc",
+-			path:        "/111/222/333",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestHeaders(t *testing.T) {
+-	// newRequestHeaders creates a new request with a method, url, and headers
+-	newRequestHeaders := func(method, url string, headers map[string]string) *http.Request {
+-		req, err := http.NewRequest(method, url, nil)
+-		if err != nil {
+-			panic(err)
+-		}
+-		for k, v := range headers {
+-			req.Header.Add(k, v)
+-		}
+-		return req
+-	}
+-
+-	tests := []routeTest{
+-		{
+-			title:       "Headers route, match",
+-			route:       new(Route).Headers("foo", "bar", "baz", "ding"),
+-			request:     newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "bar", "baz": "ding"}),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Headers route, bad header values",
+-			route:       new(Route).Headers("foo", "bar", "baz", "ding"),
+-			request:     newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "bar", "baz": "dong"}),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-
+-}
+-
+-func TestMethods(t *testing.T) {
+-	tests := []routeTest{
+-		{
+-			title:       "Methods route, match GET",
+-			route:       new(Route).Methods("GET", "POST"),
+-			request:     newRequest("GET", "http://localhost"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Methods route, match POST",
+-			route:       new(Route).Methods("GET", "POST"),
+-			request:     newRequest("POST", "http://localhost"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Methods route, bad method",
+-			route:       new(Route).Methods("GET", "POST"),
+-			request:     newRequest("PUT", "http://localhost"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestQueries(t *testing.T) {
+-	tests := []routeTest{
+-		{
+-			title:       "Queries route, match",
+-			route:       new(Route).Queries("foo", "bar", "baz", "ding"),
+-			request:     newRequest("GET", "http://localhost?foo=bar&baz=ding"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Queries route, bad query",
+-			route:       new(Route).Queries("foo", "bar", "baz", "ding"),
+-			request:     newRequest("GET", "http://localhost?foo=bar&baz=dong"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestSchemes(t *testing.T) {
+-	tests := []routeTest{
+-		// Schemes
+-		{
+-			title:       "Schemes route, match https",
+-			route:       new(Route).Schemes("https", "ftp"),
+-			request:     newRequest("GET", "https://localhost"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Schemes route, match ftp",
+-			route:       new(Route).Schemes("https", "ftp"),
+-			request:     newRequest("GET", "ftp://localhost"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "Schemes route, bad scheme",
+-			route:       new(Route).Schemes("https", "ftp"),
+-			request:     newRequest("GET", "http://localhost"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-	}
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestMatcherFunc(t *testing.T) {
+-	m := func(r *http.Request, m *RouteMatch) bool {
+-		if r.URL.Host == "aaa.bbb.ccc" {
+-			return true
+-		}
+-		return false
+-	}
+-
+-	tests := []routeTest{
+-		{
+-			title:       "MatchFunc route, match",
+-			route:       new(Route).MatcherFunc(m),
+-			request:     newRequest("GET", "http://aaa.bbb.ccc"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: true,
+-		},
+-		{
+-			title:       "MatchFunc route, non-match",
+-			route:       new(Route).MatcherFunc(m),
+-			request:     newRequest("GET", "http://aaa.222.ccc"),
+-			vars:        map[string]string{},
+-			host:        "",
+-			path:        "",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestSubRouter(t *testing.T) {
+-	subrouter1 := new(Route).Host("{v1:[a-z]+}.google.com").Subrouter()
+-	subrouter2 := new(Route).PathPrefix("/foo/{v1}").Subrouter()
+-
+-	tests := []routeTest{
+-		{
+-			route:       subrouter1.Path("/{v2:[a-z]+}"),
+-			request:     newRequest("GET", "http://aaa.google.com/bbb"),
+-			vars:        map[string]string{"v1": "aaa", "v2": "bbb"},
+-			host:        "aaa.google.com",
+-			path:        "/bbb",
+-			shouldMatch: true,
+-		},
+-		{
+-			route:       subrouter1.Path("/{v2:[a-z]+}"),
+-			request:     newRequest("GET", "http://111.google.com/111"),
+-			vars:        map[string]string{"v1": "aaa", "v2": "bbb"},
+-			host:        "aaa.google.com",
+-			path:        "/bbb",
+-			shouldMatch: false,
+-		},
+-		{
+-			route:       subrouter2.Path("/baz/{v2}"),
+-			request:     newRequest("GET", "http://localhost/foo/bar/baz/ding"),
+-			vars:        map[string]string{"v1": "bar", "v2": "ding"},
+-			host:        "",
+-			path:        "/foo/bar/baz/ding",
+-			shouldMatch: true,
+-		},
+-		{
+-			route:       subrouter2.Path("/baz/{v2}"),
+-			request:     newRequest("GET", "http://localhost/foo/bar"),
+-			vars:        map[string]string{"v1": "bar", "v2": "ding"},
+-			host:        "",
+-			path:        "/foo/bar/baz/ding",
+-			shouldMatch: false,
+-		},
+-	}
+-
+-	for _, test := range tests {
+-		testRoute(t, test)
+-	}
+-}
+-
+-func TestNamedRoutes(t *testing.T) {
+-	r1 := NewRouter()
+-	r1.NewRoute().Name("a")
+-	r1.NewRoute().Name("b")
+-	r1.NewRoute().Name("c")
+-
+-	r2 := r1.NewRoute().Subrouter()
+-	r2.NewRoute().Name("d")
+-	r2.NewRoute().Name("e")
+-	r2.NewRoute().Name("f")
+-
+-	r3 := r2.NewRoute().Subrouter()
+-	r3.NewRoute().Name("g")
+-	r3.NewRoute().Name("h")
+-	r3.NewRoute().Name("i")
+-
+-	if r1.namedRoutes == nil || len(r1.namedRoutes) != 9 {
+-		t.Errorf("Expected 9 named routes, got %v", r1.namedRoutes)
+-	} else if r1.Get("i") == nil {
+-		t.Errorf("Subroute name not registered")
+-	}
+-}
+-
+-func TestStrictSlash(t *testing.T) {
+-	var r *Router
+-	var req *http.Request
+-	var route *Route
+-	var match *RouteMatch
+-	var matched bool
+-
+-	// StrictSlash should be ignored for path prefix.
+-	// So we register a route ending in slash but it doesn't attempt to add
+-	// the slash for a path not ending in slash.
+-	r = NewRouter()
+-	r.StrictSlash(true)
+-	route = r.NewRoute().PathPrefix("/static/")
+-	req, _ = http.NewRequest("GET", "http://localhost/static/logo.png", nil)
+-	match = new(RouteMatch)
+-	matched = r.Match(req, match)
+-	if !matched {
+-		t.Errorf("Should match request %q -- %v", req.URL.Path, getRouteTemplate(route))
+-	}
+-	if match.Handler != nil {
+-		t.Errorf("Should not redirect")
+-	}
+-}
+-
+-// ----------------------------------------------------------------------------
+-// Helpers
+-// ----------------------------------------------------------------------------
+-
+-func getRouteTemplate(route *Route) string {
+-	host, path := "none", "none"
+-	if route.regexp != nil {
+-		if route.regexp.host != nil {
+-			host = route.regexp.host.template
+-		}
+-		if route.regexp.path != nil {
+-			path = route.regexp.path.template
+-		}
+-	}
+-	return fmt.Sprintf("Host: %v, Path: %v", host, path)
+-}
+-
+-func testRoute(t *testing.T, test routeTest) {
+-	request := test.request
+-	route := test.route
+-	vars := test.vars
+-	shouldMatch := test.shouldMatch
+-	host := test.host
+-	path := test.path
+-	url := test.host + test.path
+-
+-	var match RouteMatch
+-	ok := route.Match(request, &match)
+-	if ok != shouldMatch {
+-		msg := "Should match"
+-		if !shouldMatch {
+-			msg = "Should not match"
+-		}
+-		t.Errorf("(%v) %v:\nRoute: %#v\nRequest: %#v\nVars: %v\n", test.title, msg, route, request, vars)
+-		return
+-	}
+-	if shouldMatch {
+-		if test.vars != nil && !stringMapEqual(test.vars, match.Vars) {
+-			t.Errorf("(%v) Vars not equal: expected %v, got %v", test.title, vars, match.Vars)
+-			return
+-		}
+-		if host != "" {
+-			u, _ := test.route.URLHost(mapToPairs(match.Vars)...)
+-			if host != u.Host {
+-				t.Errorf("(%v) URLHost not equal: expected %v, got %v -- %v", test.title, host, u.Host, getRouteTemplate(route))
+-				return
+-			}
+-		}
+-		if path != "" {
+-			u, _ := route.URLPath(mapToPairs(match.Vars)...)
+-			if path != u.Path {
+-				t.Errorf("(%v) URLPath not equal: expected %v, got %v -- %v", test.title, path, u.Path, getRouteTemplate(route))
+-				return
+-			}
+-		}
+-		if url != "" {
+-			u, _ := route.URL(mapToPairs(match.Vars)...)
+-			if url != u.Host+u.Path {
+-				t.Errorf("(%v) URL not equal: expected %v, got %v -- %v", test.title, url, u.Host+u.Path, getRouteTemplate(route))
+-				return
+-			}
+-		}
+-	}
+-}
+-
+-// https://plus.google.com/101022900381697718949/posts/eWy6DjFJ6uW
+-func TestSubrouterHeader(t *testing.T) {
+-	expected := "func1 response"
+-	func1 := func(w http.ResponseWriter, r *http.Request) {
+-		fmt.Fprint(w, expected)
+-	}
+-	func2 := func(http.ResponseWriter, *http.Request) {}
+-
+-	r := NewRouter()
+-	s := r.Headers("SomeSpecialHeader", "").Subrouter()
+-	s.HandleFunc("/", func1).Name("func1")
+-	r.HandleFunc("/", func2).Name("func2")
+-
+-	req, _ := http.NewRequest("GET", "http://localhost/", nil)
+-	req.Header.Add("SomeSpecialHeader", "foo")
+-	match := new(RouteMatch)
+-	matched := r.Match(req, match)
+-	if !matched {
+-		t.Errorf("Should match request")
+-	}
+-	if match.Route.GetName() != "func1" {
+-		t.Errorf("Expecting func1 handler, got %s", match.Route.GetName())
+-	}
+-	resp := NewRecorder()
+-	match.Handler.ServeHTTP(resp, req)
+-	if resp.Body.String() != expected {
+-		t.Errorf("Expecting %q", expected)
+-	}
+-}
+-
+-// mapToPairs converts a string map to a slice of string pairs
+-func mapToPairs(m map[string]string) []string {
+-	var i int
+-	p := make([]string, len(m)*2)
+-	for k, v := range m {
+-		p[i] = k
+-		p[i+1] = v
+-		i += 2
+-	}
+-	return p
+-}
+-
+-// stringMapEqual checks the equality of two string maps
+-func stringMapEqual(m1, m2 map[string]string) bool {
+-	nil1 := m1 == nil
+-	nil2 := m2 == nil
+-	if nil1 != nil2 || len(m1) != len(m2) {
+-		return false
+-	}
+-	for k, v := range m1 {
+-		if v != m2[k] {
+-			return false
+-		}
+-	}
+-	return true
+-}
+-
+-// newRequest is a helper function to create a new request with a method and url
+-func newRequest(method, url string) *http.Request {
+-	req, err := http.NewRequest(method, url, nil)
+-	if err != nil {
+-		panic(err)
+-	}
+-	return req
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/old_test.go docker-devmapper/vendor/src/github.com/gorilla/mux/old_test.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/old_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/old_test.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,758 +0,0 @@
+-// Old tests ported to Go1. This is a mess. Want to drop it one day.
+-
+-// Copyright 2011 Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package mux
+-
+-import (
+-	"bytes"
+-	"net/http"
+-	"testing"
+-)
+-
+-// ----------------------------------------------------------------------------
+-// ResponseRecorder
+-// ----------------------------------------------------------------------------
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// ResponseRecorder is an implementation of http.ResponseWriter that
+-// records its mutations for later inspection in tests.
+-type ResponseRecorder struct {
+-	Code      int           // the HTTP response code from WriteHeader
+-	HeaderMap http.Header   // the HTTP response headers
+-	Body      *bytes.Buffer // if non-nil, the bytes.Buffer to append written data to
+-	Flushed   bool
+-}
+-
+-// NewRecorder returns an initialized ResponseRecorder.
+-func NewRecorder() *ResponseRecorder {
+-	return &ResponseRecorder{
+-		HeaderMap: make(http.Header),
+-		Body:      new(bytes.Buffer),
+-	}
+-}
+-
+-// DefaultRemoteAddr is the default remote address to return in RemoteAddr if
+-// an explicit DefaultRemoteAddr isn't set on ResponseRecorder.
+-const DefaultRemoteAddr = "1.2.3.4"
+-
+-// Header returns the response headers.
+-func (rw *ResponseRecorder) Header() http.Header {
+-	return rw.HeaderMap
+-}
+-
+-// Write always succeeds and writes to rw.Body, if not nil.
+-func (rw *ResponseRecorder) Write(buf []byte) (int, error) {
+-	if rw.Body != nil {
+-		rw.Body.Write(buf)
+-	}
+-	if rw.Code == 0 {
+-		rw.Code = http.StatusOK
+-	}
+-	return len(buf), nil
+-}
+-
+-// WriteHeader sets rw.Code.
+-func (rw *ResponseRecorder) WriteHeader(code int) {
+-	rw.Code = code
+-}
+-
+-// Flush sets rw.Flushed to true.
+-func (rw *ResponseRecorder) Flush() {
+-	rw.Flushed = true
+-}
+-
+-// ----------------------------------------------------------------------------
+-
+-func TestRouteMatchers(t *testing.T) {
+-	var scheme, host, path, query, method string
+-	var headers map[string]string
+-	var resultVars map[bool]map[string]string
+-
+-	router := NewRouter()
+-	router.NewRoute().Host("{var1}.google.com").
+-		Path("/{var2:[a-z]+}/{var3:[0-9]+}").
+-		Queries("foo", "bar").
+-		Methods("GET").
+-		Schemes("https").
+-		Headers("x-requested-with", "XMLHttpRequest")
+-	router.NewRoute().Host("www.{var4}.com").
+-		PathPrefix("/foo/{var5:[a-z]+}/{var6:[0-9]+}").
+-		Queries("baz", "ding").
+-		Methods("POST").
+-		Schemes("http").
+-		Headers("Content-Type", "application/json")
+-
+-	reset := func() {
+-		// Everything match.
+-		scheme = "https"
+-		host = "www.google.com"
+-		path = "/product/42"
+-		query = "?foo=bar"
+-		method = "GET"
+-		headers = map[string]string{"X-Requested-With": "XMLHttpRequest"}
+-		resultVars = map[bool]map[string]string{
+-			true:  map[string]string{"var1": "www", "var2": "product", "var3": "42"},
+-			false: map[string]string{},
+-		}
+-	}
+-
+-	reset2 := func() {
+-		// Everything match.
+-		scheme = "http"
+-		host = "www.google.com"
+-		path = "/foo/product/42/path/that/is/ignored"
+-		query = "?baz=ding"
+-		method = "POST"
+-		headers = map[string]string{"Content-Type": "application/json"}
+-		resultVars = map[bool]map[string]string{
+-			true:  map[string]string{"var4": "google", "var5": "product", "var6": "42"},
+-			false: map[string]string{},
+-		}
+-	}
+-
+-	match := func(shouldMatch bool) {
+-		url := scheme + "://" + host + path + query
+-		request, _ := http.NewRequest(method, url, nil)
+-		for key, value := range headers {
+-			request.Header.Add(key, value)
+-		}
+-
+-		var routeMatch RouteMatch
+-		matched := router.Match(request, &routeMatch)
+-		if matched != shouldMatch {
+-			// Need better messages. :)
+-			if matched {
+-				t.Errorf("Should match.")
+-			} else {
+-				t.Errorf("Should not match.")
+-			}
+-		}
+-
+-		if matched {
+-			currentRoute := routeMatch.Route
+-			if currentRoute == nil {
+-				t.Errorf("Expected a current route.")
+-			}
+-			vars := routeMatch.Vars
+-			expectedVars := resultVars[shouldMatch]
+-			if len(vars) != len(expectedVars) {
+-				t.Errorf("Expected vars: %v Got: %v.", expectedVars, vars)
+-			}
+-			for name, value := range vars {
+-				if expectedVars[name] != value {
+-					t.Errorf("Expected vars: %v Got: %v.", expectedVars, vars)
+-				}
+-			}
+-		}
+-	}
+-
+-	// 1st route --------------------------------------------------------------
+-
+-	// Everything match.
+-	reset()
+-	match(true)
+-
+-	// Scheme doesn't match.
+-	reset()
+-	scheme = "http"
+-	match(false)
+-
+-	// Host doesn't match.
+-	reset()
+-	host = "www.mygoogle.com"
+-	match(false)
+-
+-	// Path doesn't match.
+-	reset()
+-	path = "/product/notdigits"
+-	match(false)
+-
+-	// Query doesn't match.
+-	reset()
+-	query = "?foo=baz"
+-	match(false)
+-
+-	// Method doesn't match.
+-	reset()
+-	method = "POST"
+-	match(false)
+-
+-	// Header doesn't match.
+-	reset()
+-	headers = map[string]string{}
+-	match(false)
+-
+-	// Everything match, again.
+-	reset()
+-	match(true)
+-
+-	// 2nd route --------------------------------------------------------------
+-
+-	// Everything match.
+-	reset2()
+-	match(true)
+-
+-	// Scheme doesn't match.
+-	reset2()
+-	scheme = "https"
+-	match(false)
+-
+-	// Host doesn't match.
+-	reset2()
+-	host = "sub.google.com"
+-	match(false)
+-
+-	// Path doesn't match.
+-	reset2()
+-	path = "/bar/product/42"
+-	match(false)
+-
+-	// Query doesn't match.
+-	reset2()
+-	query = "?foo=baz"
+-	match(false)
+-
+-	// Method doesn't match.
+-	reset2()
+-	method = "GET"
+-	match(false)
+-
+-	// Header doesn't match.
+-	reset2()
+-	headers = map[string]string{}
+-	match(false)
+-
+-	// Everything match, again.
+-	reset2()
+-	match(true)
+-}
+-
+-type headerMatcherTest struct {
+-	matcher headerMatcher
+-	headers map[string]string
+-	result  bool
+-}
+-
+-var headerMatcherTests = []headerMatcherTest{
+-	{
+-		matcher: headerMatcher(map[string]string{"x-requested-with": "XMLHttpRequest"}),
+-		headers: map[string]string{"X-Requested-With": "XMLHttpRequest"},
+-		result:  true,
+-	},
+-	{
+-		matcher: headerMatcher(map[string]string{"x-requested-with": ""}),
+-		headers: map[string]string{"X-Requested-With": "anything"},
+-		result:  true,
+-	},
+-	{
+-		matcher: headerMatcher(map[string]string{"x-requested-with": "XMLHttpRequest"}),
+-		headers: map[string]string{},
+-		result:  false,
+-	},
+-}
+-
+-type hostMatcherTest struct {
+-	matcher *Route
+-	url     string
+-	vars    map[string]string
+-	result  bool
+-}
+-
+-var hostMatcherTests = []hostMatcherTest{
+-	{
+-		matcher: NewRouter().NewRoute().Host("{foo:[a-z][a-z][a-z]}.{bar:[a-z][a-z][a-z]}.{baz:[a-z][a-z][a-z]}"),
+-		url:     "http://abc.def.ghi/",
+-		vars:    map[string]string{"foo": "abc", "bar": "def", "baz": "ghi"},
+-		result:  true,
+-	},
+-	{
+-		matcher: NewRouter().NewRoute().Host("{foo:[a-z][a-z][a-z]}.{bar:[a-z][a-z][a-z]}.{baz:[a-z][a-z][a-z]}"),
+-		url:     "http://a.b.c/",
+-		vars:    map[string]string{"foo": "abc", "bar": "def", "baz": "ghi"},
+-		result:  false,
+-	},
+-}
+-
+-type methodMatcherTest struct {
+-	matcher methodMatcher
+-	method  string
+-	result  bool
+-}
+-
+-var methodMatcherTests = []methodMatcherTest{
+-	{
+-		matcher: methodMatcher([]string{"GET", "POST", "PUT"}),
+-		method:  "GET",
+-		result:  true,
+-	},
+-	{
+-		matcher: methodMatcher([]string{"GET", "POST", "PUT"}),
+-		method:  "POST",
+-		result:  true,
+-	},
+-	{
+-		matcher: methodMatcher([]string{"GET", "POST", "PUT"}),
+-		method:  "PUT",
+-		result:  true,
+-	},
+-	{
+-		matcher: methodMatcher([]string{"GET", "POST", "PUT"}),
+-		method:  "DELETE",
+-		result:  false,
+-	},
+-}
+-
+-type pathMatcherTest struct {
+-	matcher *Route
+-	url     string
+-	vars    map[string]string
+-	result  bool
+-}
+-
+-var pathMatcherTests = []pathMatcherTest{
+-	{
+-		matcher: NewRouter().NewRoute().Path("/{foo:[0-9][0-9][0-9]}/{bar:[0-9][0-9][0-9]}/{baz:[0-9][0-9][0-9]}"),
+-		url:     "http://localhost:8080/123/456/789",
+-		vars:    map[string]string{"foo": "123", "bar": "456", "baz": "789"},
+-		result:  true,
+-	},
+-	{
+-		matcher: NewRouter().NewRoute().Path("/{foo:[0-9][0-9][0-9]}/{bar:[0-9][0-9][0-9]}/{baz:[0-9][0-9][0-9]}"),
+-		url:     "http://localhost:8080/1/2/3",
+-		vars:    map[string]string{"foo": "123", "bar": "456", "baz": "789"},
+-		result:  false,
+-	},
+-}
+-
+-type queryMatcherTest struct {
+-	matcher queryMatcher
+-	url     string
+-	result  bool
+-}
+-
+-var queryMatcherTests = []queryMatcherTest{
+-	{
+-		matcher: queryMatcher(map[string]string{"foo": "bar", "baz": "ding"}),
+-		url:     "http://localhost:8080/?foo=bar&baz=ding",
+-		result:  true,
+-	},
+-	{
+-		matcher: queryMatcher(map[string]string{"foo": "", "baz": ""}),
+-		url:     "http://localhost:8080/?foo=anything&baz=anything",
+-		result:  true,
+-	},
+-	{
+-		matcher: queryMatcher(map[string]string{"foo": "ding", "baz": "bar"}),
+-		url:     "http://localhost:8080/?foo=bar&baz=ding",
+-		result:  false,
+-	},
+-	{
+-		matcher: queryMatcher(map[string]string{"bar": "foo", "ding": "baz"}),
+-		url:     "http://localhost:8080/?foo=bar&baz=ding",
+-		result:  false,
+-	},
+-}
+-
+-type schemeMatcherTest struct {
+-	matcher schemeMatcher
+-	url     string
+-	result  bool
+-}
+-
+-var schemeMatcherTests = []schemeMatcherTest{
+-	{
+-		matcher: schemeMatcher([]string{"http", "https"}),
+-		url:     "http://localhost:8080/",
+-		result:  true,
+-	},
+-	{
+-		matcher: schemeMatcher([]string{"http", "https"}),
+-		url:     "https://localhost:8080/",
+-		result:  true,
+-	},
+-	{
+-		matcher: schemeMatcher([]string{"https"}),
+-		url:     "http://localhost:8080/",
+-		result:  false,
+-	},
+-	{
+-		matcher: schemeMatcher([]string{"http"}),
+-		url:     "https://localhost:8080/",
+-		result:  false,
+-	},
+-}
+-
+-type urlBuildingTest struct {
+-	route *Route
+-	vars  []string
+-	url   string
+-}
+-
+-var urlBuildingTests = []urlBuildingTest{
+-	{
+-		route: new(Route).Host("foo.domain.com"),
+-		vars:  []string{},
+-		url:   "http://foo.domain.com",
+-	},
+-	{
+-		route: new(Route).Host("{subdomain}.domain.com"),
+-		vars:  []string{"subdomain", "bar"},
+-		url:   "http://bar.domain.com",
+-	},
+-	{
+-		route: new(Route).Host("foo.domain.com").Path("/articles"),
+-		vars:  []string{},
+-		url:   "http://foo.domain.com/articles",
+-	},
+-	{
+-		route: new(Route).Path("/articles"),
+-		vars:  []string{},
+-		url:   "/articles",
+-	},
+-	{
+-		route: new(Route).Path("/articles/{category}/{id:[0-9]+}"),
+-		vars:  []string{"category", "technology", "id", "42"},
+-		url:   "/articles/technology/42",
+-	},
+-	{
+-		route: new(Route).Host("{subdomain}.domain.com").Path("/articles/{category}/{id:[0-9]+}"),
+-		vars:  []string{"subdomain", "foo", "category", "technology", "id", "42"},
+-		url:   "http://foo.domain.com/articles/technology/42",
+-	},
+-}
+-
+-func TestHeaderMatcher(t *testing.T) {
+-	for _, v := range headerMatcherTests {
+-		request, _ := http.NewRequest("GET", "http://localhost:8080/", nil)
+-		for key, value := range v.headers {
+-			request.Header.Add(key, value)
+-		}
+-		var routeMatch RouteMatch
+-		result := v.matcher.Match(request, &routeMatch)
+-		if result != v.result {
+-			if v.result {
+-				t.Errorf("%#v: should match %v.", v.matcher, request.Header)
+-			} else {
+-				t.Errorf("%#v: should not match %v.", v.matcher, request.Header)
+-			}
+-		}
+-	}
+-}
+-
+-func TestHostMatcher(t *testing.T) {
+-	for _, v := range hostMatcherTests {
+-		request, _ := http.NewRequest("GET", v.url, nil)
+-		var routeMatch RouteMatch
+-		result := v.matcher.Match(request, &routeMatch)
+-		vars := routeMatch.Vars
+-		if result != v.result {
+-			if v.result {
+-				t.Errorf("%#v: should match %v.", v.matcher, v.url)
+-			} else {
+-				t.Errorf("%#v: should not match %v.", v.matcher, v.url)
+-			}
+-		}
+-		if result {
+-			if len(vars) != len(v.vars) {
+-				t.Errorf("%#v: vars length should be %v, got %v.", v.matcher, len(v.vars), len(vars))
+-			}
+-			for name, value := range vars {
+-				if v.vars[name] != value {
+-					t.Errorf("%#v: expected value %v for key %v, got %v.", v.matcher, v.vars[name], name, value)
+-				}
+-			}
+-		} else {
+-			if len(vars) != 0 {
+-				t.Errorf("%#v: vars length should be 0, got %v.", v.matcher, len(vars))
+-			}
+-		}
+-	}
+-}
+-
+-func TestMethodMatcher(t *testing.T) {
+-	for _, v := range methodMatcherTests {
+-		request, _ := http.NewRequest(v.method, "http://localhost:8080/", nil)
+-		var routeMatch RouteMatch
+-		result := v.matcher.Match(request, &routeMatch)
+-		if result != v.result {
+-			if v.result {
+-				t.Errorf("%#v: should match %v.", v.matcher, v.method)
+-			} else {
+-				t.Errorf("%#v: should not match %v.", v.matcher, v.method)
+-			}
+-		}
+-	}
+-}
+-
+-func TestPathMatcher(t *testing.T) {
+-	for _, v := range pathMatcherTests {
+-		request, _ := http.NewRequest("GET", v.url, nil)
+-		var routeMatch RouteMatch
+-		result := v.matcher.Match(request, &routeMatch)
+-		vars := routeMatch.Vars
+-		if result != v.result {
+-			if v.result {
+-				t.Errorf("%#v: should match %v.", v.matcher, v.url)
+-			} else {
+-				t.Errorf("%#v: should not match %v.", v.matcher, v.url)
+-			}
+-		}
+-		if result {
+-			if len(vars) != len(v.vars) {
+-				t.Errorf("%#v: vars length should be %v, got %v.", v.matcher, len(v.vars), len(vars))
+-			}
+-			for name, value := range vars {
+-				if v.vars[name] != value {
+-					t.Errorf("%#v: expected value %v for key %v, got %v.", v.matcher, v.vars[name], name, value)
+-				}
+-			}
+-		} else {
+-			if len(vars) != 0 {
+-				t.Errorf("%#v: vars length should be 0, got %v.", v.matcher, len(vars))
+-			}
+-		}
+-	}
+-}
+-
+-func TestQueryMatcher(t *testing.T) {
+-	for _, v := range queryMatcherTests {
+-		request, _ := http.NewRequest("GET", v.url, nil)
+-		var routeMatch RouteMatch
+-		result := v.matcher.Match(request, &routeMatch)
+-		if result != v.result {
+-			if v.result {
+-				t.Errorf("%#v: should match %v.", v.matcher, v.url)
+-			} else {
+-				t.Errorf("%#v: should not match %v.", v.matcher, v.url)
+-			}
+-		}
+-	}
+-}
+-
+-func TestSchemeMatcher(t *testing.T) {
+-	for _, v := range queryMatcherTests {
+-		request, _ := http.NewRequest("GET", v.url, nil)
+-		var routeMatch RouteMatch
+-		result := v.matcher.Match(request, &routeMatch)
+-		if result != v.result {
+-			if v.result {
+-				t.Errorf("%#v: should match %v.", v.matcher, v.url)
+-			} else {
+-				t.Errorf("%#v: should not match %v.", v.matcher, v.url)
+-			}
+-		}
+-	}
+-}
+-
+-func TestUrlBuilding(t *testing.T) {
+-
+-	for _, v := range urlBuildingTests {
+-		u, _ := v.route.URL(v.vars...)
+-		url := u.String()
+-		if url != v.url {
+-			t.Errorf("expected %v, got %v", v.url, url)
+-			/*
+-				reversePath := ""
+-				reverseHost := ""
+-				if v.route.pathTemplate != nil {
+-						reversePath = v.route.pathTemplate.Reverse
+-				}
+-				if v.route.hostTemplate != nil {
+-						reverseHost = v.route.hostTemplate.Reverse
+-				}
+-
+-				t.Errorf("%#v:\nexpected: %q\ngot: %q\nreverse path: %q\nreverse host: %q", v.route, v.url, url, reversePath, reverseHost)
+-			*/
+-		}
+-	}
+-
+-	ArticleHandler := func(w http.ResponseWriter, r *http.Request) {
+-	}
+-
+-	router := NewRouter()
+-	router.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler).Name("article")
+-
+-	url, _ := router.Get("article").URL("category", "technology", "id", "42")
+-	expected := "/articles/technology/42"
+-	if url.String() != expected {
+-		t.Errorf("Expected %v, got %v", expected, url.String())
+-	}
+-}
+-
+-func TestMatchedRouteName(t *testing.T) {
+-	routeName := "stock"
+-	router := NewRouter()
+-	route := router.NewRoute().Path("/products/").Name(routeName)
+-
+-	url := "http://www.domain.com/products/"
+-	request, _ := http.NewRequest("GET", url, nil)
+-	var rv RouteMatch
+-	ok := router.Match(request, &rv)
+-
+-	if !ok || rv.Route != route {
+-		t.Errorf("Expected same route, got %+v.", rv.Route)
+-	}
+-
+-	retName := rv.Route.GetName()
+-	if retName != routeName {
+-		t.Errorf("Expected %q, got %q.", routeName, retName)
+-	}
+-}
+-
+-func TestSubRouting(t *testing.T) {
+-	// Example from docs.
+-	router := NewRouter()
+-	subrouter := router.NewRoute().Host("www.domain.com").Subrouter()
+-	route := subrouter.NewRoute().Path("/products/").Name("products")
+-
+-	url := "http://www.domain.com/products/"
+-	request, _ := http.NewRequest("GET", url, nil)
+-	var rv RouteMatch
+-	ok := router.Match(request, &rv)
+-
+-	if !ok || rv.Route != route {
+-		t.Errorf("Expected same route, got %+v.", rv.Route)
+-	}
+-
+-	u, _ := router.Get("products").URL()
+-	builtUrl := u.String()
+-	// Yay, subroute aware of the domain when building!
+-	if builtUrl != url {
+-		t.Errorf("Expected %q, got %q.", url, builtUrl)
+-	}
+-}
+-
+-func TestVariableNames(t *testing.T) {
+-	route := new(Route).Host("{arg1}.domain.com").Path("/{arg1}/{arg2:[0-9]+}")
+-	if route.err == nil {
+-		t.Errorf("Expected error for duplicated variable names")
+-	}
+-}
+-
+-func TestRedirectSlash(t *testing.T) {
+-	var route *Route
+-	var routeMatch RouteMatch
+-	r := NewRouter()
+-
+-	r.StrictSlash(false)
+-	route = r.NewRoute()
+-	if route.strictSlash != false {
+-		t.Errorf("Expected false redirectSlash.")
+-	}
+-
+-	r.StrictSlash(true)
+-	route = r.NewRoute()
+-	if route.strictSlash != true {
+-		t.Errorf("Expected true redirectSlash.")
+-	}
+-
+-	route = new(Route)
+-	route.strictSlash = true
+-	route.Path("/{arg1}/{arg2:[0-9]+}/")
+-	request, _ := http.NewRequest("GET", "http://localhost/foo/123", nil)
+-	routeMatch = RouteMatch{}
+-	_ = route.Match(request, &routeMatch)
+-	vars := routeMatch.Vars
+-	if vars["arg1"] != "foo" {
+-		t.Errorf("Expected foo.")
+-	}
+-	if vars["arg2"] != "123" {
+-		t.Errorf("Expected 123.")
+-	}
+-	rsp := NewRecorder()
+-	routeMatch.Handler.ServeHTTP(rsp, request)
+-	if rsp.HeaderMap.Get("Location") != "http://localhost/foo/123/" {
+-		t.Errorf("Expected redirect header.")
+-	}
+-
+-	route = new(Route)
+-	route.strictSlash = true
+-	route.Path("/{arg1}/{arg2:[0-9]+}")
+-	request, _ = http.NewRequest("GET", "http://localhost/foo/123/", nil)
+-	routeMatch = RouteMatch{}
+-	_ = route.Match(request, &routeMatch)
+-	vars = routeMatch.Vars
+-	if vars["arg1"] != "foo" {
+-		t.Errorf("Expected foo.")
+-	}
+-	if vars["arg2"] != "123" {
+-		t.Errorf("Expected 123.")
+-	}
+-	rsp = NewRecorder()
+-	routeMatch.Handler.ServeHTTP(rsp, request)
+-	if rsp.HeaderMap.Get("Location") != "http://localhost/foo/123" {
+-		t.Errorf("Expected redirect header.")
+-	}
+-}
+-
+-// Test for the new regexp library, still not available in stable Go.
+-func TestNewRegexp(t *testing.T) {
+-	var p *routeRegexp
+-	var matches []string
+-
+-	tests := map[string]map[string][]string{
+-		"/{foo:a{2}}": {
+-			"/a":    nil,
+-			"/aa":   {"aa"},
+-			"/aaa":  nil,
+-			"/aaaa": nil,
+-		},
+-		"/{foo:a{2,}}": {
+-			"/a":    nil,
+-			"/aa":   {"aa"},
+-			"/aaa":  {"aaa"},
+-			"/aaaa": {"aaaa"},
+-		},
+-		"/{foo:a{2,3}}": {
+-			"/a":    nil,
+-			"/aa":   {"aa"},
+-			"/aaa":  {"aaa"},
+-			"/aaaa": nil,
+-		},
+-		"/{foo:[a-z]{3}}/{bar:[a-z]{2}}": {
+-			"/a":       nil,
+-			"/ab":      nil,
+-			"/abc":     nil,
+-			"/abcd":    nil,
+-			"/abc/ab":  {"abc", "ab"},
+-			"/abc/abc": nil,
+-			"/abcd/ab": nil,
+-		},
+-		`/{foo:\w{3,}}/{bar:\d{2,}}`: {
+-			"/a":        nil,
+-			"/ab":       nil,
+-			"/abc":      nil,
+-			"/abc/1":    nil,
+-			"/abc/12":   {"abc", "12"},
+-			"/abcd/12":  {"abcd", "12"},
+-			"/abcd/123": {"abcd", "123"},
+-		},
+-	}
+-
+-	for pattern, paths := range tests {
+-		p, _ = newRouteRegexp(pattern, false, false, false)
+-		for path, result := range paths {
+-			matches = p.regexp.FindStringSubmatch(path)
+-			if result == nil {
+-				if matches != nil {
+-					t.Errorf("%v should not match %v.", pattern, path)
+-				}
+-			} else {
+-				if len(matches) != len(result)+1 {
+-					t.Errorf("Expected %v matches, got %v.", len(result)+1, len(matches))
+-				} else {
+-					for k, v := range result {
+-						if matches[k+1] != v {
+-							t.Errorf("Expected %v, got %v.", v, matches[k+1])
+-						}
+-					}
+-				}
+-			}
+-		}
+-	}
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/README.md docker-devmapper/vendor/src/github.com/gorilla/mux/README.md
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/README.md	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/README.md	1969-12-31 18:00:00.000000000 -0600
+@@ -1,6 +0,0 @@
+-mux
+-===
+-
+-gorilla/mux is a powerful URL router and dispatcher.
+-
+-Read the full documentation here: http://www.gorillatoolkit.org/pkg/mux
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/regexp.go docker-devmapper/vendor/src/github.com/gorilla/mux/regexp.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/regexp.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/regexp.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,247 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package mux
+-
+-import (
+-	"bytes"
+-	"fmt"
+-	"net/http"
+-	"net/url"
+-	"regexp"
+-	"strings"
+-)
+-
+-// newRouteRegexp parses a route template and returns a routeRegexp,
+-// used to match a host or path.
+-//
+-// It will extract named variables, assemble a regexp to be matched, create
+-// a "reverse" template to build URLs and compile regexps to validate variable
+-// values used in URL building.
+-//
+-// Previously we accepted only Python-like identifiers for variable
+-// names ([a-zA-Z_][a-zA-Z0-9_]*), but currently the only restriction is that
+-// name and pattern can't be empty, and names can't contain a colon.
+-func newRouteRegexp(tpl string, matchHost, matchPrefix, strictSlash bool) (*routeRegexp, error) {
+-	// Check if it is well-formed.
+-	idxs, errBraces := braceIndices(tpl)
+-	if errBraces != nil {
+-		return nil, errBraces
+-	}
+-	// Backup the original.
+-	template := tpl
+-	// Now let's parse it.
+-	defaultPattern := "[^/]+"
+-	if matchHost {
+-		defaultPattern = "[^.]+"
+-		matchPrefix, strictSlash = false, false
+-	}
+-	if matchPrefix {
+-		strictSlash = false
+-	}
+-	// Set a flag for strictSlash.
+-	endSlash := false
+-	if strictSlash && strings.HasSuffix(tpl, "/") {
+-		tpl = tpl[:len(tpl)-1]
+-		endSlash = true
+-	}
+-	varsN := make([]string, len(idxs)/2)
+-	varsR := make([]*regexp.Regexp, len(idxs)/2)
+-	pattern := bytes.NewBufferString("^")
+-	reverse := bytes.NewBufferString("")
+-	var end int
+-	var err error
+-	for i := 0; i < len(idxs); i += 2 {
+-		// Set all values we are interested in.
+-		raw := tpl[end:idxs[i]]
+-		end = idxs[i+1]
+-		parts := strings.SplitN(tpl[idxs[i]+1:end-1], ":", 2)
+-		name := parts[0]
+-		patt := defaultPattern
+-		if len(parts) == 2 {
+-			patt = parts[1]
+-		}
+-		// Name or pattern can't be empty.
+-		if name == "" || patt == "" {
+-			return nil, fmt.Errorf("mux: missing name or pattern in %q",
+-				tpl[idxs[i]:end])
+-		}
+-		// Build the regexp pattern.
+-		fmt.Fprintf(pattern, "%s(%s)", regexp.QuoteMeta(raw), patt)
+-		// Build the reverse template.
+-		fmt.Fprintf(reverse, "%s%%s", raw)
+-		// Append variable name and compiled pattern.
+-		varsN[i/2] = name
+-		varsR[i/2], err = regexp.Compile(fmt.Sprintf("^%s$", patt))
+-		if err != nil {
+-			return nil, err
+-		}
+-	}
+-	// Add the remaining.
+-	raw := tpl[end:]
+-	pattern.WriteString(regexp.QuoteMeta(raw))
+-	if strictSlash {
+-		pattern.WriteString("[/]?")
+-	}
+-	if !matchPrefix {
+-		pattern.WriteByte('$')
+-	}
+-	reverse.WriteString(raw)
+-	if endSlash {
+-		reverse.WriteByte('/')
+-	}
+-	// Compile full regexp.
+-	reg, errCompile := regexp.Compile(pattern.String())
+-	if errCompile != nil {
+-		return nil, errCompile
+-	}
+-	// Done!
+-	return &routeRegexp{
+-		template:  template,
+-		matchHost: matchHost,
+-		regexp:    reg,
+-		reverse:   reverse.String(),
+-		varsN:     varsN,
+-		varsR:     varsR,
+-	}, nil
+-}
+-
+-// routeRegexp stores a regexp to match a host or path and information to
+-// collect and validate route variables.
+-type routeRegexp struct {
+-	// The unmodified template.
+-	template string
+-	// True for host match, false for path match.
+-	matchHost bool
+-	// Expanded regexp.
+-	regexp *regexp.Regexp
+-	// Reverse template.
+-	reverse string
+-	// Variable names.
+-	varsN []string
+-	// Variable regexps (validators).
+-	varsR []*regexp.Regexp
+-}
+-
+-// Match matches the regexp against the URL host or path.
+-func (r *routeRegexp) Match(req *http.Request, match *RouteMatch) bool {
+-	if !r.matchHost {
+-		return r.regexp.MatchString(req.URL.Path)
+-	}
+-	return r.regexp.MatchString(getHost(req))
+-}
+-
+-// url builds a URL part using the given values.
+-func (r *routeRegexp) url(pairs ...string) (string, error) {
+-	values, err := mapFromPairs(pairs...)
+-	if err != nil {
+-		return "", err
+-	}
+-	urlValues := make([]interface{}, len(r.varsN))
+-	for k, v := range r.varsN {
+-		value, ok := values[v]
+-		if !ok {
+-			return "", fmt.Errorf("mux: missing route variable %q", v)
+-		}
+-		urlValues[k] = value
+-	}
+-	rv := fmt.Sprintf(r.reverse, urlValues...)
+-	if !r.regexp.MatchString(rv) {
+-		// The URL is checked against the full regexp, instead of checking
+-		// individual variables. This is faster but to provide a good error
+-		// message, we check individual regexps if the URL doesn't match.
+-		for k, v := range r.varsN {
+-			if !r.varsR[k].MatchString(values[v]) {
+-				return "", fmt.Errorf(
+-					"mux: variable %q doesn't match, expected %q", values[v],
+-					r.varsR[k].String())
+-			}
+-		}
+-	}
+-	return rv, nil
+-}
+-
+-// braceIndices returns the first level curly brace indices from a string.
+-// It returns an error in case of unbalanced braces.
+-func braceIndices(s string) ([]int, error) {
+-	var level, idx int
+-	idxs := make([]int, 0)
+-	for i := 0; i < len(s); i++ {
+-		switch s[i] {
+-		case '{':
+-			if level++; level == 1 {
+-				idx = i
+-			}
+-		case '}':
+-			if level--; level == 0 {
+-				idxs = append(idxs, idx, i+1)
+-			} else if level < 0 {
+-				return nil, fmt.Errorf("mux: unbalanced braces in %q", s)
+-			}
+-		}
+-	}
+-	if level != 0 {
+-		return nil, fmt.Errorf("mux: unbalanced braces in %q", s)
+-	}
+-	return idxs, nil
+-}
+-
+-// ----------------------------------------------------------------------------
+-// routeRegexpGroup
+-// ----------------------------------------------------------------------------
+-
+-// routeRegexpGroup groups the route matchers that carry variables.
+-type routeRegexpGroup struct {
+-	host *routeRegexp
+-	path *routeRegexp
+-}
+-
+-// setMatch extracts the variables from the URL once a route matches.
+-func (v *routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route) {
+-	// Store host variables.
+-	if v.host != nil {
+-		hostVars := v.host.regexp.FindStringSubmatch(getHost(req))
+-		if hostVars != nil {
+-			for k, v := range v.host.varsN {
+-				m.Vars[v] = hostVars[k+1]
+-			}
+-		}
+-	}
+-	// Store path variables.
+-	if v.path != nil {
+-		pathVars := v.path.regexp.FindStringSubmatch(req.URL.Path)
+-		if pathVars != nil {
+-			for k, v := range v.path.varsN {
+-				m.Vars[v] = pathVars[k+1]
+-			}
+-			// Check if we should redirect.
+-			if r.strictSlash {
+-				p1 := strings.HasSuffix(req.URL.Path, "/")
+-				p2 := strings.HasSuffix(v.path.template, "/")
+-				if p1 != p2 {
+-					u, _ := url.Parse(req.URL.String())
+-					if p1 {
+-						u.Path = u.Path[:len(u.Path)-1]
+-					} else {
+-						u.Path += "/"
+-					}
+-					m.Handler = http.RedirectHandler(u.String(), 301)
+-				}
+-			}
+-		}
+-	}
+-}
+-
+-// getHost tries its best to return the request host.
+-func getHost(r *http.Request) string {
+-	if !r.URL.IsAbs() {
+-		host := r.Host
+-		// Slice off any port information.
+-		if i := strings.Index(host, ":"); i != -1 {
+-			host = host[:i]
+-		}
+-		return host
+-	}
+-	return r.URL.Host
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/gorilla/mux/route.go docker-devmapper/vendor/src/github.com/gorilla/mux/route.go
+--- docker-0.6.2/vendor/src/github.com/gorilla/mux/route.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/gorilla/mux/route.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,499 +0,0 @@
+-// Copyright 2012 The Gorilla Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package mux
+-
+-import (
+-	"errors"
+-	"fmt"
+-	"net/http"
+-	"net/url"
+-	"strings"
+-)
+-
+-// Route stores information to match a request and build URLs.
+-type Route struct {
+-	// Parent where the route was registered (a Router).
+-	parent parentRoute
+-	// Request handler for the route.
+-	handler http.Handler
+-	// List of matchers.
+-	matchers []matcher
+-	// Manager for the variables from host and path.
+-	regexp *routeRegexpGroup
+-	// If true, when the path pattern is "/path/", accessing "/path" will
+-	// redirect to the former and vice versa.
+-	strictSlash bool
+-	// If true, this route never matches: it is only used to build URLs.
+-	buildOnly bool
+-	// The name used to build URLs.
+-	name string
+-	// Error resulted from building a route.
+-	err error
+-}
+-
+-// Match matches the route against the request.
+-func (r *Route) Match(req *http.Request, match *RouteMatch) bool {
+-	if r.buildOnly || r.err != nil {
+-		return false
+-	}
+-	// Match everything.
+-	for _, m := range r.matchers {
+-		if matched := m.Match(req, match); !matched {
+-			return false
+-		}
+-	}
+-	// Yay, we have a match. Let's collect some info about it.
+-	if match.Route == nil {
+-		match.Route = r
+-	}
+-	if match.Handler == nil {
+-		match.Handler = r.handler
+-	}
+-	if match.Vars == nil {
+-		match.Vars = make(map[string]string)
+-	}
+-	// Set variables.
+-	if r.regexp != nil {
+-		r.regexp.setMatch(req, match, r)
+-	}
+-	return true
+-}
+-
+-// ----------------------------------------------------------------------------
+-// Route attributes
+-// ----------------------------------------------------------------------------
+-
+-// GetError returns an error resulted from building the route, if any.
+-func (r *Route) GetError() error {
+-	return r.err
+-}
+-
+-// BuildOnly sets the route to never match: it is only used to build URLs.
+-func (r *Route) BuildOnly() *Route {
+-	r.buildOnly = true
+-	return r
+-}
+-
+-// Handler --------------------------------------------------------------------
+-
+-// Handler sets a handler for the route.
+-func (r *Route) Handler(handler http.Handler) *Route {
+-	if r.err == nil {
+-		r.handler = handler
+-	}
+-	return r
+-}
+-
+-// HandlerFunc sets a handler function for the route.
+-func (r *Route) HandlerFunc(f func(http.ResponseWriter, *http.Request)) *Route {
+-	return r.Handler(http.HandlerFunc(f))
+-}
+-
+-// GetHandler returns the handler for the route, if any.
+-func (r *Route) GetHandler() http.Handler {
+-	return r.handler
+-}
+-
+-// Name -----------------------------------------------------------------------
+-
+-// Name sets the name for the route, used to build URLs.
+-// If the name was registered already it will be overwritten.
+-func (r *Route) Name(name string) *Route {
+-	if r.name != "" {
+-		r.err = fmt.Errorf("mux: route already has name %q, can't set %q",
+-			r.name, name)
+-	}
+-	if r.err == nil {
+-		r.name = name
+-		r.getNamedRoutes()[name] = r
+-	}
+-	return r
+-}
+-
+-// GetName returns the name for the route, if any.
+-func (r *Route) GetName() string {
+-	return r.name
+-}
+-
+-// ----------------------------------------------------------------------------
+-// Matchers
+-// ----------------------------------------------------------------------------
+-
+-// matcher types try to match a request.
+-type matcher interface {
+-	Match(*http.Request, *RouteMatch) bool
+-}
+-
+-// addMatcher adds a matcher to the route.
+-func (r *Route) addMatcher(m matcher) *Route {
+-	if r.err == nil {
+-		r.matchers = append(r.matchers, m)
+-	}
+-	return r
+-}
+-
+-// addRegexpMatcher adds a host or path matcher and builder to a route.
+-func (r *Route) addRegexpMatcher(tpl string, matchHost, matchPrefix bool) error {
+-	if r.err != nil {
+-		return r.err
+-	}
+-	r.regexp = r.getRegexpGroup()
+-	if !matchHost {
+-		if len(tpl) == 0 || tpl[0] != '/' {
+-			return fmt.Errorf("mux: path must start with a slash, got %q", tpl)
+-		}
+-		if r.regexp.path != nil {
+-			tpl = strings.TrimRight(r.regexp.path.template, "/") + tpl
+-		}
+-	}
+-	rr, err := newRouteRegexp(tpl, matchHost, matchPrefix, r.strictSlash)
+-	if err != nil {
+-		return err
+-	}
+-	if matchHost {
+-		if r.regexp.path != nil {
+-			if err = uniqueVars(rr.varsN, r.regexp.path.varsN); err != nil {
+-				return err
+-			}
+-		}
+-		r.regexp.host = rr
+-	} else {
+-		if r.regexp.host != nil {
+-			if err = uniqueVars(rr.varsN, r.regexp.host.varsN); err != nil {
+-				return err
+-			}
+-		}
+-		r.regexp.path = rr
+-	}
+-	r.addMatcher(rr)
+-	return nil
+-}
+-
+-// Headers --------------------------------------------------------------------
+-
+-// headerMatcher matches the request against header values.
+-type headerMatcher map[string]string
+-
+-func (m headerMatcher) Match(r *http.Request, match *RouteMatch) bool {
+-	return matchMap(m, r.Header, true)
+-}
+-
+-// Headers adds a matcher for request header values.
+-// It accepts a sequence of key/value pairs to be matched. For example:
+-//
+-//     r := mux.NewRouter()
+-//     r.Headers("Content-Type", "application/json",
+-//               "X-Requested-With", "XMLHttpRequest")
+-//
+-// The above route will only match if both request header values match.
+-//
+-// It the value is an empty string, it will match any value if the key is set.
+-func (r *Route) Headers(pairs ...string) *Route {
+-	if r.err == nil {
+-		var headers map[string]string
+-		headers, r.err = mapFromPairs(pairs...)
+-		return r.addMatcher(headerMatcher(headers))
+-	}
+-	return r
+-}
+-
+-// Host -----------------------------------------------------------------------
+-
+-// Host adds a matcher for the URL host.
+-// It accepts a template with zero or more URL variables enclosed by {}.
+-// Variables can define an optional regexp pattern to me matched:
+-//
+-// - {name} matches anything until the next dot.
+-//
+-// - {name:pattern} matches the given regexp pattern.
+-//
+-// For example:
+-//
+-//     r := mux.NewRouter()
+-//     r.Host("www.domain.com")
+-//     r.Host("{subdomain}.domain.com")
+-//     r.Host("{subdomain:[a-z]+}.domain.com")
+-//
+-// Variable names must be unique in a given route. They can be retrieved
+-// calling mux.Vars(request).
+-func (r *Route) Host(tpl string) *Route {
+-	r.err = r.addRegexpMatcher(tpl, true, false)
+-	return r
+-}
+-
+-// MatcherFunc ----------------------------------------------------------------
+-
+-// MatcherFunc is the function signature used by custom matchers.
+-type MatcherFunc func(*http.Request, *RouteMatch) bool
+-
+-func (m MatcherFunc) Match(r *http.Request, match *RouteMatch) bool {
+-	return m(r, match)
+-}
+-
+-// MatcherFunc adds a custom function to be used as request matcher.
+-func (r *Route) MatcherFunc(f MatcherFunc) *Route {
+-	return r.addMatcher(f)
+-}
+-
+-// Methods --------------------------------------------------------------------
+-
+-// methodMatcher matches the request against HTTP methods.
+-type methodMatcher []string
+-
+-func (m methodMatcher) Match(r *http.Request, match *RouteMatch) bool {
+-	return matchInArray(m, r.Method)
+-}
+-
+-// Methods adds a matcher for HTTP methods.
+-// It accepts a sequence of one or more methods to be matched, e.g.:
+-// "GET", "POST", "PUT".
+-func (r *Route) Methods(methods ...string) *Route {
+-	for k, v := range methods {
+-		methods[k] = strings.ToUpper(v)
+-	}
+-	return r.addMatcher(methodMatcher(methods))
+-}
+-
+-// Path -----------------------------------------------------------------------
+-
+-// Path adds a matcher for the URL path.
+-// It accepts a template with zero or more URL variables enclosed by {}.
+-// Variables can define an optional regexp pattern to me matched:
+-//
+-// - {name} matches anything until the next slash.
+-//
+-// - {name:pattern} matches the given regexp pattern.
+-//
+-// For example:
+-//
+-//     r := mux.NewRouter()
+-//     r.Path("/products/").Handler(ProductsHandler)
+-//     r.Path("/products/{key}").Handler(ProductsHandler)
+-//     r.Path("/articles/{category}/{id:[0-9]+}").
+-//       Handler(ArticleHandler)
+-//
+-// Variable names must be unique in a given route. They can be retrieved
+-// calling mux.Vars(request).
+-func (r *Route) Path(tpl string) *Route {
+-	r.err = r.addRegexpMatcher(tpl, false, false)
+-	return r
+-}
+-
+-// PathPrefix -----------------------------------------------------------------
+-
+-// PathPrefix adds a matcher for the URL path prefix.
+-func (r *Route) PathPrefix(tpl string) *Route {
+-	r.strictSlash = false
+-	r.err = r.addRegexpMatcher(tpl, false, true)
+-	return r
+-}
+-
+-// Query ----------------------------------------------------------------------
+-
+-// queryMatcher matches the request against URL queries.
+-type queryMatcher map[string]string
+-
+-func (m queryMatcher) Match(r *http.Request, match *RouteMatch) bool {
+-	return matchMap(m, r.URL.Query(), false)
+-}
+-
+-// Queries adds a matcher for URL query values.
+-// It accepts a sequence of key/value pairs. For example:
+-//
+-//     r := mux.NewRouter()
+-//     r.Queries("foo", "bar", "baz", "ding")
+-//
+-// The above route will only match if the URL contains the defined queries
+-// values, e.g.: ?foo=bar&baz=ding.
+-//
+-// It the value is an empty string, it will match any value if the key is set.
+-func (r *Route) Queries(pairs ...string) *Route {
+-	if r.err == nil {
+-		var queries map[string]string
+-		queries, r.err = mapFromPairs(pairs...)
+-		return r.addMatcher(queryMatcher(queries))
+-	}
+-	return r
+-}
+-
+-// Schemes --------------------------------------------------------------------
+-
+-// schemeMatcher matches the request against URL schemes.
+-type schemeMatcher []string
+-
+-func (m schemeMatcher) Match(r *http.Request, match *RouteMatch) bool {
+-	return matchInArray(m, r.URL.Scheme)
+-}
+-
+-// Schemes adds a matcher for URL schemes.
+-// It accepts a sequence schemes to be matched, e.g.: "http", "https".
+-func (r *Route) Schemes(schemes ...string) *Route {
+-	for k, v := range schemes {
+-		schemes[k] = strings.ToLower(v)
+-	}
+-	return r.addMatcher(schemeMatcher(schemes))
+-}
+-
+-// Subrouter ------------------------------------------------------------------
+-
+-// Subrouter creates a subrouter for the route.
+-//
+-// It will test the inner routes only if the parent route matched. For example:
+-//
+-//     r := mux.NewRouter()
+-//     s := r.Host("www.domain.com").Subrouter()
+-//     s.HandleFunc("/products/", ProductsHandler)
+-//     s.HandleFunc("/products/{key}", ProductHandler)
+-//     s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler)
+-//
+-// Here, the routes registered in the subrouter won't be tested if the host
+-// doesn't match.
+-func (r *Route) Subrouter() *Router {
+-	router := &Router{parent: r, strictSlash: r.strictSlash}
+-	r.addMatcher(router)
+-	return router
+-}
+-
+-// ----------------------------------------------------------------------------
+-// URL building
+-// ----------------------------------------------------------------------------
+-
+-// URL builds a URL for the route.
+-//
+-// It accepts a sequence of key/value pairs for the route variables. For
+-// example, given this route:
+-//
+-//     r := mux.NewRouter()
+-//     r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler).
+-//       Name("article")
+-//
+-// ...a URL for it can be built using:
+-//
+-//     url, err := r.Get("article").URL("category", "technology", "id", "42")
+-//
+-// ...which will return an url.URL with the following path:
+-//
+-//     "/articles/technology/42"
+-//
+-// This also works for host variables:
+-//
+-//     r := mux.NewRouter()
+-//     r.Host("{subdomain}.domain.com").
+-//       HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler).
+-//       Name("article")
+-//
+-//     // url.String() will be "http://news.domain.com/articles/technology/42"
+-//     url, err := r.Get("article").URL("subdomain", "news",
+-//                                      "category", "technology",
+-//                                      "id", "42")
+-//
+-// All variables defined in the route are required, and their values must
+-// conform to the corresponding patterns.
+-func (r *Route) URL(pairs ...string) (*url.URL, error) {
+-	if r.err != nil {
+-		return nil, r.err
+-	}
+-	if r.regexp == nil {
+-		return nil, errors.New("mux: route doesn't have a host or path")
+-	}
+-	var scheme, host, path string
+-	var err error
+-	if r.regexp.host != nil {
+-		// Set a default scheme.
+-		scheme = "http"
+-		if host, err = r.regexp.host.url(pairs...); err != nil {
+-			return nil, err
+-		}
+-	}
+-	if r.regexp.path != nil {
+-		if path, err = r.regexp.path.url(pairs...); err != nil {
+-			return nil, err
+-		}
+-	}
+-	return &url.URL{
+-		Scheme: scheme,
+-		Host:   host,
+-		Path:   path,
+-	}, nil
+-}
+-
+-// URLHost builds the host part of the URL for a route. See Route.URL().
+-//
+-// The route must have a host defined.
+-func (r *Route) URLHost(pairs ...string) (*url.URL, error) {
+-	if r.err != nil {
+-		return nil, r.err
+-	}
+-	if r.regexp == nil || r.regexp.host == nil {
+-		return nil, errors.New("mux: route doesn't have a host")
+-	}
+-	host, err := r.regexp.host.url(pairs...)
+-	if err != nil {
+-		return nil, err
+-	}
+-	return &url.URL{
+-		Scheme: "http",
+-		Host:   host,
+-	}, nil
+-}
+-
+-// URLPath builds the path part of the URL for a route. See Route.URL().
+-//
+-// The route must have a path defined.
+-func (r *Route) URLPath(pairs ...string) (*url.URL, error) {
+-	if r.err != nil {
+-		return nil, r.err
+-	}
+-	if r.regexp == nil || r.regexp.path == nil {
+-		return nil, errors.New("mux: route doesn't have a path")
+-	}
+-	path, err := r.regexp.path.url(pairs...)
+-	if err != nil {
+-		return nil, err
+-	}
+-	return &url.URL{
+-		Path: path,
+-	}, nil
+-}
+-
+-// ----------------------------------------------------------------------------
+-// parentRoute
+-// ----------------------------------------------------------------------------
+-
+-// parentRoute allows routes to know about parent host and path definitions.
+-type parentRoute interface {
+-	getNamedRoutes() map[string]*Route
+-	getRegexpGroup() *routeRegexpGroup
+-}
+-
+-// getNamedRoutes returns the map where named routes are registered.
+-func (r *Route) getNamedRoutes() map[string]*Route {
+-	if r.parent == nil {
+-		// During tests router is not always set.
+-		r.parent = NewRouter()
+-	}
+-	return r.parent.getNamedRoutes()
+-}
+-
+-// getRegexpGroup returns regexp definitions from this route.
+-func (r *Route) getRegexpGroup() *routeRegexpGroup {
+-	if r.regexp == nil {
+-		if r.parent == nil {
+-			// During tests router is not always set.
+-			r.parent = NewRouter()
+-		}
+-		regexp := r.parent.getRegexpGroup()
+-		if regexp == nil {
+-			r.regexp = new(routeRegexpGroup)
+-		} else {
+-			// Copy.
+-			r.regexp = &routeRegexpGroup{
+-				host: regexp.host,
+-				path: regexp.path,
+-			}
+-		}
+-	}
+-	return r.regexp
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/doc.go docker-devmapper/vendor/src/github.com/kr/pty/doc.go
+--- docker-0.6.2/vendor/src/github.com/kr/pty/doc.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/doc.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,11 +0,0 @@
+-// Package pty provides functions for working with Unix terminals.
+-package pty
+-
+-import (
+-	"os"
+-)
+-
+-// Opens a pty and its corresponding tty.
+-func Open() (pty, tty *os.File, err error) {
+-	return open()
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/.gitignore docker-devmapper/vendor/src/github.com/kr/pty/.gitignore
+--- docker-0.6.2/vendor/src/github.com/kr/pty/.gitignore	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/.gitignore	1969-12-31 18:00:00.000000000 -0600
+@@ -1,4 +0,0 @@
+-[568].out
+-_go*
+-_test*
+-_obj
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/License docker-devmapper/vendor/src/github.com/kr/pty/License
+--- docker-0.6.2/vendor/src/github.com/kr/pty/License	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/License	1969-12-31 18:00:00.000000000 -0600
+@@ -1,23 +0,0 @@
+-Copyright (c) 2011 Keith Rarick
+-
+-Permission is hereby granted, free of charge, to any person
+-obtaining a copy of this software and associated
+-documentation files (the "Software"), to deal in the
+-Software without restriction, including without limitation
+-the rights to use, copy, modify, merge, publish, distribute,
+-sublicense, and/or sell copies of the Software, and to
+-permit persons to whom the Software is furnished to do so,
+-subject to the following conditions:
+-
+-The above copyright notice and this permission notice shall
+-be included in all copies or substantial portions of the
+-Software.
+-
+-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
+-OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/pty_darwin.go docker-devmapper/vendor/src/github.com/kr/pty/pty_darwin.go
+--- docker-0.6.2/vendor/src/github.com/kr/pty/pty_darwin.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/pty_darwin.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,69 +0,0 @@
+-package pty
+-
+-import (
+-	"errors"
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-// see ioccom.h
+-const sys_IOCPARM_MASK = 0x1fff
+-
+-func open() (pty, tty *os.File, err error) {
+-	p, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-
+-	sname, err := ptsname(p)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-
+-	err = grantpt(p)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-
+-	err = unlockpt(p)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-
+-	t, err := os.OpenFile(sname, os.O_RDWR, 0)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-	return p, t, nil
+-}
+-
+-func ptsname(f *os.File) (string, error) {
+-	var n [(syscall.TIOCPTYGNAME >> 16) & sys_IOCPARM_MASK]byte
+-
+-	ioctl(f.Fd(), syscall.TIOCPTYGNAME, uintptr(unsafe.Pointer(&n)))
+-	for i, c := range n {
+-		if c == 0 {
+-			return string(n[:i]), nil
+-		}
+-	}
+-	return "", errors.New("TIOCPTYGNAME string not NUL-terminated")
+-}
+-
+-func grantpt(f *os.File) error {
+-	var u int
+-	return ioctl(f.Fd(), syscall.TIOCPTYGRANT, uintptr(unsafe.Pointer(&u)))
+-}
+-
+-func unlockpt(f *os.File) error {
+-	var u int
+-	return ioctl(f.Fd(), syscall.TIOCPTYUNLK, uintptr(unsafe.Pointer(&u)))
+-}
+-
+-func ioctl(fd, cmd, ptr uintptr) error {
+-	_, _, e := syscall.Syscall(syscall.SYS_IOCTL, fd, cmd, ptr)
+-	if e != 0 {
+-		return syscall.ENOTTY
+-	}
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/pty_linux.go docker-devmapper/vendor/src/github.com/kr/pty/pty_linux.go
+--- docker-0.6.2/vendor/src/github.com/kr/pty/pty_linux.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/pty_linux.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,63 +0,0 @@
+-package pty
+-
+-import (
+-	"os"
+-	"strconv"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-const (
+-	sys_TIOCGPTN   = 0x80045430
+-	sys_TIOCSPTLCK = 0x40045431
+-)
+-
+-func open() (pty, tty *os.File, err error) {
+-	p, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-
+-	sname, err := ptsname(p)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-
+-	err = unlockpt(p)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-
+-	t, err := os.OpenFile(sname, os.O_RDWR, 0)
+-	if err != nil {
+-		return nil, nil, err
+-	}
+-	return p, t, nil
+-}
+-
+-func ptsname(f *os.File) (string, error) {
+-	var n int
+-	err := ioctl(f.Fd(), sys_TIOCGPTN, &n)
+-	if err != nil {
+-		return "", err
+-	}
+-	return "/dev/pts/" + strconv.Itoa(n), nil
+-}
+-
+-func unlockpt(f *os.File) error {
+-	var u int
+-	return ioctl(f.Fd(), sys_TIOCSPTLCK, &u)
+-}
+-
+-func ioctl(fd uintptr, cmd uintptr, data *int) error {
+-	_, _, e := syscall.Syscall(
+-		syscall.SYS_IOCTL,
+-		fd,
+-		cmd,
+-		uintptr(unsafe.Pointer(data)),
+-	)
+-	if e != 0 {
+-		return syscall.ENOTTY
+-	}
+-	return nil
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/README.md docker-devmapper/vendor/src/github.com/kr/pty/README.md
+--- docker-0.6.2/vendor/src/github.com/kr/pty/README.md	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/README.md	1969-12-31 18:00:00.000000000 -0600
+@@ -1,36 +0,0 @@
+-# pty
+-
+-Pty is a Go package for using unix pseudo-terminals.
+-
+-## Install
+-
+-    go get github.com/kr/pty
+-
+-## Example
+-
+-```go
+-package main
+-
+-import (
+-	"github.com/kr/pty"
+-	"io"
+-	"os"
+-	"os/exec"
+-)
+-
+-func main() {
+-	c := exec.Command("grep", "--color=auto", "bar")
+-	f, err := pty.Start(c)
+-	if err != nil {
+-		panic(err)
+-	}
+-
+-	go func() {
+-		f.Write([]byte("foo\n"))
+-		f.Write([]byte("bar\n"))
+-		f.Write([]byte("baz\n"))
+-		f.Write([]byte{4}) // EOT
+-	}()
+-	io.Copy(os.Stdout, f)
+-}
+-```
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/run.go docker-devmapper/vendor/src/github.com/kr/pty/run.go
+--- docker-0.6.2/vendor/src/github.com/kr/pty/run.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/run.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,28 +0,0 @@
+-package pty
+-
+-import (
+-	"os"
+-	"os/exec"
+-	"syscall"
+-)
+-
+-// Start assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout,
+-// and c.Stderr, calls c.Start, and returns the File of the tty's
+-// corresponding pty.
+-func Start(c *exec.Cmd) (pty *os.File, err error) {
+-	pty, tty, err := Open()
+-	if err != nil {
+-		return nil, err
+-	}
+-	defer tty.Close()
+-	c.Stdout = tty
+-	c.Stdin = tty
+-	c.Stderr = tty
+-	c.SysProcAttr = &syscall.SysProcAttr{Setctty: true, Setsid: true}
+-	err = c.Start()
+-	if err != nil {
+-		pty.Close()
+-		return nil, err
+-	}
+-	return pty, err
+-}
+diff -uNr docker-0.6.2/vendor/src/github.com/kr/pty/util.go docker-devmapper/vendor/src/github.com/kr/pty/util.go
+--- docker-0.6.2/vendor/src/github.com/kr/pty/util.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/vendor/src/github.com/kr/pty/util.go	1969-12-31 18:00:00.000000000 -0600
+@@ -1,35 +0,0 @@
+-package pty
+-
+-import (
+-	"os"
+-	"syscall"
+-	"unsafe"
+-)
+-
+-// Getsize returns the number of rows (lines) and cols (positions
+-// in each line) in terminal t.
+-func Getsize(t *os.File) (rows, cols int, err error) {
+-	var ws winsize
+-	err = windowrect(&ws, t.Fd())
+-	return int(ws.ws_row), int(ws.ws_col), err
+-}
+-
+-type winsize struct {
+-	ws_row    uint16
+-	ws_col    uint16
+-	ws_xpixel uint16
+-	ws_ypixel uint16
+-}
+-
+-func windowrect(ws *winsize, fd uintptr) error {
+-	_, _, errno := syscall.Syscall(
+-		syscall.SYS_IOCTL,
+-		fd,
+-		syscall.TIOCGWINSZ,
+-		uintptr(unsafe.Pointer(ws)),
+-	)
+-	if errno != 0 {
+-		return syscall.Errno(errno)
+-	}
+-	return nil
+-}
+diff -uNr docker-0.6.2/VERSION docker-devmapper/VERSION
+--- docker-0.6.2/VERSION	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/VERSION	2013-09-23 10:37:39.632304302 -0500
+@@ -1 +1 @@
+-0.6.2
++0.6.1-dev
+diff -uNr docker-0.6.2/z_final_test.go docker-devmapper/z_final_test.go
+--- docker-0.6.2/z_final_test.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-devmapper/z_final_test.go	2013-09-23 10:37:39.601304388 -0500
+@@ -11,7 +11,7 @@
+ }
+ 
+ func TestFinal(t *testing.T) {
+-	cleanup(globalRuntime)
++	cleanupLast(globalRuntime)
+ 	t.Logf("Start Fds: %d, Start Goroutines: %d", startFds, startGoroutines)
+ 	displayFdGoroutines(t)
+ }
diff --git a/docker-0.6.2-remove-dotcloud-tar.patch b/docker-0.6.2-remove-dotcloud-tar.patch
new file mode 100644
index 0000000..d9ee0bb
--- /dev/null
+++ b/docker-0.6.2-remove-dotcloud-tar.patch
@@ -0,0 +1,12 @@
+diff -uNr docker-0.6.2/utils/tarsum.go docker-0.6.2-1/utils/tarsum.go
+--- docker-0.6.2/utils/tarsum.go	2013-09-17 13:11:39.000000000 -0500
++++ docker-0.6.2-1/utils/tarsum.go	2013-09-23 09:37:07.711724687 -0500
+@@ -5,7 +5,7 @@
+ 	"compress/gzip"
+ 	"crypto/sha256"
+ 	"encoding/hex"
+-	"github.com/dotcloud/tar"
++	"archive/tar"
+ 	"hash"
+ 	"io"
+ 	"sort"
diff --git a/docker-io.spec b/docker-io.spec
new file mode 100644
index 0000000..f6f1ea6
--- /dev/null
+++ b/docker-io.spec
@@ -0,0 +1,163 @@
+%global debug_package   %{nil}
+%global commit          ca5913ff3ec0648d6ad9887abc6cf986fddee1a2
+%global gopath          %{_datadir}/gocode
+
+Name:           docker-io
+Version:        0.6.2
+Release:        14.devicemapper%{?dist}
+Summary:        Automates deployment of containerized applications
+License:        ASL 2.0
+
+Patch0:         docker-%{version}-alexl-devmapper.patch
+Patch1:         docker-%{version}-remove-dotcloud-tar.patch
+URL:            http://www.docker.io
+Source0:        https://github.com/dotcloud/docker/archive/v%{version}.tar.gz
+Source1:        docker.service
+BuildRequires:  golang("github.com/gorilla/mux")
+BuildRequires:  golang("github.com/kr/pty")
+BuildRequires:  golang("code.google.com/p/go.net/websocket")
+BuildRequires:  device-mapper-devel
+BuildRequires:  python-sphinxcontrib-httpdomain
+BuildRequires:  pkgconfig(systemd)
+Requires:       systemd-units
+Requires:       lxc
+Requires:       tar
+Provides:       lxc-docker
+
+%description
+Docker is an open-source engine that automates the deployment of any
+application as a lightweight, portable, self-sufficient container that will
+run virtually anywhere.
+
+Docker containers can encapsulate any payload, and will run consistently on
+and between virtually any server. The same container that a developer builds
+and tests on a laptop will run at scale, in production*, on VMs, bare-metal
+servers, OpenStack clusters, public instances, or combinations of the above.
+
+%prep
+%setup -q -n docker-%{version}
+%patch0 -p1 -b docker-%{version}-alexl-devmapper.patch
+%patch1 -p1 -b docker-%{version}-remove-dotcloud-tar.patch
+
+%build
+mkdir _build
+pushd _build
+
+mkdir -p src/github.com/dotcloud
+ln -s $(dirs +1 -l) src/github.com/dotcloud/docker
+export GOPATH=$(pwd):%{gopath}
+go build -v -a github.com/dotcloud/docker/docker
+go build -v -a github.com/dotcloud/docker/docker-init
+
+popd
+
+make -C docs/ man
+
+%install
+install -d %{buildroot}%{_bindir}
+install -d %{buildroot}%{_mandir}/man1
+install -d %{buildroot}%{_unitdir}
+install -d %{buildroot}%{_sysconfdir}/bash_completion.d
+install -d -m 700 %{buildroot}%{_sharedstatedir}/docker
+install -p -m 755 _build/docker %{buildroot}%{_bindir}
+install -p -m 755 _build/docker-init %{buildroot}%{_bindir}
+install -p -m 644 docs/_build/man/docker.1 %{buildroot}%{_mandir}/man1
+install -p -m 644 %{SOURCE1} %{buildroot}%{_unitdir}
+install -p -m 644 contrib/docker.bash %{buildroot}%{_sysconfdir}/bash_completion.d/
+
+%pre
+getent group docker > /dev/null || %{_sbindir}/groupadd -r docker
+getent passwd docker > /dev/null || %{_sbindir}/useradd -r -g docker\
+           -d %{_localstatedir}/lib/docker -s %{_sbindir}/nologin -c\
+           "Docker User" docker
+exit 0
+
+%post
+%systemd_post docker.service
+
+%preun
+%systemd_preun docker.service
+
+%postun
+%systemd_postun_with_restart docker.service
+    
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS CHANGELOG.md CONTRIBUTING.md FIXME LICENSE MAINTAINERS NOTICE README.md 
+%{_mandir}/man1/docker.1.gz
+%{_bindir}/docker
+%{_bindir}/docker-init
+%{_unitdir}/docker.service
+%dir %{_sysconfdir}/bash_completion.d
+%{_sysconfdir}/bash_completion.d/docker.bash
+%dir %{_sharedstatedir}/docker
+
+%changelog
+* Tue Sep 24 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-14.devicemapper
+- package requires lxc
+
+* Tue Sep 24 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-13.devicemapper
+- package requires tar
+
+* Tue Sep 24 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-12.devicemapper
+- /var/lib/docker installed
+- package also provides lxc-docker
+
+* Mon Sep 23 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-11.devicemapper
+- better looking url
+
+* Mon Sep 23 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-10.devicemapper
+- release tag changed to denote devicemapper patch
+
+* Mon Sep 23 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-9
+- device-mapper-devel is a buildrequires for alex's code
+- docker.service listed as a separate source file
+
+* Sun Sep 22 2013 Matthew Miller <mattdm at fedoraproject.org> 0.6.2-8
+- install bash completion
+- use -v for go build to show progress
+
+* Sun Sep 22 2013 Matthew Miller <mattdm at fedoraproject.org> 0.6.2-7
+- build and install separate docker-init
+
+* Sun Sep 22 2013 Matthew Miller <mattdm at fedoraproject.org> 0.6.2-4
+- update to use new source-only golang lib packages
+
+* Sat Sep 21 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-3
+- man page generation from docs/.
+- systemd service file created
+- dotcloud/tar no longer required
+
+* Fri Sep 20 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-2
+- patched with alex larsson's devmapper code
+
+* Wed Sep 18 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.2-1
+- Version bump
+
+* Tue Sep 10 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.1-2
+- buildrequires updated
+- package renamed to docker-io
+ 
+* Fri Aug 30 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.6.1-1
+- Version bump
+- Package name change from lxc-docker to docker
+- Makefile patched from 0.5.3
+
+* Wed Aug 28 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.5.3-5
+- File permissions settings included
+
+* Wed Aug 28 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.5.3-4
+- Credits in changelog modified as per reference's request
+
+* Tue Aug 27 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.5.3-3
+- Dependencies listed as rpm packages instead of tars
+- Install section added
+
+* Mon Aug 26 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.5.3-2
+- Github packaging
+- Deps not downloaded at build time courtesy Elan Ruusamäe
+- Manpage and other docs installed
+
+* Fri Aug 23 2013 Lokesh Mandvekar <lsm5 at redhat.com> 0.5.3-1
+- Initial fedora package
+- Some credit to Elan Ruusamäe (glen at pld-linux.org)
diff --git a/docker.service b/docker.service
new file mode 100644
index 0000000..805afd1
--- /dev/null
+++ b/docker.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Docker container management daemon
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/docker -d
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/sources b/sources
index e69de29..6d1e6f6 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+41df68b4b4f1e03ab1d0964f4b73f440  v0.6.2.tar.gz


More information about the scm-commits mailing list