-

+; "...\\\";
.(" !") .


:





:      |   |   | 


: 25.01.09.

Punycode;

  "...\\\",
  "...\\\",
  "...\\\",
  "...\\\";

(c: ): ;

  c - 48 < 10 c - 22
  c - 65 < 26 c - 65
  c - 97 < 26 c - 97
  36
;

(d: ; f: ): ;

  d < 26 f d + 65 d + 97
  f d - 10 d + 22
;

(, : ; : ): ;

  : ;

  := ((( / 700))) := .(, -1) ;
  (, ((( / ))));
  := 0;
  > .(((36 - 1) * 26), -1)
    := ((( / ( 36 - 1 )))); (, 36)
  ;
  ((( + (36 - 1 + 1) * / ( + 38))))
;

(b: ; f: ): ;

  b - 97 < 26 (b, 32) ;
  f (b - 65 < 26) b + 32 b
;

-(-, +: ; : );

  : ;
  n, d, h, b, a, j, m, q, k, t, i, : ;
  : ;
  , : ;
  (: ): ;
 
    >= .(" ."); ;
    [] := ; ();
   
  ;

  ();
  := ();
  (, );
  (, );
  .(^);
 
    j := 0 -1 [j] := [j] # [j]
  ;
  := ();
  := 0; n := 80H; d := 0; a := 72;
  j := 0 -1
    ([j]) < 80H
     
        (((([j]), [j])))
     
        ([j])
     
   
  ;
  b := (); h := b;
  b > 0 (2DX) ;
  h <
    m := ();
    j := 0 -1
      i := ([j]);
      (i >= n) (i < m) m := i
    ;
    (m - n > ((() - d) / (h + 1))) .("."); ;
    (d, (m - n) * (h + 1));
    n := m;
    j := 0 -1
      i := ([j]);
      i < n
        (d);
        d > () .(".");
      ;
      i = n
        q := d; k := 36;
       
          k <= a t := 1 k >= a + 26 t := 26 t := k - a ;
          q < t ;
          (((t + (q - t) (36 - t), ))) ;
          q := ((((q - t) / (36 - t))));
          (k, 36)
        ;
        (((q, [j]))) ;
        a := (d, h + 1, h = b); d := 0; (h)
     
    ;
    (d); (n)
 
;

-(-, +: ; : );

  , , , , r, i, j, n, w, k, t, b, o: ;
  : ;

  ();
  n := 80H; i := 0; b := 72;
  := ();
  (, ) ;
  := 0; := ;
  (); [] = 2DX := ; := 0 = 0;
  := ();
  < .(" ."); ;
  := 0 -1
    [] := ([])-65 < 26 ;
    ([]) >= 80H .(" ."); ;
    [] := []
  ;
  > 0 := +1 := 0 ; o := ;
  <
    j := i; w := 1; k := 36;
   
      >= .(" ."); ;
      r := (([])); ();
      r >= 36 .(" ."); ;
      r > ((() - i) / w) .("."); ;
      (i, r * w);
      k <= b t := 1 k >= b + 26 t := 26 t := k - b ;
      r < t ;
      w > (() / (36 - t)) .("."); ;
      w := w * (36 - t); (k, 36)
    ;
    (o); b := (i - j, o, j = 0);
    (i / o) > () - n .("."); ;
    (n, (((i / o)))); i := i o;
    o >= .(" ."); ;
   
      j := ()-1 i -1 [j+1] := [j] ;
      [i] := ([-1])-65 < 26
    ;
    .((n), , i); (i);
   
      j := 0 ()-1
        [j] [j] := .([j])
     
   
 
;

Punycode.
    .