hunk.code_window:     :raises .UnexpectedUpdate:
       """
       try:
           return acme.register(messages.NewRegistration.from_data(email=config.email))
       except messages.Error, e:
           err = repr(e)
           if "MX record" in err or "Validation of contact mailto" in err:
               config.namespace.email = display_ops.get_email(more=True, invalid=True)
  
hunk.labels: keep keep keep keep keep replace keep keep keep
hunk.after_edit:     except messages.Error as e:
  
hunk.file_path: letsencrypt/client.py
hunk.type: replace
file: BootstrapDebCommon() {
    # Current version tested with:
    #
    # - Ubuntu
    #     - 14.04 (x64)
    #     - 15.04 (x64)
    # - Debian
    #     - 7.9 "wheezy" (x64)
    #     - sid (2015-10-21) (x64)
  
    # Past versions tested with:
    #
    # - Debian 8.0 "jessie" (x64)
    # - Raspbian 7.8 (armhf)
  
    # Believed not to work:
    #
    # - Debian 6.0.10 "squeeze" (x64)
  
    $SUDO apt-get update || echo apt-get update hit problems but continuing anyway...
  
    # virtualenv binary can be found in different packages depending on
    # distro version (#346)
  
    virtualenv=
    if apt-cache show virtualenv > /dev/null 2>&1; then
      virtualenv="virtualenv"
    fi
  
    if apt-cache show python-virtualenv > /dev/null 2>&1; then
      virtualenv="$virtualenv python-virtualenv"
    fi
  
    augeas_pkg="libaugeas0 augeas-lenses"
    AUGVERSION=`apt-cache show --no-all-versions libaugeas0 | grep ^Version: | cut -d" " -f2`
  
    AddBackportRepo() {
        # ARGS:
        BACKPORT_NAME="$1"
        BACKPORT_SOURCELINE="$2"
        if ! grep -v -e ' *#' /etc/apt/sources.list | grep -q "$BACKPORT_NAME" ; then
            # This can theoretically error if sources.list.d is empty, but in that case we don't care.
            if ! grep -v -e ' *#' /etc/apt/sources.list.d/* 2>/dev/null | grep -q "$BACKPORT_NAME"; then
                /bin/echo -n "Installing augeas from $BACKPORT_NAME in 3 seconds..."
                sleep 1s
                /bin/echo -ne "\e[0K\rInstalling augeas from $BACKPORT_NAME in 2 seconds..."
                sleep 1s
                /bin/echo -e "\e[0K\rInstalling augeas from $BACKPORT_NAME in 1 second ..."
                sleep 1s
                if echo $BACKPORT_NAME | grep -q wheezy ; then
                    /bin/echo '(Backports are only installed if explicitly requested via "apt-get install -t wheezy-backports")'
                fi
  
                sudo sh -c "echo $BACKPORT_SOURCELINE >> /etc/apt/sources.list.d/$BACKPORT_NAME.list"
                $SUDO apt-get update
            fi
        fi
        $SUDO apt-get install -y --no-install-recommends -t "$BACKPORT_NAME" $augeas_pkg
        augeas_pkg=
  
    }
  
  
    if dpkg --compare-versions 1.0 gt "$AUGVERSION" ; then
        if lsb_release -a | grep -q wheezy ; then
            AddBackportRepo wheezy-backports "deb http://http.debian.net/debian wheezy-backports main"
        elif lsb_release -a | grep -q precise ; then
            # XXX add ARM case
            AddBackportRepo precise-backports "deb http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse"
        else
            echo "No libaugeas0 version is available that's new enough to run the"
            echo "Let's Encrypt apache plugin..."
        fi
        # XXX add a case for ubuntu PPAs
    fi
  
    $SUDO apt-get install -y --no-install-recommends \
      python \
      python-dev \
      $virtualenv \
      gcc \
      dialog \
      $augeas_pkg \
      libssl-dev \
      libffi-dev \
      ca-certificates \
  
  
  
    if ! command -v virtualenv > /dev/null ; then
      echo Failed to install a working \"virtualenv\" command, exiting
      exit 1
    fi
  }
  