return 0, 0, b.readErr()
        }
        r, size = rune(b.buf[b.r]), 1
-       if r >= 0x80 {
+       if r >= utf8.RuneSelf {
                r, size = utf8.DecodeRune(b.buf[b.r:b.w])
        }
        b.r += size
 
 
        case CTRUNE:
                x := v.U.(*Mpint).Int64()
-               if ' ' <= x && x < 0x80 && x != '\\' && x != '\'' {
+               if ' ' <= x && x < utf8.RuneSelf && x != '\\' && x != '\'' {
                        return fmt.Sprintf("'%c'", int(x))
                }
                if 0 <= x && x < 1<<16 {
 
 // byte slice and returns it.
 func parseIA5String(bytes []byte) (ret string, err error) {
        for _, b := range bytes {
-               if b >= 0x80 {
+               if b >= utf8.RuneSelf {
                        err = SyntaxError{"IA5String contains invalid character"}
                        return
                }
 
                safe = safe[len(safeSpaces):]
        }
        for i := 0; i < len(s); i++ {
-               if c := s[i]; c < 0x80 && bytes.IndexByte(safe, c) < 0 {
+               if c := s[i]; c < utf8.RuneSelf && bytes.IndexByte(safe, c) < 0 {
                        return false
                }
        }
 
        "bufio"
        "errors"
        "io"
+       "unicode/utf8"
 )
 
 type importReader struct {
 }
 
 func isIdent(c byte) bool {
-       return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' || c == '_' || c >= 0x80
+       return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' || c == '_' || c >= utf8.RuneSelf
 }
 
 var (
 
                switch {
                case r == 0:
                        s.error(s.offset, "illegal character NUL")
-               case r >= 0x80:
+               case r >= utf8.RuneSelf:
                        // not ASCII
                        r, w = utf8.DecodeRune(s.src[s.rdOffset:])
                        if r == utf8.RuneError && w == 1 {
 }
 
 func isLetter(ch rune) bool {
-       return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch)
+       return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= utf8.RuneSelf && unicode.IsLetter(ch)
 }
 
 func isDigit(ch rune) bool {
-       return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch)
+       return '0' <= ch && ch <= '9' || ch >= utf8.RuneSelf && unicode.IsDigit(ch)
 }
 
 func (s *Scanner) scanIdentifier() string {
 
                                return filterFailsafe
                        }
                default:
-                       if c < 0x80 && isCSSNmchar(rune(c)) {
+                       if c < utf8.RuneSelf && isCSSNmchar(rune(c)) {
                                id = append(id, c)
                        }
                }
 
        delta, n, bias := int32(0), initialN, initialBias
        b, remaining := int32(0), int32(0)
        for _, r := range s {
-               if r < 0x80 {
+               if r < utf8.RuneSelf {
                        b++
                        output = append(output, byte(r))
                } else {